Products
Products are the sellable goods in an e-commerce shop on the Propeller platform. They are usually organized hierarchically in categories. The Product API can be used to consult, create, update or delete a Product.
Product Lookup keys
Key | Type | Description |
---|---|---|
id | integer | Propeller product id, auto-generated |
sourceId | string | External system unique id. sourceId should be combined with source |
sku | string | Product SKU/ code |
code (deprecated) | string | Product code |
supplierCode | string | Product code as known to the product supplier. supplierCode should be combined with supplier |
Fields
Name | Description | Type |
---|---|---|
names | Product name | array[LocalizedString] |
language | Product default language | string ISO 639-1 |
parent | Parent category | JSON object that identifies the parent. id or sourceId in combination with source |
sku | Product SKU (code) | string |
unit | The number of packages that need to be ordered when adding an item to the basket | integer |
status | Product status | enum A=Available N=Not available T=Out of stock P=Phase out S=Presale R=Restricted |
price | Sales price | decimal |
costPrice | Cost price | decimal |
suggestedPrice | Suggested/ advised price | decimal |
discountPrice | Discount price | decimal |
discountPriceFrom | Discount price from date | date |
discountPriceTo | Discount price to date | date |
priceDisplay | Type of price display | enum default = Only display price onrequest = Do not show price, show "Price on request" from = Show cheapest price fromfor = Show old (suggested) price vs. new price perpackage = price per type of package (e.g. Price from € 125.50 per box) peruom = Cheapest price per package unit (e.g. Price from € 125.50 per piece) |
descriptions | Product description | array[LocalizedString] |
shortName | Product short name | string |
shortDescriptions | Product short descriptions | array[LocalizedString] |
taxCode | Product tax code | enum H=High L=Low N=None |
supplier | Product supplier | string |
supplierCode | Product code as known to the product supplier | string |
manufacturer | Manufacturer | string |
oemCode | Product manufacturer code | string |
eanCode | Product EAN code | string |
minimumQuantity | Minimum orderable quantity | integer |
package | Package (e.g. piece, sheet, etc.) | string |
packageDescriptions | Description of package and package units inside a package (e.g. Box of 650 sheets of paper) | array[LocalizedString] |
notes | Product notes/ remarks | array[LocalizedString] |
sourceId | External system unique id | string |
source | External system | string |
keywords | Keywords of this product per language. Added by the supplier | array[LocalizedString] |
customKeywords | Additional keywords of this product per language. Added via the PIM | array[LocalizedString] |
statusExtra | The extra status of this product, commonly linked to a custom valueset | string |
orderable | Indicates whether the product is orderable | enum Y = Yes N = No |
orderableFrom | The orderable from date of this product | date |
orderableTo | The orderable from to of this product | date |
releaseDate | The release date of this product | date |
returnable | Indicates whether the product is returnable | enum Y = Yes N = No |
physical | Is it a physical product or a service, download or warranty | enum Y = Yes N = No |
barCode | The bar code of this product | string |
width | Product width | string |
height | Product height | string |
depth | Product depth | string |
weight | Product weight | string |
packageUnit | The amount of items per package | string |
packageUnitQuantity | The quantifier for the package unit, i.e.: PIECE or BOX | string |
purchaseMinimumQuantity | The minimum quantity of products that can be ordered when creating a purchase order | integer |
purchaseUnit | The unit in which the product can be ordered when creating a purchase order | integer |
economicOrderQuantity | The quantity that provides the best value for money for this product | integer |
Product Errors
This section describes error codes specific for the Product
resource.
Code | Error Type | Status Code | Message | Reason |
---|---|---|---|---|
80004 | ProductExists | 400 | Product already exists | Category with such lookup key already exists |
80005 | ProductMultipleFound | 400 | Multuple products found. Please provide additional filters | Multiple products with such lookup key exist |
80006 | ProductNotFound | 404 | Product does not exist | Product with such lookup key not found |
80007 | ParentProductNotFound | 404 | Parent product not found | Parent product with such lookup key not found. This error is typical when working with product sub-resources (e.g. attributes) |
80008 | ProductNotAllowed | 405 | Product is not allowed | No permission for the product |
📄️ Create Product
Use this endpoint to create a single product. If a product is successfully created, the response will include the product`id`.
📄️ Get Product by lookup key
Use this endpoint to retrieve product details by lookup key. If multiple products with the same lookup key exist, use additional filtering depending on the lookup key to uniquely identify the product (e.g. `source` and `language` for lookup key `source`).
📄️ Delete Product by lookup key
Use this endpoint to delete product by lookup key. If multiple products with the same lookup key exist, use additional filtering depending on the lookup key to uniquely identify the product (e.g. `source` and `language` for lookup key `source`).
📄️ Update Product by lookup key
Use this endpoint to update product by lookup key. If multiple products with the same lookup key exist, use additional filtering depending on the lookup key to uniquely identify the product (e.g. `source` and `language` for lookup key `source`).
📄️ Delete Product translation by lookup key
Use this endpoint to delete product translation by lookup key and the language for which the translation needs to be deleted. If multiple products with the same lookup key exist, use additional filtering depending on the lookup key to uniquely identify the product (e.g. `source` and `language` for lookup key `source`).
📄️ Bulk Product by source id
The bulk endpoints offer an efficient way of importing/updating large amounts of products with just a single API call. When using the bulk `sourceId` endpoint, the products are identified by `sourceId`, `source` and `language`. If a product doesn't already exist, it will be created. If it does exist, the product found will be updated.
📄️ Bulk Product by Id
The bulk endpoints offer an efficient way of importing/updating large amounts of products with just a single API call. When using the bulk `id` endpoint, the products are identified by Propeller product `id`. If a product with such `id` doesn't already exist, it will be created. If it does exist, the product will be updated.