# Add a product description. Add the full description for a product including all variants (e.g. sizes) associated to it. Endpoint: POST /shops/products Version: 2025-07-09 ## Request fields (application/json): - `sku` (string, required) The stock keeping unit (article number) of the main product. - `stockCount` (integer) The number of products currently in stock. - A stock count > 0 means there are n products available. - A stock count <= 0 means the product is temporary out-of-stock. - If not specified the stock count is not set. - `price` (integer) The current price of the product including discounts (including tax) (excluding shipping, etc.). The price is given in minor units (e.g. 2799 for 27,99 EUR). That is the price a customer really has to pay when ordering the product. If not specified the price is not set. Example: 2799 - `orgPrice` (integer) The original price of the product (including tax) (excluding shipping, etc.). The price is given in minor units (e.g. 3599 for 35,99 EUR). If not specified the original and current prices are identical. Example: 3599 - `lang` (string) The ISO 639 2-letter language code specifying the product language (e.g. "en", "de"). Example: "de" - `country` (string) The ISO 3166 2-letter country code specifying the country the product is for (e.g. "DE", "SA"). Example: "DE" - `currency` (string) A 1-character currency symbol (€, $, £) or ISO 4217 3-letter currency code used for payment Example: "EUR" - `shippingModel` (object) The shipping model to use for this product or product variant. - `shippingModel.shippingFlatRate` (integer) The flat-rate shipping cost (including tax) (default is 0).Flat-rate shipping costs are independent from the number of items ordered.The value is given in minor units (e.g. 499 for 4,99 EUR). Example: 499 - `shippingModel.shippingPerItem` (integer) The shipping cost (including tax) to ship one item (default is 0).The value is given in minor units (e.g. 499 for 4,99 EUR). - `shippingModel.shippingScale` (array) With the shipping scale you can implement shipping costs for different order count thresholds.If the list contains multiple entries with the same start value the first one is taken.Example: The standard shipping is 4.99 EUR (at least 1 product ordered), Starting from 5 products ordered shipping is 6.99 EUR and so on. - `shippingModel.shippingScale.start` (integer) The minimum number of product items to order to use the specified shipping cost (default 0). - `shippingModel.shippingScale.price` (integer) The shipping cost (including tax) starting with the specified number of product items ordered.The value is given in minor units (e.g. 499 for 4,99 EUR) and defaults to 0. Example: 399 - `shippingModel.orderLimit` (integer) The order limit for this product. If None there is no limit. If zero the product cannot be ordered at all. - `vat` (number) The VAT (value added tax) in percent (e.g. 19.0%). Example: 19 - `name` (string, required) The mandatory name of the product. Example: "LOGO - Kapuzenpullover - white" - `brand` (any) The brand (e.g. "Tommy Hilfiger") Example: "Tommy Hilfiger" - `subLine` (string) A sub line text. - `description` (string) The product description. Example: "Softfinish innen, Kängurutasche\n\nKragen: Kapuze\nÄrmelbündchen: Gerippt\nDetails Kapuze: Kapuze mit Tunnelzug\nMuster: Print\nDetails: Elastischer Bund, Stickerei\nArtikelnummer: TO122S074-A12" - `gender` (any) The gender the product is for. Example: 2 - `material` (string) The material (e.g. "100% linen"). Example: "100% linen" - `colour` (string) The colour text (e.g. "red"). Example: "red" - `colourCode` (integer) The colour code as RGB value. Example: 11806517 - `fit` (string) The fit of the product. Example: "slim" - `notShoppable` (boolean) If True the product is not shoppable (e.g. Restaurant, Recipe, ...). - `url` (string) A link to the product website. - `urlLabel` (string) The link label - `urlNote` (string) The link note - `urlImageUrl` (string) The link image url of the associated image. - `images` (array) The product images finally presented to the user on - `images.url` (string, required) The url to a product image. - `images.copyrightText` (string) The copyright text for the image. Example: "transfermedia GmbH." - `variants` (array) The description of the product variants (e.g. sizes). At max 50 variants can be specified. - `variants.sku` (string, required) The stock keeping unit (article number) of the product variant (e.g. size). - `variants.stockCount` (integer) The number of products currently in stock. - A stock count > 0 means there are n products available. - A stock count = 0 means the product is temporary out-of-stock. - A stock count < 0 means the product is not any longer available in the shop at all. - If not specified the stock count is not set. - `variants.value` (string, required) The mandatory value of the product variant (e.g. size). Example: "6½" - `variants.type` (string) The variant type name (e.g. "size"). Example: "size" ## Response 202 fields (application/json): - `data` (any) The response data. - `error` (object) Details of the error that occurred during the API request, including error code and message. This field is only present when the request results in an error. - `error.code` (integer, required) The error code Enum: 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 3001, 3002, 3003, 4001 - `error.message` (string, required) The error message. - `error.details` (any) The HTTP error details. ## Response 401 fields (application/json): - `data` (any) The response data. - `error` (object) Details of the error that occurred during the API request, including error code and message. This field is only present when the request results in an error. - `error.code` (integer, required) The error code Enum: 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 3001, 3002, 3003, 4001 - `error.message` (string, required) The error message. - `error.details` (any) The HTTP error details. ## Response 422 fields (application/json): - `data` (any) The response data. - `error` (object) Details of the error that occurred during the API request, including error code and message. This field is only present when the request results in an error. - `error.code` (integer, required) The error code Enum: 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 3001, 3002, 3003, 4001 - `error.message` (string, required) The error message. - `error.details` (any) The HTTP error details.