Data type OrderDetailData
Description:
TYRIOS saves order positions in an OrderDetailData object. It is extremely likely that the data structure depends on your concrete installation due to the different supported systems (e.g. configurable orders, POS based orders, production orders, recurring orders,...) . For creating orders using the API, this is not relevant, as only the data is important you are using. However, if you want to update an order, you really need to be careful to not overwrite existing data.
Attention
Please be aware: TYRIOS is an aspect-oriented system and the concrete data structure depends on your system configuration. Especially in case you want to update existing data, please be aware to take all available fields into account or use an update specific API endpoint to avoid data loss.
General data structure
In general, an OrderDetailData object has the following data structure:
{
"id": 1349, // id of the OrderDetailData, automatically assigned
"OrderData": 697, // id of the OrderData, required, automatically assigned by the API call
"ShopCategoryData": 3, // ID of the ShopCategoryData which was used to add this OrderDetailData, option
"ProductData": null, // ProductData object or ProductData id, optional
"shippingTime": null, // specifies the delivery time for this position
"varyingPrice": null, // specifies a varying price for this position
"productImage": null, // MediahelperFile object or id, optional
"position": null, // position of the order, optional
"materialNumber": "1234", // material number of the used product, optional
"name": "product name", // name of the position, required, max 255 characters
"description": null, // description of the position, optional
"amount": 1, // amount of the position
"singlePrice": 102.67960594958, // single net price, required
"singleBasePrice": 0, // single base net price, required for revenue calculation. if not given, 0
"singleUVP": null, // single list net price, optional
"singleOriginalPrice": null, // single original net price, used to identify marketing actions
"discount": null, // potential discount in percent, max 1
"carry": false, // specifies that this position is not delivered
"freeDelivery": false, // specifies if this position is delivered for free
"tax": 19, // tax
"unit": "Stk", // unit
"productVersion": 9, // specifies the version of the product which was ordered
"productType": "2", // specifies the product data type
"isShoppingCardOfferRequestElement": false,
"weight": null,
"limitPaymentOption": false, // specifies if the payment options are limited
"PaymentOption": null, // array of potential payment options
"limitDeliveryOptionData": false, // specifies if the delivery options are limited
"DeliveryOptionData": null, // array of potential delivery options
"alternativeFakturaDescription": null,
"MediahelperFile": null, // array of MediahelperFile
"OrderDetailDataCommentData": null,
"hasSubPositions": false,
"OrderDetailDataSubPosition": null, // array to potential sub positions
"brand": null,
"color": [], // array of string
"gender": null,
"ageGroup": null,
"material": [], // array of string
"pattern": null,
"size": null,
"productTags": [],
"stockState": "2",
"ProductGroupData": null, // ProductGroupData id or object
"rejectRevocationSupport": false,
"reason4rejectRevocationSupport": null, // string
"OrderDetailDataState": null, // OrderDetailData state for internal workflow management
"customsTariffNumber": null,
"countryOfOrigin": null,
"detailType": "default",
"FreeOrderDetailDeliveryOptionTerm": null,
"OrderDetailVariantData": null,
"ProductDataVariantData": null,
}
Relation with ProductData
An OrderDetailData is very frequently linked to a ProductData object (e.g. in a classical online shop). TYRIOS is however not limited to this scenario. You can also create complete individual OrderDetailData objects without any refernce to the PIM system. This makes it possible to use the system also for service related orders. When you link to a ProductData, you nevertheless need to fill the rest of the data as it is not automatically converted. Please have a look to the API because this is described in detail there.
Storage of analysis data
An OrderDetailData typically saves all required statistical data on itself. It does not rely that the ProductData will still be there in time of analysis. Thus we highly recommend to also provide all statistica data like weight, color, etc.