diff --git a/storeapi.json b/storeapi.json index 91a4a47..4a2dfc4 100644 --- a/storeapi.json +++ b/storeapi.json @@ -386,204 +386,6 @@ }, "type": "object" }, - "AdvancedSearchAction": { - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "AdvancedSearchActionSearchTerm": { - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "AdvancedSearchBoosting": { - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "AdvancedSearchConfig": { - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "hitCount": { - "properties": { - "product": { - "properties": { - "maxSuggestCount": { - "type": "integer", - "format": "int64" - }, - "maxSearchCount": { - "type": "integer", - "format": "int64" - } - }, - "type": "object" - }, - "product_manufacturer": { - "properties": { - "maxSuggestCount": { - "type": "integer", - "format": "int64" - }, - "maxSearchCount": { - "type": "integer", - "format": "int64" - } - }, - "type": "object" - }, - "category": { - "properties": { - "maxSuggestCount": { - "type": "integer", - "format": "int64" - }, - "maxSearchCount": { - "type": "integer", - "format": "int64" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "AdvancedSearchConfigField": { - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "AdvancedSearchEntityStream": { - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "AdvancedSearchEntityStreamFilter": { - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, "App": { "description": "Added since version: 6.3.1.0", "required": [ @@ -818,31 +620,8 @@ }, "type": "object" }, - "AppTemplate": { - "description": "Added since version: 6.3.1.0", - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of App template." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "B2bBusinessPartner": { + "AppShippingMethod": { + "description": "Added since version: 6.5.7.0", "required": [ "createdAt" ], @@ -851,9 +630,6 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customFields": { - "type": "object" - }, "createdAt": { "type": "string", "format": "date-time", @@ -867,32 +643,16 @@ }, "type": "object" }, - "B2bEmployee": { + "AppTemplate": { + "description": "Added since version: 6.3.1.0", "required": [ - "firstName", - "lastName", - "email", "createdAt" ], "properties": { "id": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "active": { - "type": "boolean" - }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "email": { - "type": "string" - }, - "customFields": { - "type": "object" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of App template." }, "createdAt": { "type": "string", @@ -903,120 +663,15 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "role": { - "$ref": "#/components/schemas/B2bRole" } }, "type": "object" }, - "B2bOrderEmployee": { - "required": [ - "firstName", - "lastName", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "B2bPermission": { - "required": [ - "name", - "group", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "name": { - "type": "string" - }, - "group": { - "type": "string" - }, - "dependencies": { - "type": "array", - "items": { - "type": "string" - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "B2bRole": { - "required": [ - "name", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "name": { - "type": "string" - }, - "permissions": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false - } - }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "CategoryJsonApi": { - "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" + "CategoryJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" }, { "required": [ @@ -2709,64 +2364,6 @@ }, "type": "object" }, - "CustomPrice": { - "required": [ - "productId", - "price", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of the custom price." - }, - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of the product." - }, - "productVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of the product's version." - }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of the customer." - }, - "customerGroupId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of the customer's group." - }, - "price": { - "type": "object", - "description": "Detailed information of price." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "customer": { - "$ref": "#/components/schemas/Customer" - }, - "customerGroup": { - "$ref": "#/components/schemas/CustomerGroup" - }, - "product": { - "$ref": "#/components/schemas/Product" - } - }, - "type": "object" - }, "Customer": { "description": "Added since version: 6.0.0.0", "required": [ @@ -2967,41 +2564,6 @@ "format": "date-time", "readOnly": true }, - "extensions": { - "properties": { - "specificFeatures": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/customer/ce26601dac0dea138b7295f02b7620a7/specificFeatures" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "customer_specific_features" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "5cfb6fcb7542e25892e1a35cd6a06c54" - } - } - } - }, - "type": "object", - "description": "To store additional data to a customer from extensions." - } - }, - "type": "object" - }, "group": { "$ref": "#/components/schemas/CustomerGroup" }, @@ -3040,6 +2602,13 @@ "items": { "$ref": "#/components/schemas/Tag" } + }, + "extensions": { + "properties": { + "specificFeatures": { + "description": "To store additional data to a customer from extensions." + } + } } }, "type": "object" @@ -3236,38 +2805,6 @@ }, "type": "object" }, - "CustomerSpecificFeatures": { - "required": [ - "customerId", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of the customer specific features." - }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of the customer." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "customer": { - "$ref": "#/components/schemas/Customer" - } - }, - "type": "object" - }, "CustomerTag": { "description": "Added since version: 6.0.0.0", "required": [ @@ -4755,51 +4292,20 @@ "type": "object", "description": "Contains the translations of all translated fields." }, - "extensions": { - "properties": { - "mediaAiTag": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/media/3b563524fdb17b4a86590470d40bef74/mediaAiTag" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "media_ai_tag" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "3c88197809d464216a8c40a8db191b38" - } - } - } - }, - "type": "object" - } - }, - "type": "object", - "description": "To store additional data to a media from extensions." - }, "thumbnails": { "type": "array", "items": { "$ref": "#/components/schemas/MediaThumbnail" } + }, + "extensions": { + "description": "To store additional data to a media from extensions." } }, "type": "object" }, - "MediaAiTag": { + "MediaDefaultFolder": { + "description": "Added since version: 6.0.0.0", "required": [ "createdAt" ], @@ -4807,14 +4313,7 @@ "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of the AI media tag." - }, - "tags": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false - } + "description": "Unique identity of media default folder." }, "createdAt": { "type": "string", @@ -4825,21 +4324,11 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "translated": { - "type": "object", - "description": "Contains the translations of all translated fields." - }, - "media": { - "$ref": "#/components/schemas/Media" - }, - "tag": { - "description": "Tag that indicates if the media is made by AI or not." } }, "type": "object" }, - "MediaDefaultFolder": { + "MediaFolder": { "description": "Added since version: 6.0.0.0", "required": [ "createdAt" @@ -4848,7 +4337,7 @@ "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of media default folder." + "description": "Unique identity of media folder." }, "createdAt": { "type": "string", @@ -4863,7 +4352,7 @@ }, "type": "object" }, - "MediaFolder": { + "MediaFolderConfiguration": { "description": "Added since version: 6.0.0.0", "required": [ "createdAt" @@ -4872,7 +4361,7 @@ "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of media folder." + "description": "Unique identity of media folder configuration." }, "createdAt": { "type": "string", @@ -4887,35 +4376,11 @@ }, "type": "object" }, - "MediaFolderConfiguration": { + "MediaTag": { "description": "Added since version: 6.0.0.0", "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of media folder configuration." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "MediaTag": { - "description": "Added since version: 6.0.0.0", - "required": [ - "mediaId", - "tagId" + "mediaId", + "tagId" ], "properties": { "id": { @@ -5467,72 +4932,6 @@ "format": "date-time", "readOnly": true }, - "extensions": { - "properties": { - "subscription": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/order/a240fa27925a635b08dc28c9e4f9216d/subscription" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "subscription" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "b48b13e73a6ac2a86dc54425dd24d9ff" - } - } - } - }, - "type": "object" - }, - "returns": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/order/a240fa27925a635b08dc28c9e4f9216d/returns" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "order_return" - }, - "id": { - "type": "string", - "example": "7fff84525c6516919851a9005373f87e" - } - } - } - } - }, - "type": "object" - } - }, - "type": "object", - "description": "To store additional data to an order from extensions." - }, "stateMachineState": { "$ref": "#/components/schemas/StateMachineState" }, @@ -5583,6 +4982,9 @@ "items": { "$ref": "#/components/schemas/Tag" } + }, + "extensions": { + "description": "To store additional data to an order from extensions." } }, "type": "object" @@ -6212,72 +5614,6 @@ "format": "date-time", "readOnly": true }, - "extensions": { - "properties": { - "returns": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/order-line-item/40b401ac0b29ac5c5c8ffce649fdef62/returns" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "order_return_line_item" - }, - "id": { - "type": "string", - "example": "7fff84525c6516919851a9005373f87e" - } - } - } - } - }, - "type": "object" - }, - "state": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/order-line-item/40b401ac0b29ac5c5c8ffce649fdef62/state" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "state_machine_state" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "9ed39e2ea931586b6a985a6942ef573e" - } - } - } - }, - "type": "object" - } - }, - "type": "object", - "description": "To store additional data to an order line item from extensions." - }, "cover": { "$ref": "#/components/schemas/Media" }, @@ -6301,6 +5637,9 @@ "items": { "$ref": "#/components/schemas/OrderLineItem" } + }, + "extensions": { + "description": "To store additional data to an order line item from extensions." } }, "type": "object" @@ -6372,103 +5711,78 @@ }, "type": "object" }, - "OrderProductWarehouse": { + "OrderTag": { + "description": "Added since version: 6.0.0.0", "required": [ - "createdAt" + "orderId", + "tagId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order's product warehouse." + "description": "Unique identity of order tag." }, - "createdAt": { + "orderId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of order." }, - "updatedAt": { + "orderVersionId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of order's version." + }, + "tagId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of tag given for an order." + }, + "order": { + "$ref": "#/components/schemas/Order" + }, + "tag": { + "$ref": "#/components/schemas/Tag" } }, "type": "object" }, - "OrderReturn": { + "OrderTransaction": { + "description": "Added since version: 6.0.0.0", "required": [ "orderId", + "paymentMethodId", + "amount", "stateId", - "returnNumber", - "requestedAt", "createdAt" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order return." + "description": "Unique identity of order transaction." }, "versionId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order return's version." + "description": "Unique identity of OrderTransaction's version." }, "orderId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order." + "description": "Unique identity of an order." }, "orderVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order return version." + "description": "Unique identity of an order's version." }, - "price": { - "required": [ - "netPrice", - "totalPrice", - "positionPrice", - "rawTotal", - "taxStatus" - ], - "properties": { - "netPrice": { - "type": "number", - "format": "float", - "description": "Net price of the product." - }, - "totalPrice": { - "type": "number", - "format": "float", - "description": "Gross price of the product." - }, - "calculatedTaxes": { - "type": "object", - "description": "Contains calculated tax on order delivery price." - }, - "taxRules": { - "type": "object", - "description": "Pricing based on multiple taxes." - }, - "positionPrice": { - "type": "number", - "format": "float", - "description": "Price of each line item in the cart multiplied by its quantity excluding charges like shipping cost, rules, taxes etc." - }, - "rawTotal": { - "type": "number", - "format": "float", - "description": "The total value before rounding off." - }, - "taxStatus": { - "type": "string", - "description": "TaxStatus takes `Free`, `Net` or `Gross` as values." - } - }, - "type": "object" + "paymentMethodId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of payment method." }, - "shippingCosts": { + "amount": { "required": [ "unitPrice", "totalPrice", @@ -6478,12 +5792,12 @@ "unitPrice": { "type": "number", "format": "float", - "description": "Shipping cost of product per item (where, quantity=1)." + "description": "Price of product per item (where, quantity=1)." }, "totalPrice": { "type": "number", "format": "float", - "description": "Shipping cost of product based on quantity." + "description": "Cost of product based on quantity." }, "quantity": { "type": "integer", @@ -6491,33 +5805,27 @@ "description": "Number of items of each product." }, "calculatedTaxes": { - "type": "object", - "description": "Contains calculated taxes based on shipping costs/methods." + "type": "object" }, "taxRules": { - "type": "object", - "description": "Pricing based on multiple taxes." + "type": "object" }, "referencePrice": { - "type": "object", - "description": "Original cost price of the product." + "type": "object" }, "listPrice": { "properties": { "price": { "type": "number", - "format": "float", - "description": "Price of each line item." + "format": "float" }, "discount": { "type": "number", - "format": "float", - "description": "Absolute discount on each line item." + "format": "float" }, "percentage": { "type": "number", - "format": "float", - "description": "Discount in percentage." + "format": "float" } }, "type": "object" @@ -6526,8 +5834,7 @@ "properties": { "price": { "type": "number", - "format": "float", - "description": "Contains cheapest price from last 30 days as per EU law." + "format": "float" } }, "type": "object" @@ -6540,32 +5847,9 @@ "pattern": "^[0-9a-f]{32}$", "description": "Unique identity of state." }, - "returnNumber": { - "type": "string", - "description": "Reference number for returning order." - }, - "requestedAt": { - "type": "string", - "format": "date-time", - "description": "Date and time when the order return was requested." - }, - "amountTotal": { - "type": "number", - "format": "float", - "description": "Gross price of the order." - }, - "amountNet": { - "type": "number", - "format": "float", - "description": "Net price of the order." - }, - "createdById": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "updatedById": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "customFields": { + "type": "object", + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." }, "createdAt": { "type": "string", @@ -6577,213 +5861,91 @@ "format": "date-time", "readOnly": true }, - "state": { + "stateMachineState": { "$ref": "#/components/schemas/StateMachineState" }, - "lineItems": { + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod" + }, + "captures": { "type": "array", "items": { - "$ref": "#/components/schemas/OrderReturnLineItem" + "$ref": "#/components/schemas/OrderTransactionCapture" + } + }, + "shippingCosts": { + "properties": { + "calculatedTaxes": { + "description": "Contains calculated taxes based on shipping costs/methods." + }, + "taxRules": { + "description": "Pricing based on multiple taxes." + }, + "referencePrice": { + "description": "Original cost price of the product." + }, + "listPrice": { + "properties": { + "price": { + "description": "Price of each line item." + }, + "discount": { + "description": "Absolute discount on each line item." + }, + "percentage": { + "description": "Discount in percentage." + } + } + }, + "regulationPrice": { + "properties": { + "price": { + "description": "Contains cheapest price from last 30 days as per EU law." + } + } + } } } }, "type": "object" }, - "OrderReturnLineItem": { + "OrderTransactionCapture": { + "description": "Added since version: 6.4.12.0", "required": [ - "orderReturnId", - "orderLineItemId", - "reasonId", - "quantity", + "orderTransactionId", "stateId", + "amount", "createdAt" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order return line item." + "description": "Unique identity of order transaction capture." }, "versionId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order return line item's version." - }, - "orderReturnId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order return." - }, - "orderReturnVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order return version." - }, - "orderLineItemId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order line item." - }, - "orderLineItemVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order line items's version." - }, - "reasonId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of reason for return." - }, - "quantity": { - "type": "integer", - "format": "int64", - "description": "Number of line items returned." - }, - "refundAmount": { - "type": "number", - "format": "float", - "description": "Amount to be refunded." - }, - "restockQuantity": { - "type": "integer", - "format": "int64", - "description": "Update of stock quantity after the return of certain line items are initiated." - }, - "customFields": { - "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." - }, - "stateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of state." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "reason": { - "$ref": "#/components/schemas/OrderReturnLineItemReason" - }, - "state": { - "$ref": "#/components/schemas/StateMachineState" - } - }, - "type": "object" - }, - "OrderReturnLineItemReason": { - "required": [ - "reasonKey", - "createdAt", - "content" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity for reason of return." - }, - "reasonKey": { - "type": "string", - "description": "Unique key associated with reason for the order return. " - }, - "content": { - "type": "string", - "description": "Description of the reason of return." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object", - "description": "Contains the translations of all translated fields." - } - }, - "type": "object" - }, - "OrderTag": { - "description": "Added since version: 6.0.0.0", - "required": [ - "orderId", - "tagId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order tag." - }, - "orderId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order." - }, - "orderVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order's version." - }, - "tagId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of tag given for an order." - }, - "order": { - "$ref": "#/components/schemas/Order" + "description": "Unique identity of order transaction capture's version." }, - "tag": { - "$ref": "#/components/schemas/Tag" - } - }, - "type": "object" - }, - "OrderTransaction": { - "description": "Added since version: 6.0.0.0", - "required": [ - "orderId", - "paymentMethodId", - "amount", - "stateId", - "createdAt" - ], - "properties": { - "id": { + "orderTransactionId": { "type": "string", "pattern": "^[0-9a-f]{32}$", "description": "Unique identity of order transaction." }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of OrderTransaction's version." - }, - "orderId": { + "orderTransactionVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of an order." + "description": "Unique identity of order transaction version." }, - "orderVersionId": { + "stateId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of an order's version." + "description": "Unique identity of order state." }, - "paymentMethodId": { + "externalReference": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of payment method." + "description": "External payment provider token." }, "amount": { "required": [ @@ -6845,11 +6007,6 @@ }, "type": "object" }, - "stateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of state." - }, "customFields": { "type": "object", "description": "Additional fields that offer a possibility to add own fields for the different program-areas." @@ -6867,13 +6024,13 @@ "stateMachineState": { "$ref": "#/components/schemas/StateMachineState" }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" + "transaction": { + "$ref": "#/components/schemas/OrderTransaction" }, - "captures": { + "refunds": { "type": "array", "items": { - "$ref": "#/components/schemas/OrderTransactionCapture" + "$ref": "#/components/schemas/OrderTransactionCaptureRefund" } }, "shippingCosts": { @@ -6912,10 +6069,10 @@ }, "type": "object" }, - "OrderTransactionCapture": { + "OrderTransactionCaptureRefund": { "description": "Added since version: 6.4.12.0", "required": [ - "orderTransactionId", + "captureId", "stateId", "amount", "createdAt" @@ -6924,22 +6081,22 @@ "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order transaction capture." + "description": "Unique identity of order transaction capture refund." }, "versionId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order transaction capture's version." + "description": "Unique identity of order transaction capture refund's version." }, - "orderTransactionId": { + "captureId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order transaction." + "description": "Unique identity of order transaction capture." }, - "orderTransactionVersionId": { + "captureVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order transaction version." + "description": "Unique identity of order transaction capture's version." }, "stateId": { "type": "string", @@ -6948,7 +6105,11 @@ }, "externalReference": { "type": "string", - "description": "External payment provider token." + "description": "External payment provider token. " + }, + "reason": { + "type": "string", + "description": "Reason for refunding the amount for an order." }, "amount": { "required": [ @@ -7027,172 +6188,8 @@ "stateMachineState": { "$ref": "#/components/schemas/StateMachineState" }, - "transaction": { - "$ref": "#/components/schemas/OrderTransaction" - }, - "refunds": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderTransactionCaptureRefund" - } - }, - "shippingCosts": { - "properties": { - "calculatedTaxes": { - "description": "Contains calculated taxes based on shipping costs/methods." - }, - "taxRules": { - "description": "Pricing based on multiple taxes." - }, - "referencePrice": { - "description": "Original cost price of the product." - }, - "listPrice": { - "properties": { - "price": { - "description": "Price of each line item." - }, - "discount": { - "description": "Absolute discount on each line item." - }, - "percentage": { - "description": "Discount in percentage." - } - } - }, - "regulationPrice": { - "properties": { - "price": { - "description": "Contains cheapest price from last 30 days as per EU law." - } - } - } - } - } - }, - "type": "object" - }, - "OrderTransactionCaptureRefund": { - "description": "Added since version: 6.4.12.0", - "required": [ - "captureId", - "stateId", - "amount", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order transaction capture refund." - }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order transaction capture refund's version." - }, - "captureId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order transaction capture." - }, - "captureVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order transaction capture's version." - }, - "stateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order state." - }, - "externalReference": { - "type": "string", - "description": "External payment provider token. " - }, - "reason": { - "type": "string", - "description": "Reason for refunding the amount for an order." - }, - "amount": { - "required": [ - "unitPrice", - "totalPrice", - "quantity" - ], - "properties": { - "unitPrice": { - "type": "number", - "format": "float", - "description": "Price of product per item (where, quantity=1)." - }, - "totalPrice": { - "type": "number", - "format": "float", - "description": "Cost of product based on quantity." - }, - "quantity": { - "type": "integer", - "format": "int64", - "description": "Number of items of each product." - }, - "calculatedTaxes": { - "type": "object" - }, - "taxRules": { - "type": "object" - }, - "referencePrice": { - "type": "object" - }, - "listPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - }, - "discount": { - "type": "number", - "format": "float" - }, - "percentage": { - "type": "number", - "format": "float" - } - }, - "type": "object" - }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "customFields": { - "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" - }, - "transactionCapture": { - "$ref": "#/components/schemas/OrderTransactionCapture" + "transactionCapture": { + "$ref": "#/components/schemas/OrderTransactionCapture" }, "positions": { "type": "array", @@ -7404,29 +6401,6 @@ }, "type": "object" }, - "OrderWarehouseGroup": { - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order warehouse group." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, "PaymentMethodJsonApi": { "description": "Added since version: 6.0.0.0", "allOf": [ @@ -7960,42 +6934,6 @@ "translated": { "type": "object" }, - "extensions": { - "properties": { - "reviewSummaries": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/reviewSummaries" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "product_review_summary" - }, - "id": { - "type": "string", - "example": "c9c718522e64ffa5effb26cef94f4849" - } - } - } - } - }, - "type": "object" - } - }, - "type": "object" - }, "relationships": { "properties": { "downloads": { @@ -9032,42 +7970,6 @@ "type": "object", "description": "Contains the translations of all translated fields." }, - "extensions": { - "properties": { - "reviewSummaries": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/reviewSummaries" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "product_review_summary" - }, - "id": { - "type": "string", - "example": "c9c718522e64ffa5effb26cef94f4849" - } - } - } - } - }, - "type": "object" - } - }, - "type": "object" - }, "downloads": { "type": "array", "items": { @@ -9707,76 +8609,23 @@ }, "type": "object" }, - "ProductReviewSummary": { + "ProductSearchConfig": { + "description": "Added since version: 6.3.5.0", "required": [ - "productId", - "salesChannelId", "createdAt" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of products's review summary." + "description": "Unique identity of Product Search Configuration." }, - "productId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of products." + "format": "date-time", + "readOnly": true }, - "salesChannelId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of sales channel." - }, - "summary": { - "type": "string", - "description": "Unique identity of products's review summary." - }, - "visible": { - "type": "boolean", - "description": "When boolean value is `true`, the review is displayed to the customer." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object", - "description": "Contains the translations of all translated fields." - }, - "product": { - "$ref": "#/components/schemas/Product" - }, - "salesChannel": { - "$ref": "#/components/schemas/SalesChannel" - } - }, - "type": "object" - }, - "ProductSearchConfig": { - "description": "Added since version: 6.3.5.0", - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of Product Search Configuration." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { + "updatedAt": { "type": "string", "format": "date-time", "readOnly": true @@ -9965,29 +8814,6 @@ }, "type": "object" }, - "ProductWarehouse": { - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of warehouse of product." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, "Promotion": { "description": "Added since version: 6.0.0.0", "required": [ @@ -10274,203 +9100,195 @@ }, "type": "object" }, - "Quote": { - "description": "Added since version: 6.5.3.0", + "Rule": { + "description": "Added since version: 6.0.0.0", "required": [ - "stateId", - "currencyId", - "languageId", - "salesChannelId", - "customerId", + "name", "createdAt" ], "properties": { "id": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of rule." }, - "versionId": { + "name": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "description": "Name of the rule defined." }, - "stateId": { + "description": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "description": "Description of the rule." + }, + "customFields": { + "type": "object", + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." }, - "userId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "currencyId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true + }, + "extensions": { + "description": "To store additional data to a rule from extensions." + } + }, + "type": "object" + }, + "RuleCondition": { + "description": "Added since version: 6.0.0.0", + "required": [ + "createdAt" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of rule condition." + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SalesChannel": { + "description": "Added since version: 6.0.0.0", + "required": [ + "languageId", + "customerGroupId", + "currencyId", + "paymentMethodId", + "shippingMethodId", + "countryId", + "navigationCategoryId", + "createdAt", + "name", + "homeEnabled" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of sales channel." }, "languageId": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of language used." }, - "salesChannelId": { + "customerGroupId": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of customer group." }, - "createdById": { + "currencyId": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of currency used." }, - "updatedById": { + "paymentMethodId": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of payment method used." }, - "customerId": { + "shippingMethodId": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of shipping method." }, - "orderId": { + "countryId": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of country." }, - "orderVersionId": { + "navigationCategoryId": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of navigation category." }, - "quoteNumber": { - "type": "string" + "navigationCategoryVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of navigation category's version." + }, + "navigationCategoryDepth": { + "type": "integer", + "format": "int64", + "description": "It determines the number of levels of subcategories in the storefront category menu." }, - "expirationDate": { + "footerCategoryId": { "type": "string", - "format": "date-time" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of footer category." }, - "price": { - "required": [ - "netPrice", - "totalPrice", - "positionPrice", - "rawTotal", - "taxStatus" - ], - "properties": { - "netPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" - }, - "calculatedTaxes": { - "type": "object" - }, - "taxRules": { - "type": "object" - }, - "positionPrice": { - "type": "number", - "format": "float" - }, - "rawTotal": { - "type": "number", - "format": "float" - }, - "taxStatus": { - "type": "string" - } - }, - "type": "object" + "footerCategoryVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of footer category's version." }, - "shippingCosts": { - "required": [ - "unitPrice", - "totalPrice", - "quantity" - ], - "properties": { - "unitPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" - }, - "quantity": { - "type": "integer", - "format": "int64" - }, - "calculatedTaxes": { - "type": "object" - }, - "taxRules": { - "type": "object" - }, - "referencePrice": { - "type": "object" - }, - "listPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - }, - "discount": { - "type": "number", - "format": "float" - }, - "percentage": { - "type": "number", - "format": "float" - } - }, - "type": "object" - }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" - } - }, - "type": "object" + "serviceCategoryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of service category." }, - "discount": { - "properties": { - "type": { - "type": "string" - }, - "value": { - "type": "number", - "format": "float" - } - }, - "type": "object" + "serviceCategoryVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of service category's version." }, - "taxStatus": { + "mailHeaderFooterId": { "type": "string", - "readOnly": true + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of mail header and footer." }, - "amountTotal": { - "type": "number", - "format": "float", - "readOnly": true + "hreflangDefaultDomainId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of hreflangDefaultDomain." }, - "amountNet": { - "type": "number", - "format": "float", - "readOnly": true + "name": { + "type": "string", + "description": "Name of the sales channel." }, - "subtotalNet": { - "type": "number", - "format": "float" + "shortName": { + "type": "string", + "description": "A short name for sales channel." }, - "totalDiscount": { - "type": "number", - "format": "float" + "taxCalculationType": { + "type": "string", + "description": "Tax calculation types are `horizontal` and `vertical`." }, - "originalPrice": { - "type": "number", - "format": "float" + "configuration": { + "type": "object" + }, + "active": { + "type": "boolean", + "description": "When boolean value is `true`, the sales channel is enabled." + }, + "hreflangActive": { + "type": "boolean", + "description": "When set to true, the sales channel pages are available in different languages." + }, + "maintenance": { + "type": "boolean", + "description": "When `true`, it indicates that the sales channel is undergoing maintenance, and shopping is temporarily unavailable during this period." + }, + "customFields": { + "type": "object", + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." }, "createdAt": { "type": "string", @@ -10482,133 +9300,56 @@ "format": "date-time", "readOnly": true }, - "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" + "translated": { + "type": "object", + "description": "Contains the translations of all translated fields." + }, + "language": { + "$ref": "#/components/schemas/Language" }, "currency": { "$ref": "#/components/schemas/Currency" }, - "language": { - "$ref": "#/components/schemas/Language" + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod" }, - "lineItems": { - "type": "array", - "items": { - "$ref": "#/components/schemas/QuoteLineItem" - } + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" }, - "deliveries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/QuoteDelivery" - } + "country": { + "$ref": "#/components/schemas/Country" }, - "transactions": { + "domains": { "type": "array", "items": { - "$ref": "#/components/schemas/QuoteTransaction" + "$ref": "#/components/schemas/SalesChannelDomain" } + }, + "navigationCategory": { + "$ref": "#/components/schemas/Category" + }, + "footerCategory": { + "$ref": "#/components/schemas/Category" + }, + "serviceCategory": { + "$ref": "#/components/schemas/Category" + }, + "hreflangDefaultDomain": { + "$ref": "#/components/schemas/SalesChannelDomain" } }, "type": "object" }, - "QuoteDelivery": { - "description": "Added since version: 6.5.3.0", + "SalesChannelAnalytics": { + "description": "Added since version: 6.2.0.0", "required": [ - "quoteId", - "shippingMethodId", - "shippingDateEarliest", - "shippingDateLatest", "createdAt" ], "properties": { "id": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "quoteId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "quoteVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "shippingMethodId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "shippingDateEarliest": { - "type": "string", - "format": "date-time" - }, - "shippingDateLatest": { - "type": "string", - "format": "date-time" - }, - "shippingCosts": { - "required": [ - "unitPrice", - "totalPrice", - "quantity" - ], - "properties": { - "unitPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" - }, - "quantity": { - "type": "integer", - "format": "int64" - }, - "calculatedTaxes": { - "type": "object" - }, - "taxRules": { - "type": "object" - }, - "referencePrice": { - "type": "object" - }, - "listPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - }, - "discount": { - "type": "number", - "format": "float" - }, - "percentage": { - "type": "number", - "format": "float" - } - }, - "type": "object" - }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" - } - }, - "type": "object" - }, - "customFields": { - "type": "object" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of sales channel analytics." }, "createdAt": { "type": "string", @@ -10619,122 +9360,186 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" - }, - "positions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/QuoteDeliveryPosition" - } } }, "type": "object" }, - "QuoteDeliveryPosition": { - "description": "Added since version: 6.5.3.0", + "SalesChannelDomain": { + "description": "Added since version: 6.0.0.0", "required": [ - "quoteDeliveryId", - "quoteLineItemId", + "url", + "salesChannelId", + "languageId", + "currencyId", + "snippetSetId", "createdAt" ], "properties": { "id": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of sales channel domain." }, - "versionId": { + "url": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "description": "URL of the sales channel domain." }, - "quoteDeliveryId": { + "salesChannelId": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of sales channel." }, - "quoteDeliveryVersionId": { + "languageId": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of language used." }, - "quoteLineItemId": { + "currencyId": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of currency." }, - "quoteLineItemVersionId": { + "snippetSetId": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of snippet set." }, - "price": { + "hreflangUseOnlyLocale": { + "type": "boolean", + "description": "This is used to toggle the language configurations, say between DE and DE-DE for instance." + }, + "customFields": { + "type": "object", + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "language": { + "$ref": "#/components/schemas/Language" + }, + "currency": { + "$ref": "#/components/schemas/Currency" + }, + "salesChannelDefaultHreflang": { + "$ref": "#/components/schemas/SalesChannel" + } + }, + "type": "object" + }, + "SalesChannelType": { + "description": "Added since version: 6.0.0.0", + "required": [ + "createdAt", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of sales channel type." + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object", + "description": "Contains the translations of all translated fields." + } + }, + "type": "object" + }, + "SalutationJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" + }, + { "required": [ - "unitPrice", - "totalPrice", - "quantity" + "salutationKey", + "createdAt", + "displayName", + "letterName" ], "properties": { - "unitPrice": { - "type": "number", - "format": "float" + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "totalPrice": { - "type": "number", - "format": "float" + "salutationKey": { + "type": "string" }, - "quantity": { - "type": "integer", - "format": "int64" + "displayName": { + "type": "string" }, - "calculatedTaxes": { - "type": "object" + "letterName": { + "type": "string" }, - "taxRules": { + "customFields": { "type": "object" }, - "referencePrice": { - "type": "object" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "listPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - }, - "discount": { - "type": "number", - "format": "float" - }, - "percentage": { - "type": "number", - "format": "float" - } - }, - "type": "object" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, + "translated": { "type": "object" } }, "type": "object" + } + ] + }, + "Salutation": { + "description": "Added since version: 6.0.0.0", + "required": [ + "salutationKey", + "createdAt", + "displayName", + "letterName" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of salutation." }, - "unitPrice": { - "type": "number", - "format": "float" + "salutationKey": { + "type": "string", + "description": "Technical name given to salutation. For example: mr" }, - "totalPrice": { - "type": "number", - "format": "float" + "displayName": { + "type": "string", + "description": "Name given for salutation and displayed in storefront. For example: Mr" }, - "quantity": { - "type": "integer", - "format": "int64" + "letterName": { + "type": "string", + "description": "Name given for salutation and used in the mail templates. For example, Dear Mr" }, "customFields": { - "type": "object" + "type": "object", + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." }, "createdAt": { "type": "string", @@ -10745,122 +9550,204 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "translated": { + "type": "object", + "description": "Contains the translations of all translated fields." } }, "type": "object" }, - "QuoteLineItem": { - "description": "Added since version: 6.5.3.0", + "ScheduledTask": { + "description": "Added since version: 6.0.0.0", "required": [ - "quoteId", - "identifier", - "children", - "states", - "label", - "quantity", - "position", "createdAt" ], "properties": { "id": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "quoteId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of scheduled task." }, - "quoteVersionId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "identifier": { - "type": "string" + "format": "date-time", + "readOnly": true }, - "parentId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentVersionId": { + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "Script": { + "description": "Added since version: 6.4.7.0", + "required": [ + "createdAt" + ], + "properties": { + "id": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of a script." }, - "productId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "productVersionId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "states": { - "type": "array", - "items": { - "type": "string" - } + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SeoUrlJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" }, - "label": { - "type": "string" - }, - "description": { - "type": "string" - }, - "quantity": { - "type": "integer", - "format": "int64" - }, - "type": { - "type": "string" - }, - "payload": { - "type": "object" - }, - "unitPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" - }, - "priceDefinition": { - "type": "object" - }, - "discount": { + { + "required": [ + "languageId", + "foreignKey", + "routeName", + "pathInfo", + "seoPathInfo", + "createdAt" + ], "properties": { - "type": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salesChannelId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "languageId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "foreignKey": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "routeName": { "type": "string" }, - "value": { - "type": "integer", - "format": "int64" + "pathInfo": { + "type": "string" + }, + "seoPathInfo": { + "type": "string" + }, + "isCanonical": { + "type": "boolean" + }, + "isModified": { + "type": "boolean" + }, + "isDeleted": { + "type": "boolean" + }, + "url": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, + "customFields": { + "type": "object" + }, + "isValid": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true } }, "type": "object" + } + ] + }, + "SeoUrl": { + "description": "Added since version: 6.0.0.0", + "required": [ + "languageId", + "foreignKey", + "routeName", + "pathInfo", + "seoPathInfo", + "createdAt" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of Seo Url." }, - "good": { - "type": "boolean" + "salesChannelId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of sales channel." }, - "removable": { - "type": "boolean" + "languageId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of language." }, - "stackable": { - "type": "boolean" + "foreignKey": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The key that references to product or category entity ID." }, - "position": { - "type": "integer", - "format": "int64" + "routeName": { + "type": "string", + "description": "A destination routeName that has been registered somewhere in the app's router. For example: \"frontend.detail.page\"" }, - "referencedId": { - "type": "string" + "pathInfo": { + "type": "string", + "description": "Path to product URL. For example: \"/detail/bbf36734504741c79a3bbe3795b91564\"" }, - "coverId": { + "seoPathInfo": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "description": "Seo path to product. For example: \"Pepper-white-ground-pearl/SW10098\"" + }, + "isCanonical": { + "type": "boolean", + "description": "When set to true, search redirects to the main URL." + }, + "isModified": { + "type": "boolean", + "description": "When boolean value is `true`, the seo url is changed." + }, + "isDeleted": { + "type": "boolean", + "description": "When set to true, the URL is deleted and cannot be used any more but it is still available on table and can be restored later." + }, + "url": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, + "customFields": { + "type": "object", + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." + }, + "isValid": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "boolean" }, "createdAt": { "type": "string", @@ -10871,211 +9758,348 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "parent": { - "$ref": "#/components/schemas/QuoteLineItem" - }, - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/QuoteLineItem" - } - }, - "cover": { - "$ref": "#/components/schemas/Media" } }, "type": "object" }, - "QuoteTransaction": { - "description": "Added since version: 6.5.3.0", + "SeoUrlTemplate": { + "description": "Added since version: 6.0.0.0", "required": [ - "quoteId", - "paymentMethodId", - "amount", "createdAt" ], "properties": { "id": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of Seo Url template." }, - "versionId": { + "salesChannelId": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of sales channel." }, - "quoteId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "isValid": { + "type": "boolean", + "description": "Created SEO URL template can be made usable by setting `isValid` to true." + }, + "customFields": { + "type": "object", + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." }, - "quoteVersionId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "paymentMethodId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "ShippingMethodJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" }, - "amount": { + { "required": [ - "unitPrice", - "totalPrice", - "quantity" + "deliveryTimeId", + "taxType", + "createdAt", + "name" ], "properties": { - "unitPrice": { - "type": "number", - "format": "float" + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "totalPrice": { - "type": "number", - "format": "float" + "name": { + "type": "string" }, - "quantity": { + "active": { + "type": "boolean" + }, + "position": { "type": "integer", "format": "int64" }, - "calculatedTaxes": { + "customFields": { "type": "object" }, - "taxRules": { - "type": "object" + "mediaId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "referencePrice": { - "type": "object" + "deliveryTimeId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "listPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - }, - "discount": { - "type": "number", - "format": "float" - }, - "percentage": { - "type": "number", - "format": "float" - } - }, + "taxType": { + "type": "string" + }, + "description": { + "type": "string" + }, + "trackingUrl": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { "type": "object" }, - "regulationPrice": { + "relationships": { "properties": { - "price": { - "type": "number", - "format": "float" + "deliveryTime": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/deliveryTime" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "delivery_time" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "8c888ae25a7bd42057370e31f7e01044" + } + } + } + }, + "type": "object" + }, + "availabilityRule": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/availabilityRule" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "rule" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "9fbb7961d1cb158094924c679e1b302c" + } + } + } + }, + "type": "object" + }, + "prices": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/prices" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "shipping_method_price" + }, + "id": { + "type": "string", + "example": "afae32efe0f84fece3f96b377b768b33" + } + } + } + } + }, + "type": "object" + }, + "media": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/media" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "media" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "62933a2951ef01f4eafd9bdf4d3cd2f0" + } + } + } + }, + "type": "object" + }, + "tags": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/tags" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "tag" + }, + "id": { + "type": "string", + "example": "d57ac45256849d9b13e2422d91580fb9" + } + } + } + } + }, + "type": "object" + }, + "tax": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/tax" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "tax" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "06565e5611f23fdf8cc43e5077b92b54" + } + } + } + }, + "type": "object" } }, "type": "object" } }, "type": "object" - }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" } - }, - "type": "object" + ] }, - "Rule": { + "ShippingMethod": { "description": "Added since version: 6.0.0.0", "required": [ - "name", - "createdAt" + "deliveryTimeId", + "taxType", + "createdAt", + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of rule." + "description": "Unique identity of shipping method." }, "name": { "type": "string", - "description": "Name of the rule defined." + "description": "Name of the shipping method." }, - "description": { - "type": "string", - "description": "Description of the rule." + "active": { + "type": "boolean", + "description": "When boolean value is `true`, the shipping methods are available for selection in the storefront." + }, + "position": { + "type": "integer", + "format": "int64", + "description": "The order of the tabs of your defined shipping methods in the storefront by entering numerical values like 1,2,3, etc." }, "customFields": { "type": "object", "description": "Additional fields that offer a possibility to add own fields for the different program-areas." }, - "createdAt": { + "mediaId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of media." }, - "updatedAt": { + "deliveryTimeId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of deliveryTime." }, - "extensions": { - "properties": { - "warehouseGroup": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/rule/ab7a485ebe75b6dd7243ad719f23c7de/warehouseGroup" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "warehouse_group" - }, - "id": { - "type": "string", - "example": "1768e3071b62161d415e0c24332055ed" - } - } - } - } - }, - "type": "object" - } - }, - "type": "object", - "description": "To store additional data to a rule from extensions." - } - }, - "type": "object" - }, - "RuleCondition": { - "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], - "properties": { - "id": { + "taxType": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of rule condition." + "description": "Refers `Free`, `Net` or `Gross` type of taxes." + }, + "description": { + "type": "string", + "description": "Description of each shipping method." + }, + "trackingUrl": { + "type": "string", + "description": "This URL allows to track packages." }, "createdAt": { "type": "string", @@ -11086,131 +10110,165 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "translated": { + "type": "object", + "description": "Contains the translations of all translated fields." + }, + "deliveryTime": { + "$ref": "#/components/schemas/DeliveryTime" + }, + "availabilityRule": { + "$ref": "#/components/schemas/Rule" + }, + "prices": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ShippingMethodPrice" + } + }, + "media": { + "$ref": "#/components/schemas/Media" + }, + "tags": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "tax": { + "$ref": "#/components/schemas/Tax" } }, "type": "object" }, - "SalesChannel": { + "ShippingMethodPrice": { "description": "Added since version: 6.0.0.0", "required": [ - "languageId", - "customerGroupId", - "currencyId", - "paymentMethodId", "shippingMethodId", - "countryId", - "navigationCategoryId", - "createdAt", - "name", - "homeEnabled" + "createdAt" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of sales channel." + "description": "Unique identity of shipping method price." }, - "languageId": { + "shippingMethodId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of language used." + "description": "Unique identity of shipping method." }, - "customerGroupId": { + "ruleId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of customer group." + "description": "Unique identity of rule." }, - "currencyId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of currency used." + "calculation": { + "type": "integer", + "format": "int64", + "description": "Shipping price calculated based on quantity, price, weight or volume of items." }, - "paymentMethodId": { + "calculationRuleId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of payment method used." + "description": "Unique identity of rule calculation." }, - "shippingMethodId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of shipping method." + "quantityStart": { + "type": "number", + "format": "float", + "description": "Starting range of quantity of an item." }, - "countryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of country." + "quantityEnd": { + "type": "number", + "format": "float", + "description": "Ending range of quantity of an item." }, - "navigationCategoryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of navigation category." + "currencyPrice": { + "type": "object", + "description": "Contains currency-based price." }, - "navigationCategoryVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of navigation category's version." + "customFields": { + "type": "object", + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." }, - "navigationCategoryDepth": { - "type": "integer", - "format": "int64", - "description": "It determines the number of levels of subcategories in the storefront category menu." + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "footerCategoryId": { + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "Snippet": { + "description": "Added since version: 6.0.0.0", + "required": [ + "setId", + "translationKey", + "value", + "createdAt" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of footer category." + "description": "Unique identity of snippet." }, - "footerCategoryVersionId": { + "setId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of footer category's version." + "description": "Unique identity od snippet set." }, - "serviceCategoryId": { + "translationKey": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of service category." + "description": "Reference to the snippet in the template." }, - "serviceCategoryVersionId": { + "value": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of service category's version." + "description": "Value of the key." }, - "mailHeaderFooterId": { + "customFields": { + "type": "object", + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." + }, + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of mail header and footer." + "format": "date-time", + "readOnly": true }, - "hreflangDefaultDomainId": { + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SnippetSet": { + "description": "Added since version: 6.0.0.0", + "required": [ + "name", + "iso", + "createdAt" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of hreflangDefaultDomain." + "description": "Unique identity of snippet set." }, "name": { "type": "string", - "description": "Name of the sales channel." - }, - "shortName": { - "type": "string", - "description": "A short name for sales channel." + "description": "Name of snippet set." }, - "taxCalculationType": { + "iso": { "type": "string", - "description": "Tax calculation types are `horizontal` and `vertical`." - }, - "configuration": { - "type": "object" - }, - "active": { - "type": "boolean", - "description": "When boolean value is `true`, the sales channel is enabled." - }, - "hreflangActive": { - "type": "boolean", - "description": "When set to true, the sales channel pages are available in different languages." - }, - "maintenance": { - "type": "boolean", - "description": "When `true`, it indicates that the sales channel is undergoing maintenance, and shopping is temporarily unavailable during this period." + "description": "ISO nomenclature used to classify languages." }, "customFields": { "type": "object", @@ -11226,56 +10284,26 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object", - "description": "Contains the translations of all translated fields." - }, - "language": { - "$ref": "#/components/schemas/Language" - }, - "currency": { - "$ref": "#/components/schemas/Currency" - }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "domains": { + "snippets": { "type": "array", "items": { - "$ref": "#/components/schemas/SalesChannelDomain" + "$ref": "#/components/schemas/Snippet" } - }, - "navigationCategory": { - "$ref": "#/components/schemas/Category" - }, - "footerCategory": { - "$ref": "#/components/schemas/Category" - }, - "serviceCategory": { - "$ref": "#/components/schemas/Category" - }, - "hreflangDefaultDomain": { - "$ref": "#/components/schemas/SalesChannelDomain" } }, "type": "object" }, - "SalesChannelAnalytics": { - "description": "Added since version: 6.2.0.0", + "StateMachine": { + "description": "Added since version: 6.0.0.0", "required": [ - "createdAt" + "createdAt", + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of sales channel analytics." + "description": "Unique identity of state machine." }, "createdAt": { "type": "string", @@ -11286,53 +10314,76 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "translated": { + "type": "object", + "description": "Contains the translations of all translated fields." + }, + "states": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StateMachineState" + } + }, + "transitions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/StateMachineTransition" + } } }, "type": "object" }, - "SalesChannelDomain": { + "StateMachineHistory": { "description": "Added since version: 6.0.0.0", "required": [ - "url", - "salesChannelId", - "languageId", - "currencyId", - "snippetSetId", "createdAt" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of sales channel domain." + "description": "Unique identity of state machine history." }, - "url": { + "createdAt": { "type": "string", - "description": "URL of the sales channel domain." + "format": "date-time", + "readOnly": true }, - "salesChannelId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of sales channel." + "format": "date-time", + "readOnly": true }, - "languageId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of language used." + "fromStateMachineState": { + "$ref": "#/components/schemas/StateMachineState" }, - "currencyId": { + "toStateMachineState": { + "$ref": "#/components/schemas/StateMachineState" + } + }, + "type": "object" + }, + "StateMachineState": { + "description": "Added since version: 6.0.0.0", + "required": [ + "technicalName", + "createdAt", + "name" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of currency." + "description": "Unique identity of state machine state." }, - "snippetSetId": { + "technicalName": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of snippet set." + "description": "Technical name of StateMachineState." }, - "hreflangUseOnlyLocale": { - "type": "boolean", - "description": "This is used to toggle the language configurations, say between DE and DE-DE for instance." + "name": { + "type": "string", + "description": "Display name of StateMachineState." }, "customFields": { "type": "object", @@ -11348,29 +10399,23 @@ "format": "date-time", "readOnly": true }, - "language": { - "$ref": "#/components/schemas/Language" - }, - "currency": { - "$ref": "#/components/schemas/Currency" - }, - "salesChannelDefaultHreflang": { - "$ref": "#/components/schemas/SalesChannel" + "translated": { + "type": "object", + "description": "Contains the translations of all translated fields." } }, "type": "object" }, - "SalesChannelType": { + "StateMachineTransition": { "description": "Added since version: 6.0.0.0", "required": [ - "createdAt", - "name" + "createdAt" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of sales channel type." + "description": "Unique identity of state machine transition." }, "createdAt": { "type": "string", @@ -11381,91 +10426,40 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "translated": { - "type": "object", - "description": "Contains the translations of all translated fields." } }, "type": "object" }, - "SalutationJsonApi": { - "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" - }, - { - "required": [ - "salutationKey", - "createdAt", - "displayName", - "letterName" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salutationKey": { - "type": "string" - }, - "displayName": { - "type": "string" - }, - "letterName": { - "type": "string" - }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" - } - }, - "type": "object" - } - ] - }, - "Salutation": { + "SystemConfig": { "description": "Added since version: 6.0.0.0", "required": [ - "salutationKey", - "createdAt", - "displayName", - "letterName" + "configurationKey", + "configurationValue", + "createdAt" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of salutation." + "description": "Unique identity of system configuration." }, - "salutationKey": { + "configurationKey": { "type": "string", - "description": "Technical name given to salutation. For example: mr" + "description": "Config key for shop configurations." }, - "displayName": { - "type": "string", - "description": "Name given for salutation and displayed in storefront. For example: Mr" + "configurationValue": { + "properties": { + "_value": { + "type": "object", + "description": "Config value for shop configurations." + } + }, + "type": "object" }, - "letterName": { + "salesChannelId": { "type": "string", - "description": "Name given for salutation and used in the mail templates. For example, Dear Mr" - }, - "customFields": { - "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of sales channel." }, "createdAt": { "type": "string", @@ -11477,23 +10471,26 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object", - "description": "Contains the translations of all translated fields." + "salesChannel": { + "$ref": "#/components/schemas/SalesChannel" } }, "type": "object" }, - "ScheduledTask": { + "Tag": { "description": "Added since version: 6.0.0.0", "required": [ + "name", "createdAt" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of scheduled task." + "description": "Unique identity of tag." + }, + "name": { + "type": "string" }, "createdAt": { "type": "string", @@ -11508,16 +10505,37 @@ }, "type": "object" }, - "Script": { - "description": "Added since version: 6.4.7.0", + "Tax": { + "description": "Added since version: 6.0.0.0", "required": [ + "taxRate", + "name", + "position", "createdAt" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of a script." + "description": "Unique identity of tax." + }, + "taxRate": { + "type": "number", + "format": "float", + "description": "Rate of tax." + }, + "name": { + "type": "string", + "description": "Name defined for a Tax." + }, + "position": { + "description": "The order of the tabs of your defined taxes in the storefront by entering numerical values like 1,2,3, etc.", + "type": "integer", + "format": "int64" + }, + "customFields": { + "type": "object", + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." }, "createdAt": { "type": "string", @@ -11532,148 +10550,97 @@ }, "type": "object" }, - "SeoUrlJsonApi": { - "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" - }, - { - "required": [ - "languageId", - "foreignKey", - "routeName", - "pathInfo", - "seoPathInfo", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salesChannelId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "languageId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "foreignKey": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "routeName": { - "type": "string" - }, - "pathInfo": { - "type": "string" - }, - "seoPathInfo": { - "type": "string" - }, - "isCanonical": { - "type": "boolean" - }, - "isModified": { - "type": "boolean" - }, - "isDeleted": { - "type": "boolean" - }, - "url": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string" - }, - "customFields": { - "type": "object" - }, - "isValid": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - } - ] - }, - "SeoUrl": { - "description": "Added since version: 6.0.0.0", + "TaxProvider": { + "description": "Added since version: 6.5.0.0", "required": [ - "languageId", - "foreignKey", - "routeName", - "pathInfo", - "seoPathInfo", - "createdAt" + "priority", + "createdAt", + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of Seo Url." + "description": "Unique identity of tax provider." }, - "salesChannelId": { + "active": { + "type": "boolean", + "description": "When boolean value is `true`, the tax providers are available for selection in the storefront." + }, + "name": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of sales channel." + "description": "Name of the tax provider." }, - "languageId": { + "priority": { + "type": "integer", + "format": "int64", + "description": "A numerical value to prioritize one the tax providers from the list." + }, + "processUrl": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of language." + "description": "External URL makes request to get tax info." }, - "foreignKey": { + "appId": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "The key that references to product or category entity ID." + "description": "Unique identity of app." }, - "routeName": { - "type": "string", - "description": "A destination routeName that has been registered somewhere in the app's router. For example: \"frontend.detail.page\"" + "customFields": { + "type": "object", + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." }, - "pathInfo": { + "createdAt": { "type": "string", - "description": "Path to product URL. For example: \"/detail/bbf36734504741c79a3bbe3795b91564\"" + "format": "date-time", + "readOnly": true }, - "seoPathInfo": { + "updatedAt": { "type": "string", - "description": "Seo path to product. For example: \"Pepper-white-ground-pearl/SW10098\"" - }, - "isCanonical": { - "type": "boolean", - "description": "When set to true, search redirects to the main URL." - }, - "isModified": { - "type": "boolean", - "description": "When boolean value is `true`, the seo url is changed." - }, - "isDeleted": { - "type": "boolean", - "description": "When set to true, the URL is deleted and cannot be used any more but it is still available on table and can be restored later." - }, - "url": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string" + "format": "date-time", + "readOnly": true }, - "customFields": { + "translated": { "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." + "description": "Contains the translations of all translated fields." + } + }, + "type": "object" + }, + "TaxRule": { + "description": "Added since version: 6.1.0.0", + "required": [ + "createdAt" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of tax rule." }, - "isValid": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "TaxRuleType": { + "description": "Added since version: 6.1.0.0", + "required": [ + "createdAt", + "typeName" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of tax rule type." }, "createdAt": { "type": "string", @@ -11684,34 +10651,77 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "translated": { + "type": "object", + "description": "Contains the translations of all translated fields." } }, "type": "object" }, - "SeoUrlTemplate": { + "Theme": { "description": "Added since version: 6.0.0.0", "required": [ + "name", + "author", + "active", "createdAt" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of Seo Url template." + "description": "Unique identity of Theme." }, - "salesChannelId": { + "technicalName": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of sales channel." + "description": "Technical name of Theme." }, - "isValid": { - "type": "boolean", - "description": "Created SEO URL template can be made usable by setting `isValid` to true." + "name": { + "type": "string", + "description": "Name of theme which is translatable." + }, + "author": { + "type": "string", + "description": "Name of the company." + }, + "description": { + "type": "string", + "description": "Description of the theme." + }, + "labels": { + "type": "object", + "description": "Identification label given to theme." + }, + "helpTexts": { + "type": "object", + "description": "Texts from config element." }, "customFields": { "type": "object", "description": "Additional fields that offer a possibility to add own fields for the different program-areas." }, + "previewMediaId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of media used for previewing the theme." + }, + "parentThemeId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of parent theme." + }, + "baseConfig": { + "type": "object", + "description": "Config elements of theme like header, color, etc" + }, + "configValues": { + "type": "object" + }, + "active": { + "type": "boolean", + "description": "When boolean value is `true`, the created theme can be made usable." + }, "createdAt": { "type": "string", "format": "date-time", @@ -11721,2074 +10731,363 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "translated": { + "type": "object", + "description": "Contains the translations of all translated fields." + }, + "media": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Media" + } + }, + "ConfigValues": { + "description": "Chosen values for the configuration." } }, "type": "object" }, - "ShippingMethodJsonApi": { + "Unit": { + "description": "Added since version: 6.0.0.0", + "required": [ + "createdAt", + "shortCode", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of Unit." + }, + "shortCode": { + "type": "string", + "description": "Short name for unit, e.g., m, kg." + }, + "name": { + "type": "string", + "description": "Full name of the unit, e.g., Meter, kilogram." + }, + "customFields": { + "type": "object", + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object", + "description": "Contains the translations of all translated fields." + } + }, + "type": "object" + }, + "User": { + "description": "Added since version: 6.0.0.0", + "required": [ + "createdAt" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of user." + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "UserAccessKey": { + "description": "Added since version: 6.0.0.0", + "required": [ + "createdAt" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of user access key." + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "UserConfig": { + "description": "Added since version: 6.3.5.0", + "required": [ + "createdAt" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of user configuration." + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "UserRecovery": { "description": "Added since version: 6.0.0.0", + "required": [ + "createdAt" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of user recovery." + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "Webhook": { + "description": "Added since version: 6.3.1.0", + "required": [ + "createdAt" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of webhook." + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "WebhookEventLog": { + "description": "Added since version: 6.4.1.0", + "required": [ + "createdAt" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of webhook event log." + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "Cart": { "allOf": [ { - "$ref": "#/components/schemas/resource" + "$ref": "#/components/schemas/ArrayStruct" }, { - "required": [ - "deliveryTimeId", - "taxType", - "createdAt", - "name" - ], + "type": "object", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, "name": { + "description": "Name of the cart - for example `guest-cart`", "type": "string" }, - "active": { - "type": "boolean" - }, - "position": { - "type": "integer", - "format": "int64" - }, - "customFields": { - "type": "object" - }, - "mediaId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "deliveryTimeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "taxType": { + "token": { + "description": "Context token identifying the cart and the user session", "type": "string" }, - "description": { - "type": "string" + "price": { + "type": "object", + "properties": { + "netPrice": { + "description": "Net price of the cart", + "type": "number", + "format": "float" + }, + "totalPrice": { + "description": "Total price of the cart, including shipping costs, discounts and taxes", + "type": "number", + "format": "float" + }, + "positionPrice": { + "description": "Price for all line items in the cart", + "type": "number", + "format": "float" + }, + "taxStatus": { + "description": "Tax calculation for the cart. One of `gross`, `net` or `tax-free`", + "type": "string" + } + } }, - "trackingUrl": { - "type": "string" + "lineItems": { + "description": "All items within the cart", + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "errors": { + "type": "array", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "items": { + "type": "object", + "properties": { + "key": { + "type": "string" + }, + "level": { + "type": "string" + }, + "message": { + "type": "string" + } + } + } }, - "updatedAt": { + "transactions": { + "description": "A list of all payment transactions associated with the current cart.", + "type": "array", + "items": { + "type": "object", + "properties": { + "paymentMethodId": { + "type": "string" + } + } + } + }, + "modified": { + "type": "boolean" + }, + "customerComment": { "type": "string", - "format": "date-time", - "readOnly": true + "description": "A comment that can be added to the cart." }, - "translated": { - "type": "object" + "affiliateCode": { + "type": "string", + "description": "An affiliate tracking code" }, - "relationships": { - "properties": { - "deliveryTime": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/deliveryTime" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "delivery_time" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "8c888ae25a7bd42057370e31f7e01044" - } - } - } - }, - "type": "object" - }, - "availabilityRule": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/availabilityRule" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "rule" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "9fbb7961d1cb158094924c679e1b302c" - } - } - } - }, - "type": "object" - }, - "prices": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/prices" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "shipping_method_price" - }, - "id": { - "type": "string", - "example": "afae32efe0f84fece3f96b377b768b33" - } - } - } - } - }, - "type": "object" - }, - "media": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/media" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "media" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "62933a2951ef01f4eafd9bdf4d3cd2f0" - } - } - } - }, - "type": "object" - }, - "tags": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/tags" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "tag" - }, - "id": { - "type": "string", - "example": "d57ac45256849d9b13e2422d91580fb9" - } - } - } - } - }, - "type": "object" - }, - "tax": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/shipping-method/d72e7a227a27328b28342b32fc66b6bf/tax" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "tax" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "06565e5611f23fdf8cc43e5077b92b54" - } - } - } - }, - "type": "object" - } - }, - "type": "object" + "campaignCode": { + "type": "string", + "description": "A campaign tracking code" } - }, - "type": "object" + } } - ] - }, - "ShippingMethod": { - "description": "Added since version: 6.0.0.0", - "required": [ - "deliveryTimeId", - "taxType", - "createdAt", - "name" ], "properties": { "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of shipping method." - }, - "name": { - "type": "string", - "description": "Name of the shipping method." - }, - "active": { - "type": "boolean", - "description": "When boolean value is `true`, the shipping methods are available for selection in the storefront." + "description": "Unique identity of cart." }, - "position": { - "type": "integer", - "format": "int64", - "description": "The order of the tabs of your defined shipping methods in the storefront by entering numerical values like 1,2,3, etc." - }, - "customFields": { - "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." - }, - "mediaId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of media." - }, - "deliveryTimeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of deliveryTime." - }, - "taxType": { - "type": "string", - "description": "Refers `Free`, `Net` or `Gross` type of taxes." - }, - "description": { - "type": "string", - "description": "Description of each shipping method." - }, - "trackingUrl": { - "type": "string", - "description": "This URL allows to track packages." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object", - "description": "Contains the translations of all translated fields." - }, - "deliveryTime": { - "$ref": "#/components/schemas/DeliveryTime" - }, - "availabilityRule": { - "$ref": "#/components/schemas/Rule" - }, - "prices": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ShippingMethodPrice" + "errors": { + "properties": { + "key": { + "description": "Unique key for every message." + }, + "level": { + "description": "Types of level - Notice, warning and error. " + }, + "message": { + "description": "A persistent error passed from the shopping cart calculation processes to the user end." + } } }, - "media": { - "$ref": "#/components/schemas/Media" - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" + "transactions": { + "properties": { + "paymentMethodId": { + "description": "Unique identity of payment method." + } } }, - "tax": { - "$ref": "#/components/schemas/Tax" - } - }, - "type": "object" - }, - "ShippingMethodPrice": { - "description": "Added since version: 6.0.0.0", - "required": [ - "shippingMethodId", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of shipping method price." - }, - "shippingMethodId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of shipping method." - }, - "ruleId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of rule." - }, - "calculation": { - "type": "integer", - "format": "int64", - "description": "Shipping price calculated based on quantity, price, weight or volume of items." - }, - "calculationRuleId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of rule calculation." - }, - "quantityStart": { - "type": "number", - "format": "float", - "description": "Starting range of quantity of an item." - }, - "quantityEnd": { - "type": "number", - "format": "float", - "description": "Ending range of quantity of an item." - }, - "currencyPrice": { - "type": "object", - "description": "Contains currency-based price." - }, - "customFields": { - "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "Snippet": { - "description": "Added since version: 6.0.0.0", - "required": [ - "setId", - "translationKey", - "value", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of snippet." - }, - "setId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity od snippet set." - }, - "translationKey": { - "type": "string", - "description": "Reference to the snippet in the template." - }, - "value": { - "type": "string", - "description": "Value of the key." - }, - "customFields": { - "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "modified": { + "description": "It signifies any changes to cart." } - }, - "type": "object" + } }, - "SnippetSet": { - "description": "Added since version: 6.0.0.0", - "required": [ - "name", - "iso", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of snippet set." - }, - "name": { - "type": "string", - "description": "Name of snippet set." - }, - "iso": { - "type": "string", - "description": "ISO nomenclature used to classify languages." + "EntitySearchResult": { + "allOf": [ + { + "$ref": "#/components/schemas/ArrayStruct" }, - "customFields": { + { "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "snippets": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Snippet" - } - } - }, - "type": "object" - }, - "StateMachine": { - "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of state machine." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object", - "description": "Contains the translations of all translated fields." - }, - "states": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StateMachineState" - } - }, - "transitions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StateMachineTransition" - } - } - }, - "type": "object" - }, - "StateMachineHistory": { - "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of state machine history." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "fromStateMachineState": { - "$ref": "#/components/schemas/StateMachineState" - }, - "toStateMachineState": { - "$ref": "#/components/schemas/StateMachineState" - } - }, - "type": "object" - }, - "StateMachineState": { - "description": "Added since version: 6.0.0.0", - "required": [ - "technicalName", - "createdAt", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of state machine state." - }, - "technicalName": { - "type": "string", - "description": "Technical name of StateMachineState." - }, - "name": { - "type": "string", - "description": "Display name of StateMachineState." - }, - "customFields": { - "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object", - "description": "Contains the translations of all translated fields." - } - }, - "type": "object" - }, - "StateMachineTransition": { - "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of state machine transition." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "Subscription": { - "required": [ - "convertedOrder", - "subscriptionNumber", - "nextSchedule", - "salesChannelId", - "subscriptionPlanName", - "subscriptionIntervalName", - "dateInterval", - "cronInterval", - "initialExecutionCount", - "remainingExecutionCount", - "billingAddressId", - "shippingAddressId", - "shippingMethodId", - "paymentMethodId", - "currencyId", - "languageId", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of subscription." - }, - "convertedOrder": { - "type": "object", - "description": "An array loaded with persistent information related to cart data." - }, - "subscriptionNumber": { - "type": "string", - "description": "Unique number associated with subscription." - }, - "nextSchedule": { - "type": "string", - "format": "date-time", - "description": "Date and time of next scheduled subscription for example: `yyyy-mm-dd hh:mm:ss` - `2023-08-15 15:25:32`." - }, - "salesChannelId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of sales channel." - }, - "subscriptionPlanId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of subscription plan." - }, - "subscriptionPlanName": { - "type": "string", - "description": "Unique name for subscription plan." - }, - "subscriptionIntervalId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity for subscription interval." - }, - "subscriptionIntervalName": { - "type": "string", - "description": "Unique name for subscription interval." - }, - "dateInterval": { - "type": "string", - "description": "Relative interval data. For example, `every 3 days`, `every 2 months`, etc." - }, - "cronInterval": { - "type": "string", - "description": "Absolute interval data. For example, `only on January`, `only on Mondays`, etc." - }, - "initialExecutionCount": { - "type": "integer", - "format": "int64" - }, - "remainingExecutionCount": { - "type": "integer", - "format": "int64" - }, - "billingAddressId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of billing address." - }, - "shippingAddressId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of shipping address." - }, - "shippingMethodId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of shipping method." - }, - "paymentMethodId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of payment method." - }, - "currencyId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of currency." - }, - "languageId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of language." - }, - "customFields": { - "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "subscriptionPlan": { - "$ref": "#/components/schemas/SubscriptionPlan" - }, - "subscriptionInterval": { - "$ref": "#/components/schemas/SubscriptionInterval" - }, - "subscriptionCustomer": { - "$ref": "#/components/schemas/SubscriptionCustomer" - }, - "billingAddress": { - "$ref": "#/components/schemas/SubscriptionAddress" - }, - "shippingAddress": { - "$ref": "#/components/schemas/SubscriptionAddress" - }, - "addresses": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SubscriptionAddress" - } - }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" - }, - "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" - }, - "orders": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - } - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } - }, - "currency": { - "$ref": "#/components/schemas/Currency" - }, - "language": { - "$ref": "#/components/schemas/Language" - } - }, - "type": "object" - }, - "SubscriptionAddress": { - "required": [ - "countryId", - "subscriptionId", - "firstName", - "lastName", - "street", - "city", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of subscription address." - }, - "countryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of country." - }, - "subscriptionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of subscription." - }, - "countryStateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of state of the country." - }, - "salutationId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of salutation." - }, - "firstName": { - "type": "string", - "description": "First name of the subscribed customer." - }, - "lastName": { - "type": "string", - "description": "Last name of the subscribed customer." - }, - "street": { - "type": "string", - "description": "Street address" - }, - "zipcode": { - "type": "string", - "description": "Zip code of the country." - }, - "city": { - "type": "string" - }, - "company": { - "type": "string", - "description": "Name of the company." - }, - "department": { - "type": "string", - "description": "Name of the department." - }, - "title": { - "type": "string", - "description": "Title name given to customer's order address." - }, - "vatId": { - "type": "string", - "description": "Unique identity of VAT." - }, - "phoneNumber": { - "type": "string", - "description": "Phone number of the customer." - }, - "additionalAddressLine1": { - "type": "string", - "description": "Additional address input if necessary." - }, - "additionalAddressLine2": { - "type": "string", - "description": "Additional address input if necessary." - }, - "customFields": { - "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "billingSubscription": { - "$ref": "#/components/schemas/Subscription" - }, - "shippingSubscription": { - "$ref": "#/components/schemas/Subscription" - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "$ref": "#/components/schemas/CountryState" - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" - }, - "subscription": { - "$ref": "#/components/schemas/Subscription" - }, - "email": { - "description": "Last name of the subscribed customer. " - } - }, - "type": "object" - }, - "SubscriptionCustomer": { - "required": [ - "salutationId", - "email", - "firstName", - "lastName", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of subscription customer." - }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of the customer." - }, - "salutationId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of salutation." - }, - "email": { - "type": "string" - }, - "firstName": { - "type": "string", - "description": "Email address of the subscribed customer." - }, - "lastName": { - "type": "string", - "description": "Last name of the subscribed customer. " - }, - "company": { - "type": "string", - "description": "Name of the customer's company." - }, - "title": { - "type": "string", - "description": "Title name given to customer's order address." - }, - "customerNumber": { - "type": "string", - "description": "Unique number for subscribed customer." - }, - "vatIds": { - "type": "array", - "items": { - "type": "string" - } - }, - "customFields": { - "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" - }, - "vatId": { - "description": "Unique identity of VAT." - } - }, - "type": "object" - }, - "SubscriptionInterval": { - "required": [ - "name", - "active", - "dateInterval", - "cronInterval", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of subscription interval." - }, - "name": { - "type": "string", - "description": "Name of the subscription interval." - }, - "active": { - "type": "boolean", - "description": "When `true`, the defined subscription interval is available for selection in storefront." - }, - "dateInterval": { - "type": "string", - "description": "Relative interval data. For example, `every 3 days`, `every 2 months`, etc." - }, - "cronInterval": { - "type": "string", - "description": "Absolute interval data. For example, `only on January`, `only on Mondays`, etc." - }, - "availabilityRuleId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of rule." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object", - "description": "Contains the translations of all translated fields." - }, - "subscriptions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Subscription" - } - } - }, - "type": "object" - }, - "SubscriptionPlanJsonApi": { - "allOf": [ - { - "$ref": "#/components/schemas/resource" - }, - { - "required": [ - "name", - "active", - "activeStorefrontLabel", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "minimumExecutionCount": { - "type": "integer", - "format": "int64" - }, - "activeStorefrontLabel": { - "type": "boolean" - }, - "availabilityRuleId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "discountPercentage": { - "type": "number", - "format": "float" - }, - "label": { - "type": "string" - }, - "discountPrice": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" - }, - "relationships": { - "properties": { - "subscriptions": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/subscription-plan/5e63f9057837020694081b9412211bfb/subscriptions" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "subscription" - }, - "id": { - "type": "string", - "example": "2d5d14f95af035cbd8437948de61f94c" - } - } - } - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - } - ] - }, - "SubscriptionPlan": { - "required": [ - "name", - "active", - "activeStorefrontLabel", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of subscription plan." - }, - "name": { - "type": "string", - "description": "Name of the subscription plan." - }, - "description": { - "type": "string", - "description": "A short description about the subscription plan." - }, - "active": { - "type": "boolean", - "description": "When `true`, the subscription plan is available for selection in storefront." - }, - "minimumExecutionCount": { - "type": "integer", - "format": "int64" - }, - "activeStorefrontLabel": { - "type": "boolean", - "description": "When boolean value id `true`, the label overrides the plan name." - }, - "availabilityRuleId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of rule." - }, - "discountPercentage": { - "type": "number", - "format": "float" - }, - "label": { - "type": "string", - "description": "Label that can overwrite the active plan name. " - }, - "discountPrice": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object", - "description": "Contains the translations of all translated fields." - }, - "subscriptions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Subscription" - } - } - }, - "type": "object" - }, - "SubscriptionPlanIntervalMapping": { - "required": [ - "subscriptionIntervalId", - "subscriptionPlanId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of subscription plan interval mapping." - }, - "subscriptionIntervalId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of subscription interval." - }, - "subscriptionPlanId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of subscription plan." - }, - "subscriptionPlan": { - "$ref": "#/components/schemas/SubscriptionPlan" - }, - "subscriptionInterval": { - "$ref": "#/components/schemas/SubscriptionInterval" - } - }, - "type": "object" - }, - "SubscriptionPlanProductMapping": { - "required": [ - "productId", - "subscriptionPlanId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of subscription plan for product mapping." - }, - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of product." - }, - "productVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of product's version." - }, - "subscriptionPlanId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of subscription plan." - }, - "subscriptionPlan": { - "$ref": "#/components/schemas/SubscriptionPlan" - }, - "product": { - "$ref": "#/components/schemas/Product" - } - }, - "type": "object" - }, - "SubscriptionTagMapping": { - "required": [ - "subscriptionId", - "tagId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of subscription tag." - }, - "subscriptionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of subscription." - }, - "tagId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of subscription tag." - }, - "subscription": { - "$ref": "#/components/schemas/Subscription" - }, - "tag": { - "$ref": "#/components/schemas/Tag" - } - }, - "type": "object" - }, - "SwagDelayAction": { - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of swag delay action for flow builder" - }, - "orderId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of order." - }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of customer." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "SystemConfig": { - "description": "Added since version: 6.0.0.0", - "required": [ - "configurationKey", - "configurationValue", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of system configuration." - }, - "configurationKey": { - "type": "string", - "description": "Config key for shop configurations." - }, - "configurationValue": { - "properties": { - "_value": { - "type": "object", - "description": "Config value for shop configurations." - } - }, - "type": "object" - }, - "salesChannelId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of sales channel." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "salesChannel": { - "$ref": "#/components/schemas/SalesChannel" - } - }, - "type": "object" - }, - "Tag": { - "description": "Added since version: 6.0.0.0", - "required": [ - "name", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of tag." - }, - "name": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "Tax": { - "description": "Added since version: 6.0.0.0", - "required": [ - "taxRate", - "name", - "position", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of tax." - }, - "taxRate": { - "type": "number", - "format": "float", - "description": "Rate of tax." - }, - "name": { - "type": "string", - "description": "Name defined for a Tax." - }, - "position": { - "description": "The order of the tabs of your defined taxes in the storefront by entering numerical values like 1,2,3, etc.", - "type": "integer", - "format": "int64" - }, - "customFields": { - "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "TaxProvider": { - "description": "Added since version: 6.5.0.0", - "required": [ - "priority", - "createdAt", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of tax provider." - }, - "active": { - "type": "boolean", - "description": "When boolean value is `true`, the tax providers are available for selection in the storefront." - }, - "name": { - "type": "string", - "description": "Name of the tax provider." - }, - "priority": { - "type": "integer", - "format": "int64", - "description": "A numerical value to prioritize one the tax providers from the list." - }, - "processUrl": { - "type": "string", - "description": "External URL makes request to get tax info." - }, - "appId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of app." - }, - "customFields": { - "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object", - "description": "Contains the translations of all translated fields." - } - }, - "type": "object" - }, - "TaxRule": { - "description": "Added since version: 6.1.0.0", - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of tax rule." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "TaxRuleType": { - "description": "Added since version: 6.1.0.0", - "required": [ - "createdAt", - "typeName" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of tax rule type." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object", - "description": "Contains the translations of all translated fields." - } - }, - "type": "object" - }, - "Theme": { - "description": "Added since version: 6.0.0.0", - "required": [ - "name", - "author", - "active", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of Theme." - }, - "technicalName": { - "type": "string", - "description": "Technical name of Theme." - }, - "name": { - "type": "string", - "description": "Name of theme which is translatable." - }, - "author": { - "type": "string", - "description": "Name of the company." - }, - "description": { - "type": "string", - "description": "Description of the theme." - }, - "labels": { - "type": "object", - "description": "Identification label given to theme." - }, - "helpTexts": { - "type": "object", - "description": "Texts from config element." - }, - "customFields": { - "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." - }, - "previewMediaId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of media used for previewing the theme." - }, - "parentThemeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of parent theme." - }, - "baseConfig": { - "type": "object", - "description": "Config elements of theme like header, color, etc" - }, - "configValues": { - "type": "object" - }, - "active": { - "type": "boolean", - "description": "When boolean value is `true`, the created theme can be made usable." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object", - "description": "Contains the translations of all translated fields." - }, - "media": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Media" - } - }, - "ConfigValues": { - "description": "Chosen values for the configuration." - } - }, - "type": "object" - }, - "Unit": { - "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt", - "shortCode", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of Unit." - }, - "shortCode": { - "type": "string", - "description": "Short name for unit, e.g., m, kg." - }, - "name": { - "type": "string", - "description": "Full name of the unit, e.g., Meter, kilogram." - }, - "customFields": { - "type": "object", - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object", - "description": "Contains the translations of all translated fields." - } - }, - "type": "object" - }, - "User": { - "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of user." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "UserAccessKey": { - "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of user access key." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "UserConfig": { - "description": "Added since version: 6.3.5.0", - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of user configuration." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "UserRecovery": { - "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of user recovery." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "Warehouse": { - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of warehouse." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "WarehouseGroup": { - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of warehouse group." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "Webhook": { - "description": "Added since version: 6.3.1.0", - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of webhook." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "WebhookEventLog": { - "description": "Added since version: 6.4.1.0", - "required": [ - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of webhook event log." - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "Cart": { - "allOf": [ - { - "$ref": "#/components/schemas/ArrayStruct" - }, - { - "type": "object", - "properties": { - "name": { - "description": "Name of the cart - for example `guest-cart`", - "type": "string" - }, - "token": { - "description": "Context token identifying the cart and the user session", - "type": "string" - }, - "price": { - "type": "object", - "properties": { - "netPrice": { - "description": "Net price of the cart", - "type": "number", - "format": "float" - }, - "totalPrice": { - "description": "Total price of the cart, including shipping costs, discounts and taxes", - "type": "number", - "format": "float" - }, - "positionPrice": { - "description": "Price for all line items in the cart", - "type": "number", - "format": "float" - }, - "taxStatus": { - "description": "Tax calculation for the cart. One of `gross`, `net` or `tax-free`", - "type": "string" - } - } - }, - "lineItems": { - "description": "All items within the cart", - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" - } - }, - "errors": { - "type": "array", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "items": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "level": { - "type": "string" - }, - "message": { - "type": "string" - } - } - } - }, - "transactions": { - "description": "A list of all payment transactions associated with the current cart.", - "type": "array", - "items": { - "type": "object", - "properties": { - "paymentMethodId": { - "type": "string" - } - } - } - }, - "modified": { - "type": "boolean" - }, - "customerComment": { - "type": "string", - "description": "A comment that can be added to the cart." - }, - "affiliateCode": { - "type": "string", - "description": "An affiliate tracking code" - }, - "campaignCode": { - "type": "string", - "description": "A campaign tracking code" - } - } - } - ], - "properties": { - "id": { - "description": "Unique identity of cart." - }, - "errors": { - "properties": { - "key": { - "description": "Unique key for every message." - }, - "level": { - "description": "Types of level - Notice, warning and error. " - }, - "message": { - "description": "A persistent error passed from the shopping cart calculation processes to the user end." - } - } - }, - "transactions": { - "properties": { - "paymentMethodId": { - "description": "Unique identity of payment method." - } - } - }, - "modified": { - "description": "It signifies any changes to cart." - } - } - }, - "EntitySearchResult": { - "allOf": [ - { - "$ref": "#/components/schemas/ArrayStruct" - }, - { - "type": "object", - "properties": { - "entity": { - "type": "string" - }, - "total": { - "type": "integer", - "description": "The total number of found entities" - }, - "aggregations": { - "type": "array", - "description": "Contains aggregated data. A simple example is the determination of the average price from a product search query.", - "items": { - "type": "object" - } - }, - "page": { - "type": "integer", - "description": "The actual page. This can be used for pagination." - }, - "limit": { - "type": "integer", - "description": "The actual limit. This is used for pagination and goes together with the page." - } + "properties": { + "entity": { + "type": "string" + }, + "total": { + "type": "integer", + "description": "The total number of found entities" + }, + "aggregations": { + "type": "array", + "description": "Contains aggregated data. A simple example is the determination of the average price from a product search query.", + "items": { + "type": "object" + } + }, + "page": { + "type": "integer", + "description": "The actual page. This can be used for pagination." + }, + "limit": { + "type": "integer", + "description": "The actual limit. This is used for pagination and goes together with the page." + } } } ] @@ -15022,1699 +12321,1521 @@ "description": "Unique identity of customer's default shipping address within a specific sales channel." }, "customerNumber": { - "description": "Name of the customer within a specific sales channel the customer is interacting." - }, - "salutationId": { - "description": "Unique identity of customer's default shipping address within a specific sales channel." - }, - "firstName": { - "description": "First name of the customer within a specific sales channel." - }, - "lastName": { - "description": "Last name of the customer within a specific sales channel." - }, - "company": { - "description": "Company name of the customer within a specific sales channel." - }, - "password": { - "description": "Password of the customer within a specific sales channel." - }, - "email": { - "description": "Email of the customer within a specific sales channel." - }, - "title": { - "description": "Customer's title or honorifics like Mr, Mrs, etc within a specific sales channel." - }, - "affiliateCode": { - "description": "An affiliate code is an identification option with which website operators can mark outgoing links within a specific sales channel." - }, - "campaignCode": { - "description": "A unique identifier for a campaign within a specific sales channel." - }, - "active": { - "description": "When `true`, the status of the customer is set active within a specific sales channel." - }, - "doubleOptInRegistration": { - "description": "When `true`, user subscriptions to an email marketing list is allowed within a specific sales channel." - }, - "doubleOptInEmailSentDate": { - "description": "Date and time when the double opt-in email was sent within a specific sales channel." - }, - "doubleOptInConfirmDate": { - "description": "Date and time when the double opt-in email was confirmed within a specific sales channel." - }, - "hash": { - "description": "Password hash for account recovery within a specific sales channel." - }, - "guest": { - "description": "Boolean value is `true` for a guest account within a specific sales channel." - }, - "firstLogin": { - "description": "Captures date and time of customer's first login within a specific sales channel." - }, - "lastLogin": { - "description": "Captures date and time of customer's last login within a specific sales channel." - }, - "newsletter": { - "description": "When `true`, then the customer gets subscribe to the newsletter" - }, - "birthday": { - "description": "Captures customer's birthday details within a specific sales channel." - }, - "lastOrderDate": { - "description": "Captures customer's last order date within a specific sales channel." - }, - "orderCount": { - "description": "Captures the number of orders placed by a customer within a specific sales channel." - }, - "legacyEncoder": { - "description": "encapsulates shop credentials when needed to migrate shop system from old instance to new instance" - }, - "legacyPassword": { - "description": "Hashed password of the old shop system" - }, - "autoIncrement": { - "description": "Internal field. " - }, - "remoteAddress": { - "description": "Anonymous IP address of the customer for last session." - } - } - }, - "paymentMethod": { - "properties": { - "pluginId": { - "description": "Unique identity of payment plugin within a specific sales channel." - }, - "handlerIdentifier": { - "description": "Internal field that contains system identifier details for payment methods like Paypal." - }, - "name": { - "description": "Name of the payment method within a specific sales channel." - }, - "description": { - "description": "A short description about the payment method within a specific sales channel." - }, - "position": { - "description": "The order of the tabs of your defined payment methods in the storefront by entering numerical values like 1,2,3, etc within a specific sales channel." - }, - "active": { - "description": "When `true`, the payment method is available for usage within a specific sales channel." - }, - "availabilityRuleId": { - "description": "Unique identity of the rule for the payment method." - }, - "mediaId": { - "description": "Unique identity of media used in payment method within a specific sales channel." - }, - "formattedHandlerIdentifier": { - "description": "Internal field that contains system identifier details for payment methods like Paypal." - } - } - }, - "shippingMethod": { - "properties": { - "name": { - "description": "Name of the shipping method within a specific sales channel." - }, - "active": { - "description": "When `true`, the shipping method is available for usage within a specific sales channel." - }, - "description": { - "description": "A short description about the shipping method within a specific sales channel." - }, - "trackingUrl": { - "description": "URL that allows to track packages for a specific sales channel." - }, - "deliveryTimeId": { - "description": "Unique identity of deliveryTime within a specific sales channel." - }, - "availabilityRuleId": { - "description": "Unique identity of the rule for the payment method." - }, - "mediaId": { - "description": "Unique identity of media used in shipping method within a specific sales channel." - } - } - }, - "context": { - "properties": { - "versionId": { - "description": "Unique identity of context's version in a specific sales channel." - }, - "currencyId": { - "description": "Unique identity of currency context in a specific sales channel." - }, - "currencyFactor": { - "description": "Unique identity of currency factor context in a specific sales channel." - }, - "currencyPrecision": { - "description": "It defines the round off value of currency to the nearest decimal point. If set to 2, it rounds off to two significant decimal points." - }, - "scope": { - "description": "Scope defines if its related to system or user context." - }, - "source": { - "description": "When context is related to user in the source, then there is userId." - }, - "taxState": { - "description": "Tax state can either be `gross` or `net`." - }, - "useCache": { - "description": "When boolean value is `true`, caching is used." - } - } - } - } - }, - "Sitemap": { - "allOf": [ - { - "$ref": "#/components/schemas/ArrayStruct" - }, - { - "type": "object", - "properties": { - "filename": { - "type": "string" - }, - "created": { - "type": "string", - "format": "date-time" - } - } - } - ], - "properties": { - "filename": { - "description": "Name of the file which holds a list of all URL's." - } - } - }, - "OrderRouteResponse": { - "type": "object", - "properties": { - "orders": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - } - }, - "paymentChangeable": { - "type": "object", - "description": "The key-value pairs contain the uuid of the order as key and a boolean as value, indicating that the payment method can still be changed.", - "additionalProperties": { - "type": "boolean" - } - } - } - }, - "ProductListingResult": { - "allOf": [ - { - "$ref": "#/components/schemas/EntitySearchResult" - }, - { - "type": "object", - "properties": { - "currentFilters": { - "type": "object", - "description": "Contains the state of the filters. These can be used to create listing filters.", - "properties": { - "navigationId": { - "type": "string" - }, - "manufacturer": { - "type": "array", - "items": { - "type": "object" - } - }, - "price": { - "type": "object", - "properties": { - "min": { - "type": "integer" - }, - "max": { - "type": "integer" - } - } - }, - "rating": { - "type": "integer" - }, - "shipping-free": { - "type": "boolean" - }, - "properties": { - "type": "array", - "items": { - "type": "object" - } - } - } + "description": "Name of the customer within a specific sales channel the customer is interacting." }, - "availableSortings": { - "type": "array", - "description": "Contains the available sorting. These can be used to show a sorting select-box in the product listing.", - "items": { - "type": "object" - } + "salutationId": { + "description": "Unique identity of customer's default shipping address within a specific sales channel." }, - "sorting": { - "type": "string" + "firstName": { + "description": "First name of the customer within a specific sales channel." }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } - } - } - } - ] - }, - "ProductListingCriteria": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - }, - { - "type": "object", - "description": "Additional search parameters for product listings", - "properties": { - "order": { - "description": "Specifies the sorting of the products by `availableSortings`. If not set, the default sorting will be set according to the shop settings. The available sorting options are sent within the response under the `availableSortings` key. In order to sort by a field, consider using the `sort` parameter from the listing criteria. Do not use both parameters together, as it might lead to unexpected results.", - "type": "string" + "lastName": { + "description": "Last name of the customer within a specific sales channel." }, - "limit": { - "description": "Number of items per result page. If not set, the limit will be set according to the default products per page, defined in the system settings.", - "type": "integer", - "minimum": 0 + "company": { + "description": "Company name of the customer within a specific sales channel." }, - "p": { - "description": "Search result page", - "type": "integer", - "default": 1 + "password": { + "description": "Password of the customer within a specific sales channel." }, - "manufacturer": { - "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", - "type": "string" + "email": { + "description": "Email of the customer within a specific sales channel." }, - "min-price": { - "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", - "type": "integer", - "minimum": 0, - "default": 0 + "title": { + "description": "Customer's title or honorifics like Mr, Mrs, etc within a specific sales channel." }, - "max-price": { - "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", - "type": "integer", - "minimum": 0, - "default": 0 + "affiliateCode": { + "description": "An affiliate code is an identification option with which website operators can mark outgoing links within a specific sales channel." }, - "rating": { - "description": "Filter products with a minimum average rating.", - "type": "integer" + "campaignCode": { + "description": "A unique identifier for a campaign within a specific sales channel." }, - "shipping-free": { - "description": "Filters products that are marked as shipping-free.", - "type": "boolean", - "default": false + "active": { + "description": "When `true`, the status of the customer is set active within a specific sales channel." }, - "properties": { - "description": "Filters products by their properties. List of property identifiers separated by a `|`.", - "type": "string" + "doubleOptInRegistration": { + "description": "When `true`, user subscriptions to an email marketing list is allowed within a specific sales channel." }, - "manufacturer-filter": { - "description": "Enables/disabled filtering by manufacturer. If set to false, the `manufacturer` filter will be ignored. Also the `aggregations[manufacturer]` key will be removed from the response.", - "type": "boolean", - "default": true + "doubleOptInEmailSentDate": { + "description": "Date and time when the double opt-in email was sent within a specific sales channel." }, - "price-filter": { - "description": "Enables/disabled filtering by price. If set to false, the `min-price` and `max-price` filter will be ignored. Also the `aggregations[price]` key will be removed from the response.", - "type": "boolean", - "default": true + "doubleOptInConfirmDate": { + "description": "Date and time when the double opt-in email was confirmed within a specific sales channel." }, - "rating-filter": { - "description": "Enables/disabled filtering by rating. If set to false, the `rating` filter will be ignored. Also the `aggregations[rating]` key will be removed from the response.", - "type": "boolean", - "default": true + "hash": { + "description": "Password hash for account recovery within a specific sales channel." }, - "shipping-free-filter": { - "description": "Enables/disabled filtering by shipping-free products. If set to false, the `shipping-free` filter will be ignored. Also the `aggregations[shipping-free]` key will be removed from the response.", - "type": "boolean", - "default": true + "guest": { + "description": "Boolean value is `true` for a guest account within a specific sales channel." }, - "property-filter": { - "description": "Enables/disabled filtering by properties products. If set to false, the `properties` filter will be ignored. Also the `aggregations[properties]` key will be removed from the response.", - "type": "boolean", - "default": true + "firstLogin": { + "description": "Captures date and time of customer's first login within a specific sales channel." }, - "property-whitelist": { - "description": "A whitelist of property identifiers which can be used for filtering. List of property identifiers separated by a `|`. The `property-filter` must be `true`, otherwise the whitelist has no effect.", - "type": "string" + "lastLogin": { + "description": "Captures date and time of customer's last login within a specific sales channel." }, - "reduce-aggregations": { - "description": "By sending the parameter `reduce-aggregations` , the post-filters that were applied by the customer, are also applied to the aggregations. This has the consequence that only values are returned in the aggregations that would lead to further filter results. This parameter is a flag, the value has no effect.", - "type": "string", - "nullable": true - } - } - } - ], - "properties": { - "filter": { - "properties": { - "type": { - "description": "To filter the results and aggregations with filter types like ==, >=, etc." + "newsletter": { + "description": "When `true`, then the customer gets subscribe to the newsletter" }, - "field": { - "description": "To filter the results and aggregations by field like an property identifier." + "birthday": { + "description": "Captures customer's birthday details within a specific sales channel." }, - "value": { - "description": "To filter the results and aggregations by value." - } - } - }, - "sort": { - "properties": { - "field": { - "description": "Sort the search results by field like an property identifier." + "lastOrderDate": { + "description": "Captures customer's last order date within a specific sales channel." }, - "order": { - "description": "Sort the search results of orders by ascending or descending." + "orderCount": { + "description": "Captures the number of orders placed by a customer within a specific sales channel." }, - "naturalSorting": { - "description": "Sorting for special cases such as German letters with umlauts and similar characters etc." + "legacyEncoder": { + "description": "encapsulates shop credentials when needed to migrate shop system from old instance to new instance" + }, + "legacyPassword": { + "description": "Hashed password of the old shop system" + }, + "autoIncrement": { + "description": "Internal field. " + }, + "remoteAddress": { + "description": "Anonymous IP address of the customer for last session." } } }, - "post-filter": { + "paymentMethod": { "properties": { - "type": { - "description": "To filter only the results but not the aggregations with filter types like ==, >=, etc." + "pluginId": { + "description": "Unique identity of payment plugin within a specific sales channel." }, - "field": { - "description": "To filter only the results but not the aggregations by field like an property identifier." + "handlerIdentifier": { + "description": "Internal field that contains system identifier details for payment methods like Paypal." }, - "value": { - "description": "To filter only the results but not the aggregations by value." - } - } - } - } - }, - "Criteria": { - "type": "object", - "description": "Criteria to query entities.", - "properties": { - "page": { - "description": "Search result page", - "type": "integer" - }, - "limit": { - "description": "Number of items per result page", - "type": "integer" - }, - "filter": { - "type": "array", - "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "field": { - "type": "string" - }, - "value": { - "type": "string" - } + "name": { + "description": "Name of the payment method within a specific sales channel." }, - "required": [ - "type", - "field", - "value" - ] - }, - "properties": { - "type": { - "description": "To filter the results and aggregations with filter types like ==, >=, etc." + "description": { + "description": "A short description about the payment method within a specific sales channel." }, - "field": { - "description": "To filter the results and aggregations by field like an property identifier." + "position": { + "description": "The order of the tabs of your defined payment methods in the storefront by entering numerical values like 1,2,3, etc within a specific sales channel." }, - "value": { - "description": "To filter the results and aggregations by value." - } - } - }, - "sort": { - "type": "array", - "description": "Sorting in the search result.", - "items": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string" - }, - "naturalSorting": { - "type": "boolean" - } + "active": { + "description": "When `true`, the payment method is available for usage within a specific sales channel." }, - "required": [ - "field" - ] - }, - "properties": { - "field": { - "description": "Sort the search results by field like an property identifier." + "availabilityRuleId": { + "description": "Unique identity of the rule for the payment method." }, - "order": { - "description": "Sort the search results of orders by ascending or descending." + "mediaId": { + "description": "Unique identity of media used in payment method within a specific sales channel." }, - "naturalSorting": { - "description": "Sorting for special cases such as German letters with umlauts and similar characters etc." + "formattedHandlerIdentifier": { + "description": "Internal field that contains system identifier details for payment methods like Paypal." } } }, - "post-filter": { - "type": "array", - "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" - }, - "field": { - "type": "string" - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "field", - "value" - ] - }, + "shippingMethod": { "properties": { - "type": { - "description": "To filter only the results but not the aggregations with filter types like ==, >=, etc." + "name": { + "description": "Name of the shipping method within a specific sales channel." }, - "field": { - "description": "To filter only the results but not the aggregations by field like an property identifier." + "active": { + "description": "When `true`, the shipping method is available for usage within a specific sales channel." }, - "value": { - "description": "To filter only the results but not the aggregations by value." - } - } - }, - "associations": { - "type": "object", - "description": "Used to fetch associations which are not fetched by default." - }, - "aggregations": { - "type": "array", - "description": "Used to perform aggregations on the search result. For more information, see [Search Queries > Aggregations](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#aggregations)", - "items": { - "type": "object", - "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" - }, - "type": { - "description": "The type of aggregation", - "type": "string" - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - } + "description": { + "description": "A short description about the shipping method within a specific sales channel." }, - "required": [ - "name", - "type", - "field" - ] - } - }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" - } - }, - "fields": { - "type": "array", - "description": "Fields which should be returned in the search result.", - "items": { - "type": "string", - "description": "Name of a field" + "trackingUrl": { + "description": "URL that allows to track packages for a specific sales channel." + }, + "deliveryTimeId": { + "description": "Unique identity of deliveryTime within a specific sales channel." + }, + "availabilityRuleId": { + "description": "Unique identity of the rule for the payment method." + }, + "mediaId": { + "description": "Unique identity of media used in shipping method within a specific sales channel." + } } }, - "total-count-mode": { - "description": "Whether the total for the total number of hits should be determined for the search query. none = disabled total count, exact = calculate exact total amount (slow), next-pages = calculate only for next page (fast)", - "type": "string", - "default": "none", - "enum": [ - "none", - "exact", - "next-pages" - ] - } - } - }, - "FindProductVariantRouteResponse": { - "type": "object", - "properties": { - "foundCombination": { - "type": "object", + "context": { "properties": { - "variantId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of a variant." + "versionId": { + "description": "Unique identity of context's version in a specific sales channel." }, - "options": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Available product variant options. For example, for variant `Size`, option would be `XS`, `S`, `M`, `L`, `XL`." - } - } - } - } - }, - "SuccessResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - } - } - }, - "CrossSellingElementCollection": { - "type": "array", - "items": { - "type": "object", - "properties": { - "crossSelling": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "position": { - "type": "integer", - "format": "int32" - }, - "sortBy": { - "type": "string" - }, - "sortDirection": { - "type": "string" - }, - "limit": { - "type": "integer", - "format": "int32" - }, - "active": { - "type": "boolean" - }, - "productId": { - "type": "string" - }, - "productStreamId": { - "type": "string" - }, - "type": { - "type": "string" - } - } - }, - "products": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" + "currencyId": { + "description": "Unique identity of currency context in a specific sales channel." + }, + "currencyFactor": { + "description": "Unique identity of currency factor context in a specific sales channel." + }, + "currencyPrecision": { + "description": "It defines the round off value of currency to the nearest decimal point. If set to 2, it rounds off to two significant decimal points." + }, + "scope": { + "description": "Scope defines if its related to system or user context." + }, + "source": { + "description": "When context is related to user in the source, then there is userId." + }, + "taxState": { + "description": "Tax state can either be `gross` or `net`." + }, + "useCache": { + "description": "When boolean value is `true`, caching is used." } - }, - "total": { - "type": "integer", - "format": "int32" - } - } - }, - "properties": { - "total": { - "description": "Number of cross selling elements found." - } - } - }, - "ProductDetailResponse": { - "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", - "properties": { - "product": { - "$ref": "#/components/schemas/Product" - }, - "configurator": { - "type": "array", - "description": "List of property groups with their corresponding options and information on how to display them.", - "items": { - "$ref": "#/components/schemas/PropertyGroup" - } - }, - "id": { - "description": "Unique identity of product detail response." - }, - "available": { - "description": "When boolean value is true, the product is available for purchase." - }, - "isCloseout": { - "description": "Boolean value to check if the product is still buyable when stock value is 0." - }, - "displayGroup": { - "description": "Internal field." - }, - "manufacturerNumber": { - "description": "Unique number of the product manufacturer." - }, - "stock": { - "description": "Quantity of product available." - }, - "sortedProperties": { - "description": "Properties of the product that are sorted" + } } } }, - "ProductListingFlags": { - "type": "object", - "description": "Additional flags for product listings", - "properties": { - "no-aggregations": { - "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", - "type": "string", - "nullable": true + "Sitemap": { + "allOf": [ + { + "$ref": "#/components/schemas/ArrayStruct" }, - "only-aggregations": { - "description": "If this flag is set, no products are fetched. Sorting and associations are also ignored. This parameter is a flag, the value has no effect.", - "type": "string", - "nullable": true + { + "type": "object", + "properties": { + "filename": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + } + } + } + ], + "properties": { + "filename": { + "description": "Name of the file which holds a list of all URL's." } } }, - "LineItem": { + "OrderRouteResponse": { "type": "object", "properties": { - "id": { - "type": "string", - "description": "Unique identity of line item." - }, - "referencedId": { - "type": "string", - "description": "Unique identity of type of entity." - }, - "label": { - "type": "string", - "description": "It is a typical product name given to the line item." - }, - "quantity": { - "type": "integer", - "format": "int32", - "description": "Number of items of product." - }, - "type": { - "type": "string", - "description": "Type refers to the entity type of an item whether it is product or promotion for instance." + "orders": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Order" + } }, - "good": { - "type": "boolean", - "description": "When set to true, it indicates the line item is physical else it is virtual." + "paymentChangeable": { + "type": "object", + "description": "The key-value pairs contain the uuid of the order as key and a boolean as value, indicating that the payment method can still be changed.", + "additionalProperties": { + "type": "boolean" + } + } + } + }, + "ProductListingResult": { + "allOf": [ + { + "$ref": "#/components/schemas/EntitySearchResult" }, - "description": { - "type": "string", - "description": "Description of line items in an order." + { + "type": "object", + "properties": { + "currentFilters": { + "type": "object", + "description": "Contains the state of the filters. These can be used to create listing filters.", + "properties": { + "navigationId": { + "type": "string" + }, + "manufacturer": { + "type": "array", + "items": { + "type": "object" + } + }, + "price": { + "type": "object", + "properties": { + "min": { + "type": "integer" + }, + "max": { + "type": "integer" + } + } + }, + "rating": { + "type": "integer" + }, + "shipping-free": { + "type": "boolean" + }, + "properties": { + "type": "array", + "items": { + "type": "object" + } + } + } + }, + "availableSortings": { + "type": "array", + "description": "Contains the available sorting. These can be used to show a sorting select-box in the product listing.", + "items": { + "type": "object" + } + }, + "sorting": { + "type": "string" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + } + } + } + ] + }, + "ProductListingCriteria": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" }, - "removable": { - "type": "boolean", - "description": "Allows the line item to be removable from the cart when set to true." + { + "type": "object", + "description": "Additional search parameters for product listings", + "properties": { + "order": { + "description": "Specifies the sorting of the products by `availableSortings`. If not set, the default sorting will be set according to the shop settings. The available sorting options are sent within the response under the `availableSortings` key. In order to sort by a field, consider using the `sort` parameter from the listing criteria. Do not use both parameters together, as it might lead to unexpected results.", + "type": "string" + }, + "limit": { + "description": "Number of items per result page. If not set, the limit will be set according to the default products per page, defined in the system settings.", + "type": "integer", + "minimum": 0 + }, + "p": { + "description": "Search result page", + "type": "integer", + "default": 1 + }, + "manufacturer": { + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "type": "string" + }, + "min-price": { + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "max-price": { + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "rating": { + "description": "Filter products with a minimum average rating.", + "type": "integer" + }, + "shipping-free": { + "description": "Filters products that are marked as shipping-free.", + "type": "boolean", + "default": false + }, + "properties": { + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "type": "string" + }, + "manufacturer-filter": { + "description": "Enables/disabled filtering by manufacturer. If set to false, the `manufacturer` filter will be ignored. Also the `aggregations[manufacturer]` key will be removed from the response.", + "type": "boolean", + "default": true + }, + "price-filter": { + "description": "Enables/disabled filtering by price. If set to false, the `min-price` and `max-price` filter will be ignored. Also the `aggregations[price]` key will be removed from the response.", + "type": "boolean", + "default": true + }, + "rating-filter": { + "description": "Enables/disabled filtering by rating. If set to false, the `rating` filter will be ignored. Also the `aggregations[rating]` key will be removed from the response.", + "type": "boolean", + "default": true + }, + "shipping-free-filter": { + "description": "Enables/disabled filtering by shipping-free products. If set to false, the `shipping-free` filter will be ignored. Also the `aggregations[shipping-free]` key will be removed from the response.", + "type": "boolean", + "default": true + }, + "property-filter": { + "description": "Enables/disabled filtering by properties products. If set to false, the `properties` filter will be ignored. Also the `aggregations[properties]` key will be removed from the response.", + "type": "boolean", + "default": true + }, + "property-whitelist": { + "description": "A whitelist of property identifiers which can be used for filtering. List of property identifiers separated by a `|`. The `property-filter` must be `true`, otherwise the whitelist has no effect.", + "type": "string" + }, + "reduce-aggregations": { + "description": "By sending the parameter `reduce-aggregations` , the post-filters that were applied by the customer, are also applied to the aggregations. This has the consequence that only values are returned in the aggregations that would lead to further filter results. This parameter is a flag, the value has no effect.", + "type": "string", + "nullable": true + } + } + } + ], + "properties": { + "filter": { + "properties": { + "type": { + "description": "To filter the results and aggregations with filter types like ==, >=, etc." + }, + "field": { + "description": "To filter the results and aggregations by field like an property identifier." + }, + "value": { + "description": "To filter the results and aggregations by value." + } + } }, - "stackable": { - "type": "boolean", - "description": "Allows to change the quantity of the line item when set to true." + "sort": { + "properties": { + "field": { + "description": "Sort the search results by field like an property identifier." + }, + "order": { + "description": "Sort the search results of orders by ascending or descending." + }, + "naturalSorting": { + "description": "Sorting for special cases such as German letters with umlauts and similar characters etc." + } + } }, - "modified": { - "type": "boolean", - "description": "When boolean value is `true`, line items are said to be modified." + "post-filter": { + "properties": { + "type": { + "description": "To filter only the results but not the aggregations with filter types like ==, >=, etc." + }, + "field": { + "description": "To filter only the results but not the aggregations by field like an property identifier." + }, + "value": { + "description": "To filter only the results but not the aggregations by value." + } + } } } }, - "NavigationRouteResponse": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - }, + "Criteria": { + "type": "object", + "description": "Criteria to query entities.", "properties": { - "id": { - "description": "Unique identity of navigation route response." - } - } - } - }, - "responses": { - "404": { - "description": "Not Found", - "content": { - "application/vnd.api+json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "404", - "title": "Not Found", - "description": "Resource with given parameter was not found." + "page": { + "description": "Search result page", + "type": "integer" + }, + "limit": { + "description": "Number of items per result page", + "type": "integer" + }, + "filter": { + "type": "array", + "description": "List of filters to restrict the search result. For more information, see [Search Queries > Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#filter)", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "field": { + "type": "string" + }, + "value": { + "type": "string" } + }, + "required": [ + "type", + "field", + "value" ] + }, + "properties": { + "type": { + "description": "To filter the results and aggregations with filter types like ==, >=, etc." + }, + "field": { + "description": "To filter the results and aggregations by field like an property identifier." + }, + "value": { + "description": "To filter the results and aggregations by value." + } } }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "404", - "title": "Not Found", - "description": "Resource with given parameter was not found." + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "type": "object", + "properties": { + "field": { + "type": "string" + }, + "order": { + "type": "string" + }, + "naturalSorting": { + "type": "boolean" } + }, + "required": [ + "field" ] - } - } - } - }, - "403": { - "description": "Forbidden", - "content": { - "application/vnd.api+json": { - "schema": { - "$ref": "#/components/schemas/failure" }, - "example": { - "errors": [ - { - "status": "403", - "title": "Forbidden", - "description": "This operation is restricted to logged in users." - } - ] + "properties": { + "field": { + "description": "Sort the search results by field like an property identifier." + }, + "order": { + "description": "Sort the search results of orders by ascending or descending." + }, + "naturalSorting": { + "description": "Sorting for special cases such as German letters with umlauts and similar characters etc." + } } }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "403", - "title": "Forbidden", - "description": "This operation is restricted to logged in users." + "post-filter": { + "type": "array", + "description": "Filters that applied without affecting aggregations. For more information, see [Search Queries > Post Filter](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#post-filter)", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "field": { + "type": "string" + }, + "value": { + "type": "string" } + }, + "required": [ + "type", + "field", + "value" ] - } - } - } - }, - "401": { - "description": "Unauthorized", - "content": { - "application/vnd.api+json": { - "schema": { - "$ref": "#/components/schemas/failure" }, - "example": { - "errors": [ - { - "status": "401", - "title": "Unauthorized", - "description": "Authorization information is missing or invalid." - } - ] + "properties": { + "type": { + "description": "To filter only the results but not the aggregations with filter types like ==, >=, etc." + }, + "field": { + "description": "To filter only the results but not the aggregations by field like an property identifier." + }, + "value": { + "description": "To filter only the results but not the aggregations by value." + } } }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "401", - "title": "Unauthorized", - "description": "Authorization information is missing or invalid." + "associations": { + "type": "object", + "description": "Used to fetch associations which are not fetched by default." + }, + "aggregations": { + "type": "array", + "description": "Used to perform aggregations on the search result. For more information, see [Search Queries > Aggregations](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#aggregations)", + "items": { + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, + "type": { + "description": "The type of aggregation", + "type": "string" + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" } + }, + "required": [ + "name", + "type", + "field" ] } - } - } - }, - "400": { - "description": "Bad Request", - "content": { - "application/vnd.api+json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "400", - "title": "Bad Request", - "description": "Bad parameters for this endpoint. See documentation for the correct ones." - } - ] + }, + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" } }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "400", - "title": "Bad Request", - "description": "Bad parameters for this endpoint. See documentation for the correct ones." - } - ] + "fields": { + "type": "array", + "description": "Fields which should be returned in the search result.", + "items": { + "type": "string", + "description": "Name of a field" } + }, + "total-count-mode": { + "description": "Whether the total for the total number of hits should be determined for the search query. none = disabled total count, exact = calculate exact total amount (slow), next-pages = calculate only for next page (fast)", + "type": "string", + "default": "none", + "enum": [ + "none", + "exact", + "next-pages" + ] } } }, - "204": { - "description": "No Content" - }, - "ContextTokenResponse": { - "description": "Returns the context token. Use that as your `sw-context-token` header for subsequent requests. Redirect if getRedirectUrl is set.", - "headers": { - "sw-context-token": { - "description": "Contains sw-context-token value", - "schema": { - "type": "string" + "FindProductVariantRouteResponse": { + "type": "object", + "properties": { + "foundCombination": { + "type": "object", + "properties": { + "variantId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of a variant." + }, + "options": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Available product variant options. For example, for variant `Size`, option would be `XS`, `S`, `M`, `L`, `XL`." + } } } - }, - "content": { - "application/json": { - "schema": { + } + }, + "SuccessResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + } + } + }, + "CrossSellingElementCollection": { + "type": "array", + "items": { + "type": "object", + "properties": { + "crossSelling": { "type": "object", "properties": { - "contextToken": { - "deprecated": true, - "description": "Deprecated since v6.6.0.0. Please retrieve the context token from the response header instead.", + "name": { "type": "string" }, - "redirectUrl": { - "description": "Define the URL which browser will be redirected to", + "position": { + "type": "integer", + "format": "int32" + }, + "sortBy": { + "type": "string" + }, + "sortDirection": { + "type": "string" + }, + "limit": { + "type": "integer", + "format": "int32" + }, + "active": { + "type": "boolean" + }, + "productId": { + "type": "string" + }, + "productStreamId": { + "type": "string" + }, + "type": { "type": "string" } } + }, + "products": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + }, + "total": { + "type": "integer", + "format": "int32" } } + }, + "properties": { + "total": { + "description": "Number of cross selling elements found." + } } - } - }, - "parameters": { - "contentType": { - "name": "Content-Type", - "in": "header", - "description": "Content type of the request", - "required": true, - "schema": { - "type": "string", - "default": "application/json" - } - }, - "accept": { - "name": "Accept", - "in": "header", - "description": "Accepted response content types", - "required": true, - "schema": { - "type": "string", - "default": "application/json" - } - } - }, - "securitySchemes": { - "ApiKey": { - "type": "apiKey", - "description": "Identifies the sales channel you want to access the API through", - "name": "sw-access-key", - "in": "header" }, - "ContextToken": { - "type": "apiKey", - "description": "Identifies an anonymous or identified user session", - "name": "sw-context-token", - "in": "header" - } - } - }, - "security": [ - { - "ApiKey": [] - } - ], - "paths": { - "/country-state/{countryId}": { - "post": { - "tags": [ - "System & Context", - "Endpoints supporting Criteria " - ], - "summary": "Fetch the states of a country", - "description": "Perform a filtered search the states for a country", - "operationId": "readCountryState", - "parameters": [ - { - "name": "countryId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - } - ] - } + "ProductDetailResponse": { + "type": "object", + "description": "Represents a product along with detailed information required to display a variant selection.", + "properties": { + "product": { + "$ref": "#/components/schemas/Product" + }, + "configurator": { + "type": "array", + "description": "List of property groups with their corresponding options and information on how to display them.", + "items": { + "$ref": "#/components/schemas/PropertyGroup" } + }, + "id": { + "description": "Unique identity of product detail response." + }, + "available": { + "description": "When boolean value is true, the product is available for purchase." + }, + "isCloseout": { + "description": "Boolean value to check if the product is still buyable when stock value is 0." + }, + "displayGroup": { + "description": "Internal field." + }, + "manufacturerNumber": { + "description": "Unique number of the product manufacturer." + }, + "stock": { + "description": "Quantity of product available." + }, + "sortedProperties": { + "description": "Properties of the product that are sorted" } - }, - "responses": { - "200": { - "description": "Entity search result containing countries.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CountryState" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } + } + }, + "ProductListingFlags": { + "type": "object", + "description": "Additional flags for product listings", + "properties": { + "no-aggregations": { + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "type": "string", + "nullable": true + }, + "only-aggregations": { + "description": "If this flag is set, no products are fetched. Sorting and associations are also ignored. This parameter is a flag, the value has no effect.", + "type": "string", + "nullable": true + } + } + }, + "LineItem": { + "type": "object", + "properties": { + "id": { + "type": "string", + "description": "Unique identity of line item." + }, + "referencedId": { + "type": "string", + "description": "Unique identity of type of entity." + }, + "label": { + "type": "string", + "description": "It is a typical product name given to the line item." + }, + "quantity": { + "type": "integer", + "format": "int32", + "description": "Number of items of product." + }, + "type": { + "type": "string", + "description": "Type refers to the entity type of an item whether it is product or promotion for instance." + }, + "good": { + "type": "boolean", + "description": "When set to true, it indicates the line item is physical else it is virtual." + }, + "description": { + "type": "string", + "description": "Description of line items in an order." + }, + "removable": { + "type": "boolean", + "description": "Allows the line item to be removable from the cart when set to true." + }, + "stackable": { + "type": "boolean", + "description": "Allows to change the quantity of the line item when set to true." + }, + "modified": { + "type": "boolean", + "description": "When boolean value is `true`, line items are said to be modified." } + } + }, + "NavigationRouteResponse": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" }, - "security": [ - { - "ApiKey": [] + "properties": { + "id": { + "description": "Unique identity of navigation route response." } - ] - } - }, - "/app-system/{name}/generate-token": { - "post": { - "tags": [ - "App system" - ], - "summary": "Generate JWT token for app system backend", - "description": "Generate JWT token for authenticated communication with the app server", - "operationId": "generateJWTAppSystemAppServer", - "parameters": [ - { - "in": "path", - "name": "name", - "required": true, - "description": "Name of the app", - "schema": { - "type": "string" - } + } + }, + "OrderProductWarehouse": { + "properties": { + "id": { + "description": "Unique identity of order's product warehouse." } - ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "type": "object" + } + }, + "OrderReturn": { + "properties": { + "id": { + "description": "Unique identity of order return." + }, + "versionId": { + "description": "Unique identity of order return's version." + }, + "orderId": { + "description": "Unique identity of order." + }, + "orderVersionId": { + "description": "Unique identity of order return version." + }, + "price": { + "properties": { + "netPrice": { + "description": "Net price of the product." + }, + "totalPrice": { + "description": "Gross price of the product." + }, + "calculatedTaxes": { + "description": "Contains calculated tax on order delivery price." + }, + "taxRules": { + "description": "Pricing based on multiple taxes." + }, + "positionPrice": { + "description": "Price of each line item in the cart multiplied by its quantity excluding charges like shipping cost, rules, taxes etc." + }, + "rawTotal": { + "description": "The total value before rounding off." + }, + "taxStatus": { + "description": "TaxStatus takes `Free`, `Net` or `Gross` as values." } } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "expires": { - "type": "string", - "format": "date-time" - }, - "shopId": { - "type": "string" - } + }, + "shippingCosts": { + "properties": { + "unitPrice": { + "description": "Shipping cost of product per item (where, quantity=1)." + }, + "totalPrice": { + "description": "Shipping cost of product based on quantity." + }, + "quantity": { + "description": "Number of items of each product." + }, + "calculatedTaxes": { + "description": "Contains calculated taxes based on shipping costs/methods." + }, + "taxRules": { + "description": "Pricing based on multiple taxes." + }, + "referencePrice": { + "description": "Original cost price of the product." + }, + "listPrice": { + "properties": { + "price": { + "description": "Price of each line item." + }, + "discount": { + "description": "Absolute discount on each line item." + }, + "percentage": { + "description": "Discount in percentage." + } + } + }, + "regulationPrice": { + "properties": { + "price": { + "description": "Contains cheapest price from last 30 days as per EU law." } } } } + }, + "stateId": { + "description": "Unique identity of state." + }, + "returnNumber": { + "description": "Reference number for returning order." + }, + "requestedAt": { + "description": "Date and time when the order return was requested." + }, + "amountTotal": { + "description": "Gross price of the order." + }, + "amountNet": { + "description": "Net price of the order." } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/product-listing/{categoryId}": { - "post": { - "tags": [ - "Product" - ], - "summary": "Fetch a product listing by category", - "description": "Fetches a product listing for a specific category. It also provides filters, sortings and property aggregations, analogous to the /search endpoint.", - "operationId": "readProductListing", - "parameters": [ - { - "name": "categoryId", - "in": "path", - "description": "Identifier of a category.", - "required": true, - "schema": { - "type": "string" - } + } + }, + "OrderReturnLineItem": { + "properties": { + "id": { + "description": "Unique identity of order return line item." + }, + "versionId": { + "description": "Unique identity of order return line item's version." + }, + "orderReturnId": { + "description": "Unique identity of order return." + }, + "orderReturnVersionId": { + "description": "Unique identity of order return version." + }, + "orderLineItemId": { + "description": "Unique identity of order line item." + }, + "orderLineItemVersionId": { + "description": "Unique identity of order line items's version." + }, + "reasonId": { + "description": "Unique identity of reason for return." + }, + "quantity": { + "description": "Number of line items returned." + }, + "refundAmount": { + "description": "Amount to be refunded." + }, + "restockQuantity": { + "description": "Update of stock quantity after the return of certain line items are initiated." + }, + "customFields": { + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." + }, + "stateId": { + "description": "Unique identity of state." } - ], - "requestBody": { + } + }, + "OrderReturnLineItemReason": { + "properties": { + "id": { + "description": "Unique identity for reason of return." + }, + "reasonKey": { + "description": "Unique key associated with reason for the order return. " + }, "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/ProductListingCriteria" - }, - { - "$ref": "#/components/schemas/ProductListingFlags" - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "Returns a product listing containing all products and additional fields to display a listing.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProductListingResult" - } - } - } + "description": "Description of the reason of return." + }, + "translated": { + "description": "Contains the translations of all translated fields." } - }, - "security": [ - { - "ApiKey": [] + } + }, + "OrderWarehouseGroup": { + "properties": { + "id": { + "description": "Unique identity of order warehouse group." } - ] - } - }, - "/product-export/{accessKey}/{fileName}": { - "get": { - "tags": [ - "Product" - ], - "summary": "Export product export", - "operationId": "readProductExport", - "parameters": [ - { - "name": "accessKey", - "in": "path", - "description": "Access Key", - "required": true, - "schema": { - "type": "string" - } + } + }, + "ProductReviewSummary": { + "properties": { + "id": { + "description": "Unique identity of products's review summary." }, - { - "name": "fileName", - "in": "path", - "description": "File Name", - "required": true, - "schema": { - "type": "string" - } + "productId": { + "description": "Unique identity of products." + }, + "salesChannelId": { + "description": "Unique identity of sales channel." + }, + "summary": { + "description": "Unique identity of products's review summary." + }, + "visible": { + "description": "When boolean value is `true`, the review is displayed to the customer." + }, + "translated": { + "description": "Contains the translations of all translated fields." } - ], - "responses": { - "200": { - "description": "" + } + }, + "ProductWarehouse": { + "properties": { + "id": { + "description": "Unique identity of warehouse of product." } - }, - "security": [ - { - "ApiKey": [] + } + }, + "Subscription": { + "properties": { + "id": { + "description": "Unique identity of subscription." + }, + "convertedOrder": { + "description": "An array loaded with persistent information related to cart data." + }, + "subscriptionNumber": { + "description": "Unique number associated with subscription." + }, + "nextSchedule": { + "description": "Date and time of next scheduled subscription for example: `yyyy-mm-dd hh:mm:ss` - `2023-08-15 15:25:32`." + }, + "salesChannelId": { + "description": "Unique identity of sales channel." + }, + "subscriptionPlanId": { + "description": "Unique identity of subscription plan." + }, + "subscriptionPlanName": { + "description": "Unique name for subscription plan." + }, + "subscriptionIntervalId": { + "description": "Unique identity for subscription interval." + }, + "subscriptionIntervalName": { + "description": "Unique name for subscription interval." + }, + "dateInterval": { + "description": "Relative interval data. For example, `every 3 days`, `every 2 months`, etc." + }, + "cronInterval": { + "description": "Absolute interval data. For example, `only on January`, `only on Mondays`, etc." + }, + "billingAddressId": { + "description": "Unique identity of billing address." + }, + "shippingAddressId": { + "description": "Unique identity of shipping address." + }, + "shippingMethodId": { + "description": "Unique identity of shipping method." + }, + "paymentMethodId": { + "description": "Unique identity of payment method." + }, + "currencyId": { + "description": "Unique identity of currency." + }, + "languageId": { + "description": "Unique identity of language." + }, + "customFields": { + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." } - ] - } - }, - "/document/download/{documentId}/{deepLinkCode}": { - "post": { - "tags": [ - "Document", - "Endpoints supporting Criteria " - ], - "summary": "Download generated document", - "description": "Returns blob file of a generated document to download.", - "operationId": "download", - "parameters": [ - { - "name": "documentId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + } + }, + "SubscriptionAddress": { + "properties": { + "id": { + "description": "Unique identity of subscription address." + }, + "countryId": { + "description": "Unique identity of country." + }, + "subscriptionId": { + "description": "Unique identity of subscription." + }, + "countryStateId": { + "description": "Unique identity of state of the country." + }, + "salutationId": { + "description": "Unique identity of salutation." + }, + "firstName": { + "description": "First name of the subscribed customer." + }, + "lastName": { + "description": "Last name of the subscribed customer." + }, + "street": { + "description": "Street address" + }, + "zipcode": { + "description": "Zip code of the country." + }, + "company": { + "description": "Name of the company." + }, + "department": { + "description": "Name of the department." + }, + "title": { + "description": "Title name given to customer's order address." + }, + "vatId": { + "description": "Unique identity of VAT." }, - { - "name": "deepLinkCode", - "required": true, - "in": "path", - "schema": { - "type": "string" - } + "phoneNumber": { + "description": "Phone number of the customer." + }, + "additionalAddressLine1": { + "description": "Additional address input if necessary." + }, + "additionalAddressLine2": { + "description": "Additional address input if necessary." + }, + "customFields": { + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." + }, + "email": { + "description": "Last name of the subscribed customer. " } - ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - } - ] - } - } + } + }, + "SubscriptionCustomer": { + "properties": { + "id": { + "description": "Unique identity of subscription customer." + }, + "customerId": { + "description": "Unique identity of the customer." + }, + "salutationId": { + "description": "Unique identity of salutation." + }, + "firstName": { + "description": "Email address of the subscribed customer." + }, + "lastName": { + "description": "Last name of the subscribed customer. " + }, + "company": { + "description": "Name of the customer's company." + }, + "title": { + "description": "Title name given to customer's order address." + }, + "customerNumber": { + "description": "Unique number for subscribed customer." + }, + "vatId": { + "description": "Unique identity of VAT." + }, + "customFields": { + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." } - }, - "responses": { - "200": { - "description": "Returns the document information and blob to download.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Document" - } - } - } + } + }, + "SubscriptionInterval": { + "properties": { + "id": { + "description": "Unique identity of subscription interval." + }, + "name": { + "description": "Name of the subscription interval." + }, + "active": { + "description": "When `true`, the defined subscription interval is available for selection in storefront." + }, + "dateInterval": { + "description": "Relative interval data. For example, `every 3 days`, `every 2 months`, etc." + }, + "cronInterval": { + "description": "Absolute interval data. For example, `only on January`, `only on Mondays`, etc." + }, + "availabilityRuleId": { + "description": "Unique identity of rule." + }, + "translated": { + "description": "Contains the translations of all translated fields." } - }, - "security": [ - { - "ApiKey": [] + } + }, + "SubscriptionPlan": { + "properties": { + "id": { + "description": "Unique identity of subscription plan." + }, + "name": { + "description": "Name of the subscription plan." + }, + "description": { + "description": "A short description about the subscription plan." + }, + "active": { + "description": "When `true`, the subscription plan is available for selection in storefront." + }, + "activeStorefrontLabel": { + "description": "When boolean value id `true`, the label overrides the plan name." + }, + "availabilityRuleId": { + "description": "Unique identity of rule." + }, + "label": { + "description": "Label that can overwrite the active plan name. " + }, + "translated": { + "description": "Contains the translations of all translated fields." } - ] - } - }, - "/currency": { - "post": { - "tags": [ - "System & Context", - "Endpoints supporting Criteria " - ], - "summary": "Fetch currencies", - "description": "Perform a filtered search for currencies.", - "operationId": "readCurrency", - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - } - ] - } - } + } + }, + "SubscriptionPlanIntervalMapping": { + "properties": { + "id": { + "description": "Unique identity of subscription plan interval mapping." + }, + "subscriptionIntervalId": { + "description": "Unique identity of subscription interval." + }, + "subscriptionPlanId": { + "description": "Unique identity of subscription plan." } - }, - "responses": { - "200": { - "description": "Entity search result containing currencies.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Currency" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } + } + }, + "SubscriptionPlanProductMapping": { + "properties": { + "id": { + "description": "Unique identity of subscription plan for product mapping." + }, + "productId": { + "description": "Unique identity of product." + }, + "productVersionId": { + "description": "Unique identity of product's version." + }, + "subscriptionPlanId": { + "description": "Unique identity of subscription plan." } - }, - "security": [ - { - "ApiKey": [] + } + }, + "SubscriptionTagMapping": { + "properties": { + "id": { + "description": "Unique identity of subscription tag." + }, + "subscriptionId": { + "description": "Unique identity of subscription." + }, + "tagId": { + "description": "Unique identity of subscription tag." } - ] - } - }, - "/account/newsletter-recipient": { - "post": { - "tags": [ - "Profile", - "Newsletter", - "Endpoints supporting Criteria" - ], - "summary": "Fetch newsletter recipients", - "description": "Perform a filtered search for newsletter recipients.", - "operationId": "readNewsletterRecipient", - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - } - ] - } - } + } + }, + "SwagDelayAction": { + "properties": { + "id": { + "description": "Unique identity of swag delay action for flow builder" + }, + "orderId": { + "description": "Unique identity of order." + }, + "customerId": { + "description": "Unique identity of customer." } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/AccountNewsletterRecipientResult" - } - } - } - } + } + }, + "Warehouse": { + "properties": { + "id": { + "description": "Unique identity of warehouse." } - }, - "security": [ - { - "ApiKey": [] + } + }, + "WarehouseGroup": { + "properties": { + "id": { + "description": "Unique identity of warehouse group." } - ] - } - }, - "/account/change-profile": { - "post": { - "tags": [ - "Profile" - ], - "summary": "Change the customer's information", - "description": "Make changes to a customer's account, like changing their name, salutation or title.", - "operationId": "changeProfile", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "salutationId", - "firstName", - "lastName" - ], - "properties": { - "salutationId": { - "description": "Id of the salutation for the customer account. Fetch options using `salutation` endpoint.", - "type": "string" - }, - "title": { - "description": "(Academic) title of the customer", - "type": "string" - }, - "firstName": { - "description": "Customer first name. Value will be reused for shipping and billing address if not provided explicitly.", - "type": "string" - }, - "lastName": { - "description": "Customer last name. Value will be reused for shipping and billing address if not provided explicitly.", - "type": "string" - }, - "company": { - "description": "Company of the customer. Only required when `accountType` is `business`.", - "type": "string" - }, - "birthdayDay": { - "description": "Birthday day", - "type": "integer" - }, - "birthdayMonth": { - "description": "Birthday month", - "type": "integer" - }, - "birthdayYear": { - "description": "Birthday year", - "type": "integer" - } - }, - "type": "object" - } - } + } + }, + "CustomPrice": { + "properties": { + "id": { + "description": "Unique identity of the custom price." + }, + "productId": { + "description": "Unique identity of the product." + }, + "productVersionId": { + "description": "Unique identity of the product's version." + }, + "customerId": { + "description": "Unique identity of the customer." + }, + "customerGroupId": { + "description": "Unique identity of the customer's group." + }, + "price": { + "description": "Detailed information of price." } - }, - "responses": { - "200": { - "description": "Returns a success response indicating a successful update", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" - } - } - } + } + }, + "CustomerSpecificFeatures": { + "properties": { + "id": { + "description": "Unique identity of the customer specific features." + }, + "customerId": { + "description": "Unique identity of the customer." } - }, - "security": [ - { - "ApiKey": [] + } + }, + "MediaAiTag": { + "properties": { + "id": { + "description": "Unique identity of the AI media tag." + }, + "tag": { + "description": "Tag that indicates if the media is made by AI or not." + }, + "translated": { + "description": "Contains the translations of all translated fields." } - ] + } } }, - "/account/change-email": { - "post": { - "tags": [ - "Profile" - ], - "summary": "Change the customer's email address", - "description": "Changes a customer's email address to a new email address, using their current password as a validation.", - "operationId": "changeEmail", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "email", - "emailConfirmation", - "password" - ], - "properties": { - "email": { - "description": "New email address. Has to be unique amongst all customers", - "type": "string" - }, - "emailConfirmation": { - "description": "Confirmation of the new email address.", - "type": "string" - }, - "password": { - "description": "Customer's current password", - "type": "string" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Returns a success response indicating a successful update", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" + "responses": { + "404": { + "description": "Not Found", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "404", + "title": "Not Found", + "description": "Resource with given parameter was not found." } - } + ] } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/account/change-language": { - "post": { - "tags": [ - "Profile" - ], - "summary": "Change the customer's language.", - "description": "Changes the language of the logged in customer", - "operationId": "changeLanguage", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "languageId" - ], - "properties": { - "language": { - "description": "New languageId", - "type": "string" - } - }, - "type": "object" - } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "404", + "title": "Not Found", + "description": "Resource with given parameter was not found." + } + ] } } - }, - "responses": { - "200": { - "description": "Returns a success response indicating a successful update", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" + } + }, + "403": { + "description": "Forbidden", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "403", + "title": "Forbidden", + "description": "This operation is restricted to logged in users." } - } + ] } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/account/change-password": { - "post": { - "tags": [ - "Profile" - ], - "summary": "Change the customer's password", - "description": "Changes a customer's password using their current password as a validation.", - "operationId": "changePassword", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "password", - "newPassword", - "newPasswordConfirm" - ], - "properties": { - "password": { - "description": "Current password of the customer", - "type": "string" - }, - "newPassword": { - "description": "New Password for the customer", - "type": "string" - }, - "newPasswordConfirm": { - "description": "Confirmation of the new password", - "type": "string" - } - }, - "type": "object" - } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "403", + "title": "Forbidden", + "description": "This operation is restricted to logged in users." + } + ] } } - }, - "responses": { - "200": { - "description": "Returns a success response indicating a successful update.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" + } + }, + "401": { + "description": "Unauthorized", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "401", + "title": "Unauthorized", + "description": "Authorization information is missing or invalid." } - } + ] } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/account/change-payment-method/{paymentMethodId}": { - "post": { - "tags": [ - "Profile" - ], - "summary": "Change the customer's default payment method", - "description": "Changes a customer's default (preselected) payment method.", - "operationId": "changePaymentMethod", - "parameters": [ - { - "name": "paymentMethodId", - "in": "path", - "description": "Identifier of the desired default payment method", - "required": true, + }, + "application/json": { "schema": { - "type": "string" + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "401", + "title": "Unauthorized", + "description": "Authorization information is missing or invalid." + } + ] } } - ], - "responses": { - "200": { - "description": "Returns a success response indicating a successful update.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" + } + }, + "400": { + "description": "Bad Request", + "content": { + "application/vnd.api+json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "400", + "title": "Bad Request", + "description": "Bad parameters for this endpoint. See documentation for the correct ones." } - } + ] } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/account/customer-recovery-is-expired": { - "post": { - "tags": [ - "Profile" - ], - "summary": "Checks if the customer recovery entry for a given hash is expired.", - "description": "This can be used to validate a provided hash has a valid and not expired customer recovery hash.", - "operationId": "getCustomerRecoveryIsExpired", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "hash" - ], - "properties": { - "hash": { - "description": "Parameter from the link in the confirmation mail sent in Step 1", - "type": "string" - } - }, - "type": "object" - } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "400", + "title": "Bad Request", + "description": "Bad parameters for this endpoint. See documentation for the correct ones." + } + ] } } - }, - "responses": { - "200": { - "description": "Returns a CustomerRecoveryIsExpiredResponse that indicates if the hash is expired or not.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ArrayStruct" - } - } + } + }, + "204": { + "description": "No Content" + }, + "ContextTokenResponse": { + "description": "Returns the context token. Use that as your `sw-context-token` header for subsequent requests. Redirect if getRedirectUrl is set.", + "headers": { + "sw-context-token": { + "description": "Contains sw-context-token value", + "schema": { + "type": "string" } } }, - "security": [ - { - "ApiKey": [] + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "contextToken": { + "deprecated": true, + "description": "Deprecated since v6.6.0.0. Please retrieve the context token from the response header instead.", + "type": "string" + }, + "redirectUrl": { + "description": "Define the URL which browser will be redirected to", + "type": "string" + } + } + } } - ] + } } }, - "/account/customer": { + "parameters": { + "contentType": { + "name": "Content-Type", + "in": "header", + "description": "Content type of the request", + "required": true, + "schema": { + "type": "string", + "default": "application/json" + } + }, + "accept": { + "name": "Accept", + "in": "header", + "description": "Accepted response content types", + "required": true, + "schema": { + "type": "string", + "default": "application/json" + } + } + }, + "securitySchemes": { + "ApiKey": { + "type": "apiKey", + "description": "Identifies the sales channel you want to access the API through", + "name": "sw-access-key", + "in": "header" + }, + "ContextToken": { + "type": "apiKey", + "description": "Identifies an anonymous or identified user session", + "name": "sw-context-token", + "in": "header" + } + } + }, + "security": [ + { + "ApiKey": [] + } + ], + "paths": { + "/country-state/{countryId}": { "post": { "tags": [ - "Profile", + "System & Context", "Endpoints supporting Criteria " ], - "summary": "Get information about current customer", - "description": "Returns information about the current customer.", - "operationId": "readCustomer", + "summary": "Fetch the states of a country", + "description": "Perform a filtered search the states for a country", + "operationId": "readCountryState", + "parameters": [ + { + "name": "countryId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], "requestBody": { "required": false, "content": { @@ -16731,11 +13852,26 @@ }, "responses": { "200": { - "description": "Returns the logged in customer, also for guest sessions. Check for the value of `guest` field to see whether the customer is a guest.", + "description": "Entity search result containing countries.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Customer" + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryState" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } } } @@ -16746,82 +13882,33 @@ "ApiKey": [] } ] - }, - "delete": { - "tags": [ - "Profile" - ], - "summary": "Delete the customer's profile", - "description": "Deletes a customer profile along with their addresses, wishlists and associated data. Created orders and their payment/shipping information (addresses) and reviews are not deleted.", - "operationId": "deleteCustomer", - "responses": { - "204": { - "description": "Returns a no content response indicating a successful removal of the customer profile" - } - }, - "security": [ - { - "ApiKey": [] - } - ] } }, - "/account/address/{addressId}": { - "delete": { - "tags": [ - "Address" - ], - "summary": "Delete an address of a customer", - "description": "Delete an address of customer.\n\n Only addresses which are not set as default addresses for shipping or billing can be deleted. You can check the current default addresses of your customer using the profile information endpoint and change them using the default address endpoint.\n\n **A customer must have at least one address (which can be used for shipping and billing).**\n\n An automatic fallback is not applied.", - "operationId": "deleteCustomerAddress", - "parameters": [ - { - "name": "addressId", - "in": "path", - "description": "ID of the address to be deleted.", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "204": { - "description": "No Content response, when the address has been deleted" - }, - "400": { - "description": "Response containing a list of errors, most likely due to the address being in use" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - }, - "patch": { + "/app-system/{name}/generate-token": { + "post": { "tags": [ - "Address" + "App system" ], - "summary": "Modify an address of a customer", - "description": "Modifies an existing address of a customer.", - "operationId": "updateCustomerAddress", + "summary": "Generate JWT token for app system backend", + "description": "Generate JWT token for authenticated communication with the app server", + "operationId": "generateJWTAppSystemAppServer", "parameters": [ { - "name": "addressId", "in": "path", - "description": "Address ID", + "name": "name", "required": true, + "description": "Name of the app", "schema": { "type": "string" } } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CustomerAddress" + "type": "object" } } } @@ -16832,7 +13919,19 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CustomerAddress" + "type": "object", + "properties": { + "token": { + "type": "string" + }, + "expires": { + "type": "string", + "format": "date-time" + }, + "shopId": { + "type": "string" + } + } } } } @@ -16845,93 +13944,48 @@ ] } }, - "/account/list-address": { + "/product-listing/{categoryId}": { "post": { "tags": [ - "Address", - "Endpoints supporting Criteria " + "Product" ], - "summary": "Fetch addresses of a customer", - "description": "Lists all addresses of the current customer and allows filtering them based on a criteria.", - "operationId": "listAddress", - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomerAddress" - } - } - } - } - } - }, - "security": [ + "summary": "Fetch a product listing by category", + "description": "Fetches a product listing for a specific category. It also provides filters, sortings and property aggregations, analogous to the /search endpoint.", + "operationId": "readProductListing", + "parameters": [ { - "ApiKey": [] + "name": "categoryId", + "in": "path", + "description": "Identifier of a category.", + "required": true, + "schema": { + "type": "string" + } } - ] - } - }, - "/account/login": { - "post": { - "tags": [ - "Login & Registration" ], - "summary": "Log in a customer", - "description": "Logs in customers given their credentials.", - "operationId": "loginCustomer", "requestBody": { - "required": true, "content": { "application/json": { "schema": { - "required": [ - "username", - "password" - ], - "properties": { - "username": { - "description": "Email", - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/ProductListingCriteria" }, - "password": { - "description": "Password", - "type": "string" + { + "$ref": "#/components/schemas/ProductListingFlags" } - }, - "type": "object" + ] } } } }, - "responses": { - "200": { - "$ref": "#/components/responses/ContextTokenResponse" - }, - "401": { - "description": "If credentials are incorrect an error is returned", + "responses": { + "200": { + "description": "Returns a product listing containing all products and additional fields to display a listing.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/failure" + "$ref": "#/components/schemas/ProductListingResult" } } } @@ -16944,20 +13998,36 @@ ] } }, - "/account/logout": { - "post": { + "/product-export/{accessKey}/{fileName}": { + "get": { "tags": [ - "Login & Registration" + "Product" + ], + "summary": "Export product export", + "operationId": "readProductExport", + "parameters": [ + { + "name": "accessKey", + "in": "path", + "description": "Access Key", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "fileName", + "in": "path", + "description": "File Name", + "required": true, + "schema": { + "type": "string" + } + } ], - "summary": "Log out a customer", - "description": "Logs out a customer.", - "operationId": "logoutCustomer", "responses": { "200": { - "$ref": "#/components/responses/ContextTokenResponse" - }, - "403": { - "$ref": "#/components/responses/403" + "description": "" } }, "security": [ @@ -16967,47 +14037,58 @@ ] } }, - "/account/register-confirm": { + "/document/download/{documentId}/{deepLinkCode}": { "post": { "tags": [ - "Login & Registration" + "Document", + "Endpoints supporting Criteria " + ], + "summary": "Download generated document", + "description": "Returns blob file of a generated document to download.", + "operationId": "download", + "parameters": [ + { + "name": "documentId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "deepLinkCode", + "required": true, + "in": "path", + "schema": { + "type": "string" + } + } ], - "summary": "Confirm a customer registration", - "description": "Confirms a customer registration when double opt-in is activated.\n\nLearn more about double opt-in registration in our guide \"Register a customer\".", - "operationId": "registerConfirm", "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { - "required": [ - "hash", - "em" - ], - "properties": { - "hash": { - "description": "Hash from the email received", - "type": "string" - }, - "em": { - "description": "Email hash from the email received", - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "description": "Returns the logged in customer. The customer is automatically logged in with the `sw-context-token` header provided, which can be reused for subsequent requests." - }, - "404": { - "description": "No hash provided" - }, - "412": { - "description": "The customer has already been confirmed" + "description": "Returns the document information and blob to download.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Document" + } + } + } } }, "security": [ @@ -17017,111 +14098,51 @@ ] } }, - "/account/register": { + "/currency": { "post": { "tags": [ - "Login & Registration" + "System & Context", + "Endpoints supporting Criteria " ], - "summary": "Register a customer", - "description": "Registers a customer. Used both for normal customers and guest customers.See the Guide \"Register a customer\" for more information on customer registration.", - "operationId": "register", + "summary": "Fetch currencies", + "description": "Perform a filtered search for currencies.", + "operationId": "readCurrency", "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { - "required": [ - "email", - "password", - "salutationId", - "firstName", - "lastName", - "acceptedDataProtection", - "storefrontUrl", - "billingAddress" - ], - "properties": { - "email": { - "description": "Email of the customer. Has to be unique, unless `guest` is `true`", - "type": "string" - }, - "password": { - "description": "Password for the customer. Required, unless `guest` is `true`", - "type": "string" - }, - "salutationId": { - "description": "Id of the salutation for the customer account. Fetch options using `salutation` endpoint.", - "type": "string" - }, - "firstName": { - "description": "Customer first name. Value will be reused for shipping and billing address if not provided explicitly.", - "type": "string" - }, - "lastName": { - "description": "Customer last name. Value will be reused for shipping and billing address if not provided explicitly.", - "type": "string" - }, - "acceptedDataProtection": { - "description": "Flag indicating accepted data protection", - "type": "boolean" - }, - "storefrontUrl": { - "description": "URL of the storefront for that registration. Used in confirmation emails. Has to be one of the configured domains of the sales channel.", - "type": "string" - }, - "billingAddress": { - "$ref": "#/components/schemas/CustomerAddress" - }, - "shippingAddress": { - "$ref": "#/components/schemas/CustomerAddress" - }, - "accountType": { - "description": "Account type of the customer which can be either `private` or `business`.", - "type": "string", - "default": "private" - }, - "guest": { - "description": "If set, will create a guest customer. Guest customers can re-use an email address and don't need a password.", - "type": "boolean", - "default": false - }, - "birthdayDay": { - "description": "Birthday day", - "type": "integer" - }, - "birthdayMonth": { - "description": "Birthday month", - "type": "integer" - }, - "birthdayYear": { - "description": "Birthday year", - "type": "integer" - }, - "title": { - "description": "(Academic) title of the customer", - "type": "string" - }, - "affiliateCode": { - "description": "Field can be used to store an affiliate tracking code", - "type": "string" - }, - "campaignCode": { - "description": "Field can be used to store a campaign tracking code", - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "description": "Success", + "description": "Entity search result containing currencies.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Customer" + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Currency" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } } } @@ -17134,50 +14155,40 @@ ] } }, - "/account/recovery-password-confirm": { + "/account/newsletter-recipient": { "post": { "tags": [ - "Profile" + "Profile", + "Newsletter", + "Endpoints supporting Criteria" ], - "summary": "Reset a password with recovery credentials", - "description": "This operation is Step 2 of the password reset flow. It is required to conduct Step 1 \"Send a password recovery mail\" in order to obtain the required credentials for this step.Resets a customer's password using credentials from a password recovery mail as a validation.", - "operationId": "recoveryPassword", + "summary": "Fetch newsletter recipients", + "description": "Perform a filtered search for newsletter recipients.", + "operationId": "readNewsletterRecipient", "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "hash", - "newPassword", - "newPasswordConfirm" - ], - "properties": { - "hash": { - "description": "Parameter from the link in the confirmation mail sent in Step 1", - "type": "string" - }, - "newPassword": { - "description": "New password for the customer", - "type": "string" - }, - "newPasswordConfirm": { - "description": "Confirmation of the new password", - "type": "string" + "required": false, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "description": "Returns a success response indicating a successful update.", + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SuccessResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/AccountNewsletterRecipientResult" + } } } } @@ -17190,31 +14201,56 @@ ] } }, - "/account/recovery-password": { + "/account/change-profile": { "post": { "tags": [ "Profile" ], - "summary": "Send a password recovery mail", - "description": "This operation is Step 1 of the password reset flow. Make sure to implement Step 2 \"Reset password with recovery credentials\" in order to allow for the complete flow in your application. Sends a recovery mail containing a link with credentials that allows a customer to reset their password.", - "operationId": "sendRecoveryMail", + "summary": "Change the customer's information", + "description": "Make changes to a customer's account, like changing their name, salutation or title.", + "operationId": "changeProfile", "requestBody": { "required": true, "content": { "application/json": { "schema": { "required": [ - "email", - "storefrontUrl" + "salutationId", + "firstName", + "lastName" ], "properties": { - "email": { - "description": "E-Mail address to identify the customer", + "salutationId": { + "description": "Id of the salutation for the customer account. Fetch options using `salutation` endpoint.", "type": "string" }, - "storefrontUrl": { - "description": "URL of the storefront to use for the generated reset link. It has to be a domain that is configured in the sales channel domain settings.", + "title": { + "description": "(Academic) title of the customer", + "type": "string" + }, + "firstName": { + "description": "Customer first name. Value will be reused for shipping and billing address if not provided explicitly.", + "type": "string" + }, + "lastName": { + "description": "Customer last name. Value will be reused for shipping and billing address if not provided explicitly.", + "type": "string" + }, + "company": { + "description": "Company of the customer. Only required when `accountType` is `business`.", "type": "string" + }, + "birthdayDay": { + "description": "Birthday day", + "type": "integer" + }, + "birthdayMonth": { + "description": "Birthday month", + "type": "integer" + }, + "birthdayYear": { + "description": "Birthday year", + "type": "integer" } }, "type": "object" @@ -17224,7 +14260,7 @@ }, "responses": { "200": { - "description": "If email corresponds to an existing customer, a mail will be sent out to that customer containing a link assembled using the following schema:\n\nReturns a success indicating a successful initialisation of the reset flow.", + "description": "Returns a success response indicating a successful update", "content": { "application/json": { "schema": { @@ -17241,127 +14277,46 @@ ] } }, - "/account/address/default-shipping/{addressId}": { - "patch": { - "tags": [ - "Address" - ], - "summary": "Change a customer's default shipping address", - "description": "Updates the default (preselected) shipping addresses of a customer.", - "operationId": "defaultShippingAddress", - "parameters": [ - { - "name": "addressId", - "in": "path", - "description": "Address ID", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/account/address/default-billing/{addressId}": { - "patch": { - "tags": [ - "Address" - ], - "summary": "Change a customer's default billing address", - "description": "Updates the default (preselected) billing addresses of a customer.", - "operationId": "defaultBillingAddress", - "parameters": [ - { - "name": "addressId", - "in": "path", - "description": "Address ID", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/account/address": { + "/account/change-email": { "post": { "tags": [ - "Address" + "Profile" ], - "summary": "Create a new address for a customer", - "description": "Creates a new address for a customer.", - "operationId": "createCustomerAddress", + "summary": "Change the customer's email address", + "description": "Changes a customer's email address to a new email address, using their current password as a validation.", + "operationId": "changeEmail", "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CustomerAddress" - } - } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomerAddress" - } + "required": [ + "email", + "emailConfirmation", + "password" + ], + "properties": { + "email": { + "description": "New email address. Has to be unique amongst all customers", + "type": "string" + }, + "emailConfirmation": { + "description": "Confirmation of the new email address.", + "type": "string" + }, + "password": { + "description": "Customer's current password", + "type": "string" + } + }, + "type": "object" } } } }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/customer/wishlist/add/{productId}": { - "post": { - "tags": [ - "Wishlist" - ], - "summary": "Add a product to a wishlist", - "description": "Adds a product to a customers wishlist.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * The wishlist feature has to be activated.", - "operationId": "addProductOnWishlist", - "parameters": [ - { - "name": "productId", - "in": "path", - "description": "Identifier of the product to be added.", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], "responses": { "200": { - "description": "Returns a success response.", + "description": "Returns a success response indicating a successful update", "content": { "application/json": { "schema": { @@ -17378,36 +14333,40 @@ ] } }, - "/customer/wishlist": { + "/account/change-language": { "post": { "tags": [ - "Wishlist", - "Endpoints supporting Criteria " + "Profile" ], - "summary": "Fetch a wishlist", - "description": "Fetch a customer's wishlist. Products on the wishlist can be filtered using a criteria object.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * The wishlist feature has to be activated.", - "operationId": "readCustomerWishlist", + "summary": "Change the customer's language.", + "description": "Changes the language of the logged in customer", + "operationId": "changeLanguage", "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "required": [ + "languageId" + ], + "properties": { + "language": { + "description": "New languageId", + "type": "string" } - ] + }, + "type": "object" } } } }, "responses": { "200": { - "description": "", + "description": "Returns a success response indicating a successful update", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/WishlistLoadRouteResponse" + "$ref": "#/components/schemas/SuccessResponse" } } } @@ -17420,28 +14379,36 @@ ] } }, - "/customer/wishlist/merge": { + "/account/change-password": { "post": { "tags": [ - "Wishlist" + "Profile" ], - "summary": "Create a wishlist for a customer", - "description": "Create a new wishlist for a logged in customer or extend the existing wishlist given a set of products.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * A customer can only have a single wishlist.\n * The wishlist feature has to be activated.", - "operationId": "mergeProductOnWishlist", + "summary": "Change the customer's password", + "description": "Changes a customer's password using their current password as a validation.", + "operationId": "changePassword", "requestBody": { "required": true, "content": { "application/json": { "schema": { + "required": [ + "password", + "newPassword", + "newPasswordConfirm" + ], "properties": { - "productIds": { - "description": "List product id", - "type": "array", - "items": { - "description": "product id", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "password": { + "description": "Current password of the customer", + "type": "string" + }, + "newPassword": { + "description": "New Password for the customer", + "type": "string" + }, + "newPasswordConfirm": { + "description": "Confirmation of the new password", + "type": "string" } }, "type": "object" @@ -17451,7 +14418,7 @@ }, "responses": { "200": { - "description": "Returns a success response.", + "description": "Returns a success response indicating a successful update.", "content": { "application/json": { "schema": { @@ -17468,29 +14435,28 @@ ] } }, - "/customer/wishlist/delete/{productId}": { - "delete": { + "/account/change-payment-method/{paymentMethodId}": { + "post": { "tags": [ - "Wishlist" + "Profile" ], - "summary": "Remove a product from a wishlist", - "description": "Removes a product from a customer's wishlist.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * The wishlist feature has to be activated.", - "operationId": "deleteProductOnWishlist", + "summary": "Change the customer's default payment method", + "description": "Changes a customer's default (preselected) payment method.", + "operationId": "changePaymentMethod", "parameters": [ { - "name": "productId", + "name": "paymentMethodId", "in": "path", - "description": "The identifier of the product to be removed from the wishlist.", + "description": "Identifier of the desired default payment method", "required": true, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" } } ], "responses": { "200": { - "description": "Returns a success response indicating a successful removal.", + "description": "Returns a success response indicating a successful update.", "content": { "application/json": { "schema": { @@ -17498,16 +14464,6 @@ } } } - }, - "404": { - "description": "The removal of the product failed. Probably because the product could not be found on the wishlist.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - } - } - } } }, "security": [ @@ -17517,51 +14473,40 @@ ] } }, - "/salutation": { + "/account/customer-recovery-is-expired": { "post": { "tags": [ - "System & Context", - "Endpoints supporting Criteria " + "Profile" ], - "summary": "Fetch salutations", - "description": "Fetches salutations with a criteria obj.", - "operationId": "readSalutation", + "summary": "Checks if the customer recovery entry for a given hash is expired.", + "description": "This can be used to validate a provided hash has a valid and not expired customer recovery hash.", + "operationId": "getCustomerRecoveryIsExpired", "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "required": [ + "hash" + ], + "properties": { + "hash": { + "description": "Parameter from the link in the confirmation mail sent in Step 1", + "type": "string" } - ] + }, + "type": "object" } } } }, "responses": { "200": { - "description": "Entity search result containing salutations.", + "description": "Returns a CustomerRecoveryIsExpiredResponse that indicates if the hash is expired or not.", "content": { "application/json": { "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Salutation" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "$ref": "#/components/schemas/ArrayStruct" } } } @@ -17574,25 +14519,15 @@ ] } }, - "/shipping-method": { + "/account/customer": { "post": { "tags": [ - "Payment & Shipping", + "Profile", "Endpoints supporting Criteria " ], - "summary": "Fetch shipping methods", - "description": "Perform a filtered search for shipping methods.", - "operationId": "readShippingMethod", - "parameters": [ - { - "name": "onlyAvailable", - "in": "query", - "description": "List only available shipping methods. This filters shipping methods methods which can not be used in the actual context because of their availability rule.", - "schema": { - "type": "boolean" - } - } - ], + "summary": "Get information about current customer", + "description": "Returns information about the current customer.", + "operationId": "readCustomer", "requestBody": { "required": false, "content": { @@ -17609,27 +14544,11 @@ }, "responses": { "200": { - "description": "", + "description": "Returns the logged in customer, also for guest sessions. Check for the value of `guest` field to see whether the customer is a guest.", "content": { "application/json": { "schema": { - "properties": { - "total": { - "description": "Total amount", - "type": "integer" - }, - "aggregations": { - "description": "aggregation result", - "type": "object" - }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ShippingMethod" - } - } - }, - "type": "object" + "$ref": "#/components/schemas/Customer" } } } @@ -17640,84 +14559,96 @@ "ApiKey": [] } ] + }, + "delete": { + "tags": [ + "Profile" + ], + "summary": "Delete the customer's profile", + "description": "Deletes a customer profile along with their addresses, wishlists and associated data. Created orders and their payment/shipping information (addresses) and reviews are not deleted.", + "operationId": "deleteCustomer", + "responses": { + "204": { + "description": "Returns a no content response indicating a successful removal of the customer profile" + } + }, + "security": [ + { + "ApiKey": [] + } + ] } }, - "/contact-form": { - "post": { + "/account/address/{addressId}": { + "delete": { "tags": [ - "Content" + "Address" + ], + "summary": "Delete an address of a customer", + "description": "Delete an address of customer.\n\n Only addresses which are not set as default addresses for shipping or billing can be deleted. You can check the current default addresses of your customer using the profile information endpoint and change them using the default address endpoint.\n\n **A customer must have at least one address (which can be used for shipping and billing).**\n\n An automatic fallback is not applied.", + "operationId": "deleteCustomerAddress", + "parameters": [ + { + "name": "addressId", + "in": "path", + "description": "ID of the address to be deleted.", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content response, when the address has been deleted" + }, + "400": { + "description": "Response containing a list of errors, most likely due to the address being in use" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "patch": { + "tags": [ + "Address" + ], + "summary": "Modify an address of a customer", + "description": "Modifies an existing address of a customer.", + "operationId": "updateCustomerAddress", + "parameters": [ + { + "name": "addressId", + "in": "path", + "description": "Address ID", + "required": true, + "schema": { + "type": "string" + } + } ], - "summary": "Submit a contact form message", - "description": "Used for submitting contact forms. Be aware that there can be more required fields, depending on the system settings.", - "operationId": "sendContactMail", "requestBody": { - "required": true, "content": { - "application/json": { - "schema": { - "required": [ - "salutationId", - "email", - "subject", - "comment" - ], - "properties": { - "salutationId": { - "description": "Identifier of the salutation. Use `/api/salutation` endpoint to fetch possible values.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "firstName": { - "description": "Firstname. This field may be required depending on the system settings.", - "type": "string" - }, - "lastName": { - "description": "Lastname. This field may be required depending on the system settings.", - "type": "string" - }, - "email": { - "description": "Email address", - "type": "string" - }, - "phone": { - "description": "Phone. This field may be required depending on the system settings.", - "type": "string" - }, - "subject": { - "description": "The subject of the contact form.", - "type": "string" - }, - "comment": { - "description": "The message of the contact form", - "type": "string" - }, - "navigationId": { - "description": "Identifier of the navigation page. Can be used to override the configuration.\nTake a look at the settings of a category containing a concact form in the administration.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "slotId": { - "description": "Identifier of the cms element", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "cmsPageType": { - "description": "Type of the content management page", - "type": "string" - }, - "entityName": { - "description": "Entity name for slot config", - "type": "string" - } - }, - "type": "object" + "application/json": { + "schema": { + "$ref": "#/components/schemas/CustomerAddress" } } } }, "responses": { "200": { - "description": "Message sent successful." + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CustomerAddress" + } + } + } } }, "security": [ @@ -17727,15 +14658,15 @@ ] } }, - "/country": { + "/account/list-address": { "post": { "tags": [ - "System & Context", + "Address", "Endpoints supporting Criteria " ], - "summary": "Fetch countries", - "description": "Perform a filtered search for countries", - "operationId": "readCountry", + "summary": "Fetch addresses of a customer", + "description": "Lists all addresses of the current customer and allows filtering them based on a criteria.", + "operationId": "listAddress", "requestBody": { "required": false, "content": { @@ -17752,26 +14683,14 @@ }, "responses": { "200": { - "description": "Entity search result containing countries.", + "description": "", "content": { "application/json": { "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Country" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomerAddress" + } } } } @@ -17784,21 +14703,48 @@ ] } }, - "/context": { - "get": { + "/account/login": { + "post": { "tags": [ - "System & Context" + "Login & Registration" ], - "summary": "Fetch the current context", - "description": "Fetches the current context. This includes for example the `customerGroup`, `currency`, `taxRules` and many more.", - "operationId": "readContext", + "summary": "Log in a customer", + "description": "Logs in customers given their credentials.", + "operationId": "loginCustomer", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "username", + "password" + ], + "properties": { + "username": { + "description": "Email", + "type": "string" + }, + "password": { + "description": "Password", + "type": "string" + } + }, + "type": "object" + } + } + } + }, "responses": { "200": { - "description": "Returns the current context.", + "$ref": "#/components/responses/ContextTokenResponse" + }, + "401": { + "description": "If credentials are incorrect an error is returned", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SalesChannelContext" + "$ref": "#/components/schemas/failure" } } } @@ -17809,59 +14755,172 @@ "ApiKey": [] } ] - }, - "patch": { + } + }, + "/account/logout": { + "post": { "tags": [ - "System & Context" + "Login & Registration" ], - "summary": "Modify the current context", - "description": "Used for switching the context. A typical example would be changing the language or changing the currency.", - "operationId": "updateContext", + "summary": "Log out a customer", + "description": "Logs out a customer.", + "operationId": "logoutCustomer", + "responses": { + "200": { + "$ref": "#/components/responses/ContextTokenResponse" + }, + "403": { + "$ref": "#/components/responses/403" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/account/register-confirm": { + "post": { + "tags": [ + "Login & Registration" + ], + "summary": "Confirm a customer registration", + "description": "Confirms a customer registration when double opt-in is activated.\n\nLearn more about double opt-in registration in our guide \"Register a customer\".", + "operationId": "registerConfirm", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "hash", + "em" + ], + "properties": { + "hash": { + "description": "Hash from the email received", + "type": "string" + }, + "em": { + "description": "Email hash from the email received", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "Returns the logged in customer. The customer is automatically logged in with the `sw-context-token` header provided, which can be reused for subsequent requests." + }, + "404": { + "description": "No hash provided" + }, + "412": { + "description": "The customer has already been confirmed" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/account/register": { + "post": { + "tags": [ + "Login & Registration" + ], + "summary": "Register a customer", + "description": "Registers a customer. Used both for normal customers and guest customers.See the Guide \"Register a customer\" for more information on customer registration.", + "operationId": "register", "requestBody": { "required": true, "content": { "application/json": { "schema": { + "required": [ + "email", + "password", + "salutationId", + "firstName", + "lastName", + "acceptedDataProtection", + "storefrontUrl", + "billingAddress" + ], "properties": { - "currencyId": { - "description": "Currency", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "email": { + "description": "Email of the customer. Has to be unique, unless `guest` is `true`", + "type": "string" }, - "languageId": { - "description": "Language", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "password": { + "description": "Password for the customer. Required, unless `guest` is `true`", + "type": "string" }, - "billingAddressId": { - "description": "Billing Address", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "salutationId": { + "description": "Id of the salutation for the customer account. Fetch options using `salutation` endpoint.", + "type": "string" }, - "shippingAddressId": { - "description": "Shipping Address", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "firstName": { + "description": "Customer first name. Value will be reused for shipping and billing address if not provided explicitly.", + "type": "string" }, - "paymentMethodId": { - "description": "Payment Method", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "lastName": { + "description": "Customer last name. Value will be reused for shipping and billing address if not provided explicitly.", + "type": "string" }, - "shippingMethodId": { - "description": "Shipping Method", + "acceptedDataProtection": { + "description": "Flag indicating accepted data protection", + "type": "boolean" + }, + "storefrontUrl": { + "description": "URL of the storefront for that registration. Used in confirmation emails. Has to be one of the configured domains of the sales channel.", + "type": "string" + }, + "billingAddress": { + "$ref": "#/components/schemas/CustomerAddress" + }, + "shippingAddress": { + "$ref": "#/components/schemas/CustomerAddress" + }, + "accountType": { + "description": "Account type of the customer which can be either `private` or `business`.", "type": "string", - "pattern": "^[0-9a-f]{32}$" + "default": "private" + }, + "guest": { + "description": "If set, will create a guest customer. Guest customers can re-use an email address and don't need a password.", + "type": "boolean", + "default": false + }, + "birthdayDay": { + "description": "Birthday day", + "type": "integer" + }, + "birthdayMonth": { + "description": "Birthday month", + "type": "integer" + }, + "birthdayYear": { + "description": "Birthday year", + "type": "integer" }, - "countryId": { - "description": "Country", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "title": { + "description": "(Academic) title of the customer", + "type": "string" }, - "countryStateId": { - "description": "Country State", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "affiliateCode": { + "description": "Field can be used to store an affiliate tracking code", + "type": "string" + }, + "campaignCode": { + "description": "Field can be used to store a campaign tracking code", + "type": "string" } }, "type": "object" @@ -17871,7 +14930,14 @@ }, "responses": { "200": { - "$ref": "#/components/responses/ContextTokenResponse" + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Customer" + } + } + } } }, "security": [ @@ -17881,24 +14947,36 @@ ] } }, - "/order/state/cancel": { + "/account/recovery-password-confirm": { "post": { "tags": [ - "Order" + "Profile" ], - "summary": "Cancel an order", - "description": "Cancels an order. The order state will be set to 'cancelled'.", - "operationId": "cancelOrder", + "summary": "Reset a password with recovery credentials", + "description": "This operation is Step 2 of the password reset flow. It is required to conduct Step 1 \"Send a password recovery mail\" in order to obtain the required credentials for this step.Resets a customer's password using credentials from a password recovery mail as a validation.", + "operationId": "recoveryPassword", "requestBody": { "required": true, "content": { "application/json": { "schema": { + "required": [ + "hash", + "newPassword", + "newPasswordConfirm" + ], "properties": { - "orderId": { - "description": "The identifier of the order to be canceled.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "hash": { + "description": "Parameter from the link in the confirmation mail sent in Step 1", + "type": "string" + }, + "newPassword": { + "description": "New password for the customer", + "type": "string" + }, + "newPasswordConfirm": { + "description": "Confirmation of the new password", + "type": "string" } }, "type": "object" @@ -17908,11 +14986,11 @@ }, "responses": { "200": { - "description": "Returns the state of the state machine\n\n example: More information about the state machine can be found in the corresponding guide: [Using the state machine](https://developer.shopware.com/docs/guides/plugins/plugins/checkout/order/using-the-state-machine)", + "description": "Returns a success response indicating a successful update.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/StateMachineState" + "$ref": "#/components/schemas/SuccessResponse" } } } @@ -17925,45 +15003,45 @@ ] } }, - "/order": { + "/account/recovery-password": { "post": { "tags": [ - "Order", - "Endpoints supporting Criteria " + "Profile" ], - "summary": "Fetch a list of orders", - "description": "List orders of a customer.", - "operationId": "readOrder", + "summary": "Send a password recovery mail", + "description": "This operation is Step 1 of the password reset flow. Make sure to implement Step 2 \"Reset password with recovery credentials\" in order to allow for the complete flow in your application. Sends a recovery mail containing a link with credentials that allows a customer to reset their password.", + "operationId": "sendRecoveryMail", "requestBody": { "required": true, "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "required": [ + "email", + "storefrontUrl" + ], + "properties": { + "email": { + "description": "E-Mail address to identify the customer", + "type": "string" }, - { - "properties": { - "checkPromotion": { - "description": "Check if the payment method of the order is still changeable.", - "type": "boolean" - } - }, - "type": "object" + "storefrontUrl": { + "description": "URL of the storefront to use for the generated reset link. It has to be a domain that is configured in the sales channel domain settings.", + "type": "string" } - ] + }, + "type": "object" } } } }, "responses": { "200": { - "description": "An array of orders and an indicator if the payment of the order can be changed.", + "description": "If email corresponds to an existing customer, a mail will be sent out to that customer containing a link assembled using the following schema:\n\nReturns a success indicating a successful initialisation of the reset flow.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/OrderRouteResponse" + "$ref": "#/components/schemas/SuccessResponse" } } } @@ -17976,47 +15054,92 @@ ] } }, - "/order/payment": { + "/account/address/default-shipping/{addressId}": { + "patch": { + "tags": [ + "Address" + ], + "summary": "Change a customer's default shipping address", + "description": "Updates the default (preselected) shipping addresses of a customer.", + "operationId": "defaultShippingAddress", + "parameters": [ + { + "name": "addressId", + "in": "path", + "description": "Address ID", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/account/address/default-billing/{addressId}": { + "patch": { + "tags": [ + "Address" + ], + "summary": "Change a customer's default billing address", + "description": "Updates the default (preselected) billing addresses of a customer.", + "operationId": "defaultBillingAddress", + "parameters": [ + { + "name": "addressId", + "in": "path", + "description": "Address ID", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/account/address": { "post": { "tags": [ - "Order" + "Address" ], - "summary": "Update the payment method of an order", - "description": "Changes the payment method of a specific order. You can use the /order route to find out if the payment method of an order can be changed - take a look at the `paymentChangeable`- array in the response.", - "operationId": "orderSetPayment", + "summary": "Create a new address for a customer", + "description": "Creates a new address for a customer.", + "operationId": "createCustomerAddress", "requestBody": { - "required": true, "content": { "application/json": { "schema": { - "required": [ - "paymentMethodId", - "orderId" - ], - "properties": { - "paymentMethodId": { - "description": "The identifier of the paymentMethod to be set", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderId": { - "description": "The identifier of the order.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "type": "object" + "$ref": "#/components/schemas/CustomerAddress" } } } }, "responses": { "200": { - "description": "Successfully updated the payment method of the order.", + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SuccessResponse" + "$ref": "#/components/schemas/CustomerAddress" } } } @@ -18029,27 +15152,19 @@ ] } }, - "/order/download/{orderId}/{downloadId}": { - "get": { + "/customer/wishlist/add/{productId}": { + "post": { "tags": [ - "Order" + "Wishlist" ], - "summary": "Download a purchased file", - "description": "Download a file included in the given order and with the given id. Access must be granted.", - "operationId": "orderDownloadFile", + "summary": "Add a product to a wishlist", + "description": "Adds a product to a customers wishlist.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * The wishlist feature has to be activated.", + "operationId": "addProductOnWishlist", "parameters": [ { - "name": "orderId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "downloadId", + "name": "productId", "in": "path", + "description": "Identifier of the product to be added.", "required": true, "schema": { "type": "string", @@ -18059,12 +15174,11 @@ ], "responses": { "200": { - "description": "An arbitrary binary file.", + "description": "Returns a success response.", "content": { - "application/octet-stream": { + "application/json": { "schema": { - "type": "string", - "format": "binary" + "$ref": "#/components/schemas/SuccessResponse" } } } @@ -18077,24 +15191,36 @@ ] } }, - "/sitemap": { - "get": { + "/customer/wishlist": { + "post": { "tags": [ - "Sitemap & Routes" + "Wishlist", + "Endpoints supporting Criteria " ], - "summary": "Fetch sitemaps", - "description": "Fetches a list of compressed sitemap files, which are often used by search engines.", - "operationId": "readSitemap", + "summary": "Fetch a wishlist", + "description": "Fetch a customer's wishlist. Products on the wishlist can be filtered using a criteria object.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * The wishlist feature has to be activated.", + "operationId": "readCustomerWishlist", + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + } + ] + } + } + } + }, "responses": { "200": { - "description": "Returns a list of available sitemaps.", + "description": "", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Sitemap" - } + "$ref": "#/components/schemas/WishlistLoadRouteResponse" } } } @@ -18107,32 +15233,42 @@ ] } }, - "/product/{productId}/cross-selling": { + "/customer/wishlist/merge": { "post": { "tags": [ - "Product" + "Wishlist" ], - "summary": "Fetch cross-selling groups of a product", - "description": "This route is used to load the cross sellings for a product. A product has several cross selling definitions in which several products are linked. The route returns the cross sellings together with the linked products", - "operationId": "readProductCrossSellings", - "parameters": [ - { - "name": "productId", - "in": "path", - "description": "Product ID", - "required": true, - "schema": { - "type": "string" + "summary": "Create a wishlist for a customer", + "description": "Create a new wishlist for a logged in customer or extend the existing wishlist given a set of products.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * A customer can only have a single wishlist.\n * The wishlist feature has to be activated.", + "operationId": "mergeProductOnWishlist", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "productIds": { + "description": "List product id", + "type": "array", + "items": { + "description": "product id", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + }, + "type": "object" + } } } - ], + }, "responses": { "200": { - "description": "Found cross sellings", + "description": "Returns a success response.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CrossSellingElementCollection" + "$ref": "#/components/schemas/SuccessResponse" } } } @@ -18145,32 +15281,43 @@ ] } }, - "/product/{productId}": { - "post": { + "/customer/wishlist/delete/{productId}": { + "delete": { "tags": [ - "Product" + "Wishlist" ], - "summary": "Fetch a single product", - "description": "This route is used to load a single product with the corresponding details. In addition to loading the data, the best variant of the product is determined when a parent id is passed.", - "operationId": "readProductDetail", + "summary": "Remove a product from a wishlist", + "description": "Removes a product from a customer's wishlist.\n\n **Important constraints**\n\n * Anonymous (not logged-in) customers can not have wishlists.\n * The wishlist feature has to be activated.", + "operationId": "deleteProductOnWishlist", "parameters": [ { "name": "productId", "in": "path", - "description": "Product ID", + "description": "The identifier of the product to be removed from the wishlist.", "required": true, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } } ], "responses": { "200": { - "description": "Product information along with variant groups and options", + "description": "Returns a success response indicating a successful removal.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ProductDetailResponse" + "$ref": "#/components/schemas/SuccessResponse" + } + } + } + }, + "404": { + "description": "The removal of the product failed. Probably because the product could not be found on the wishlist.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" } } } @@ -18183,15 +15330,15 @@ ] } }, - "/product": { + "/salutation": { "post": { "tags": [ - "Product", + "System & Context", "Endpoints supporting Criteria " ], - "summary": "Fetch a list of products", - "description": "List products that match the given criteria. For performance reasons a limit should always be set.", - "operationId": "readProduct", + "summary": "Fetch salutations", + "description": "Fetches salutations with a criteria obj.", + "operationId": "readSalutation", "requestBody": { "required": false, "content": { @@ -18208,7 +15355,7 @@ }, "responses": { "200": { - "description": "Entity search result containing products", + "description": "Entity search result containing salutations.", "content": { "application/json": { "schema": { @@ -18218,7 +15365,7 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/Product" + "$ref": "#/components/schemas/Salutation" } } }, @@ -18240,23 +15387,22 @@ ] } }, - "/product/{productId}/reviews": { + "/shipping-method": { "post": { "tags": [ - "Product", + "Payment & Shipping", "Endpoints supporting Criteria " ], - "summary": "Fetch product reviews", - "description": "Perform a filtered search for product reviews.", - "operationId": "readProductReviews", + "summary": "Fetch shipping methods", + "description": "Perform a filtered search for shipping methods.", + "operationId": "readShippingMethod", "parameters": [ { - "name": "productId", - "in": "path", - "description": "Identifier of the product.", - "required": true, + "name": "onlyAvailable", + "in": "query", + "description": "List only available shipping methods. This filters shipping methods methods which can not be used in the actual context because of their availability rule.", "schema": { - "type": "string" + "type": "boolean" } } ], @@ -18276,26 +15422,27 @@ }, "responses": { "200": { - "description": "Entity search result containing product reviews", + "description": "", "content": { "application/json": { "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProductReview" - } - } - }, + "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", "type": "object" }, - { - "$ref": "#/components/schemas/EntitySearchResult" + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ShippingMethod" + } } - ] + }, + "type": "object" } } } @@ -18308,111 +15455,71 @@ ] } }, - "/product/{productId}/review": { + "/contact-form": { "post": { "tags": [ - "Product" - ], - "summary": "Save a product review", - "description": "Saves a review for a product. Reviews have to be activated in the settings.", - "operationId": "saveProductReview", - "parameters": [ - { - "name": "productId", - "in": "path", - "description": "Identifier of the product which is reviewed.", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } + "Content" ], + "summary": "Submit a contact form message", + "description": "Used for submitting contact forms. Be aware that there can be more required fields, depending on the system settings.", + "operationId": "sendContactMail", "requestBody": { + "required": true, "content": { "application/json": { "schema": { "required": [ - "title", - "content", - "points" + "salutationId", + "email", + "subject", + "comment" ], "properties": { - "name": { - "description": "The name of the review author. If not set, the first name of the customer is chosen.", + "salutationId": { + "description": "Identifier of the salutation. Use `/api/salutation` endpoint to fetch possible values.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "description": "Firstname. This field may be required depending on the system settings.", + "type": "string" + }, + "lastName": { + "description": "Lastname. This field may be required depending on the system settings.", "type": "string" }, "email": { - "description": "The email address of the review author. If not set, the email of the customer is chosen.", + "description": "Email address", "type": "string" }, - "title": { - "description": "The title of the review.", + "phone": { + "description": "Phone. This field may be required depending on the system settings.", "type": "string" }, - "content": { - "description": "The content of review.", + "subject": { + "description": "The subject of the contact form.", "type": "string" }, - "points": { - "description": "The review rating for the product.", - "type": "number", - "format": "double" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Success response indicating the review was saved successfuly." - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/product/{productId}/find-variant": { - "post": { - "tags": [ - "Product" - ], - "summary": "Search for a matching variant by product options.", - "description": "Performs a search for product variants and returns the best matching variant.", - "operationId": "searchProductVariantIds", - "parameters": [ - { - "name": "productId", - "in": "path", - "description": "Product ID", - "required": true, - "schema": { - "type": "string" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "required": [ - "options" - ], - "properties": { - "options": { - "description": "The options parameter for the variant to find.", - "type": "array", - "items": { - "type": "string" - } + "comment": { + "description": "The message of the contact form", + "type": "string" + }, + "navigationId": { + "description": "Identifier of the navigation page. Can be used to override the configuration.\nTake a look at the settings of a category containing a concact form in the administration.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "switchedGroup": { - "description": "The id of the option group that has been switched.", + "slotId": { + "description": "Identifier of the cms element", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cmsPageType": { + "description": "Type of the content management page", + "type": "string" + }, + "entityName": { + "description": "Entity name for slot config", "type": "string" } }, @@ -18423,14 +15530,7 @@ }, "responses": { "200": { - "description": "Returns an FoundCombination struct containing the ids matching the search.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/FindProductVariantRouteResponse" - } - } - } + "description": "Message sent successful." } }, "security": [ @@ -18440,41 +15540,54 @@ ] } }, - "/newsletter/confirm": { + "/country": { "post": { "tags": [ - "Newsletter" + "System & Context", + "Endpoints supporting Criteria " ], - "summary": "Confirm a newsletter registration", - "description": "You have to use the hash from the link sent out via email to confirm the user registration.", - "operationId": "confirmNewsletter", + "summary": "Fetch countries", + "description": "Perform a filtered search for countries", + "operationId": "readCountry", "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { - "required": [ - "hash", - "em" - ], - "properties": { - "hash": { - "description": "Hash parameter from link the in the confirmation mail", - "type": "string" - }, - "em": { - "description": "Email hash parameter from the link in the confirmation mail", - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "description": "The newsletter confirmation was successful." + "description": "Entity search result containing countries.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Country" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } } }, "security": [ @@ -18484,74 +15597,84 @@ ] } }, - "/newsletter/subscribe": { - "post": { + "/context": { + "get": { "tags": [ - "Newsletter" + "System & Context" ], - "summary": "Create or remove a newsletter subscription", - "description": "This route is used to create/remove/confirm a newsletter subscription.\n\nThe `option` property controls what should happen:\n* `direct`: The subscription is directly active and does not need a confirmation.\n* `subscribe`: An email will be send to the provided email addrees containing a link to the /newsletter/confirm route.\nThe subscription is only successful, if the /newsletter/confirm route is called with the generated hashes.\n* `unsubscribe`: The email address will be removed from the newsletter subscriptions.\n* `confirmSubscribe`: Confirmes the newsletter subscription for the provided email address.", - "operationId": "subscribeToNewsletter", + "summary": "Fetch the current context", + "description": "Fetches the current context. This includes for example the `customerGroup`, `currency`, `taxRules` and many more.", + "operationId": "readContext", + "responses": { + "200": { + "description": "Returns the current context.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SalesChannelContext" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "patch": { + "tags": [ + "System & Context" + ], + "summary": "Modify the current context", + "description": "Used for switching the context. A typical example would be changing the language or changing the currency.", + "operationId": "updateContext", "requestBody": { "required": true, "content": { "application/json": { "schema": { - "required": [ - "email", - "option", - "storefrontUrl" - ], "properties": { - "email": { - "description": "Email address that will receive the confirmation and the newsletter.", - "type": "string" - }, - "option": { - "description": "Defines what should be done.", - "type": "string" - }, - "storefrontUrl": { - "description": "Url of the storefront of the shop. This will be used for generating the link to the /newsletter/confirm inside the confirm email.", - "type": "string" - }, - "salutationId": { - "description": "Identifier of the salutation.", + "currencyId": { + "description": "Currency", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "firstName": { - "description": "First name", - "type": "string" - }, - "lastName": { - "description": "Last name", - "type": "string" + "languageId": { + "description": "Language", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "street": { - "description": "Street", - "type": "string" + "billingAddressId": { + "description": "Billing Address", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "city": { - "description": "City", - "type": "string" + "shippingAddressId": { + "description": "Shipping Address", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "zipCode": { - "description": "Zip code", - "type": "string" + "paymentMethodId": { + "description": "Payment Method", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "tags": { - "description": "Zip code", - "type": "string" + "shippingMethodId": { + "description": "Shipping Method", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "languageId": { - "description": "Identifier of the language.", + "countryId": { + "description": "Country", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customFields": { - "description": "Custom field data that should be added to the subscription.", - "type": "string" + "countryStateId": { + "description": "Country State", + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, "type": "object" @@ -18561,7 +15684,7 @@ }, "responses": { "200": { - "description": "Success" + "$ref": "#/components/responses/ContextTokenResponse" } }, "security": [ @@ -18571,26 +15694,24 @@ ] } }, - "/newsletter/unsubscribe": { + "/order/state/cancel": { "post": { "tags": [ - "Newsletter" + "Order" ], - "summary": "Remove a newsletter subscription", - "description": "Removes a newsletter recipient from the mailing lists.", - "operationId": "unsubscribeToNewsletter", + "summary": "Cancel an order", + "description": "Cancels an order. The order state will be set to 'cancelled'.", + "operationId": "cancelOrder", "requestBody": { "required": true, "content": { "application/json": { "schema": { - "required": [ - "email" - ], "properties": { - "email": { - "description": "Email address that should be removed from the mailing lists.", - "type": "string" + "orderId": { + "description": "The identifier of the order to be canceled.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, "type": "object" @@ -18600,7 +15721,14 @@ }, "responses": { "200": { - "description": "Unsubscribing was successful." + "description": "Returns the state of the state machine\n\n example: More information about the state machine can be found in the corresponding guide: [Using the state machine](https://developer.shopware.com/docs/guides/plugins/plugins/checkout/order/using-the-state-machine)", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/StateMachineState" + } + } + } } }, "security": [ @@ -18610,46 +15738,15 @@ ] } }, - "/navigation/{activeId}/{rootId}": { - "post": { - "tags": [ - "Category", - "Endpoints supporting Criteria " - ], - "summary": "Fetch a navigation menu", - "description": "This endpoint returns categories that can be used as a page navigation. You can either return them as a tree or as a flat list. You can also control the depth of the tree.\n\n Instead of passing uuids, you can also use one of the following aliases for the activeId and rootId parameters to get the respective navigations of your sales channel.\n\n * main-navigation\n * service-navigation\n * footer-navigation", - "operationId": "readNavigation", - "parameters": [ - { - "name": "sw-include-seo-urls", - "in": "header", - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "activeId", - "in": "path", - "description": "Identifier of the active category in the navigation tree (if not used, just set to the same as rootId).", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "rootId", - "in": "path", - "description": "Identifier of the root category for your desired navigation tree. You can use it to fetch sub-trees of your navigation tree.", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } + "/order": { + "post": { + "tags": [ + "Order", + "Endpoints supporting Criteria " ], + "summary": "Fetch a list of orders", + "description": "List orders of a customer.", + "operationId": "readOrder", "requestBody": { "required": true, "content": { @@ -18661,17 +15758,9 @@ }, { "properties": { - "depth": { - "description": "Determines the depth of fetched navigation levels.", - "type": "integer", - "format": "int32" - }, - "buildTree": { - "description": "Return the categories as a tree or as a flat list.", - "type": "array", - "items": { - "type": "object" - } + "checkPromotion": { + "description": "Check if the payment method of the order is still changeable.", + "type": "boolean" } }, "type": "object" @@ -18683,11 +15772,11 @@ }, "responses": { "200": { - "description": "All available navigations", + "description": "An array of orders and an indicator if the payment of the order can be changed.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NavigationRouteResponse" + "$ref": "#/components/schemas/OrderRouteResponse" } } } @@ -18700,29 +15789,50 @@ ] } }, - "/script/{hook}": { + "/order/payment": { "post": { "tags": [ - "API", - "Script", - "App" + "Order" ], - "summary": "Access point for different api logics which are provided by apps over script hooks", - "operationId": "postScriptStoreApiRoute", - "parameters": [ - { - "name": "hook", - "in": "path", - "description": "Dynamic hook which used to build the hook name", - "required": true, - "schema": { - "type": "string" + "summary": "Update the payment method of an order", + "description": "Changes the payment method of a specific order. You can use the /order route to find out if the payment method of an order can be changed - take a look at the `paymentChangeable`- array in the response.", + "operationId": "orderSetPayment", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "paymentMethodId", + "orderId" + ], + "properties": { + "paymentMethodId": { + "description": "The identifier of the paymentMethod to be set", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderId": { + "description": "The identifier of the order.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "type": "object" + } } } - ], + }, "responses": { "200": { - "description": "Returns different structures of results based on the called script." + "description": "Successfully updated the payment method of the order.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SuccessResponse" + } + } + } } }, "security": [ @@ -18732,21 +15842,42 @@ ] } }, - "/checkout/cart": { + "/order/download/{orderId}/{downloadId}": { "get": { "tags": [ - "Cart" + "Order" + ], + "summary": "Download a purchased file", + "description": "Download a file included in the given order and with the given id. Access must be granted.", + "operationId": "orderDownloadFile", + "parameters": [ + { + "name": "orderId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "downloadId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } ], - "summary": "Fetch or create a cart", - "description": "Used to fetch the current cart or for creating a new one.", - "operationId": "readCart", "responses": { "200": { - "description": "Cart", + "description": "An arbitrary binary file.", "content": { - "application/json": { + "application/octet-stream": { "schema": { - "$ref": "#/components/schemas/Cart" + "type": "string", + "format": "binary" } } } @@ -18757,21 +15888,26 @@ "ApiKey": [] } ] - }, - "delete": { + } + }, + "/sitemap": { + "get": { "tags": [ - "Cart" + "Sitemap & Routes" ], - "summary": "Delete a cart", - "description": "This route deletes the cart of the customer.", - "operationId": "deleteCart", + "summary": "Fetch sitemaps", + "description": "Fetches a list of compressed sitemap files, which are often used by search engines.", + "operationId": "readSitemap", "responses": { - "204": { - "description": "Successfully deleted the cart", + "200": { + "description": "Returns a list of available sitemaps.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SuccessResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/Sitemap" + } } } } @@ -18784,30 +15920,32 @@ ] } }, - "/checkout/cart/line-item": { + "/product/{productId}/cross-selling": { "post": { "tags": [ - "Cart" + "Product" ], - "summary": "Add items to the cart", - "description": "This route adds items to the cart. An item can be a product or promotion for example. They are referenced by the `referencedId`-parameter.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#adding-new-items-to-the-cart)", - "operationId": "addLineItem", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CartItems" - } + "summary": "Fetch cross-selling groups of a product", + "description": "This route is used to load the cross sellings for a product. A product has several cross selling definitions in which several products are linked. The route returns the cross sellings together with the linked products", + "operationId": "readProductCrossSellings", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product ID", + "required": true, + "schema": { + "type": "string" } } - }, + ], "responses": { "200": { - "description": "The updated cart.", + "description": "Found cross sellings", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Cart" + "$ref": "#/components/schemas/CrossSellingElementCollection" } } } @@ -18818,37 +15956,34 @@ "ApiKey": [] } ] - }, - "delete": { + } + }, + "/product/{productId}": { + "post": { "tags": [ - "Cart" + "Product" ], - "summary": "Remove items from the cart", - "description": "DEPRECATED: use removeLineItem instead. This route removes items from the cart and recalculates it.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#deleting-items-in-the-cart)", - "operationId": "removeLineItemDeprecated", - "deprecated": true, + "summary": "Fetch a single product", + "description": "This route is used to load a single product with the corresponding details. In addition to loading the data, the best variant of the product is determined when a parent id is passed.", + "operationId": "readProductDetail", "parameters": [ { - "name": "ids", - "in": "query", - "description": "A list of product identifiers.", + "name": "productId", + "in": "path", + "description": "Product ID", "required": true, "schema": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "type": "string" } } ], "responses": { "200": { - "description": "The updated cart.", + "description": "Product information along with variant groups and options", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Cart" + "$ref": "#/components/schemas/ProductDetailResponse" } } } @@ -18859,30 +15994,53 @@ "ApiKey": [] } ] - }, - "patch": { + } + }, + "/product": { + "post": { "tags": [ - "Cart" + "Product", + "Endpoints supporting Criteria " ], - "summary": "Update items in the cart", - "description": "This route updates items in the cart. A typical example is updating the quantity of an item.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#updating-items-in-the-cart)", - "operationId": "updateLineItem", + "summary": "Fetch a list of products", + "description": "List products that match the given criteria. For performance reasons a limit should always be set.", + "operationId": "readProduct", "requestBody": { + "required": false, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CartItems" + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + } + ] } } } }, "responses": { "200": { - "description": "The updated cart.", + "description": "Entity search result containing products", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Cart" + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } } } @@ -18895,45 +16053,62 @@ ] } }, - "/checkout/cart/line-item/delete": { + "/product/{productId}/reviews": { "post": { "tags": [ - "Cart" + "Product", + "Endpoints supporting Criteria " + ], + "summary": "Fetch product reviews", + "description": "Perform a filtered search for product reviews.", + "operationId": "readProductReviews", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Identifier of the product.", + "required": true, + "schema": { + "type": "string" + } + } ], - "summary": "Remove items from the cart", - "description": "This route removes items from the cart and recalculates it.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#deleting-items-in-the-cart)", - "operationId": "removeLineItem", "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { - "required": [ - "ids" - ], - "properties": { - "ids": { - "description": "A list of product identifiers.", - "type": "array", - "minItems": 1, - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "description": "The updated cart.", + "description": "Entity search result containing product reviews", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Cart" + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductReview" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } } } @@ -18946,31 +16121,56 @@ ] } }, - "/checkout/order": { + "/product/{productId}/review": { "post": { "tags": [ - "Order" + "Product" + ], + "summary": "Save a product review", + "description": "Saves a review for a product. Reviews have to be activated in the settings.", + "operationId": "saveProductReview", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Identifier of the product which is reviewed.", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } ], - "summary": "Create an order from a cart", - "description": "Creates a new order from the current cart and deletes the cart.\n\nIf you are using the [prepared payment flow](https://developer.shopware.com/docs/concepts/commerce/checkout-concept/payments#2.1-prepare-payment-optional), this endpoint also receives additional transaction details. The exact name of the parameters depends on the implementation of the corresponding *payment handler*.", - "operationId": "createOrder", "requestBody": { - "description": "Contains additional metadata which is stored together with the order. It can also contain payment transaction details.", "content": { "application/json": { "schema": { + "required": [ + "title", + "content", + "points" + ], "properties": { - "customerComment": { - "description": "Adds a comment from the customer to the order.", + "name": { + "description": "The name of the review author. If not set, the first name of the customer is chosen.", "type": "string" }, - "affiliateCode": { - "description": "The affiliate code can be used to track which referrer the customer came through. An example could be `Price-comparison-company-XY`.", + "email": { + "description": "The email address of the review author. If not set, the email of the customer is chosen.", "type": "string" }, - "campaignCode": { - "description": "The campaign code is used to track which action the customer came from. An example could be `Summer-Deals`", + "title": { + "description": "The title of the review.", + "type": "string" + }, + "content": { + "description": "The content of review.", "type": "string" + }, + "points": { + "description": "The review rating for the product.", + "type": "number", + "format": "double" } }, "type": "object" @@ -18980,14 +16180,7 @@ }, "responses": { "200": { - "description": "Order", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Order" - } - } - } + "description": "Success response indicating the review was saved successfuly." } }, "security": [ @@ -18997,34 +16190,42 @@ ] } }, - "/handle-payment": { + "/product/{productId}/find-variant": { "post": { "tags": [ - "Payment & Shipping" + "Product" + ], + "summary": "Search for a matching variant by product options.", + "description": "Performs a search for product variants and returns the best matching variant.", + "operationId": "searchProductVariantIds", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product ID", + "required": true, + "schema": { + "type": "string" + } + } ], - "summary": "Initiate a payment for an order", - "description": "This generic endpoint is should be called to initiate a payment flow after an order has been created. The details of the payment flow can differ depending on the payment integration and might require calling additional operations or the setup of webhooks.\n\nThe endpoint internally calls the payment handler of the payment method currently set for the order.", - "operationId": "handlePaymentMethod", "requestBody": { - "required": true, "content": { "application/json": { "schema": { "required": [ - "orderId" + "options" ], "properties": { - "orderId": { - "description": "Identifier of an order", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "finishUrl": { - "description": "URL to which the client should be redirected after successful payment", - "type": "string" + "options": { + "description": "The options parameter for the variant to find.", + "type": "array", + "items": { + "type": "string" + } }, - "errorUrl": { - "description": "URL to which the client should be redirected after erroneous payment", + "switchedGroup": { + "description": "The id of the option group that has been switched.", "type": "string" } }, @@ -19035,7 +16236,14 @@ }, "responses": { "200": { - "description": "Redirect to external payment provider" + "description": "Returns an FoundCombination struct containing the ids matching the search.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FindProductVariantRouteResponse" + } + } + } } }, "security": [ @@ -19045,50 +16253,41 @@ ] } }, - "/search-suggest": { + "/newsletter/confirm": { "post": { "tags": [ - "Product" + "Newsletter" ], - "summary": "Search for products (suggest)", - "description": "Can be used to implement search previews or suggestion listings, that don’t require any interaction.", - "operationId": "searchSuggest", + "summary": "Confirm a newsletter registration", + "description": "You have to use the hash from the link sent out via email to confirm the user registration.", + "operationId": "confirmNewsletter", "requestBody": { "required": true, "content": { "application/json": { "schema": { - "allOf": [ - { - "required": [ - "search" - ], - "properties": { - "search": { - "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", - "type": "string" - } - }, - "type": "object" + "required": [ + "hash", + "em" + ], + "properties": { + "hash": { + "description": "Hash parameter from link the in the confirmation mail", + "type": "string" }, - { - "$ref": "#/components/schemas/ProductListingFlags" + "em": { + "description": "Email hash parameter from the link in the confirmation mail", + "type": "string" } - ] + }, + "type": "object" } } } }, "responses": { "200": { - "description": "Returns a product listing containing all products and additional fields.\n\nNote: Aggregations, currentFilters and availableSortings are empty in this response. If you need them to display a listing, use the /search route instead.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProductListingResult" - } - } - } + "description": "The newsletter confirmation was successful." } }, "security": [ @@ -19098,54 +16297,84 @@ ] } }, - "/language": { + "/newsletter/subscribe": { "post": { "tags": [ - "System & Context", - "Endpoints supporting Criteria " + "Newsletter" ], - "summary": "Fetch languages", - "description": "Perform a filtered search for languages.", - "operationId": "readLanguages", + "summary": "Create or remove a newsletter subscription", + "description": "This route is used to create/remove/confirm a newsletter subscription.\n\nThe `option` property controls what should happen:\n* `direct`: The subscription is directly active and does not need a confirmation.\n* `subscribe`: An email will be send to the provided email addrees containing a link to the /newsletter/confirm route.\nThe subscription is only successful, if the /newsletter/confirm route is called with the generated hashes.\n* `unsubscribe`: The email address will be removed from the newsletter subscriptions.\n* `confirmSubscribe`: Confirmes the newsletter subscription for the provided email address.", + "operationId": "subscribeToNewsletter", "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "required": [ + "email", + "option", + "storefrontUrl" + ], + "properties": { + "email": { + "description": "Email address that will receive the confirmation and the newsletter.", + "type": "string" + }, + "option": { + "description": "Defines what should be done.", + "type": "string" + }, + "storefrontUrl": { + "description": "Url of the storefront of the shop. This will be used for generating the link to the /newsletter/confirm inside the confirm email.", + "type": "string" + }, + "salutationId": { + "description": "Identifier of the salutation.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "description": "First name", + "type": "string" + }, + "lastName": { + "description": "Last name", + "type": "string" + }, + "street": { + "description": "Street", + "type": "string" + }, + "city": { + "description": "City", + "type": "string" + }, + "zipCode": { + "description": "Zip code", + "type": "string" + }, + "tags": { + "description": "Zip code", + "type": "string" + }, + "languageId": { + "description": "Identifier of the language.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customFields": { + "description": "Custom field data that should be added to the subscription.", + "type": "string" } - ] + }, + "type": "object" } } } }, "responses": { "200": { - "description": "Entity search result containing languages.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Language" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } + "description": "Success" } }, "security": [ @@ -19155,54 +16384,36 @@ ] } }, - "/category": { + "/newsletter/unsubscribe": { "post": { "tags": [ - "Category", - "Endpoints supporting Criteria " + "Newsletter" ], - "summary": "Fetch a list of categories", - "description": "Perform a filtered search for categories.", - "operationId": "readCategoryList", + "summary": "Remove a newsletter subscription", + "description": "Removes a newsletter recipient from the mailing lists.", + "operationId": "unsubscribeToNewsletter", "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "required": [ + "email" + ], + "properties": { + "email": { + "description": "Email address that should be removed from the mailing lists.", + "type": "string" } - ] + }, + "type": "object" } } } }, "responses": { "200": { - "description": "Entity search result containing categories.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } + "description": "Unsubscribing was successful." } }, "security": [ @@ -19212,20 +16423,29 @@ ] } }, - "/category/{navigationId}": { + "/navigation/{activeId}/{rootId}": { "post": { "tags": [ "Category", "Endpoints supporting Criteria " ], - "summary": "Fetch a single category", - "description": "This endpoint returns information about the category, as well as a fully resolved (hydrated with mapping values) CMS page, if one is assigned to the category. You can pass slots which should be resolved exclusively.", - "operationId": "readCategory", + "summary": "Fetch a navigation menu", + "description": "This endpoint returns categories that can be used as a page navigation. You can either return them as a tree or as a flat list. You can also control the depth of the tree.\n\n Instead of passing uuids, you can also use one of the following aliases for the activeId and rootId parameters to get the respective navigations of your sales channel.\n\n * main-navigation\n * service-navigation\n * footer-navigation", + "operationId": "readNavigation", "parameters": [ { - "name": "navigationId", + "name": "sw-include-seo-urls", + "in": "header", + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "activeId", "in": "path", - "description": "Identifier of the category to be fetched", + "description": "Identifier of the active category in the navigation tree (if not used, just set to the same as rootId).", "required": true, "schema": { "type": "string", @@ -19233,15 +16453,18 @@ } }, { - "name": "slots", - "in": "query", - "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a '|' character", + "name": "rootId", + "in": "path", + "description": "Identifier of the root category for your desired navigation tree. You can use it to fetch sub-trees of your navigation tree.", + "required": true, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { @@ -19250,7 +16473,21 @@ "$ref": "#/components/schemas/Criteria" }, { - "$ref": "#/components/schemas/ProductListingCriteria" + "properties": { + "depth": { + "description": "Determines the depth of fetched navigation levels.", + "type": "integer", + "format": "int32" + }, + "buildTree": { + "description": "Return the categories as a tree or as a flat list.", + "type": "array", + "items": { + "type": "object" + } + } + }, + "type": "object" } ] } @@ -19259,11 +16496,11 @@ }, "responses": { "200": { - "description": "The loaded category with cms page", + "description": "All available navigations", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/NavigationRouteResponse" } } } @@ -19276,68 +16513,117 @@ ] } }, - "/landing-page/{landingPageId}": { + "/script/{hook}": { "post": { "tags": [ - "Content", - "Endpoints supporting Criteria " + "API", + "Script", + "App" ], - "summary": "Fetch a landing page with the resolved CMS page", - "description": "Loads a landing page by its identifier and resolves the CMS page.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.", - "operationId": "readLandingPage", + "summary": "Access point for different api logics which are provided by apps over script hooks", + "operationId": "postScriptStoreApiRoute", "parameters": [ { - "name": "landingPageId", + "name": "hook", "in": "path", - "description": "Identifier of the landing page.", + "description": "Dynamic hook which used to build the hook name", "required": true, "schema": { "type": "string" } } ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - }, - { - "allOf": [ - { - "properties": { - "slots": { - "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a `|` character.", - "type": "string" - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/ProductListingCriteria" - } - ] - } - ] + "responses": { + "200": { + "description": "Returns different structures of results based on the called script." + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/checkout/cart": { + "get": { + "tags": [ + "Cart" + ], + "summary": "Fetch or create a cart", + "description": "Used to fetch the current cart or for creating a new one.", + "operationId": "readCart", + "responses": { + "200": { + "description": "Cart", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Cart" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "delete": { + "tags": [ + "Cart" + ], + "summary": "Delete a cart", + "description": "This route deletes the cart of the customer.", + "operationId": "deleteCart", + "responses": { + "204": { + "description": "Successfully deleted the cart", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SuccessResponse" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/checkout/cart/line-item": { + "post": { + "tags": [ + "Cart" + ], + "summary": "Add items to the cart", + "description": "This route adds items to the cart. An item can be a product or promotion for example. They are referenced by the `referencedId`-parameter.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#adding-new-items-to-the-cart)", + "operationId": "addLineItem", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CartItems" } } } }, "responses": { "200": { - "description": "The loaded landing page with cms page", + "description": "The updated cart.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/LandingPage" + "$ref": "#/components/schemas/Cart" } } } - }, - "404": { - "$ref": "#/components/responses/404" } }, "security": [ @@ -19345,51 +16631,37 @@ "ApiKey": [] } ] - } - }, - "/search": { - "post": { + }, + "delete": { "tags": [ - "Product" + "Cart" ], - "summary": "Search for products", - "description": "Performs a search for products which can be used to display a product listing.", - "operationId": "searchPage", - "requestBody": { - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "required": [ - "search" - ], - "properties": { - "search": { - "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", - "type": "string" - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/ProductListingCriteria" - }, - { - "$ref": "#/components/schemas/ProductListingFlags" - } - ] + "summary": "Remove items from the cart", + "description": "DEPRECATED: use removeLineItem instead. This route removes items from the cart and recalculates it.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#deleting-items-in-the-cart)", + "operationId": "removeLineItemDeprecated", + "deprecated": true, + "parameters": [ + { + "name": "ids", + "in": "query", + "description": "A list of product identifiers.", + "required": true, + "schema": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" } } } - }, + ], "responses": { "200": { - "description": "Returns a product listing containing all products and additional fields to display a listing.", + "description": "The updated cart.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ProductListingResult" + "$ref": "#/components/schemas/Cart" } } } @@ -19400,62 +16672,30 @@ "ApiKey": [] } ] - } - }, - "/payment-method": { - "post": { + }, + "patch": { "tags": [ - "Payment Method", - "Endpoints supporting Criteria " + "Cart" ], - "summary": "Loads all available payment methods", - "operationId": "readPaymentMethod", + "summary": "Update items in the cart", + "description": "This route updates items in the cart. A typical example is updating the quantity of an item.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#updating-items-in-the-cart)", + "operationId": "updateLineItem", "requestBody": { - "required": true, "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - }, - { - "properties": { - "onlyAvailable": { - "description": "List only available", - "type": "boolean" - } - }, - "type": "object" - } - ] + "$ref": "#/components/schemas/CartItems" } } } }, "responses": { "200": { - "description": "", + "description": "The updated cart.", "content": { "application/json": { "schema": { - "properties": { - "total": { - "description": "Total amount", - "type": "integer" - }, - "aggregations": { - "description": "aggregation result", - "type": "object" - }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PaymentMethod" - } - } - }, - "type": "object" + "$ref": "#/components/schemas/Cart" } } } @@ -19468,61 +16708,48 @@ ] } }, - "/cms/{id}": { + "/checkout/cart/line-item/delete": { "post": { "tags": [ - "Content" - ], - "summary": "Fetch and resolve a CMS page", - "description": "Loads a content management page by its identifier and resolve the slot data. This could be media files, product listing and so on.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.", - "operationId": "readCms", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the CMS page to be resolved", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } + "Cart" ], + "summary": "Remove items from the cart", + "description": "This route removes items from the cart and recalculates it.\n\nExample: [Working with the cart - Guide](https://developer.shopware.com/docs/guides/integrations-api/store-api-guide/work-with-the-cart#deleting-items-in-the-cart)", + "operationId": "removeLineItem", "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "allOf": [ - { - "properties": { - "slots": { - "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a `|` character.", - "type": "string" - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/ProductListingCriteria" + "required": [ + "ids" + ], + "properties": { + "ids": { + "description": "A list of product identifiers.", + "type": "array", + "minItems": 1, + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } } - ] + }, + "type": "object" } } } }, "responses": { "200": { - "description": "The loaded cms page", + "description": "The updated cart.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CmsPage" + "$ref": "#/components/schemas/Cart" } } } - }, - "404": { - "$ref": "#/components/responses/404" } }, "security": [ @@ -19532,57 +16759,48 @@ ] } }, - "/seo-url": { + "/checkout/order": { "post": { "tags": [ - "Sitemap & Routes", - "Endpoints supporting Criteria " + "Order" ], - "summary": "Fetch SEO routes", - "description": "Perform a filtered search for seo urls.", - "operationId": "readSeoUrl", + "summary": "Create an order from a cart", + "description": "Creates a new order from the current cart and deletes the cart.\n\nIf you are using the [prepared payment flow](https://developer.shopware.com/docs/concepts/commerce/checkout-concept/payments#2.1-prepare-payment-optional), this endpoint also receives additional transaction details. The exact name of the parameters depends on the implementation of the corresponding *payment handler*.", + "operationId": "createOrder", "requestBody": { - "required": false, + "description": "Contains additional metadata which is stored together with the order. It can also contain payment transaction details.", "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "properties": { + "customerComment": { + "description": "Adds a comment from the customer to the order.", + "type": "string" + }, + "affiliateCode": { + "description": "The affiliate code can be used to track which referrer the customer came through. An example could be `Price-comparison-company-XY`.", + "type": "string" + }, + "campaignCode": { + "description": "The campaign code is used to track which action the customer came from. An example could be `Summer-Deals`", + "type": "string" } - ] + }, + "type": "object" } } } }, "responses": { "200": { - "description": "Entity search result containing seo urls.", + "description": "Order", "content": { "application/json": { "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeoUrl" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "$ref": "#/components/schemas/Order" } } } - }, - "404": { - "$ref": "#/components/responses/404" } }, "security": [ @@ -19592,35 +16810,45 @@ ] } }, - "/customer-group-registration/config/{customerGroupId}": { - "get": { + "/handle-payment": { + "post": { "tags": [ - "Login & Registration" + "Payment & Shipping" ], - "summary": "Fetch registration settings for customer group", - "operationId": "getCustomerGroupRegistrationInfo", - "parameters": [ - { - "name": "customerGroupId", - "in": "path", - "description": "Customer group id", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "summary": "Initiate a payment for an order", + "description": "This generic endpoint is should be called to initiate a payment flow after an order has been created. The details of the payment flow can differ depending on the payment integration and might require calling additional operations or the setup of webhooks.\n\nThe endpoint internally calls the payment handler of the payment method currently set for the order.", + "operationId": "handlePaymentMethod", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "orderId" + ], + "properties": { + "orderId": { + "description": "Identifier of an order", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "finishUrl": { + "description": "URL to which the client should be redirected after successful payment", + "type": "string" + }, + "errorUrl": { + "description": "URL to which the client should be redirected after erroneous payment", + "type": "string" + } + }, + "type": "object" + } } } - ], + }, "responses": { "200": { - "description": "Returns the customer group including registration settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomerGroup" - } - } - } + "description": "Redirect to external payment provider" } }, "security": [ @@ -19630,50 +16858,47 @@ ] } }, - "/store-api/employee/create": { + "/search-suggest": { "post": { "tags": [ - "B2B" + "Product" ], - "summary": "Create a single employee and returns the employee", - "description": "This route is used to create and return an employee", - "operationId": "createEmployee", - "parameters": [], + "summary": "Search for products (suggest)", + "description": "Can be used to implement search previews or suggestion listings, that don’t require any interaction.", + "operationId": "searchSuggest", "requestBody": { "required": true, "content": { "application/json": { "schema": { - "properties": { - "firstName": { - "description": "First name of the new employee", - "type": "string" - }, - "lastName": { - "description": "Last name of the new employee", - "type": "string" - }, - "email": { - "description": "Email of the new employee", - "type": "string" + "allOf": [ + { + "required": [ + "search" + ], + "properties": { + "search": { + "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", + "type": "string" + } + }, + "type": "object" }, - "roleId": { - "description": "Id of the role of the new employee", - "type": "string" + { + "$ref": "#/components/schemas/ProductListingFlags" } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "description": "Employee entity", + "description": "Returns a product listing containing all products and additional fields.\n\nNote: Aggregations, currentFilters and availableSortings are empty in this response. If you need them to display a listing, use the /search route instead.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/ProductListingResult" } } } @@ -19686,15 +16911,15 @@ ] } }, - "/store-api/employee": { + "/language": { "post": { "tags": [ - "B2B" + "System & Context", + "Endpoints supporting Criteria " ], - "summary": "Fetch a list of employees", - "description": "This route is used to load employees", - "operationId": "readEmployees", - "parameters": [], + "summary": "Fetch languages", + "description": "Perform a filtered search for languages.", + "operationId": "readLanguages", "requestBody": { "required": false, "content": { @@ -19711,18 +16936,17 @@ }, "responses": { "200": { - "description": "Entity search result containing employees", + "description": "Entity search result containing languages.", "content": { "application/json": { "schema": { - "type": "object", "allOf": [ { "properties": { "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/Language" } } }, @@ -19744,98 +16968,51 @@ ] } }, - "/store-api/employee/{id}": { + "/category": { "post": { "tags": [ - "B2B" - ], - "summary": "Fetch a one employee by id", - "description": "This route is used to fetch one employee by id", - "operationId": "readEmployee", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the employee to be fetched", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], - "responses": { - "200": { - "description": "Employee entity", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/B2bEmployee" - } - } - } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - }, - "patch": { - "tags": [ - "B2B" - ], - "summary": "Update a one employee by id", - "description": "This route is used to update one employee by id", - "operationId": "updateEmployee", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the employee to be updated", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } + "Category", + "Endpoints supporting Criteria " ], + "summary": "Fetch a list of categories", + "description": "Perform a filtered search for categories.", + "operationId": "readCategoryList", "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { - "properties": { - "firstName": { - "description": "New first name of the employee", - "type": "string" - }, - "lastName": { - "description": "New last name of the employee", - "type": "string" - }, - "email": { - "description": "New email of the employee", - "type": "string" - }, - "roleId": { - "description": "New id of the role of the employee", - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "description": "Employee entity", + "description": "Entity search result containing categories.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bEmployee" + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } } } @@ -19846,81 +17023,60 @@ "ApiKey": [] } ] - }, - "delete": { - "tags": [ - "B2B" - ], - "summary": "Delete an employee by id", - "description": "This route is used to delete one employee by id", - "operationId": "deleteEmployee", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the employee to be deleted", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], - "responses": { - "204": { - "description": "No content response" - } - }, - "security": [ - { - "ApiKey": [] - } - ] } }, - "/store-api/employee/reinvite/{id}": { + "/category/{navigationId}": { "post": { "tags": [ - "B2B" + "Category", + "Endpoints supporting Criteria " ], - "summary": "Reinvite employee by id", - "description": "This route is used to reinvite an employee via email by id", - "operationId": "reinviteEmployee", + "summary": "Fetch a single category", + "description": "This endpoint returns information about the category, as well as a fully resolved (hydrated with mapping values) CMS page, if one is assigned to the category. You can pass slots which should be resolved exclusively.", + "operationId": "readCategory", "parameters": [ { - "name": "id", + "name": "navigationId", "in": "path", - "description": "Identifier of the employee to be reinvited", + "description": "Identifier of the category to be fetched", "required": true, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "name": "slots", + "in": "query", + "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a '|' character", + "schema": { + "type": "string" + } } ], "requestBody": { - "required": true, "content": { "application/json": { "schema": { - "properties": { - "storefrontUrl": { - "description": "URL of the storefront domain", - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + }, + { + "$ref": "#/components/schemas/ProductListingCriteria" } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "description": "Employee entity", + "description": "The loaded category with cms page", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/Category" } } } @@ -19933,52 +17089,68 @@ ] } }, - "/store-api/role/create": { + "/landing-page/{landingPageId}": { "post": { "tags": [ - "B2B" + "Content", + "Endpoints supporting Criteria " + ], + "summary": "Fetch a landing page with the resolved CMS page", + "description": "Loads a landing page by its identifier and resolves the CMS page.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.", + "operationId": "readLandingPage", + "parameters": [ + { + "name": "landingPageId", + "in": "path", + "description": "Identifier of the landing page.", + "required": true, + "schema": { + "type": "string" + } + } ], - "summary": "Create a single role and returns the role", - "description": "This route is used to create and return an role", - "operationId": "createRole", - "parameters": [], "requestBody": { - "required": true, "content": { "application/json": { "schema": { - "properties": { - "name": { - "description": "Name of the new role", - "type": "string" - }, - "permissions": { - "description": "Permissions of the new role", - "type": "array", - "items": { - "type": "string" - } + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" }, - "isDefaultRole": { - "description": "Ability to set the new role as default", - "type": "boolean" + { + "allOf": [ + { + "properties": { + "slots": { + "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a `|` character.", + "type": "string" + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/ProductListingCriteria" + } + ] } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "description": "Role entity", + "description": "The loaded landing page with cms page", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bRole" + "$ref": "#/components/schemas/LandingPage" } } } + }, + "404": { + "$ref": "#/components/responses/404" } }, "security": [ @@ -19988,23 +17160,36 @@ ] } }, - "/store-api/role": { - "get": { + "/search": { + "post": { "tags": [ - "B2B" + "Product" ], - "summary": "Fetch a list of roles", - "description": "This route is used to load roles", - "operationId": "readRoles", - "parameters": [], + "summary": "Search for products", + "description": "Performs a search for products which can be used to display a product listing.", + "operationId": "searchPage", "requestBody": { - "required": false, "content": { "application/json": { "schema": { "allOf": [ { - "$ref": "#/components/schemas/Criteria" + "required": [ + "search" + ], + "properties": { + "search": { + "description": "Using the search parameter, the server performs a text search on all records based on their data model and weighting as defined in the entity definition using the SearchRanking flag.", + "type": "string" + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/ProductListingCriteria" + }, + { + "$ref": "#/components/schemas/ProductListingFlags" } ] } @@ -20013,27 +17198,11 @@ }, "responses": { "200": { - "description": "Entity search result containing roles", + "description": "Returns a product listing containing all products and additional fields to display a listing.", "content": { "application/json": { "schema": { - "type": "object", - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/B2bRole" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "$ref": "#/components/schemas/ProductListingResult" } } } @@ -20044,23 +17213,33 @@ "ApiKey": [] } ] - }, + } + }, + "/payment-method": { "post": { "tags": [ - "B2B" + "Payment Method", + "Endpoints supporting Criteria " ], - "summary": "Fetch a list of roles", - "description": "This route is used to load roles", - "operationId": "readRolesPOST", - "parameters": [], + "summary": "Loads all available payment methods", + "operationId": "readPaymentMethod", "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { "allOf": [ { "$ref": "#/components/schemas/Criteria" + }, + { + "properties": { + "onlyAvailable": { + "description": "List only available", + "type": "boolean" + } + }, + "type": "object" } ] } @@ -20069,27 +17248,27 @@ }, "responses": { "200": { - "description": "Entity search result containing roles", + "description": "", "content": { "application/json": { "schema": { - "type": "object", - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/B2bRole" - } - } - }, + "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", "type": "object" }, - { - "$ref": "#/components/schemas/EntitySearchResult" + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentMethod" + } } - ] + }, + "type": "object" } } } @@ -20102,56 +17281,19 @@ ] } }, - "/store-api/role/{id}": { - "get": { - "tags": [ - "B2B" - ], - "summary": "Fetch a one role by id", - "description": "This route is used to fetch one role by id", - "operationId": "readRole", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the role to be fetched", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], - "responses": { - "200": { - "description": "Role entity", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/B2bRole" - } - } - } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - }, - "patch": { + "/cms/{id}": { + "post": { "tags": [ - "B2B" + "Content" ], - "summary": "Update a one role by id", - "description": "This route is used to update one role by id", - "operationId": "updateRole", + "summary": "Fetch and resolve a CMS page", + "description": "Loads a content management page by its identifier and resolve the slot data. This could be media files, product listing and so on.\n\n**Important notice**\n\nThe criteria passed with this route also affects the listing, if there is one within the cms page.", + "operationId": "readCms", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the role to be updated", + "description": "Identifier of the CMS page to be resolved", "required": true, "schema": { "type": "string", @@ -20160,42 +17302,40 @@ } ], "requestBody": { - "required": true, "content": { "application/json": { "schema": { - "properties": { - "name": { - "description": "New name of the role", - "type": "string" - }, - "permissions": { - "description": "New permissions of the role", - "type": "array", - "items": { - "type": "string" - } + "allOf": [ + { + "properties": { + "slots": { + "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a `|` character.", + "type": "string" + } + }, + "type": "object" }, - "isDefaultRole": { - "description": "Ability to set the role as default", - "type": "boolean" + { + "$ref": "#/components/schemas/ProductListingCriteria" } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "description": "Role entity", + "description": "The loaded cms page", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bRole" + "$ref": "#/components/schemas/CmsPage" } } } + }, + "404": { + "$ref": "#/components/responses/404" } }, "security": [ @@ -20203,74 +17343,44 @@ "ApiKey": [] } ] - }, - "delete": { + } + }, + "/seo-url": { + "post": { "tags": [ - "B2B" + "Sitemap & Routes", + "Endpoints supporting Criteria " ], - "summary": "Delete an role by id", - "description": "This route is used to delete one role by id", - "operationId": "deleteRole", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the role to be fetched", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "summary": "Fetch SEO routes", + "description": "Perform a filtered search for seo urls.", + "operationId": "readSeoUrl", + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + } + ] + } } } - ], - "responses": { - "204": { - "description": "No content response" - } }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/store-api/role/permissions": { - "get": { - "tags": [ - "B2B" - ], - "summary": "Fetch a available permissions", - "description": "This route is used to fetch all available permissions", - "operationId": "readPermissions", "responses": { "200": { - "description": "Permission collection", + "description": "Entity search result containing seo urls.", "content": { "application/json": { "schema": { - "type": "object", "allOf": [ { "properties": { "elements": { "type": "array", "items": { - "type": "object", - "properties": { - "permissionName": { - "type": "string" - }, - "permissionDependencies": { - "type": "array", - "items": { - "type": "string" - } - }, - "permissionGroupName": { - "type": "string" - } - } + "$ref": "#/components/schemas/SeoUrl" } } }, @@ -20283,6 +17393,9 @@ } } } + }, + "404": { + "$ref": "#/components/responses/404" } }, "security": [ @@ -20292,33 +17405,35 @@ ] } }, - "/store-api/role/default": { - "post": { + "/customer-group-registration/config/{customerGroupId}": { + "get": { "tags": [ - "B2B" + "Login & Registration" ], - "summary": "Sets the default role Id for new employees", - "description": "This route is used to update the defaultRoleId for new employees", - "operationId": "updateDefaultRoleId", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "properties": { - "id": { - "description": "Id of the roleId to be set as default", - "type": "string" - } - }, - "type": "object" - } + "summary": "Fetch registration settings for customer group", + "operationId": "getCustomerGroupRegistrationInfo", + "parameters": [ + { + "name": "customerGroupId", + "in": "path", + "description": "Customer group id", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" } } - }, + ], "responses": { - "204": { - "description": "No content response" + "200": { + "description": "Returns the customer group including registration settings.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CustomerGroup" + } + } + } } }, "security": [