Shopware · Schema
Shopware Product
Represents a product in the Shopware catalog (Admin API entity, since version 6.0.0.0).
E-CommerceOpen SourceHeadless CommerceB2BB2CRESTOAuth2
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique 32-character hex identity of the product |
| versionId | string | Unique identity of the product version |
| parentId | stringnull | ID of the parent product (set for variant products) |
| manufacturerId | stringnull | ID of the product manufacturer |
| taxId | string | ID of the applicable tax rule |
| coverId | stringnull | ID of the ProductMedia used as product cover image |
| productNumber | string | Unique SKU / article number |
| stock | integer | Current stock quantity |
| availableStock | integer | Stock available for purchase (may differ from stock due to reservations) |
| name | string | Product name (translatable) |
| description | stringnull | Long product description, HTML allowed (translatable) |
| ean | stringnull | EAN / GTIN barcode |
| price | array | Currency-indexed price list |
| active | boolean | Whether the product is visible in the storefront |
| markAsTopseller | booleannull | Highlights the product as a bestseller |
| weight | numbernull | Weight in kg |
| width | numbernull | Width in mm |
| height | numbernull | Height in mm |
| length | numbernull | Length in mm |
| isCloseout | boolean | If true, the product cannot be purchased when out of stock |
| purchaseSteps | integernull | Quantity increment steps |
| minPurchase | integernull | Minimum order quantity |
| maxPurchase | integernull | Maximum order quantity |
| shippingFree | boolean | Product qualifies for free shipping |
| tags | array | |
| media | array | |
| customFields | objectnull | Key-value store for extension-defined custom fields |
| createdAt | string | Timestamp of product creation (read-only) |
| updatedAt | stringnull | Timestamp of last update (read-only) |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://api.shopware.com/schemas/product",
"title": "Shopware Product",
"description": "Represents a product in the Shopware catalog (Admin API entity, since version 6.0.0.0).",
"type": "object",
"required": ["id", "taxId", "price", "productNumber", "stock", "name"],
"properties": {
"id": {
"type": "string",
"pattern": "^[0-9a-f]{32}$",
"description": "Unique 32-character hex identity of the product"
},
"versionId": {
"type": "string",
"pattern": "^[0-9a-f]{32}$",
"description": "Unique identity of the product version"
},
"parentId": {
"type": ["string", "null"],
"pattern": "^[0-9a-f]{32}$",
"description": "ID of the parent product (set for variant products)"
},
"manufacturerId": {
"type": ["string", "null"],
"pattern": "^[0-9a-f]{32}$",
"description": "ID of the product manufacturer"
},
"taxId": {
"type": "string",
"pattern": "^[0-9a-f]{32}$",
"description": "ID of the applicable tax rule"
},
"coverId": {
"type": ["string", "null"],
"pattern": "^[0-9a-f]{32}$",
"description": "ID of the ProductMedia used as product cover image"
},
"productNumber": {
"type": "string",
"maxLength": 64,
"description": "Unique SKU / article number"
},
"stock": {
"type": "integer",
"format": "int64",
"minimum": 0,
"description": "Current stock quantity"
},
"availableStock": {
"type": "integer",
"format": "int64",
"description": "Stock available for purchase (may differ from stock due to reservations)"
},
"name": {
"type": "string",
"description": "Product name (translatable)"
},
"description": {
"type": ["string", "null"],
"description": "Long product description, HTML allowed (translatable)"
},
"ean": {
"type": ["string", "null"],
"description": "EAN / GTIN barcode"
},
"price": {
"type": "array",
"items": { "$ref": "#/$defs/Price" },
"description": "Currency-indexed price list"
},
"active": {
"type": "boolean",
"description": "Whether the product is visible in the storefront"
},
"markAsTopseller": {
"type": ["boolean", "null"],
"description": "Highlights the product as a bestseller"
},
"weight": {
"type": ["number", "null"],
"description": "Weight in kg"
},
"width": {
"type": ["number", "null"],
"description": "Width in mm"
},
"height": {
"type": ["number", "null"],
"description": "Height in mm"
},
"length": {
"type": ["number", "null"],
"description": "Length in mm"
},
"isCloseout": {
"type": "boolean",
"description": "If true, the product cannot be purchased when out of stock"
},
"purchaseSteps": {
"type": ["integer", "null"],
"description": "Quantity increment steps"
},
"minPurchase": {
"type": ["integer", "null"],
"minimum": 1,
"description": "Minimum order quantity"
},
"maxPurchase": {
"type": ["integer", "null"],
"description": "Maximum order quantity"
},
"shippingFree": {
"type": "boolean",
"description": "Product qualifies for free shipping"
},
"tags": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"name": { "type": "string" }
}
}
},
"media": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "string" },
"position": { "type": "integer" },
"media": {
"type": "object",
"properties": {
"url": { "type": "string", "format": "uri" },
"alt": { "type": ["string", "null"] },
"title": { "type": ["string", "null"] }
}
}
}
}
},
"customFields": {
"type": ["object", "null"],
"description": "Key-value store for extension-defined custom fields"
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Timestamp of product creation (read-only)"
},
"updatedAt": {
"type": ["string", "null"],
"format": "date-time",
"description": "Timestamp of last update (read-only)"
}
},
"$defs": {
"Price": {
"type": "object",
"required": ["currencyId", "gross", "net", "linked"],
"properties": {
"currencyId": {
"type": "string",
"pattern": "^[0-9a-f]{32}$",
"description": "ID of the currency this price applies to"
},
"gross": {
"type": "number",
"description": "Gross price (tax included)"
},
"net": {
"type": "number",
"description": "Net price (tax excluded)"
},
"linked": {
"type": "boolean",
"description": "If true, the net price is auto-calculated from gross + tax rate"
},
"listPrice": {
"type": ["object", "null"],
"description": "Strike-through / original list price",
"properties": {
"gross": { "type": "number" },
"net": { "type": "number" },
"linked": { "type": "boolean" }
}
},
"regulationPrice": {
"type": ["object", "null"],
"description": "Reference price for regulation-required price display",
"properties": {
"gross": { "type": "number" }
}
}
}
}
}
}