Retrieve your product database.
In addition to product card fields, you can have API to return:
Note: PIM API offers a REST interface for retrieving products. PIM API supports more flexible filtering, for example; products can be filtered by any field, not just the predefined filters presented here.
Parameter name | Description | Possible value | Required |
---|---|---|---|
productID | Retrieve one specific product. | integer | |
productIDs | Retrieve specific products. Multiple product IDs, separated by commas, such as: 1,2,3,4,5 | string | |
type | Filter by product type. You can specify multiple product types, separated by commas (eg. "BUNDLE,ASSEMBLY"). Possible types are:
For a more detailed description of each type, please see below. Please note that matrix variations (specific colors and sizes of a matrix product) are regular products; there is no separate type for those. To include or exclude matrix variations, please see the next filter: includeMatrixVariations . |
string | |
includeMatrixVariations | This filter is for retrieving or excluding matrix variations (specific colors or sizes of a matrix product). By default, variations are included. This filter helps you with the following two use cases: 1. If you only need to retrieve regular items and matrix parent products (NO variations), set the following filters:
2. If you only need to retrieve regular items and matrix variations (ie. only items you can sell; NO matrix parent products), set the following filter:
|
Integer (0 or 1),by default 1 | |
groupID | Retrieve products in this specific product group. (See getProductGroups.) | integer | |
groupIDWithSubgroups | Retrieve products in this product group, or in any of its sub-groups, sub-subgroups etc. | integer | |
groupIDsWithSubgroups | Retrieve products in specific product groups, or in any of their sub-groups, sub-subgroups etc. Multiple group IDs, separated by commas, such as: 1,2,3,4,5 | string | |
categoryID | Retrieve products in this specific category. (See getProductCategories.) | integer | |
categoryIDWithSubcategories | Retrieve products in this category, or in any of its sub-categories, sub-sub-categories etc. | integer | |
priorityGroupID | Retrieve products in this priority group. (See getProductPriorityGroups.) | integer | |
supplierID | Retrieve products of this supplier. (See getSuppliers.) | integer | |
brandID | Retrieve products of this brand. (See getBrands.) | integer | |
unitID | Retrieve products that have this specific unit. (See getProductUnits.) | integer | |
vatrateID | Retrieve products that have this VAT / tax rate set on product card. (See getVatRates.) | integer | |
parentProductID | Retrieve only the variations of one specific matrix product. | integer | |
code | Search for a product by code, exact matches only. For more sophisticated product search options, see input parameters findBestMatch or searchNameIncrementally . |
string | |
code2 | Search for a product by EAN / UPC, exact matches only. | string | |
code3 | Search for a product by code 3, exact matches only. | string | |
supplierCode | Search for a product by supplier / manufacturer code, exact matches only. | string | |
code5 | Search for a product by code 5, exact matches only. "Extra product codes" module must be enabled. | string | |
code6 | Search for a product by code 6, exact matches only. "Extra product codes" module must be enabled. | string | |
code7 | Search for a product by code 7, exact matches only. "Extra product codes" module must be enabled. | string | |
code8 | Search for a product by code 8, exact matches only. "Extra product codes" module must be enabled. | string | |
name | Search for a product by name, exact matches only. For more sophisticated product search options, see input parameters findBestMatch or searchNameIncrementally .. |
string | |
codePrefix | Search for a product by code. Returns all items where beginning of the code matches. | string | |
code2Prefix | Search for a product by EAN/UPC. Returns all items where beginning of the EAN / UPC matches. | string | |
code3Prefix | Search for a product by code 3. Returns all items where beginning of the code matches. | string | |
supplierCodePrefix | Search for a product by supplier code. Returns all items where beginning of the code matches. | string | |
code5Prefix | Search for a product by code 5. Returns all items where beginning of the code matches. "Extra product codes" module must be enabled. | string | |
code6Prefix | Search for a product by code 6. Returns all items where beginning of the code matches. "Extra product codes" module must be enabled. | string | |
code7Prefix | Search for a product by code 7. Returns all items where beginning of the code matches. "Extra product codes" module must be enabled. | string | |
code8Prefix | Search for a product by code 8. Returns all items where beginning of the code matches. "Extra product codes" module must be enabled. | string | |
namePrefix | Search for a product by name. Returns all items where beginning of the name matches. | string | |
searchCodeFromMiddle | If set to 1, and you have supplied input parameters "searchName" or "searchNameIncrementally", API will search from anywhere within the code field, not just the beginning. | 0 or 1 | |
searchName | Search from product name (anywhere within the name field), product code (from the beginning), or EAN / UPC (from the beginning). For more sophisticated product search options, see input parameters findBestMatch or searchNameIncrementally . |
string | |
searchNameIncrementally | A more optimized product search. Specify your search phrase, and API will check whether it matches product code, EAN/UPC OR product name. It is meant for cases where API should return quickly the most relevant results, but the search does not have to be exhaustive. API will also look for partial matches. When using searchNameIncrementally , the results are not ordered and you cannot use paging (pageNo), nor specify how many results you want to retrieve. Pay no attention to the "recordsTotal" field - it returns a random large number!API tries the following search combinations:
|
string | |
fullTextSearchPhrase | Search from product name, product code, EAN / UPC, code3, supplier code, code5, code6, code7, or code8. | string | |
findBestMatch | Set findBestMatch = 1 and send input parameters code , code2 , and/or name , each of which may contain a different search phrase. API will try to find a best exact match, trying different search combinations:
Therefore, API will only return exact, not partial matches. You may also use input parameter parentProductID to find a match ONLY from among the variations of a specific matrix product. This is the only additional filter which can be combined with findBestMatch = 1 ! |
Integer (0 or 1) | |
active | Specify active = 0 to get archived products. (Filter status = ARCHIVED gives the same results.) Specify active = 1 to get all non-archived products. (Filter status = ALL_EXCEPT_ARCHIVED gives the same results.) A non-archived product can be either active, no longer ordered, or not for sale. |
0 or 1 | |
status | Filter products by status: ACTIVE, NO_LONGER_ORDERED, NOT_FOR_SALE, ARCHIVED, or ALL_EXCEPT_ARCHIVED. The last one returns all non-archived items (ie. items that are active, not for sale or no longer ordered). |
string | |
nonStockProduct | If specified, API returns only non-stock products. Salon / SPA module must be enabled. | 0 or 1 | |
isUsedProduct | If specified, API returns only used products. | 0 or 1 | |
nonRefundableProduct | If specified, API returns only non-refundable products. | 0 or 1 | |
hasSerialNumbers | Set to 1 to retrieve only the products that have serial numbers. | 0 or 1 | |
soldInPackages | 0 or 1 | ||
quickPosProducts | Set to 1 to retrieve only the frequently-used products that are displayed in POS as quick-select buttons. Each location may have different quick-select buttons. If you want the buttons for a specific store, use warehouseID input parameter. If you omit it, you will get the "default" selection. |
0 or 1 | |
giftCards | Set to 1 to retrieve only the products that are serial numbered gift cards. | 0 or 1 | |
regularGiftCards | Set this flag to 1 to retrieve only the products that are regular (non-numbered, non-serialized) gift cards. Setting this field to 0, to omit regular gift cards and fetch everything else, does not work. Field value 0 is equivalent to not applying the filter at all. |
||
displayedInWebshop | Set to 1 to retrieve only the products that are displayed in webshop. | 0 or 1 | |
getStockInfo | Set to 1 to retrieve inventory quantities for selected products. Note that product's timestamp does not change when its inventory quantity changes. Therefore you cannot use getProducts to synchronize inventory quantities. For that purpose, see API call getProductStock instead. Omit if not needed. Retrieving quantities takes extra resources and results are returned slower. |
0 or 1 | |
getFIFOCost | Set to 1 to retrieve FIFO costs and purchase prices for selected products. Omit if not needed. Retrieving costs takes extra resources and results are returned slower. |
0 or 1 | |
getContainerInfo | Set to 1 to retrieve more information about the beverage container that goes with this product. You will be needing this feature if shops are required to show beverage container as a separate item on invoice, and charge an additional fee for that. |
0 or 1 | |
getPackageInfo | Set to 1 to retrieve information about the various-sized packages for this product. For each product that has packages, API will return an additional sub-structure named "productPackages". |
0 or 1 | |
getReplacementProducts | Set to 1 to retrieve replacement products for selected products. | 0 or 1 | |
getRelatedProducts | Set to 1 to retrieve related products for selected products. If your account has configuration setting Cross-sell relationship works one way only enabled, API will not return inverse relationships. |
0 or 1 | |
getMatrixVariations | Set to 1 to retrieve a detailed list of variations for a matrix product: product name, code, EAN / UPC, color and size for each variation. See output element variationList . By default (without setting getMatrixVariations = 1 ) you will only get the IDs of variation products. |
0 or 1 | |
getRelatedFiles | Set to 1 to retrieve related files for selected products. | 0 or 1 | |
getRecipes | Set to 1 to retrieve components for selected products (if selected product is a bundle or an assembly product). | 0 or 1 | |
getParameters | Set to 1 to retrieve parameters for selected products. Parameters module must be enabled. | 0 or 1 | |
getPackagingMaterials | Set to 1 to retrieve quantities of packaging materials for selected products. Packaging module must be enabled. | 0 or 1 | |
getPriceListPrices | Set to 1 to retrieve price list prices. You can use warehouseID parameter to retrieve product's sales price for a specific warehouse. You can use clientID parameter to retrieve product's sales price for a specific customer. | 0 or 1 | |
getPriceCalculationSteps | Set to 1 to retrieve a set of records detailing how price list price was received. If you specify "getPriceCalculationSteps" , input parameter getPriceListPrices" is required, too. This feature requires Classic back office, version 4.5.0 or newer. |
0 or 1 | |
getItemsFromFirstPriceListOnly | Set to 1 to retrieve only the products that are in first price list of a specific location. | 0 or 1 | |
getWarehouseSpecificVAT | Set to 1 retrieve sales price (VAT included) that applies to specified sales location. | 0 or 1 | |
getOnlyItemsInStock | Set to 1 to retrieve only the products that are in stock at specific location. | 0 or 1 | |
getProductReplacementHistory | Set to 1 to retrieve list of product ids the product replaces and is replaced with. The product replacement history can be managed in the new PIM api. | 0 or 1 | |
getProductsFor | "SALES" or "ORDERING". A filter to retrieve only sellable products, or only products that can be reordered from supplier. This filter will use product's own status, and also product's status in assortment, if an assortment has been set for the selected location. If you specify Cannot be used together with input parameters Behavior of this filter if no assortment has been set for the selected location:
Behavior of the filter if the selected location has an assortment:
To enable the assortments module on your account, please contact customer support. This feature requires Classic back office, version 4.5.0 or newer. (This filter, however, can still be used even without the assortments module.) |
string | |
warehouseID | Specify warehouse ID to: 1) retrieve inventory quantities of selected products only in one specific warehouse. If not set, API will return inventory quantities for every warehouse. For performance reasons, it is recommended to always set this parameter if you do not need information about all warehouses simultaneously. 2) retrieve price list prices in one specific location. 3) retrieve POS quick select buttons for one specific location ( quickPosProducts = 1 ) |
integer | |
clientID | Customer ID (to retrieve price list prices for specified customer) | integer | |
extraField1IDs | IDs of selected values in product card extra field 1. The field on product card is a drop-down, and the possible values can be retrieved with API call getProductExtraField1Values | string | |
extraField2IDs | IDs of selected values in product card extra field 2. The field on product card is a drop-down, and the possible values can be retrieved with API call getProductExtraField2Values | string | |
extraField3IDs | IDs of selected values in product card extra field 3. The field on product card is a drop-down, and the possible values can be retrieved with API call getProductExtraField3Values | string | |
extraField4IDs | IDs of selected values in product card extra field 4. The field on product card is a drop-down, and the possible values can be retrieved with API call getProductExtraField4Values | string | |
locationInWarehouseIDs | Filter products by their "location in warehouse" ID. Multiple IDs, separated by commas. | string | |
locationInWarehouseText | Filter products by the value of their "location in warehouse" text field. Exact matches only. | string | |
searchAttributeName | Name of attribute to search from. Both "searchAttributeName" and "searchAttributeValue" have to be specified. Error 1030 will be returned if value is an array. | string | |
searchAttributeValue | Attribute value to search for. Error 1030 will be returned if value is an array. | string | |
searchParameterOptionID | Get products that have a specific parameter value. Example: let us assume that you have defined a parameter "Available colors", with possible options of "white", "red", yellow" and "blue". Use searchParameterOptionID to get all items that are available in blue. Of course, to make the query, you need to know the ID of the "blue" option. API call getParameters provides all parameters and their options. |
integer | |
searchParameterID searchParameterValue |
Get products that have a specific parameter value. Example 1: some product parameters are simple yes/no properties, eg. "does this product have batteries included". Assuming this parameter's ID is "456", you need to make the query searchParameterID = 456 if you want to get all products that have batteries included. Example 2: Other parameters have scalar values, eg. the inner diameter of a ball bearing. Assuming the parameter ID is 789, you need to make the query searchParameterID = 789, searchParameterValue = "1/2" if you want to get all bearings with inner diameter of 1/2". |
Integer String |
|
addedSince | Get all new items that have been added since a specific point in time. NOT RECOMMENDED. Instead, use "changedSince", which returns both new items and changed items. |
Integer (Unix timestamp) | |
changedSince | Get all items that have been ADDED AND/OR CHANGED since a specific point in time. Use this field for synchronizing product database. Set changedSince equal to the time of last successful synchronization. Some tips:
|
Integer (Unix timestamp) | |
lang | Retrieve item names in a specific language. If omitted, API will return item names in the default language of your Erply account. Possible values:
|
string | |
getAllLanguages | Retrieve product names in all languages. If you turn on this flag, API will return additional fields nameENG , nameGER , etc. — depending on which languages have been enabled on your account. |
0 or 1 | |
orderBy | 'name', 'code', 'productID', 'price', 'parentProductID', 'changed' or 'added'. 'changed' sorts by last modification timestamp. Items that have been created but never changed yet, have a modification timestamp of 0 and are sorted at the end of the list. 'added' sorts by creation timestamp. 'parentProductID', combined with orderByDir = 'asc', is useful if you need to retrieve matrix products first, followed by matrix product variations. (Matrix products have parentProductID = 0; variations have a non-zero value.) The default value is 'changed'. |
string | |
orderByDir | Sort direction: 'asc' (ascending order) or 'desc' (descending order). By default, items are sorted in descending order. | string | |
recordsOnPage | Number of records API should return. By default API returns 20 records. At most you can request 1000 products at a time (or only 100, if you have set getStockInfo = 1 ). |
integer | |
pageNo | API returns at most recordsOnPage items at a time. To retrieve the next recordsOnPage items, send a new request with pageNo incremented by one. By default, API returns "page 1". | integer | |
recordOffset | As an alternative to pageNo , you can specify an exact list offset like in SQL. recordOffset is 0-based, so if you are retrieving items 20 at a time, pageNo = 1 is equivalent to recordOffset = 0, pageNo = 2 is equivalent to recordOffset = 20 and so on. |
integer | |
getFields | Comma separated list of fields. Can be used to limit the top level fields that are returned (nested fields are not filtered). When omitted then everything will be returned. NOTE: When using this filter with a result that does not have the set field then an empty result will be returned. |
string |
Field name | Type | Description | |||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
productID | integer | Product ID | |||||||||||||||||||||||||||||||||||||||
type | string | Product type. The type can be:
|
|||||||||||||||||||||||||||||||||||||||
active | integer | 0 or 1. Value 0 indicates an archived product, and is equivalent to status = ARCHIVED . Archived products should not be displayed to users.Value 1 indicates an active item. For a more detailed breakdown of active products, see the next field. |
|||||||||||||||||||||||||||||||||||||||
status | string | Product status, possible statuses are 'ACTIVE', 'NO_LONGER_ORDERED', 'NOT_FOR_SALE' and 'ARCHIVED'. | |||||||||||||||||||||||||||||||||||||||
name | string | Product name. Products can have different names in each language. Use input parameter lang to specify which language you want to retrieve. By default, API returns product names in account's default language.If you want to retrieve names in all languages with one API call, set input parameter getAllLanguages = 1 . In addition to field name , API will then return fields nameENG , nameGER , etc. — one for each language enabled on your account. |
|||||||||||||||||||||||||||||||||||||||
code | string | First code of the item (by convention, this is used for company's internal code) | |||||||||||||||||||||||||||||||||||||||
code2 | string | Second code of the item (by convention, this is used for EAN/UPC barcode) | |||||||||||||||||||||||||||||||||||||||
code3 | string | Third code of the item (note that this field may not be visible on product card by default) | |||||||||||||||||||||||||||||||||||||||
supplierCode | string | Supplier's product code | |||||||||||||||||||||||||||||||||||||||
code5 | string | Code 5 of the item. API only returns this field if "Extra product codes" module is enabled on your account. | |||||||||||||||||||||||||||||||||||||||
code6 | string | Code 6 of the item. API only returns this field if "Extra product codes" module is enabled on your account. | |||||||||||||||||||||||||||||||||||||||
code7 | string | Code 7 of the item. API only returns this field if "Extra product codes" module is enabled on your account. | |||||||||||||||||||||||||||||||||||||||
code8 | string | Code 8 of the item. API only returns this field if "Extra product codes" module is enabled on your account. | |||||||||||||||||||||||||||||||||||||||
groupID | integer | Product group ID | |||||||||||||||||||||||||||||||||||||||
groupName | string | Name of the product group | |||||||||||||||||||||||||||||||||||||||
price | Decimal, 3 places | ||||||||||||||||||||||||||||||||||||||||
priceWithVat | Decimal, 2 places | ||||||||||||||||||||||||||||||||||||||||
displayedInWebshop | 0 or 1 | ||||||||||||||||||||||||||||||||||||||||
categoryID | integer | ||||||||||||||||||||||||||||||||||||||||
categoryName | string | ||||||||||||||||||||||||||||||||||||||||
supplierID | integer | ||||||||||||||||||||||||||||||||||||||||
supplierName | string | ||||||||||||||||||||||||||||||||||||||||
unitID | integer | ||||||||||||||||||||||||||||||||||||||||
unitName | string | ||||||||||||||||||||||||||||||||||||||||
taxFree | integer | 0 or 1. If set to 1, this product is tax free in ALL stores and sales locations, regardless of POS tax rate and regardless of this product's vatrateID. (Eg. a gift card.) | |||||||||||||||||||||||||||||||||||||||
deliveryTime | string | ||||||||||||||||||||||||||||||||||||||||
vatrateID | integer | VAT rate (tax rate) of this item. NB! POS tax rate will override this value when selling from POS. | |||||||||||||||||||||||||||||||||||||||
vatrate | Decimal | ||||||||||||||||||||||||||||||||||||||||
hasQuickSelectButton | integer | 0 or 1. Value 1 indicates that this item has a quick-select button in POS. This field is DEPRECATED, because in Erply backend you can actually define different POS quick select buttons for each shop (location, warehouse). Therefore you should use API call getPointsOfSale to retrieve POS quick buttons. For each register, API will return a quickButtons structure. (Quick buttons are specified per-store, but getPointsOfSale returns them separately for each register.) Please note that quick buttons may contain both services and products. We are phasing out services (new accounts do not have this module and should use non-stock products instead), but older accounts still have and use them. If you are only interested in product buttons, you can still use API call getProducts . Set the filters quickPosProducts = 1 and warehouseID . |
|||||||||||||||||||||||||||||||||||||||
isGiftCard | integer | 0 or 1. 1 if this item is a serial numbered gift card. If such a product is sold from POS, its serial number should be recorded and saved into the registry of sold gift cards, using API function saveGiftCard. |
|||||||||||||||||||||||||||||||||||||||
isRegularGiftCard | integer | 0 or 1. 1 if this item is a regular gift card. | |||||||||||||||||||||||||||||||||||||||
nonDiscountable | integer | 0 or 1. 1 if this item is marked as non-discountable. Non-discountable products are related to calculateShoppingCart call. This field show only product's own flag, product can be non-discountable for card calculation if it's group, or any of group's parent group is marked as non-discountable, or if product is any type of gift card. Flag presently only applies to promotion discounts, product still can be discounted manually or using price list. | |||||||||||||||||||||||||||||||||||||||
itemLevelPromotionsDisabled | 1 or Null | Indicates that item-level promotions are disabled for this item. | |||||||||||||||||||||||||||||||||||||||
nonRefundable | integer | 0 or 1. 1 if this item is marked as non-refundable. | |||||||||||||||||||||||||||||||||||||||
manufacturerName | string | ||||||||||||||||||||||||||||||||||||||||
priorityGroupID | integer | Priority group ID. See getProductPriorityGroups. | |||||||||||||||||||||||||||||||||||||||
countryOfOriginID | integer | Country ID. See getCountries. | |||||||||||||||||||||||||||||||||||||||
brandID | integer | ||||||||||||||||||||||||||||||||||||||||
brandName | string | ||||||||||||||||||||||||||||||||||||||||
width | integer | Physical dimension. Unit depends on region, check your Erply account (typically inches or mm). | |||||||||||||||||||||||||||||||||||||||
height | integer | Physical dimension. Unit depends on region, check your Erply account (typically inches or mm). | |||||||||||||||||||||||||||||||||||||||
length | integer | Physical dimension. Unit depends on region, check your Erply account (typically inches or mm). | |||||||||||||||||||||||||||||||||||||||
lengthInMinutes | integer | Length in minutes, for a salon service. | |||||||||||||||||||||||||||||||||||||||
setupTimeInMinutes | integer | Service set-up time in minutes. | |||||||||||||||||||||||||||||||||||||||
cleanupTimeInMinutes | integer | Service cleanup time in minutes. | |||||||||||||||||||||||||||||||||||||||
walkInService | integer | 0 or 1. | |||||||||||||||||||||||||||||||||||||||
rewardPointsNotAllowed | integer | 0 or 1. | |||||||||||||||||||||||||||||||||||||||
nonStockProduct | integer | 0 or 1. | |||||||||||||||||||||||||||||||||||||||
isUsedProduct | integer | 0 or 1, 1 if this item is a used product. | |||||||||||||||||||||||||||||||||||||||
hasSerialNumbers | integer | 0 or 1. | |||||||||||||||||||||||||||||||||||||||
soldInPackages | integer | 0 or 1. | |||||||||||||||||||||||||||||||||||||||
cashierMustEnterPrice | integer | 0 or 1. If this field is set to 1, a prompt to enter price will appear in Berlin POS (3.26 and newer) every time the item is sold. (Even if the item has a price on product card or price lists, cashier will override the price every time, so the price lists will not apply.) This feature is used for random-weighted or random-priced items which are sold in units. (Inventory will be in units, but each unit might have a unique price given to it.) |
|||||||||||||||||||||||||||||||||||||||
netWeight | number | Item's net weight. Unit depends on region, check your Erply account (typically lbs or kg) | |||||||||||||||||||||||||||||||||||||||
grossWeight | number | Item's gross weight (with packaging). Unit depends on region, check your Erply account (typically lbs or kg) | |||||||||||||||||||||||||||||||||||||||
volume | integer | Item's fluid volume, eg. for beverages or perfumery. Unit depends on locale, check your Erply account (typically mL or fl oz) | |||||||||||||||||||||||||||||||||||||||
description | String (65535) - plain text | Product description in default language, plain text. | |||||||||||||||||||||||||||||||||||||||
longdesc | String (65535) - HTML | Longer product description in default language, HTML. | |||||||||||||||||||||||||||||||||||||||
descriptionENG | String (65535) - plain text | Product description in English (if needed besides default language), plain text. | |||||||||||||||||||||||||||||||||||||||
longdescENG | String (65535) - HTML | Longer product description in English (if needed besides default language), HTML. | |||||||||||||||||||||||||||||||||||||||
descriptionRUS | String (65535) - plain text | Product description in Russian (if needed besides default language), plain text. | |||||||||||||||||||||||||||||||||||||||
longdescRUS | String (65535) - HTML | Longer product description in Russian (if needed besides default language), HTML. | |||||||||||||||||||||||||||||||||||||||
descriptionFIN | String (65535) - plain text | Product description in Finnish (if needed besides default language), plain text. | |||||||||||||||||||||||||||||||||||||||
longdescFIN | String (65535) - HTML | Longer product description in Finnish (if needed besides default language), HTML. | |||||||||||||||||||||||||||||||||||||||
cost | number | Product unit cost. This is an informative, unchanging cost you can edit yourself on Erply's product card. To get real current costs for the batches in stock, use FIFOCost instead. |
|||||||||||||||||||||||||||||||||||||||
FIFOCost | number | Average product unit cost, for the batches currently in stock. To retrieve this field, set getFIFOCost = 1 . If you have specified warehouse ID, API returns FIFO cost of selected products in one specific warehouse. Otherwise, the cost given is an average over all warehouses. See the structure "warehouses" below to get costs for each warehouse separately.Cost = purchase price + freight and other additional costs. |
|||||||||||||||||||||||||||||||||||||||
purchasePrice | number | Average purchase price, for the batches currently in stock. Purchase price is basically the same as FIFO cost, but excluding freight and other additional costs. To retrieve this field, set getFIFOCost = 1 . If you have specified warehouse ID, API returns purchase price of selected products in one specific warehouse. Otherwise, the purchase price given is an average over all warehouses. See the structure "warehouses" below to get purchase prices for each warehouse separately. |
|||||||||||||||||||||||||||||||||||||||
backbarCharges | number | Amount of backbar charges for this service. | |||||||||||||||||||||||||||||||||||||||
serviceDuration | number | Service duration in minutes. | |||||||||||||||||||||||||||||||||||||||
revenueAccount | String | ||||||||||||||||||||||||||||||||||||||||
added | integer | Unix timestamp. Creation time. | |||||||||||||||||||||||||||||||||||||||
addedByUsername | String (16) | An identifier referring to the user who created this product. This is NOT actually the user's name; it's just a string, at most 16 characters long. However, typically it matches the first 16 characters of the user's name. | |||||||||||||||||||||||||||||||||||||||
lastModified | integer | Unix timestamp. Last modification time. | |||||||||||||||||||||||||||||||||||||||
lastModifiedByUsername | String (16) | An identifier that refers to the user who last modified this product. This is NOT actually the user's name; it's just a string, at most 16 characters long. However, typically it matches the first 16 characters of the user's name. | |||||||||||||||||||||||||||||||||||||||
images | array | Product pictures. For each picture, Erply provides 4 URLs for 4 different image sizes. These URLs must not be hotlinked — you need to download the images to your application and serve them from there. Access to images is currently limited and the images are not accessible by default. If you need to access the files, please contact Erply customer support. For each image, the following information is provided:
The same information is also available through a standalone API call getProductPictures. Use it if you need to fetch all images, or retrieve an image by ID. |
|||||||||||||||||||||||||||||||||||||||
warehouses | Dictionary | Warehouse-specific inventory quantities and/or unit costs. To retrieve inventory quantities per warehouse, specify getStockInfo = 1 . To retrieve costs, specify getFIFOCost = 1 . Keys of the array correspond to warehouse IDs. If only one warehouse was specified, the array will contain only one item. Each item has the following attributes: warehouseID - Integer - ID of the warehouse totalInStock - amount currently in stock reserved - amount reserved to customers free = totalInStock - reserved orderPending - amount that has already been ordered from suppliers (purchase orders that have been confirmed) reorderPoint - reorder point (if stock amount falls below that, it needs to be restocked) for this particular product, in this particular warehouse restockLevel - restocking level (when placing purchase orders, the item is by default restocked to specified amount) for this particular product, in this particular warehouse. FIFOCost - FIFO cost. purchasePrice - purchase price. |
|||||||||||||||||||||||||||||||||||||||
variationDescription | array | This field describes the color and size of a matrix variation. Only matrix variations (products that are a specific color and size of a matrix product) have this field. This array contains at most 3 elements (first, second and third dimension) and each item looks like this:
For Berlin POS and Touch POS, this field is not returned by default, but POS can request it with a special input parameter posGetVariationDescription = 1 . |
|||||||||||||||||||||||||||||||||||||||
productVariations | array | A list of the variation product IDs for this matrix product. Only matrix products (type = MATRIX) have this output field. If you need more detailed information about each item (IDs only are not sufficient), see the next field. |
|||||||||||||||||||||||||||||||||||||||
variationList | array | Detailed information about the variations of this matrix product. Only matrix products (type = MATRIX) have this output field. To retrieve this information, you need to set input parameter getMatrixVariations = 1 .Each item looks like this:
|
|||||||||||||||||||||||||||||||||||||||
parentProductID | integer | For matrix variations only: the ID of matrix parent product. | |||||||||||||||||||||||||||||||||||||||
containerID | integer | ID of another product, a beverage container that is always sold together with this item. | |||||||||||||||||||||||||||||||||||||||
containerName | String (255) | Name of the associated product, the beverage container. Set parameter getContainerInfo=1 to retrieve this field. | |||||||||||||||||||||||||||||||||||||||
containerCode | String (255) | Code of the associated product, the beverage container. Set parameter getContainerInfo=1 to retrieve this field. | |||||||||||||||||||||||||||||||||||||||
containerAmount | string | Number of beverage containers that this product contains. (Eg. if your product is "A Case of Coca-Cola", it might contain 24 cans.) Set parameter getContainerInfo=1 to retrieve this field. | |||||||||||||||||||||||||||||||||||||||
packagingType | string | Type of packaging, possible values - "ORDINARY_PACKAGE", "METAL_BEVERAGE_PACKAGE", "RETURNABLE_PACKAGE" or empty. | |||||||||||||||||||||||||||||||||||||||
packages | Dictionary | Deprecated - list of available product packages for this item in old format. | |||||||||||||||||||||||||||||||||||||||
productPackages | array | List of product packages. Information about the various-sized packages for this item (eg. a pack of 4, a crate of 20, a pallet of 500). Each package record looks like this:
To have getProducts return product parameters, set input field "getPackageInfo" to 1. Set the "lang" parameter to retrieve package names in an appropriate language. To add, modify or remove packages, see API calls saveProductPackage and deleteProductPackage. |
|||||||||||||||||||||||||||||||||||||||
replacementProducts | array | Replacement products for this item. This element is an array of product IDs. To retrieve this list, specify getReplacementProducts = 1 . |
|||||||||||||||||||||||||||||||||||||||
relatedProducts | array | Related items. Please note that on Erply product card, related products subsection is not visible by default. It needs to be specially enabled. This is an array of product IDs. To retrieve this list, specify getRelatedProducts = 1 . |
|||||||||||||||||||||||||||||||||||||||
relatedFiles | array | Product files (brochures, manuals, specifications). For each file, API provides a URL. Please note that the files (as well as product images) are not accessible by default. To get access to the files, please contact Erply customer support. For each file, the following information is provided:
To retrieve this information, specify getRelatedFiles = 1 .The same information is also available through a standalone API call getProductFiles. Use it if you need to fetch all files, or retrieve a file by ID. |
|||||||||||||||||||||||||||||||||||||||
productComponents | array | Composition, or recipe, of a BUNDLE or ASSEMBLY product. A bundle product does not have a stock quantity. When a bundle is sold, it is the components that are actually drawn from inventory. An assembly product, on the other hand, is an inventory item in its own right. It can be purchased as a whole, but it can also be "assembled"; this is a procedure that subtracts the components from inventory and takes the finished product into stock. Component list provides the following information:
To retrieve this information, specify getRecipes = 1 . |
|||||||||||||||||||||||||||||||||||||||
priceListPrice | number | Sales price (VAT excluded) that applies to specified sales location or customer. API returns this attribute if parameter "getPriceListPrices" is specified. | |||||||||||||||||||||||||||||||||||||||
priceListPriceWithVat | number | Sales price (VAT included) that applies to specified sales location or customer. API returns this attribute if parameter "getPriceListPrices" is specified. | |||||||||||||||||||||||||||||||||||||||
priceCalculationSteps | array | List of records. Each record looks like this:
API returns this attribute if parameter "getPriceCalculationSteps" is specified. |
|||||||||||||||||||||||||||||||||||||||
locationInWarehouse | string | Location in warehouse. DEPRECATED — this is a merged field that contains both the "location in warehouse" classifier selected from a drop-down, and the contents of the "location in warehouse" text field. To get these values separately, see the following fields. | |||||||||||||||||||||||||||||||||||||||
locationInWarehouseID | integer | ID of product's location in warehouse (selected from a drop-down list). To get a list of the classifiers, see getLocationsInWarehouse. | |||||||||||||||||||||||||||||||||||||||
locationInWarehouseName | string | Name of the "location in warehouse" that the previous ID refers to. | |||||||||||||||||||||||||||||||||||||||
locationInWarehouseText | string | Contents of the "location in warehouse" text field on product card. There are two options for classifying products - locations in warehouse can be predefined as a list and selected from a drop-down, or entered as free text on every product card. |
|||||||||||||||||||||||||||||||||||||||
reorderMultiple | integer | ||||||||||||||||||||||||||||||||||||||||
extraField1Title | String (255) | Title for product card extra field 1. (Users can customize field label if they want it to be named something else than "Extra Field 1"). The title is returned in specified language, or account's default language otherwise. API outputs this field, and all the following "extraField..." fields only if "Extra product card fields" module is enabled on your account. |
|||||||||||||||||||||||||||||||||||||||
extraField1ID | integer | ID of selected value in product card extra field 1. The field on product card is a drop-down, and the possible values can be retrieved with API call getProductExtraField1Values. | |||||||||||||||||||||||||||||||||||||||
extraField1Code | String (50) | Code of selected value in product card extra field 1. | |||||||||||||||||||||||||||||||||||||||
extraField1Name | String (255) | Name of selected value in product card extra field 1. | |||||||||||||||||||||||||||||||||||||||
extraField2Title | String (255) | Title for product card extra field 2. (Users can customize field label if they want it to be named something else than "Extra Field 2"). The title is returned in specified language, or account's default language otherwise. | |||||||||||||||||||||||||||||||||||||||
extraField2ID | integer | ID of selected value in product card extra field 2. The field on product card is a drop-down, and the possible values can be retrieved with API call getProductExtraField2Values. | |||||||||||||||||||||||||||||||||||||||
extraField2Code | String (50) | Code of selected value in product card extra field 2. | |||||||||||||||||||||||||||||||||||||||
extraField2Name | String (255) | Name of selected value in product card extra field 2. | |||||||||||||||||||||||||||||||||||||||
extraField3Title | String (255) | Title for product card extra field 3. (Users can customize field label if they want it to be named something else than "Extra Field 3"). The title is returned in specified language, or account's default language otherwise. | |||||||||||||||||||||||||||||||||||||||
extraField3ID | integer | ID of selected value in product card extra field 3. The field on product card is a drop-down, and the possible values can be retrieved with API call getProductExtraField3Values. | |||||||||||||||||||||||||||||||||||||||
extraField3Code | String (50) | Code of selected value in product card extra field 3. | |||||||||||||||||||||||||||||||||||||||
extraField3Name | String (255) | Name of selected value in product card extra field 3. | |||||||||||||||||||||||||||||||||||||||
extraField4Title | String (255) | Title for product card extra field 4. (Users can customize field label if they want it to be named something else than "Extra Field 4"). The title is returned in specified language, or account's default language otherwise. | |||||||||||||||||||||||||||||||||||||||
extraField4ID | integer | ID of selected value in product card extra field 4. The field on product card is a drop-down, and the possible values can be retrieved with API call getProductExtraField4Values. | |||||||||||||||||||||||||||||||||||||||
extraField4Code | String (50) | Code of selected value in product card extra field 4. | |||||||||||||||||||||||||||||||||||||||
extraField4Name | String (255) | Name of selected value in product card extra field 4. | |||||||||||||||||||||||||||||||||||||||
salesPackageClearBrownGlass | number | Sales package - amount of clear/brown glass. To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
salesPackageGreenOtherGlass | number | Sales package - amount of green/other glass. To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
salesPackagePlasticPpPe | number | Sales package - amount of plastic (PP, PE). To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
salesPackagePlasticPet | number | Sales package - amount of plastic (PET). To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
salesPackageMetalFe | number | Sales package - amount of metal (Fe). To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
salesPackageMetalAl | number | Sales package - amount of metal (Al). To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
salesPackageOtherMetal | number | Sales package - amount of other metal. To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
salesPackageCardboard | number | Sales package - amount of cardboard. To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
salesPackageWood | number | Sales package - amount of wood. To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
salesPackagePaperAndCardboardMono | number | Sales package - paper and cardboard (mono). To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
groupPackagePaper | number | Group package - amount of paper. To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
groupPackagePlastic | number | Group package - amount of plastic. To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
groupPackageMetal | number | Group package - amount of metal. To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
groupPackageWood | number | Group package - amount of wood. To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
groupPackageFerrousMetal | number | Group package - amount of ferrous metal. To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
groupPackageNonFerrousMetal | number | Group package - amount of non-ferrous metal (incl. aluminium). To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
transportPackageWood | number | Transport package - amount of wood. To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
transportPackagePlastic | number | Transport package - amount of plastic. To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
transportPackageCardboard | number | Transport package - amount of cardboard. To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
transportPackageFerrousMetal | number | Transport package - amount of ferrous metal. To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
transportPackageNonFerrousMetal | number | Transport package - amount of non-ferrous metal (incl. aluminium). To retrieve this field, set input parameter getPackagingMaterials = "1" . |
|||||||||||||||||||||||||||||||||||||||
registryNumber | string | The product's identification number in a state registry (eg. for alcoholic beverages). | |||||||||||||||||||||||||||||||||||||||
alcoholPercentage | number | Percentage of alcohol by volume in the beverage. | |||||||||||||||||||||||||||||||||||||||
batches | string | List of current batches in stock (batch identification numbers), separated by semicolons. This field is only meant to be used for specific reporting purposes (eg. for alcoholic beverages), where batches are identified by an official identification number. Erply does not manage these "batches" automatically; it only allows to associate a sales document row with a batch number. | |||||||||||||||||||||||||||||||||||||||
exciseDeclaration | string | Number and date of the excise declaration for this product (eg. an alcoholic beverage), and other relevant information about the declaration | |||||||||||||||||||||||||||||||||||||||
exciseFermentedProductUnder6 | number | ||||||||||||||||||||||||||||||||||||||||
exciseWineOver6 | number | ||||||||||||||||||||||||||||||||||||||||
exciseFermentedProductOver6 | number | ||||||||||||||||||||||||||||||||||||||||
exciseIntermediateProduct | number | ||||||||||||||||||||||||||||||||||||||||
exciseOtherAlcohol | number | ||||||||||||||||||||||||||||||||||||||||
excisePackaging | number | ||||||||||||||||||||||||||||||||||||||||
attributes | array | Additional attributes. Each item looks like this:
|
|||||||||||||||||||||||||||||||||||||||
longAttributes | array | Additional attributes — longer strings. Each item looks like this:
|
|||||||||||||||||||||||||||||||||||||||
parameters | array | List of parameters. "Product parameters" is a Erply add-on module, primarily for web shops. It needs to be set up in a specific way, and is not enabled by default. If you are looking for a simple way to attach extra key-value data to products, see "Attributes" above. To work with parameters, you first need to define "parameter groups" in Erply backend, and associate these with product groups. Each group defines parameters for a specific type of product. Eg.: inner and outer diameter for bearings; volume, energy rating and physical dimensions for refrigerators etc. Each parameter record looks like this:
To have getProducts return product parameters, set input field "getParameters" to 1. |
|||||||||||||||||||||||||||||||||||||||
productReplacementHistory | array | Product Replacement History. Only returned when getProductReplacementHistory flag is used. Shows what products replace this product and what product have been replaced by it. This list can be managed with the new PIM api.
|