Order API
Orders administration. Searching, updating, etc.
Order States
GET /api/app/order/state
Request
GET /api/app/order/state HTTP/1.1
Host: yourshopname.com
Authorization: Bearer ACCESS_TOKEN_STRING
Accept-Encoding: gzip
Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Encoding: br
{
"_type": "Pagination"
"pageNumber": 1
"hasNextPage": false
"items": [
{
"_type": "NewOrderState",
"codename": "new"
},
{
"_type": "PendingOrderState",
"codename": "pending"
},
{
"_type": "SettledOrderState"
"codename": "settled"
},
{
"_type": "CancelledOrderState",
"codename": "cancelled"
},
{
"_type": "PendingOrderState"
"codename": "toBePacked"
},
{
"_type": "PendingOrderState"
"codename": "packed"
}
]
}
Pagination Type
pageNumber: inthasNextPage: boolitems: array
OrderState Type
codename: string
NewOrderState Type
- extends
OrderState
PendingOrderState Type
- extends
OrderState
SettledOrderState Type
- extends
OrderState
CancelledOrderState Type
- extends
OrderState
Order Search
GET /api/app/order/search
Request Query Parameters
searchPhrase: string (optional)- Search phrasepage: int (optional)- Page number - default 1orderStates: string[] (optional)- Order state codenames from/api/app/order/state. Multiple values should be separated with comma.dateType: string (optional)- Date type ofdateFromanddateToparameters. Possible values:orderDatetime,invoiceIssueDate,invoiceDueDate,invoiceTaxableSupplyDatedateFrom: string (optional)- Date fromdateTo: string (optional)- Date toisPaid: bool (optional)- Only paid orders
Request
GET /api/app/order/search?page=4&
searchPhrase=123&
orderStates=new,pending&
dateType=orderDatetime&
dateFrom=2020-01-22&
dateTo=2020-01-23&isPaid=false HTTP/1.1
Host: yourshopname.com
Authorization: Bearer ACCESS_TOKEN_STRING
Accept-Encoding: gzip
Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Encoding: br
{
"_type": "Pagination",
"pageNumber": 4,
"hasNextPage": true,
"items": [
{
"_type": "OrderDetail",
...
... @see Get Order Detail
}
]
}
Order Detail
Get Order Detail
GET /api/app/order/detail/{code}
Path Parameter
code: string
Request
GET /api/app/order/detail/1234 HTTP/1.1
Host: yourshopname.com
Authorization: Bearer ACCESS_TOKEN_STRING
Accept-Encoding: gzip
Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Encoding: br
{
"_type": "OrderDetail",
"code": "1234",
"uuid": "c23ed8bd-f801-4fcb-b57c-8273ac789671",
"orderState": {
"_type": "NewOrderState",
"codename": "new"
},
"invoiceNumber": "123456",
"invoiceVariableNumber": 123456,
"origin": {
"_type": "ShopOrderOrigin",
"statusId": null
},
"isPaid": false,
"creationDatetime": "2021-03-25T16:11:07+01:00",
"userAccount": {
"_type": "UserAccount",
"email": "test@test.com",
"uuid": "414f4f78-0f8b-4c1b-bef5-07748dce30e1"
},
"totalPrice": {
"_type": "Price",
"amountWithVat": 24762.65,
"amountWithoutVat": 20465.0,
"currencyCode": "CZK",
"vatAmount": 4297.65,
"vatRateValue": 21.0
},
"comment": "some comment",
"internalNote": "some internal note",
"tags": [
{
"_type": "OrderTag",
"name": "tag 1"
},
{
"_type": "OrderTag",
"name": "tag 2"
}
],
"isProcessedEmailSent": false,
"isShippedEmailSent": false,
"isReadyForPersonalPickupEmailSent": false,
"isCancelledEmailSent": false
"billingAddress": {
"_type": "BillingAddress",
"companyIdentification": {
"_type": "CompanyIdentification",
"companyName": "Awesome company",
"companyRegNumber": "12345",
"vatIdNumber": "54321",
"taxIdNumber": "78945"
},
"postalAddress": {
"_type": "PostalAddress",
"streetAndHouseNumber": "Test 1",
"city": "Ostrava",
"postalCode": "78912",
"country": "CZ",
"detailedDescription": "First floor"
}
},
"deliveryAddress": {
"_type": "DeliveryAddress",
"email": "delivery@test.com",
"companyName": "Some company"
"personName": {
"_type": "PersonName",
"givenName": "Steve",
"familyName": "Doe",
"honorificPrefix": "Ing.",
"honorificSuffix": "Phd"
},
"phoneNumber": {
"_type": "PhoneNumber",
"countryPrefix": "420",
"nationalNumber": "777666555"
},
"postalAddress": {
"_type": "PostalAddress",
"streetAndHouseNumber": "Test 2",
"city": "Ostrava",
"postalCode": "78912",
"country": "CZ",
"detailedDescription": "Second floor"
}
},
"contactAddress": {
"_type": "ContactAddress",
"email": "test@test.com"
"personName": {
"_type": "PersonName",
"givenName": "John",
"familyName": "Doe",
"honorificPrefix": "Ing.",
"honorificSuffix": "Phd"
},
"phoneNumber": {
"_type": "PhoneNumber",
"countryPrefix": "420",
"nationalNumber": "789456123"
}
},
"orderItems": {
"_type": "Pagination",
"pageNumber": 1,
"hasNextPage": false,
"items": [
{
"_type": "DeliveryOrderItem",
"uuid": "36155c3f-1a1f-42a8-9d57-9fee3ed7e0d6",
"name": "Delivery 1",
"codename": "delivery1",
"count": 1,
"customCode": "DEV1",
"linkCustomCode": "DEV1PAY1",
"deliveryMethodCodename": "upsParcelShop",
"totalPrice": {
"_type": "Price",
"amountWithVat": 121.0,
"amountWithoutVat": 100.0,
"currencyCode": "CZK",
"vatAmount": 21.0,
"vatRateValue": 21.0
},
"unitPrice": {
"_type": "Price",
"amountWithVat": 121.0,
"amountWithoutVat": 100.0,
"currencyCode": "CZK",
"vatAmount": 21.0,
"vatRateValue": 21.0
},
"weight": {
"_type": "WeightParameter",
"value": 20.0,
"unit": "kg"
},
"store": {
"_type": "Store",
"code": "6532"
}
},
{
"_type": "PaymentOrderItem",
"uuid": "71df8dc1-0651-4ca5-8edc-d8995f514132",
"name": "Payment 1",
"codename": "payment1",
"count": 1,
"customCode": "PAY1",
"paymentMethodCodename": "stripe_all",
"totalPrice": {
"_type": "Price",
"amountWithVat": 121.0,
"amountWithoutVat": 100.0,
"currencyCode": "CZK",
"vatAmount": 21.0,
"vatRateValue": 21.0
},
"unitPrice": {
"_type": "Price",
"amountWithVat": 121.0,
"amountWithoutVat": 100.0,
"currencyCode": "CZK",
"vatAmount": 21.0,
"vatRateValue": 21.0
}
},
{
"_type": "ProductOrderItem",
"uuid": "8a32e944-f040-47bf-9606-1ceb6f46e41a",
"name": "Product 1",
"codename": "product1",
"count": 2,
"totalPrice": {
"_type": "Price",
"amountWithVat": 24200.0,
"amountWithoutVat": 20000.0,
"currencyCode": "CZK",
"vatAmount": 4200.0,
"vatRateValue": 21.0
},
"unitPrice": {
"_type": "Price",
"amountWithVat": 12100.0,
"amountWithoutVat": 10000.0,
"currencyCode": "CZK",
"vatAmount": 2100.0,
"vatRateValue": 21.0
},
"retailPrice": {
"_type": "Price",
"amountWithVat": 12100.0,
"amountWithoutVat": 10000.0,
"currencyCode": "CZK",
"vatAmount": 2100.0,
"vatRateValue": 21.0
},
"strikethroughPrice": null,
"weight": {
"_type": "WeightParameter",
"value": 10.0,
"unit": "kg"
},
"product": {
"_type": "ShoppingProduct",
"codename": "product1",
"productCodes" : [
{
"_type": "ProductCode",
"type": "ean",
"abbreviation": "EAN",
"code": "6117148527048",
"codeSimplified": "6117148527048"
},
{
"_type": "ProductCode",
"type": "custom",
"abbreviation": "SKU",
"code": "12345",
"codeSimplified": "12345"
},
{
"_type": "ProductCode",
"type": "manufacturer",
"abbreviation": "MPN",
"code": "GDB1330",
"codeSimplified": "GDB1330"
},
{
"_type": "ProductCode",
"type": "oem",
"abbreviation": "OEM",
"code": "1J0 698 451 D",
"codeSimplified": "1J0698451D"
}
]
}
},
{
"_type": "CommonOrderItem",
"uuid": "b846e366-981e-42c3-9930-ed03fdee6553",
"name": "Common 1",
"codename": "common1",
"count": 3,
"totalPrice": {
"_type": "Price",
"amountWithVat": 163.35,
"amountWithoutVat": 135.0,
"currencyCode": "CZK",
"vatAmount": 28.35,
"vatRateValue": 21.0
},
"unitPrice": {
"_type": "Price",
"amountWithVat": 54.45,
"amountWithoutVat": 45.0,
"currencyCode": "CZK",
"vatAmount": 9.45,
"vatRateValue": 21.0
}
},
{
"_type": "DepositOrderItem",
"uuid": "c99a86db-af6b-4946-9601-20014b72add5 ",
"name": "Deposit to Product 1",
"codename": "depositProduct1",
"count": 2,
"totalPrice": {
"_type": "Price",
"amountWithVat": 180.0,
"amountWithoutVat": 150.0,
"currencyCode": "CZK",
"vatAmount": 30.0,
"vatRateValue": 21.0
},
"unitPrice": {
"_type": "Price",
"amountWithVat": 90.75,
"amountWithoutVat": 75.0,
"currencyCode": "CZK",
"vatAmount": 15.75,
"vatRateValue": 21.0
},
"product": {
"_type": "ShoppingProduct",
"codename": "product1",
"productCodes" : [
{
"_type": "ProductCode",
"type": "ean",
"abbreviation": "EAN",
"code": "6117148527048",
"codeSimplified": "6117148527048"
},
{
"_type": "ProductCode",
"type": "custom",
"abbreviation": "SKU",
"code": "12345",
"codeSimplified": "12345"
},
{
"_type": "ProductCode",
"type": "manufacturer",
"abbreviation": "MPN",
"code": "GDB1330",
"codeSimplified": "GDB1330"
},
{
"_type": "ProductCode",
"type": "oem",
"abbreviation": "OEM",
"code": "1J0 698 451 D",
"codeSimplified": "1J0698451D"
}
]
}
},
{
"_type": "BonusPointsOrderItem",
"uuid": " b4a6578c-9434-4ab6-9b15-015446c9cc3e ",
"name": "Applied bonus points",
"codename": "bonusPoints1",
"count": 1,
"totalPrice": {
"_type": "Price",
"amountWithVat": 24.2,
"amountWithoutVat": 20.0,
"currencyCode": "CZK",
"vatAmount": 4.2,
"vatRateValue": 21.0
},
"unitPrice": {
"_type": "Price",
"amountWithVat": 24.2,
"amountWithoutVat": 20.0,
"currencyCode": "CZK",
"vatAmount": 4.2,
"vatRateValue": 21.0
}
}
]
},
"transportUrl": "sometransporturl.com/1234",
"transportInfo": "Some transport info",
"isReverseCharged": false
}
OrderDetail Type
code: stringuuid: stringorderState: OrderStateinvoiceNumber: stringinvoiceVariableNumber: intorigin: OrderOriginisPaid: boolcreationDatetime: stringuserAccount: UserAccounttotalPrice: Pricecomment: stringinternalNote: stringtags: OrderTag[]isProcessedEmailSent: boolisShippedEmailSent: boolisReadyForPersonalPickupEmailSent: boolisCancelledEmailSent: boolbillingAddress: BillingAddressdeliveryAddress: DeliveryAddresscontactAddress: ContactAddressorderItems: PaginationtransportUrl: string- It is for the full URL for tracking the shipment.transportInfo: string- It is for any text information that is related to the transport for the given order. For example, it can contain the shipment number with any text.isReverseCharged: bool
Update OrderDetail
PATCH /api/app/order/detail/{code}
Request Path Parameter
code: string
Request
PATCH /api/app/order/detail/1234 HTTP/1.1
Host: yourshopname.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN_STRING
Accept-Encoding: gzip
{
"orderState": {
"_type": "SettledOrderState",
"codename": "settled"
}
"isPaid": true,
"transportUrl": "sometransporturl.com/4321",
"transportInfo": "Updated transport info"
}
Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Encoding: br
{
"_type": "OrderDetail",
"code": "1234",
"uuid": "c23ed8bd-f801-4fcb-b57c-8273ac789671",
"orderState": {
"_type": "SettledOrderState",
"codename": "settled",
"name": "VyÅ™Ãzena"
},
"invoiceNumber": "123456",
"invoiceVariableNumber": 123456,
"origin": {
"_type": "ShopOrderOrigin",
"statusId": null
},
"isPaid": true,
"transportUrl": "sometransporturl.com/4321",
"transportInfo": "Updated transport info"
...
... @see Get Order Detail
}
Reverse Charge OrderDetail
PATCH /api/app/order/detail/reverse-charge/{code}
Request Path Parameter
code: string- Order code
Request
POST /api/app/order/detail/reverse-charge/1234 HTTP/1.1
Host: yourshopname.com
Authorization: Bearer ACCESS_TOKEN_STRING
Accept-Encoding: gzip
Content-Type: application/json
Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Encoding: br
{
"_type": "OrderDetail",
"code": "1234",
"uuid": "c23ed8bd-f801-4fcb-b57c-8273ac789671",
"orderState": {
"_type": "SettledOrderState",
"codename": "settled",
"name": "VyÅ™Ãzena"
},
"invoiceNumber": "123456",
"invoiceVariableNumber": 123456,
"origin": {
"_type": "ShopOrderOrigin",
"statusId": null
},
"isPaid": true,
"transportUrl": "sometransporturl.com/4321",
"transportInfo": "Updated transport info"
"totalPrice": {
"_type": "Price",
"amountWithVat": 20465.0,
"amountWithoutVat": 20465.0,
"currencyCode": "CZK",
"vatAmount": 0.0,
"vatRateValue": 0.0
},
"isReverseCharged": true
...
... @see Get Order Detail
}
Order Items
Get Order Items
GET /api/app/order/items/{code}
Request path parameter
code: string- Order code
Request query parameter
page: int
Request
GET /api/app/order/items/1234?page=2 HTTP/1.1
Host: yourshopname.com
Authorization: Bearer ACCESS_TOKEN_STRING
Accept-Encoding: gzip
Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Encoding: br
{
"_type": "Pagination",
"pageNumber": 2,
"hasNextPage": false,
"items": [
{
"_type": "ProductOrderItem",
...
... @see Get Order Item"
}
]
}
Get Order Item
GET /api/app/order/item/{uuid}
Request Path Parameter
uuid: UUID string
Request
GET /api/app/order/item/8a32e944-f040-47bf-9606-1ceb6f46e41a HTTP/1.1
Host: yourshopname.com
Authorization: Bearer ACCESS_TOKEN_STRING
Accept-Encoding: gzip
Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Encoding: br
{
"_type": "ProductOrderItem",
"uuid": "8a32e944-f040-47bf-9606-1ceb6f46e41a",
"name": "Product 1",
"codename": "product1",
"count": 2,
"totalPrice": {
"_type": "Price",
"amountWithVat": 24200.0,
"amountWithoutVat": 20000.0,
"currencyCode": "CZK",
"vatAmount": 4200.0,
"vatRateValue": 21.0
},
"unitPrice": {
"_type": "Price",
"amountWithVat": 12100.0,
"amountWithoutVat": 10000.0,
"currencyCode": "CZK",
"vatAmount": 2100.0,
"vatRateValue": 21.0
},
"retailPrice": {
"_type": "Price",
"amountWithVat": 12100.0,
"amountWithoutVat": 10000.0,
"currencyCode": "CZK",
"vatAmount": 2100.0,
"vatRateValue": 21.0
},
"strikethroughPrice": null,
"weight": {
"_type": "WeightParameter",
"value": 10.0,
"unit": "kg"
},
"product": {
"_type": "ShoppingProduct",
"codename": "product1",
"productCodes" : [
{
"_type": "ProductCode",
"type": "ean",
"abbreviation": "EAN",
"code": "6117148527048",
"codeSimplified": "6117148527048"
},
{
"_type": "ProductCode",
"type": "custom",
"abbreviation": "SKU",
"code": "12345",
"codeSimplified": "12345"
},
{
"_type": "ProductCode",
"type": "manufacturer",
"abbreviation": "MPN",
"code": "GDB1330",
"codeSimplified": "GDB1330"
},
{
"_type": "ProductCode",
"type": "oem",
"abbreviation": "OEM",
"code": "1J0 698 451 D",
"codeSimplified": "1J0698451D"
}
]
},
"supply": {
"_type": "Supply",
"type": "import",
"supplierCodename": "supplier1",
"supplierName": "Supplier 1",
"code": "123456",
"orderingNumber": "789546"
}
}
OrderItem Type
uuid: stringname: stringcodename: stringcount: inttotalPrice: PriceunitPrice: Priceweight: float
ProductOrderItem Type
- extends
OrderItem product: ShoppingProduct- ShoppingProduct readonlysupply: Supply(optional)- readonly SupplyretailPrice: ?Price- Price for non-logged in customers at the time of purchase.strikthroughPrice: ?Price- Strikthrough price displayed for the particular customer at the time of purchase.
DeliveryOrderItem Type
- extends
OrderItem store: Store- readonlycustomCode: string- readonlylinkCustomCode: string- readonlydeliveryMethodCodename: string- readonly
PaymentOrderItem Type
- extends
OrderItem customCode: string- readonlypaymentMethodCodename: string- readonly
DepositOrderItem Type
- extends
OrderItem product: ShoppingProduct- readonly
RoundingOrderItem Type
- extends
OrderItem
CouponOrderItem Type
- extends
OrderItem
CommonOrderItem Type
- extends
OrderItem
BonusPointsOrderItem Type
- extends
OrderItem
AdditionalServiceOrderItem Type
- extends
OrderItem
Store Type
code: string- Code of the store
Price Type
amountWithVat: floatamountWithoutVat: floatcurrencyCode: stringvatAmount: floatvatRateValue: float
Supply type
type: string- One ofcustom,import,warehousesupplierCodename: string(optional)- unique identifier of suppliersupplierName: string(optional)- display name of suppliercode: string(optional)- unique code for given supplierorderingNumber: string(optional)- ordering number
Update Order Item
PATCH /api/app/order/item/{uuid}
Request Path Parameter
uuid: string
Request
PATCH /api/app/order/item/8a32e944-f040-47bf-9606-1ceb6f46e41a HTTP/1.1
Host: yourshopname.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN_STRING
Accept-Encoding: gzip
{
"count": 10
}
Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Encoding: br
{
"_type:": "Pagination",
"pageNumber": 1,
"hasNextPage": false,
"items":[
{
"_type": "ProductOrderItem",
"uuid": "8a32e944-f040-47bf-9606-1ceb6f46e41a",
"name": "Product 1",
"codename": "product1",
"count": 10,
"totalPrice": {
"_type": "Price",
"amountWithVat": 24200.0,
"amountWithoutVat": 20000.0,
"currencyCode": "CZK",
"vatAmount": 4200.0,
"vatRateValue": 21.0
},
"unitPrice": {
"_type": "Price",
"amountWithVat": 12100.0,
"amountWithoutVat": 10000.0,
"currencyCode": "CZK",
"vatAmount": 2100.0,
"vatRateValue": 21.0
},
"retailPrice": {
"_type": "Price",
"amountWithVat": 12100.0,
"amountWithoutVat": 10000.0,
"currencyCode": "CZK",
"vatAmount": 2100.0,
"vatRateValue": 21.0
},
"strikethroughPrice": null,
"weight": {
"_type": "WeightParameter",
"value": 10.0,
"unit": "kg"
}
}
]
}
Create New Order Item
PUT /api/app/order/item/{code}
Request path parameter
code: string- Order code
Request
PUT /api/app/order/item/1234 HTTP/1.1
Host: yourshopname.com
Content-Type: application/json
Authorization: Bearer ACCESS_TOKEN_STRING
Accept-Encoding: gzip
{
"_type": "ProductOrderItem",
"codename": "product1",
"count": 2
}
Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Encoding: br
{
"_type:": "Pagination",
"pageNumber": 1,
"hasNextPage": false,
"items":[
{
"_type": "ProductOrderItem",
"uuid": "8a32e944-f040-47bf-9606-1ceb6f46e41a",
"name": "Product 1",
"codename": "product1",
"count": 2,
"totalPrice": {
"_type": "Price",
"amountWithVat": 24200.0,
"amountWithoutVat": 20000.0,
"currencyCode": "CZK",
"vatAmount": 4200.0,
"vatRateValue": 21.0
},
"unitPrice": {
"_type": "Price",
"amountWithVat": 12100.0,
"amountWithoutVat": 10000.0,
"currencyCode": "CZK",
"vatAmount": 2100.0,
"vatRateValue": 21.0
},
"retailPrice": {
"_type": "Price",
"amountWithVat": 12100.0,
"amountWithoutVat": 10000.0,
"currencyCode": "CZK",
"vatAmount": 2100.0,
"vatRateValue": 21.0
},
"strikethroughPrice": null,
"weight": {
"_type": "WeightParameter",
"value": 10.0,
"unit": "kg"
}
}
]
}
Delete Order Item
DELETE /api/app/order/item/{uuid}
Request Path Parameter
uuid: UUID string
Request
DELETE /api/app/order/item/8a32e944-f040-47bf-9606-1ceb6f46e41a HTTP/1.1
Host: yourshopname.com
Authorization: Bearer ACCESS_TOKEN_STRING
Accept-Encoding: gzip
Response
HTTP/1.1 200 OK
Content-Encoding: br
Order History
Get Order History
GET /api/app/order/history/{code}
Request path parameter
code: string- Order code
Request query parameter
page: int (optional)- Page number - default 1
Request
GET /api/app/order/items/1234?page=2 HTTP/1.1
Host: yourshopname.com
Authorization: Bearer ACCESS_TOKEN_STRING
Accept-Encoding: gzip
Response
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Content-Encoding: br
{
"_type": "Pagination",
"pageNumber": 2,
"hasNextPage": false,
"items": [
{
"_type": "OrderHistory",
"type": "InsertedOrderedProductHistory",
"orderCode": "1234",
"dateTime": "2021-04-22T09:38:15+02:00",
"parameters": {
"name": "Product 1",
"codename": "product1"
},
"userAccount": {
"_type": "UserAccount",
"email": "test@test.com",
"uuid": "d0bf1a66-a9e6-4f00-9f68-837012b63af2"
},
"orderItemUuid": "42570ab0-4ef0-44b2-9089-f930ccf9caff"
}
]
}
OrderHistory Type
type: string- type of OrderHistoryorderCode: string|null- code of orderdateTime: string- Date and time string of order historyparameters: object- additional parameters describing order historyuserAccount: UserAccount|null- user account infoorderItemUuid: string|null- UUID string of related Order Item
Order Use-case
POST /api/app/order/use-case
Request
POST /api/app/order/use-case HTTP/1.1
Host: yourshopname.com
Authorization: Bearer ACCESS_TOKEN_STRING
Accept-Encoding: gzip
Content-Type: application/json
{
"_type": "SendEmailOrderUseCase",
"orderFilter": {
"_type": "OrderFilter",
"codes": ["1234", "6541"]
},
"emailUseCaseType": "readyForPersonalPickup",
"isForceSend": false
}
Response
HTTP/1.1 200 OK
Content-Encoding: br
{
"_type": "OrderUseCaseResult"
}
OrderUseCase Type
orderFilter: OrderFilter- Order filter
OrderFiler Type
codes: string[]- array of Order codes, maximum: 30 codes
Request Type SendEmailOrderUseCase
- extends
OrderUseCase emailUseCaseType: string- Possible values:readyForPersonalPickup,cancelled,edited,processed,shippedisForceSend: bool
Order JSON
The full order data for the given order code serialized as JSON.
The JSON is derived from the order's XML representation. It preserves the same hierarchy and data as the XML export, but attributes become @-prefixed keys, text content becomes #text values, and repeated sibling elements are collected into arrays.
JSON Structure Notes
How XML maps to JSON
-
XML attributes become object keys prefixed with
@.<status code="1" name="New"/>becomes
"status": [ { "@code": "1", "@name": "New" } ] -
Text content of an element becomes
"#text"when the element also has attributes or child elements.<comment>Please leave at door</comment>becomes
"comment": [ { "#text": "Please leave at door" } ] -
Repeated child elements with the same name under the same parent become arrays.
<ean>1234567890123</ean> <ean>9876543210987</ean>becomes
"ean": [ { "#text": "1234567890123" }, { "#text": "9876543210987" } ] -
Single child elements also become arrays with one item, because
XmlUtils::toArray()groups children by tag name.<time datetime="2024-01-15 09:30:00" timestamp="1705311000" timezone="Europe/Prague"/>becomes
"time": [ { "@datetime": "2024-01-15 09:30:00", "@timestamp": "1705311000", "@timezone": "Europe/Prague" } ] -
Empty elements (no attributes, no text, no children) become empty objects
{}. -
CDATA sections are treated as plain text and appear under
#text.
Element Reference
The JSON object is the root <order> element serialized as an array. It has the following keys:
@uuid: Unique order identifier (UUID v4).@code: Human-readable order code (e.g.ORD-2024-001).@variableNumber: Legacy variable symbol for bank transfers. Same value as@paymentReferenceNumber, kept for backward compatibility.@paymentReferenceNumber: Payment reference number used for matching incoming bank transfers.@invoiceNumber: Issued invoice number, if any. Empty string when no invoice has been issued.@originName: Order origin channel (e.g."eshop","heureka","zbozi").@originStatusId: Marketplace-specific order status ID. Only present for marketplace-origin orders.@originCode: Marketplace-specific order code. Only present for marketplace-origin orders.@currencyCode: ISO 4217 currency code of the order (e.g.CZK,EUR).@languageCode: ISO 639-1 language code of the order (e.g.cs,en,sk).@domainName: Shop domain withoutwwwprefix.status: Array with one object containing@codeand@name.time: Array with one object containing@datetime,@timestamp, and@timezone.money: Array with one object containing@totalPrice,@totalPriceWithoutVat, and@currencyCode.comment: Array with one object containing#text. Only present when the customer left a comment.internalNote: Array with one object containing#text. Only present when set by staff.subscribedToNewsletter: Array with one object containing@email. Only appears when the contact email belongs to a user account with an active newsletter agreement.user: Array with one object for registered user accounts linked to the order contact email. Omitted entirely for guest checkouts. Contains:@id,@uuid,@email,@codename,@registered,@bannedinternalNote: Array with one object containing#text. Only present when non-empty.lastEditTime: Array with one object containing@datetime,@timestamp,@timezone.registrationTime: Array with one object containing@datetime,@timestamp,@timezone. Only present for registered accounts.bonusPoints: Array with one object containing@sumand@lastChange. Only present for registered accounts.addresses: Array with one object containing:contactAddress: Array of objects with@uuid,@primary,personName,emailAddress,phoneNumber.deliveryAddress: Array of objects with@uuid,@primary,personName,companyName,postalAddress,emailAddress,phoneNumber.billingAddress: Array of objects with@uuid,@primary,companyIdentification,postalAddress.
userGroups: Array with one object containinguserGrouparray. EachuserGrouphas@type,@codename,@name,@membership, and optionallyuserGroupLinkHistory.referrerUrl: Array with one object containing@url. Only present when captured.ip: Array with one object containing#text. Only present when captured.
contactInfo: Array with one object containing@firstName,@familyName,@email,@phoneNumber, and a nestedphoneNumberarray with@countryPrefixand@nationalNumber.billingInfo: Array with one object containing@countryCode,@companyName,@companyRegNumber,@ic,@vatIdNumber,@taxIdNumber,@dic,@isVatIdVerified,address, and optionallyaddressAutocomplete.address: Array with one object containing@detailedDescription,@street,@city,@postcode,@countryCode.addressAutocomplete: Array with one object containing@type,postalAddress, and optionallylocation.
deliveryInfo: Array with one object containing@countryCode,@companyName,@firstName,@familyName,@email,@phoneNumber,phoneNumber,address, and optionallyaddressAutocomplete.address: Array with one object containing@detailedDescription,@street,@city,@postcode,@countryCode, and optionallycounty.county: Array with one object containing@name,@code,@type.
payments: Array with one object containing apaymentarray.payment: Array of objects. When payment entities exist, one object per transaction; otherwise a single legacy payment object.- Attributes:
@methodName,@customCode,@linkCustomCode,@externalNumber,@externalState,@priceAmount,@currency,@createdDatetime,@updatedDatetime(legacy path may omitcreatedDatetimeand conditionally includeupdatedDatetime). paymentDoneCheck: Array with one object containing@done.k2Payment: Array with one object containing@paymentIdand@paymentDeliveryLinkId. Only present when xmlToDatabase module hasenableK2ElementsInOrderenabled.
- Attributes:
deliveries: Array with one object containing adeliveryarray.delivery: Array of objects with@methodName,@packageCount,@customCode,@priceCustomCode, optionallystore, and optionallyk2Delivery.store: The element name matches the method name (e.g.dpd,zasilkovna) with@storeId,@storeCode,@storeName.k2Delivery: Array with one object containing@deliveryIdand@deliveryPriceId. Only present whenenableK2ElementsInOrderis enabled.
deliveryDateTime: Array with one object containing@textand#text. Only present when set.deliveryPartialConfirmed,deliveryAfternoonConfirmed,deliveryTodayConfirmed: Arrays with one object containing#text. Only present when confirmed tags are configured.bonusPoints: Array with one object containing@changeAmountand@totalAmount. Only present when bonusSystem module is enabled and rewards are active.orderedProducts: Array with one object containing aorderedProductarray.orderedProduct: Array of polymorphic objects.type="product": Contains@name,@count,@vat,@type,@id,money, and optionallystrikethroughPrice,retailPrice,vehicle,vehicleSearchResultDetail,deliveryDateTime,deliveryDateTimePickupInStore,deliveryPartialConfirmed,deliveryAfternoonConfirmed,deliveryTodayConfirmed,primarySupply,availableSupplies,ean,upc,tecdoc,mainPartNo,brandName,product,k2Product,refundableDeposit,availabilityLabel.money: Array with one object containing@price,@priceWithoutVat,@totalPrice,@totalPriceWithoutVat,@currencyCode,@vat.strikethroughPrice/retailPrice: Array with one object containing@amountWithoutVat,@amountWithVat,@currencyCode,@vatRateName,@vatRate,@vatAmount.pricing: Array with one object containingpricingSteps. Only present when pricing history exists.pricingSteps: Array with one object. Each XML pricing step element appears under its own key derived from the XML element name (e.g.productPricePricingStep,supplyPricingStep,discountPricingStep). Because each step name typically appears once, each key holds an array with one object containing@finalPrice(price query string) plus the step's type-specific attributes. Nested complex values such ascurrencyPair,surchargePricingStep, andretailApplicationSurchargePricingStepbecome nested child arrays. - Price query string format: a set of&-separated key/value pairs.@finalPriceexample:"C=CZK&A=1500.00&Z=1815.00&VAT=315.00&VATRATE=21".Cis the ISO 4217 currency code,Ais the amount without VAT,Zis the amount with VAT (included only when it differs fromA),VATis the VAT amount, andVATRATEis the VAT percentage. BothVATandVATRATEare included only when VAT is non-zero.
vehicle: Array with one object containing@slugPath,@vehicleBrandName,@vehicleModelName,@name,@powerKwFrom,@powerHpFrom,@monthFrom,@monthTo.primarySupply/availableSupplies: Containsupplyarrays with@supplierName,@supplierCodename,@supplierKey,@supplierCustomCode,@orderingNumber,@disabled,@multipleBuyQuantity,money,stock.tecdoc: Array with one object containing@articleNo,@simplifiedArticleNo,@brandNo,@brandName,@crossed,@genericArticleId.brandName: Array with one object containing@isOriginaland#text.product: Array with one object containing@codename,@name,url,note,unit,piecesCount,warranty,productPrices,productGroups,productCodes,images,supplies.k2Product: Array with one object containing@productId.refundableDeposit: Array with one object containing#text(yes,probably, orno).availabilityLabel: Array with one object containing@code,@label,@shortLabel,@shortSubLabel,@subLabel,@color,description,shortDescription.
type="delivery": Contains@name,@count,@vat,@type,@id,money, and optionallyk2Delivery.type="payment": Contains@name,@count,@vat,@type,@id,money, and optionallyk2Payment.
invoices: Array with one object containing aninvoicearray. Only present when invoice number is assigned.invoice: Array of objects with@invoiceNumber,issueDate,dueDate,taxableSupplyDate.issueDate: Array with one object containingdatearray with@dateand@timezone.dueDate: Same structure asissueDate. Only present when set.taxableSupplyDate: Same structure asissueDate. Only present when set.
receipts: Produced by the factory but intentionally omitted from this example.
Conditional Elements
The JSON conditional behavior mirrors the XML exactly:
commentappears only when the customer left a non-empty comment during checkout.internalNoteat the order level appears only when staff has set an internal note.subscribedToNewsletterappears only when the contact email is linked to a registered user account that has an active newsletter agreement.userappears only for registered customers. Insideuser,registrationTime,bonusPoints, andaddressesare omitted for unregistered placeholder accounts. Guest checkouts omit the entireuserobject, which also meansreferrerUrlandipare absent because they are nested insideuser.referrerUrlandipinsideuserappear only when the respective values were captured during order placement.billingInfoanddeliveryInfoaddressAutocompleteobjects appear only when the address was resolved via an autocomplete service during checkout.deliveryInfoaddressmay contain acountysub-array depending on the country address format.paymentsalways exists. When payment entities exist,paymentcontains multiple objects per transaction; otherwise it falls back to a single legacypaymentobject.deliveriesdeliverymay contain astorechild for pickup-point deliveries.k2Deliveryandk2Paymentappear only when the xmlToDatabase module hasenableK2ElementsInOrderenabled.deliveryPartialConfirmed,deliveryAfternoonConfirmed, anddeliveryTodayConfirmedat both order and product level appear only when the corresponding order item tags are configured as confirmed.bonusPointsat the order level appears only when the bonusSystem module is enabled and rewards are active.orderedProductis polymorphic:type="product"represents a merchandise line item. Many child objects are conditional on product configuration and module settings.type="delivery"represents shipping costs.type="payment"represents payment fees.
invoicesappears only when an invoice number has been assigned.pricingappears only for product-type ordered products that have stored pricing step history. The step objects appear under keys named after the XML step element names (e.g.productPricePricingStep,supplyPricingStep).- Marketplace orders (e.g. Heureka) include
@originStatusIdand@originCodeon the root object.
Example JSON
{
"@uuid": "a3f7c912-1d4b-4e6f-8c2a-3b9d0e5f7a18",
"@code": "ORD-2024-001",
"@variableNumber": "1234567890",
"@paymentReferenceNumber": "1234567890",
"@invoiceNumber": "INV-2024-001",
"@originName": "eshop",
"@originStatusId": "42",
"@originCode": "HEU-12345",
"@currencyCode": "CZK",
"@languageCode": "en",
"@domainName": "example.com",
"status": [
{
"@code": "1",
"@name": "New"
}
],
"time": [
{
"@datetime": "2024-01-15 09:30:00",
"@timestamp": "1705311000",
"@timezone": "Europe/Prague"
}
],
"money": [
{
"@totalPrice": "1250.00",
"@totalPriceWithoutVat": "1033.06",
"@currencyCode": "CZK"
}
],
"comment": [
{
"#text": "Please leave the package at the front door"
}
],
"internalNote": [
{
"#text": "VIP customer - handle with care"
}
],
"subscribedToNewsletter": [
{
"@email": "customer@example.com"
}
],
"user": [
{
"@id": "123",
"@uuid": "b4g8d023-2e5c-5f7g-9d3b-4c0e1f6g8b29",
"@email": "customer@example.com",
"@codename": "customer001",
"@registered": "true",
"@banned": "false",
"internalNote": [
{
"#text": "VIP customer"
}
],
"lastEditTime": [
{
"@datetime": "2024-01-10 14:20:00",
"@timestamp": "1704897600",
"@timezone": "Europe/Prague"
}
],
"registrationTime": [
{
"@datetime": "2023-06-01 10:00:00",
"@timestamp": "1685606400",
"@timezone": "Europe/Prague"
}
],
"bonusPoints": [
{
"@sum": "150",
"@lastChange": "2024-01-10T14:20:00+01:00"
}
],
"addresses": [
{
"contactAddress": [
{
"@uuid": "c5h9e134-3f6d-6g8h-0e4c-5d1f2g7h9c30",
"@primary": "true",
"personName": [
{
"@givenName": "John",
"@familyName": "Doe"
}
],
"emailAddress": [
{
"@email": "customer@example.com"
}
],
"phoneNumber": [
{
"@countryPrefix": "+420",
"@nationalNumber": "123456789"
}
]
}
],
"deliveryAddress": [
{
"@uuid": "d6i0f245-4g7e-7h9i-1f5d-6e2g3h8i0d41",
"@primary": "true",
"personName": [
{
"@givenName": "John",
"@familyName": "Doe"
}
],
"companyName": [
{
"#text": "Acme Ltd."
}
],
"postalAddress": [
{
"@streetAndHouseNumber": "Main Street 123",
"@city": "Prague",
"@postalCode": "11000",
"@countryCode": "CZ",
"@detailedDescription": "Floor 2"
}
],
"emailAddress": [
{
"@email": "customer@example.com"
}
],
"phoneNumber": [
{
"@countryPrefix": "+420",
"@nationalNumber": "123456789"
}
]
}
],
"billingAddress": [
{
"@uuid": "e7g1h356-5h8f-8i0j-2g6e-7f3h4i9j1e52",
"@primary": "true",
"companyIdentification": [
{
"@companyName": "Acme Ltd.",
"@companyRegNumber": "12345678",
"@vatIdNumber": "CZ12345678",
"@taxIdNumber": "CZ12345678"
}
],
"postalAddress": [
{
"@streetAndHouseNumber": "Main Street 123",
"@city": "Prague",
"@postalCode": "11000",
"@countryCode": "CZ",
"@detailedDescription": "Floor 2"
}
]
}
]
}
],
"userGroups": [
{
"userGroup": [
{
"@type": "agreement",
"@codename": "newsletter",
"@name": "Newsletter",
"@membership": "included",
"userGroupLinkHistory": [
{
"@variantName": "Newsletter",
"ip": [
{
"#text": "192.168.1.1"
}
],
"userAgent": [
{
"#text": "Mozilla/5.0"
}
],
"time": [
{
"@datetime": "2023-06-01 10:00:00",
"@timestamp": "1685606400",
"@timezone": "Europe/Prague"
}
]
}
]
}
]
}
],
"referrerUrl": [
{
"@url": "https://google.com"
}
],
"ip": [
{
"#text": "192.168.1.1"
}
]
}
],
"contactInfo": [
{
"@firstName": "John",
"@familyName": "Doe",
"@email": "customer@example.com",
"@phoneNumber": "+420123456789",
"phoneNumber": [
{
"@countryPrefix": "+420",
"@nationalNumber": "123456789"
}
]
}
],
"billingInfo": [
{
"@countryCode": "CZ",
"@companyName": "Acme Ltd.",
"@companyRegNumber": "12345678",
"@ic": "12345678",
"@vatIdNumber": "CZ12345678",
"@taxIdNumber": "CZ12345678",
"@dic": "CZ12345678",
"@isVatIdVerified": "true",
"address": [
{
"@detailedDescription": "Floor 2",
"@street": "Main Street 123",
"@city": "Prague",
"@postcode": "11000",
"@countryCode": "CZ"
}
],
"addressAutocomplete": [
{
"@type": "addressAutocomplete",
"postalAddress": [
{
"streetAndHouseNumber": [
{
"#text": "Main Street 123"
}
],
"city": [
{
"#text": "Prague"
}
],
"postalCode": [
{
"#text": "110 00"
}
]
}
],
"location": [
{
"lat": [
{
"#text": "50.0755"
}
],
"lng": [
{
"#text": "14.4378"
}
]
}
]
}
]
}
],
"deliveryInfo": [
{
"@countryCode": "CZ",
"@companyName": "Acme Ltd.",
"@firstName": "John",
"@familyName": "Doe",
"@email": "customer@example.com",
"@phoneNumber": "+420123456789",
"phoneNumber": [
{
"@countryPrefix": "+420",
"@nationalNumber": "123456789"
}
],
"address": [
{
"@detailedDescription": "Floor 2",
"@street": "Main Street 123",
"@city": "Prague",
"@postcode": "11000",
"@countryCode": "CZ",
"county": [
{
"@name": "Prague",
"@code": "CZ010",
"@type": "region"
}
]
}
],
"addressAutocomplete": [
{
"@type": "addressAutocomplete",
"postalAddress": [
{
"streetAndHouseNumber": [
{
"#text": "Main Street 123"
}
],
"city": [
{
"#text": "Prague"
}
],
"postalCode": [
{
"#text": "110 00"
}
]
}
],
"location": [
{
"lat": [
{
"#text": "50.0755"
}
],
"lng": [
{
"#text": "14.4378"
}
]
}
]
}
]
}
],
"payments": [
{
"payment": [
{
"@methodName": "card",
"@customCode": "CARD-01",
"@linkCustomCode": "LINK-01",
"@externalNumber": "PAY-12345",
"@externalState": "done",
"@priceAmount": "1250.00",
"@currency": "CZK",
"@createdDatetime": "2024-01-15T09:30:00+01:00",
"@updatedDatetime": "2024-01-15T09:35:00+01:00",
"paymentDoneCheck": [
{
"@done": "true"
}
],
"k2Payment": [
{
"@paymentId": "CARD-01",
"@paymentDeliveryLinkId": "LINK-01"
}
]
}
]
}
],
"deliveries": [
{
"delivery": [
{
"@methodName": "dpd",
"@packageCount": "1",
"@customCode": "DPD-01",
"@priceCustomCode": "DPD-PRICE-01",
"dpd": [
{
"@storeId": "DPD-123",
"@storeCode": "DP123",
"@storeName": "Prague Central"
}
],
"k2Delivery": [
{
"@deliveryId": "DPD-01",
"@deliveryPriceId": "DPD-PRICE-01"
}
]
}
]
}
],
"deliveryDateTime": [
{
"@text": "Monday, Jan 15",
"#text": "2024-01-15"
}
],
"deliveryPartialConfirmed": [
{
"#text": "true"
}
],
"deliveryAfternoonConfirmed": [
{
"#text": "false"
}
],
"deliveryTodayConfirmed": [
{
"#text": "true"
}
],
"bonusPoints": [
{
"@changeAmount": "50",
"@totalAmount": "150"
}
],
"orderedProducts": [
{
"orderedProduct": [
{
"@name": "Bosch Brake Pads",
"@count": "2",
"@vat": "21.0",
"@type": "product",
"@id": "BPB-123456",
"money": [
{
"@price": "500.00",
"@priceWithoutVat": "413.22",
"@totalPrice": "1000.00",
"@totalPriceWithoutVat": "826.45",
"@currencyCode": "CZK",
"@vat": "21.0"
}
],
"strikethroughPrice": [
{
"@amountWithoutVat": "450.00",
"@amountWithVat": "544.50",
"@currencyCode": "CZK",
"@vatRateName": "Standard",
"@vatRate": "21",
"@vatAmount": "94.50"
}
],
"retailPrice": [
{
"@amountWithoutVat": "413.22",
"@amountWithVat": "500.00",
"@currencyCode": "CZK",
"@vatRateName": "Standard",
"@vatRate": "21",
"@vatAmount": "86.78"
}
],
"pricing": [
{
"pricingSteps": [
{
"supplyPricingStep": [
{
"@finalPrice": "C=CZK&A=1200.00&Z=1452.00&VAT=252.00&VATRATE=21",
"@supplierCodename": "autopartssupplier",
"@supplierKey": "A98765",
"@supplyPriceAmount": "1200",
"@supplyCurrencyCode": "CZK",
"@supplierPriceAdjustmentMultiplier": "1",
"@supplierPriceAdjustmentAdd": "0",
"@supplierPriceAdjustmentCurrencyCode": "CZK"
}
],
"productPricePricingStep": [
{
"@finalPrice": "C=CZK&A=1500.00&Z=1815.00&VAT=315.00&VATRATE=21",
"@productPriceType": "retail",
"@productPriceUuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"@forAllUsers": "true",
"@productCodename": "BPB-123456"
}
],
"discountPricingStep": [
{
"@finalPrice": "C=CZK&A=1350.00&Z=1633.50&VAT=283.50&VATRATE=21",
"@discountUuid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"@discountPrice": "C=CZK&A=150.00&Z=181.50&VAT=31.50&VATRATE=21",
"@discountPercents": "10",
"@discountType": "product_discount",
"@discountCode": "SUMMER10"
}
]
}
]
}
],
"vehicle": [
{
"@slugPath": "skoda/octavia-iii",
"@vehicleBrandName": "Skoda",
"@vehicleModelName": "Octavia III",
"@name": "Skoda Octavia III 1.6 TDI",
"@powerKwFrom": "77",
"@powerHpFrom": "105",
"@monthFrom": "2012-11",
"@monthTo": "2020-12"
}
],
"vehicleSearchResultDetail": [
{
"#text": "VIN detail"
}
],
"deliveryDateTime": [
{
"@text": "Monday, Jan 15",
"#text": "2024-01-15"
}
],
"deliveryDateTimePickupInStore": [
{
"@text": "Tuesday, Jan 16",
"#text": "2024-01-16"
}
],
"deliveryPartialConfirmed": [
{
"#text": "true"
}
],
"deliveryAfternoonConfirmed": [
{
"#text": "false"
}
],
"deliveryTodayConfirmed": [
{
"#text": "true"
}
],
"primarySupply": [
{
"supply": [
{
"@supplierName": "LocalStock",
"@supplierCodename": "localstock",
"@supplierKey": "BOS-BP1234",
"@supplierCustomCode": "LOC-01",
"@orderingNumber": "BOS-BP1234",
"@disabled": "false",
"@multipleBuyQuantity": "1",
"money": [
{
"@priceWithoutVat": "300.00",
"@purchasePrice": "200.00",
"@currencyCode": "CZK"
}
],
"stock": [
{
"@status": "available",
"@availableCount": "15"
}
]
}
]
}
],
"availableSupplies": [
{
"supply": [
{
"@supplierName": "LocalStock",
"@supplierCodename": "localstock",
"@supplierKey": "BOS-BP1234",
"@supplierCustomCode": "LOC-01",
"@orderingNumber": "BOS-BP1234",
"@disabled": "false",
"money": [
{
"@priceWithoutVat": "300.00",
"@purchasePrice": "200.00",
"@currencyCode": "CZK"
}
],
"stock": [
{
"@status": "available",
"@availableCount": "15"
}
]
}
]
}
],
"ean": [
{
"#text": "1234567890123"
}
],
"upc": [
{
"#text": "123456789012"
}
],
"tecdoc": [
{
"@articleNo": "BP1234",
"@simplifiedArticleNo": "BP1234",
"@brandNo": "123",
"@brandName": "Bosch",
"@crossed": "no",
"@genericArticleId": "456"
}
],
"mainPartNo": [
{
"#text": "BP1234"
}
],
"brandName": [
{
"@isOriginal": "true",
"#text": "Bosch"
}
],
"product": [
{
"@codename": "3b9d0e5f7a18a3f7c912",
"@name": "Bosch Brake Pads BP1234",
"url": [
{
"#text": "example.com/bosch-brake-pads-bp1234"
}
],
"note": [
{
"#text": "High quality brake pads"
}
],
"unit": [
{
"#text": "pcs"
}
],
"piecesCount": [
{
"#text": "1"
}
],
"warranty": [
{
"#text": "24"
}
],
"productPrices": [
{
"productPrice": [
{
"@type": "retail",
"price": [
{
"@amountWithoutVat": "413.22",
"@amountWithVat": "500.00",
"@currencyCode": "CZK",
"@vatRateName": "Standard",
"@vatRate": "21",
"@vatAmount": "86.78"
}
]
}
]
}
],
"productGroups": [
{
"productGroup": [
{
"@type": "category",
"@name": "Brake Pads",
"@codename": "brake-pads"
}
]
}
],
"productCodes": [
{
"productCode": [
{
"@type": "ean",
"@code": "1234567890123",
"@codeSimplified": "1234567890123",
"@abbreviation": "EAN"
},
{
"@type": "mpn",
"@code": "BP1234",
"@codeSimplified": "BP1234",
"@abbreviation": "MPN",
"@brandName": "Bosch"
}
]
}
],
"images": [
{
"image": [
{
"url": [
{
"#text": "cdn.example.com/img/bp1234.jpg"
}
]
}
]
}
],
"supplies": [
{
"supply": [
{
"@supplierName": "LocalStock",
"@supplierCodename": "localstock",
"@supplierKey": "BOS-BP1234",
"@supplierCustomCode": "LOC-01",
"@orderingNumber": "BOS-BP1234",
"@disabled": "false",
"money": [
{
"@priceWithoutVat": "300.00",
"@purchasePrice": "200.00",
"@currencyCode": "CZK"
}
],
"stock": [
{
"@status": "available",
"@availableCount": "15"
}
]
}
]
}
]
}
],
"k2Product": [
{
"@productId": "BOS-BP1234"
}
],
"refundableDeposit": [
{
"#text": "yes"
}
],
"availabilityLabel": [
{
"@code": "in-stock",
"@label": "In stock",
"@shortLabel": "In stock",
"@shortSubLabel": "Shipping today",
"@subLabel": "Ships within 24 hours",
"@color": "#00AA00",
"description": [
{
"#text": "Item is in stock and ships immediately."
}
],
"shortDescription": [
{
"#text": "In stock"
}
]
}
]
},
{
"@name": "DPD",
"@count": "1",
"@vat": "21.0",
"@type": "delivery",
"@id": "DPD-01",
"money": [
{
"@price": "150.00",
"@priceWithoutVat": "123.97",
"@totalPrice": "150.00",
"@totalPriceWithoutVat": "123.97",
"@currencyCode": "CZK",
"@vat": "21.0"
}
],
"k2Delivery": [
{
"@deliveryId": "DPD-01",
"@deliveryPriceId": "DPD-PRICE-01"
}
]
},
{
"@name": "Card payment",
"@count": "1",
"@vat": "21.0",
"@type": "payment",
"@id": "CARD-01",
"money": [
{
"@price": "0.00",
"@priceWithoutVat": "0.00",
"@totalPrice": "0.00",
"@totalPriceWithoutVat": "0.00",
"@currencyCode": "CZK",
"@vat": "21.0"
}
],
"k2Payment": [
{
"@paymentId": "CARD-01",
"@paymentDeliveryLinkId": "LINK-01"
}
]
}
]
}
],
"invoices": [
{
"invoice": [
{
"@invoiceNumber": "INV-2024-001",
"issueDate": [
{
"date": [
{
"@date": "2024-01-15",
"@timezone": "Europe/Prague"
}
]
}
],
"dueDate": [
{
"date": [
{
"@date": "2024-01-29",
"@timezone": "Europe/Prague"
},
{
"@date": "2024-01-29",
"@timezone": "Europe/Prague"
}
]
}
],
"taxableSupplyDate": [
{
"date": [
{
"@date": "2024-01-15",
"@timezone": "Europe/Prague"
}
]
}
]
}
]
}
]
}