# Products, product groups and identifiers Winkelstraat sells every size of an article as a separate product. Products of the same article (and colour) are grouped under a **parent**. ### Terms | Term | Meaning | |---|---| | **Product** (also *child product*) | One orderable item: one article, in one colour, in one size. Every create or update call sends exactly one product. | | **Retailer product** | A product as delivered by you, the partner. The endpoints use this name to distinguish your products from the Winkelstraat.nl catalogue, which can combine the same article from several partners. | | **Identifier** / **SKU** | Your own unique code for one product (one size), sent in the `identifier` field and used as `{code}` in the URL. Allowed characters: `a-z`, `A-Z`, `0-9`, `_` and `-`. | | **Parent** | Your own code for the product group: all sizes of the same article in the same colour. Send the same `parent` for every size of that article. Allowed characters: `a-z`, `A-Z`, `0-9`, `_` and `-`. | | **Product group** | All products that share the same `parent`. | The API always shows the identifier and parent exactly as you sent them. Winkelstraat stores them linked to your partner account, so different partners can use the same codes. ### Values shared by all sizes Some values belong to the product group and are shared by all of its sizes, such as `name`, `description`, `color`, `season`, `fit`, `material`, `msrp` and the images. When you send a different value for one size, it applies to every size of that product group. Keep these values the same for all sizes. Values that differ per size, such as `size`, `ean`, `price`, `special_price` and `quantity`, are stored per product. ### Example: a T-shirt in three sizes A black T-shirt sold in sizes S, M and L is one product group with three products: ``` parent: TSHIRT-001-BLACK ├── identifier: TSHIRT-001-BLACK-S (size s, ean 8712345000011) ├── identifier: TSHIRT-001-BLACK-M (size m, ean 8712345000028) └── identifier: TSHIRT-001-BLACK-L (size l, ean 8712345000035) ``` You send it with **three** calls to `POST /api/rest/v1/retailer/products`, one per size. The calls are identical except for `identifier`, `size`, `ean`, `quantity` and, if needed, `price`. The same T-shirt in white is a separate product group, for example `TSHIRT-001-WHITE`. If you leave out `parent`, Winkelstraat generates one from `manufacturer`, `manufacturer_product_number` and `manufacturer_product_color`. We recommend always sending your own `parent`.