diff --git a/.github/workflows/plugin_commercial_schema.yml b/.github/workflows/plugin_commercial_schema.yml index 3a1c437..b142101 100644 --- a/.github/workflows/plugin_commercial_schema.yml +++ b/.github/workflows/plugin_commercial_schema.yml @@ -16,7 +16,7 @@ env: PLUGIN_NAME: SwagCommercial PLUGIN_URL: github.com/shopware/SwagCommercial.git # Branch to clone for this plugin (set per store-api-reference branch, e.g. trunk or 6.6.x) - PLUGIN_BRANCH: 6.7.7.x + PLUGIN_BRANCH: trunk # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: diff --git a/SwagCommercial-storeapi.json b/SwagCommercial-storeapi.json index 1d4913f..8fe710a 100644 --- a/SwagCommercial-storeapi.json +++ b/SwagCommercial-storeapi.json @@ -850,6 +850,48 @@ }, "type": "object" }, + "B2bComponentsAdvancedProductCatalogs": { + "description": "Added since version: 6.7.1.0", + "required": [ + "id", + "organizationId", + "salesChannelId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "autoAddNewCategories": { + "type": "boolean" + }, + "organizationId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salesChannelId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "categories": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" + } + } + }, + "type": "object" + }, "B2bComponentsApprovalRule": { "description": "Added since version: 6.6.0.0", "required": [ @@ -888,6 +930,9 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "customFields": { + "type": "object" + }, "createdAt": { "type": "string", "format": "date-time", @@ -933,13 +978,14 @@ }, "type": "object" }, - "B2bComponentsOrganization": { + "B2bComponentsBudget": { + "description": "Added since version: 6.7.4.0", "required": [ "id", "name", - "customerId", - "defaultShippingAddressId", - "defaultBillingAddressId" + "technicalName", + "amount", + "startDate" ], "properties": { "id": { @@ -949,29 +995,68 @@ "name": { "type": "string" }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "costCentre": { + "type": "string" }, - "defaultShippingAddressId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "technicalName": { + "type": "string" }, - "defaultBillingAddressId": { + "active": { + "type": "boolean" + }, + "amount": { + "type": "number", + "format": "float" + }, + "usedAmount": { + "type": "number", + "format": "float", + "readOnly": true + }, + "startDate": { + "type": "string" + }, + "endDate": { + "type": "string" + }, + "renewsType": { + "type": "string" + }, + "allowApproval": { + "type": "boolean" + }, + "showRemaining": { + "type": "boolean" + }, + "notify": { + "type": "boolean" + }, + "notificationConfig": { + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + }, + "type": "object" + }, + "customFields": { + "type": "object" + }, + "customerId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdById": { + "reviewerRoleId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "updatedById": { + "createdById": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customFields": { - "type": "object" - }, "createdAt": { "type": "string", "format": "date-time", @@ -982,117 +1067,91 @@ "format": "date-time", "readOnly": true }, - "customer": { - "$ref": "#/components/schemas/Customer" - }, - "employees": { - "type": "array", - "items": { - "$ref": "#/components/schemas/B2bEmployee" - } - }, - "organizationCustomerAddresses": { - "type": "array", - "items": { - "$ref": "#/components/schemas/B2bComponentsOrganizationCustomerAddress" - } - }, - "paymentMethods": { + "organizations": { "type": "array", "items": { - "$ref": "#/components/schemas/PaymentMethod" + "$ref": "#/components/schemas/B2bComponentsOrganization" } }, - "shippingMethods": { + "notificationRecipients": { "type": "array", "items": { - "$ref": "#/components/schemas/ShippingMethod" + "$ref": "#/components/schemas/B2bEmployee" } }, - "defaultShippingAddress": { - "$ref": "#/components/schemas/CustomerAddress" - }, - "defaultBillingAddress": { - "$ref": "#/components/schemas/CustomerAddress" - }, - "createdBy": { - "$ref": "#/components/schemas/User" + "reviewerRole": { + "$ref": "#/components/schemas/B2bComponentsRole" }, - "updatedBy": { - "$ref": "#/components/schemas/User" + "currency": { + "$ref": "#/components/schemas/Currency" } }, "type": "object" }, - "B2bComponentsOrganizationCustomerAddress": { + "B2bComponentsBudgetNotificationRecipient": { + "description": "Added since version: 6.7.4.0", "required": [ - "id", - "organizationId", - "customerAddressId", - "type" + "budgetId", + "employeeId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "organizationId": { + "budgetId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customerAddressId": { + "employeeId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "type": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "budget": { + "$ref": "#/components/schemas/B2bComponentsBudget" }, - "customerAddress": { - "$ref": "#/components/schemas/CustomerAddress" + "employee": { + "$ref": "#/components/schemas/B2bEmployee" } }, "type": "object" }, - "B2bComponentsPendingOrder": { - "description": "Added since version: 6.6.0.0", + "B2bComponentsBudgetOrganization": { + "description": "Added since version: 6.7.4.0", "required": [ - "id", - "billingAddressId", - "customerId", - "employeeId", - "stateId", - "currencyId", - "countryId", - "salesChannelId", - "shippingMethodId", - "paymentMethodId", - "languageId", - "cartPayload" + "budgetId", + "organizationId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderId": { + "budgetId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "billingAddressId": { + "organizationId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customerId": { + "budget": { + "$ref": "#/components/schemas/B2bComponentsBudget" + }, + "organization": { + "$ref": "#/components/schemas/B2bComponentsOrganization" + } + }, + "type": "object" + }, + "B2bComponentsEmployeeWishlist": { + "required": [ + "id", + "employeeId", + "salesChannelId" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -1100,103 +1159,161 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "decidedById": { + "salesChannelId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "approvalRuleId": { + "customFields": { + "type": "object" + }, + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "stateId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "currencyId": { + "employee": { + "$ref": "#/components/schemas/B2bEmployee" + }, + "salesChannel": { + "$ref": "#/components/schemas/SalesChannel" + }, + "products": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bComponentsEmployeeWishlistProduct" + } + } + }, + "type": "object" + }, + "B2bComponentsEmployeeWishlistProduct": { + "required": [ + "id", + "employeeWishlistId", + "productId", + "productVersionId" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "countryId": { + "employeeWishlistId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "salesChannelId": { + "productId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "shippingMethodId": { + "productVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "paymentMethodId": { + "customFields": { + "type": "object" + }, + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "languageId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "cartPayload": { - "type": "string" + "employeeWishlist": { + "$ref": "#/components/schemas/B2bComponentsEmployeeWishlist" }, - "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" + "product": { + "$ref": "#/components/schemas/Product" + } + }, + "type": "object" + }, + "B2bComponentsIndividualPricing": { + "description": "Added since version: 6.7.8.0", + "required": [ + "id", + "active", + "showStrikeThrough", + "name", + "target", + "priority", + "applyToAllProducts", + "useValidityRange", + "actionType", + "tiers" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "originalPrice": { + "active": { + "type": "boolean" + }, + "showStrikeThrough": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "target": { + "type": "string" + }, + "priority": { + "type": "integer", + "format": "int64" + }, + "applyToAllProducts": { + "type": "boolean" + }, + "productStreamId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "useValidityRange": { + "type": "boolean" + }, + "validFrom": { + "type": "string" + }, + "validUntil": { + "type": "string" + }, + "description": { + "type": "string" + }, + "actionType": { + "type": "string" + }, + "actionAmount": { "type": "number", "format": "float" }, - "taxStatus": { + "createdById": { "type": "string", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "amountTotal": { - "type": "number", - "format": "float", - "readOnly": true + "updatedById": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "amountNet": { - "type": "number", - "format": "float", + "tagIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, "readOnly": true }, - "reason": { - "type": "string" - }, "customFields": { "type": "object" }, @@ -1210,112 +1327,67 @@ "format": "date-time", "readOnly": true }, - "order": { - "$ref": "#/components/schemas/Order" - }, - "billingAddress": { - "$ref": "#/components/schemas/B2bComponentsPendingOrderAddress" - }, - "customer": { - "$ref": "#/components/schemas/Customer" - }, - "employee": { - "$ref": "#/components/schemas/B2bEmployee" - }, - "decidedBy": { - "$ref": "#/components/schemas/B2bEmployee" - }, - "approvalRule": { - "$ref": "#/components/schemas/B2bComponentsApprovalRule" - }, - "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" - }, - "currency": { - "$ref": "#/components/schemas/Currency" + "createdBy": { + "$ref": "#/components/schemas/User" }, - "country": { - "$ref": "#/components/schemas/Country" + "updatedBy": { + "$ref": "#/components/schemas/User" }, - "language": { - "$ref": "#/components/schemas/Language" + "productStream": { + "$ref": "#/components/schemas/ProductStream" }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" + "tiers": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bComponentsIndividualPricingTier" + } }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" + "companyAssignments": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bComponentsIndividualPricingCompanyAssignment" + } }, - "addresses": { + "tags": { "type": "array", "items": { - "$ref": "#/components/schemas/B2bComponentsPendingOrderAddress" + "$ref": "#/components/schemas/Tag" } } }, "type": "object" }, - "B2bComponentsPendingOrderAddress": { - "description": "Added since version: 6.6.0.0", + "B2bComponentsIndividualPricingCompanyAssignment": { + "description": "Added since version: 6.7.8.0", "required": [ "id", - "countryId", - "firstName", - "lastName", - "street", - "city" + "individualPricingId", + "customerId", + "scope" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "countryId": { + "individualPricingId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "countryStateId": { + "customerId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "street": { - "type": "string" - }, - "zipcode": { - "type": "string" - }, - "city": { - "type": "string" - }, - "company": { - "type": "string" - }, - "department": { - "type": "string" - }, - "title": { - "type": "string" - }, - "vatId": { - "type": "string" - }, - "phoneNumber": { - "type": "string" - }, - "additionalAddressLine1": { - "type": "string" - }, - "additionalAddressLine2": { + "scope": { "type": "string" }, - "customFields": { - "type": "object" + "organizationUnitIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true }, "createdAt": { "type": "string", @@ -1327,47 +1399,54 @@ "format": "date-time", "readOnly": true }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "$ref": "#/components/schemas/CountryState" + "individualPricing": { + "$ref": "#/components/schemas/B2bComponentsIndividualPricing" }, - "pendingOrder": { - "$ref": "#/components/schemas/B2bComponentsPendingOrder" + "customer": { + "$ref": "#/components/schemas/Customer" }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + "units": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bComponentsOrganization" + } } }, "type": "object" }, - "B2bComponentsRole": { + "B2bComponentsIndividualPricingCompanyAssignmentUnit": { + "description": "Added since version: 6.7.8.0", "required": [ - "id", - "name" + "assignmentId", + "orgUnitId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" + "assignmentId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "permissions": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false - } + "orgUnitId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "customFields": { - "type": "object" + "assignment": { + "$ref": "#/components/schemas/B2bComponentsIndividualPricingCompanyAssignment" }, - "default": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean" + "orgUnit": { + "$ref": "#/components/schemas/B2bComponentsOrganization" + } + }, + "type": "object" + }, + "B2bComponentsIndividualPricingComputedCache": { + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "createdAt": { "type": "string", @@ -1382,241 +1461,58 @@ }, "type": "object" }, - "B2bComponentsShoppingListJsonApi": { - "description": "Added since version: 6.6.2.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" + "B2bComponentsIndividualPricingTag": { + "description": "Added since version: 6.7.8.0", + "required": [ + "individualPricingId", + "tagId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - { - "required": [ - "id", - "salesChannelId", - "customerId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "name": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "salesChannelId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdById": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "updatedById": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "employeeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "customFields": { - "type": "object" - }, - "price": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Price" - } - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "extensions": { - "properties": { - "organization": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/b2b-components-shopping-list/23cb3bfda723e05b43cb25a427ee5a25/organization" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "b2b_components_organization" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "b4c1948c087fafc89a88450fcbb64c77" - } - } - } - }, - "type": "object" - } - }, - "type": "object" - }, - "relationships": { - "properties": { - "customer": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/b2b-components-shopping-list/23cb3bfda723e05b43cb25a427ee5a25/customer" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "customer" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "91ec1f9324753048c0096d036a694f86" - } - } - } - }, - "type": "object" - }, - "employee": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/b2b-components-shopping-list/23cb3bfda723e05b43cb25a427ee5a25/employee" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "b2b_employee" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "fa5473530e4d1a5a1e1eb53d2fedb10c" - } - } - } - }, - "type": "object" - }, - "lineItems": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/b2b-components-shopping-list/23cb3bfda723e05b43cb25a427ee5a25/lineItems" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "b2b_components_shopping_list_line_item" - }, - "id": { - "type": "string", - "example": "a042af1aa9f3853fe3cd7dabc065568f" - } - } - } - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - } - ] - }, - "B2bComponentsShoppingList": { - "description": "Added since version: 6.6.2.0", - "required": [ - "id", - "salesChannelId", - "customerId" - ], - "properties": { - "id": { + "individualPricingId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "salesChannelId": { + "tagId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdById": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "individualPricing": { + "$ref": "#/components/schemas/B2bComponentsIndividualPricing" }, - "updatedById": { + "tag": { + "$ref": "#/components/schemas/Tag" + } + }, + "type": "object" + }, + "B2bComponentsIndividualPricingTier": { + "description": "Added since version: 6.7.8.0", + "required": [ + "individualPricingId", + "id", + "qtyFrom", + "price" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customerId": { + "individualPricingId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "employeeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "qtyFrom": { + "type": "integer", + "format": "int64" }, - "customFields": { - "type": "object" + "qtyTo": { + "type": "integer", + "format": "int64" }, "price": { "type": "array", @@ -1634,215 +1530,51 @@ "format": "date-time", "readOnly": true }, - "extensions": { - "properties": { - "organization": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/b2b-components-shopping-list/23cb3bfda723e05b43cb25a427ee5a25/organization" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "b2b_components_organization" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "b4c1948c087fafc89a88450fcbb64c77" - } - } - } - }, - "type": "object" - } - }, - "type": "object" - }, - "customer": { - "$ref": "#/components/schemas/Customer" - }, - "employee": { - "$ref": "#/components/schemas/B2bEmployee" - }, - "lineItems": { - "type": "array", - "items": { - "$ref": "#/components/schemas/B2bComponentsShoppingListLineItem" - } + "individualPricing": { + "$ref": "#/components/schemas/B2bComponentsIndividualPricing" } }, "type": "object" }, - "B2bComponentsShoppingListLineItemJsonApi": { - "description": "Added since version: 6.6.2.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" - }, - { - "required": [ - "id", - "quantity" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "price": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Price" - } - }, - "quantity": { - "type": "integer", - "format": "int64" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "relationships": { - "properties": { - "product": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/b2b-components-shopping-list-line-item/30d48c8d92682de24e11d3f72c5dd1ea/product" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "product" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "f5bf48aa40cad7891eb709fcf1fde128" - } - } - } - }, - "type": "object" - } - }, - "type": "object" - } - }, - "type": "object" - } - ] - }, - "B2bComponentsShoppingListLineItem": { - "description": "Added since version: 6.6.2.0", + "B2bComponentsOrganization": { "required": [ "id", - "quantity" + "name", + "customerId", + "defaultShippingAddressId", + "defaultBillingAddressId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "type": "string" }, - "productVersionId": { + "customerId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "price": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Price" - } - }, - "quantity": { - "type": "integer", - "format": "int64" - }, - "createdAt": { + "defaultShippingAddressId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { + "defaultBillingAddressId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "product": { - "$ref": "#/components/schemas/Product" - } - }, - "type": "object" - }, - "B2bEmployee": { - "required": [ - "id", - "languageId", - "firstName", - "lastName", - "email" - ], - "properties": { - "id": { + "createdById": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "languageId": { + "updatedById": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "email": { - "type": "string" - }, "customFields": { "type": "object" }, - "status": { - "type": "string" - }, "createdAt": { "type": "string", "format": "date-time", @@ -1853,29 +1585,69 @@ "format": "date-time", "readOnly": true }, - "role": { - "$ref": "#/components/schemas/B2bComponentsRole" + "customer": { + "$ref": "#/components/schemas/Customer" }, - "language": { - "$ref": "#/components/schemas/Language" + "employees": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bEmployee" + } + }, + "organizationCustomerAddresses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bComponentsOrganizationCustomerAddress" + } + }, + "paymentMethods": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentMethod" + } + }, + "shippingMethods": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ShippingMethod" + } + }, + "defaultShippingAddress": { + "$ref": "#/components/schemas/CustomerAddress" + }, + "defaultBillingAddress": { + "$ref": "#/components/schemas/CustomerAddress" + }, + "createdBy": { + "$ref": "#/components/schemas/User" + }, + "updatedBy": { + "$ref": "#/components/schemas/User" } }, "type": "object" }, - "B2bOrderEmployee": { + "B2bComponentsOrganizationCustomerAddress": { "required": [ - "firstName", - "lastName" + "id", + "organizationId", + "customerAddressId", + "type" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "firstName": { - "type": "string" + "organizationId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "lastName": { + "customerAddressId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "type": { "type": "string" }, "createdAt": { @@ -1887,520 +1659,301 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "customerAddress": { + "$ref": "#/components/schemas/CustomerAddress" } }, "type": "object" }, - "B2bPermission": { + "B2bComponentsPendingOrder": { + "description": "Added since version: 6.6.0.0", "required": [ "id", - "name", - "group" + "billingAddressId", + "customerId", + "employeeId", + "stateId", + "currencyId", + "countryId", + "salesChannelId", + "shippingMethodId", + "paymentMethodId", + "languageId", + "cartPayload" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" + "orderId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "group": { - "type": "string" + "billingAddressId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "dependencies": { - "type": "array", - "items": { - "type": "string" - } + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "employeeId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { + "decidedById": { "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "CategoryJsonApi": { - "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" + "pattern": "^[0-9a-f]{32}$" }, - { + "approvalRuleId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "stateId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salesChannelId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shippingMethodId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "paymentMethodId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "languageId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cartPayload": { + "type": "string" + }, + "price": { "required": [ - "id", - "name" + "netPrice", + "totalPrice", + "positionPrice", + "rawTotal", + "taxStatus" ], "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "afterCategoryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "afterCategoryVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "mediaId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "displayNestedProducts": { - "type": "boolean" - }, - "breadcrumb": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false - }, - "readOnly": true - }, - "level": { - "type": "integer", - "format": "int64", - "readOnly": true - }, - "path": { - "type": "string", - "readOnly": true - }, - "childCount": { - "type": "integer", - "format": "int64", - "readOnly": true - }, - "type": { - "type": "string" - }, - "productAssignmentType": { - "type": "string" - }, - "visible": { - "type": "boolean" - }, - "active": { - "type": "boolean" - }, - "cmsPageIdSwitched": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean" - }, - "visibleChildCount": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "integer", - "format": "int64" + "netPrice": { + "type": "number", + "format": "float" }, - "name": { - "type": "string" + "totalPrice": { + "type": "number", + "format": "float" }, - "customFields": { + "calculatedTaxes": { "type": "object" }, - "linkType": { - "type": "string" - }, - "internalLink": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "externalLink": { - "type": "string" - }, - "linkNewTab": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "metaTitle": { - "type": "string" - }, - "metaDescription": { - "type": "string" - }, - "keywords": { - "type": "string" - }, - "cmsPageId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "taxRules": { + "type": "object" }, - "cmsPageVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "positionPrice": { + "type": "number", + "format": "float" }, - "customEntityTypeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "rawTotal": { + "type": "number", + "format": "float" }, - "seoUrl": { - "description": "Runtime field, cannot be used as part of the criteria.", + "taxStatus": { "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" - }, - "relationships": { + } + }, + "type": "object" + }, + "originalPrice": { + "type": "number", + "format": "float" + }, + "taxStatus": { + "type": "string", + "readOnly": true + }, + "amountTotal": { + "type": "number", + "format": "float", + "readOnly": true + }, + "amountNet": { + "type": "number", + "format": "float", + "readOnly": true + }, + "reason": { + "type": "string" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "extensions": { + "properties": { + "budget": { "properties": { - "parent": { + "links": { + "type": "object", "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/category/3adbdb3ac060038aa0e6e6c138ef9873/parent" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "category" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "d0e45878043844ffc41aac437e86b602" - } - } - } - }, - "type": "object" - }, - "children": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/category/3adbdb3ac060038aa0e6e6c138ef9873/children" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "category" - }, - "id": { - "type": "string", - "example": "268184c12df027f536154d099d497b31" - } - } - } - } - }, - "type": "object" - }, - "media": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/category/3adbdb3ac060038aa0e6e6c138ef9873/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": "/category/3adbdb3ac060038aa0e6e6c138ef9873/tags" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "tag" - }, - "id": { - "type": "string", - "example": "d57ac45256849d9b13e2422d91580fb9" - } - } - } - } - }, - "type": "object" - }, - "cmsPage": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/category/3adbdb3ac060038aa0e6e6c138ef9873/cmsPage" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "cms_page" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "7b1460918b1abb93311108f3dc021c9b" - } - } + "related": { + "type": "string", + "format": "uri-reference", + "example": "/b2b-components-pending-order/e87c4279c6f83e4de2543a63bf59b373/budget" } - }, - "type": "object" + } }, - "seoUrls": { + "data": { + "type": "object", "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/category/3adbdb3ac060038aa0e6e6c138ef9873/seoUrls" - } - } + "type": { + "type": "string", + "example": "b2b_components_budget" }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "seo_url" - }, - "id": { - "type": "string", - "example": "5321b5a71127b8b98cdd4b068ad56c4c" - } - } - } + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "2f212049ce79d2b949fd242043004288" } - }, - "type": "object" + } } }, "type": "object" } }, "type": "object" + }, + "order": { + "$ref": "#/components/schemas/Order" + }, + "billingAddress": { + "$ref": "#/components/schemas/B2bComponentsPendingOrderAddress" + }, + "customer": { + "$ref": "#/components/schemas/Customer" + }, + "employee": { + "$ref": "#/components/schemas/B2bEmployee" + }, + "decidedBy": { + "$ref": "#/components/schemas/B2bEmployee" + }, + "approvalRule": { + "$ref": "#/components/schemas/B2bComponentsApprovalRule" + }, + "stateMachineState": { + "$ref": "#/components/schemas/StateMachineState" + }, + "currency": { + "$ref": "#/components/schemas/Currency" + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "language": { + "$ref": "#/components/schemas/Language" + }, + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod" + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" + }, + "addresses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bComponentsPendingOrderAddress" + } } - ] + }, + "type": "object" }, - "Category": { - "description": "Added since version: 6.0.0.0", + "B2bComponentsPendingOrderAddress": { + "description": "Added since version: 6.6.0.0", "required": [ - "apiAlias", - "breadcrumb", - "children", - "childCount", - "translated", - "type", "id", - "name" + "countryId", + "firstName", + "lastName", + "street", + "city" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentId": { + "countryId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "parentVersionId": { + "countryStateId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "afterCategoryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "firstName": { + "type": "string" }, - "afterCategoryVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "mediaId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "displayNestedProducts": { - "type": "boolean" - }, - "breadcrumb": { - "type": "array", - "items": { - "type": "string", - "additionalProperties": false - }, - "readOnly": true - }, - "level": { - "type": "integer", - "format": "int64", - "readOnly": true - }, - "path": { - "type": "string", - "readOnly": true - }, - "childCount": { - "type": "number", - "format": "int64", - "readOnly": true - }, - "type": { - "type": "string", - "enum": [ - "page", - "link" - ] - }, - "productAssignmentType": { + "lastName": { "type": "string" }, - "visible": { - "type": "boolean" - }, - "active": { - "type": "boolean" - }, - "cmsPageIdSwitched": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean" - }, - "visibleChildCount": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "integer", - "format": "int64" - }, - "name": { + "street": { "type": "string" }, - "customFields": { - "type": "object" - }, - "linkType": { + "zipcode": { "type": "string" }, - "internalLink": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "externalLink": { + "city": { "type": "string" }, - "linkNewTab": { - "type": "boolean" - }, - "description": { + "company": { "type": "string" }, - "metaTitle": { + "department": { "type": "string" }, - "metaDescription": { + "title": { "type": "string" }, - "keywords": { + "vatId": { "type": "string" }, - "cmsPageId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "cmsPageVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "phoneNumber": { + "type": "string" }, - "customEntityTypeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "additionalAddressLine1": { + "type": "string" }, - "seoUrl": { - "description": "Runtime field, cannot be used as part of the criteria.", + "additionalAddressLine2": { "type": "string" }, + "customFields": { + "type": "object" + }, "createdAt": { "type": "string", "format": "date-time", @@ -2411,139 +1964,48 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object", - "additionalProperties": true, - "properties": { - "breadcrumb": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "required": [ - "breadcrumb" - ] - }, - "parent": { - "$ref": "#/components/schemas/Category" - }, - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - } - }, - "media": { - "$ref": "#/components/schemas/Media" - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } + "country": { + "$ref": "#/components/schemas/Country" }, - "cmsPage": { - "$ref": "#/components/schemas/CmsPage" + "countryState": { + "$ref": "#/components/schemas/CountryState" }, - "seoUrls": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeoUrl" - } + "pendingOrder": { + "$ref": "#/components/schemas/B2bComponentsPendingOrder" }, - "apiAlias": { - "type": "string", - "enum": [ - "category" - ] + "salutation": { + "$ref": "#/components/schemas/Salutation" } }, "type": "object" }, - "CmsBlock": { - "description": "Added since version: 6.0.0.0", + "B2bComponentsRole": { "required": [ - "apiAlias", - "slots", "id", - "position", - "type", - "sectionId" + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "cmsSectionVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "position": { - "type": "integer", - "format": "int64" - }, - "type": { - "type": "string" - }, "name": { "type": "string" }, - "sectionPosition": { - "type": "string" - }, - "marginTop": { - "type": "string" - }, - "marginBottom": { - "type": "string" - }, - "marginLeft": { - "type": "string" - }, - "marginRight": { - "type": "string" - }, - "backgroundColor": { - "type": "string" - }, - "backgroundMediaId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "backgroundMediaMode": { - "type": "string" - }, - "cssClass": { - "type": "string" - }, - "visibility": { - "properties": { - "mobile": { - "type": "boolean" - }, - "desktop": { - "type": "boolean" - }, - "tablet": { - "type": "boolean" - } - }, - "type": "object" - }, - "sectionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "permissions": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false + } }, "customFields": { "type": "object" }, + "default": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, "createdAt": { "type": "string", "format": "date-time", @@ -2553,69 +2015,252 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "backgroundMedia": { - "$ref": "#/components/schemas/Media" - }, - "slots": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CmsSlot" - } - }, - "apiAlias": { - "type": "string", - "enum": [ - "cms_block" - ] } }, "type": "object" }, - "CmsPage": { - "description": "Added since version: 6.0.0.0", - "required": [ - "apiAlias", - "sections", - "id", - "type" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "B2bComponentsShoppingListJsonApi": { + "description": "Added since version: 6.6.2.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" }, - "versionId": { + { + "required": [ + "id", + "salesChannelId", + "customerId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "name": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "salesChannelId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdById": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "updatedById": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "employeeId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customFields": { + "type": "object" + }, + "price": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Price" + } + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "extensions": { + "properties": { + "organization": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/b2b-components-shopping-list/23cb3bfda723e05b43cb25a427ee5a25/organization" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "b2b_components_organization" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "b4c1948c087fafc89a88450fcbb64c77" + } + } + } + }, + "type": "object" + } + }, + "type": "object" + }, + "relationships": { + "properties": { + "customer": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/b2b-components-shopping-list/23cb3bfda723e05b43cb25a427ee5a25/customer" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "customer" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "91ec1f9324753048c0096d036a694f86" + } + } + } + }, + "type": "object" + }, + "employee": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/b2b-components-shopping-list/23cb3bfda723e05b43cb25a427ee5a25/employee" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "b2b_employee" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "fa5473530e4d1a5a1e1eb53d2fedb10c" + } + } + } + }, + "type": "object" + }, + "lineItems": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/b2b-components-shopping-list/23cb3bfda723e05b43cb25a427ee5a25/lineItems" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "b2b_components_shopping_list_line_item" + }, + "id": { + "type": "string", + "example": "a042af1aa9f3853fe3cd7dabc065568f" + } + } + } + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + ] + }, + "B2bComponentsShoppingList": { + "description": "Added since version: 6.6.2.0", + "required": [ + "id", + "salesChannelId", + "customerId" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, "name": { "type": "string" }, - "type": { - "type": "string" + "active": { + "type": "boolean" }, - "entity": { - "type": "string" + "salesChannelId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "cssClass": { - "type": "string" + "createdById": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "config": { - "properties": { - "backgroundColor": { - "type": "string" - } - }, - "type": "object" + "updatedById": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "previewMediaId": { + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "employeeId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, "customFields": { "type": "object" }, + "price": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Price" + } + }, "createdAt": { "type": "string", "format": "date-time", @@ -2626,105 +2271,201 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object" - }, - "sections": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CmsSection" - } - }, - "previewMedia": { - "$ref": "#/components/schemas/Media" - }, - "landingPages": { - "type": "array", + "extensions": { + "properties": { + "organization": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/b2b-components-shopping-list/23cb3bfda723e05b43cb25a427ee5a25/organization" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "b2b_components_organization" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "b4c1948c087fafc89a88450fcbb64c77" + } + } + } + }, + "type": "object" + } + }, + "type": "object" + }, + "customer": { + "$ref": "#/components/schemas/Customer" + }, + "employee": { + "$ref": "#/components/schemas/B2bEmployee" + }, + "lineItems": { + "type": "array", "items": { - "$ref": "#/components/schemas/LandingPage" + "$ref": "#/components/schemas/B2bComponentsShoppingListLineItem" } - }, - "apiAlias": { - "type": "string", - "enum": [ - "cms_page" - ] } }, "type": "object" }, - "CmsSection": { - "description": "Added since version: 6.0.0.0", + "B2bComponentsShoppingListLineItemJsonApi": { + "description": "Added since version: 6.6.2.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" + }, + { + "required": [ + "id", + "quantity" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "price": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Price" + } + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "relationships": { + "properties": { + "product": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/b2b-components-shopping-list-line-item/30d48c8d92682de24e11d3f72c5dd1ea/product" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "f5bf48aa40cad7891eb709fcf1fde128" + } + } + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + ] + }, + "B2bComponentsShoppingListLineItem": { + "description": "Added since version: 6.6.2.0", "required": [ - "apiAlias", - "blocks", "id", - "position", - "type", - "pageId" + "quantity" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "cmsPageVersionId": { + "productId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "position": { - "type": "integer", - "format": "int64" - }, - "type": { + "productVersionId": { "type": "string", - "enum": [ - "default", - "sidebar" - ] + "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" + "price": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Price" + } }, - "sizingMode": { - "type": "string" + "quantity": { + "type": "integer", + "format": "int64" }, - "mobileBehavior": { - "type": "string" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "backgroundColor": { - "type": "string" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "backgroundMediaId": { + "product": { + "$ref": "#/components/schemas/Product" + } + }, + "type": "object" + }, + "B2bComponentsSubscriptionEmployee": { + "required": [ + "id", + "subscriptionId", + "employeeId" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "backgroundMediaMode": { - "type": "string" - }, - "cssClass": { - "type": "string" - }, - "pageId": { + "subscriptionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "visibility": { - "properties": { - "mobile": { - "type": "boolean" - }, - "desktop": { - "type": "boolean" - }, - "tablet": { - "type": "boolean" - } - }, - "type": "object" - }, - "customFields": { - "type": "object" + "employeeId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "createdAt": { "type": "string", @@ -2736,75 +2477,113 @@ "format": "date-time", "readOnly": true }, - "page": { - "$ref": "#/components/schemas/CmsPage" - }, - "backgroundMedia": { - "$ref": "#/components/schemas/Media" - }, - "blocks": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CmsBlock" - } - }, - "apiAlias": { - "type": "string", - "enum": [ - "cms_section" - ] + "employee": { + "$ref": "#/components/schemas/B2bEmployee" } }, "type": "object" }, - "CmsSlot": { - "description": "Added since version: 6.0.0.0", + "B2bEmployee": { "required": [ - "apiAlias", "id", - "type", - "slot", - "blockId" + "languageId", + "firstName", + "lastName", + "email" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "cmsBlockVersionId": { + "languageId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "fieldConfig": { - "type": "object" - }, - "type": { + "firstName": { "type": "string" }, - "slot": { + "lastName": { "type": "string" }, - "locked": { - "type": "boolean" - }, - "config": { - "type": "object" + "email": { + "type": "string" }, "customFields": { "type": "object" }, - "data": { - "type": "object", + "status": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time", "readOnly": true }, - "blockId": { + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "extensions": { + "properties": { + "organization": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/b2b-employee/1131eb0b1859b37129289fe3bcc9e70b/organization" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "b2b_components_organization" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "b4c1948c087fafc89a88450fcbb64c77" + } + } + } + }, + "type": "object" + } + }, + "type": "object" + }, + "role": { + "$ref": "#/components/schemas/B2bComponentsRole" + }, + "language": { + "$ref": "#/components/schemas/Language" + } + }, + "type": "object" + }, + "B2bOrderEmployee": { + "required": [ + "firstName", + "lastName" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "firstName": { + "type": "string" + }, + "lastName": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time", @@ -2814,23 +2593,47 @@ "type": "string", "format": "date-time", "readOnly": true + } + }, + "type": "object" + }, + "B2bPermission": { + "required": [ + "id", + "name", + "group" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "translated": { - "type": "object" + "name": { + "type": "string" }, - "block": { - "$ref": "#/components/schemas/CmsBlock" + "group": { + "type": "string" }, - "apiAlias": { + "dependencies": { + "type": "array", + "items": { + "type": "string" + } + }, + "createdAt": { "type": "string", - "enum": [ - "cms_slot" - ] + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true } }, "type": "object" }, - "CountryJsonApi": { + "CategoryJsonApi": { "description": "Added since version: 6.0.0.0", "allOf": [ { @@ -2839,111 +2642,139 @@ { "required": [ "id", - "name", - "addressFormat" + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "iso": { - "type": "string" + "parentId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "position": { - "type": "integer", - "format": "int64" + "parentVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "active": { - "type": "boolean" + "afterCategoryId": { + "description": "Unique identity of the category under which the new category is to be created.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "shippingAvailable": { + "afterCategoryVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "mediaId": { + "description": "Unique identity of media added to identify category.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "displayNestedProducts": { + "description": "Shows nested categories on a product category page.", "type": "boolean" }, - "iso3": { + "breadcrumb": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false + }, + "readOnly": true + }, + "level": { + "description": "An integer value that denotes the level of nesting of a particular category located in an hierarchical category tree.", + "type": "integer", + "format": "int64", + "readOnly": true + }, + "path": { + "description": "A relative URL to the category.", + "type": "string", + "readOnly": true + }, + "childCount": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "type": { + "description": "Type of categories like `page`, `folder`, `link`.", "type": "string" }, - "displayStateInRegistration": { - "type": "boolean" + "productAssignmentType": { + "description": "Type of product assignment: Dynamic product group as or `product_stream` or Manual assignment as `product`.", + "type": "string" }, - "forceStateInRegistration": { + "visible": { + "description": "Displays categories on category page when true.", "type": "boolean" }, - "checkVatIdPattern": { + "active": { + "description": "When boolean value is `true`, the category is listed for selection.", "type": "boolean" }, - "vatIdRequired": { + "cmsPageIdSwitched": { + "description": "Runtime field, cannot be used as part of the criteria.", "type": "boolean" }, - "vatIdPattern": { + "visibleChildCount": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "integer", + "format": "int64" + }, + "name": { "type": "string" }, "customFields": { "type": "object" }, - "customerTax": { - "required": [ - "enabled", - "currencyId", - "amount" - ], - "properties": { - "enabled": { - "type": "boolean" - }, - "currencyId": { - "type": "string" - }, - "amount": { - "type": "number", - "format": "float" - } - }, - "type": "object" + "linkType": { + "type": "string" }, - "companyTax": { - "required": [ - "enabled", - "currencyId", - "amount" - ], - "properties": { - "enabled": { - "type": "boolean" - }, - "currencyId": { - "type": "string" - }, - "amount": { - "type": "number", - "format": "float" - } - }, - "type": "object" + "internalLink": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "postalCodeRequired": { - "type": "boolean" + "externalLink": { + "type": "string" }, - "checkPostalCodePattern": { + "linkNewTab": { "type": "boolean" }, - "checkAdvancedPostalCodePattern": { - "type": "boolean" + "description": { + "type": "string" }, - "advancedPostalCodePattern": { + "metaTitle": { "type": "string" }, - "addressFormat": { - "type": "object" + "metaDescription": { + "type": "string" }, - "defaultPostalCodePattern": { + "keywords": { "type": "string" }, - "isEu": { - "type": "boolean" + "cmsPageId": { + "description": "Unique identity of CMS page.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cmsPageVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customEntityTypeId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "seoUrl": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" }, "createdAt": { "type": "string", @@ -2960,7 +2791,8 @@ }, "relationships": { "properties": { - "states": { + "parent": { + "description": "Unique identity of category.", "properties": { "links": { "type": "object", @@ -2968,7 +2800,37 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/country/59716c97497eb9694541f7c3d37b1a4d/states" + "example": "/category/3adbdb3ac060038aa0e6e6c138ef9873/parent" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "category" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "d0e45878043844ffc41aac437e86b602" + } + } + } + }, + "type": "object" + }, + "children": { + "description": "Child categories within this category for hierarchical navigation", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/category/3adbdb3ac060038aa0e6e6c138ef9873/children" } } }, @@ -2979,11 +2841,135 @@ "properties": { "type": { "type": "string", - "example": "country_state" + "example": "category" }, "id": { "type": "string", - "example": "34d955a0df5f7af9c9b4e4dccb3c3564" + "example": "268184c12df027f536154d099d497b31" + } + } + } + } + }, + "type": "object" + }, + "media": { + "description": "Category image or banner", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/category/3adbdb3ac060038aa0e6e6c138ef9873/media" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "media" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "62933a2951ef01f4eafd9bdf4d3cd2f0" + } + } + } + }, + "type": "object" + }, + "tags": { + "description": "Tags for organizing and filtering categories", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/category/3adbdb3ac060038aa0e6e6c138ef9873/tags" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "tag" + }, + "id": { + "type": "string", + "example": "d57ac45256849d9b13e2422d91580fb9" + } + } + } + } + }, + "type": "object" + }, + "cmsPage": { + "description": "CMS page layout for the category", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/category/3adbdb3ac060038aa0e6e6c138ef9873/cmsPage" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "cms_page" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "7b1460918b1abb93311108f3dc021c9b" + } + } + } + }, + "type": "object" + }, + "seoUrls": { + "description": "SEO-friendly URLs for the category across different sales channels", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/category/3adbdb3ac060038aa0e6e6c138ef9873/seoUrls" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "seo_url" + }, + "id": { + "type": "string", + "example": "5321b5a71127b8b98cdd4b068ad56c4c" } } } @@ -2999,116 +2985,154 @@ } ] }, - "Country": { + "Category": { "description": "Added since version: 6.0.0.0", "required": [ + "apiAlias", + "breadcrumb", + "children", + "childCount", + "translated", + "type", "id", - "name", - "addressFormat" + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" - }, - "iso": { - "type": "string" + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "position": { - "type": "integer", - "format": "int64" + "parentId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "active": { - "type": "boolean" + "parentVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "shippingAvailable": { - "type": "boolean" + "afterCategoryId": { + "description": "Unique identity of the category under which the new category is to be created.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "iso3": { - "type": "string" + "afterCategoryVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "displayStateInRegistration": { - "type": "boolean" + "mediaId": { + "description": "Unique identity of media added to identify category.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "forceStateInRegistration": { + "displayNestedProducts": { + "description": "Shows nested categories on a product category page.", "type": "boolean" }, - "checkVatIdPattern": { - "type": "boolean" + "breadcrumb": { + "type": "array", + "items": { + "type": "string", + "additionalProperties": false + }, + "readOnly": true }, - "vatIdRequired": { - "type": "boolean" + "level": { + "description": "An integer value that denotes the level of nesting of a particular category located in an hierarchical category tree.", + "type": "integer", + "format": "int64", + "readOnly": true }, - "vatIdPattern": { - "type": "string" + "path": { + "description": "A relative URL to the category.", + "type": "string", + "readOnly": true }, - "customFields": { - "type": "object" + "childCount": { + "type": "number", + "format": "int64", + "readOnly": true }, - "customerTax": { - "required": [ - "enabled", - "currencyId", - "amount" - ], - "properties": { - "enabled": { - "type": "boolean" - }, - "currencyId": { - "type": "string" - }, - "amount": { - "type": "number", - "format": "float" - } - }, - "type": "object" + "type": { + "description": "Type of categories like `page`, `folder`, `link`.", + "type": "string", + "enum": [ + "page", + "link" + ] }, - "companyTax": { - "required": [ - "enabled", - "currencyId", - "amount" - ], - "properties": { - "enabled": { - "type": "boolean" - }, - "currencyId": { - "type": "string" - }, - "amount": { - "type": "number", - "format": "float" - } - }, - "type": "object" + "productAssignmentType": { + "description": "Type of product assignment: Dynamic product group as or `product_stream` or Manual assignment as `product`.", + "type": "string" }, - "postalCodeRequired": { + "visible": { + "description": "Displays categories on category page when true.", "type": "boolean" }, - "checkPostalCodePattern": { + "active": { + "description": "When boolean value is `true`, the category is listed for selection.", "type": "boolean" }, - "checkAdvancedPostalCodePattern": { + "cmsPageIdSwitched": { + "description": "Runtime field, cannot be used as part of the criteria.", "type": "boolean" }, - "advancedPostalCodePattern": { + "visibleChildCount": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "integer", + "format": "int64" + }, + "name": { "type": "string" }, - "addressFormat": { + "customFields": { "type": "object" }, - "defaultPostalCodePattern": { + "linkType": { "type": "string" }, - "isEu": { + "internalLink": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "externalLink": { + "type": "string" + }, + "linkNewTab": { "type": "boolean" }, + "description": { + "type": "string" + }, + "metaTitle": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "keywords": { + "type": "string" + }, + "cmsPageId": { + "description": "Unique identity of CMS page.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cmsPageVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customEntityTypeId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "seoUrl": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time", @@ -3120,323 +3144,231 @@ "readOnly": true }, "translated": { - "type": "object" + "type": "object", + "additionalProperties": true, + "properties": { + "breadcrumb": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "breadcrumb" + ] }, - "states": { + "parent": { + "$ref": "#/components/schemas/Category", + "description": "Unique identity of category." + }, + "children": { + "description": "Child categories within this category for hierarchical navigation", "type": "array", "items": { - "$ref": "#/components/schemas/CountryState" + "$ref": "#/components/schemas/Category" + } + }, + "media": { + "$ref": "#/components/schemas/Media", + "description": "Category image or banner" + }, + "tags": { + "description": "Tags for organizing and filtering categories", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "cmsPage": { + "$ref": "#/components/schemas/CmsPage", + "description": "CMS page layout for the category" + }, + "seoUrls": { + "description": "SEO-friendly URLs for the category across different sales channels", + "type": "array", + "items": { + "$ref": "#/components/schemas/SeoUrl" } + }, + "apiAlias": { + "type": "string", + "enum": [ + "category" + ] } }, "type": "object" }, - "CountryStateJsonApi": { - "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" - }, - { - "required": [ - "id", - "countryId", - "shortCode", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "shortCode": { - "type": "string" - }, - "name": { - "type": "string" - }, - "position": { - "type": "integer", - "format": "int64" - }, - "active": { - "type": "boolean" - }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" - } - }, - "type": "object" - } - ] - }, - "CountryState": { + "CmsBlock": { "description": "Added since version: 6.0.0.0", "required": [ + "apiAlias", + "slots", "id", - "countryId", - "shortCode", - "name" + "position", + "type", + "sectionId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "countryId": { + "versionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "shortCode": { + "cmsSectionVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "position": { + "description": "Order of the block indicated by number like 0, 1, 2,...", + "type": "integer", + "format": "int64" + }, + "type": { + "description": "Type of block can be 'image`, `text`, 'product-listing`, `image-two-column`, etc.", "type": "string" }, "name": { + "description": "Unique name of the CMS Block.", "type": "string" }, - "position": { - "type": "integer", - "format": "int64" + "sectionPosition": { + "description": "Position of the section. It can either be `main` or `sidebar`.", + "type": "string" }, - "active": { - "type": "boolean" + "marginTop": { + "description": "Defines the margin area on the top of an element.", + "type": "string" }, - "customFields": { - "type": "object" + "marginBottom": { + "description": "Defines for the margin area on the bottom of an element.", + "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "marginLeft": { + "description": "Defines for the margin area on the left of an element.", + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "marginRight": { + "description": "Defines the margin area on the right of an element.", + "type": "string" }, - "translated": { - "type": "object" - } - }, - "type": "object" - }, - "CurrencyJsonApi": { - "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" + "backgroundColor": { + "description": "Defines the background color of an element.", + "type": "string" }, - { - "required": [ - "id", - "factor", - "symbol", - "isoCode", - "itemRounding", - "totalRounding", - "shortName", - "name" - ], + "backgroundMediaId": { + "description": "Unique identity of background media.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "backgroundMediaMode": { + "description": "Background media mode accept values `cover`, `auto`, `contain`.", + "type": "string" + }, + "cssClass": { + "description": "One or more CSS classes added and separated by spaces.", + "type": "string" + }, + "visibility": { "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "factor": { - "type": "number", - "format": "float" - }, - "symbol": { - "type": "string" - }, - "isoCode": { - "type": "string" - }, - "shortName": { - "type": "string" - }, - "name": { - "type": "string" - }, - "position": { - "type": "integer", - "format": "int64" - }, - "isSystemDefault": { - "description": "Runtime field, cannot be used as part of the criteria.", + "mobile": { "type": "boolean" }, - "taxFreeFrom": { - "type": "number", - "format": "float" - }, - "customFields": { - "type": "object" - }, - "itemRounding": { - "required": [ - "decimals", - "interval", - "roundForNet" - ], - "properties": { - "decimals": { - "type": "integer", - "format": "int64" - }, - "interval": { - "type": "number", - "format": "float" - }, - "roundForNet": { - "type": "boolean" - } - }, - "type": "object" - }, - "totalRounding": { - "required": [ - "decimals", - "interval", - "roundForNet" - ], - "properties": { - "decimals": { - "type": "integer", - "format": "int64" - }, - "interval": { - "type": "number", - "format": "float" - }, - "roundForNet": { - "type": "boolean" - } - }, - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "desktop": { + "type": "boolean" }, - "translated": { - "type": "object" + "tablet": { + "type": "boolean" } }, "type": "object" + }, + "sectionId": { + "description": "Unique identity of section.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "backgroundMedia": { + "$ref": "#/components/schemas/Media" + }, + "slots": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CmsSlot" + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "cms_block" + ] } - ] + }, + "type": "object" }, - "Currency": { + "CmsPage": { "description": "Added since version: 6.0.0.0", "required": [ + "apiAlias", + "sections", "id", - "factor", - "symbol", - "isoCode", - "itemRounding", - "totalRounding", - "shortName", - "name" + "type" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "factor": { - "type": "number", - "format": "float" + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "symbol": { + "name": { "type": "string" }, - "isoCode": { + "type": { + "description": "CMS page types can be `landingpage`, `page`, `product_list`, `product_detail`.", "type": "string" }, - "shortName": { + "entity": { + "description": "This field will be implemented in the future.", "type": "string" }, - "name": { + "cssClass": { + "description": "One or more CSS classes added and separated by spaces.", "type": "string" }, - "position": { - "type": "integer", - "format": "int64" - }, - "isSystemDefault": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean" - }, - "taxFreeFrom": { - "type": "number", - "format": "float" - }, - "customFields": { - "type": "object" - }, - "itemRounding": { - "required": [ - "decimals", - "interval", - "roundForNet" - ], + "config": { "properties": { - "decimals": { - "type": "integer", - "format": "int64" - }, - "interval": { - "type": "number", - "format": "float" - }, - "roundForNet": { - "type": "boolean" + "backgroundColor": { + "type": "string" } }, "type": "object" }, - "totalRounding": { - "required": [ - "decimals", - "interval", - "roundForNet" - ], - "properties": { - "decimals": { - "type": "integer", - "format": "int64" - }, - "interval": { - "type": "number", - "format": "float" - }, - "roundForNet": { - "type": "boolean" - } - }, + "previewMediaId": { + "description": "Unique identity of media to be previewed.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customFields": { "type": "object" }, "createdAt": { @@ -3451,138 +3383,115 @@ }, "translated": { "type": "object" + }, + "sections": { + "description": "Content sections within the CMS page (layout blocks containing slots)", + "type": "array", + "items": { + "$ref": "#/components/schemas/CmsSection" + } + }, + "previewMedia": { + "$ref": "#/components/schemas/Media", + "description": "Preview image for the CMS page in admin panel and page selection" + }, + "landingPages": { + "description": "Landing pages using this CMS layout", + "type": "array", + "items": { + "$ref": "#/components/schemas/LandingPage" + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "cms_page" + ] } }, "type": "object" }, - "CurrencyCountryRounding": { - "description": "Added since version: 6.4.0.0", - "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" - }, - "CustomEntity": { - "description": "Added since version: 6.4.9.0", + "CmsSection": { + "description": "Added since version: 6.0.0.0", + "required": [ + "apiAlias", + "blocks", + "id", + "position", + "type", + "pageId" + ], "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" - }, - "CustomField": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { + "cmsPageVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "position": { + "description": "Position of occurrence of each section denoted by numerical values 0, 1, 2...", + "type": "integer", + "format": "int64" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "CustomFieldSet": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { + "type": { + "description": "Types of sections can be `sidebar` or `fullwidth`.", "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "default", + "sidebar" + ] }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "name": { + "description": "Name of the CMS section defined.", + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "CustomFieldSetRelation": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "sizingMode": { + "description": "Sizing mode can be `boxed` or `full_width`.", + "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "mobileBehavior": { + "description": "Hides the sidebar on mobile viewports. It can hold values such as 'mobile', 'wrap', any other string or be unset.", + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "CustomPrice": { - "required": [ - "id", - "productId", - "price" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "backgroundColor": { + "description": "Background color of CMS page.", + "type": "string" }, - "productId": { + "backgroundMediaId": { + "description": "Unique identity of CMS section's background media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "productVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "backgroundMediaMode": { + "description": "Background media mode can be `cover`, `auto` or `contain`.", + "type": "string" }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "cssClass": { + "description": "One or more CSS classes added and separated by spaces.", + "type": "string" }, - "customerGroupId": { + "pageId": { + "description": "Unique identity of page where CMS section is defined.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "price": { + "visibility": { + "properties": { + "mobile": { + "type": "boolean" + }, + "desktop": { + "type": "boolean" + }, + "tablet": { + "type": "boolean" + } + }, + "type": "object" + }, + "customFields": { "type": "object" }, "createdAt": { @@ -3595,424 +3504,294 @@ "format": "date-time", "readOnly": true }, - "customer": { - "$ref": "#/components/schemas/Customer" + "page": { + "$ref": "#/components/schemas/CmsPage" }, - "customerGroup": { - "$ref": "#/components/schemas/CustomerGroup" + "backgroundMedia": { + "$ref": "#/components/schemas/Media" }, - "product": { - "$ref": "#/components/schemas/Product" + "blocks": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CmsBlock" + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "cms_section" + ] } }, "type": "object" }, - "Customer": { + "CmsSlot": { "description": "Added since version: 6.0.0.0", "required": [ "apiAlias", - "activeBillingAddress", - "activeShippingAddress", "id", - "groupId", - "salesChannelId", - "languageId", - "defaultBillingAddressId", - "defaultShippingAddressId", - "customerNumber", - "firstName", - "lastName", - "email" + "type", + "slot", + "blockId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "groupId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salesChannelId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "languageId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "lastPaymentMethodId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "defaultBillingAddressId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "defaultShippingAddressId": { + "versionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customerNumber": { - "type": "string" - }, - "salutationId": { + "cmsBlockVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" + "fieldConfig": { + "type": "object" }, - "email": { + "type": { + "description": "It indicates the types of content that can be defined within the slot which includes `image`, `text`, `form`, `product-listing`, `category-navigation`, `product-box`, `buy-box`, `sidebar-filter`, etc.", "type": "string" }, - "title": { + "slot": { + "description": "Key-value pair to configure which element to be shown in which slot.", "type": "string" }, - "affiliateCode": { - "type": "string" + "locked": { + "type": "boolean" }, - "campaignCode": { - "type": "string" + "config": { + "type": "object" }, - "active": { - "type": "boolean" + "customFields": { + "type": "object" }, - "doubleOptInRegistration": { - "type": "boolean" + "data": { + "type": "object", + "readOnly": true }, - "doubleOptInEmailSentDate": { + "blockId": { + "description": "Unique identity of CMS block where slot is defined.", "type": "string", - "format": "date-time" + "pattern": "^[0-9a-f]{32}$" }, - "doubleOptInConfirmDate": { + "createdAt": { "type": "string", - "format": "date-time" + "format": "date-time", + "readOnly": true }, - "hash": { - "type": "string" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "guest": { - "type": "boolean" - }, - "firstLogin": { - "type": "string", - "format": "date-time" - }, - "lastLogin": { - "type": "string", - "format": "date-time" - }, - "birthday": { - "type": "string" - }, - "lastOrderDate": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "orderCount": { - "type": "integer", - "format": "int64", - "readOnly": true - }, - "orderTotalAmount": { - "type": "number", - "format": "float", - "readOnly": true - }, - "reviewCount": { - "type": "integer", - "format": "int64", - "readOnly": true - }, - "customFields": { - "type": "object" - }, - "tagIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "createdById": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "updatedById": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "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" - } - }, + "translated": { "type": "object" }, - "group": { - "$ref": "#/components/schemas/CustomerGroup" - }, - "language": { - "$ref": "#/components/schemas/Language" - }, - "lastPaymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" - }, - "defaultBillingAddress": { - "$ref": "#/components/schemas/CustomerAddress" - }, - "activeBillingAddress": { - "$ref": "#/components/schemas/CustomerAddress" - }, - "defaultShippingAddress": { - "$ref": "#/components/schemas/CustomerAddress" - }, - "activeShippingAddress": { - "$ref": "#/components/schemas/CustomerAddress" - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" - }, - "addresses": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomerAddress" - } - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } + "block": { + "$ref": "#/components/schemas/CmsBlock" }, "apiAlias": { "type": "string", "enum": [ - "customer" + "cms_slot" ] } }, - "type": "object", - "oneOf": [ + "type": "object" + }, + "CountryJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ { - "required": [ - "accountType" - ], - "properties": { - "accountType": { - "type": "string", - "enum": [ - "private" - ] - } - } + "$ref": "#/components/schemas/resource" }, { "required": [ - "accountType", - "vatIds", - "company" + "id", + "name", + "addressFormat" ], "properties": { - "accountType": { + "id": { "type": "string", - "enum": [ - "business" - ] + "pattern": "^[0-9a-f]{32}$" }, - "vatIds": { - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1 + "name": { + "type": "string" }, - "company": { + "iso": { + "description": "Internationally recognized two-letter country codes. For example, DE, IN, NO, etc.", "type": "string" - } - } - } - ] - }, - "CustomerAddress": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "customerId", - "countryId", - "firstName", - "lastName", - "city", - "street" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryStateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salutationId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "zipcode": { - "type": "string" - }, - "city": { - "type": "string" - }, - "company": { - "type": "string" - }, - "street": { - "type": "string" - }, - "department": { - "type": "string" - }, - "title": { - "type": "string" - }, - "phoneNumber": { - "type": "string" - }, - "additionalAddressLine1": { - "type": "string" - }, - "additionalAddressLine2": { - "type": "string" - }, - "hash": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string" - }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "extensions": { - "properties": { - "organizationCustomerAddresses": { + }, + "position": { + "description": "Numerical value that indicates the order in which the defined countries must be displayed in the frontend.", + "type": "integer", + "format": "int64" + }, + "active": { + "description": "When boolean value is `true`, the country is available for selection in the storefront.", + "type": "boolean" + }, + "shippingAvailable": { + "description": "The shipping availability for a country is enabled when boolean value is `true`.", + "type": "boolean" + }, + "iso3": { + "description": "Internationally recognized three-letter country codes. For example, DEU, IND, NOR, etc.", + "type": "string" + }, + "displayStateInRegistration": { + "description": "The country's state is displayed in the address when boolean value is `true`.", + "type": "boolean" + }, + "forceStateInRegistration": { + "description": "State details in the address are force included when boolean value is `true`.", + "type": "boolean" + }, + "checkVatIdPattern": { + "description": "Verify if VAT ID is valid or not.", + "type": "boolean" + }, + "vatIdRequired": { + "description": "Set to true, if VAT ID is to be made mandatory.", + "type": "boolean" + }, + "vatIdPattern": { + "description": "Unique VAT ID with country code and numbers, for example - GB999 9999", + "type": "string" + }, + "customFields": { + "type": "object" + }, + "customerTax": { + "required": [ + "enabled", + "currencyId", + "amount" + ], "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/organizationCustomerAddresses" - } - } + "enabled": { + "type": "boolean" }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "b2b_components_organization_customer_address" - }, - "id": { - "type": "string", - "example": "ada6a19a929bea8dbec29edb3d68df58" + "currencyId": { + "type": "string" + }, + "amount": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "companyTax": { + "required": [ + "enabled", + "currencyId", + "amount" + ], + "properties": { + "enabled": { + "type": "boolean" + }, + "currencyId": { + "type": "string" + }, + "amount": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "postalCodeRequired": { + "description": "The postal code is made mandatory specification in the address, when boolean value is `true`.", + "type": "boolean" + }, + "checkPostalCodePattern": { + "description": "Verify for valid postal code pattern.", + "type": "boolean" + }, + "checkAdvancedPostalCodePattern": { + "description": "Verify for advanced postal code pattern.", + "type": "boolean" + }, + "advancedPostalCodePattern": { + "description": "Wildcard formatted zip codes to allow easy searching in the frontend based on initial constants, for example - 24****, 1856**.", + "type": "string" + }, + "addressFormat": { + "type": "object" + }, + "defaultPostalCodePattern": { + "description": "Default pattern of postal or zip code.", + "type": "string" + }, + "isEu": { + "type": "boolean" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + }, + "relationships": { + "properties": { + "states": { + "description": "States/provinces/regions within the country", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/country/59716c97497eb9694541f7c3d37b1a4d/states" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "country_state" + }, + "id": { + "type": "string", + "example": "34d955a0df5f7af9c9b4e4dccb3c3564" + } + } } } - } + }, + "type": "object" } }, "type": "object" } }, "type": "object" - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "$ref": "#/components/schemas/CountryState" - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" } - }, - "type": "object" + ] }, - "CustomerGroup": { + "Country": { "description": "Added since version: 6.0.0.0", "required": [ - "translated", "id", - "name" + "name", + "addressFormat" ], "properties": { "id": { @@ -4022,152 +3801,115 @@ "name": { "type": "string" }, - "displayGross": { - "type": "boolean" + "iso": { + "description": "Internationally recognized two-letter country codes. For example, DE, IN, NO, etc.", + "type": "string" }, - "customFields": { - "type": "object" + "position": { + "description": "Numerical value that indicates the order in which the defined countries must be displayed in the frontend.", + "type": "integer", + "format": "int64" }, - "registrationActive": { + "active": { + "description": "When boolean value is `true`, the country is available for selection in the storefront.", "type": "boolean" }, - "registrationTitle": { - "type": "string" + "shippingAvailable": { + "description": "The shipping availability for a country is enabled when boolean value is `true`.", + "type": "boolean" }, - "registrationIntroduction": { + "iso3": { + "description": "Internationally recognized three-letter country codes. For example, DEU, IND, NOR, etc.", "type": "string" }, - "registrationOnlyCompanyRegistration": { + "displayStateInRegistration": { + "description": "The country's state is displayed in the address when boolean value is `true`.", "type": "boolean" }, - "registrationSeoMetaDescription": { - "type": "string" + "forceStateInRegistration": { + "description": "State details in the address are force included when boolean value is `true`.", + "type": "boolean" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "checkVatIdPattern": { + "description": "Verify if VAT ID is valid or not.", + "type": "boolean" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "vatIdRequired": { + "description": "Set to true, if VAT ID is to be made mandatory.", + "type": "boolean" }, - "translated": { - "type": "object", + "vatIdPattern": { + "description": "Unique VAT ID with country code and numbers, for example - GB999 9999", + "type": "string" + }, + "customFields": { + "type": "object" + }, + "customerTax": { + "required": [ + "enabled", + "currencyId", + "amount" + ], "properties": { - "name": { - "type": "string" - }, - "registrationIntroduction": { - "type": "string" + "enabled": { + "type": "boolean" }, - "registrationSeoMetaDescription": { + "currencyId": { "type": "string" }, - "registrationTitle": { - "type": "string" + "amount": { + "type": "number", + "format": "float" } - } - } - }, - "type": "object" - }, - "CustomerRecovery": { - "description": "Added since version: 6.1.0.0", - "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" - }, - "CustomerSpecificFeatures": { - "required": [ - "customerId", - "features" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "features": { + }, "type": "object" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "companyTax": { + "required": [ + "enabled", + "currencyId", + "amount" + ], + "properties": { + "enabled": { + "type": "boolean" + }, + "currencyId": { + "type": "string" + }, + "amount": { + "type": "number", + "format": "float" + } + }, + "type": "object" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "postalCodeRequired": { + "description": "The postal code is made mandatory specification in the address, when boolean value is `true`.", + "type": "boolean" }, - "customer": { - "$ref": "#/components/schemas/Customer" - } - }, - "type": "object" - }, - "CustomerTag": { - "description": "Added since version: 6.0.0.0", - "required": [ - "customerId", - "tagId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "checkPostalCodePattern": { + "description": "Verify for valid postal code pattern.", + "type": "boolean" }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "checkAdvancedPostalCodePattern": { + "description": "Verify for advanced postal code pattern.", + "type": "boolean" }, - "tagId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "advancedPostalCodePattern": { + "description": "Wildcard formatted zip codes to allow easy searching in the frontend based on initial constants, for example - 24****, 1856**.", + "type": "string" }, - "tag": { - "$ref": "#/components/schemas/Tag" - } - }, - "type": "object" - }, - "CustomerWishlist": { - "description": "Added since version: 6.3.4.0", - "required": [ - "id", - "customerId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "addressFormat": { + "type": "object" }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "defaultPostalCodePattern": { + "description": "Default pattern of postal or zip code.", + "type": "string" }, - "customFields": { - "type": "object" + "isEu": { + "type": "boolean" }, "createdAt": { "type": "string", @@ -4179,74 +3921,112 @@ "format": "date-time", "readOnly": true }, - "products": { + "translated": { + "type": "object" + }, + "states": { + "description": "States/provinces/regions within the country", "type": "array", "items": { - "$ref": "#/components/schemas/CustomerWishlistProduct" + "$ref": "#/components/schemas/CountryState" } } }, "type": "object" }, - "CustomerWishlistProduct": { - "description": "Added since version: 6.3.4.0", - "required": [ - "id", - "productId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "CountryStateJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + { + "required": [ + "id", + "countryId", + "shortCode", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryId": { + "description": "Unique identity of the country.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shortCode": { + "description": "An abbreviation for the country's state.", + "type": "string" + }, + "name": { + "type": "string" + }, + "position": { + "description": "Numerical value that indicates the order in which the defined states must be displayed in the frontend.", + "type": "integer", + "format": "int64" + }, + "active": { + "description": "When boolean value is `true`, the country's state is available for selection in the storefront.", + "type": "boolean" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" } - }, - "type": "object" + ] }, - "DeliveryTime": { + "CountryState": { "description": "Added since version: 6.0.0.0", "required": [ "id", - "name", - "min", - "max", - "unit" + "countryId", + "shortCode", + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { + "countryId": { + "description": "Unique identity of the country.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shortCode": { + "description": "An abbreviation for the country's state.", "type": "string" }, - "min": { - "type": "integer", - "format": "int64" + "name": { + "type": "string" }, - "max": { + "position": { + "description": "Numerical value that indicates the order in which the defined states must be displayed in the frontend.", "type": "integer", "format": "int64" }, - "unit": { - "type": "string" + "active": { + "description": "When boolean value is `true`, the country's state is available for selection in the storefront.", + "type": "boolean" }, "customFields": { "type": "object" @@ -4267,116 +4047,134 @@ }, "type": "object" }, - "Document": { + "CurrencyJsonApi": { "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "documentTypeId", - "orderId", - "config", - "deepLinkCode" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "documentTypeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "referencedDocumentId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "allOf": [ + { + "$ref": "#/components/schemas/resource" }, - "orderId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "documentMediaFileId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "documentA11yMediaFileId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "config": { - "type": "object", + { + "required": [ + "id", + "factor", + "symbol", + "isoCode", + "itemRounding", + "totalRounding", + "shortName", + "name" + ], "properties": { - "name": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "factor": { + "description": "Currency exchange rate.", + "type": "number", + "format": "float" + }, + "symbol": { + "description": "A currency symbol is a graphical representation used as shorthand for a currency's name, for example US Dollar - $", "type": "string" }, - "title": { + "isoCode": { + "description": "Standard international three digit code to represent currency. For example, USD.", "type": "string" + }, + "shortName": { + "type": "string" + }, + "name": { + "type": "string" + }, + "position": { + "description": "The order of the tabs for multiple currencies defined.", + "type": "integer", + "format": "int64" + }, + "isSystemDefault": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "taxFreeFrom": { + "description": "The value from which the tax must be exempted.", + "type": "number", + "format": "float" + }, + "customFields": { + "type": "object" + }, + "itemRounding": { + "required": [ + "decimals", + "interval", + "roundForNet" + ], + "properties": { + "decimals": { + "type": "integer", + "format": "int64" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" + } + }, + "type": "object" + }, + "totalRounding": { + "required": [ + "decimals", + "interval", + "roundForNet" + ], + "properties": { + "decimals": { + "type": "integer", + "format": "int64" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" + } + }, + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" } }, - "required": [ - "name", - "title" - ] - }, - "sent": { - "type": "boolean" - }, - "static": { - "type": "boolean" - }, - "deepLinkCode": { - "type": "string" - }, - "documentNumber": { - "type": "string" - }, - "customFields": { "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "documentType": { - "$ref": "#/components/schemas/DocumentType" - }, - "order": { - "$ref": "#/components/schemas/Order" - }, - "referencedDocument": { - "$ref": "#/components/schemas/Document" - }, - "dependentDocuments": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Document" - } - }, - "documentMediaFile": { - "$ref": "#/components/schemas/Media" - }, - "documentA11yMediaFile": { - "$ref": "#/components/schemas/Media" - }, - "fileType": { - "type": "string" } - }, - "type": "object" + ] }, - "DocumentBaseConfig": { + "Currency": { "description": "Added since version: 6.0.0.0", "required": [ "id", - "documentTypeId", + "factor", + "symbol", + "isoCode", + "itemRounding", + "totalRounding", + "shortName", "name" ], "properties": { @@ -4384,30 +4182,82 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "documentTypeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "factor": { + "description": "Currency exchange rate.", + "type": "number", + "format": "float" }, - "logoId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "symbol": { + "description": "A currency symbol is a graphical representation used as shorthand for a currency's name, for example US Dollar - $", + "type": "string" }, - "name": { + "isoCode": { + "description": "Standard international three digit code to represent currency. For example, USD.", "type": "string" }, - "filenamePrefix": { + "shortName": { "type": "string" }, - "filenameSuffix": { + "name": { "type": "string" }, - "global": { + "position": { + "description": "The order of the tabs for multiple currencies defined.", + "type": "integer", + "format": "int64" + }, + "isSystemDefault": { + "description": "Runtime field, cannot be used as part of the criteria.", "type": "boolean" }, - "documentNumber": { - "type": "string" + "taxFreeFrom": { + "description": "The value from which the tax must be exempted.", + "type": "number", + "format": "float" }, - "config": { + "customFields": { + "type": "object" + }, + "itemRounding": { + "required": [ + "decimals", + "interval", + "roundForNet" + ], + "properties": { + "decimals": { + "type": "integer", + "format": "int64" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" + } + }, + "type": "object" + }, + "totalRounding": { + "required": [ + "decimals", + "interval", + "roundForNet" + ], + "properties": { + "decimals": { + "type": "integer", + "format": "int64" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" + } + }, "type": "object" }, "createdAt": { @@ -4415,43 +4265,24 @@ "format": "date-time", "readOnly": true }, - "customFields": { - "type": "object" - }, "updatedAt": { "type": "string", "format": "date-time", "readOnly": true }, - "logo": { - "$ref": "#/components/schemas/Media" + "translated": { + "type": "object" } }, "type": "object" }, - "DocumentBaseConfigSalesChannel": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "documentBaseConfigId" - ], + "CurrencyCountryRounding": { + "description": "Added since version: 6.4.0.0", "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "documentBaseConfigId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salesChannelId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "documentTypeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, "createdAt": { "type": "string", "format": "date-time", @@ -4465,24 +4296,13 @@ }, "type": "object" }, - "DocumentType": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "technicalName", - "name" - ], + "CustomEntity": { + "description": "Added since version: 6.4.9.0", "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" - }, - "technicalName": { - "type": "string" - }, "createdAt": { "type": "string", "format": "date-time", @@ -4492,18 +4312,12 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "customFields": { - "type": "object" - }, - "translated": { - "type": "object" } }, "type": "object" }, - "Flow": { - "description": "Added since version: 6.4.6.0", + "CustomField": { + "description": "Added since version: 6.0.0.0", "properties": { "id": { "type": "string", @@ -4522,8 +4336,8 @@ }, "type": "object" }, - "FlowSequence": { - "description": "Added since version: 6.4.6.0", + "CustomFieldSet": { + "description": "Added since version: 6.0.0.0", "properties": { "id": { "type": "string", @@ -4542,8 +4356,8 @@ }, "type": "object" }, - "FlowTemplate": { - "description": "Added since version: 6.4.18.0", + "CustomFieldSetRelation": { + "description": "Added since version: 6.0.0.0", "properties": { "id": { "type": "string", @@ -4562,33 +4376,36 @@ }, "type": "object" }, - "ImportExportFile": { - "description": "Added since version: 6.0.0.0", + "CustomPrice": { + "required": [ + "id", + "productId", + "price" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "productId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { + "productVersionId": { "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "ImportExportLog": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { + "pattern": "^[0-9a-f]{32}$" + }, + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customerGroupId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "price": { + "type": "object" + }, "createdAt": { "type": "string", "format": "date-time", @@ -4598,37 +4415,184 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "customer": { + "$ref": "#/components/schemas/Customer" + }, + "customerGroup": { + "$ref": "#/components/schemas/CustomerGroup" + }, + "product": { + "$ref": "#/components/schemas/Product" } }, "type": "object" }, - "ImportExportProfile": { + "Customer": { "description": "Added since version: 6.0.0.0", + "required": [ + "apiAlias", + "activeBillingAddress", + "activeShippingAddress", + "id", + "groupId", + "salesChannelId", + "languageId", + "defaultBillingAddressId", + "defaultShippingAddressId", + "customerNumber", + "firstName", + "lastName", + "email" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "groupId": { + "description": "Unique identity of customer group.", "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { + "salesChannelId": { + "description": "Unique identity of sales channel.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "languageId": { + "description": "Unique identity of language.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "lastPaymentMethodId": { + "description": "Unique identity of previous payment method.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "defaultBillingAddressId": { + "description": "Unique identity of default billing address.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "defaultShippingAddressId": { + "description": "Unique identity of default shipping address.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customerNumber": { + "description": "Unique number assigned to identity a customer.", + "type": "string" + }, + "salutationId": { + "description": "Unique identity of salutation.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "description": "First name of the customer.", + "type": "string" + }, + "lastName": { + "description": "Last name of the customer.", + "type": "string" + }, + "email": { + "description": "Email ID of the customer.", + "type": "string" + }, + "title": { + "description": "Titles or honorifics like Mr, Mrs, etc.", + "type": "string" + }, + "affiliateCode": { + "description": "An affiliate code is an identification option with which website operators can mark outgoing links.", + "type": "string" + }, + "campaignCode": { + "description": "A campaign code is the globally unique identifier for a campaign.", + "type": "string" + }, + "active": { + "description": "To keep the status of the customer active, the boolean value is set to `true`.", + "type": "boolean" + }, + "doubleOptInRegistration": { + "description": "Set to `true` to allow user subscriptions to an email marketing list.", + "type": "boolean" + }, + "doubleOptInEmailSentDate": { + "description": "Date and time when the double opt-in email was sent.", + "type": "string", + "format": "date-time" + }, + "doubleOptInConfirmDate": { + "description": "Date and time when the double opt-in email was confirmed.", + "type": "string", + "format": "date-time" + }, + "hash": { + "description": "Password hash for customer recovery.", + "type": "string" + }, + "guest": { + "description": "Boolean value is `true` if it is to be a guest account.", + "type": "boolean" + }, + "firstLogin": { + "description": "To capture date and time of customer's first login.", + "type": "string", + "format": "date-time" + }, + "lastLogin": { + "description": "To capture date and time of customer's last login.", + "type": "string", + "format": "date-time" + }, + "birthday": { + "description": "To capture customer's birthday details.", + "type": "string" + }, + "lastOrderDate": { + "description": "Captures last order date.", "type": "string", "format": "date-time", "readOnly": true }, - "translated": { + "orderCount": { + "description": "Captures the number of orders placed.", + "type": "integer", + "format": "int64", + "readOnly": true + }, + "orderTotalAmount": { + "description": "Sum of total amount to be paid.", + "type": "number", + "format": "float", + "readOnly": true + }, + "reviewCount": { + "description": "Number of reviews the customer has given.", + "type": "integer", + "format": "int64", + "readOnly": true + }, + "customFields": { "type": "object" - } - }, - "type": "object" - }, - "Integration": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { + }, + "tagIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "createdById": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "updatedById": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -4641,62 +4605,235 @@ "type": "string", "format": "date-time", "readOnly": true - } - }, - "type": "object" - }, - "LandingPageJsonApi": { - "description": "Added since version: 6.4.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" }, - { - "required": [ - "id", - "name", - "url" - ], + "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" + } + }, + "type": "object" + }, + "group": { + "$ref": "#/components/schemas/CustomerGroup", + "description": "Customer group determining pricing and permissions" + }, + "language": { + "$ref": "#/components/schemas/Language", + "description": "Preferred language for customer communication" + }, + "lastPaymentMethod": { + "$ref": "#/components/schemas/PaymentMethod", + "description": "Last used payment method by the customer" + }, + "defaultBillingAddress": { + "$ref": "#/components/schemas/CustomerAddress", + "description": "Default billing address for the customer" + }, + "activeBillingAddress": { + "$ref": "#/components/schemas/CustomerAddress", + "description": "Currently active billing address in the session" + }, + "defaultShippingAddress": { + "$ref": "#/components/schemas/CustomerAddress", + "description": "Default shipping address for the customer" + }, + "activeShippingAddress": { + "$ref": "#/components/schemas/CustomerAddress", + "description": "Currently active shipping address in the session" + }, + "salutation": { + "$ref": "#/components/schemas/Salutation", + "description": "Customer salutation (e.g., Mr., Mrs., Ms.)" + }, + "addresses": { + "description": "All addresses saved for the customer", + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomerAddress" + } + }, + "tags": { + "description": "Tags assigned to the customer for organization and segmentation", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "customer" + ] + } + }, + "type": "object", + "oneOf": [ + { + "required": [ + "accountType" + ], + "properties": { + "accountType": { + "type": "string", + "enum": [ + "private" + ] + } + } + }, + { + "required": [ + "accountType", + "vatIds", + "company" + ], + "properties": { + "accountType": { + "type": "string", + "enum": [ + "business" + ] + }, + "vatIds": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "company": { + "type": "string" + } + } + } + ] + }, + "CustomerAddressJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" + }, + { + "required": [ + "id", + "customerId", + "countryId", + "firstName", + "lastName", + "city", + "street" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { + "customerId": { + "description": "Unique identity of customer.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "active": { - "type": "boolean" + "countryId": { + "description": "Unique identity of country.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "name": { + "countryStateId": { + "description": "Unique identity of country's state.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salutationId": { + "description": "Unique identity of salutation.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "description": "First name of the customer.", "type": "string" }, - "customFields": { - "type": "object" + "lastName": { + "description": "Last name of the customer.", + "type": "string" }, - "slotConfig": { - "type": "object" + "zipcode": { + "description": "Postal or zip code of customer's address.", + "type": "string" }, - "metaTitle": { + "city": { + "description": "Name of customer's city.", "type": "string" }, - "metaDescription": { + "company": { + "description": "Name of customer's company.", "type": "string" }, - "keywords": { + "street": { + "description": "Name of customer's street.", "type": "string" }, - "url": { + "department": { + "description": "Name of customer's department.", "type": "string" }, - "cmsPageId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "title": { + "description": "Titles given to customer like Dr. , Prof., etc", + "type": "string" }, - "cmsPageVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "phoneNumber": { + "description": "Customer's phone number.", + "type": "string" + }, + "additionalAddressLine1": { + "description": "Additional customer's address information.", + "type": "string" + }, + "additionalAddressLine2": { + "description": "Additional customer's address information.", + "type": "string" + }, + "hash": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, + "customFields": { + "type": "object" + }, + "isDefaultBillingAddress": { + "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "isDefaultShippingAddress": { + "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", + "type": "boolean" }, "createdAt": { "type": "string", @@ -4708,12 +4845,45 @@ "format": "date-time", "readOnly": true }, - "translated": { + "extensions": { + "properties": { + "organizationCustomerAddresses": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/organizationCustomerAddresses" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "b2b_components_organization_customer_address" + }, + "id": { + "type": "string", + "example": "ada6a19a929bea8dbec29edb3d68df58" + } + } + } + } + }, + "type": "object" + } + }, "type": "object" }, "relationships": { "properties": { - "cmsPage": { + "country": { "properties": { "links": { "type": "object", @@ -4721,7 +4891,7 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/landing-page/815c27537bec3b60c50a2ae4d2ce875d/cmsPage" + "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/country" } } }, @@ -4730,19 +4900,19 @@ "properties": { "type": { "type": "string", - "example": "cms_page" + "example": "country" }, "id": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "example": "7b1460918b1abb93311108f3dc021c9b" + "example": "e909c2d7067ea37437cf97fe11d91bd0" } } } }, "type": "object" }, - "seoUrls": { + "countryState": { "properties": { "links": { "type": "object", @@ -4750,23 +4920,50 @@ "related": { "type": "string", "format": "uri-reference", - "example": "/landing-page/815c27537bec3b60c50a2ae4d2ce875d/seoUrls" + "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/countryState" } } }, "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "seo_url" - }, - "id": { - "type": "string", - "example": "5321b5a71127b8b98cdd4b068ad56c4c" - } + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "country_state" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "cb6a9764567191fb74fe28d8d6a4819d" + } + } + } + }, + "type": "object" + }, + "salutation": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/salutation" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "salutation" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "7a6efb02514153b5aa9a8f40c6f8bcc3" } } } @@ -4781,54 +4978,100 @@ } ] }, - "LandingPage": { - "description": "Added since version: 6.4.0.0", + "CustomerAddress": { + "description": "Added since version: 6.0.0.0", "required": [ - "apiAlias", "id", - "name", - "url" + "customerId", + "countryId", + "firstName", + "lastName", + "city", + "street" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { + "customerId": { + "description": "Unique identity of customer.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "active": { - "type": "boolean" + "countryId": { + "description": "Unique identity of country.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "name": { + "countryStateId": { + "description": "Unique identity of country's state.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salutationId": { + "description": "Unique identity of salutation.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "description": "First name of the customer.", "type": "string" }, - "customFields": { - "type": "object" + "lastName": { + "description": "Last name of the customer.", + "type": "string" }, - "slotConfig": { - "type": "object" + "zipcode": { + "description": "Postal or zip code of customer's address.", + "type": "string" }, - "metaTitle": { + "city": { + "description": "Name of customer's city.", "type": "string" }, - "metaDescription": { + "company": { + "description": "Name of customer's company.", "type": "string" }, - "keywords": { + "street": { + "description": "Name of customer's street.", "type": "string" }, - "url": { + "department": { + "description": "Name of customer's department.", "type": "string" }, - "cmsPageId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "title": { + "description": "Titles given to customer like Dr. , Prof., etc", + "type": "string" }, - "cmsPageVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "phoneNumber": { + "description": "Customer's phone number.", + "type": "string" + }, + "additionalAddressLine1": { + "description": "Additional customer's address information.", + "type": "string" + }, + "additionalAddressLine2": { + "description": "Additional customer's address information.", + "type": "string" + }, + "hash": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, + "customFields": { + "type": "object" + }, + "isDefaultBillingAddress": { + "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "isDefaultShippingAddress": { + "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", + "type": "boolean" }, "createdAt": { "type": "string", @@ -4840,234 +5083,157 @@ "format": "date-time", "readOnly": true }, - "translated": { + "extensions": { + "properties": { + "organizationCustomerAddresses": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/organizationCustomerAddresses" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "b2b_components_organization_customer_address" + }, + "id": { + "type": "string", + "example": "ada6a19a929bea8dbec29edb3d68df58" + } + } + } + } + }, + "type": "object" + } + }, "type": "object" }, - "cmsPage": { - "$ref": "#/components/schemas/CmsPage" + "country": { + "$ref": "#/components/schemas/Country" }, - "seoUrls": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeoUrl" - } + "countryState": { + "$ref": "#/components/schemas/CountryState" }, - "apiAlias": { - "type": "string", - "enum": [ - "landing_page" - ] + "salutation": { + "$ref": "#/components/schemas/Salutation" } }, "type": "object" }, - "LanguageJsonApi": { + "CustomerGroup": { "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" + "required": [ + "translated", + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - { - "required": [ - "id", - "localeId", - "name" - ], + "name": { + "type": "string" + }, + "displayGross": { + "description": "If boolean value is `true` gross value is displayed else, net value will be displayed to the customer.", + "type": "boolean" + }, + "customFields": { + "type": "object" + }, + "registrationActive": { + "description": "To enable the registration of partner customer group.", + "type": "boolean" + }, + "registrationTitle": { + "type": "string" + }, + "registrationIntroduction": { + "type": "string" + }, + "registrationOnlyCompanyRegistration": { + "type": "boolean" + }, + "registrationSeoMetaDescription": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "localeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "translationCodeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, "name": { "type": "string" }, - "active": { - "type": "boolean" - }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "registrationIntroduction": { + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "registrationSeoMetaDescription": { + "type": "string" }, - "relationships": { - "properties": { - "parent": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/parent" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "language" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "d0e45878043844ffc41aac437e86b602" - } - } - } - }, - "type": "object" - }, - "locale": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/locale" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "locale" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "fb216d9e8791e63c8d12bdc420956839" - } - } - } - }, - "type": "object" - }, - "translationCode": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/translationCode" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "locale" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "6ef2035242b8fcb7b61c3a41850e60b3" - } - } - } - }, - "type": "object" - }, - "children": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/children" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "language" - }, - "id": { - "type": "string", - "example": "268184c12df027f536154d099d497b31" - } - } - } - } - }, - "type": "object" - } - }, - "type": "object" + "registrationTitle": { + "type": "string" } - }, - "type": "object" + } } - ] + }, + "type": "object" }, - "Language": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "localeId", - "name" - ], + "CustomerRecovery": { + "description": "Added since version: 6.1.0.0", "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "parentId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "localeId": { + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "CustomerSpecificFeatures": { + "required": [ + "customerId", + "features" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "translationCodeId": { + "customerId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "customFields": { + "features": { "type": "object" }, "createdAt": { @@ -5080,45 +5246,52 @@ "format": "date-time", "readOnly": true }, - "parent": { - "$ref": "#/components/schemas/Language" + "customer": { + "$ref": "#/components/schemas/Customer" + } + }, + "type": "object" + }, + "CustomerTag": { + "description": "Added since version: 6.0.0.0", + "required": [ + "customerId", + "tagId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "locale": { - "$ref": "#/components/schemas/Locale" + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "translationCode": { - "$ref": "#/components/schemas/Locale" + "tagId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Language" - } + "tag": { + "$ref": "#/components/schemas/Tag" } }, "type": "object" }, - "Locale": { - "description": "Added since version: 6.0.0.0", + "CustomerWishlist": { + "description": "Added since version: 6.3.4.0", "required": [ "id", - "code", - "name", - "territory" + "customerId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "code": { - "type": "string" - }, - "name": { - "type": "string" - }, - "territory": { - "type": "string" + "customerId": { + "description": "Unique identity of the customer.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "customFields": { "type": "object" @@ -5133,19 +5306,35 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object" + "products": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomerWishlistProduct" + } } }, "type": "object" }, - "LogEntry": { - "description": "Added since version: 6.0.0.0", + "CustomerWishlistProduct": { + "description": "Added since version: 6.3.4.0", + "required": [ + "id", + "productId" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "productId": { + "description": "Unique identity of the product.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, "createdAt": { "type": "string", "format": "date-time", @@ -5159,36 +5348,39 @@ }, "type": "object" }, - "MailHeaderFooter": { + "DeliveryTime": { "description": "Added since version: 6.0.0.0", "required": [ - "name" + "id", + "name", + "min", + "max", + "unit" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "systemDefault": { - "type": "boolean" - }, "name": { "type": "string" }, - "description": { - "type": "string" - }, - "headerHtml": { - "type": "string" + "min": { + "description": "Minimum delivery time taken.", + "type": "integer", + "format": "int64" }, - "headerPlain": { - "type": "string" + "max": { + "description": "Maximum delivery time taken.", + "type": "integer", + "format": "int64" }, - "footerHtml": { + "unit": { + "description": "Unit in which the delivery time is defined. For example, days or hours.", "type": "string" }, - "footerPlain": { - "type": "string" + "customFields": { + "type": "object" }, "createdAt": { "type": "string", @@ -5206,28 +5398,69 @@ }, "type": "object" }, - "MailTemplate": { + "Document": { "description": "Added since version: 6.0.0.0", "required": [ - "subject", - "contentHtml", - "contentPlain" + "id", + "documentTypeId", + "orderId", + "config", + "deepLinkCode" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "systemDefault": { - "type": "boolean" + "documentTypeId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "senderName": { - "type": "string" + "referencedDocumentId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "contentHtml": { - "type": "string" + "orderId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "contentPlain": { + "documentMediaFileId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "documentA11yMediaFileId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "config": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "title": { + "type": "string" + } + }, + "required": [ + "name", + "title" + ] + }, + "sent": { + "type": "boolean" + }, + "static": { + "type": "boolean" + }, + "deepLinkCode": { + "type": "string" + }, + "documentNumber": { "type": "string" }, "customFields": { @@ -5243,75 +5476,76 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object" + "documentType": { + "$ref": "#/components/schemas/DocumentType" }, - "mailTemplateType": { - "$ref": "#/components/schemas/MailTemplateType" + "order": { + "$ref": "#/components/schemas/Order" }, - "media": { + "referencedDocument": { + "$ref": "#/components/schemas/Document" + }, + "dependentDocuments": { "type": "array", "items": { - "$ref": "#/components/schemas/MailTemplateMedia" + "$ref": "#/components/schemas/Document" } + }, + "documentMediaFile": { + "$ref": "#/components/schemas/Media" + }, + "documentA11yMediaFile": { + "$ref": "#/components/schemas/Media" + }, + "fileType": { + "type": "string" } }, "type": "object" }, - "MailTemplateMedia": { + "DocumentBaseConfig": { "description": "Added since version: 6.0.0.0", "required": [ "id", - "mailTemplateId", - "languageId", - "mediaId" + "documentTypeId", + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "mailTemplateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "languageId": { + "documentTypeId": { + "description": "Unique identity of the document type.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "mediaId": { + "logoId": { + "description": "Unique identity of the company logo.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "position": { - "type": "integer", - "format": "int64" + "name": { + "description": "Name of the document.", + "type": "string" }, - "media": { - "$ref": "#/components/schemas/Media" - } - }, - "type": "object" - }, - "MailTemplateType": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "technicalName", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "filenamePrefix": { + "description": "A prefix name added to the file name separated by an underscore.", + "type": "string" }, - "name": { + "filenameSuffix": { + "description": "A suffix name added to the file name separated by an underscore.", "type": "string" }, - "technicalName": { + "global": { + "description": "When set to `true`, the document can be used across all sales channels.", + "type": "boolean" + }, + "documentNumber": { + "description": "Unique number associated with every document.", "type": "string" }, - "customFields": { + "config": { "type": "object" }, "createdAt": { @@ -5319,100 +5553,44 @@ "format": "date-time", "readOnly": true }, + "customFields": { + "type": "object" + }, "updatedAt": { "type": "string", "format": "date-time", "readOnly": true }, - "translated": { - "type": "object" + "logo": { + "$ref": "#/components/schemas/Media", + "description": "Logo in the document at the top-right corner." } }, "type": "object" }, - "MainCategoryJsonApi": { - "description": "Added since version: 6.1.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" - }, - { - "required": [ - "id", - "productId", - "categoryId", - "salesChannelId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "categoryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "categoryVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salesChannelId": { - "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" - } - ] - }, - "MainCategory": { - "description": "Added since version: 6.1.0.0", + "DocumentBaseConfigSalesChannel": { + "description": "Added since version: 6.0.0.0", "required": [ "id", - "productId", - "categoryId", - "salesChannelId" + "documentBaseConfigId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "categoryId": { + "documentBaseConfigId": { + "description": "Unique identity of document's base config.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "categoryVersionId": { + "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "salesChannelId": { + "documentTypeId": { + "description": "Unique identity of document type.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5429,43 +5607,25 @@ }, "type": "object" }, - "MeasurementDisplayUnit": { - "description": "Added since version: 6.7.1.0", + "DocumentType": { + "description": "Added since version: 6.0.0.0", "required": [ "id", - "measurementSystemId", - "default", - "type", - "shortName", - "factor", - "precision" + "technicalName", + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "measurementSystemId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "default": { - "type": "boolean" - }, - "type": { + "name": { "type": "string" }, - "shortName": { + "technicalName": { + "description": "Technical name of document type.", "type": "string" }, - "factor": { - "type": "number", - "format": "float" - }, - "precision": { - "type": "integer", - "format": "int64" - }, "createdAt": { "type": "string", "format": "date-time", @@ -5476,29 +5636,22 @@ "format": "date-time", "readOnly": true }, - "translated": { + "customFields": { "type": "object" }, - "measurementSystem": { - "$ref": "#/components/schemas/MeasurementSystem" + "translated": { + "type": "object" } }, "type": "object" }, - "MeasurementSystem": { - "description": "Added since version: 6.7.1.0", - "required": [ - "id", - "technicalName" - ], + "Flow": { + "description": "Added since version: 6.4.6.0", "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "technicalName": { - "type": "string" - }, "createdAt": { "type": "string", "format": "date-time", @@ -5508,95 +5661,17 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "translated": { - "type": "object" - }, - "units": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MeasurementDisplayUnit" - } } }, "type": "object" }, - "Media": { - "description": "Added since version: 6.0.0.0", - "required": [ - "apiAlias", - "fileExtension", - "fileName", - "hasFile", - "path", - "private", - "url", - "id" - ], + "FlowSequence": { + "description": "Added since version: 6.4.6.0", "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "mimeType": { - "type": "string" - }, - "fileExtension": { - "type": "string" - }, - "uploadedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "fileName": { - "type": "string" - }, - "fileSize": { - "type": "integer", - "format": "int64", - "readOnly": true - }, - "metaData": { - "type": "object", - "readOnly": true, - "properties": { - "height": { - "type": "integer", - "format": "int64" - }, - "width": { - "type": "integer", - "format": "int64" - } - } - }, - "config": { - "type": "object" - }, - "alt": { - "type": "string" - }, - "title": { - "type": "string" - }, - "url": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string" - }, - "path": { - "type": "string" - }, - "hasFile": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean" - }, - "private": { - "type": "boolean" - }, - "customFields": { - "type": "object" - }, "createdAt": { "type": "string", "format": "date-time", @@ -5606,75 +5681,17 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "translated": { - "type": "object" - }, - "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" - }, - "thumbnails": { - "type": "array", - "items": { - "$ref": "#/components/schemas/MediaThumbnail" - } - }, - "apiAlias": { - "type": "string", - "enum": [ - "media" - ] } }, "type": "object" }, - "MediaAiTag": { - "required": [ - "id" - ], + "FlowTemplate": { + "description": "Added since version: 6.4.18.0", "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "tags": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false - } - }, "createdAt": { "type": "string", "format": "date-time", @@ -5684,17 +5701,11 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "translated": { - "type": "object" - }, - "media": { - "$ref": "#/components/schemas/Media" } }, "type": "object" }, - "MediaDefaultFolder": { + "ImportExportFile": { "description": "Added since version: 6.0.0.0", "properties": { "id": { @@ -5714,7 +5725,7 @@ }, "type": "object" }, - "MediaFolder": { + "ImportExportLog": { "description": "Added since version: 6.0.0.0", "properties": { "id": { @@ -5734,7 +5745,7 @@ }, "type": "object" }, - "MediaFolderConfiguration": { + "ImportExportProfile": { "description": "Added since version: 6.0.0.0", "properties": { "id": { @@ -5750,116 +5761,20 @@ "type": "string", "format": "date-time", "readOnly": true - } - }, - "type": "object" - }, - "MediaTag": { - "description": "Added since version: 6.0.0.0", - "required": [ - "mediaId", - "tagId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "mediaId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "tagId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "media": { - "$ref": "#/components/schemas/Media" - }, - "tag": { - "$ref": "#/components/schemas/Tag" - } - }, - "type": "object" - }, - "MediaThumbnail": { - "description": "Added since version: 6.0.0.0", - "required": [ - "url", - "id", - "mediaId", - "width", - "height" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "mediaId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "mediaThumbnailSizeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "width": { - "type": "integer", - "format": "int64", - "readOnly": true - }, - "height": { - "type": "integer", - "format": "int64", - "readOnly": true - }, - "url": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string" - }, - "path": { - "type": "string" }, - "customFields": { + "translated": { "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true } }, "type": "object" }, - "MediaThumbnailSize": { + "Integration": { "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "width", - "height" - ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "width": { - "type": "integer", - "format": "int64" - }, - "height": { - "type": "integer", - "format": "int64" - }, - "customFields": { - "type": "object" - }, "createdAt": { "type": "string", "format": "date-time", @@ -5873,146 +5788,190 @@ }, "type": "object" }, - "NewsletterRecipientJsonApi": { - "description": "Added since version: 6.0.0.0", + "LandingPageJsonApi": { + "description": "Added since version: 6.4.0.0", "allOf": [ { "$ref": "#/components/schemas/resource" }, { + "required": [ + "id", + "name", + "url" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "versionId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "active": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "customFields": { + "type": "object" + }, + "slotConfig": { + "type": "object" + }, + "metaTitle": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "keywords": { + "type": "string" + }, + "url": { + "type": "string" + }, + "cmsPageId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cmsPageVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + }, + "relationships": { + "properties": { + "cmsPage": { + "description": "CMS page layout for the landing page", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/landing-page/815c27537bec3b60c50a2ae4d2ce875d/cmsPage" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "cms_page" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "7b1460918b1abb93311108f3dc021c9b" + } + } + } + }, + "type": "object" + }, + "seoUrls": { + "description": "SEO-friendly URLs for the landing page across different sales channels", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/landing-page/815c27537bec3b60c50a2ae4d2ce875d/seoUrls" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "seo_url" + }, + "id": { + "type": "string", + "example": "5321b5a71127b8b98cdd4b068ad56c4c" + } + } + } + } + }, + "type": "object" + } + }, + "type": "object" } }, "type": "object" } ] }, - "NewsletterRecipient": { - "description": "Added since version: 6.0.0.0", + "LandingPage": { + "description": "Added since version: 6.4.0.0", + "required": [ + "apiAlias", + "id", + "name", + "url" + ], "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" - }, - "Notification": { - "description": "Added since version: 6.4.7.0", - "properties": { - "id": { + "versionId": { "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" - }, - "NumberRange": { - "description": "Added since version: 6.0.0.0", - "required": [ - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "active": { + "type": "boolean" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "name": { + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "customFields": { + "type": "object" }, - "translated": { + "slotConfig": { "type": "object" - } - }, - "type": "object" - }, - "NumberRangeSalesChannel": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "metaTitle": { + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "NumberRangeState": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "metaDescription": { + "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "keywords": { + "type": "string" }, - "updatedAt": { + "url": { + "type": "string" + }, + "cmsPageId": { "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "NumberRangeType": { - "description": "Added since version: 6.0.0.0", - "required": [ - "typeName" - ], - "properties": { - "id": { + "pattern": "^[0-9a-f]{32}$" + }, + "cmsPageVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -6028,233 +5987,414 @@ }, "translated": { "type": "object" + }, + "cmsPage": { + "$ref": "#/components/schemas/CmsPage", + "description": "CMS page layout for the landing page" + }, + "seoUrls": { + "description": "SEO-friendly URLs for the landing page across different sales channels", + "type": "array", + "items": { + "$ref": "#/components/schemas/SeoUrl" + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "landing_page" + ] } }, "type": "object" }, - "Order": { + "LanguageJsonApi": { "description": "Added since version: 6.0.0.0", - "required": [ - "documents", - "orderDate", - "stateMachineState", - "price", - "id", - "billingAddressId", - "currencyId", - "languageId", - "salesChannelId", - "orderDateTime", - "currencyFactor" + "allOf": [ + { + "$ref": "#/components/schemas/resource" + }, + { + "required": [ + "id", + "localeId", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "parentId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "localeId": { + "description": "Unique identity of locale.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "translationCodeId": { + "description": "Unique identity of translation code.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "name": { + "description": "Name of the language.", + "type": "string" + }, + "active": { + "type": "boolean" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "relationships": { + "properties": { + "parent": { + "description": "Unique identity of language.", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/parent" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "language" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "d0e45878043844ffc41aac437e86b602" + } + } + } + }, + "type": "object" + }, + "locale": { + "description": "Locale defining regional settings (date, time, number formats)", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/locale" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "locale" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "fb216d9e8791e63c8d12bdc420956839" + } + } + } + }, + "type": "object" + }, + "translationCode": { + "description": "Locale used for translating content", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/translationCode" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "locale" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "6ef2035242b8fcb7b61c3a41850e60b3" + } + } + } + }, + "type": "object" + }, + "children": { + "description": "Child languages inheriting from this parent language", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/language/4994a8ffeba4ac3140beb89e8d41f174/children" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "language" + }, + "id": { + "type": "string", + "example": "268184c12df027f536154d099d497b31" + } + } + } + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + ] + }, + "Language": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "localeId", + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { + "parentId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderNumber": { - "type": "string" - }, - "billingAddressId": { + "localeId": { + "description": "Unique identity of locale.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "billingAddressVersionId": { + "translationCodeId": { + "description": "Unique identity of translation code.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "primaryOrderDeliveryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "description": "Name of the language.", + "type": "string" }, - "primaryOrderDeliveryVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "active": { + "type": "boolean" }, - "primaryOrderTransactionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "customFields": { + "type": "object" }, - "primaryOrderTransactionVersionId": { + "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 }, - "languageId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "parent": { + "$ref": "#/components/schemas/Language", + "description": "Unique identity of language." }, - "salesChannelId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "locale": { + "$ref": "#/components/schemas/Locale", + "description": "Locale defining regional settings (date, time, number formats)" }, - "orderDateTime": { - "type": "string", - "format": "date-time" + "translationCode": { + "$ref": "#/components/schemas/Locale", + "description": "Locale used for translating content" }, - "orderDate": { + "children": { + "description": "Child languages inheriting from this parent language", + "type": "array", + "items": { + "$ref": "#/components/schemas/Language" + } + } + }, + "type": "object" + }, + "Locale": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "code", + "name", + "territory" + ], + "properties": { + "id": { "type": "string", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "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", - "$ref": "#/components/schemas/CalculatedPrice" + "code": { + "description": "Code given to the locale. For example: en-CA.", + "type": "string" }, - "amountTotal": { - "type": "number", - "format": "float", - "readOnly": true + "name": { + "type": "string" }, - "amountNet": { - "type": "number", - "format": "float", - "readOnly": true + "territory": { + "type": "string" }, - "positionPrice": { - "type": "number", - "format": "float", + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", "readOnly": true }, - "taxStatus": { + "updatedAt": { "type": "string", + "format": "date-time", "readOnly": true }, - "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" - } - }, + "translated": { "type": "object" + } + }, + "type": "object" + }, + "LogEntry": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "shippingTotal": { - "type": "number", - "format": "float", + "createdAt": { + "type": "string", + "format": "date-time", "readOnly": true }, - "currencyFactor": { - "type": "number", - "format": "float" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "MailHeaderFooter": { + "description": "Added since version: 6.0.0.0", + "required": [ + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "deepLinkCode": { + "systemDefault": { + "type": "boolean" + }, + "name": { "type": "string" }, - "affiliateCode": { + "description": { "type": "string" }, - "campaignCode": { + "headerHtml": { "type": "string" }, - "customerComment": { + "headerPlain": { "type": "string" }, - "source": { + "footerHtml": { "type": "string" }, - "taxCalculationType": { + "footerPlain": { "type": "string" }, - "customFields": { - "type": "object" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "createdById": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "updatedById": { + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "MailTemplate": { + "description": "Added since version: 6.0.0.0", + "required": [ + "subject", + "contentHtml", + "contentPlain" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "systemDefault": { + "type": "boolean" + }, + "senderName": { + "type": "string" + }, + "contentHtml": { + "type": "string" + }, + "contentPlain": { + "type": "string" + }, + "customFields": { + "type": "object" + }, "createdAt": { "type": "string", "format": "date-time", @@ -6265,285 +6405,73 @@ "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" - }, - "orderEmployee": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/order/a240fa27925a635b08dc28c9e4f9216d/orderEmployee" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "b2b_order_employee" - }, - "id": { - "type": "string", - "example": "5ea451c08a87db806089c4031601c29a" - } - } - } - } - }, - "type": "object" - }, - "quote": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/order/a240fa27925a635b08dc28c9e4f9216d/quote" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "quote" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "7a674c327bfa07f7c1204fb38ca6ef3b" - } - } - } - }, - "type": "object" - }, - "organization": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/order/a240fa27925a635b08dc28c9e4f9216d/organization" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "b2b_components_organization" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "b4c1948c087fafc89a88450fcbb64c77" - } - } - } - }, - "type": "object" - } - }, + "translated": { "type": "object" }, - "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" - }, - "primaryOrderDelivery": { - "$ref": "#/components/schemas/OrderDelivery" - }, - "primaryOrderTransaction": { - "$ref": "#/components/schemas/OrderTransaction" - }, - "orderCustomer": { - "$ref": "#/components/schemas/OrderCustomer" - }, - "currency": { - "$ref": "#/components/schemas/Currency" - }, - "language": { - "$ref": "#/components/schemas/Language" - }, - "addresses": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderAddress" - } - }, - "billingAddress": { - "$ref": "#/components/schemas/OrderAddress" - }, - "deliveries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderDelivery" - } - }, - "lineItems": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderLineItem" - } - }, - "transactions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderTransaction" - } - }, - "documents": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Document" - } + "mailTemplateType": { + "$ref": "#/components/schemas/MailTemplateType" }, - "tags": { + "media": { "type": "array", "items": { - "$ref": "#/components/schemas/Tag" + "$ref": "#/components/schemas/MailTemplateMedia" } } }, "type": "object" }, - "OrderAddress": { + "MailTemplateMedia": { "description": "Added since version: 6.0.0.0", "required": [ "id", - "countryId", - "firstName", - "lastName", - "street", - "city" + "mailTemplateId", + "languageId", + "mediaId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { + "mailTemplateId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "countryId": { + "languageId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "countryStateId": { + "mediaId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "street": { - "type": "string" - }, - "zipcode": { - "type": "string" - }, - "city": { - "type": "string" - }, - "company": { - "type": "string" - }, - "department": { - "type": "string" - }, - "title": { - "type": "string" - }, - "vatId": { - "type": "string" - }, - "phoneNumber": { - "type": "string" + "position": { + "type": "integer", + "format": "int64" }, - "additionalAddressLine1": { - "type": "string" + "media": { + "$ref": "#/components/schemas/Media" + } + }, + "type": "object" + }, + "MailTemplateType": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "technicalName", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "additionalAddressLine2": { + "name": { "type": "string" }, - "hash": { - "description": "Runtime field, cannot be used as part of the criteria.", + "technicalName": { + "description": "Technical name of mail template.", "type": "string" }, "customFields": { @@ -6559,65 +6487,103 @@ "format": "date-time", "readOnly": true }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "$ref": "#/components/schemas/CountryState" - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + "translated": { + "type": "object" } }, "type": "object" }, - "OrderCustomer": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "email", - "firstName", - "lastName" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "versionId": { + "MainCategoryJsonApi": { + "description": "Added since version: 6.1.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" + }, + { + "required": [ + "id", + "productId", + "categoryId", + "salesChannelId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productId": { + "description": "Unique identity of the product.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "categoryId": { + "description": "Unique identity of the category.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "categoryVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salesChannelId": { + "description": "Unique identity of the sales channel.", + "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" + } + ] + }, + "MainCategory": { + "description": "Added since version: 6.1.0.0", + "required": [ + "id", + "productId", + "categoryId", + "salesChannelId" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "email": { - "type": "string" - }, - "salutationId": { + "productId": { + "description": "Unique identity of the product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "company": { - "type": "string" - }, - "title": { - "type": "string" + "productVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "vatIds": { - "type": "array", - "items": { - "type": "string" - } + "categoryId": { + "description": "Unique identity of the category.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "customerNumber": { - "type": "string" + "categoryVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "customFields": { - "type": "object" + "salesChannelId": { + "description": "Unique identity of the sales channel.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "createdAt": { "type": "string", @@ -6628,130 +6594,46 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" } }, "type": "object" }, - "OrderDelivery": { - "description": "Added since version: 6.0.0.0", + "MeasurementDisplayUnit": { + "description": "Added since version: 6.7.1.0", "required": [ "id", - "orderId", - "shippingOrderAddressId", - "shippingMethodId", - "stateId", - "shippingDateEarliest", - "shippingDateLatest" + "measurementSystemId", + "default", + "type", + "shortName", + "factor", + "precision" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "shippingOrderAddressId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "shippingOrderAddressVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "shippingMethodId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "stateId": { + "measurementSystemId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "trackingCodes": { - "type": "array", - "items": { - "type": "string" - } + "default": { + "type": "boolean" }, - "shippingDateEarliest": { - "type": "string", - "format": "date-time" + "type": { + "type": "string" }, - "shippingDateLatest": { - "type": "string", - "format": "date-time" + "shortName": { + "type": "string" }, - "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" + "factor": { + "type": "number", + "format": "float" }, - "customFields": { - "type": "object" + "precision": { + "type": "integer", + "format": "int64" }, "createdAt": { "type": "string", @@ -6763,124 +6645,129 @@ "format": "date-time", "readOnly": true }, - "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" - }, - "shippingOrderAddress": { - "$ref": "#/components/schemas/OrderAddress" - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" + "translated": { + "type": "object" }, - "positions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderDeliveryPosition" - } + "measurementSystem": { + "$ref": "#/components/schemas/MeasurementSystem" } }, "type": "object" }, - "OrderDeliveryPosition": { - "description": "Added since version: 6.0.0.0", + "MeasurementSystem": { + "description": "Added since version: 6.7.1.0", "required": [ "id", - "orderDeliveryId", - "orderLineItemId" + "technicalName" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "technicalName": { + "type": "string" }, - "orderDeliveryId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "orderDeliveryVersionId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "orderLineItemId": { + "translated": { + "type": "object" + }, + "units": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MeasurementDisplayUnit" + } + } + }, + "type": "object" + }, + "Media": { + "description": "Added since version: 6.0.0.0", + "required": [ + "apiAlias", + "fileExtension", + "fileName", + "hasFile", + "path", + "private", + "url", + "id" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderLineItemVersionId": { + "mimeType": { + "description": "A string sent along with a file indicating the type of the file. For example: image/jpeg.", + "type": "string" + }, + "fileExtension": { + "description": "Type of file indication. For example: jpeg, png.", + "type": "string" + }, + "uploadedAt": { + "description": "Date and time at which media was added.", "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "price": { - "required": [ - "unitPrice", - "totalPrice", - "quantity" - ], + "fileName": { + "description": "Name of the media file uploaded.", + "type": "string" + }, + "fileSize": { + "description": "Size of the file media file uploaded.", + "type": "integer", + "format": "int64", + "readOnly": true + }, + "metaData": { + "type": "object", + "readOnly": true, "properties": { - "unitPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" - }, - "quantity": { + "height": { "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" + "width": { + "type": "integer", + "format": "int64" } - }, + } + }, + "config": { "type": "object" }, - "unitPrice": { - "type": "number", - "format": "float" + "alt": { + "type": "string" }, - "totalPrice": { - "type": "number", - "format": "float" + "title": { + "type": "string" }, - "quantity": { - "type": "integer", - "format": "int64" + "url": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, + "path": { + "type": "string" + }, + "hasFile": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "private": { + "description": "When `true`, the media display is kept private.", + "type": "boolean" }, "customFields": { "type": "object" @@ -6894,209 +6781,262 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "translated": { + "type": "object" + }, + "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" + }, + "thumbnails": { + "description": "Generated thumbnail images in various sizes", + "type": "array", + "items": { + "$ref": "#/components/schemas/MediaThumbnail" + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "media" + ] } }, "type": "object" }, - "OrderLineItem": { - "description": "Added since version: 6.0.0.0", + "MediaAiTag": { "required": [ - "apiAlias", - "id", - "orderId", - "identifier", - "quantity", - "label", - "states", - "children" + "id" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "tags": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false + } }, - "orderId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "orderVersionId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "translated": { + "type": "object" }, - "productVersionId": { + "media": { + "$ref": "#/components/schemas/Media" + } + }, + "type": "object" + }, + "MediaDefaultFolder": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "promotionId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "parentId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentVersionId": { + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "MediaFolder": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "coverId": { + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "MediaFolderConfiguration": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "identifier": { - "type": "string" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "referencedId": { - "type": "string" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "MediaTag": { + "description": "Added since version: 6.0.0.0", + "required": [ + "mediaId", + "tagId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "quantity": { - "type": "integer", - "format": "int64" + "mediaId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "label": { - "type": "string" + "tagId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "payload": { - "type": "object", - "properties": { - "categoryIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "customFields": { - "type": "object" - }, - "features": { - "type": "array" - }, - "isCloseout": { - "type": "boolean" - }, - "isNew": { - "type": "boolean" - }, - "manufacturerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "markAsTopseller": { - "type": "boolean" - }, - "optionIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "options": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PropertyGroupOption" - } - }, - "parentId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productNumber": { - "type": "string" - }, - "propertyIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "purchasePrices": { - "type": "string" - }, - "releaseDate": { - "type": "string", - "format": "date-time" - }, - "stock": { - "type": "integer", - "format": "int64" - }, - "streamIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "tagIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "taxId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } + "media": { + "$ref": "#/components/schemas/Media" }, - "good": { - "type": "boolean" + "tag": { + "$ref": "#/components/schemas/Tag" + } + }, + "type": "object" + }, + "MediaThumbnail": { + "description": "Added since version: 6.0.0.0", + "required": [ + "url", + "id", + "mediaId", + "width", + "height" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "removable": { - "type": "boolean" + "mediaId": { + "description": "Unique identity of media.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "stackable": { - "type": "boolean" + "mediaThumbnailSizeId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "position": { + "width": { + "description": "Width of the thumbnail.", "type": "integer", - "format": "int64" + "format": "int64", + "readOnly": true }, - "states": { - "type": "array", - "items": { - "type": "string" - } + "height": { + "description": "Height of the thumbnail.", + "type": "integer", + "format": "int64", + "readOnly": true }, - "priceDefinition": { - "type": "object", - "$ref": "#/components/schemas/CartPriceQuantity" + "url": { + "description": "Public url of media thumbnail. Runtime field, cannot be used as part of the criteria.", + "type": "string" }, - "unitPrice": { - "type": "number", - "format": "float" + "path": { + "type": "string" }, - "totalPrice": { - "type": "number", - "format": "float" + "customFields": { + "type": "object" }, - "description": { - "type": "string" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "type": { - "type": "string" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "MediaThumbnailSize": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "width", + "height" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "width": { + "description": "Width of the thumbnail.", + "type": "integer", + "format": "int64" + }, + "height": { + "description": "Height of the thumbnail.", + "type": "integer", + "format": "int64" }, "customFields": { "type": "object" @@ -7110,148 +7050,129 @@ "type": "string", "format": "date-time", "readOnly": true + } + }, + "type": "object" + }, + "NewsletterRecipientJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" }, - "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" + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "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" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true } }, "type": "object" + } + ] + }, + "NewsletterRecipient": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "cover": { - "$ref": "#/components/schemas/Media" - }, - "orderDeliveryPositions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderDeliveryPosition" - } - }, - "downloads": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderLineItemDownload" - } - }, - "parent": { - "$ref": "#/components/schemas/OrderLineItem" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderLineItem" - } + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "Notification": { + "description": "Added since version: 6.4.7.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "apiAlias": { + "createdAt": { "type": "string", - "enum": [ - "order_line_item" - ] + "format": "date-time", + "readOnly": true }, - "translated": { - "type": "object" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true } }, "type": "object" }, - "OrderLineItemDownload": { - "description": "Added since version: 6.4.19.0", + "NumberRange": { + "description": "Added since version: 6.0.0.0", "required": [ - "media", - "id", - "orderLineItemId", - "mediaId", - "position", - "accessGranted" + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "versionId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "orderLineItemId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "orderLineItemVersionId": { + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "NumberRangeSalesChannel": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "mediaId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "position": { - "type": "integer", - "format": "int64" - }, - "accessGranted": { - "type": "boolean" + "format": "date-time", + "readOnly": true }, - "customFields": { - "type": "object" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "NumberRangeState": { + "description": "Added since version: 6.0.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "createdAt": { "type": "string", @@ -7262,17 +7183,15 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "orderLineItem": { - "$ref": "#/components/schemas/OrderLineItem" - }, - "media": { - "$ref": "#/components/schemas/Media" } }, "type": "object" }, - "OrderProductWarehouse": { + "NumberRangeType": { + "description": "Added since version: 6.0.0.0", + "required": [ + "typeName" + ], "properties": { "id": { "type": "string", @@ -7287,17 +7206,27 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "translated": { + "type": "object" } }, "type": "object" }, - "OrderReturn": { + "Order": { + "description": "Added since version: 6.0.0.0", "required": [ + "documents", + "orderDate", + "stateMachineState", + "price", "id", - "orderId", - "stateId", - "returnNumber", - "requestedAt" + "billingAddressId", + "currencyId", + "languageId", + "salesChannelId", + "orderDateTime", + "currencyFactor" ], "properties": { "id": { @@ -7308,37 +7237,83 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderId": { + "orderNumber": { + "description": "Unique number associated with every order.", + "type": "string" + }, + "billingAddressId": { + "description": "Unique identity of the billing address.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderVersionId": { + "billingAddressVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "price": { - "required": [ - "netPrice", - "totalPrice", - "positionPrice", - "rawTotal", - "taxStatus" - ], - "properties": { - "netPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" - }, - "calculatedTaxes": { - "type": "object" - }, - "taxRules": { - "type": "object" - }, + "primaryOrderDeliveryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "primaryOrderDeliveryVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "primaryOrderTransactionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "primaryOrderTransactionVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "currencyId": { + "description": "Unique identity of the currency.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "languageId": { + "description": "Unique identity of the language.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salesChannelId": { + "description": "Unique identity of the sales channel.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderDateTime": { + "description": "Timestamp when the order was placed.", + "type": "string", + "format": "date-time" + }, + "orderDate": { + "description": "Date when the order was placed.", + "type": "string", + "readOnly": true + }, + "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" @@ -7351,7 +7326,31 @@ "type": "string" } }, - "type": "object" + "type": "object", + "$ref": "#/components/schemas/CalculatedPrice" + }, + "amountTotal": { + "description": "Gross price of the order.", + "type": "number", + "format": "float", + "readOnly": true + }, + "amountNet": { + "description": "Net price of the order.", + "type": "number", + "format": "float", + "readOnly": true + }, + "positionPrice": { + "description": "Price of each line item in the cart multiplied by its quantity excluding charges like shipping cost, rules, taxes etc.", + "type": "number", + "format": "float", + "readOnly": true + }, + "taxStatus": { + "description": "TaxStatus takes `Free`, `Net` or `Gross` as values.", + "type": "string", + "readOnly": true }, "shippingCosts": { "required": [ @@ -7410,148 +7409,53 @@ }, "type": "object" }, - "stateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "returnNumber": { - "type": "string" - }, - "requestedAt": { - "type": "string", - "format": "date-time" - }, - "amountTotal": { + "shippingTotal": { + "description": "Total shipping cost of the ordered product.", "type": "number", - "format": "float" + "format": "float", + "readOnly": true }, - "amountNet": { + "currencyFactor": { + "description": "Rate at which currency is exchanged.", "type": "number", "format": "float" }, - "createdById": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "updatedById": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "state": { - "$ref": "#/components/schemas/StateMachineState" - }, - "lineItems": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderReturnLineItem" - } - } - }, - "type": "object" - }, - "OrderReturnLineItem": { - "required": [ - "id", - "orderReturnId", - "orderLineItemId", - "reasonId", - "quantity", - "stateId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderReturnId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderReturnVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderLineItemId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "deepLinkCode": { + "description": "It is a generated special code linked to email. It is used to access orders placed by guest customers.", + "type": "string" }, - "orderLineItemVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "affiliateCode": { + "description": "An affiliate code is an identification option with which website operators can mark outgoing links.", + "type": "string" }, - "reasonId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "campaignCode": { + "description": "A campaign code is the globally unique identifier for a campaign.", + "type": "string" }, - "quantity": { - "type": "integer", - "format": "int64" + "customerComment": { + "description": "Comments given by comments.", + "type": "string" }, - "refundAmount": { - "type": "number", - "format": "float" + "source": { + "description": "Source of orders either via normal order placement or subscriptions.", + "type": "string" }, - "restockQuantity": { - "type": "integer", - "format": "int64" + "taxCalculationType": { + "type": "string" }, "customFields": { "type": "object" }, - "stateId": { + "createdById": { + "description": "Unique identity of createdBy.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "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": [ - "id", - "reasonKey", - "content" - ], - "properties": { - "id": { + "updatedById": { + "description": "Unique identity of updatedBy.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "reasonKey": { - "type": "string" - }, - "content": { - "type": "string" - }, "createdAt": { "type": "string", "format": "date-time", @@ -7562,124 +7466,213 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object" - } - }, - "type": "object" - }, - "OrderTag": { - "description": "Added since version: 6.0.0.0", - "required": [ - "orderId", - "tagId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "tagId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "order": { - "$ref": "#/components/schemas/Order" - }, - "tag": { - "$ref": "#/components/schemas/Tag" - } - }, - "type": "object" - }, - "OrderTransaction": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "orderId", - "paymentMethodId", - "amount", - "stateId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "orderVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "paymentMethodId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "amount": { - "required": [ - "unitPrice", - "totalPrice", - "quantity" - ], + "extensions": { "properties": { - "unitPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" - }, - "quantity": { - "type": "integer", - "format": "int64" + "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" }, - "calculatedTaxes": { + "initialSubscriptions": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/order/a240fa27925a635b08dc28c9e4f9216d/initialSubscriptions" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "subscription" + }, + "id": { + "type": "string", + "example": "3b40c275cdd1f84402bcef5be1651f64" + } + } + } + } + }, "type": "object" }, - "taxRules": { + "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" }, - "referencePrice": { + "orderEmployee": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/order/a240fa27925a635b08dc28c9e4f9216d/orderEmployee" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "b2b_order_employee" + }, + "id": { + "type": "string", + "example": "5ea451c08a87db806089c4031601c29a" + } + } + } + } + }, "type": "object" }, - "listPrice": { + "quote": { "properties": { - "price": { - "type": "number", - "format": "float" + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/order/a240fa27925a635b08dc28c9e4f9216d/quote" + } + } }, - "discount": { - "type": "number", - "format": "float" + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "quote" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "7a674c327bfa07f7c1204fb38ca6ef3b" + } + } + } + }, + "type": "object" + }, + "organization": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/order/a240fa27925a635b08dc28c9e4f9216d/organization" + } + } }, - "percentage": { - "type": "number", - "format": "float" + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "b2b_components_organization" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "b4c1948c087fafc89a88450fcbb64c77" + } + } } }, "type": "object" }, - "regulationPrice": { + "budget": { "properties": { - "price": { - "type": "number", - "format": "float" + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/order/a240fa27925a635b08dc28c9e4f9216d/budget" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "b2b_components_budget" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "2f212049ce79d2b949fd242043004288" + } + } } }, "type": "object" @@ -7687,16 +7680,164 @@ }, "type": "object" }, - "validationData": { - "type": "object" + "stateMachineState": { + "$ref": "#/components/schemas/StateMachineState", + "description": "Current order state (e.g., open, in_progress, completed, cancelled)" }, - "stateId": { - "type": "string", + "primaryOrderDelivery": { + "$ref": "#/components/schemas/OrderDelivery", + "description": "Primary delivery information for the order" + }, + "primaryOrderTransaction": { + "$ref": "#/components/schemas/OrderTransaction", + "description": "Primary payment transaction for the order" + }, + "orderCustomer": { + "$ref": "#/components/schemas/OrderCustomer", + "description": "Customer information associated with the order" + }, + "currency": { + "$ref": "#/components/schemas/Currency", + "description": "Currency used for the order" + }, + "language": { + "$ref": "#/components/schemas/Language", + "description": "Language used when placing the order" + }, + "addresses": { + "description": "All addresses associated with the order (billing and shipping)", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderAddress" + } + }, + "billingAddress": { + "$ref": "#/components/schemas/OrderAddress", + "description": "Billing address for the order" + }, + "deliveries": { + "description": "Delivery information including shipping address and tracking", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderDelivery" + } + }, + "lineItems": { + "description": "Order line items (products, discounts, fees)", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderLineItem" + } + }, + "transactions": { + "description": "Payment transactions for the order", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderTransaction" + } + }, + "documents": { + "description": "Generated documents (invoices, delivery notes, credit notes)", + "type": "array", + "items": { + "$ref": "#/components/schemas/Document" + } + }, + "tags": { + "description": "Tags assigned to the order for organization and filtering", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + } + }, + "type": "object" + }, + "OrderAddress": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "countryId", + "firstName", + "lastName", + "street", + "city" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryId": { + "description": "Unique identity of country.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryStateId": { + "description": "Unique identity of state.", + "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "firstName": { + "description": "First name of the customer.", + "type": "string" + }, + "lastName": { + "description": "Last name of the customer.", + "type": "string" + }, + "street": { + "description": "Street address", + "type": "string" + }, + "zipcode": { + "description": "Zip code of the country.", + "type": "string" + }, + "city": { + "description": "Name of the city.", + "type": "string" + }, + "company": { + "description": "Name of the company.", + "type": "string" + }, + "department": { + "description": "Name of the department.", + "type": "string" + }, + "title": { + "description": "Title name given to customer like DR. , Prof., etc.", + "type": "string" + }, + "phoneNumber": { + "description": "Phone number of the customer.", + "type": "string" + }, + "additionalAddressLine1": { + "description": "Additional address input if necessary.", + "type": "string" + }, + "additionalAddressLine2": { + "description": "Additional address input if necessary.", + "type": "string" + }, + "hash": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, "customFields": { "type": "object" }, + "vatId": { + "description": "Unique identity of VAT.", + "type": "string", + "deprecated": true + }, "createdAt": { "type": "string", "format": "date-time", @@ -7707,28 +7848,99 @@ "format": "date-time", "readOnly": true }, - "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" + "country": { + "$ref": "#/components/schemas/Country" }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" + "countryState": { + "$ref": "#/components/schemas/CountryState" }, - "captures": { + "salutation": { + "$ref": "#/components/schemas/Salutation" + } + }, + "type": "object" + }, + "OrderCustomer": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "email", + "firstName", + "lastName" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "email": { + "description": "Email address of the customer.", + "type": "string" + }, + "salutationId": { + "description": "Unique identity of salutation.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "description": "First name of the customer.", + "type": "string" + }, + "lastName": { + "description": "Last name of the customer.", + "type": "string" + }, + "company": { + "description": "Name of the company.", + "type": "string" + }, + "title": { + "description": "Title name given to the customer like Dr, prof. etc.", + "type": "string" + }, + "vatIds": { "type": "array", "items": { - "$ref": "#/components/schemas/OrderTransactionCapture" + "type": "string" } + }, + "customerNumber": { + "description": "Unique number assigned to the customer.", + "type": "string" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "salutation": { + "$ref": "#/components/schemas/Salutation" } }, "type": "object" }, - "OrderTransactionCapture": { - "description": "Added since version: 6.4.12.0", + "OrderDelivery": { + "description": "Added since version: 6.0.0.0", "required": [ "id", - "orderTransactionId", + "orderId", + "shippingOrderAddressId", + "shippingMethodId", "stateId", - "amount" + "shippingDateEarliest", + "shippingDateLatest" ], "properties": { "id": { @@ -7739,22 +7951,51 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderTransactionId": { + "orderId": { + "description": "Unique identity of order.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderTransactionVersionId": { + "orderVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shippingOrderAddressId": { + "description": "Unique identity of order's shipping address.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shippingOrderAddressVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shippingMethodId": { + "description": "Unique identity of shipping method.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "stateId": { + "description": "Unique identity of state.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "externalReference": { - "type": "string" + "trackingCodes": { + "type": "array", + "items": { + "type": "string" + } }, - "amount": { + "shippingDateEarliest": { + "description": "Date and time of earliest delivery of products.", + "type": "string", + "format": "date-time" + }, + "shippingDateLatest": { + "description": "Date and time of latest delivery of products.", + "type": "string", + "format": "date-time" + }, + "shippingCosts": { "required": [ "unitPrice", "totalPrice", @@ -7825,27 +8066,33 @@ "readOnly": true }, "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" + "$ref": "#/components/schemas/StateMachineState", + "description": "Current delivery state (e.g., open, shipped, delivered, cancelled)" }, - "transaction": { - "$ref": "#/components/schemas/OrderTransaction" + "shippingOrderAddress": { + "$ref": "#/components/schemas/OrderAddress", + "description": "Shipping address for this delivery" }, - "refunds": { + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod", + "description": "Shipping method used for this delivery" + }, + "positions": { + "description": "Line items included in this delivery", "type": "array", "items": { - "$ref": "#/components/schemas/OrderTransactionCaptureRefund" + "$ref": "#/components/schemas/OrderDeliveryPosition" } } }, "type": "object" }, - "OrderTransactionCaptureRefund": { - "description": "Added since version: 6.4.12.0", + "OrderDeliveryPosition": { + "description": "Added since version: 6.0.0.0", "required": [ "id", - "captureId", - "stateId", - "amount" + "orderDeliveryId", + "orderLineItemId" ], "properties": { "id": { @@ -7856,25 +8103,25 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "captureId": { + "orderDeliveryId": { + "description": "Unique identity of order delivery.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "captureVersionId": { + "orderDeliveryVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "stateId": { + "orderLineItemId": { + "description": "Unique identity of line items in an order.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "externalReference": { - "type": "string" - }, - "reason": { - "type": "string" + "orderLineItemVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "amount": { + "price": { "required": [ "unitPrice", "totalPrice", @@ -7931,6 +8178,21 @@ }, "type": "object" }, + "unitPrice": { + "description": "Price of product per item (where, quantity=1).", + "type": "number", + "format": "float" + }, + "totalPrice": { + "description": "Cost of product based on quantity.", + "type": "number", + "format": "float" + }, + "quantity": { + "description": "Number of items of each product.", + "type": "integer", + "format": "int64" + }, "customFields": { "type": "object" }, @@ -7943,29 +8205,21 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" - }, - "transactionCapture": { - "$ref": "#/components/schemas/OrderTransactionCapture" - }, - "positions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/OrderTransactionCaptureRefundPosition" - } } }, "type": "object" }, - "OrderTransactionCaptureRefundPosition": { - "description": "Added since version: 6.4.12.0", + "OrderLineItem": { + "description": "Added since version: 6.0.0.0", "required": [ + "apiAlias", "id", - "refundId", - "orderLineItemId", - "amount" + "orderId", + "identifier", + "quantity", + "label", + "children", + "states" ], "properties": { "id": { @@ -7976,92 +8230,208 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "refundId": { + "orderId": { + "description": "Unique identity of order.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "refundVersionId": { + "orderVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderLineItemId": { + "productId": { + "description": "Unique identity of product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderLineItemVersionId": { + "productVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "externalReference": { + "promotionId": { + "description": "Unique identity of product.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "parentId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "parentVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "coverId": { + "description": "Unique identity of cover image.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "identifier": { + "description": "It is a unique identity of an item in cart before its converted to an order.", "type": "string" }, - "reason": { + "referencedId": { + "description": "Unique identity of type of entity.", "type": "string" }, "quantity": { + "description": "Number of items of product.", "type": "integer", "format": "int64" }, - "amount": { - "required": [ - "unitPrice", - "totalPrice", - "quantity" - ], + "label": { + "description": "It is a typical product name given to the line item.", + "type": "string" + }, + "payload": { + "type": "object", "properties": { - "unitPrice": { - "type": "number", - "format": "float" - }, - "totalPrice": { - "type": "number", - "format": "float" + "categoryIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true }, - "quantity": { - "type": "integer", - "format": "int64" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "calculatedTaxes": { + "customFields": { "type": "object" }, - "taxRules": { - "type": "object" + "features": { + "type": "array" }, - "referencePrice": { - "type": "object" + "isCloseout": { + "type": "boolean" }, - "listPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - }, - "discount": { - "type": "number", - "format": "float" - }, - "percentage": { - "type": "number", - "format": "float" - } + "isNew": { + "type": "boolean" + }, + "manufacturerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "markAsTopseller": { + "type": "boolean" + }, + "optionIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "type": "object" + "readOnly": true }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } + "options": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertyGroupOption" + } + }, + "parentId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productNumber": { + "type": "string" + }, + "propertyIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "type": "object" + "readOnly": true + }, + "purchasePrices": { + "type": "string" + }, + "releaseDate": { + "type": "string", + "format": "date-time" + }, + "stock": { + "type": "integer", + "format": "int64" + }, + "streamIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "tagIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "taxId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productType": { + "$ref": "#/components/schemas/Product/properties/type" } - }, - "type": "object" + } + }, + "good": { + "description": "When set to true, it indicates the line item is physical else it is virtual.", + "type": "boolean" + }, + "removable": { + "description": "Allows the line item to be removable from the cart when set to true.", + "type": "boolean" + }, + "stackable": { + "description": "Allows to change the quantity of the line item when set to true.", + "type": "boolean" + }, + "position": { + "description": "Position of line items placed in an order.", + "type": "integer", + "format": "int64" + }, + "priceDefinition": { + "type": "object", + "$ref": "#/components/schemas/CartPriceQuantity" + }, + "unitPrice": { + "description": "Price of product per item (where, quantity=1).", + "type": "number", + "format": "float" + }, + "totalPrice": { + "description": "Cost of product based on quantity.", + "type": "number", + "format": "float" + }, + "description": { + "description": "Description of line items in an order.", + "type": "string" + }, + "type": { + "description": "Type refers to the entity type of an item whether it is product or promotion for instance.", + "type": "string" }, "customFields": { "type": "object" }, + "states": { + "type": "array", + "items": { + "type": "string" + }, + "deprecated": true + }, "createdAt": { "type": "string", "format": "date-time", @@ -8072,183 +8442,159 @@ "format": "date-time", "readOnly": true }, - "orderLineItem": { - "$ref": "#/components/schemas/OrderLineItem" - }, - "orderTransactionCaptureRefund": { - "$ref": "#/components/schemas/OrderTransactionCaptureRefund" - } - }, - "type": "object" - }, - "OrderWarehouseGroup": { - "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" - }, - "PaymentMethodJsonApi": { - "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource" - }, - { - "required": [ - "id", - "technicalName", - "name" - ], + "extensions": { "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "name": { - "type": "string" - }, - "distinguishableName": { - "type": "string", - "readOnly": true - }, - "description": { - "type": "string" - }, - "position": { - "type": "integer", - "format": "int64" - }, - "active": { - "type": "boolean" - }, - "afterOrderEnabled": { - "type": "boolean" - }, - "customFields": { - "type": "object" - }, - "mediaId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "technicalName": { - "type": "string" - }, - "shortName": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { + "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" }, - "relationships": { + "state": { "properties": { - "media": { + "links": { + "type": "object", "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/payment-method/da8da1569e6bef3249a7064261df833f/media" - } - } + "related": { + "type": "string", + "format": "uri-reference", + "example": "/order-line-item/40b401ac0b29ac5c5c8ffce649fdef62/state" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "state_machine_state" }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "media" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "62933a2951ef01f4eafd9bdf4d3cd2f0" - } - } + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "9ed39e2ea931586b6a985a6942ef573e" } - }, - "type": "object" + } } }, "type": "object" } }, "type": "object" + }, + "cover": { + "$ref": "#/components/schemas/Media", + "description": "Line item image or thumbnail" + }, + "product": { + "$ref": "#/components/schemas/Product", + "description": "Referenced product if this is a product line item" + }, + "orderDeliveryPositions": { + "description": "Delivery positions for this line item", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderDeliveryPosition" + } + }, + "downloads": { + "description": "Digital downloads associated with this line item", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderLineItemDownload" + } + }, + "parent": { + "$ref": "#/components/schemas/OrderLineItem" + }, + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderLineItem" + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "order_line_item" + ] + }, + "translated": { + "type": "object" } - ] + }, + "type": "object" }, - "PaymentMethod": { - "description": "Added since version: 6.0.0.0", + "OrderLineItemDownload": { + "description": "Added since version: 6.4.19.0", "required": [ + "media", "id", - "technicalName", - "name" + "orderLineItemId", + "mediaId", + "position", + "accessGranted" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "distinguishableName": { + "orderLineItemId": { + "description": "Unique identity of Order line item.", "type": "string", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "description": { - "type": "string" + "orderLineItemVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "mediaId": { + "description": "Unique identity of media.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "position": { + "description": "The order of downloaded digital products displayed in the storefront by mentioning numerical values like 1,2,3, etc.", "type": "integer", "format": "int64" }, - "active": { - "type": "boolean" - }, - "afterOrderEnabled": { + "accessGranted": { + "description": "When boolean value is `true`, the digital product is allowed to download.", "type": "boolean" }, "customFields": { "type": "object" }, - "mediaId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "technicalName": { - "type": "string" - }, - "shortName": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string" - }, "createdAt": { "type": "string", "format": "date-time", @@ -8259,8 +8605,8 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object" + "orderLineItem": { + "$ref": "#/components/schemas/OrderLineItem" }, "media": { "$ref": "#/components/schemas/Media" @@ -8268,11 +8614,7 @@ }, "type": "object" }, - "Plugin": { - "description": "Added since version: 6.0.0.0", - "required": [ - "label" - ], + "OrderProductWarehouse": { "properties": { "id": { "type": "string", @@ -8287,478 +8629,1546 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "translated": { - "type": "object" } }, "type": "object" }, - "ProductJsonApi": { - "description": "Added since version: 6.0.0.0", - "allOf": [ - { - "$ref": "#/components/schemas/resource", - "required": [ - "options" - ], - "properties": { - "options": { - "type": "array", - "items": { - "type": "object", - "required": [ - "group", - "option", - "translated" - ], - "properties": { - "group": { - "type": "string" - }, - "option": { - "type": "string" - }, - "translated": { - "type": "object", - "properties": { - "group": { - "type": "string" - }, - "option": { - "type": "string" - } - }, - "required": [ - "group", - "option" - ] - } - } - } - } - } + "OrderReturn": { + "required": [ + "id", + "orderId", + "stateId", + "returnNumber", + "requestedAt" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - { + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "price": { "required": [ - "id", - "taxId", - "productNumber", - "stock", - "name" + "netPrice", + "totalPrice", + "positionPrice", + "rawTotal", + "taxStatus" ], "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "manufacturerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productManufacturerVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "unitId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "taxId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "coverId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productMediaVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "deliveryTimeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "canonicalProductId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "canonicalProductVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "cmsPageId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "cmsPageVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "productNumber": { - "type": "string" - }, - "restockTime": { - "type": "integer", - "format": "int64" - }, - "active": { - "type": "boolean" - }, - "available": { - "type": "boolean", - "readOnly": true - }, - "isCloseout": { - "type": "boolean" - }, - "availableStock": { - "type": "integer", - "format": "int64", - "readOnly": true - }, - "stock": { - "type": "integer", - "format": "int64" - }, - "displayGroup": { - "type": "string", - "readOnly": true - }, - "manufacturerNumber": { - "type": "string" - }, - "ean": { - "type": "string" - }, - "purchaseSteps": { - "type": "integer", - "format": "int64" - }, - "maxPurchase": { - "type": "integer", - "format": "int64" - }, - "minPurchase": { - "type": "integer", - "format": "int64" - }, - "purchaseUnit": { + "netPrice": { "type": "number", "format": "float" }, - "referenceUnit": { + "totalPrice": { "type": "number", "format": "float" }, - "shippingFree": { - "type": "boolean" + "calculatedTaxes": { + "type": "object" }, - "markAsTopseller": { - "type": "boolean" + "taxRules": { + "type": "object" }, - "weight": { + "positionPrice": { "type": "number", "format": "float" }, - "width": { + "rawTotal": { "type": "number", "format": "float" }, - "height": { + "taxStatus": { + "type": "string" + } + }, + "type": "object" + }, + "shippingCosts": { + "required": [ + "unitPrice", + "totalPrice", + "quantity" + ], + "properties": { + "unitPrice": { "type": "number", "format": "float" }, - "length": { + "totalPrice": { "type": "number", "format": "float" }, - "releaseDate": { - "type": "string", - "format": "date-time" + "quantity": { + "type": "integer", + "format": "int64" }, - "ratingAverage": { - "type": "number", - "format": "float", - "readOnly": true + "calculatedTaxes": { + "type": "object" }, - "categoryTree": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true + "taxRules": { + "type": "object" }, - "propertyIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true + "referencePrice": { + "type": "object" }, - "optionIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "streamIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "tagIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "categoryIds": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "readOnly": true - }, - "childCount": { - "type": "integer", - "format": "int64", - "readOnly": true - }, - "sales": { - "type": "integer", - "format": "int64", - "readOnly": true - }, - "states": { - "type": "array", - "items": { - "type": "string" + "listPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + }, + "discount": { + "type": "number", + "format": "float" + }, + "percentage": { + "type": "number", + "format": "float" + } }, - "readOnly": true - }, - "metaDescription": { - "type": "string" - }, - "name": { - "type": "string" - }, - "keywords": { - "type": "string" - }, - "description": { - "type": "string" - }, - "metaTitle": { - "type": "string" - }, - "packUnit": { - "type": "string" - }, - "packUnitPlural": { - "type": "string" - }, - "customFields": { - "type": "object" - }, - "calculatedPrice": { - "type": "object" - }, - "calculatedPrices": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": false - } - }, - "calculatedMaxPurchase": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "integer", - "format": "int64" - }, - "calculatedCheapestPrice": { - "type": "object" - }, - "isNew": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean" - }, - "sortedProperties": { - "type": "object" - }, - "measurements": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { "type": "object" }, - "extensions": { + "regulationPrice": { "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" + "price": { + "type": "number", + "format": "float" } }, "type": "object" - }, - "relationships": { - "properties": { - "downloads": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/downloads" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "product_download" - }, - "id": { - "type": "string", - "example": "d07d50a751bc6ddf12bf3af0efee9b45" - } - } - } - } - }, - "type": "object" - }, - "parent": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/parent" - } - } - }, - "data": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "product" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "example": "d0e45878043844ffc41aac437e86b602" - } - } - } - }, - "type": "object" - }, - "children": { - "properties": { - "links": { - "type": "object", - "properties": { - "related": { - "type": "string", - "format": "uri-reference", - "example": "/product/deb10517653c255364175796ace3553f/children" - } - } - }, - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string", - "example": "product" - }, - "id": { - "type": "string", - "example": "268184c12df027f536154d099d497b31" - } - } - } - } - }, - "type": "object" - }, - "deliveryTime": { - "properties": { - "links": { - "type": "object", - "properties": { + } + }, + "type": "object" + }, + "stateId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "returnNumber": { + "type": "string" + }, + "requestedAt": { + "type": "string", + "format": "date-time" + }, + "amountTotal": { + "type": "number", + "format": "float" + }, + "amountNet": { + "type": "number", + "format": "float" + }, + "createdById": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "updatedById": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "state": { + "$ref": "#/components/schemas/StateMachineState" + }, + "lineItems": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderReturnLineItem" + } + } + }, + "type": "object" + }, + "OrderReturnLineItem": { + "required": [ + "id", + "orderReturnId", + "orderLineItemId", + "reasonId", + "quantity", + "stateId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderReturnId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderReturnVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderLineItemId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderLineItemVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "reasonId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "quantity": { + "type": "integer", + "format": "int64" + }, + "refundAmount": { + "type": "number", + "format": "float" + }, + "restockQuantity": { + "type": "integer", + "format": "int64" + }, + "customFields": { + "type": "object" + }, + "stateId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "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": [ + "id", + "reasonKey", + "content" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "reasonKey": { + "type": "string" + }, + "content": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "OrderTag": { + "description": "Added since version: 6.0.0.0", + "required": [ + "orderId", + "tagId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "tagId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "order": { + "$ref": "#/components/schemas/Order" + }, + "tag": { + "$ref": "#/components/schemas/Tag" + } + }, + "type": "object" + }, + "OrderTransaction": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "orderId", + "paymentMethodId", + "amount", + "stateId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderId": { + "description": "Unique identity of an order.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "paymentMethodId": { + "description": "Unique identity of payment method.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "amount": { + "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" + }, + "validationData": { + "type": "object" + }, + "stateId": { + "description": "Unique identity of state.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "stateMachineState": { + "$ref": "#/components/schemas/StateMachineState", + "description": "Current payment transaction state (e.g., open, paid, cancelled)" + }, + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod", + "description": "Payment method used for this transaction" + }, + "captures": { + "description": "Payment captures for this transaction", + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderTransactionCapture" + } + } + }, + "type": "object" + }, + "OrderTransactionCapture": { + "description": "Added since version: 6.4.12.0", + "required": [ + "id", + "orderTransactionId", + "stateId", + "amount" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderTransactionId": { + "description": "Unique identity of order transaction.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderTransactionVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "stateId": { + "description": "Unique identity of order state.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "externalReference": { + "description": "External payment provider token.", + "type": "string" + }, + "amount": { + "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" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "stateMachineState": { + "$ref": "#/components/schemas/StateMachineState" + }, + "transaction": { + "$ref": "#/components/schemas/OrderTransaction" + }, + "refunds": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderTransactionCaptureRefund" + } + } + }, + "type": "object" + }, + "OrderTransactionCaptureRefund": { + "description": "Added since version: 6.4.12.0", + "required": [ + "id", + "captureId", + "stateId", + "amount" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "captureId": { + "description": "Unique identity of order transaction capture.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "captureVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "stateId": { + "description": "Unique identity of order state.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "externalReference": { + "description": "External payment provider token.", + "type": "string" + }, + "reason": { + "description": "Reason for refunding the amount for an order.", + "type": "string" + }, + "amount": { + "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" + }, + "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" + }, + "positions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/OrderTransactionCaptureRefundPosition" + } + } + }, + "type": "object" + }, + "OrderTransactionCaptureRefundPosition": { + "description": "Added since version: 6.4.12.0", + "required": [ + "id", + "refundId", + "orderLineItemId", + "amount" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "refundId": { + "description": "Unique identity of order transaction capture refund.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "refundVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderLineItemId": { + "description": "Unique identity of order line item.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "orderLineItemVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "externalReference": { + "description": "External payment provider token.", + "type": "string" + }, + "reason": { + "description": "Reason for refunding the amount for an order.", + "type": "string" + }, + "quantity": { + "description": "Quantity of line item to be refunded.", + "type": "integer", + "format": "int64" + }, + "amount": { + "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" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "orderLineItem": { + "$ref": "#/components/schemas/OrderLineItem" + }, + "orderTransactionCaptureRefund": { + "$ref": "#/components/schemas/OrderTransactionCaptureRefund" + } + }, + "type": "object" + }, + "OrderWarehouseGroup": { + "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" + }, + "PaymentMethodJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" + }, + { + "required": [ + "id", + "technicalName", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "name": { + "type": "string" + }, + "distinguishableName": { + "type": "string", + "readOnly": true + }, + "description": { + "type": "string" + }, + "position": { + "description": "The order of the tabs of your defined payment methods in the storefront by entering numerical values like 1,2,3, etc.", + "type": "integer", + "format": "int64" + }, + "active": { + "description": "When boolean value is `true`, the payment methods are available for selection in the storefront.", + "type": "boolean" + }, + "afterOrderEnabled": { + "description": "When set to true, customers are redirected to the payment options page to choose a new payment method on order failure.", + "type": "boolean" + }, + "customFields": { + "type": "object" + }, + "mediaId": { + "description": "Unique identity of media.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "technicalName": { + "type": "string" + }, + "shortName": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + }, + "relationships": { + "properties": { + "media": { + "description": "Payment method logo or icon image", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/payment-method/da8da1569e6bef3249a7064261df833f/media" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "media" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "62933a2951ef01f4eafd9bdf4d3cd2f0" + } + } + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + ] + }, + "PaymentMethod": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "technicalName", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "name": { + "type": "string" + }, + "distinguishableName": { + "type": "string", + "readOnly": true + }, + "description": { + "type": "string" + }, + "position": { + "description": "The order of the tabs of your defined payment methods in the storefront by entering numerical values like 1,2,3, etc.", + "type": "integer", + "format": "int64" + }, + "active": { + "description": "When boolean value is `true`, the payment methods are available for selection in the storefront.", + "type": "boolean" + }, + "afterOrderEnabled": { + "description": "When set to true, customers are redirected to the payment options page to choose a new payment method on order failure.", + "type": "boolean" + }, + "customFields": { + "type": "object" + }, + "mediaId": { + "description": "Unique identity of media.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "technicalName": { + "type": "string" + }, + "shortName": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + }, + "media": { + "$ref": "#/components/schemas/Media", + "description": "Payment method logo or icon image" + } + }, + "type": "object" + }, + "Plugin": { + "description": "Added since version: 6.0.0.0", + "required": [ + "label" + ], + "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 + }, + "translated": { + "type": "object" + } + }, + "type": "object" + }, + "ProductJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource", + "required": [ + "options" + ], + "properties": { + "options": { + "type": "array", + "items": { + "type": "object", + "required": [ + "group", + "option", + "translated" + ], + "properties": { + "group": { + "type": "string" + }, + "option": { + "type": "string" + }, + "translated": { + "type": "object", + "properties": { + "group": { + "type": "string" + }, + "option": { + "type": "string" + } + }, + "required": [ + "group", + "option" + ] + } + } + } + } + } + }, + { + "required": [ + "id", + "taxId", + "productNumber", + "stock", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "parentId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "parentVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "manufacturerId": { + "description": "Unique identity of the manufacturer.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productManufacturerVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "unitId": { + "description": "Unique identity of the unit.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "taxId": { + "description": "Unique identity of tax.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "coverId": { + "description": "Unique identity of a ProductMedia item used as product cover.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productMediaVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "deliveryTimeId": { + "description": "Unique identity of delivery time.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "canonicalProductId": { + "description": "Unique identity of canonical product.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "canonicalProductVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cmsPageId": { + "description": "Unique identity of CMS page.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cmsPageVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "productNumber": { + "description": "Unique number assigned to individual products. Define rules for automatic assignment of every product creation as per your number range.", + "type": "string" + }, + "restockTime": { + "description": "The restock time in days indicates how long it will take until a sold out item is back in stock.", + "type": "integer", + "format": "int64" + }, + "active": { + "description": "When boolean value is `true`, the products are available for selection in the storefront for purchase.", + "type": "boolean" + }, + "available": { + "description": "Indicates weather the product is available or not.", + "type": "boolean", + "readOnly": true + }, + "isCloseout": { + "description": "When the value is set to true, the product is hidden when sold out.", + "type": "boolean" + }, + "availableStock": { + "description": "Indicates the number of products still available. This value results from the stock minus the open orders.", + "type": "integer", + "format": "int64", + "readOnly": true + }, + "stock": { + "description": "Indicates the number of products available.", + "type": "integer", + "format": "int64" + }, + "displayGroup": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string", + "readOnly": true + }, + "manufacturerNumber": { + "description": "Unique number that describes the manufacturer.", + "type": "string" + }, + "ean": { + "description": "Indicates EAN of the product.", + "type": "string" + }, + "purchaseSteps": { + "description": "Specifies the scales in which the item is to be offered. For example, a scale of 2 means that your customers can purchase 2, 4, 6 products, etc., but not 1, 3 or 5.", + "type": "integer", + "format": "int64" + }, + "maxPurchase": { + "description": "Maximum number of items that can be purchased.", + "type": "integer", + "format": "int64" + }, + "minPurchase": { + "description": "Minimum number of items that can be purchased.", + "type": "integer", + "format": "int64" + }, + "purchaseUnit": { + "description": "Quantity of the item purchased. For example, 500ml, 2kg, etc.", + "type": "number", + "format": "float" + }, + "referenceUnit": { + "description": "Price of purchased item calculated as per the reference unit. Say, you bought 500ml of milk and the price is calculated in reference to 1000ml.", + "type": "number", + "format": "float" + }, + "shippingFree": { + "description": "Indicates weather the shipping price is free or not.", + "type": "boolean" + }, + "markAsTopseller": { + "description": "Indicates weather the product is top seller or not.", + "type": "boolean" + }, + "weight": { + "description": "The weight of the product.", + "type": "number", + "format": "float" + }, + "width": { + "description": "The width of the product.", + "type": "number", + "format": "float" + }, + "height": { + "description": "The height of the product.", + "type": "number", + "format": "float" + }, + "length": { + "description": "The length of the product.", + "type": "number", + "format": "float" + }, + "releaseDate": { + "description": "The release date of a product or product model. This can be used to distinguish the exact variant of a product.", + "type": "string", + "format": "date-time" + }, + "ratingAverage": { + "description": "Average of all the ratings.", + "type": "number", + "format": "float", + "readOnly": true + }, + "categoryTree": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "propertyIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "optionIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "streamIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "tagIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "categoryIds": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "readOnly": true + }, + "childCount": { + "type": "integer", + "format": "int64", + "readOnly": true + }, + "sales": { + "description": "Frequency of the product sales.", + "type": "integer", + "format": "int64", + "readOnly": true + }, + "metaDescription": { + "type": "string" + }, + "name": { + "type": "string" + }, + "keywords": { + "type": "string" + }, + "description": { + "type": "string" + }, + "metaTitle": { + "type": "string" + }, + "packUnit": { + "type": "string" + }, + "packUnitPlural": { + "type": "string" + }, + "customFields": { + "type": "object" + }, + "type": { + "description": "The type of the product, e.g., physical or digital.", + "type": "string" + }, + "states": { + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true, + "deprecated": true + }, + "calculatedPrice": { + "type": "object" + }, + "calculatedPrices": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": false + } + }, + "calculatedMaxPurchase": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "integer", + "format": "int64" + }, + "calculatedCheapestPrice": { + "type": "object" + }, + "isNew": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "sortedProperties": { + "type": "object" + }, + "measurements": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "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": { + "description": "Downloadable files associated with the product (e.g., manuals, digital content)", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/downloads" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product_download" + }, + "id": { + "type": "string", + "example": "d07d50a751bc6ddf12bf3af0efee9b45" + } + } + } + } + }, + "type": "object" + }, + "parent": { + "description": "Unique identity of the product.", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/parent" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "d0e45878043844ffc41aac437e86b602" + } + } + } + }, + "type": "object" + }, + "children": { + "description": "Product variants that inherit from this parent product", + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/product/deb10517653c255364175796ace3553f/children" + } + } + }, + "data": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "product" + }, + "id": { + "type": "string", + "example": "268184c12df027f536154d099d497b31" + } + } + } + } + }, + "type": "object" + }, + "deliveryTime": { + "description": "Estimated delivery time for the product", + "properties": { + "links": { + "type": "object", + "properties": { "related": { "type": "string", "format": "uri-reference", @@ -8784,6 +10194,7 @@ "type": "object" }, "tax": { + "description": "Tax configuration (rate and calculation rules)", "properties": { "links": { "type": "object", @@ -8813,6 +10224,7 @@ "type": "object" }, "manufacturer": { + "description": "Product manufacturer or brand information", "properties": { "links": { "type": "object", @@ -8842,6 +10254,7 @@ "type": "object" }, "unit": { + "description": "Product unit of measure (e.g., piece, liter, kg)", "properties": { "links": { "type": "object", @@ -8871,6 +10284,7 @@ "type": "object" }, "cover": { + "description": "Main product image displayed in listings and detail pages", "properties": { "links": { "type": "object", @@ -8900,6 +10314,7 @@ "type": "object" }, "cmsPage": { + "description": "Custom CMS page layout for the product detail page", "properties": { "links": { "type": "object", @@ -8929,6 +10344,7 @@ "type": "object" }, "canonicalProduct": { + "description": "Canonical product reference for variant consolidation and SEO purposes", "properties": { "links": { "type": "object", @@ -8958,6 +10374,7 @@ "type": "object" }, "media": { + "description": "Product images and media gallery", "properties": { "links": { "type": "object", @@ -8989,6 +10406,7 @@ "type": "object" }, "crossSellings": { + "description": "Cross-selling configurations (related products, accessories, similar items)", "properties": { "links": { "type": "object", @@ -9020,6 +10438,7 @@ "type": "object" }, "configuratorSettings": { + "description": "Variant configurator settings defining available options for product variants", "properties": { "links": { "type": "object", @@ -9051,6 +10470,7 @@ "type": "object" }, "productReviews": { + "description": "Customer reviews and ratings for the product", "properties": { "links": { "type": "object", @@ -9082,6 +10502,7 @@ "type": "object" }, "mainCategories": { + "description": "Primary category assignments per sales channel for SEO and navigation", "properties": { "links": { "type": "object", @@ -9113,6 +10534,7 @@ "type": "object" }, "seoUrls": { + "description": "SEO-friendly URLs for the product across different sales channels", "properties": { "links": { "type": "object", @@ -9144,6 +10566,7 @@ "type": "object" }, "options": { + "description": "Product variant options (e.g., size, color) that define different variants", "properties": { "links": { "type": "object", @@ -9175,6 +10598,7 @@ "type": "object" }, "properties": { + "description": "Product properties and characteristics for filtering", "properties": { "links": { "type": "object", @@ -9206,6 +10630,7 @@ "type": "object" }, "categories": { + "description": "Categories this product is assigned to", "properties": { "links": { "type": "object", @@ -9237,6 +10662,7 @@ "type": "object" }, "streams": { + "description": "Dynamic product streams this product belongs to based on defined filters", "properties": { "links": { "type": "object", @@ -9268,6 +10694,7 @@ "type": "object" }, "categoriesRo": { + "description": "Read-only category tree including all parent categories for optimized queries", "properties": { "links": { "type": "object", @@ -9299,6 +10726,7 @@ "type": "object" }, "tags": { + "description": "Tags for organizing and filtering products", "properties": { "links": { "type": "object", @@ -9330,6 +10758,7 @@ "type": "object" }, "seoCategory": { + "description": "Main category used for SEO URL generation in the current sales channel", "properties": { "links": { "type": "object", @@ -9373,6 +10802,7 @@ "calculatedPrice", "calculatedPrices", "seoCategory", + "type", "translated", "id", "taxId", @@ -9398,6 +10828,7 @@ "pattern": "^[0-9a-f]{32}$" }, "manufacturerId": { + "description": "Unique identity of the manufacturer.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -9406,14 +10837,17 @@ "pattern": "^[0-9a-f]{32}$" }, "unitId": { + "description": "Unique identity of the unit.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "taxId": { + "description": "Unique identity of tax.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "coverId": { + "description": "Unique identity of a ProductMedia item used as product cover.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -9422,10 +10856,12 @@ "pattern": "^[0-9a-f]{32}$" }, "deliveryTimeId": { + "description": "Unique identity of delivery time.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "canonicalProductId": { + "description": "Unique identity of canonical product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -9434,6 +10870,7 @@ "pattern": "^[0-9a-f]{32}$" }, "cmsPageId": { + "description": "Unique identity of CMS page.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -9442,88 +10879,111 @@ "pattern": "^[0-9a-f]{32}$" }, "productNumber": { + "description": "Unique number assigned to individual products. Define rules for automatic assignment of every product creation as per your number range.", "type": "string" }, "restockTime": { + "description": "The restock time in days indicates how long it will take until a sold out item is back in stock.", "type": "integer", "format": "int64" }, "active": { + "description": "When boolean value is `true`, the products are available for selection in the storefront for purchase.", "type": "boolean" }, "available": { + "description": "Indicates weather the product is available or not.", "type": "boolean", "readOnly": true }, "isCloseout": { + "description": "When the value is set to true, the product is hidden when sold out.", "type": "boolean" }, "availableStock": { + "description": "Indicates the number of products still available. This value results from the stock minus the open orders.", "type": "integer", "format": "int64", "readOnly": true }, "stock": { + "description": "Indicates the number of products available.", "type": "integer", "format": "int64" }, "displayGroup": { + "description": "Runtime field, cannot be used as part of the criteria.", "type": "string", "readOnly": true }, "manufacturerNumber": { + "description": "Unique number that describes the manufacturer.", "type": "string" }, "ean": { + "description": "Indicates EAN of the product.", "type": "string" }, "purchaseSteps": { + "description": "Specifies the scales in which the item is to be offered. For example, a scale of 2 means that your customers can purchase 2, 4, 6 products, etc., but not 1, 3 or 5.", "type": "integer", "format": "int64" }, "maxPurchase": { + "description": "Maximum number of items that can be purchased.", "type": "integer", "format": "int64" }, "minPurchase": { + "description": "Minimum number of items that can be purchased.", "type": "integer", "format": "int64" }, "purchaseUnit": { + "description": "Quantity of the item purchased. For example, 500ml, 2kg, etc.", "type": "number", "format": "float" }, "referenceUnit": { + "description": "Price of purchased item calculated as per the reference unit. Say, you bought 500ml of milk and the price is calculated in reference to 1000ml.", "type": "number", "format": "float" }, "shippingFree": { + "description": "Indicates weather the shipping price is free or not.", "type": "boolean" }, "markAsTopseller": { + "description": "Indicates weather the product is top seller or not.", "type": "boolean" }, "weight": { + "description": "The weight of the product.", "type": "number", "format": "float" }, "width": { + "description": "The width of the product.", "type": "number", "format": "float" }, "height": { + "description": "The height of the product.", "type": "number", "format": "float" }, "length": { + "description": "The length of the product.", "type": "number", "format": "float" }, "releaseDate": { + "description": "The release date of a product or product model. This can be used to distinguish the exact variant of a product.", "type": "string", "format": "date-time" }, "ratingAverage": { + "description": "Average of all the ratings.", "type": "number", "format": "float", "readOnly": true @@ -9582,17 +11042,11 @@ "readOnly": true }, "sales": { + "description": "Frequency of the product sales.", "type": "integer", "format": "int64", "readOnly": true }, - "states": { - "type": "array", - "items": { - "type": "string" - }, - "readOnly": true - }, "metaDescription": { "type": "string" }, @@ -9617,6 +11071,22 @@ "customFields": { "type": "object" }, + "type": { + "description": "The type of the product, e.g., physical or digital.", + "type": "string", + "enum": [ + "physical", + "digital" + ] + }, + "states": { + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true, + "deprecated": true + }, "calculatedPrice": { "type": "object", "$ref": "#/components/schemas/CalculatedPrice" @@ -9771,115 +11241,138 @@ "type": "object" }, "downloads": { + "description": "Downloadable files associated with the product (e.g., manuals, digital content)", "type": "array", "items": { "$ref": "#/components/schemas/ProductDownload" } }, "parent": { - "$ref": "#/components/schemas/Product" + "$ref": "#/components/schemas/Product", + "description": "Unique identity of the product." }, "children": { + "description": "Product variants that inherit from this parent product", "type": "array", "items": { "$ref": "#/components/schemas/Product" } }, "deliveryTime": { - "$ref": "#/components/schemas/DeliveryTime" + "$ref": "#/components/schemas/DeliveryTime", + "description": "Estimated delivery time for the product" }, "tax": { - "$ref": "#/components/schemas/Tax" + "$ref": "#/components/schemas/Tax", + "description": "Tax configuration (rate and calculation rules)" }, "manufacturer": { - "$ref": "#/components/schemas/ProductManufacturer" + "$ref": "#/components/schemas/ProductManufacturer", + "description": "Product manufacturer or brand information" }, "unit": { - "$ref": "#/components/schemas/Unit" + "$ref": "#/components/schemas/Unit", + "description": "Product unit of measure (e.g., piece, liter, kg)" }, "cover": { - "$ref": "#/components/schemas/ProductMedia" + "$ref": "#/components/schemas/ProductMedia", + "description": "Main product image displayed in listings and detail pages" }, "cmsPage": { - "$ref": "#/components/schemas/CmsPage" + "$ref": "#/components/schemas/CmsPage", + "description": "Custom CMS page layout for the product detail page" }, "canonicalProduct": { - "$ref": "#/components/schemas/Product" + "$ref": "#/components/schemas/Product", + "description": "Canonical product reference for variant consolidation and SEO purposes" }, "media": { + "description": "Product images and media gallery", "type": "array", "items": { "$ref": "#/components/schemas/ProductMedia" } }, "crossSellings": { + "description": "Cross-selling configurations (related products, accessories, similar items)", "type": "array", "items": { "$ref": "#/components/schemas/ProductCrossSelling" } }, "configuratorSettings": { + "description": "Variant configurator settings defining available options for product variants", "type": "array", "items": { "$ref": "#/components/schemas/ProductConfiguratorSetting" } }, "productReviews": { + "description": "Customer reviews and ratings for the product", "type": "array", "items": { "$ref": "#/components/schemas/ProductReview" } }, "mainCategories": { + "description": "Primary category assignments per sales channel for SEO and navigation", "type": "array", "items": { "$ref": "#/components/schemas/MainCategory" } }, "seoUrls": { + "description": "SEO-friendly URLs for the product across different sales channels", "type": "array", "items": { "$ref": "#/components/schemas/SeoUrl" } }, "options": { + "description": "Product variant options (e.g., size, color) that define different variants", "type": "array", "items": { "$ref": "#/components/schemas/PropertyGroupOption" } }, "properties": { + "description": "Product properties and characteristics for filtering", "type": "array", "items": { "$ref": "#/components/schemas/PropertyGroupOption" } }, "categories": { + "description": "Categories this product is assigned to", "type": "array", "items": { "$ref": "#/components/schemas/Category" } }, "streams": { + "description": "Dynamic product streams this product belongs to based on defined filters", "type": "array", "items": { "$ref": "#/components/schemas/ProductStream" } }, "categoriesRo": { + "description": "Read-only category tree including all parent categories for optimized queries", "type": "array", "items": { "$ref": "#/components/schemas/Category" } }, "tags": { + "description": "Tags for organizing and filtering products", "type": "array", "items": { "$ref": "#/components/schemas/Tag" } }, "seoCategory": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/Category", + "description": "Main category used for SEO URL generation in the current sales channel" }, "apiAlias": { "type": "string", @@ -9922,6 +11415,7 @@ "pattern": "^[0-9a-f]{32}$" }, "productId": { + "description": "Unique identity of product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -9930,14 +11424,17 @@ "pattern": "^[0-9a-f]{32}$" }, "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "optionId": { + "description": "Unique identity of option.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "position": { + "description": "The order of the tabs of your defined product configuration settings in the storefront by entering numerical values like 1,2,3, etc.", "type": "integer", "format": "int64" }, @@ -9978,22 +11475,28 @@ "type": "string" }, "position": { + "description": "The order of the tabs of your defined cross-selling actions in the storefront by entering numerical values like 1,2,3, etc.", "type": "integer", "format": "int64" }, "sortBy": { + "description": "To sort the display of products by name, price or publication (descending, ascending) date.", "type": "string" }, "sortDirection": { + "description": "To sort the display of products by ascending or descending order.", "type": "string" }, "type": { + "description": "Type of product assignment for cross-selling. It can either be Dynamic product group or Manual assignment.", "type": "string" }, "active": { + "description": "When set to active, the cross-selling feature is enabled.", "type": "boolean" }, "limit": { + "description": "The maximum number of products to be displayed in cross-selling on the item detail page of your item.", "type": "integer", "format": "int64" }, @@ -10050,6 +11553,7 @@ "pattern": "^[0-9a-f]{32}$" }, "productId": { + "description": "Unique identity of Product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -10058,10 +11562,12 @@ "pattern": "^[0-9a-f]{32}$" }, "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "position": { + "description": "The order in which the digital products are downloaded, like 1,2,3, etc.to adjust their order of display.", "type": "integer", "format": "int64" }, @@ -10145,10 +11651,12 @@ "pattern": "^[0-9a-f]{32}$" }, "languageId": { + "description": "Unique identity of the language.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "keyword": { + "description": "The keywords that help to search the product.", "type": "string" } }, @@ -10170,6 +11678,7 @@ "pattern": "^[0-9a-f]{32}$" }, "mediaId": { + "description": "Unique identity of the media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -10222,6 +11731,7 @@ "pattern": "^[0-9a-f]{32}$" }, "productId": { + "description": "Unique identity of the product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -10230,10 +11740,12 @@ "pattern": "^[0-9a-f]{32}$" }, "mediaId": { + "description": "Unique identity of the media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "position": { + "description": "The order of the images to be displayed for a product.", "type": "integer", "format": "int64" }, @@ -10292,6 +11804,7 @@ "pattern": "^[0-9a-f]{32}$" }, "productId": { + "description": "Unique identity of the product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -10300,30 +11813,38 @@ "pattern": "^[0-9a-f]{32}$" }, "salesChannelId": { + "description": "Unique identity of the sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "languageId": { + "description": "Unique identity of the language.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "externalUser": { + "description": "External user name.", "type": "string" }, "title": { + "description": "Title of product review.", "type": "string" }, "content": { + "description": "Short description or subject of the project review.", "type": "string" }, "points": { + "description": "A floating point number given to rate a product.", "type": "number", "format": "float" }, "status": { + "description": "When status is set, the rating is made visible.", "type": "boolean" }, "comment": { + "description": "Detailed review about the product.", "type": "string" }, "customFields": { @@ -10507,6 +12028,10 @@ "customFields": { "type": "object" }, + "internal": { + "description": "When the boolean value is `true` indicating that it is for internal use only and will not appear in product stream listings.", + "type": "boolean" + }, "createdAt": { "type": "string", "format": "date-time", @@ -10729,15 +12254,19 @@ "type": "string" }, "displayType": { + "description": "Property groups can be displayed in the form of text, image, dropdown or color.", "type": "string" }, "sortingType": { + "description": "Sorting the property group by name or position.", "type": "string" }, "filterable": { + "description": "When set to true, the property will be displayed in the product filter of product lists.", "type": "boolean" }, "visibleOnProductDetailPage": { + "description": "When set to true, the property groups are displayed on product detail page.", "type": "boolean" }, "position": { @@ -10785,6 +12314,7 @@ "pattern": "^[0-9a-f]{32}$" }, "groupId": { + "description": "Unique identity of property group.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -10796,9 +12326,11 @@ "format": "int64" }, "colorHexCode": { + "description": "Property group options can be displayed in the form of color. For example: #98e3f5ff.", "type": "string" }, "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -12096,7 +13628,8 @@ "type": "array", "items": { "type": "string" - } + }, + "deprecated": true }, "label": { "type": "string" @@ -12319,9 +13852,11 @@ "pattern": "^[0-9a-f]{32}$" }, "name": { + "description": "Name of the rule defined.", "type": "string" }, "description": { + "description": "Description of the rule.", "type": "string" }, "customFields": { @@ -12416,30 +13951,37 @@ "pattern": "^[0-9a-f]{32}$" }, "languageId": { + "description": "Unique identity of language used.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "customerGroupId": { + "description": "Unique identity of customer group.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "currencyId": { + "description": "Unique identity of currency used.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "paymentMethodId": { + "description": "Unique identity of payment method used.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "shippingMethodId": { + "description": "Unique identity of shipping method.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "countryId": { + "description": "Unique identity of country.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "navigationCategoryId": { + "description": "Unique identity of navigation category.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -12448,10 +13990,12 @@ "pattern": "^[0-9a-f]{32}$" }, "navigationCategoryDepth": { + "description": "It determines the number of levels of subcategories in the storefront category menu.", "type": "integer", "format": "int64" }, "footerCategoryId": { + "description": "Unique identity of footer category.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -12460,6 +14004,7 @@ "pattern": "^[0-9a-f]{32}$" }, "serviceCategoryId": { + "description": "Unique identity of service category.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -12468,10 +14013,12 @@ "pattern": "^[0-9a-f]{32}$" }, "mailHeaderFooterId": { + "description": "Unique identity of mail header and footer.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "hreflangDefaultDomainId": { + "description": "Unique identity of hreflangDefaultDomain.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -12482,21 +14029,26 @@ "type": "string" }, "shortName": { + "description": "A short name for sales channel.", "type": "string" }, "taxCalculationType": { + "description": "Tax calculation types are `horizontal` and `vertical`.", "type": "string" }, "configuration": { "type": "object" }, "active": { + "description": "When boolean value is `true`, the sales channel is enabled.", "type": "boolean" }, "hreflangActive": { + "description": "When set to true, the sales channel pages are available in different languages.", "type": "boolean" }, "maintenance": { + "description": "When `true`, it indicates that the sales channel is undergoing maintenance, and shopping is temporarily unavailable during this period.", "type": "boolean" }, "customFields": { @@ -12516,34 +14068,43 @@ "type": "object" }, "language": { - "$ref": "#/components/schemas/Language" + "$ref": "#/components/schemas/Language", + "description": "Default language for the sales channel" }, "currency": { - "$ref": "#/components/schemas/Currency" + "$ref": "#/components/schemas/Currency", + "description": "Default currency for the sales channel" }, "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" + "$ref": "#/components/schemas/PaymentMethod", + "description": "Default payment method for the sales channel" }, "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" + "$ref": "#/components/schemas/ShippingMethod", + "description": "Default shipping method for the sales channel" }, "country": { - "$ref": "#/components/schemas/Country" + "$ref": "#/components/schemas/Country", + "description": "Default country for the sales channel" }, "domains": { + "description": "Domain URLs configured for the sales channel", "type": "array", "items": { "$ref": "#/components/schemas/SalesChannelDomain" } }, "navigationCategory": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/Category", + "description": "Root category for navigation menu" }, "footerCategory": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/Category", + "description": "Root category for footer navigation" }, "serviceCategory": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/Category", + "description": "Root category for service pages" }, "hreflangDefaultDomain": { "$ref": "#/components/schemas/SalesChannelDomain" @@ -12587,21 +14148,26 @@ "pattern": "^[0-9a-f]{32}$" }, "url": { + "description": "URL of the sales channel domain.", "type": "string" }, "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "languageId": { + "description": "Unique identity of language used.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "currencyId": { + "description": "Unique identity of currency.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "snippetSetId": { + "description": "Unique identity of snippet set.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -12609,6 +14175,7 @@ "$ref": "#/components/schemas/MeasurementUnits" }, "hreflangUseOnlyLocale": { + "description": "This is used to toggle the language configurations, say between DE and DE-DE for instance.", "type": "boolean" }, "customFields": { @@ -12681,6 +14248,7 @@ "pattern": "^[0-9a-f]{32}$" }, "salutationKey": { + "description": "Technical name given to salutation. For example: mr", "type": "string" }, "displayName": { @@ -12724,6 +14292,7 @@ "pattern": "^[0-9a-f]{32}$" }, "salutationKey": { + "description": "Technical name given to salutation. For example: mr", "type": "string" }, "displayName": { @@ -12812,33 +14381,42 @@ "pattern": "^[0-9a-f]{32}$" }, "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "languageId": { + "description": "Unique identity of language.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "foreignKey": { + "description": "The key that references to product or category entity ID.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "routeName": { + "description": "A destination routeName that has been registered somewhere in the app's router. For example: \\\\\"frontend.detail.page\\\\\"", "type": "string" }, "pathInfo": { + "description": "Path to product URL. For example: \\\\\"/detail/bbf36734504741c79a3bbe3795b91564\\\\\"", "type": "string" }, "seoPathInfo": { + "description": "Seo path to product. For example: \\\\\"Pepper-white-ground-pearl/SW10098\\\\\"", "type": "string" }, "isCanonical": { + "description": "When set to true, search redirects to the main URL.", "type": "boolean" }, "isModified": { + "description": "When boolean value is `true`, the seo url is changed.", "type": "boolean" }, "isDeleted": { + "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.", "type": "boolean" }, "error": { @@ -12883,18 +14461,22 @@ "pattern": "^[0-9a-f]{32}$" }, "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "languageId": { + "description": "Unique identity of language.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "foreignKey": { + "description": "The key that references to product or category entity ID.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "routeName": { + "description": "A destination routeName that has been registered somewhere in the app's router. For example: \\\\\"frontend.detail.page\\\\\"", "type": "string", "enum": [ "frontend.navigation.page", @@ -12903,18 +14485,23 @@ ] }, "pathInfo": { + "description": "Path to product URL. For example: \\\\\"/detail/bbf36734504741c79a3bbe3795b91564\\\\\"", "type": "string" }, "seoPathInfo": { + "description": "Seo path to product. For example: \\\\\"Pepper-white-ground-pearl/SW10098\\\\\"", "type": "string" }, "isCanonical": { + "description": "When set to true, search redirects to the main URL.", "type": "boolean" }, "isModified": { + "description": "When boolean value is `true`, the seo url is changed.", "type": "boolean" }, "isDeleted": { + "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.", "type": "boolean" }, "error": { @@ -12950,10 +14537,12 @@ "pattern": "^[0-9a-f]{32}$" }, "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "isValid": { + "description": "Created SEO URL template can be made usable by setting `isValid` to true.", "type": "boolean" }, "customFields": { @@ -12997,9 +14586,11 @@ "type": "string" }, "active": { + "description": "When boolean value is `true`, the shipping methods are available for selection in the storefront.", "type": "boolean" }, "position": { + "description": "The order of the tabs of your defined shipping methods in the storefront by entering numerical values like 1,2,3, etc.", "type": "integer", "format": "int64" }, @@ -13007,14 +14598,17 @@ "type": "object" }, "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "deliveryTimeId": { + "description": "Unique identity of deliveryTime.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "taxType": { + "description": "Refers `Free`, `Net` or `Gross` type of taxes.", "type": "string" }, "description": { @@ -13039,6 +14633,7 @@ "relationships": { "properties": { "deliveryTime": { + "description": "Estimated delivery time information", "properties": { "links": { "type": "object", @@ -13068,6 +14663,7 @@ "type": "object" }, "availabilityRule": { + "description": "Rule defining when this shipping method is available", "properties": { "links": { "type": "object", @@ -13097,6 +14693,7 @@ "type": "object" }, "prices": { + "description": "Shipping prices based on weight, volume, or cart value", "properties": { "links": { "type": "object", @@ -13128,6 +14725,7 @@ "type": "object" }, "media": { + "description": "Shipping method logo or carrier image", "properties": { "links": { "type": "object", @@ -13157,6 +14755,7 @@ "type": "object" }, "tags": { + "description": "Tags for organizing shipping methods", "properties": { "links": { "type": "object", @@ -13188,6 +14787,7 @@ "type": "object" }, "tax": { + "description": "Tax configuration for shipping costs", "properties": { "links": { "type": "object", @@ -13222,53 +14822,230 @@ }, "type": "object" } - ] + ] + }, + "ShippingMethod": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "technicalName", + "deliveryTimeId", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "name": { + "type": "string" + }, + "technicalName": { + "type": "string" + }, + "active": { + "description": "When boolean value is `true`, the shipping methods are available for selection in the storefront.", + "type": "boolean" + }, + "position": { + "description": "The order of the tabs of your defined shipping methods in the storefront by entering numerical values like 1,2,3, etc.", + "type": "integer", + "format": "int64" + }, + "customFields": { + "type": "object" + }, + "mediaId": { + "description": "Unique identity of media.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "deliveryTimeId": { + "description": "Unique identity of deliveryTime.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "taxType": { + "description": "Refers `Free`, `Net` or `Gross` type of taxes.", + "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" + }, + "deliveryTime": { + "$ref": "#/components/schemas/DeliveryTime", + "description": "Estimated delivery time information" + }, + "availabilityRule": { + "$ref": "#/components/schemas/Rule", + "description": "Rule defining when this shipping method is available" + }, + "prices": { + "description": "Shipping prices based on weight, volume, or cart value", + "type": "array", + "items": { + "$ref": "#/components/schemas/ShippingMethodPrice" + } + }, + "media": { + "$ref": "#/components/schemas/Media", + "description": "Shipping method logo or carrier image" + }, + "tags": { + "description": "Tags for organizing shipping methods", + "type": "array", + "items": { + "$ref": "#/components/schemas/Tag" + } + }, + "tax": { + "$ref": "#/components/schemas/Tax", + "description": "Tax configuration for shipping costs" + } + }, + "type": "object" + }, + "ShippingMethodPrice": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "shippingMethodId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shippingMethodId": { + "description": "Unique identity of shipping method.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "ruleId": { + "description": "Unique identity of rule.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "calculation": { + "description": "Shipping price calculated based on quantity, price, weight or volume of items.", + "type": "integer", + "format": "int64" + }, + "calculationRuleId": { + "description": "Unique identity of rule calculation.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "quantityStart": { + "description": "Starting range of quantity of an item.", + "type": "number", + "format": "float" + }, + "quantityEnd": { + "description": "Ending range of quantity of an item.", + "type": "number", + "format": "float" + }, + "currencyPrice": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Price" + } + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" }, - "ShippingMethod": { + "Snippet": { "description": "Added since version: 6.0.0.0", "required": [ - "id", - "technicalName", - "deliveryTimeId", - "name" + "setId", + "translationKey", + "value" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" + "setId": { + "description": "Unique identity od snippet set.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "technicalName": { + "translationKey": { + "description": "Reference to the snippet in the template.", "type": "string" }, - "active": { - "type": "boolean" - }, - "position": { - "type": "integer", - "format": "int64" + "value": { + "description": "Value of the key.", + "type": "string" }, "customFields": { "type": "object" }, - "mediaId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "deliveryTimeId": { + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SnippetSet": { + "description": "Added since version: 6.0.0.0", + "required": [ + "name", + "iso" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "taxType": { + "name": { + "description": "Name of snippet set.", "type": "string" }, - "description": { + "iso": { + "description": "ISO nomenclature used to classify languages.", "type": "string" }, - "trackingUrl": { - "type": "string" + "customFields": { + "type": "object" }, "createdAt": { "type": "string", @@ -13280,79 +15057,194 @@ "format": "date-time", "readOnly": true }, - "translated": { - "type": "object" - }, - "deliveryTime": { - "$ref": "#/components/schemas/DeliveryTime" - }, - "availabilityRule": { - "$ref": "#/components/schemas/Rule" - }, - "prices": { + "snippets": { "type": "array", "items": { - "$ref": "#/components/schemas/ShippingMethodPrice" + "$ref": "#/components/schemas/Snippet" } + } + }, + "type": "object" + }, + "SpatialRenderConfigSize": { + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "media": { - "$ref": "#/components/schemas/Media" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "tags": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Tag" - } + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SpatialScene": { + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "tax": { - "$ref": "#/components/schemas/Tax" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true } }, "type": "object" }, - "ShippingMethodPrice": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "shippingMethodId" - ], + "SpatialSceneCamera": { "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "shippingMethodId": { + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SpatialSceneGroup": { + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "ruleId": { + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SpatialSceneLight": { + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "calculation": { - "type": "integer", - "format": "int64" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "calculationRuleId": { + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SpatialSceneMaterial": { + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "quantityStart": { - "type": "number", - "format": "float" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "quantityEnd": { - "type": "number", - "format": "float" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SpatialSceneObject": { + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "currencyPrice": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Price" - } + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "customFields": { - "type": "object" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "SpatialScenePrimitive": { + "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" + }, + "SsoProvider": { + "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 + }, + "media": { + "$ref": "#/components/schemas/Media" + } + }, + "type": "object" + }, + "SsoProviderCustomer": { + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "createdAt": { "type": "string", @@ -13367,31 +15259,51 @@ }, "type": "object" }, - "Snippet": { + "StateMachine": { "description": "Added since version: 6.0.0.0", "required": [ - "setId", - "translationKey", - "value" + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "setId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "translationKey": { - "type": "string" + "format": "date-time", + "readOnly": true }, - "value": { - "type": "string" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "customFields": { + "translated": { "type": "object" }, + "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", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, "createdAt": { "type": "string", "format": "date-time", @@ -13401,25 +15313,33 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "fromStateMachineState": { + "$ref": "#/components/schemas/StateMachineState" + }, + "toStateMachineState": { + "$ref": "#/components/schemas/StateMachineState" } }, "type": "object" }, - "SnippetSet": { + "StateMachineState": { "description": "Added since version: 6.0.0.0", "required": [ - "name", - "iso" + "translated", + "technicalName", + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { + "technicalName": { + "description": "Technical name of StateMachineState.", "type": "string" }, - "iso": { + "name": { "type": "string" }, "customFields": { @@ -13435,16 +15355,14 @@ "format": "date-time", "readOnly": true }, - "snippets": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Snippet" - } + "translated": { + "type": "object" } }, "type": "object" }, - "SpatialRenderConfigSize": { + "StateMachineTransition": { + "description": "Added since version: 6.0.0.0", "properties": { "id": { "type": "string", @@ -13463,106 +15381,279 @@ }, "type": "object" }, - "SpatialScene": { + "Subscription": { + "required": [ + "id", + "convertedOrder", + "subscriptionNumber", + "nextSchedule", + "followingNextSchedule", + "salesChannelId", + "subscriptionPlanName", + "subscriptionIntervalName", + "dateInterval", + "cronInterval", + "billingAddressId", + "shippingAddressId", + "shippingMethodId", + "paymentMethodId", + "currencyId", + "languageId" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "convertedOrder": { + "type": "object" + }, + "subscriptionNumber": { + "type": "string" + }, + "nextSchedule": { + "type": "string", + "format": "date-time" + }, + "followingNextSchedule": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string", + "format": "date-time" + }, + "salesChannelId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "subscriptionPlanId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "subscriptionPlanName": { + "type": "string" + }, + "subscriptionIntervalId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "subscriptionIntervalName": { + "type": "string" + }, + "dateInterval": { + "type": "string" + }, + "cronInterval": { + "type": "string" + }, + "initialExecutionCount": { + "type": "integer", + "format": "int64" + }, + "remainingExecutionCount": { + "type": "integer", + "format": "int64" + }, + "billingAddressId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shippingAddressId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shippingMethodId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "paymentMethodId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "languageId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "initialOrderId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "initialOrderVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customFields": { + "type": "object" + }, "createdAt": { "type": "string", "format": "date-time", "readOnly": true }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "extensions": { + "properties": { + "subscriptionEmployee": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/subscription/787ad0b7a17de4ad6b1711bbf8d79fcb/subscriptionEmployee" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "b2b_components_subscription_employee" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "a4844d7989267e34103e44248b16cf6c" + } + } + } + }, + "type": "object" + } + }, + "type": "object" + }, + "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" + }, + "initialOrder": { + "$ref": "#/components/schemas/Order" } }, "type": "object" }, - "SpatialSceneCamera": { + "SubscriptionAddress": { + "required": [ + "id", + "countryId", + "subscriptionId", + "firstName", + "lastName", + "street", + "city" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "countryId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "SpatialSceneGroup": { - "properties": { - "id": { + "subscriptionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "countryStateId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "SpatialSceneLight": { - "properties": { - "id": { + "salutationId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "firstName": { + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "SpatialSceneMaterial": { - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "lastName": { + "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "street": { + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "SpatialSceneObject": { - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "zipcode": { + "type": "string" + }, + "city": { + "type": "string" + }, + "company": { + "type": "string" + }, + "department": { + "type": "string" + }, + "title": { + "type": "string" + }, + "vatId": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "additionalAddressLine1": { + "type": "string" + }, + "additionalAddressLine2": { + "type": "string" + }, + "customFields": { + "type": "object" }, "createdAt": { "type": "string", @@ -13573,56 +15664,75 @@ "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" } }, "type": "object" }, - "SpatialScenePrimitive": { + "SubscriptionCustomer": { + "required": [ + "id", + "salutationId", + "email", + "firstName", + "lastName" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "customerId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "SsoProvider": { - "properties": { - "id": { + "salutationId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "email": { + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "firstName": { + "type": "string" }, - "media": { - "$ref": "#/components/schemas/Media" - } - }, - "type": "object" - }, - "SsoProviderCustomer": { - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "lastName": { + "type": "string" + }, + "company": { + "type": "string" + }, + "title": { + "type": "string" + }, + "customerNumber": { + "type": "string" + }, + "vatIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "customFields": { + "type": "object" }, "createdAt": { "type": "string", @@ -13633,52 +15743,41 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "salutation": { + "$ref": "#/components/schemas/Salutation" } }, "type": "object" }, - "StateMachine": { - "description": "Added since version: 6.0.0.0", + "SubscriptionInterval": { "required": [ - "name" + "id", + "name", + "delayed" ], "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 + "name": { + "type": "string" }, - "translated": { - "type": "object" + "active": { + "type": "boolean" }, - "states": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StateMachineState" - } + "dateInterval": { + "type": "string" }, - "transitions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/StateMachineTransition" - } - } - }, - "type": "object" - }, - "StateMachineHistory": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { + "cronInterval": { + "type": "string" + }, + "delayed": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "availabilityRuleId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -13692,20 +15791,123 @@ "format": "date-time", "readOnly": true }, - "fromStateMachineState": { - "$ref": "#/components/schemas/StateMachineState" + "translated": { + "type": "object" }, - "toStateMachineState": { - "$ref": "#/components/schemas/StateMachineState" + "subscriptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Subscription" + } } }, "type": "object" }, - "StateMachineState": { - "description": "Added since version: 6.0.0.0", + "SubscriptionPlanJsonApi": { + "allOf": [ + { + "$ref": "#/components/schemas/resource" + }, + { + "required": [ + "id", + "name" + ], + "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": "array", + "items": { + "$ref": "#/components/schemas/Price" + } + }, + "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": [ - "translated", - "technicalName", + "id", "name" ], "properties": { @@ -13713,14 +15915,38 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "technicalName": { + "name": { "type": "string" }, - "name": { + "description": { "type": "string" }, - "customFields": { - "type": "object" + "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": "array", + "items": { + "$ref": "#/components/schemas/Price" + } }, "createdAt": { "type": "string", @@ -13734,128 +15960,118 @@ }, "translated": { "type": "object" + }, + "subscriptions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Subscription" + } } }, "type": "object" }, - "StateMachineTransition": { - "description": "Added since version: 6.0.0.0", + "SubscriptionPlanIntervalMapping": { + "required": [ + "subscriptionIntervalId", + "subscriptionPlanId" + ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "createdAt": { + "subscriptionIntervalId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" }, - "updatedAt": { + "subscriptionPlanId": { "type": "string", - "format": "date-time", - "readOnly": true + "pattern": "^[0-9a-f]{32}$" + }, + "subscriptionPlan": { + "$ref": "#/components/schemas/SubscriptionPlan" + }, + "subscriptionInterval": { + "$ref": "#/components/schemas/SubscriptionInterval" } }, "type": "object" }, - "Subscription": { + "SubscriptionPlanProductMapping": { "required": [ - "id", - "convertedOrder", - "subscriptionNumber", - "nextSchedule", - "followingNextSchedule", - "salesChannelId", - "subscriptionPlanName", - "subscriptionIntervalName", - "dateInterval", - "cronInterval", - "billingAddressId", - "shippingAddressId", - "shippingMethodId", - "paymentMethodId", - "currencyId", - "languageId" + "productId", + "subscriptionPlanId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "convertedOrder": { - "type": "object" - }, - "subscriptionNumber": { - "type": "string" - }, - "nextSchedule": { - "type": "string", - "format": "date-time" - }, - "followingNextSchedule": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "string", - "format": "date-time" - }, - "salesChannelId": { + "productId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "subscriptionPlanId": { + "productVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "subscriptionPlanName": { - "type": "string" - }, - "subscriptionIntervalId": { + "subscriptionPlanId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "subscriptionIntervalName": { - "type": "string" - }, - "dateInterval": { - "type": "string" - }, - "cronInterval": { - "type": "string" - }, - "initialExecutionCount": { - "type": "integer", - "format": "int64" - }, - "remainingExecutionCount": { - "type": "integer", - "format": "int64" + "subscriptionPlan": { + "$ref": "#/components/schemas/SubscriptionPlan" }, - "billingAddressId": { + "product": { + "$ref": "#/components/schemas/Product" + } + }, + "type": "object" + }, + "SubscriptionTagMapping": { + "required": [ + "subscriptionId", + "tagId" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "shippingAddressId": { + "subscriptionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "shippingMethodId": { + "tagId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "paymentMethodId": { + "subscription": { + "$ref": "#/components/schemas/Subscription" + }, + "tag": { + "$ref": "#/components/schemas/Tag" + } + }, + "type": "object" + }, + "SwagDelayAction": { + "required": [ + "id" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "currencyId": { + "orderId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "languageId": { + "customerId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customFields": { - "type": "object" - }, "createdAt": { "type": "string", "format": "date-time", @@ -13865,124 +16081,107 @@ "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": { + "SystemConfig": { + "description": "Added since version: 6.0.0.0", "required": [ "id", - "countryId", - "subscriptionId", - "firstName", - "lastName", - "street", - "city" + "configurationKey", + "configurationValue" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "countryId": { + "configurationKey": { + "description": "Config key for shop configurations.", + "type": "string" + }, + "configurationValue": { + "properties": { + "_value": { + "type": "object" + } + }, + "type": "object" + }, + "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "subscriptionId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "countryStateId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "salutationId": { + "salesChannel": { + "$ref": "#/components/schemas/SalesChannel" + } + }, + "type": "object" + }, + "Tag": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "name" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "street": { - "type": "string" - }, - "zipcode": { - "type": "string" - }, - "city": { - "type": "string" - }, - "company": { - "type": "string" - }, - "department": { + "name": { "type": "string" }, - "title": { - "type": "string" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "vatId": { - "type": "string" + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + } + }, + "type": "object" + }, + "Tax": { + "description": "Added since version: 6.0.0.0", + "required": [ + "id", + "taxRate", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "phoneNumber": { - "type": "string" + "taxRate": { + "description": "Rate of tax.", + "type": "number", + "format": "float" }, - "additionalAddressLine1": { + "name": { + "description": "Name defined for a Tax.", "type": "string" }, - "additionalAddressLine2": { - "type": "string" + "position": { + "description": "The order of the tabs of your defined taxes in the storefront by entering numerical values like 1,2,3, etc. Added since version: 6.4.0.0.", + "type": "integer", + "format": "int64" }, "customFields": { "type": "object" @@ -13996,75 +16195,68 @@ "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" } }, "type": "object" }, - "SubscriptionCustomer": { + "TaxProvider": { + "description": "Added since version: 6.5.0.0", "required": [ "id", - "salutationId", - "email", - "firstName", - "lastName" + "priority", + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salutationId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "active": { + "description": "When boolean value is `true`, the tax providers are available for selection in the storefront.", + "type": "boolean" }, - "email": { + "name": { "type": "string" }, - "firstName": { - "type": "string" + "priority": { + "description": "A numerical value to prioritize one of the tax providers from the list.", + "type": "integer", + "format": "int64" }, - "lastName": { + "processUrl": { + "description": "External URL makes request to get tax info.", "type": "string" }, - "company": { - "type": "string" + "appId": { + "description": "Unique identity of app.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "title": { - "type": "string" + "customFields": { + "type": "object" }, - "customerNumber": { - "type": "string" + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "vatIds": { - "type": "array", - "items": { - "type": "string" - } + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true }, - "customFields": { + "translated": { "type": "object" + } + }, + "type": "object" + }, + "TaxRule": { + "description": "Added since version: 6.1.0.0", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "createdAt": { "type": "string", @@ -14075,39 +16267,20 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" } }, "type": "object" }, - "SubscriptionInterval": { + "TaxRuleType": { + "description": "Added since version: 6.1.0.0", "required": [ - "id", - "name" + "typeName" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "dateInterval": { - "type": "string" - }, - "cronInterval": { - "type": "string" - }, - "availabilityRuleId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, "createdAt": { "type": "string", "format": "date-time", @@ -14120,160 +16293,60 @@ }, "translated": { "type": "object" - }, - "subscriptions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Subscription" - } } }, "type": "object" }, - "SubscriptionPlanJsonApi": { - "allOf": [ - { - "$ref": "#/components/schemas/resource" - }, - { - "required": [ - "id", - "name" - ], - "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": "array", - "items": { - "$ref": "#/components/schemas/Price" - } - }, - "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": { + "Theme": { + "description": "Added since version: 6.0.0.0", "required": [ "id", - "name" + "name", + "author", + "active" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "technicalName": { + "type": "string" + }, "name": { "type": "string" }, + "author": { + "type": "string" + }, "description": { "type": "string" }, - "active": { - "type": "boolean" + "labels": { + "type": "object" }, - "minimumExecutionCount": { - "type": "integer", - "format": "int64" + "helpTexts": { + "type": "object" }, - "activeStorefrontLabel": { - "type": "boolean" + "customFields": { + "type": "object" }, - "availabilityRuleId": { + "previewMediaId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "discountPercentage": { - "type": "number", - "format": "float" + "parentThemeId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "label": { - "type": "string" + "baseConfig": { + "type": "object" }, - "discountPrice": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Price" - } + "configValues": { + "type": "object" + }, + "active": { + "type": "boolean" }, "createdAt": { "type": "string", @@ -14288,117 +16361,79 @@ "translated": { "type": "object" }, - "subscriptions": { + "media": { "type": "array", "items": { - "$ref": "#/components/schemas/Subscription" + "$ref": "#/components/schemas/Media" } } }, "type": "object" }, - "SubscriptionPlanIntervalMapping": { + "Unit": { + "description": "Added since version: 6.0.0.0", "required": [ - "subscriptionIntervalId", - "subscriptionPlanId" + "id", + "shortCode", + "name" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "subscriptionIntervalId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "subscriptionPlanId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "subscriptionPlan": { - "$ref": "#/components/schemas/SubscriptionPlan" + "shortCode": { + "type": "string" }, - "subscriptionInterval": { - "$ref": "#/components/schemas/SubscriptionInterval" - } - }, - "type": "object" - }, - "SubscriptionPlanProductMapping": { - "required": [ - "productId", - "subscriptionPlanId" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "type": "string" }, - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "customFields": { + "type": "object" }, - "productVersionId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "subscriptionPlanId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "subscriptionPlan": { - "$ref": "#/components/schemas/SubscriptionPlan" - }, - "product": { - "$ref": "#/components/schemas/Product" + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" } }, "type": "object" }, - "SubscriptionTagMapping": { - "required": [ - "subscriptionId", - "tagId" - ], + "User": { + "description": "Added since version: 6.0.0.0", "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "subscriptionId": { + "createdAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "format": "date-time", + "readOnly": true }, - "tagId": { + "updatedAt": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "subscription": { - "$ref": "#/components/schemas/Subscription" - }, - "tag": { - "$ref": "#/components/schemas/Tag" + "format": "date-time", + "readOnly": true } }, "type": "object" }, - "SwagDelayAction": { - "required": [ - "id" - ], + "UserAccessKey": { + "description": "Added since version: 6.0.0.0", "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "orderId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, "createdAt": { "type": "string", "format": "date-time", @@ -14412,33 +16447,13 @@ }, "type": "object" }, - "SystemConfig": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "configurationKey", - "configurationValue" - ], + "UserConfig": { + "description": "Added since version: 6.3.5.0", "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "configurationKey": { - "type": "string" - }, - "configurationValue": { - "properties": { - "_value": { - "type": "object" - } - }, - "type": "object" - }, - "salesChannelId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, "createdAt": { "type": "string", "format": "date-time", @@ -14448,27 +16463,17 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "salesChannel": { - "$ref": "#/components/schemas/SalesChannel" } }, "type": "object" }, - "Tag": { + "UserRecovery": { "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "name" - ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "name": { - "type": "string" - }, "createdAt": { "type": "string", "format": "date-time", @@ -14482,33 +16487,12 @@ }, "type": "object" }, - "Tax": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "taxRate", - "name" - ], + "Warehouse": { "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - }, - "position": { - "description": "Added since version: 6.4.0.0.", - "type": "integer", - "format": "int64" - }, - "customFields": { - "type": "object" - }, "createdAt": { "type": "string", "format": "date-time", @@ -14522,38 +16506,12 @@ }, "type": "object" }, - "TaxProvider": { - "description": "Added since version: 6.5.0.0", - "required": [ - "id", - "priority", - "name" - ], + "WarehouseGroup": { "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "active": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "priority": { - "type": "integer", - "format": "int64" - }, - "processUrl": { - "type": "string" - }, - "appId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "customFields": { - "type": "object" - }, "createdAt": { "type": "string", "format": "date-time", @@ -14563,15 +16521,12 @@ "type": "string", "format": "date-time", "readOnly": true - }, - "translated": { - "type": "object" } }, "type": "object" }, - "TaxRule": { - "description": "Added since version: 6.1.0.0", + "Webhook": { + "description": "Added since version: 6.3.1.0", "properties": { "id": { "type": "string", @@ -14590,11 +16545,8 @@ }, "type": "object" }, - "TaxRuleType": { - "description": "Added since version: 6.1.0.0", - "required": [ - "typeName" - ], + "WebhookEventLog": { + "description": "Added since version: 6.4.1.0", "properties": { "id": { "type": "string", @@ -14609,280 +16561,646 @@ "type": "string", "format": "date-time", "readOnly": true + } + }, + "type": "object" + }, + "EntitySearchResult": { + "type": "object", + "properties": { + "entity": { + "type": "string" }, - "translated": { - "type": "object" + "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." + } + } + }, + "CartDelivery": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "properties": { + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" + } + } + }, + "location": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_shipping_location" + ] + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "address": { + "$ref": "#/components/schemas/CustomerAddress" + }, + "state": { + "$ref": "#/components/schemas/CountryState" + } + } + }, + "positions": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartDeliveryPosition" + } + }, + "shippingCosts": { + "$ref": "#/components/schemas/CalculatedPrice" + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" + } + } + }, + "CookieGroupCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieGroup" + } + }, + "OrderRouteResponse": { + "type": "object", + "properties": { + "orders": { + "type": "object", + "allOf": [ + { + "type": "object", + "required": [ + "elements" + ], + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Order" + } + } + } + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + }, + "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" + } } }, - "type": "object" - }, - "Theme": { - "description": "Added since version: 6.0.0.0", "required": [ - "id", - "name", - "author", - "active" - ], + "orders" + ] + }, + "ReferencePrice": { + "type": "object", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "technicalName": { - "type": "string" - }, - "name": { - "type": "string" + "purchaseUnit": { + "type": "number" }, - "author": { - "type": "string" + "referenceUnit": { + "type": "number" }, - "description": { + "unitName": { "type": "string" }, - "labels": { - "type": "object" - }, - "helpTexts": { - "type": "object" - }, - "customFields": { - "type": "object" + "price": { + "type": "number" }, - "previewMediaId": { + "apiAlias": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "cart_price_reference" + ] }, - "parentThemeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/ListPrice" + }, + { + "type": "null" + } + ] }, - "baseConfig": { - "type": "object" + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } + }, + { + "type": "null" + } + ] }, - "configValues": { - "type": "object" + "hasRange": { + "type": "boolean" }, - "active": { + "variantId": { + "oneOf": [ + { + "type": "string", + "format": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" + ] + }, + "SuccessResponse": { + "type": "object", + "properties": { + "success": { "type": "boolean" + } + } + }, + "Cart": { + "type": "object", + "properties": { + "name": { + "description": "Name of the cart - for example `guest-cart`", + "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "token": { + "description": "Context token identifying the cart and the user session", + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "price": { + "$ref": "#/components/schemas/CalculatedPrice" }, - "translated": { - "type": "object" + "lineItems": { + "description": "All items within the cart", + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } }, - "media": { + "errors": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartError" + } + }, + { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "code": { + "type": "number" + }, + "key": { + "type": "string" + }, + "level": { + "type": "number" + }, + "message": { + "type": "string" + }, + "messageKey": { + "type": "string" + } + }, + "required": [ + "code", + "key", + "level", + "message", + "messageKey" + ] + } + } + ] + }, + "deliveries": { "type": "array", "items": { - "$ref": "#/components/schemas/Media" + "$ref": "#/components/schemas/CartDelivery" } - } - }, - "type": "object" - }, - "Unit": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "shortCode", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" }, - "shortCode": { - "type": "string" + "transactions": { + "description": "A list of all payment transactions associated with the current cart.", + "type": "array", + "items": { + "type": "object", + "properties": { + "paymentMethodId": { + "type": "string" + }, + "amount": { + "$ref": "#/components/schemas/CalculatedPrice" + } + } + } }, - "name": { - "type": "string" + "modified": { + "type": "boolean" }, - "customFields": { - "type": "object" + "customerComment": { + "description": "A comment that can be added to the cart.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "affiliateCode": { + "description": "An affiliate tracking code", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "campaignCode": { + "description": "A campaign tracking code", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "updatedAt": { + "apiAlias": { "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object" + "enum": [ + "cart" + ] } }, - "type": "object" + "required": [ + "price", + "apiAlias" + ] }, - "User": { - "description": "Added since version: 6.0.0.0", + "CookieEntryCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieEntry" + } + }, + "CrossSellingElement": { + "type": "object", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "crossSelling": { + "$ref": "#/components/schemas/ProductCrossSelling" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "products": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "UserAccessKey": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "total": { + "type": "integer", + "format": "int32" }, - "createdAt": { + "streamId": { "type": "string", - "format": "date-time", - "readOnly": true + "format": "uuid" }, - "updatedAt": { + "apiAlias": { "type": "string", - "format": "date-time", - "readOnly": true + "enum": [ + "cross_selling_element" + ] } }, - "type": "object" + "required": [ + "crossSelling", + "products", + "total", + "apiAlias" + ] }, - "UserConfig": { - "description": "Added since version: 6.3.5.0", + "CalculatedPrice": { + "type": "object", + "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "unitPrice": { + "type": "number" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "quantity": { + "type": "number" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "UserRecovery": { - "description": "Added since version: 6.0.0.0", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "rawTotal": { + "type": "number" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "totalPrice": { + "type": "number" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "Warehouse": { - "properties": { - "id": { + "taxStatus": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "net", + "tax-free" + ] }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "calculatedTaxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_tax_calculated" + ] + }, + "tax": { + "type": "number" + }, + "taxRate": { + "type": "number" + }, + "price": { + "type": "number" + } + }, + "required": [ + "apiAlias", + "tax", + "taxRate", + "price" + ] + } }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "WarehouseGroup": { - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "referencePrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartPriceReference" + }, + { + "type": "null" + } + ] }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartListPrice" + }, + { + "type": "null" + } + ] }, - "updatedAt": { + "positionPrice": { + "type": "number" + }, + "netPrice": { + "type": "number" + }, + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } + }, + { + "type": "null" + } + ] + }, + "hasRange": { + "type": "boolean" + }, + "variantId": { + "oneOf": [ + { + "type": "string", + "format": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + }, + "apiAlias": { "type": "string", - "format": "date-time", - "readOnly": true + "enum": [ + "calculated_price" + ] + }, + "taxRules": { + "type": "array", + "description": "Currently active tax rules and/or rates", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } } }, - "type": "object" + "required": [ + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "referencePrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitPrice", + "positionPrice", + "netPrice", + "taxRules", + "rawTotal", + "taxStatus" + ] }, - "Webhook": { - "description": "Added since version: 6.3.1.0", + "CartPriceReference": { + "type": "object", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "purchaseUnit": { + "type": "number" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "referenceUnit": { + "type": "number" }, - "updatedAt": { + "unitName": { + "type": "string" + }, + "price": { + "type": "number" + }, + "apiAlias": { "type": "string", - "format": "date-time", - "readOnly": true + "enum": [ + "cart_price_reference" + ] + }, + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartListPrice" + }, + { + "type": "null" + } + ] + }, + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } + }, + { + "type": "null" + } + ] + }, + "hasRange": { + "type": "boolean" + }, + "variantId": { + "oneOf": [ + { + "type": "string", + "format": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] } }, - "type": "object" + "required": [ + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" + ] }, - "WebhookEventLog": { - "description": "Added since version: 6.4.1.0", + "CartDeliveryPosition": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" + } + } }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "identifier": { + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "lineItem": { + "$ref": "#/components/schemas/LineItem" + }, + "price": { + "$ref": "#/components/schemas/CalculatedPrice" } - }, - "type": "object" + } }, "ProductListingFlags": { "type": "object", @@ -14897,625 +17215,900 @@ { "type": "null" } - ] - }, - "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.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" + ] + }, + "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.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + } + }, + "CartListPrice": { + "type": "object", + "description": "", + "properties": { + "discount": { + "type": "number" + }, + "percentage": { + "type": "number" + }, + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] + } + }, + "required": [ + "apiAlias" + ] + }, + "NavigationRouteResponse": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" + } + }, + "ShippingMethodPageRouteResponse": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "deliveryTimeId": { + "type": "string" + }, + "deliveryTime": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "min": { + "type": "integer", + "format": "int32" + }, + "max": { + "type": "integer", + "format": "int32" + }, + "unit": { + "type": "string" + } + } + }, + "translations": { + "type": "array", + "items": { + "type": "object", + "properties": { + "shippingMethodId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + } + } + } + }, + "orderDeliveries": { + "type": "array", + "items": { + "type": "object", + "properties": { + "orderId": { + "type": "string" + }, + "shippingOrderAddressId": { + "type": "string" + }, + "shippingMethodId": { + "type": "string" + }, + "shippingDateEarliest": { + "type": "string", + "format": "date-time" + }, + "shippingDateLatest": { + "type": "string", + "format": "date-time" + }, + "stateId": { + "type": "string" + } + } + } + }, + "salesChannelDefaultAssignments": { + "type": "array", + "items": { + "type": "object", + "properties": { + "typeId": { + "type": "string" + }, + "languageId": { + "type": "string" + }, + "currencyId": { + "type": "string" + }, + "paymentMethodId": { + "type": "string" + }, + "shippingMethodId": { + "type": "string" + }, + "countryId": { + "type": "string" + }, + "navigationCategoryId": { + "type": "string" + }, + "navigationCategoryDepth": { + "type": "integer", + "format": "int32" + }, + "footerCategoryId": { + "type": "string" + }, + "serviceCategoryId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "shortName": { + "type": "string" + }, + "accessKey": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "maintenance": { + "type": "boolean" + }, + "maintenanceIpWhitelist": { + "type": "string" + }, + "mailHeaderFooterId": { + "type": "string" + }, + "customerGroupId": { + "type": "string" + }, + "hreflangActive": { + "type": "boolean" + }, + "hreflangDefaultDomainId": { + "type": "string" + } + } + } + }, + "salesChannels": { + "type": "array", + "items": { + "type": "object", + "properties": { + "typeId": { + "type": "string" + }, + "languageId": { + "type": "string" + }, + "currencyId": { + "type": "string" + }, + "paymentMethodId": { + "type": "string" + }, + "shippingMethodId": { + "type": "string" + }, + "countryId": { + "type": "string" + }, + "navigationCategoryId": { + "type": "string" + }, + "navigationCategoryDepth": { + "type": "integer", + "format": "int32" + }, + "footerCategoryId": { + "type": "string" + }, + "serviceCategoryId": { + "type": "string" + }, + "name": { + "type": "string" + }, + "shortName": { + "type": "string" + }, + "accessKey": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "maintenance": { + "type": "boolean" + }, + "maintenanceIpWhitelist": { + "type": "string" + }, + "mailHeaderFooterId": { + "type": "string" + }, + "customerGroupId": { + "type": "string" + }, + "hreflangActive": { + "type": "boolean" + }, + "hreflangDefaultDomainId": { + "type": "string" + } + } + } + }, + "availabilityRule": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "priority": { + "type": "integer", + "format": "int32" + }, + "invalid": { + "type": "boolean" + } + } + }, + "availabilityRuleId": { + "type": "string" + }, + "prices": { + "type": "array", + "items": { + "type": "object", + "properties": { + "shippingMethodId": { + "type": "string" + }, + "currencyId": { + "type": "string" + }, + "ruleId": { + "type": "string" + }, + "calculation": { + "type": "integer", + "format": "int32" + }, + "quantityStart": { + "type": "number", + "format": "float" + }, + "quantityEnd": { + "type": "number", + "format": "float" + }, + "price": { + "type": "number", + "format": "float" + }, + "calculationRuleId": { + "type": "string" + } + } + } + }, + "mediaId": { + "type": "string" + }, + "media": { + "type": "object", + "properties": { + "userId": { + "type": "string" + }, + "mimeType": { + "type": "string" + }, + "fileExtension": { + "type": "string" + }, + "fileSize": { + "type": "integer", + "format": "int32" + }, + "title": { + "type": "string" + }, + "metaDataRaw": { + "type": "string" + }, + "mediaTypeRaw": { + "type": "string" + }, + "uploadedAt": { + "type": "string", + "format": "date-time" + }, + "alt": { + "type": "string" + }, + "url": { + "type": "string" + }, + "fileName": { + "type": "string" + }, + "mediaFolderId": { + "type": "string" + }, + "private": { + "type": "boolean" + }, + "thumbnailsRo": { + "type": "string" + } + } + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + } + } } - ] + } } } }, - "EntitySearchResult": { + "Sitemap": { "type": "object", "properties": { - "entity": { + "filename": { "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." + "created": { + "type": "string", + "format": "date-time" } - } - }, - "WishlistLoadRouteResponse": { - "type": "object", + }, "required": [ - "products" - ], - "properties": { - "wishlist": { - "type": "object", - "properties": { - "customerId": { - "type": "string" - }, - "salesChannelId": { - "type": "string" - } - } - }, - "products": { - "$ref": "#/components/schemas/ProductListingResult" - } - } + "filename", + "created" + ] }, - "OrderRouteResponse": { + "AggregationEntity": { + "title": "AggregationEntity", "type": "object", "properties": { - "orders": { - "type": "object", - "allOf": [ - { - "type": "object", - "required": [ - "elements" - ], - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - } - } - } - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" + }, + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "entity" ] }, - "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" - } + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "definition": { + "description": "The entity definition e.g \"product_manufacturer\".", + "type": "string" } }, "required": [ - "orders" + "name", + "type", + "field", + "definition" ] }, - "Criteria": { + "AggregationFilter": { + "title": "AggregationFilter", "type": "object", - "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", "properties": { - "page": { - "description": "Search result page", - "type": "integer" - }, - "term": { - "description": "Search term", + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", "type": "string" }, - "limit": { - "description": "Number of items per result page", - "type": "integer" + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "filter" + ] }, "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": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "ids": { - "type": "array", - "description": "List of ids to search for", "items": { - "type": "string" + "$ref": "#/components/schemas/Filters" } + } + }, + "required": [ + "name", + "type", + "filter" + ] + }, + "AggregationTerms": { + "title": "AggregationTerms", + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" }, - "query": { + "type": { + "description": "The type of aggregation", "type": "string", - "description": "The query string to search for" + "enum": [ + "terms" + ] }, - "associations": { - "$ref": "#/components/schemas/Associations" + "field": { + "description": "The field you want to aggregate over.", + "type": "string" }, - "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": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } + "limit": { + "description": "The number of terms to return", + "type": "number" }, "sort": { "type": "array", - "description": "Sorting in the search result.", + "description": "Sorting the aggregation result.", "items": { "$ref": "#/components/schemas/Sort" } + } + }, + "required": [ + "name", + "type", + "field" + ] + }, + "AggregationHistogram": { + "title": "AggregationHistogram", + "type": "object", + "properties": { + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", + "type": "string" }, - "aggregations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Aggregation" - } - }, - "fields": { - "type": "array", - "description": "Fields which should be returned in the search result.", - "items": { - "type": "string", - "description": "Name of a field" - } + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "histogram" + ] }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" - } + "field": { + "description": "The field you want to aggregate over.", + "type": "string" }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" + "interval": { + "description": "The interval of the histogram", + "type": "number" }, - "includes": { - "$ref": "#/components/schemas/Includes" + "format": { + "description": "The format of the histogram", + "type": "string" + }, + "timeZone": { + "description": "The timezone of the histogram", + "type": "string" } - } + }, + "required": [ + "name", + "type", + "field" + ] }, - "NoneFieldsCriteria": { + "AggregationRange": { + "title": "AggregationRange", + "description": "For more information, see [Aggregations Reference > Range Aggregation](https://developer.shopware.com/docs/resources/references/core-reference/dal-reference/aggregations-reference.html#range-aggregations)", "type": "object", - "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", "properties": { - "page": { - "description": "Search result page", - "type": "integer" - }, - "term": { - "description": "Search term", + "name": { + "description": "Give your aggregation an identifier, so you can find it easier", "type": "string" }, - "limit": { - "description": "Number of items per result page", - "type": "integer" + "type": { + "description": "The type of aggregation", + "type": "string", + "enum": [ + "range" + ] }, - "filter": { + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "ranges": { + "description": "The ranges of the aggregation", "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", "anyOf": [ { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" + "type": "object", + "title": "From and to", + "properties": { + "from": { + "type": "number", + "description": "The lower bound of the range" + }, + "to": { + "type": "number", + "description": "The upper bound of the range" + } + }, + "required": [ + "from", + "to" + ] }, { - "$ref": "#/components/schemas/MultiNotFilter" + "type": "object", + "title": "From only", + "properties": { + "from": { + "type": "string", + "description": "The lower bound of the range" + } + }, + "required": [ + "from" + ] }, { - "$ref": "#/components/schemas/RangeFilter" + "type": "object", + "title": "To only", + "properties": { + "to": { + "type": "string", + "description": "The upper bound of the range" + } + }, + "required": [ + "to" + ] } ] } - }, - "ids": { + } + }, + "required": [ + "name", + "type", + "field", + "ranges" + ] + }, + "LineItemType": { + "type": "string", + "enum": [ + "product", + "credit", + "custom", + "promotion", + "discount", + "container", + "quantity" + ] + }, + "LineItem": { + "type": "object", + "properties": { + "children": { "type": "array", - "description": "List of ids to search for", "items": { - "type": "string" + "$ref": "#/components/schemas/LineItem" } }, - "query": { - "type": "string", - "description": "The query string to search for" + "cover": { + "$ref": "#/components/schemas/Media" }, - "associations": { - "$ref": "#/components/schemas/Associations" + "dataContextHash": { + "type": "string" }, - "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": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } + "dataTimestamp": { + "type": "string" }, - "sort": { - "type": "array", - "description": "Sorting in the search result.", - "items": { - "$ref": "#/components/schemas/Sort" - } + "deliveryInformation": { + "$ref": "#/components/schemas/CartDeliveryInformation" }, - "aggregations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Aggregation" - } + "description": { + "type": "string" }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" - } + "good": { + "type": "boolean" }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" + "id": { + "type": "string" }, - "includes": { - "$ref": "#/components/schemas/Includes" - } - } - }, - "Associations": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Criteria" - } - }, - "Includes": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { + "label": { "type": "string" - } - } - }, - "Aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" }, - { - "title": "AggregationEntity", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationEntity" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "modified": { + "type": "boolean" }, - { - "title": "AggregationFilter", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationFilter" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "modifiedByApp": { + "type": "boolean" }, - { - "title": "AggregationTerms", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationTerms" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "payload": { + "$ref": "#/components/schemas/ProductJsonApi" }, - { - "title": "AggregationHistogram", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationHistogram" + "price": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "calculated_price" + ] }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] - }, - { - "title": "AggregationRange", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationRange" + "calculatedTaxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_tax_calculated" + ] + }, + "tax": { + "type": "number" + }, + "taxRate": { + "type": "number" + }, + "price": { + "type": "number" + } + }, + "required": [ + "apiAlias", + "tax", + "taxRate", + "price" + ] + } }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] - } - ] - }, - "SubAggregations": { - "type": "object", - "properties": { - "aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartListPrice" + }, + { + "type": "null" + } + ] }, - { - "$ref": "#/components/schemas/AggregationEntity" + "quantity": { + "type": "number" }, - { - "$ref": "#/components/schemas/AggregationFilter" + "referencePrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartPriceReference" + }, + { + "type": "null" + } + ] }, - { - "$ref": "#/components/schemas/AggregationTerms" + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } + }, + { + "type": "null" + } + ] }, - { - "$ref": "#/components/schemas/AggregationHistogram" + "totalPrice": { + "type": "number" }, - { - "$ref": "#/components/schemas/AggregationRange" + "unitPrice": { + "type": "number" + }, + "taxRules": { + "type": "array", + "description": "Currently active tax rules and/or rates", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } } + }, + "required": [ + "apiAlias", + "totalPrice", + "quantity", + "unitPrice" ] - } - } - }, - "TotalCountMode": { - "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" - ] - }, - "Query": { - "type": "object", - "properties": { - "score": { + }, + "priceDefinition": { + "$ref": "#/components/schemas/CartPriceQuantity" + }, + "quantity": { "type": "number" }, - "query": { - "oneOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" + "quantityInformation": { + "type": "object", + "properties": { + "maxPurchase": { + "type": "number" }, - { - "$ref": "#/components/schemas/MultiNotFilter" + "minPurchase": { + "type": "number" }, - { - "$ref": "#/components/schemas/RangeFilter" + "purchaseSteps": { + "type": "number" } - ] - } - }, - "additionalProperties": true - }, - "Sort": { - "type": "object", - "properties": { - "field": { + } + }, + "referencedId": { "type": "string" }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ] + "removable": { + "type": "boolean" }, - "naturalSorting": { + "stackable": { "type": "boolean" }, - "type": { - "type": "string" - } - }, - "required": [ - "field", - "order" - ] - }, - "Filters": { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" + "states": { + "deprecated": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "is-physical", + "is-download" + ] } - ] - } - }, - "SimpleFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "contains", - "equalsAny", - "prefix", - "suffix" - ] }, - "field": { - "type": "string" + "type": { + "$ref": "#/components/schemas/LineItemType" }, - "value": { + "uniqueIdentifier": { "type": "string" } }, "required": [ + "id", "type", - "field", - "value" + "deliveryInformation", + "payload", + "quantity", + "states" ] }, - "EqualsFilter": { + "CrossSellingElementCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CrossSellingElement" + } + }, + "CartError": { "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "type": { - "type": "string", - "enum": [ - "equals" - ] - }, - "field": { + "key": { "type": "string" }, - "value": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "type", - "field", - "value" - ] - }, - "MultiNotFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", + "level": { + "type": "number", "enum": [ - "multi", - "not" - ] + 0, + 10, + 20 + ], + "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" }, - "operator": { - "type": "string", - "enum": [ - "and", - "or", - "nor", - "nand" - ] + "message": { + "type": "string" }, - "queries": { - "$ref": "#/components/schemas/Filters" + "messageKey": { + "type": "string" } }, "required": [ - "type", - "operator", - "queries" + "key", + "level", + "message", + "messageKey" ] }, - "RangeFilter": { + "FindProductVariantRouteResponse": { "type": "object", "properties": { - "type": { - "type": "string", - "enum": [ - "range" - ] - }, - "field": { - "type": "string" - }, - "parameters": { + "foundCombination": { "type": "object", "properties": { - "gte": { - "type": "number" - }, - "gt": { - "type": "number" - }, - "lte": { - "type": "number" + "variantId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "lt": { - "type": "number" + "options": { + "type": "array", + "items": { + "type": "string" + } } } } - }, - "required": [ - "type", - "field", - "parameters" - ] - }, - "CrossSellingElementCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CrossSellingElement" } }, "ProductListingCriteria": { @@ -15614,147 +18207,55 @@ } ] }, - "CustomerAddressRead": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true - }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "oneOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ] - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "oneOf": [ - { - "$ref": "#/components/schemas/CountryState" - }, - { - "type": "null" - } - ] - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" - } - }, - "required": [ - "customerId", - "createdAt", - "updatedAt", - "country", - "salutation" + "NavigationType": { + "type": "string", + "enum": [ + "main-navigation", + "footer-navigation", + "service-navigation" ] }, - "AggregationEntity": { - "title": "AggregationEntity", + "WishlistLoadRouteResponse": { "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", - "enum": [ - "entity" - ] - }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "definition": { - "description": "The entity definition e.g \"product_manufacturer\".", - "type": "string" - } - }, "required": [ - "name", - "type", - "field", - "definition" - ] - }, - "AggregationFilter": { - "title": "AggregationFilter", - "type": "object", + "products" + ], "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" - }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "filter" - ] - }, - "filter": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Filters" + "wishlist": { + "type": "object", + "properties": { + "customerId": { + "type": "string" + }, + "salesChannelId": { + "type": "string" + } } + }, + "products": { + "$ref": "#/components/schemas/ProductListingResult" } - }, - "required": [ - "name", - "type", - "filter" - ] + } }, - "AggregationTerms": { - "title": "AggregationTerms", + "AggregationMetrics": { "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", "enum": [ - "terms" + "avg", + "count", + "max", + "min", + "stats", + "sum" ] }, "field": { - "description": "The field you want to aggregate over.", "type": "string" - }, - "limit": { - "description": "The number of terms to return", - "type": "number" - }, - "sort": { - "type": "array", - "description": "Sorting the aggregation result.", - "items": { - "$ref": "#/components/schemas/Sort" - } } }, "required": [ @@ -15763,1353 +18264,1738 @@ "field" ] }, - "AggregationHistogram": { - "title": "AggregationHistogram", + "CartDeliveryInformation": { "type": "object", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" - }, - "type": { - "description": "The type of aggregation", + "apiAlias": { "type": "string", "enum": [ - "histogram" + "cart_delivery_information" ] }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" + "freeDelivery": { + "type": "boolean" }, - "interval": { - "description": "The interval of the histogram", - "type": "number" + "deliveryTime": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "min": { + "type": "integer" + }, + "max": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_time" + ] + } + } }, - "format": { - "description": "The format of the histogram", - "type": "string" + "height": { + "type": "integer" }, - "timeZone": { - "description": "The timezone of the histogram", - "type": "string" + "length": { + "type": "integer" + }, + "restockTime": { + "type": "integer" + }, + "stock": { + "type": "integer" + }, + "weight": { + "type": "integer" + }, + "width": { + "type": "integer" } }, "required": [ - "name", - "type", - "field" + "apiAlias" ] }, - "AggregationRange": { - "title": "AggregationRange", - "description": "For more information, see [Aggregations Reference > Range Aggregation](https://developer.shopware.com/docs/resources/references/core-reference/dal-reference/aggregations-reference.html#range-aggregations)", + "CartItems": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } + } + } + }, + "Breadcrumb": { "type": "object", "properties": { "name": { - "description": "Give your aggregation an identifier, so you can find it easier", "type": "string" }, + "categoryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, "type": { - "description": "The type of aggregation", "type": "string", "enum": [ - "range" + "page", + "link", + "folder" ] }, - "field": { - "description": "The field you want to aggregate over.", + "translated": { + "type": "object", + "additionalProperties": true, + "properties": { + "customFields": { + "type": "object" + }, + "slotConfig": { + "type": "object" + }, + "linkType": { + "type": "string", + "enum": [ + "external", + "category", + "product", + "landing_page" + ] + }, + "internalLink": { + "type": "string" + }, + "externalLink": { + "type": "string" + }, + "linkNewTab": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "metaTitle": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "keywords": { + "type": "string" + } + } + }, + "path": { "type": "string" }, - "ranges": { - "description": "The ranges of the aggregation", + "seoUrls": { "type": "array", "items": { - "type": "object", - "anyOf": [ - { - "type": "object", - "title": "From and to", - "properties": { - "from": { - "type": "number", - "description": "The lower bound of the range" - }, - "to": { - "type": "number", - "description": "The upper bound of the range" - } - }, - "required": [ - "from", - "to" - ] - }, - { - "type": "object", - "title": "From only", - "properties": { - "from": { - "type": "string", - "description": "The lower bound of the range" - } - }, - "required": [ - "from" - ] - }, - { - "type": "object", - "title": "To only", - "properties": { - "to": { - "type": "string", - "description": "The upper bound of the range" - } - }, - "required": [ - "to" - ] - } - ] + "$ref": "#/components/schemas/SeoUrl" } + }, + "apiAlias": { + "type": "string", + "enum": [ + "breadcrumb" + ] } }, "required": [ "name", + "categoryId", "type", - "field", - "ranges" + "translated", + "path", + "apiAlias" ] }, - "FindProductVariantRouteResponse": { + "SalesChannelContext": { "type": "object", "properties": { - "foundCombination": { + "token": { + "description": "Context the user session", + "type": "string" + }, + "currentCustomerGroup": { "type": "object", + "description": "Customer group of the current user", "properties": { - "variantId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "type": "string" }, - "options": { - "type": "array", - "items": { - "type": "string" - } + "displayGross": { + "type": "boolean" + } + } + }, + "fallbackCustomerGroup": { + "description": "Fallback group if the default customer group is not applicable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "displayGross": { + "type": "boolean" } } - } - } - }, - "ShippingMethodPageRouteResponse": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "deliveryTimeId": { - "type": "string" - }, - "deliveryTime": { + }, + "currency": { + "$ref": "#/components/schemas/Currency" + }, + "salesChannel": { + "$ref": "#/components/schemas/SalesChannel" + }, + "measurementSystem": { + "$ref": "#/components/schemas/ContextMeasurementSystemInfo" + }, + "taxRules": { + "type": "array", + "description": "Currently active tax rules and/or rates", + "items": { "type": "object", "properties": { - "name": { - "type": "string" - }, - "min": { - "type": "integer", - "format": "int32" - }, - "max": { - "type": "integer", - "format": "int32" + "taxRate": { + "type": "number", + "format": "float" }, - "unit": { + "name": { "type": "string" } } - }, - "translations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "shippingMethodId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - } - } - } - }, - "orderDeliveries": { - "type": "array", - "items": { - "type": "object", - "properties": { - "orderId": { - "type": "string" - }, - "shippingOrderAddressId": { - "type": "string" - }, - "shippingMethodId": { - "type": "string" - }, - "shippingDateEarliest": { - "type": "string", - "format": "date-time" - }, - "shippingDateLatest": { - "type": "string", - "format": "date-time" - }, - "stateId": { - "type": "string" - } - } - } - }, - "salesChannelDefaultAssignments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "typeId": { - "type": "string" - }, - "languageId": { - "type": "string" - }, - "currencyId": { - "type": "string" - }, - "paymentMethodId": { - "type": "string" - }, - "shippingMethodId": { - "type": "string" - }, - "countryId": { - "type": "string" - }, - "navigationCategoryId": { - "type": "string" - }, - "navigationCategoryDepth": { - "type": "integer", - "format": "int32" - }, - "footerCategoryId": { - "type": "string" - }, - "serviceCategoryId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "shortName": { - "type": "string" - }, - "accessKey": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "maintenance": { - "type": "boolean" - }, - "maintenanceIpWhitelist": { - "type": "string" - }, - "mailHeaderFooterId": { - "type": "string" - }, - "customerGroupId": { - "type": "string" - }, - "hreflangActive": { - "type": "boolean" - }, - "hreflangDefaultDomainId": { - "type": "string" - } - } + } + }, + "customer": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Customer" } - }, - "salesChannels": { - "type": "array", - "items": { - "type": "object", - "properties": { - "typeId": { - "type": "string" - }, - "languageId": { - "type": "string" - }, - "currencyId": { - "type": "string" - }, - "paymentMethodId": { - "type": "string" - }, - "shippingMethodId": { - "type": "string" - }, - "countryId": { - "type": "string" - }, - "navigationCategoryId": { - "type": "string" - }, - "navigationCategoryDepth": { - "type": "integer", - "format": "int32" - }, - "footerCategoryId": { - "type": "string" - }, - "serviceCategoryId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "shortName": { - "type": "string" - }, - "accessKey": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "maintenance": { - "type": "boolean" - }, - "maintenanceIpWhitelist": { - "type": "string" - }, - "mailHeaderFooterId": { - "type": "string" - }, - "customerGroupId": { - "type": "string" - }, - "hreflangActive": { - "type": "boolean" + ] + }, + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod" + }, + "shippingLocation": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_shipping_location" + ] + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "address": { + "$ref": "#/components/schemas/CustomerAddress" + } + } + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" + }, + "context": { + "description": "Core context with general configuration values and state", + "type": "object", + "properties": { + "versionId": { + "type": "string" + }, + "currencyId": { + "type": "string" + }, + "currencyFactor": { + "type": "integer" + }, + "currencyPrecision": { + "type": "integer", + "format": "int32" + }, + "languageIdChain": { + "type": "array", + "items": { + "type": "string" + } + }, + "scope": { + "type": "string" + }, + "source": { + "type": "object", + "required": [ + "salesChannelId", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "sales-channel", + "shop-api" + ] }, - "hreflangDefaultDomainId": { + "salesChannelId": { "type": "string" } } + }, + "taxState": { + "type": "string" + }, + "useCache": { + "type": "boolean" } - }, - "availabilityRule": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "priority": { - "type": "integer", - "format": "int32" - }, - "invalid": { - "type": "boolean" - } + } + }, + "itemRounding": { + "type": "object", + "required": [ + "decimals", + "interval", + "roundForNet", + "apiAlias" + ], + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" + ] + }, + "decimals": { + "type": "integer", + "format": "int32" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" + } + } + }, + "totalRounding": { + "type": "object", + "required": [ + "decimals", + "interval", + "roundForNet", + "apiAlias" + ], + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" + ] + }, + "decimals": { + "type": "integer", + "format": "int32" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" + } + } + }, + "languageInfo": { + "type": "object", + "required": [ + "localeCode", + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "localeCode": { + "type": "string" + } + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "sales_channel_context" + ] + } + }, + "required": [ + "salesChannel", + "apiAlias", + "itemRounding", + "totalRounding", + "languageInfo" + ] + }, + "Association": { + "additionalProperties": { + "$ref": "#/components/schemas/Association" + } + }, + "ContextMeasurementSystemInfo": { + "type": "object", + "description": "Configuration of the measurement system used in the store, by default including units for length and weight.", + "properties": { + "system": { + "type": "string", + "enum": [ + "metric", + "imperial" + ], + "default": "metric", + "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." + }, + "units": { + "type": "object", + "description": "Units used in the measurement system.", + "properties": { + "length": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm", + "description": "Unit of length." + }, + "weight": { + "type": "string", + "enum": [ + "g", + "kg", + "oz", + "lb" + ], + "default": "kg", + "description": "Unit of weight." + } + } + } + } + }, + "ListPrice": { + "type": "object", + "description": "", + "properties": { + "discount": { + "type": "number" + }, + "percentage": { + "type": "number" + }, + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] + } + }, + "required": [ + "apiAlias" + ] + }, + "Price": { + "type": "object", + "description": "Price object", + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" + }, + "listPrice": { + "description": "", + "type": "object", + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" } }, - "availabilityRuleId": { - "type": "string" + "required": [ + "gross", + "net" + ] + }, + "regulationPrice": { + "description": "", + "type": "object", + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" + } }, - "prices": { - "type": "array", - "items": { + "required": [ + "gross", + "net" + ] + } + }, + "required": [ + "currencyId", + "gross", + "net" + ] + }, + "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": { - "shippingMethodId": { - "type": "string" - }, - "currencyId": { + "navigationId": { "type": "string" }, - "ruleId": { - "type": "string" + "manufacturer": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } }, - "calculation": { - "type": "integer", - "format": "int32" + "price": { + "type": "object", + "properties": { + "min": { + "type": "integer", + "default": 0 + }, + "max": { + "type": "integer", + "default": 0 + } + }, + "required": [ + "min", + "max" + ] }, - "quantityStart": { - "type": "number", - "format": "float" + "rating": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] }, - "quantityEnd": { - "type": "number", - "format": "float" + "shipping-free": { + "type": "boolean", + "default": false }, - "price": { - "type": "number", - "format": "float" + "properties": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } }, - "calculationRuleId": { + "search": { "type": "string" } - } - } - }, - "mediaId": { - "type": "string" - }, - "media": { - "type": "object", - "properties": { - "userId": { - "type": "string" - }, - "mimeType": { - "type": "string" - }, - "fileExtension": { - "type": "string" - }, - "fileSize": { - "type": "integer", - "format": "int32" - }, - "title": { - "type": "string" - }, - "metaDataRaw": { - "type": "string" - }, - "mediaTypeRaw": { - "type": "string" - }, - "uploadedAt": { - "type": "string", - "format": "date-time" - }, - "alt": { - "type": "string" - }, - "url": { - "type": "string" - }, - "fileName": { - "type": "string" - }, - "mediaFolderId": { - "type": "string" - }, - "private": { - "type": "boolean" }, - "thumbnailsRo": { - "type": "string" + "required": [ + "manufacturer", + "navigationId", + "price", + "properties", + "rating", + "shipping-free" + ] + }, + "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", + "properties": { + "label": { + "type": "string" + }, + "translated": { + "type": "object", + "properties": { + "label": { + "type": "string" + } + }, + "required": [ + "label" + ] + }, + "key": { + "type": "string" + }, + "priority": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "product_sorting" + ] + } + }, + "required": [ + "label", + "translated", + "key", + "priority", + "apiAlias" + ] } - } - }, - "tags": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - } + }, + "sorting": { + "type": "string" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" } + }, + "entity": { + "type": "string", + "enum": [ + "product" + ] + }, + "apiAlias": { + "type": "string", + "enum": [ + "product_listing" + ] } - } + }, + "required": [ + "elements", + "availableSortings", + "currentFilters", + "apiAlias" + ] } - } + ] }, - "AggregationMetrics": { + "CookieGroup": { "type": "object", "properties": { + "isRequired": { + "type": "boolean" + }, "name": { "type": "string" }, - "type": { + "description": { + "type": "string" + }, + "cookie": { + "type": "string" + }, + "value": { + "type": "string" + }, + "expiration": { + "type": "integer" + }, + "entries": { + "$ref": "#/components/schemas/CookieEntryCollection" + }, + "apiAlias": { "type": "string", "enum": [ - "avg", - "count", - "max", - "min", - "stats", - "sum" + "cookie_group" ] - }, - "field": { - "type": "string" } }, + "not": { + "allOf": [ + { + "required": [ + "cookie" + ] + }, + { + "required": [ + "entries" + ] + } + ] + }, "required": [ "name", - "type", - "field" + "isRequired", + "apiAlias" ] }, - "CartDelivery": { + "CustomerAddressBody": { + "description": "Added since version: 6.0.0.0", + "required": [ + "countryId", + "firstName", + "lastName", + "city", + "street" + ], + "properties": { + "countryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryStateId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salutationId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "type": "string" + }, + "lastName": { + "type": "string" + }, + "zipcode": { + "type": "string" + }, + "city": { + "type": "string" + }, + "company": { + "type": "string" + }, + "street": { + "type": "string" + }, + "department": { + "type": "string" + }, + "title": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "additionalAddressLine1": { + "type": "string" + }, + "additionalAddressLine2": { + "type": "string" + }, + "customFields": { + "type": "object" + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "countryState": { + "$ref": "#/components/schemas/CountryState" + }, + "salutation": { + "$ref": "#/components/schemas/Salutation" + } + }, + "type": "object" + }, + "ProductDetailResponse": { "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "deliveryDate": { - "type": "object", - "properties": { - "earliest": { - "type": "string", - "format": "date-time" - }, - "latest": { - "type": "string", - "format": "date-time" - } + "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" } + } + }, + "required": [ + "product" + ] + }, + "CartPriceQuantity": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_quantity" + ] }, - "location": { - "type": "object", + "isCalculated": { + "type": "boolean" + }, + "listPrice": { + "$ref": "#/components/schemas/CartListPrice" + }, + "price": { + "type": "number" + }, + "quantity": { + "type": "number" + }, + "regulationPrice": { "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_shipping_location" - ] - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "address": { - "$ref": "#/components/schemas/CustomerAddress" - }, - "state": { - "$ref": "#/components/schemas/CountryState" + "price": { + "type": "number", + "format": "float" } - } + }, + "type": "object" }, - "positions": { + "taxRules": { "type": "array", "items": { - "$ref": "#/components/schemas/CartDeliveryPosition" + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } } }, - "shippingCosts": { - "$ref": "#/components/schemas/CalculatedPrice" - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" + "type": { + "type": "string" } - } - }, - "NavigationRouteResponse": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - } - }, - "NavigationType": { - "type": "string", - "enum": [ - "main-navigation", - "footer-navigation", - "service-navigation" + }, + "required": [ + "apiAlias" ] }, - "Association": { - "additionalProperties": { - "$ref": "#/components/schemas/Association" + "MeasurementUnits": { + "type": "object", + "description": "Configuration of the measurement system", + "properties": { + "system": { + "type": "string", + "enum": [ + "metric", + "imperial" + ], + "default": "metric", + "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." + }, + "units": { + "type": "object", + "description": "Units used in the measurement system.", + "properties": { + "length": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm", + "description": "Unit of length." + }, + "weight": { + "type": "string", + "enum": [ + "g", + "kg", + "oz", + "lb" + ], + "default": "kg", + "description": "Unit of weight." + } + } + } } }, - "CartPriceReference": { + "CookieEntry": { "type": "object", "properties": { - "purchaseUnit": { - "type": "number" - }, - "referenceUnit": { - "type": "number" - }, - "unitName": { + "cookie": { "type": "string" }, - "price": { - "type": "number" + "value": { + "type": "string" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_reference" - ] + "expiration": { + "type": "integer" }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" - } - ] + "name": { + "type": "string" }, - "regulationPrice": { - "oneOf": [ - { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } - }, - { - "type": "null" - } - ] + "description": { + "type": "string" }, - "hasRange": { + "hidden": { "type": "boolean" }, - "variantId": { - "oneOf": [ - { - "type": "string", - "format": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } + "apiAlias": { + "type": "string", + "enum": [ + "cookie_entry" ] } }, "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" + "cookie", + "hidden", + "apiAlias" ] }, - "CartItems": { + "CookieRouteResponse": { "type": "object", - "required": [ - "items" - ], + "description": "Response containing cookie groups and their configuration hash.", "properties": { - "items": { + "apiAlias": { + "type": "string", + "enum": [ + "cookie_groups_hash" + ] + }, + "elements": { "type": "array", + "description": "Collection of cookie groups", "items": { - "$ref": "#/components/schemas/LineItem" + "$ref": "#/components/schemas/CookieGroup" } + }, + "hash": { + "type": "string", + "description": "Hash of the current cookie configuration. Can be used to detect changes in cookie configuration.", + "example": "f86b6a872cb83dbd22d838ceda1aa3d4" + }, + "languageId": { + "type": "string", + "format": "uuid", + "description": "The language ID for which the cookie configuration was generated. Used to store hashes per language.", + "example": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" } + }, + "required": [ + "elements", + "hash", + "languageId", + "apiAlias" + ], + "example": { + "apiAlias": "cookie_groups_hash", + "elements": [ + { + "isRequired": true, + "description": "Cookies required for this shop to function:", + "name": "Technically required", + "entries": [ + { + "name": "Session", + "hidden": false, + "cookie": "session-", + "apiAlias": "cookie_entry" + }, + { + "name": "Timezone", + "hidden": false, + "cookie": "timezone", + "apiAlias": "cookie_entry" + }, + { + "value": "1", + "expiration": 30, + "name": "Cookie preferences", + "hidden": true, + "cookie": "cookie-preference", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + }, + { + "isRequired": false, + "description": "Cookies used for statistics and shop performance metrics.", + "name": "Statistics", + "entries": [ + { + "value": "1", + "expiration": 30, + "name": "Google Analytics", + "hidden": false, + "cookie": "google-analytics-enabled", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + }, + { + "isRequired": false, + "description": "Allows Google to collect personal data for online advertising and marketing.", + "name": "Marketing", + "entries": [ + { + "value": "1", + "expiration": 30, + "name": "Google Advertising", + "hidden": false, + "cookie": "google-ads-enabled", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + }, + { + "isRequired": false, + "name": "Comfort features", + "entries": [ + { + "value": "1", + "expiration": 30, + "name": "YouTube video", + "hidden": false, + "cookie": "youtube-video", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + } + ], + "hash": "f86b6a872cb83dbd22d838ceda1aa3d4", + "languageId": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" } }, - "ProductDetailResponse": { + "Criteria": { "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", + "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", "properties": { - "product": { - "$ref": "#/components/schemas/Product" + "page": { + "description": "Search result page", + "type": "integer" }, - "configurator": { + "term": { + "description": "Search term", + "type": "string" + }, + "limit": { + "description": "Number of items per result page", + "type": "integer" + }, + "filter": { "type": "array", - "description": "List of property groups with their corresponding options and information on how to display them.", + "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": { - "$ref": "#/components/schemas/PropertyGroup" + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] } - } - }, - "required": [ - "product" - ] - }, - "CartDeliveryInformation": { - "type": "object", - "properties": { - "apiAlias": { + }, + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } + }, + "query": { "type": "string", - "enum": [ - "cart_delivery_information" - ] + "description": "The query string to search for" }, - "freeDelivery": { - "type": "boolean" + "associations": { + "$ref": "#/components/schemas/Associations" }, - "deliveryTime": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "min": { - "type": "integer" - }, - "max": { - "type": "integer" - }, - "unit": { - "type": "string" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_time" - ] - } + "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": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + }, + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" + } + }, + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } + }, + "fields": { + "type": "array", + "description": "Fields which should be returned in the search result.", + "items": { + "type": "string", + "description": "Name of a field" } }, - "height": { - "type": "integer" - }, - "length": { - "type": "integer" - }, - "restockTime": { - "type": "integer" + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" + } }, - "stock": { - "type": "integer" + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" }, - "weight": { - "type": "integer" + "includes": { + "$ref": "#/components/schemas/Includes" }, - "width": { - "type": "integer" + "excludes": { + "$ref": "#/components/schemas/Excludes" } - }, - "required": [ - "apiAlias" - ] + } }, - "MeasurementUnits": { + "NoneFieldsCriteria": { "type": "object", - "description": "Configuration of the measurement system", + "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", "properties": { - "system": { - "type": "string", - "enum": [ - "metric", - "imperial" - ], - "default": "metric", - "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." + "page": { + "description": "Search result page", + "type": "integer" }, - "units": { - "type": "object", - "description": "Units used in the measurement system.", - "properties": { - "length": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm", - "description": "Unit of length." - }, - "weight": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg", - "description": "Unit of weight." - } - } - } - } - }, - "ProductListingResult": { - "allOf": [ - { - "$ref": "#/components/schemas/EntitySearchResult" + "term": { + "description": "Search term", + "type": "string" }, - { - "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": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "price": { - "type": "object", - "properties": { - "min": { - "type": "integer", - "default": 0 - }, - "max": { - "type": "integer", - "default": 0 - } - }, - "required": [ - "min", - "max" - ] - }, - "rating": { - "oneOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "shipping-free": { - "type": "boolean", - "default": false - }, - "properties": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "search": { - "type": "string" - } + "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": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" }, - "required": [ - "manufacturer", - "navigationId", - "price", - "properties", - "rating", - "shipping-free" - ] - }, - "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", - "properties": { - "label": { - "type": "string" - }, - "translated": { - "type": "object", - "properties": { - "label": { - "type": "string" - } - }, - "required": [ - "label" - ] - }, - "key": { - "type": "string" - }, - "priority": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "product_sorting" - ] - } - }, - "required": [ - "label", - "translated", - "key", - "priority", - "apiAlias" - ] - } - }, - "sorting": { - "type": "string" - }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } - }, - "entity": { - "type": "string", - "enum": [ - "product" - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "product_listing" - ] - } - }, - "required": [ - "elements", - "availableSortings", - "currentFilters", - "apiAlias" - ] - } - ] - }, - "CartListPrice": { - "type": "object", - "description": "", - "properties": { - "discount": { - "type": "number" + ] + } + }, + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } }, - "percentage": { - "type": "number" + "query": { + "type": "string", + "description": "The query string to search for" }, - "price": { - "type": "number" + "associations": { + "$ref": "#/components/schemas/Associations" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_list_price" - ] - } - }, - "required": [ - "apiAlias" - ] - }, - "ReferencePrice": { - "type": "object", - "properties": { - "purchaseUnit": { - "type": "number" + "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": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } }, - "referenceUnit": { - "type": "number" + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" + } }, - "unitName": { - "type": "string" + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } }, - "price": { - "type": "number" + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" + } }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_reference" - ] + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" }, - "listPrice": { - "oneOf": [ + "includes": { + "$ref": "#/components/schemas/Includes" + }, + "excludes": { + "$ref": "#/components/schemas/Excludes" + } + } + }, + "Associations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Criteria" + } + }, + "Includes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "Excludes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "Aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" + }, + { + "title": "AggregationEntity", + "allOf": [ { - "$ref": "#/components/schemas/ListPrice" + "$ref": "#/components/schemas/AggregationEntity" }, { - "type": "null" + "$ref": "#/components/schemas/SubAggregations" } ] }, - "regulationPrice": { - "oneOf": [ + { + "title": "AggregationFilter", + "allOf": [ { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } + "$ref": "#/components/schemas/AggregationFilter" }, { - "type": "null" + "$ref": "#/components/schemas/SubAggregations" } ] }, - "hasRange": { - "type": "boolean" - }, - "variantId": { - "oneOf": [ + { + "title": "AggregationTerms", + "allOf": [ { - "type": "string", - "format": "^[0-9a-f]{32}$" + "$ref": "#/components/schemas/AggregationTerms" }, { - "type": "null" + "$ref": "#/components/schemas/SubAggregations" } ] - } - }, - "required": [ - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" - ] - }, - "CartPriceQuantity": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_quantity" - ] - }, - "isCalculated": { - "type": "boolean" - }, - "listPrice": { - "$ref": "#/components/schemas/CartListPrice" - }, - "price": { - "type": "number" - }, - "quantity": { - "type": "number" }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" + { + "title": "AggregationHistogram", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationHistogram" + }, + { + "$ref": "#/components/schemas/SubAggregations" } - }, - "type": "object" + ] }, - "taxRules": { - "type": "array", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } + { + "title": "AggregationRange", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationRange" + }, + { + "$ref": "#/components/schemas/SubAggregations" } - } - }, - "type": { - "type": "string" + ] } - }, - "required": [ - "apiAlias" ] }, - "Breadcrumb": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "categoryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "type": { - "type": "string", - "enum": [ - "page", - "link", - "folder" - ] - }, - "translated": { - "type": "object", - "additionalProperties": true, - "properties": { - "customFields": { - "type": "object" - }, - "slotConfig": { - "type": "object" + "SubAggregations": { + "type": "object", + "properties": { + "aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" }, - "linkType": { - "type": "string", - "enum": [ - "external", - "category", - "product", - "landing_page" - ] + { + "$ref": "#/components/schemas/AggregationEntity" }, - "internalLink": { - "type": "string" + { + "$ref": "#/components/schemas/AggregationFilter" }, - "externalLink": { - "type": "string" + { + "$ref": "#/components/schemas/AggregationTerms" }, - "linkNewTab": { - "type": "boolean" + { + "$ref": "#/components/schemas/AggregationHistogram" }, - "description": { - "type": "string" + { + "$ref": "#/components/schemas/AggregationRange" + } + ] + } + } + }, + "TotalCountMode": { + "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" + ] + }, + "Query": { + "type": "object", + "properties": { + "score": { + "type": "number" + }, + "query": { + "oneOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" }, - "metaTitle": { - "type": "string" + { + "$ref": "#/components/schemas/EqualsFilter" }, - "metaDescription": { - "type": "string" + { + "$ref": "#/components/schemas/MultiNotFilter" }, - "keywords": { - "type": "string" + { + "$ref": "#/components/schemas/RangeFilter" } - } - }, - "path": { + ] + } + }, + "additionalProperties": true + }, + "Sort": { + "type": "object", + "properties": { + "field": { "type": "string" }, - "seoUrls": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeoUrl" - } - }, - "apiAlias": { + "order": { "type": "string", "enum": [ - "breadcrumb" + "ASC", + "DESC" ] + }, + "naturalSorting": { + "type": "boolean" + }, + "type": { + "type": "string" } }, "required": [ - "name", - "categoryId", - "type", - "translated", - "path", - "apiAlias" + "field", + "order" ] }, - "CrossSellingElement": { + "Filters": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + }, + "SimpleFilter": { "type": "object", "properties": { - "crossSelling": { - "$ref": "#/components/schemas/ProductCrossSelling" - }, - "products": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } - }, - "total": { - "type": "integer", - "format": "int32" - }, - "streamId": { - "type": "string", - "format": "uuid" - }, - "apiAlias": { + "type": { "type": "string", "enum": [ - "cross_selling_element" + "contains", + "equalsAny", + "prefix", + "suffix" ] + }, + "field": { + "type": "string" + }, + "value": { + "type": "string" } }, "required": [ - "crossSelling", - "products", - "total", - "apiAlias" + "type", + "field", + "value" ] }, - "Cart": { + "EqualsFilter": { "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": { - "$ref": "#/components/schemas/CalculatedPrice" - }, - "lineItems": { - "description": "All items within the cart", - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" - } - }, - "errors": { - "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "anyOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartError" - } - }, - { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "code": { - "type": "number" - }, - "key": { - "type": "string" - }, - "level": { - "type": "number" - }, - "message": { - "type": "string" - }, - "messageKey": { - "type": "string" - } - }, - "required": [ - "code", - "key", - "level", - "message", - "messageKey" - ] - } - } + "type": { + "type": "string", + "enum": [ + "equals" ] }, - "deliveries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDelivery" - } - }, - "transactions": { - "description": "A list of all payment transactions associated with the current cart.", - "type": "array", - "items": { - "type": "object", - "properties": { - "paymentMethodId": { - "type": "string" - }, - "amount": { - "$ref": "#/components/schemas/CalculatedPrice" - } - } - } - }, - "modified": { - "type": "boolean" + "field": { + "type": "string" }, - "customerComment": { - "description": "A comment that can be added to the cart.", + "value": { "oneOf": [ { "type": "string" }, + { + "type": "number" + }, + { + "type": "boolean" + }, { "type": "null" } ] + } + }, + "required": [ + "type", + "field", + "value" + ] + }, + "MultiNotFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "multi", + "not" + ] }, - "affiliateCode": { - "description": "An affiliate tracking code", + "operator": { + "type": "string", + "enum": [ + "and", + "or", + "nor", + "nand" + ] + }, + "queries": { + "$ref": "#/components/schemas/Filters" + } + }, + "required": [ + "type", + "operator", + "queries" + ] + }, + "RangeFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "range" + ] + }, + "field": { + "type": "string" + }, + "parameters": { + "type": "object", + "properties": { + "gte": { + "type": "number" + }, + "gt": { + "type": "number" + }, + "lte": { + "type": "number" + }, + "lt": { + "type": "number" + } + } + } + }, + "required": [ + "type", + "field", + "parameters" + ] + }, + "CustomerAddressRead": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true + }, + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { "oneOf": [ { - "type": "string" + "type": "string", + "format": "date-time" }, { "type": "null" } ] }, - "campaignCode": { - "description": "A campaign tracking code", + "country": { + "$ref": "#/components/schemas/Country" + }, + "countryState": { "oneOf": [ { - "type": "string" + "$ref": "#/components/schemas/CountryState" }, { "type": "null" } ] }, - "apiAlias": { - "type": "string", - "enum": [ - "cart" - ] + "salutation": { + "$ref": "#/components/schemas/Salutation" } }, "required": [ - "price", - "apiAlias" + "customerId", + "createdAt", + "updatedAt", + "country", + "salutation" ] }, - "SuccessResponse": { + "ProductMeasurements": { "type": "object", + "description": "Runtime field, cannot be used as part of the criteria. Measurements of a product, including dimensions and weight.", "properties": { - "success": { - "type": "boolean" + "width": { + "type": "object", + "properties": { + "unit": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm" + }, + "value": { + "type": "number" + } + } + }, + "height": { + "type": "object", + "properties": { + "unit": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm" + }, + "value": { + "type": "number" + } + } + }, + "length": { + "type": "object", + "properties": { + "unit": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm" + }, + "value": { + "type": "number" + } + } + }, + "weight": { + "type": "object", + "properties": { + "unit": { + "type": "string", + "enum": [ + "g", + "kg", + "oz", + "lb" + ], + "default": "kg" + }, + "value": { + "type": "number" + } + } } } }, @@ -17132,2146 +20018,2475 @@ "account_newsletter_recipient" ] } - }, - "required": [ - "status", - "apiAlias" - ] + }, + "required": [ + "status", + "apiAlias" + ] + }, + "SearchByImageSearchTermResponse": { + "type": "array", + "items": { + "type": "object", + "required": [ + "term", + "apiAlias" + ], + "properties": { + "term": { + "type": "string" + }, + "apiAlias": { + "type": "string", + "enum": [ + "product_image_upload_search_term" + ] + }, + "extensions": { + "type": "array", + "items": { + "type": "object" + } + } + } + } + }, + "NaturalLanguageSearchTermResponse": { + "type": "array", + "items": { + "type": "object", + "required": [ + "term", + "reason", + "apiAlias" + ], + "properties": { + "term": { + "type": "string" + }, + "reason": { + "type": "string" + }, + "apiAlias": { + "type": "string", + "enum": [ + "product_natural_language_search_term" + ] + } + } + } }, - "CartDeliveryPosition": { - "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "ApprovalRule": { "properties": { - "deliveryDate": { - "type": "object", - "properties": { - "earliest": { - "type": "string", - "format": "date-time" - }, - "latest": { - "type": "string", - "format": "date-time" - } - } + "id": { + "type": "string", + "format": "uuid" }, - "identifier": { + "businessPartnerCustomerId": { "type": "string" }, - "lineItem": { - "$ref": "#/components/schemas/LineItem" + "name": { + "type": "string" }, - "price": { - "$ref": "#/components/schemas/CalculatedPrice" - } - } - }, - "ListPrice": { - "type": "object", - "description": "", - "properties": { - "discount": { - "type": "number" + "priority": { + "type": "integer" }, - "percentage": { - "type": "number" + "description": { + "type": "string" }, - "price": { - "type": "number" + "active": { + "type": "boolean" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_list_price" - ] + "conditions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type": { + "type": "string" + }, + "value": { + "type": "string" + } + } + } } }, - "required": [ - "apiAlias" - ] + "type": "object" }, - "Price": { + "PendingOrder": { "type": "object", - "description": "Price object", "properties": { - "currencyId": { + "id": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "gross": { - "description": "", - "type": "number" + "format": "uuid" }, - "net": { - "description": "", - "type": "number" + "number": { + "type": "string" }, - "linked": { - "description": "", - "type": "boolean" + "reason": { + "type": "string" }, - "listPrice": { - "description": "", - "type": "object", - "properties": { - "currencyId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "gross": { - "description": "", - "type": "number" - }, - "net": { - "description": "", - "type": "number" + "cartPayload": { + "oneOf": [ + { + "type": "object" }, - "linked": { - "description": "", - "type": "boolean" + { + "type": "string" } - }, - "required": [ - "gross", - "net" ] }, - "regulationPrice": { - "description": "", - "type": "object", + "price": { + "required": [ + "netPrice", + "totalPrice", + "positionPrice", + "rawTotal", + "taxStatus" + ], "properties": { - "currencyId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "netPrice": { + "type": "number", + "format": "float" }, - "gross": { - "description": "", - "type": "number" + "totalPrice": { + "type": "number", + "format": "float" }, - "net": { - "description": "", - "type": "number" + "calculatedTaxes": { + "type": "object" }, - "linked": { - "description": "", - "type": "boolean" + "taxRules": { + "type": "object" + }, + "positionPrice": { + "type": "number", + "format": "float" + }, + "rawTotal": { + "type": "number", + "format": "float" + }, + "taxStatus": { + "type": "string" } }, - "required": [ - "gross", - "net" - ] - } - }, - "required": [ - "currencyId", - "gross", - "net" - ] - }, - "CartError": { - "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "properties": { - "key": { - "type": "string" + "type": "object" }, - "level": { - "type": "number", - "enum": [ - 0, - 10, - 20 - ], - "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod", + "nullable": true }, - "message": { - "type": "string" + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod", + "nullable": true }, - "messageKey": { + "stateMachineState": { + "$ref": "#/components/schemas/StateMachineState", + "nullable": true + }, + "lineItemCount": { + "type": "integer" + }, + "employeeId": { "type": "string" - } - }, - "required": [ - "key", - "level", - "message", - "messageKey" - ] - }, - "Sitemap": { - "type": "object", - "properties": { - "filename": { + }, + "decidedById": { "type": "string" }, - "created": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "filename", - "created" - ] - }, - "SalesChannelContext": { - "type": "object", - "properties": { - "token": { - "description": "Context the user session", + "customerId": { "type": "string" }, - "currentCustomerGroup": { - "type": "object", - "description": "Customer group of the current user", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } - } + "stateId": { + "type": "string" }, - "fallbackCustomerGroup": { - "description": "Fallback group if the default customer group is not applicable", - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } - } + "currencyId": { + "type": "string" }, - "currency": { - "$ref": "#/components/schemas/Currency" + "shippingMethodId": { + "type": "string" }, - "salesChannel": { - "$ref": "#/components/schemas/SalesChannel" + "paymentMethodId": { + "type": "string" }, - "measurementSystem": { - "$ref": "#/components/schemas/ContextMeasurementSystemInfo" + "countryId": { + "type": "string" }, - "taxRules": { - "type": "array", - "description": "Currently active tax rules and/or rates", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } - } + "salesChannelId": { + "type": "string" }, - "customer": { + "languageId": { + "type": "string" + }, + "billingAddress": { + "$ref": "#/components/schemas/OrderAddress", + "nullable": true + }, + "language": { "oneOf": [ { - "type": "null" + "type": "object" }, { - "$ref": "#/components/schemas/Customer" + "type": "null" } ] }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" - }, - "shippingLocation": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_shipping_location" - ] - }, - "country": { - "$ref": "#/components/schemas/Country" + "country": { + "oneOf": [ + { + "type": "object" }, - "address": { - "$ref": "#/components/schemas/CustomerAddress" + { + "type": "null" } - } - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" + ] }, - "context": { - "description": "Core context with general configuration values and state", - "type": "object", - "properties": { - "versionId": { - "type": "string" - }, - "currencyId": { - "type": "string" - }, - "currencyFactor": { - "type": "integer" - }, - "currencyPrecision": { - "type": "integer", - "format": "int32" - }, - "languageIdChain": { - "type": "array", - "items": { - "type": "string" - } - }, - "scope": { - "type": "string" - }, - "source": { - "type": "object", - "required": [ - "salesChannelId", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "sales-channel", - "shop-api" - ] - }, - "salesChannelId": { - "type": "string" - } - } - }, - "taxState": { - "type": "string" + "currency": { + "oneOf": [ + { + "type": "object" }, - "useCache": { - "type": "boolean" + { + "type": "null" } - } + ] }, - "itemRounding": { - "type": "object", - "required": [ - "decimals", - "interval", - "roundForNet", - "apiAlias" - ], - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" - ] - }, - "decimals": { - "type": "integer", - "format": "int32" - }, - "interval": { - "type": "number", - "format": "float" + "salesChannel": { + "oneOf": [ + { + "type": "object" }, - "roundForNet": { - "type": "boolean" + { + "type": "null" } - } + ] }, - "totalRounding": { - "type": "object", - "required": [ - "decimals", - "interval", - "roundForNet", - "apiAlias" - ], - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" - ] - }, - "decimals": { - "type": "integer", - "format": "int32" - }, - "interval": { - "type": "number", - "format": "float" - }, - "roundForNet": { - "type": "boolean" - } - } + "approvalRuleId": { + "type": "string" }, - "languageInfo": { - "type": "object", - "required": [ - "localeCode", - "name" - ], - "properties": { - "name": { - "type": "string" + "itemRounding": { + "oneOf": [ + { + "type": "object" }, - "localeCode": { - "type": "string" + { + "type": "null" } - } - }, - "apiAlias": { - "type": "string", - "enum": [ - "sales_channel_context" ] - } - }, - "required": [ - "salesChannel", - "apiAlias", - "itemRounding", - "totalRounding", - "languageInfo" - ] - }, - "ProductMeasurements": { - "type": "object", - "description": "Runtime field, cannot be used as part of the criteria. Measurements of a product, including dimensions and weight.", - "properties": { - "width": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" + }, + "totalRounding": { + "oneOf": [ + { + "type": "object" }, - "value": { - "type": "number" + { + "type": "null" } - } + ] }, - "height": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" - }, - "value": { + "taxStatus": { + "type": "string" + }, + "amountTotal": { + "oneOf": [ + { "type": "number" + }, + { + "type": "null" } - } + ] }, - "length": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" - }, - "value": { + "amountNet": { + "oneOf": [ + { "type": "number" + }, + { + "type": "null" } - } + ] }, - "weight": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg" - }, - "value": { + "originalPrice": { + "oneOf": [ + { "type": "number" + }, + { + "type": "null" } - } + ] } } }, - "ContextMeasurementSystemInfo": { + "ListCategoryRouteResponse": { "type": "object", - "description": "Configuration of the measurement system used in the store, by default including units for length and weight.", "properties": { - "system": { - "type": "string", - "enum": [ - "metric", - "imperial" - ], - "default": "metric", - "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." + "categories": { + "$ref": "#/components/schemas/EntitySearchResult" + } + }, + "required": [ + "categories" + ] + } + }, + "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." + } + ] + } }, - "units": { - "type": "object", - "description": "Units used in the measurement system.", - "properties": { - "length": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm", - "description": "Unit of length." - }, - "weight": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg", - "description": "Unit of weight." - } + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "404", + "title": "Not Found", + "description": "Resource with given parameter was not found." + } + ] + } + } + } + }, + "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." + } + ] + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "403", + "title": "Forbidden", + "description": "This operation is restricted to logged in users." + } + ] + } + } + } + }, + "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." + } + ] + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "401", + "title": "Unauthorized", + "description": "Authorization information is missing or invalid." + } + ] + } + } + } + }, + "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." + } + ] + } + }, + "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." + } + ] + } + } + } + }, + "204": { + "description": "No Content" + }, + "ProductListResponse": { + "description": "Entity search result containing products", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "required": [ + "elements" + ], + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } } } }, - "LineItemType": { - "type": "string", - "enum": [ - "product", - "credit", - "custom", - "promotion", - "discount", - "container", - "quantity" - ] - }, - "LineItem": { - "type": "object", - "properties": { - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" + "CategoryListResponse": { + "description": "Entity search result containing categories.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "type": "object", + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" + } + } + } + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } - }, - "cover": { - "$ref": "#/components/schemas/ProductMedia" - }, - "dataContextHash": { - "type": "string" - }, - "dataTimestamp": { - "type": "string" - }, - "deliveryInformation": { - "$ref": "#/components/schemas/CartDeliveryInformation" - }, - "description": { - "type": "string" - }, - "good": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "label": { - "type": "string" - }, - "modified": { - "type": "boolean" - }, - "modifiedByApp": { - "type": "boolean" - }, - "payload": { - "$ref": "#/components/schemas/ProductJsonApi" - }, - "price": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "calculated_price" - ] - }, - "calculatedTaxes": { - "type": "array", - "items": { + } + } + }, + "OpenApi3": { + "description": "Returns information about the store API.", + "content": { + "application/json": { + "schema": { + "properties": { + "openapi": { + "type": "string" + }, + "info": { "type": "object", "properties": { - "apiAlias": { + "title": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "termsOfService": { "type": "string", - "enum": [ - "cart_tax_calculated" - ] + "format": "uri" }, - "tax": { - "type": "number" + "contact": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "email": { + "type": "string", + "format": "email" + } + } }, - "taxRate": { - "type": "number" + "license": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "name" + ] }, - "price": { - "type": "number" + "version": { + "type": "string" } }, "required": [ - "apiAlias", - "tax", - "taxRate", - "price" + "title", + "version" ] - } - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" + }, + "jsonSchemaDialect": { + "type": "string" + }, + "webhooks": { + "type": "object" + }, + "servers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "required": [ + "url" + ] } - ] - }, - "quantity": { - "type": "number" - }, - "referencePrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartPriceReference" - }, - { - "type": "null" + }, + "components": { + "type": "object", + "properties": { + "schemas": { + "type": "object" + }, + "responses": { + "type": "object" + }, + "parameters": { + "type": "object" + }, + "examples": { + "type": "object" + }, + "requestBodies": { + "type": "object" + }, + "headers": { + "type": "object" + }, + "securitySchemes": { + "type": "object" + }, + "links": { + "type": "object" + }, + "callbacks": { + "type": "object" + }, + "pathItems": { + "type": "object" + } } - ] - }, - "regulationPrice": { - "oneOf": [ - { + }, + "security": { + "type": "array", + "items": { + "type": "object" + } + }, + "paths": { + "type": "object" + }, + "tags": { + "type": "array", + "items": { "type": "object", "properties": { - "price": { - "type": "number" + "name": { + "type": "string" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" + "description": { + "type": "string" + }, + "externalDocs": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url" ] } - } - }, - { - "type": "null" + }, + "required": [ + "name" + ] } - ] - }, - "totalPrice": { - "type": "number" - }, - "unitPrice": { - "type": "number" - }, - "taxRules": { - "type": "array", - "description": "Currently active tax rules and/or rates", - "items": { + }, + "externalDocs": { "type": "object", "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { + "description": { "type": "string" + }, + "url": { + "type": "string", + "format": "uri" } - } + }, + "required": [ + "url" + ] } - } - }, - "required": [ - "apiAlias", - "totalPrice", - "quantity", - "unitPrice" - ] - }, - "priceDefinition": { - "$ref": "#/components/schemas/CartPriceQuantity" - }, - "quantity": { - "type": "number" - }, - "quantityInformation": { - "type": "object", - "properties": { - "maxPurchase": { - "type": "number" - }, - "minPurchase": { - "type": "number" }, - "purchaseSteps": { - "type": "number" - } - } - }, - "referencedId": { - "type": "string" - }, - "removable": { - "type": "boolean" - }, - "stackable": { - "type": "boolean" - }, - "states": { - "type": "array", - "items": { - "type": "string", - "enum": [ - "is-physical", - "is-download" + "type": "object", + "required": [ + "openapi", + "info" ] } - }, - "type": { - "$ref": "#/components/schemas/LineItemType" - }, - "uniqueIdentifier": { - "type": "string" } - }, - "required": [ - "id", - "type", - "deliveryInformation", - "payload", - "quantity", - "states" - ] + } }, - "CalculatedPrice": { - "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", - "properties": { - "unitPrice": { - "type": "number" - }, - "quantity": { - "type": "number" - }, - "rawTotal": { - "type": "number" - }, - "totalPrice": { - "type": "number" - }, - "taxStatus": { - "type": "string", - "enum": [ - "net", - "tax-free" - ] - }, - "calculatedTaxes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_tax_calculated" - ] - }, - "tax": { - "type": "number" - }, - "taxRate": { - "type": "number" + "CountryStateListResponse": { + "description": "Entity search result containing countries.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CountryState" + } + } + }, + "type": "object" }, - "price": { - "type": "number" + { + "$ref": "#/components/schemas/EntitySearchResult" } - }, - "required": [ - "apiAlias", - "tax", - "taxRate", - "price" ] } - }, - "referencePrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartPriceReference" - }, - { - "type": "null" - } - ] - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" + } + } + }, + "CurrencyListResponse": { + "description": "Entity search result containing currencies.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Currency" } - ] - }, - "positionPrice": { - "type": "number" - }, - "netPrice": { - "type": "number" - }, - "regulationPrice": { - "oneOf": [ - { - "type": "object", - "properties": { - "price": { - "type": "number" + } + } + } + }, + "SeoUrlListResponse": { + "description": "Entity search result containing seo urls.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeoUrl" + } + } }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } + "type": "object", + "required": [ + "elements" + ] + }, + { + "$ref": "#/components/schemas/EntitySearchResult" } - }, - { - "type": "null" - } - ] - }, - "hasRange": { - "type": "boolean" - }, - "variantId": { - "oneOf": [ - { - "type": "string", - "format": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "calculated_price" - ] - }, - "taxRules": { - "type": "array", - "description": "Currently active tax rules and/or rates", - "items": { - "type": "object", + ] + } + } + } + }, + "PaymentMethodListResponse": { + "description": "", + "content": { + "application/json": { + "schema": { "properties": { - "taxRate": { - "type": "number", - "format": "float" + "total": { + "description": "Total amount", + "type": "integer" }, - "name": { - "type": "string" + "aggregations": { + "description": "aggregation result", + "type": "object" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentMethod" + } } - } + }, + "type": "object" } } - }, - "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "referencePrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitPrice", - "positionPrice", - "netPrice", - "taxRules", - "rawTotal", - "taxStatus" - ] + } }, - "CustomerAddressBody": { - "description": "Added since version: 6.0.0.0", - "required": [ - "countryId", - "firstName", - "lastName", - "city", - "street" - ], - "properties": { - "countryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryStateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salutationId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "zipcode": { - "type": "string" - }, - "city": { - "type": "string" - }, - "company": { - "type": "string" - }, - "street": { - "type": "string" - }, - "department": { - "type": "string" - }, - "title": { - "type": "string" - }, - "phoneNumber": { - "type": "string" - }, - "additionalAddressLine1": { - "type": "string" - }, - "additionalAddressLine2": { - "type": "string" - }, - "customFields": { - "type": "object" - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "$ref": "#/components/schemas/CountryState" - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + "ShippingMethodListResponse": { + "description": "Entity search result containing shipping methods.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "required": [ + "elements" + ], + "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/EntitySearchResult" + } + ] + } } - }, - "type": "object" + } }, - "SearchByImageSearchTermResponse": { - "type": "array", - "items": { - "type": "object", - "required": [ - "term", - "apiAlias" - ], - "properties": { - "term": { - "type": "string" - }, - "apiAlias": { - "type": "string", - "enum": [ - "product_image_upload_search_term" + "SalutationListResponse": { + "description": "Entity search result containing salutations.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Salutation" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } ] - }, - "extensions": { - "type": "array", - "items": { - "type": "object" + } + } + } + }, + "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" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redirectUrl": { + "description": "Define the URL which browser will be redirected to", + "type": "string" + } } } } } }, - "NaturalLanguageSearchTermResponse": { - "type": "array", - "items": { - "type": "object", - "required": [ - "term", - "reason", - "apiAlias" - ], - "properties": { - "term": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "apiAlias": { - "type": "string", - "enum": [ - "product_natural_language_search_term" + "CountryListResponse": { + "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" + } ] } } } }, - "ApprovalRule": { - "properties": { - "id": { - "type": "string", - "format": "uuid" - }, - "businessPartnerCustomerId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "priority": { - "type": "integer" - }, - "description": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "conditions": { - "type": "array", - "items": { - "type": "object", - "properties": { - "type": { - "type": "string" + "LanguageListResponse": { + "description": "Entity search result containing languages.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Language" + } + } + }, + "required": [ + "elements" + ], + "type": "object" }, - "value": { - "type": "string" + { + "$ref": "#/components/schemas/EntitySearchResult" } - } + ] } } - }, - "type": "object" + } + } + }, + "parameters": { + "contentType": { + "name": "Content-Type", + "in": "header", + "description": "Content type of the request", + "required": true, + "schema": { + "type": "string", + "default": "application/json" + } }, - "PendingOrder": { - "type": "object", - "properties": { - "id": { - "type": "string", - "format": "uuid" - }, - "number": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "cartPayload": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "string" - } - ] - }, - "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" - } + "accept": { + "name": "Accept", + "in": "header", + "description": "Accepted response content types", + "required": true, + "schema": { + "type": "string", + "default": "application/json" + } + }, + "noAggregations": { + "name": "no-aggregations", + "in": "query", + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" }, - "type": "object" - }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod", - "nullable": true - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod", - "nullable": true - }, - "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState", - "nullable": true - }, - "lineItemCount": { - "type": "integer" - }, - "employeeId": { - "type": "string" - }, - "decidedById": { - "type": "string" - }, - "customerId": { - "type": "string" - }, - "stateId": { - "type": "string" - }, - "currencyId": { - "type": "string" - }, - "shippingMethodId": { - "type": "string" - }, - "paymentMethodId": { - "type": "string" - }, - "countryId": { - "type": "string" - }, - "salesChannelId": { - "type": "string" - }, - "languageId": { - "type": "string" - }, - "billingAddress": { - "$ref": "#/components/schemas/OrderAddress", - "nullable": true - }, - "language": { - "oneOf": [ + { + "type": "null" + } + ] + } + }, + "onlyAggregations": { + "name": "only-aggregations", + "in": "query", + "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.", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "criteriaPage": { + "name": "page", + "in": "query", + "description": "Search result page", + "schema": { + "type": "integer" + } + }, + "criteriaLimit": { + "name": "limit", + "in": "query", + "description": "Number of items per result page", + "schema": { + "type": "integer" + } + }, + "criteriaTerm": { + "name": "term", + "in": "query", + "description": "Search term", + "schema": { + "type": "string" + } + }, + "criteriaFilter": { + "name": "filter[]", + "in": "query", + "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)", + "schema": { + "type": "array", + "items": { + "anyOf": [ { - "type": "object" + "$ref": "#/components/schemas/SimpleFilter" }, { - "type": "null" + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } ] - }, - "country": { - "oneOf": [ + } + } + }, + "criteriaIds": { + "name": "ids[]", + "in": "query", + "description": "List of ids to search for", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "criteriaQuery": { + "name": "query", + "in": "query", + "description": "The query string to search for", + "schema": { + "type": "string" + } + }, + "criteriaAssociations": { + "name": "associations", + "in": "query", + "description": "", + "schema": { + "$ref": "#/components/schemas/Associations" + }, + "style": "deepObject", + "explode": true + }, + "criteriaPostFilter": { + "name": "post-filter[]", + "in": "query", + "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)", + "schema": { + "type": "array", + "items": { + "anyOf": [ { - "type": "object" + "$ref": "#/components/schemas/SimpleFilter" }, { - "type": "null" + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } ] - }, - "currency": { - "oneOf": [ - { + } + } + }, + "criteriaSort": { + "name": "sort[]", + "in": "query", + "description": "Sorting in the search result.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Sort" + } + } + }, + "criteriaAggregations": { + "name": "aggregations[]", + "in": "query", + "description": "", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } + } + }, + "criteriaFields": { + "name": "fields[]", + "in": "query", + "description": "Fields which should be returned in the search result.", + "schema": { + "type": "array", + "items": { + "type": "string", + "description": "Name of a field" + } + } + }, + "criteriaGrouping": { + "name": "grouping[]", + "in": "query", + "description": "Perform groupings over certain fields", + "schema": { + "type": "array", + "items": { + "type": "string", + "description": "Name of a field" + } + } + }, + "criteriaTotalCountMode": { + "name": "total-count-mode", + "in": "query", + "description": "", + "schema": { + "$ref": "#/components/schemas/TotalCountMode" + } + }, + "criteriaIncludes": { + "name": "includes", + "in": "query", + "description": "Specify the fields that should be returned for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Fields will not be included, if they are also specified in the excludes. Note that the include fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons.", + "schema": { + "$ref": "#/components/schemas/Includes" + }, + "style": "deepObject", + "explode": true + }, + "criteriaExcludes": { + "name": "excludes", + "in": "query", + "description": "Specify the fields that should be excluded from the response for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Note that the exclude fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons.", + "schema": { + "$ref": "#/components/schemas/Excludes" + }, + "style": "deepObject", + "explode": true + }, + "CompressedCriteria": { + "name": "_criteria", + "in": "query", + "description": "Compressed and encoded criteria object. Format: base64url(gzip(json_encode(criteria))). This parameter allows passing complex criteria as a single encoded string instead of multiple query parameters. The criteria object should be JSON-encoded, then gzipped, and finally base64url-encoded. The criteria object structure is defined in the Criteria schema (see #/components/schemas/Criteria).", + "required": false, + "schema": { + "type": "string", + "format": "base64url", + "example": "H4sIAAAAAAAAA6tWykpNzFGyqlbKz8lPTSxRslJKSi0pzSsFAGcQr7sHAAAA" + } + }, + "CompressedNoneFieldsCriteria": { + "name": "_criteria", + "in": "query", + "description": "Compressed and encoded criteria object. Format: base64url(gzip(json_encode(criteria))). This parameter allows passing complex criteria as a single encoded string instead of multiple query parameters. The criteria object should be JSON-encoded, then gzipped, and finally base64url-encoded. The criteria object structure is defined in the NoneFieldsCriteria schema (see #/components/schemas/NoneFieldsCriteria).", + "required": false, + "schema": { + "type": "string", + "format": "base64url", + "example": "H4sIAAAAAAAAA6tWykpNzFGyqlbKz8lPTSxRslJKSi0pzSsFAGcQr7sHAAAA" + } + } + }, + "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": { + "/employee/create": { + "post": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Create a single employee and return the employee", + "description": "This route is used to create and return an employee", + "operationId": "createEmployee", + "parameters": [], + "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" + }, + "languageId": { + "description": "Identifier of the [language](#/System%20%26%20Context/readLanguages) to be set for the new employee.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "roleId": { + "description": "Id of the role of the new employee", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "required": [ + "firstName", + "lastName", + "email", + "languageId" + ], "type": "object" - }, - { - "type": "null" } - ] - }, - "salesChannel": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "null" + } + } + }, + "responses": { + "200": { + "description": "Employee entity", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/B2bEmployee" + } } - ] - }, - "approvalRuleId": { - "type": "string" - }, - "itemRounding": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "null" + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/employee": { + "get": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Fetch a list of employees", + "description": "This route is used to load employees", + "operationId": "readEmployees", + "parameters": [], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + } + ] } - ] - }, - "totalRounding": { - "oneOf": [ - { - "type": "object" - }, - { - "type": "null" + } + } + }, + "responses": { + "200": { + "description": "Entity search result containing employees", + "content": { + "application/json": { + "schema": { + "type": "object", + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bEmployee" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } } - ] - }, - "taxStatus": { - "type": "string" - }, - "amountTotal": { - "oneOf": [ - { - "type": "number" - }, - { - "type": "null" + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "post": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Fetch a list of employees", + "description": "This route is used to load employees", + "operationId": "readEmployeesPOST", + "parameters": [], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + } + ] } - ] - }, - "amountNet": { - "oneOf": [ - { - "type": "number" - }, - { - "type": "null" + } + } + }, + "responses": { + "200": { + "description": "Entity search result containing employees", + "content": { + "application/json": { + "schema": { + "type": "object", + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bEmployee" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/employee/{id}": { + "get": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Fetch one employee by id", + "description": "This route is used to fetch one employee by id\n\n**Available Associations:**\n- `role`\n- `language`\n- `organization`", + "operationId": "readB2bEmployee", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Identifier of the employee to be read", + "required": true, + "schema": { + "type": "string", + "format": "uuid" + } + } + ], + "responses": { + "200": { + "description": "Employee entity", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/B2bEmployee" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "patch": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Update 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}$" + } + } + ], + "requestBody": { + "required": true, + "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" + } + }, + "type": "object" } - ] - }, - "originalPrice": { - "oneOf": [ - { - "type": "number" - }, - { - "type": "null" + } + } + }, + "responses": { + "200": { + "description": "Employee entity", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/B2bEmployee" + } } - ] + } } - } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "delete": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Delete one 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": [] + } + ] } }, - "responses": { - "404": { - "description": "Not Found", - "content": { - "application/vnd.api+json": { + "/employee/reinvite/{id}": { + "post": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Reinvite employee by id", + "description": "This route is used to reinvite an employee via email by id", + "operationId": "reinviteEmployee", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Identifier of the employee to be reinvited", + "required": true, "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "404", - "title": "Not Found", - "description": "Resource with given parameter was not found." - } - ] + "type": "string", + "pattern": "^[0-9a-f]{32}$" } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "404", - "title": "Not Found", - "description": "Resource with given parameter was not found." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "storefrontUrl": { + "description": "URL of the storefront domain", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "Employee entity", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/B2bEmployee" } - ] + } } } - } - }, - "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": [] + } + ] + } + }, + "/role/create": { + "post": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Create a single role and return 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" + } + }, + "isDefaultRole": { + "description": "Ability to set the new role as default", + "type": "boolean" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "Role entity", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/B2bComponentsRole" } - ] + } } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "403", - "title": "Forbidden", - "description": "This operation is restricted to logged in users." + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/role": { + "get": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Fetch a list of roles", + "description": "This route is used to load roles", + "operationId": "readRoles", + "parameters": [], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Entity search result containing roles", + "content": { + "application/json": { + "schema": { + "type": "object", + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bComponentsRole" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } - ] + } } } - } + }, + "security": [ + { + "ApiKey": [] + } + ] }, - "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." - } - ] - } - }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "401", - "title": "Unauthorized", - "description": "Authorization information is missing or invalid." - } - ] + "post": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Fetch a list of roles", + "description": "This route is used to load roles", + "operationId": "readRolesPOST", + "parameters": [], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + } + ] + } } } - } - }, - "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." + }, + "responses": { + "200": { + "description": "Entity search result containing roles", + "content": { + "application/json": { + "schema": { + "type": "object", + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bComponentsRole" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } - ] + } } - }, - "application/json": { + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/role/{id}": { + "get": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Fetch 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": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "400", - "title": "Bad Request", - "description": "Bad parameters for this endpoint. See documentation for the correct ones." - } - ] + "type": "string", + "pattern": "^[0-9a-f]{32}$" } } - } - }, - "204": { - "description": "No Content" - }, - "CountryStateListResponse": { - "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" + ], + "responses": { + "200": { + "description": "Role entity", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/B2bComponentsRole" } - ] + } } } - } + }, + "security": [ + { + "ApiKey": [] + } + ] }, - "CategoryListResponse": { - "description": "Entity search result containing categories.", - "content": { - "application/json": { + "patch": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Update one role by id", + "description": "This route is used to update one role by id", + "operationId": "updateRole", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Identifier of the role to be updated", + "required": true, "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - } - } - } - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "type": "string", + "pattern": "^[0-9a-f]{32}$" } } - } - }, - "CountryListResponse": { - "description": "Entity search result containing countries.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Country" - } + ], + "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" } }, - "type": "object" + "isDefaultRole": { + "description": "Ability to set the role as default", + "type": "boolean" + } }, - { - "$ref": "#/components/schemas/EntitySearchResult" + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "Role entity", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/B2bComponentsRole" } - ] + } } } - } + }, + "security": [ + { + "ApiKey": [] + } + ] }, - "CurrencyListResponse": { - "description": "Entity search result containing currencies.", - "content": { - "application/json": { + "delete": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Delete one 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": "array", - "items": { - "$ref": "#/components/schemas/Currency" + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "responses": { + "204": { + "description": "No content response" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/role/default": { + "post": { + "tags": [ + "B2B Employee Management" + ], + "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" } } } - } - }, - "SalutationListResponse": { - "description": "Entity search result containing salutations.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Salutation" - } + }, + "responses": { + "204": { + "description": "No content response" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/permission": { + "get": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Fetch all available permissions", + "description": "This route is used to fetch all available permissions", + "operationId": "readPermissions", + "responses": { + "200": { + "description": "Permission collection", + "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" + } + } + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" + ] } - ] + } } } - } + }, + "security": [ + { + "ApiKey": [] + } + ] }, - "SeoUrlListResponse": { - "description": "Entity search result containing seo urls.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeoUrl" - } - } + "post": { + "tags": [ + "B2B Employee Management" + ], + "summary": "Add a new permission", + "description": "This route is used to add a new permissions", + "operationId": "addPermission", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "name": { + "description": "Name of the new permission", + "type": "string" }, - "type": "object", - "required": [ - "elements" - ] + "group": { + "description": "Group of the new permission", + "type": "string" + }, + "dependencies": { + "description": "Optional dependencies for the new permission", + "type": "array", + "items": { + "type": "string" + } + } }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "type": "object" + } } } - } - }, - "ShippingMethodListResponse": { - "description": "Entity search result containing shipping methods.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "required": [ - "elements" - ], - "properties": { - "total": { - "description": "Total amount", - "type": "integer" - }, - "aggregations": { - "description": "aggregation result", + }, + "parameters": [], + "responses": { + "200": { + "description": "Permission collection", + "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" + } + } + } + } + }, "type": "object" }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ShippingMethod" - } + { + "$ref": "#/components/schemas/EntitySearchResult" } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" + ] } - ] + } } } - } - }, - "LanguageListResponse": { - "description": "Entity search result containing languages.", - "content": { - "application/json": { + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/sso/auth/{providerId}": { + "post": { + "tags": [ + "Sso" + ], + "summary": "Authenticates via SSO", + "description": "Authenticates login via a given SSO provider ID", + "operationId": "auth", + "parameters": [ + { + "name": "providerId", + "in": "path", + "description": "Identifier of the SSO provider used to authenticate", + "required": true, "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Language" - } - } - }, - "required": [ - "elements" - ], - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "responses": { + "204": { + "description": "Successfully authenticated", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SuccessResponse" } - ] + } } } - } - }, - "ProductListResponse": { - "description": "Entity search result containing products", - "content": { - "application/json": { + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/sso/redirect/{providerId}": { + "post": { + "tags": [ + "Sso" + ], + "summary": "Redirects after authentication", + "description": "Redirects after authenticated login via a given SSO provider ID", + "operationId": "redirect", + "parameters": [ + { + "name": "providerId", + "in": "path", + "description": "Identifier of the SSO provider used to authenticate", + "required": true, "schema": { - "allOf": [ - { - "required": [ - "elements" - ], - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "responses": { + "204": { + "description": "Successfully authenticated", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SuccessResponse" } - ] + } } } - } - }, - "PaymentMethodListResponse": { - "description": "", - "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" + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/quote/request": { + "post": { + "tags": [ + "B2B Quote Management" + ], + "summary": "Request new quote", + "description": "This route is used to request a new quote from the store", + "operationId": "requestQuote", + "parameters": [], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "properties": { + "comment": { + "description": "Message content", + "type": "string" } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "Quote entity", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Quote" } - }, - "type": "object" + } } } - } - }, - "OpenApi3": { - "description": "Returns information about the store API.", - "content": { - "application/json": { - "schema": { - "properties": { - "openapi": { - "type": "string" - }, - "info": { + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/quotes": { + "post": { + "tags": [ + "B2B Quote Management" + ], + "summary": "Fetch a list of quotes", + "description": "This route is used to load quotes", + "operationId": "readQuotes", + "parameters": [], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Entity search result containing quotes", + "content": { + "application/json": { + "schema": { "type": "object", - "properties": { - "title": { - "type": "string" - }, - "summary": { - "type": "string" - }, - "description": { - "type": "string" - }, - "termsOfService": { - "type": "string", - "format": "uri" - }, - "contact": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - }, - "email": { - "type": "string", - "format": "email" - } - } - }, - "license": { - "type": "object", + "allOf": [ + { "properties": { - "name": { - "type": "string" - }, - "identifier": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Quote" + } } }, - "required": [ - "name" - ] - }, - "version": { - "type": "string" - } - }, - "required": [ - "title", - "version" - ] - }, - "jsonSchemaDialect": { - "type": "string" - }, - "webhooks": { - "type": "object" - }, - "servers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "url": { - "type": "string" - } - }, - "required": [ - "url" - ] - } - }, - "components": { - "type": "object", - "properties": { - "schemas": { - "type": "object" - }, - "responses": { "type": "object" }, - "parameters": { - "type": "object" - }, - "examples": { - "type": "object" - }, - "requestBodies": { - "type": "object" - }, - "headers": { - "type": "object" - }, - "securitySchemes": { - "type": "object" - }, - "links": { - "type": "object" - }, - "callbacks": { - "type": "object" - }, - "pathItems": { - "type": "object" - } - } - }, - "security": { - "type": "array", - "items": { - "type": "object" - } - }, - "paths": { - "type": "object" - }, - "tags": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "externalDocs": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "url" - ] - } - }, - "required": [ - "name" - ] - } - }, - "externalDocs": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" + { + "$ref": "#/components/schemas/EntitySearchResult" } - }, - "required": [ - "url" ] } - }, - "type": "object", - "required": [ - "openapi", - "info" - ] + } } } - } - }, - "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", + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/quote/detail/{id}": { + "post": { + "tags": [ + "B2B Quote Management" + ], + "summary": "Fetch a one quote by id", + "description": "This route is used to fetch one quote by id\n\n**Available Associations:**\n- `stateMachineState`\n- `currency`\n- `language`\n- `lineItems`\n- `deliveries`\n- `transactions`\n- `comments`\n- `documents`\n- `organization`", + "operationId": "readQuote", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Identifier of the quote to be fetched", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "Quote entity", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Quote" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/quote/{id}/decline": { + "post": { + "tags": [ + "B2B Quote Management" + ], + "summary": "Decline a quote by id", + "description": "This route is used to decline a quote from the store by id", + "operationId": "declineQuote", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Identifier of the quote to be reinvited", + "required": true, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } } - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redirectUrl": { - "description": "Define the URL which browser will be redirected to", - "type": "string" - } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "properties": { + "comment": { + "description": "Message content", + "type": "string" + } + }, + "type": "object" } } } - } + }, + "responses": { + "204": { + "description": "No content response" + } + }, + "security": [ + { + "ApiKey": [] + } + ] } }, - "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" - } - }, - "criteriaPage": { - "name": "page", - "in": "query", - "description": "Search result page", - "schema": { - "type": "integer" - } - }, - "criteriaLimit": { - "name": "limit", - "in": "query", - "description": "Number of items per result page", - "schema": { - "type": "integer" - } - }, - "criteriaTerm": { - "name": "term", - "in": "query", - "description": "Search term", - "schema": { - "type": "string" - } - }, - "criteriaFilter": { - "name": "filter[]", - "in": "query", - "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)", - "schema": { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] + "/quote/{id}/request-change": { + "post": { + "tags": [ + "B2B Quote Management" + ], + "summary": "Request change a quote by id", + "description": "This route is used to request change a quote from the store by id", + "operationId": "requestChangeQuote", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Identifier of the quote to be reinvited", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } } - } - }, - "criteriaIds": { - "name": "ids[]", - "in": "query", - "description": "List of ids to search for", - "schema": { - "type": "array", - "items": { - "type": "string" + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "properties": { + "comment": { + "description": "Message content", + "type": "string" + } + }, + "type": "object" + } + } } - } - }, - "criteriaQuery": { - "name": "query", - "in": "query", - "description": "The query string to search for", - "schema": { - "type": "string" - } - }, - "criteriaAssociations": { - "name": "associations", - "in": "query", - "description": "", - "schema": { - "$ref": "#/components/schemas/Associations" }, - "style": "deepObject", - "explode": true - }, - "criteriaPostFilter": { - "name": "post-filter[]", - "in": "query", - "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)", - "schema": { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] + "responses": { + "204": { + "description": "No content response" } - } - }, - "criteriaSort": { - "name": "sort[]", - "in": "query", - "description": "Sorting in the search result.", - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Sort" + }, + "security": [ + { + "ApiKey": [] } - } - }, - "criteriaAggregations": { - "name": "aggregations[]", - "in": "query", - "description": "", - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Aggregation" + ] + } + }, + "/quote/{id}/configure": { + "post": { + "tags": [ + "B2B Quote Management" + ], + "summary": "Change payment or shipping method", + "description": "This route is used to change a payment or shipping method when place a order ", + "operationId": "switchPaymentOrShippingMethod", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Identifier of the quote to be reinvited", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } } - } - }, - "criteriaFields": { - "name": "fields[]", - "in": "query", - "description": "Fields which should be returned in the search result.", - "schema": { - "type": "array", - "items": { - "type": "string", - "description": "Name of a field" + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "properties": { + "paymentMethodId": { + "description": "Id of the payment method", + "type": "string" + }, + "shippingMethodId": { + "description": "Id of the shipping method", + "type": "string" + } + }, + "type": "object" + } + } } - } - }, - "criteriaGrouping": { - "name": "grouping[]", - "in": "query", - "description": "Perform groupings over certain fields", - "schema": { - "type": "array", - "items": { - "type": "string", - "description": "Name of a field" + }, + "responses": { + "204": { + "description": "No content response" } - } - }, - "criteriaTotalCountMode": { - "name": "total-count-mode", - "in": "query", - "description": "", - "schema": { - "$ref": "#/components/schemas/TotalCountMode" - } - }, - "criteriaIncludes": { - "name": "includes", - "in": "query", - "description": "", - "schema": { - "$ref": "#/components/schemas/Includes" }, - "style": "deepObject", - "explode": true + "security": [ + { + "ApiKey": [] + } + ] } }, - "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": { - "/permission": { - "get": { + "/quote/order/{id}": { + "post": { "tags": [ - "B2B Employee Management" + "B2B Quote Management" ], - "summary": "Fetch all available permissions", - "description": "This route is used to fetch all available permissions", - "operationId": "readPermissions", + "summary": "Create a order from a quote", + "description": "This route is used to create a order from a quote", + "operationId": "createOrderFromQuote", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Identifier of the quote to be reinvited", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "properties": { + "customerComment": { + "description": "Message content", + "type": "string" + } + }, + "type": "object" + } + } + } + }, "responses": { "200": { - "description": "Permission collection", + "description": "Order entity", "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" - } - } - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "$ref": "#/components/schemas/Order" } } } @@ -19281,83 +22496,132 @@ { "ApiKey": [] } - ] - }, - "post": { - "tags": [ - "B2B Employee Management" + ] + } + }, + "/quote/document/download/{documentId}/{deepLinkCode}": { + "post": { + "tags": [ + "B2B Quote Management" + ], + "summary": "Download a document", + "description": "This route is used to download a document", + "operationId": "downloadQuoteDocument", + "parameters": [ + { + "name": "documentId", + "in": "path", + "description": "Identifier of the quote document to be reinvited", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "deepLinkCode", + "in": "path", + "description": "Deep link code of the quote document", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "responses": { + "200": { + "description": "Document content response" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/quote/{id}/send-message": { + "post": { + "tags": [ + "B2B Quote Management" + ], + "summary": "Send a message to the merchant in the quote", + "description": "This route is used to send a message to the merchant in the quote", + "operationId": "sendMessageInQuote", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Identifier of the quote to send message", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "properties": { + "comment": { + "description": "Message content", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "204": { + "description": "No content response" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/quote/{id}/read-message": { + "post": { + "tags": [ + "B2B Quote Management" + ], + "summary": "Mark messages as read in a quote", + "description": "This route is used to mark all messages as read in the specified quote.", + "operationId": "markMessagesAsReadInQuote", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Identifier of the quote whose messages will be marked as read", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } ], - "summary": "Add a new permission", - "description": "This route is used to add a new permissions", - "operationId": "addPermission", "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { - "properties": { - "name": { - "description": "Name of the new permission", - "type": "string" - }, - "group": { - "description": "Group of the new permission", - "type": "string" - }, - "dependencies": { - "description": "Optional dependencies for the new permission", - "type": "array", - "items": { - "type": "string" - } - } - }, "type": "object" } } } }, - "parameters": [], "responses": { - "200": { - "description": "Permission collection", - "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" - } - } - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } + "204": { + "description": "No content response" } }, "security": [ @@ -19367,139 +22631,116 @@ ] } }, - "/employee/create": { + "/product/natural-language/search-term": { "post": { "tags": [ - "B2B Employee Management" + "Natural language search", + "AI Search" ], - "summary": "Create a single employee and return the employee", - "description": "This route is used to create and return an employee", - "operationId": "createEmployee", - "parameters": [], + "summary": "Fetch search terms by natural language search query", + "description": "Fetch search terms by natural search language query", + "operationId": "naturalLanguageSearchTerm", "requestBody": { "required": true, "content": { "application/json": { "schema": { + "type": "object", "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" - }, - "languageId": { - "description": "Identifier of the [language](#/System%20%26%20Context/readLanguages) to be set for the new employee.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "roleId": { - "description": "Id of the role of the new employee", + "query": { + "description": "Natural language query", "type": "string", - "pattern": "^[0-9a-f]{32}$" + "example": "I'm looking for a present for my wife" } - }, - "required": [ - "firstName", - "lastName", - "email", - "languageId" - ], - "type": "object" + } } } } }, "responses": { "200": { - "description": "Employee entity", + "description": "A collection of search terms, with an associated 'reason' based on search context", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/NaturalLanguageSearchTermResponse" } } } } - }, - "security": [ - { - "ApiKey": [] - } - ] + } } }, - "/employee": { - "get": { + "/product/image-upload-search/search-term": { + "post": { "tags": [ - "B2B Employee Management" + "Search by Image", + "AI Search" ], - "summary": "Fetch a list of employees", - "description": "This route is used to load employees", - "operationId": "readEmployees", - "parameters": [], + "summary": "Fetch product search terms by uploading an image.", + "description": "Fetch product search terms by uploading an image.", + "operationId": "searchByImageSearchTerm", "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "type": "object", + "properties": { + "file": { + "description": "Base-64 encoded image", + "type": "string", + "format": "binary" } - ] + } } } } }, "responses": { "200": { - "description": "Entity search result containing employees", + "description": "A collection of search terms", "content": { "application/json": { "schema": { - "type": "object", - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/B2bEmployee" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "$ref": "#/components/schemas/SearchByImageSearchTermResponse" } } } } - }, - "security": [ - { - "ApiKey": [] - } - ] - }, + } + } + }, + "/approval-rule": { "post": { "tags": [ - "B2B Employee Management" + "B2B Order Approval" + ], + "summary": "List all approval rules", + "description": "This route is used to list all approval rules from the store", + "operationId": "listApprovalRules", + "parameters": [ + { + "name": "p", + "in": "query", + "description": "Page number", + "required": false, + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "limit", + "in": "query", + "description": "Number of items per page", + "required": false, + "schema": { + "type": "integer", + "default": 10 + } + } ], - "summary": "Fetch a list of employees", - "description": "This route is used to load employees", - "operationId": "readEmployeesPOST", - "parameters": [], "requestBody": { "required": false, "content": { @@ -19516,7 +22757,7 @@ }, "responses": { "200": { - "description": "Entity search result containing employees", + "description": "Entity search result containing approval rules", "content": { "application/json": { "schema": { @@ -19527,7 +22768,7 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/ApprovalRule" } } }, @@ -19547,35 +22788,59 @@ "ApiKey": [] } ] - } - }, - "/employee/{id}": { + }, "get": { "tags": [ - "B2B Employee Management" + "B2B Order Approval" ], - "summary": "Fetch one employee by id", - "description": "This route is used to fetch one employee by id", - "operationId": "readB2bEmployee", + "summary": "Fetch a list of approval rules", + "description": "This route is used to load approval rules", + "operationId": "readApprovalRules", "parameters": [ { - "name": "id", - "in": "path", - "description": "Identifier of the employee to be read", - "required": true, + "name": "p", + "in": "query", + "description": "Page number", + "required": false, "schema": { - "type": "string", - "format": "uuid" + "type": "integer", + "default": 1 + } + }, + { + "name": "limit", + "in": "query", + "description": "Number of items per page", + "required": false, + "schema": { + "type": "integer", + "default": 10 } } ], "responses": { "200": { - "description": "Employee entity", + "description": "Entity search result containing approval rules", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bEmployee" + "type": "object", + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ApprovalRule" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } } } @@ -19586,47 +22851,60 @@ "ApiKey": [] } ] - }, - "patch": { + } + }, + "/approval-rule/create": { + "post": { "tags": [ - "B2B Employee Management" - ], - "summary": "Update 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}$" - } - } + "B2B Order Approval" ], + "summary": "Create a new approval rule", + "description": "This route is used to create a new approval rule", + "operationId": "createApprovalRule", + "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "properties": { - "firstName": { - "description": "New first name of the employee", + "approvalRuleName": { + "description": "Name of the approval rule", "type": "string" }, - "lastName": { - "description": "New last name of the employee", + "approvalRuleApprove": { + "description": "ID of the role that can approve the rule", "type": "string" }, - "email": { - "description": "New email of the employee", + "approvalRuleRole": { + "description": "ID of the role that is affected by the rule", "type": "string" }, - "roleId": { - "description": "New id of the role of the employee", + "priority": { + "description": "Priority of the approval rule", + "type": "integer" + }, + "description": { + "description": "Description of the approval rule", "type": "string" + }, + "active": { + "description": "Active status of the approval rule", + "type": "boolean" + }, + "approvalRuleCondition": { + "description": "List of rules", + "type": "object", + "properties": { + "type": { + "description": "Type of the rule", + "type": "string" + }, + "value": { + "description": "Value", + "type": "string" + } + } } }, "type": "object" @@ -19636,11 +22914,11 @@ }, "responses": { "200": { - "description": "Employee entity", + "description": "Approval rule entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bEmployee" + "$ref": "#/components/schemas/ApprovalRule" } } } @@ -19651,19 +22929,21 @@ "ApiKey": [] } ] - }, - "delete": { + } + }, + "/approval-rule/{id}": { + "get": { "tags": [ - "B2B Employee Management" + "B2B Order Approval" ], - "summary": "Delete one employee by id", - "description": "This route is used to delete one employee by id", - "operationId": "deleteEmployee", + "summary": "Fetch one approval rule by id", + "description": "This route is used to fetch a approval rule from the store by id", + "operationId": "readApprovalRule", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the employee to be deleted", + "description": "Identifier of the approval rule to be fetched", "required": true, "schema": { "type": "string", @@ -19672,8 +22952,15 @@ } ], "responses": { - "204": { - "description": "No content response" + "200": { + "description": "Approval rule entity", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ApprovalRule" + } + } + } } }, "security": [ @@ -19681,21 +22968,19 @@ "ApiKey": [] } ] - } - }, - "/employee/reinvite/{id}": { - "post": { + }, + "patch": { "tags": [ - "B2B Employee Management" + "B2B Order Approval" ], - "summary": "Reinvite employee by id", - "description": "This route is used to reinvite an employee via email by id", - "operationId": "reinviteEmployee", + "summary": "Update a approval rule by id", + "description": "This route is used to update a approval rule from the store by id", + "operationId": "updateApprovalRule", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the employee to be reinvited", + "description": "Identifier of the approval rule to be updated", "required": true, "schema": { "type": "string", @@ -19709,64 +22994,43 @@ "application/json": { "schema": { "properties": { - "storefrontUrl": { - "description": "URL of the storefront domain", + "approvalRuleName": { + "description": "Name of the approval rule", "type": "string" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Employee entity", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/B2bEmployee" - } - } - } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/role/create": { - "post": { - "tags": [ - "B2B Employee Management" - ], - "summary": "Create a single role and return 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", + }, + "approvalRuleApprove": { + "description": "ID of the role that can approve the rule", "type": "string" }, - "permissions": { - "description": "Permissions of the new role", - "type": "array", - "items": { - "type": "string" - } + "approvalRuleRole": { + "description": "ID of the role that is affected by the rule", + "type": "string" }, - "isDefaultRole": { - "description": "Ability to set the new role as default", + "priority": { + "description": "Priority of the approval rule", + "type": "integer" + }, + "description": { + "description": "Description of the approval rule", + "type": "string" + }, + "active": { + "description": "Active status of the approval rule", "type": "boolean" + }, + "approvalRuleCondition": { + "description": "List of rules", + "type": "object", + "properties": { + "type": { + "description": "Type of the rule", + "type": "string" + }, + "value": { + "description": "Value", + "type": "string" + } + } } }, "type": "object" @@ -19776,69 +23040,11 @@ }, "responses": { "200": { - "description": "Role entity", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/B2bComponentsRole" - } - } - } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/role": { - "get": { - "tags": [ - "B2B Employee Management" - ], - "summary": "Fetch a list of roles", - "description": "This route is used to load roles", - "operationId": "readRoles", - "parameters": [], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "Entity search result containing roles", + "description": "Approval rule entity", "content": { "application/json": { "schema": { - "type": "object", - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/B2bComponentsRole" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "$ref": "#/components/schemas/ApprovalRule" } } } @@ -19849,52 +23055,40 @@ "ApiKey": [] } ] - }, + } + }, + "/pending-orders/request": { "post": { "tags": [ - "B2B Employee Management" + "B2B Order Approval" ], - "summary": "Fetch a list of roles", - "description": "This route is used to load roles", - "operationId": "readRolesPOST", + "summary": "Request new order approval", + "description": "This route is used to request a new order approval", + "operationId": "requestOrderApproval", "parameters": [], "requestBody": { "required": false, "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "properties": { + "comment": { + "description": "Message content", + "type": "string" } - ] + }, + "type": "object" } } } }, "responses": { "200": { - "description": "Entity search result containing roles", + "description": "Pending order entity", "content": { "application/json": { "schema": { - "type": "object", - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/B2bComponentsRole" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "$ref": "#/components/schemas/PendingOrder" } } } @@ -19907,19 +23101,19 @@ ] } }, - "/role/{id}": { - "get": { + "/pending-order/{id}": { + "post": { "tags": [ - "B2B Employee Management" + "B2B Order Approval" ], - "summary": "Fetch one role by id", - "description": "This route is used to fetch one role by id", - "operationId": "readRole", + "summary": "Fetch one pending order by id", + "description": "This route is used to fetch a pending order from the store by id", + "operationId": "fetchPendingOrder", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the role to be fetched", + "description": "Identifier of the pending order to be fetched", "required": true, "schema": { "type": "string", @@ -19927,13 +23121,23 @@ } } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Criteria" + } + } + } + }, "responses": { "200": { - "description": "Role entity", + "description": "Pending order entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bComponentsRole" + "$ref": "#/components/schemas/PendingOrder" } } } @@ -19944,19 +23148,21 @@ "ApiKey": [] } ] - }, - "patch": { + } + }, + "/pending-order/{id}/payment-method": { + "post": { "tags": [ - "B2B Employee Management" + "B2B Order Approval" ], - "summary": "Update one role by id", - "description": "This route is used to update one role by id", - "operationId": "updateRole", + "summary": "Fetch payment methods of a pending order", + "description": "This route is used to fetch the payment methods of a pending order", + "operationId": "fetchPendingOrderPaymentMethods", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the role to be updated", + "description": "Identifier of the pending order to be fetched", "required": true, "schema": { "type": "string", @@ -19964,40 +23170,29 @@ } } ], - "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" - } - }, - "isDefaultRole": { - "description": "Ability to set the role as default", - "type": "boolean" - } - }, - "type": "object" - } - } - } - }, "responses": { "200": { - "description": "Role entity", + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bComponentsRole" + "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", + "type": "object" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentMethod" + } + } + }, + "type": "object" } } } @@ -20008,19 +23203,21 @@ "ApiKey": [] } ] - }, - "delete": { + } + }, + "/pending-order/{id}/decline": { + "post": { "tags": [ - "B2B Employee Management" + "B2B Order Approval" ], - "summary": "Delete one role by id", - "description": "This route is used to delete one role by id", - "operationId": "deleteRole", + "summary": "Decline a pending order by id", + "description": "This route is used to decline a pending order from the store by id", + "operationId": "declinePendingOrder", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the role to be fetched", + "description": "Identifier of the pending order to be declined", "required": true, "schema": { "type": "string", @@ -20028,34 +23225,14 @@ } } ], - "responses": { - "204": { - "description": "No content response" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/role/default": { - "post": { - "tags": [ - "B2B Employee Management" - ], - "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, + "required": false, "content": { "application/json": { "schema": { "properties": { - "id": { - "description": "Id of the roleId to be set as default", + "comment": { + "description": "Message content", "type": "string" } }, @@ -20076,19 +23253,19 @@ ] } }, - "/sso/auth/{providerId}": { + "/pending-order/{id}/approve": { "post": { "tags": [ - "Sso" + "B2B Order Approval" ], - "summary": "Authenticates via SSO", - "description": "Authenticates login via a given SSO provider ID", - "operationId": "auth", + "summary": "Approve a pending order by id", + "description": "This route is used to approve a pending order from the store by id", + "operationId": "approvePendingOrder", "parameters": [ { - "name": "providerId", + "name": "id", "in": "path", - "description": "Identifier of the SSO provider used to authenticate", + "description": "Identifier of the pending order to be approved", "required": true, "schema": { "type": "string", @@ -20096,55 +23273,25 @@ } } ], - "responses": { - "204": { - "description": "Successfully authenticated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" - } - } - } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/sso/redirect/{providerId}": { - "post": { - "tags": [ - "Sso" - ], - "summary": "Redirects after authentication", - "description": "Redirects after authenticated login via a given SSO provider ID", - "operationId": "redirect", - "parameters": [ - { - "name": "providerId", - "in": "path", - "description": "Identifier of the SSO provider used to authenticate", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "properties": { + "comment": { + "description": "Message content", + "type": "string" + } + }, + "type": "object" + } } } - ], + }, "responses": { "204": { - "description": "Successfully authenticated", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" - } - } - } + "description": "No content response" } }, "security": [ @@ -20154,22 +23301,33 @@ ] } }, - "/quote/request": { + "/pending-order/{id}/checkout/order": { "post": { "tags": [ - "B2B Quote Management" + "B2B Order Approval" + ], + "summary": "Create a order from a pending order", + "description": "This route is used to create a order from a pending order", + "operationId": "createOrderFromPendingOrder", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Identifier of the pending order to be used to create a order", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } ], - "summary": "Request new quote", - "description": "This route is used to request a new quote from the store", - "operationId": "requestQuote", - "parameters": [], "requestBody": { "required": false, "content": { "application/json": { "schema": { "properties": { - "comment": { + "customerComment": { "description": "Message content", "type": "string" } @@ -20181,11 +23339,11 @@ }, "responses": { "200": { - "description": "Quote entity", + "description": "Order entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Quote" + "$ref": "#/components/schemas/Order" } } } @@ -20198,57 +23356,101 @@ ] } }, - "/quotes": { + "/shopping-list": { "post": { "tags": [ - "B2B Quote Management" + "B2B Shopping Lists" ], - "summary": "Fetch a list of quotes", - "description": "This route is used to load quotes", - "operationId": "readQuotes", + "summary": "Create new shopping list", + "description": "This route is used to create a new shopping list from the store", + "operationId": "createShoppingList", "parameters": [], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "properties": { + "name": { + "description": "Shopping list name", + "type": "string" + }, + "lineItems": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "id": { + "description": "Product id", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "quantity": { + "description": "Quantity of the product", + "type": "integer" + } + }, + "required": [ + "id", + "quantity" + ] + } } + }, + "type": "object", + "required": [ + "name" ] } } } }, "responses": { - "200": { - "description": "Entity search result containing quotes", - "content": { - "application/json": { - "schema": { - "type": "object", - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Quote" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" + "204": { + "description": "No content response" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "delete": { + "tags": [ + "B2B Shopping Lists" + ], + "summary": "Delete shopping lists", + "description": "This route is used to delete shopping lists", + "operationId": "removeShoppingLists", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ids" + ], + "properties": { + "ids": { + "description": "Shopping list ids", + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" } - ] + } } } } } }, + "responses": { + "204": { + "description": "No content response" + } + }, "security": [ { "ApiKey": [] @@ -20256,47 +23458,46 @@ ] } }, - "/quote/detail/{id}": { + "/shopping-lists": { "post": { "tags": [ - "B2B Quote Management" - ], - "summary": "Fetch a one quote by id", - "description": "This route is used to fetch one quote by id", - "operationId": "readQuote", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the quote to be fetched", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } + "B2B Shopping Lists" ], + "summary": "Load shopping lists", + "description": "This route is used to load all shopping lists", + "operationId": "readShoppingLists", "requestBody": { "required": false, "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - } - ] + "$ref": "#/components/schemas/Criteria" } } } }, "responses": { "200": { - "description": "Quote entity", + "description": "Entity search result containing shopping lists", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Quote" + "allOf": [ + { + "type": "object", + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bComponentsShoppingList" + } + } + } + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } } } @@ -20309,67 +23510,29 @@ ] } }, - "/quote/{id}/decline": { + "/shopping-list/{id}": { "post": { "tags": [ - "B2B Quote Management" - ], - "summary": "Decline a quote by id", - "description": "This route is used to decline a quote from the store by id", - "operationId": "declineQuote", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the quote to be reinvited", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } + "B2B Shopping Lists" ], + "summary": "Load one shopping list", + "description": "This route is used to load one shopping list\n\n**Available Associations:**\n- `customer`\n- `employee`\n- `lineItems`\n- `organization`", + "operationId": "readShoppingList", "requestBody": { "required": false, "content": { "application/json": { "schema": { - "properties": { - "comment": { - "description": "Message content", - "type": "string" - } - }, - "type": "object" + "$ref": "#/components/schemas/Criteria" } } } }, - "responses": { - "204": { - "description": "No content response" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/quote/{id}/request-change": { - "post": { - "tags": [ - "B2B Quote Management" - ], - "summary": "Request change a quote by id", - "description": "This route is used to request change a quote from the store by id", - "operationId": "requestChangeQuote", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the quote to be reinvited", + "description": "Identifier of the shopping list to be fetched", "required": true, "schema": { "type": "string", @@ -20377,27 +23540,18 @@ } } ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "properties": { - "comment": { - "description": "Message content", - "type": "string" - } - }, - "type": "object" + "responses": { + "200": { + "description": "Shopping list entity", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/B2bComponentsShoppingList" + } } } } }, - "responses": { - "204": { - "description": "No content response" - } - }, "security": [ { "ApiKey": [] @@ -20405,19 +23559,19 @@ ] } }, - "/quote/{id}/configure": { - "post": { + "/shopping-list/{id}/change-name": { + "patch": { "tags": [ - "B2B Quote Management" + "B2B Shopping Lists" ], - "summary": "Change payment or shipping method", - "description": "This route is used to change a payment or shipping method when place a order ", - "operationId": "switchPaymentOrShippingMethod", + "summary": "Update shopping list name", + "description": "This route is used to update shopping list name", + "operationId": "updateShoppingList", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the quote to be reinvited", + "description": "Identifier of the shopping list to be fetched", "required": true, "schema": { "type": "string", @@ -20430,17 +23584,16 @@ "content": { "application/json": { "schema": { + "type": "object", "properties": { - "paymentMethodId": { - "description": "Id of the payment method", - "type": "string" - }, - "shippingMethodId": { - "description": "Id of the shipping method", + "name": { + "description": "Shopping list name", "type": "string" } }, - "type": "object" + "required": [ + "name" + ] } } } @@ -20457,19 +23610,19 @@ ] } }, - "/quote/order/{id}": { + "/shopping-list/{id}/duplicate": { "post": { "tags": [ - "B2B Quote Management" + "B2B Shopping Lists" ], - "summary": "Create a order from a quote", - "description": "This route is used to create a order from a quote", - "operationId": "createOrderFromQuote", + "summary": "Duplicate new shopping list", + "description": "This route is used to duplicate a new shopping list from the store", + "operationId": "duplicateShoppingList", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the quote to be reinvited", + "description": "Identifier of the shopping list to be fetched", "required": true, "schema": { "type": "string", @@ -20478,28 +23631,37 @@ } ], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { "properties": { - "customerComment": { - "description": "Message content", + "name": { + "description": "Shopping list name", "type": "string" } }, - "type": "object" + "type": "object", + "required": [ + "name" + ] } } } }, "responses": { "200": { - "description": "Order entity", + "description": "The generated id of the duplicated shopping list", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Order" + "properties": { + "id": { + "description": "The generated id of the duplicated shopping list", + "type": "string" + } + }, + "type": "object" } } } @@ -20512,29 +23674,19 @@ ] } }, - "/quote/document/download/{documentId}/{deepLinkCode}": { - "post": { + "/shopping-list/{id}/summary": { + "get": { "tags": [ - "B2B Quote Management" + "B2B Shopping Lists" ], - "summary": "Download a document", - "description": "This route is used to download a document", - "operationId": "downloadQuoteDocument", + "summary": "Price summary for shopping list", + "description": "This route is used to get a price summary for shopping list", + "operationId": "summaryShoppingList", "parameters": [ { - "name": "documentId", - "in": "path", - "description": "Identifier of the quote document to be reinvited", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "deepLinkCode", + "name": "id", "in": "path", - "description": "Deep link code of the quote document", + "description": "Identifier of the shopping list to be fetched", "required": true, "schema": { "type": "string", @@ -20544,7 +23696,40 @@ ], "responses": { "200": { - "description": "Document content response" + "description": "Shopping list summary", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "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" + } + } + } + } + } + } + } } }, "security": [ @@ -20554,19 +23739,19 @@ ] } }, - "/quote/{id}/send-message": { + "/shopping-list/{id}/add": { "post": { "tags": [ - "B2B Quote Management" + "B2B Shopping Lists" ], - "summary": "Send a message to the merchant in the quote", - "description": "This route is used to send a message to the merchant in the quote", - "operationId": "sendMessageInQuote", + "summary": "Add more product to shopping list", + "description": "This route is used to add more products to shopping list", + "operationId": "addLineItems", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the quote to be reinvited", + "description": "Identifier of the shopping list to be fetched", "required": true, "schema": { "type": "string", @@ -20579,13 +23764,33 @@ "content": { "application/json": { "schema": { + "type": "object", "properties": { - "comment": { - "description": "Message content", - "type": "string" + "lineItems": { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "id": { + "description": "Product id", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "quantity": { + "description": "Quantity of the product", + "type": "integer" + } + }, + "required": [ + "id", + "quantity" + ] + } } }, - "type": "object" + "required": [ + "lineItems" + ] } } } @@ -20602,15 +23807,15 @@ ] } }, - "/product/natural-language/search-term": { + "/shopping-list/line-item/remove": { "post": { "tags": [ - "Natural language search", - "AI Search" + "B2B Shopping Lists" ], - "summary": "Fetch search terms by natural language search query", - "description": "Fetch search terms by natural search language query", - "operationId": "naturalLanguageSearchTerm", + "summary": "Delete shopping list line items", + "description": "This route is used to delete shopping list line items", + "operationId": "removeLineItems", + "parameters": [], "requestBody": { "required": true, "content": { @@ -20618,10 +23823,26 @@ "schema": { "type": "object", "properties": { - "query": { - "description": "Natural language query", + "ids": { + "description": "Line items ids", + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "productIds": { + "description": "Product ids", + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "listId": { + "description": "List id", "type": "string", - "example": "I'm looking for a present for my wife" + "pattern": "^[0-9a-f]{32}$" } } } @@ -20629,39 +23850,94 @@ } }, "responses": { - "200": { - "description": "A collection of search terms, with an associated 'reason' based on search context", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NaturalLanguageSearchTermResponse" - } - } - } + "204": { + "description": "No content response" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/shopping-list/line-item/{id}/change-quantity": { + "post": { + "tags": [ + "B2B Shopping Lists" + ], + "summary": "Update shopping list line item quantity", + "description": "This route is used to update shopping list line item quantity", + "operationId": "updateLineItems", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Identifier of the shopping list line item to be fetched", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "quantity": { + "description": "new line item quantity", + "type": "integer" + } + }, + "required": [ + "quantity" + ] + } + } + } + }, + "responses": { + "204": { + "description": "No content response" } - } + }, + "security": [ + { + "ApiKey": [] + } + ] } }, - "/product/image-upload-search/search-term": { + "/shopping-lists/add-to-cart": { "post": { "tags": [ - "Search by Image", - "AI Search" + "B2B Shopping Lists" ], - "summary": "Fetch product search terms by uploading an image.", - "description": "Fetch product search terms by uploading an image.", - "operationId": "searchByImageSearchTerm", + "summary": "Add shopping lists to cart", + "description": "This route is used to add shopping lists to cart", + "operationId": "addShoppingListsToCart", + "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", + "required": [ + "ids" + ], "properties": { - "file": { - "description": "Base-64 encoded image", - "type": "string", - "format": "binary" + "ids": { + "description": "Shopping list ids", + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } } } } @@ -20669,89 +23945,106 @@ } }, "responses": { - "200": { - "description": "A collection of search terms", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SearchByImageSearchTermResponse" - } - } - } + "204": { + "description": "No content response" } - } + }, + "security": [ + { + "ApiKey": [] + } + ] } }, - "/approval-rule": { + "/organization-unit": { "post": { "tags": [ - "B2B Order Approval" - ], - "summary": "List all approval rules", - "description": "This route is used to list all approval rules from the store", - "operationId": "listApprovalRules", - "parameters": [ - { - "name": "p", - "in": "query", - "description": "Page number", - "required": false, - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "limit", - "in": "query", - "description": "Number of items per page", - "required": false, - "schema": { - "type": "integer", - "default": 10 - } - } + "B2B Organization Unit" ], + "summary": "Create new organization unit", + "description": "This route is used to create a new organization", + "operationId": "createOrganizationUnit", + "parameters": [], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "properties": { + "name": { + "description": "Organization unit name", + "type": "string" + }, + "shippingAddressIds": { + "description": "Identifier (UUID) of the addresses for shipping.", + "type": "array", + "items": { + "type": "string", + "description": "The Identifier (UUID) of the customer address", + "pattern": "^[0-9a-f]{32}$" + } + }, + "billingAddressIds": { + "description": "Identifier (UUID) of the addresses for billing.", + "type": "array", + "items": { + "type": "string", + "description": "The Identifier (UUID) of the customer address", + "pattern": "^[0-9a-f]{32}$" + } + }, + "paymentMethodIds": { + "description": "Identifier (UUID) of the payment methods.", + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "shippingMethodIds": { + "description": "Identifier (UUID) of the shipping methods.", + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "employeeIds": { + "description": "Identifier (UUID) of employees.", + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "defaultShippingAddressId": { + "description": "Identifier (UUID) of the default shipping address", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "defaultBillingAddressId": { + "description": "Identifier (UUID) of the default billing address", + "type": "string", + "pattern": "^[0-9a-f]{32}$" } + }, + "type": "object", + "required": [ + "name", + "shippingAddressIds", + "billingAddressIds", + "paymentMethodIds", + "shippingMethodIds", + "defaultShippingAddressId", + "defaultBillingAddressId" ] } } } }, "responses": { - "200": { - "description": "Entity search result containing approval rules", - "content": { - "application/json": { - "schema": { - "type": "object", - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ApprovalRule" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } + "201": { + "description": "Created organization unit" } }, "security": [ @@ -20760,63 +24053,41 @@ } ] }, - "get": { + "delete": { "tags": [ - "B2B Order Approval" - ], - "summary": "Fetch a list of approval rules", - "description": "This route is used to load approval rules", - "operationId": "readApprovalRules", - "parameters": [ - { - "name": "p", - "in": "query", - "description": "Page number", - "required": false, - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "limit", - "in": "query", - "description": "Number of items per page", - "required": false, - "schema": { - "type": "integer", - "default": 10 - } - } + "B2B Organization Units" ], - "responses": { - "200": { - "description": "Entity search result containing approval rules", - "content": { - "application/json": { - "schema": { - "type": "object", - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ApprovalRule" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" + "summary": "Delete organization units", + "description": "This route is used to delete organization units", + "operationId": "removeOrganizationUnits", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "ids" + ], + "properties": { + "ids": { + "description": "Organization Unit ids", + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" } - ] + } } } } } }, + "responses": { + "204": { + "description": "No content response" + } + }, "security": [ { "ApiKey": [] @@ -20824,72 +24095,46 @@ ] } }, - "/approval-rule/create": { + "/organization-units": { "post": { "tags": [ - "B2B Order Approval" + "B2B Organization Units" ], - "summary": "Create a new approval rule", - "description": "This route is used to create a new approval rule", - "operationId": "createApprovalRule", - "parameters": [], + "summary": "Load Organization Units", + "description": "This route is used to load all Organization Units", + "operationId": "readOrganizationUnits", "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { - "properties": { - "approvalRuleName": { - "description": "Name of the approval rule", - "type": "string" - }, - "approvalRuleApprove": { - "description": "ID of the role that can approve the rule", - "type": "string" - }, - "approvalRuleRole": { - "description": "ID of the role that is affected by the rule", - "type": "string" - }, - "priority": { - "description": "Priority of the approval rule", - "type": "integer" - }, - "description": { - "description": "Description of the approval rule", - "type": "string" - }, - "active": { - "description": "Active status of the approval rule", - "type": "boolean" - }, - "approvalRuleCondition": { - "description": "List of rules", - "type": "object", - "properties": { - "type": { - "description": "Type of the rule", - "type": "string" - }, - "value": { - "description": "Value", - "type": "string" - } - } - } - }, - "type": "object" + "$ref": "#/components/schemas/Criteria" } } } }, "responses": { "200": { - "description": "Approval rule entity", + "description": "Entity search result containing Organization Units", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApprovalRule" + "allOf": [ + { + "type": "object", + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bComponentsOrganization" + } + } + } + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } } } @@ -20902,19 +24147,19 @@ ] } }, - "/approval-rule/{id}": { - "get": { + "/organization-unit/{id}": { + "post": { "tags": [ - "B2B Order Approval" + "B2B Organization Units" ], - "summary": "Fetch one approval rule by id", - "description": "This route is used to fetch a approval rule from the store by id", - "operationId": "readApprovalRule", + "summary": "Load one Organization Unit", + "description": "This route is used to load one Organization Unit\n\n**Available Associations:**\n- `customer`\n- `employees`\n- `organizationCustomerAddresses`\n- `paymentMethods`\n- `shippingMethods`\n- `defaultShippingAddress`\n- `defaultBillingAddress`\n- `createdBy`\n- `updatedBy`", + "operationId": "readOrganizationUnit", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the approval rule to be fetched", + "description": "Identifier of the Organization Unit to be fetched", "required": true, "schema": { "type": "string", @@ -20924,11 +24169,11 @@ ], "responses": { "200": { - "description": "Approval rule entity", + "description": "Organization Unit entity", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ApprovalRule" + "$ref": "#/components/schemas/B2bComponentsOrganization" } } } @@ -20942,16 +24187,16 @@ }, "patch": { "tags": [ - "B2B Order Approval" + "B2B Organization Units" ], - "summary": "Update a approval rule by id", - "description": "This route is used to update a approval rule from the store by id", - "operationId": "updateApprovalRule", + "summary": "Update Organization Unit", + "description": "This route is used to update Organization Unit", + "operationId": "updateOrganizationUnit", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the approval rule to be updated", + "description": "Identifier of the Organization Unit to be fetched", "required": true, "schema": { "type": "string", @@ -20965,43 +24210,61 @@ "application/json": { "schema": { "properties": { - "approvalRuleName": { - "description": "Name of the approval rule", - "type": "string" - }, - "approvalRuleApprove": { - "description": "ID of the role that can approve the rule", + "name": { + "description": "Organization unit name", "type": "string" }, - "approvalRuleRole": { - "description": "ID of the role that is affected by the rule", - "type": "string" + "shippingAddressIds": { + "description": "Identifier (UUID) of the addresses for shipping.", + "type": "array", + "items": { + "type": "string", + "description": "The Identifier (UUID) of the customer address", + "pattern": "^[0-9a-f]{32}$" + } }, - "priority": { - "description": "Priority of the approval rule", - "type": "integer" + "billingAddressIds": { + "description": "Identifier (UUID) of the addresses for billing.", + "type": "array", + "items": { + "type": "string", + "description": "The Identifier (UUID) of the customer address", + "pattern": "^[0-9a-f]{32}$" + } }, - "description": { - "description": "Description of the approval rule", - "type": "string" + "paymentMethodIds": { + "description": "Identifier (UUID) of the payment methods.", + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } }, - "active": { - "description": "Active status of the approval rule", - "type": "boolean" + "shippingMethodIds": { + "description": "Identifier (UUID) of the shipping methods.", + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } }, - "approvalRuleCondition": { - "description": "List of rules", - "type": "object", - "properties": { - "type": { - "description": "Type of the rule", - "type": "string" - }, - "value": { - "description": "Value", - "type": "string" - } + "employeeIds": { + "description": "Identifier (UUID) of employees.", + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" } + }, + "defaultShippingAddressId": { + "description": "Identifier (UUID) of the default shipping address", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "defaultBillingAddressId": { + "description": "Identifier (UUID) of the default billing address", + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, "type": "object" @@ -21010,59 +24273,8 @@ } }, "responses": { - "200": { - "description": "Approval rule entity", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ApprovalRule" - } - } - } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/pending-orders/request": { - "post": { - "tags": [ - "B2B Order Approval" - ], - "summary": "Request new order approval", - "description": "This route is used to request a new order approval", - "operationId": "requestOrderApproval", - "parameters": [], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "properties": { - "comment": { - "description": "Message content", - "type": "string" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Pending order entity", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PendingOrder" - } - } - } + "201": { + "description": "Updated organization unit" } }, "security": [ @@ -21072,20 +24284,21 @@ ] } }, - "/pending-order/{id}": { - "post": { + "/advanced-product-catalogs/categories": { + "get": { "tags": [ - "B2B Order Approval" + "Advanced Product Catalogs", + "Categories" ], - "summary": "Fetch one pending order by id", - "description": "This route is used to fetch a pending order from the store by id", - "operationId": "fetchPendingOrder", + "summary": "List advanced product catalog categories", + "description": "Retrieve a list of categories for advanced product catalogs with hierarchical sorting", + "operationId": "listAdvancedProductCatalogCategories", "parameters": [ { - "name": "id", - "in": "path", - "description": "Identifier of the pending order to be fetched", - "required": true, + "name": "sw-language-id", + "in": "header", + "description": "Language ID for localized content", + "required": false, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" @@ -21104,11 +24317,11 @@ }, "responses": { "200": { - "description": "Pending order entity", + "description": "List of categories for advanced product catalogs", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/PendingOrder" + "$ref": "#/components/schemas/ListCategoryRouteResponse" } } } @@ -21119,51 +24332,44 @@ "ApiKey": [] } ] - } - }, - "/pending-order/{id}/payment-method": { + }, "post": { "tags": [ - "B2B Order Approval" + "Advanced Product Catalogs", + "Categories" ], - "summary": "Fetch payment methods of a pending order", - "description": "This route is used to fetch the payment methods of a pending order", - "operationId": "fetchPendingOrderPaymentMethods", + "summary": "List advanced product catalog categories (POST)", + "description": "Retrieve a list of categories for advanced product catalogs with hierarchical sorting using POST method", + "operationId": "listAdvancedProductCatalogCategoriesPost", "parameters": [ { - "name": "id", - "in": "path", - "description": "Identifier of the pending order to be fetched", - "required": true, + "name": "sw-language-id", + "in": "header", + "description": "Language ID for localized content", + "required": false, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Criteria" + } + } + } + }, "responses": { "200": { - "description": "", + "description": "List of categories for advanced product catalogs", "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/ListCategoryRouteResponse" } } } @@ -21176,20 +24382,21 @@ ] } }, - "/pending-order/{id}/decline": { - "post": { + "/advanced-product-catalogs/categories/search": { + "get": { "tags": [ - "B2B Order Approval" + "Advanced Product Catalogs", + "Categories" ], - "summary": "Decline a pending order by id", - "description": "This route is used to decline a pending order from the store by id", - "operationId": "declinePendingOrder", + "summary": "Search advanced product catalog categories", + "description": "Search for categories in advanced product catalogs using criteria", + "operationId": "searchAdvancedProductCatalogCategories", "parameters": [ { - "name": "id", - "in": "path", - "description": "Identifier of the pending order to be declined", - "required": true, + "name": "sw-language-id", + "in": "header", + "description": "Language ID for localized content", + "required": false, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" @@ -21201,20 +24408,21 @@ "content": { "application/json": { "schema": { - "properties": { - "comment": { - "description": "Message content", - "type": "string" - } - }, - "type": "object" + "$ref": "#/components/schemas/Criteria" } } } }, "responses": { - "204": { - "description": "No content response" + "200": { + "description": "Search results for advanced product catalog categories", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListCategoryRouteResponse" + } + } + } } }, "security": [ @@ -21224,20 +24432,21 @@ ] } }, - "/pending-order/{id}/approve": { + "/advanced-product-catalogs/save": { "post": { "tags": [ - "B2B Order Approval" + "Advanced Product Catalogs", + "Management" ], - "summary": "Approve a pending order by id", - "description": "This route is used to approve a pending order from the store by id", - "operationId": "approvePendingOrder", + "summary": "Create or update advanced product catalog", + "description": "Create a new advanced product catalog or update an existing one", + "operationId": "saveAdvancedProductCatalog", "parameters": [ { - "name": "id", - "in": "path", - "description": "Identifier of the pending order to be approved", - "required": true, + "name": "sw-language-id", + "in": "header", + "description": "Language ID for localized content", + "required": false, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" @@ -21245,24 +24454,62 @@ } ], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { + "type": "object", + "required": [ + "organizationId" + ], "properties": { - "comment": { - "description": "Message content", - "type": "string" + "organizationId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The ID of the organization" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The ID of the advanced product catalog (optional, will be generated if not provided)" + }, + "autoAddNewCategories": { + "type": "boolean", + "description": "Whether to automatically add new categories to the catalog" + }, + "selectedCategories": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "description": "Array of category IDs to associate with the catalog" } - }, - "type": "object" + } } } } }, "responses": { - "204": { - "description": "No content response" + "200": { + "description": "Advanced product catalog saved successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The ID of the created/updated advanced product catalog" + } + }, + "required": [ + "id" + ] + } + } + } } }, "security": [ @@ -21270,22 +24517,21 @@ "ApiKey": [] } ] - } - }, - "/pending-order/{id}/checkout/order": { - "post": { + }, + "patch": { "tags": [ - "B2B Order Approval" + "Advanced Product Catalogs", + "Management" ], - "summary": "Create a order from a pending order", - "description": "This route is used to create a order from a pending order", - "operationId": "createOrderFromPendingOrder", + "summary": "Update advanced product catalog", + "description": "Update an existing advanced product catalog", + "operationId": "updateAdvancedProductCatalog", "parameters": [ { - "name": "id", - "in": "path", - "description": "Identifier of the pending order to be used to create a order", - "required": true, + "name": "sw-language-id", + "in": "header", + "description": "Language ID for localized content", + "required": false, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" @@ -21293,28 +24539,59 @@ } ], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { + "type": "object", + "required": [ + "organizationId" + ], "properties": { - "customerComment": { - "description": "Message content", - "type": "string" + "organizationId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The ID of the organization" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The ID of the advanced product catalog (optional, will be generated if not provided)" + }, + "autoAddNewCategories": { + "type": "boolean", + "description": "Whether to automatically add new categories to the catalog" + }, + "selectedCategories": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "description": "Array of category IDs to associate with the catalog" } - }, - "type": "object" + } } } } }, "responses": { "200": { - "description": "Order entity", + "description": "Advanced product catalog saved successfully", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Order" + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The ID of the created/updated advanced product catalog" + } + }, + "required": [ + "id" + ] } } } @@ -21327,73 +24604,27 @@ ] } }, - "/shopping-list": { - "post": { + "/advanced-product-catalogs/categories/remove": { + "delete": { "tags": [ - "B2B Shopping Lists" + "Advanced Product Catalogs", + "Categories" ], - "summary": "Create new shopping list", - "description": "This route is used to create a new shopping list from the store", - "operationId": "createShoppingList", - "parameters": [], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "properties": { - "name": { - "description": "Shopping list name", - "type": "string" - }, - "lineItems": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "id": { - "description": "Product id", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "quantity": { - "description": "Quantity of the product", - "type": "integer" - } - }, - "required": [ - "id", - "quantity" - ] - } - } - }, - "type": "object", - "required": [ - "name" - ] - } - } - } - }, - "responses": { - "204": { - "description": "No content response" - } - }, - "security": [ + "summary": "Remove categories from advanced product catalog", + "description": "Remove specific categories from an advanced product catalog", + "operationId": "removeAdvancedProductCatalogCategories", + "parameters": [ { - "ApiKey": [] + "name": "sw-language-id", + "in": "header", + "description": "Language ID for localized content", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } } - ] - }, - "delete": { - "tags": [ - "B2B Shopping Lists" ], - "summary": "Delete shopping lists", - "description": "This route is used to delete shopping lists", - "operationId": "removeShoppingLists", "requestBody": { "required": true, "content": { @@ -21401,27 +24632,40 @@ "schema": { "type": "object", "required": [ - "ids" + "id", + "removedCategories" ], "properties": { - "ids": { - "description": "Shopping list ids", + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The ID of the advanced product catalog" + }, + "removedCategories": { "type": "array", "items": { "type": "string", "pattern": "^[0-9a-f]{32}$" - } + }, + "description": "Array of category IDs to remove from the catalog" } } } } } }, - "responses": { - "204": { - "description": "No content response" - } - }, + "responses": { + "200": { + "description": "Categories removed successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SuccessResponse" + } + } + } + } + }, "security": [ { "ApiKey": [] @@ -21429,14 +24673,14 @@ ] } }, - "/shopping-lists": { + "/budgets": { "post": { "tags": [ - "B2B Shopping Lists" + "B2B Budget Management" ], - "summary": "Load shopping lists", - "description": "This route is used to load all shopping lists", - "operationId": "readShoppingLists", + "summary": "Load budgets", + "description": "This route is used to load all budgets for the current customer", + "operationId": "readBudgets", "requestBody": { "required": false, "content": { @@ -21449,7 +24693,7 @@ }, "responses": { "200": { - "description": "Entity search result containing shopping lists", + "description": "Entity search result containing budgets", "content": { "application/json": { "schema": { @@ -21460,7 +24704,7 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/B2bComponentsShoppingList" + "$ref": "#/components/schemas/B2bComponentsBudget" } } } @@ -21479,45 +24723,58 @@ "ApiKey": [] } ] - } - }, - "/shopping-list/{id}": { - "post": { + }, + "get": { "tags": [ - "B2B Shopping Lists" + "B2B Budget Management" ], - "summary": "Load one shopping list", - "description": "This route is used to load one shopping list", - "operationId": "readShoppingList", - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Criteria" - } - } - } - }, + "summary": "Load budgets", + "description": "This route is used to load all budgets for the current customer", + "operationId": "readBudgetsGet", "parameters": [ { - "name": "id", - "in": "path", - "description": "Identifier of the shopping list to be fetched", - "required": true, + "name": "limit", + "in": "query", + "description": "Number of items to return", + "required": false, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "integer", + "minimum": 1 + } + }, + { + "name": "page", + "in": "query", + "description": "Page number", + "required": false, + "schema": { + "type": "integer", + "minimum": 1 } } ], "responses": { "200": { - "description": "Shopping list entity", + "description": "Entity search result containing budgets", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bComponentsShoppingList" + "allOf": [ + { + "type": "object", + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bComponentsBudget" + } + } + } + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } } } @@ -21530,70 +24787,29 @@ ] } }, - "/shopping-list/{id}/change-name": { - "patch": { + "/budget/{id}": { + "post": { "tags": [ - "B2B Shopping Lists" - ], - "summary": "Update shopping list name", - "description": "This route is used to update shopping list name", - "operationId": "updateShoppingList", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the shopping list to be fetched", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } + "B2B Budget Management" ], + "summary": "Load single budget", + "description": "This route is used to load one budget by ID\n\n**Available Associations:**\n- `organizations`\n- `notificationRecipients`\n- `reviewerRole`\n- `currency`", + "operationId": "readBudget", "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "name": { - "description": "Shopping list name", - "type": "string" - } - }, - "required": [ - "name" - ] + "$ref": "#/components/schemas/Criteria" } } } }, - "responses": { - "204": { - "description": "No content response" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/shopping-list/{id}/duplicate": { - "post": { - "tags": [ - "B2B Shopping Lists" - ], - "summary": "Duplicate new shopping list", - "description": "This route is used to duplicate a new shopping list from the store", - "operationId": "duplicateShoppingList", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the shopping list to be fetched", + "description": "Identifier of the budget to be fetched", "required": true, "schema": { "type": "string", @@ -21601,41 +24817,19 @@ } } ], - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "properties": { - "name": { - "description": "Shopping list name", - "type": "string" - } - }, - "type": "object", - "required": [ - "name" - ] - } - } - } - }, "responses": { "200": { - "description": "The generated id of the duplicated shopping list", + "description": "Budget entity", "content": { "application/json": { "schema": { - "properties": { - "id": { - "description": "The generated id of the duplicated shopping list", - "type": "string" - } - }, - "type": "object" + "$ref": "#/components/schemas/B2bComponentsBudget" } } } + }, + "404": { + "description": "Budget not found" } }, "security": [ @@ -21643,21 +24837,19 @@ "ApiKey": [] } ] - } - }, - "/shopping-list/{id}/summary": { + }, "get": { "tags": [ - "B2B Shopping Lists" + "B2B Budget Management" ], - "summary": "Price summary for shopping list", - "description": "This route is used to get a price summary for shopping list", - "operationId": "summaryShoppingList", + "summary": "Load single budget", + "description": "This route is used to load one budget by ID\n\n**Available Associations:**\n- `organizations`\n- `notificationRecipients`\n- `reviewerRole`\n- `currency`", + "operationId": "readBudgetGet", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the shopping list to be fetched", + "description": "Identifier of the budget to be fetched", "required": true, "schema": { "type": "string", @@ -21667,40 +24859,17 @@ ], "responses": { "200": { - "description": "Shopping list summary", + "description": "Budget entity", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "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" - } - } - } - } + "$ref": "#/components/schemas/B2bComponentsBudget" } } } + }, + "404": { + "description": "Budget not found" } }, "security": [ @@ -21708,85 +24877,26 @@ "ApiKey": [] } ] - } - }, - "/shopping-list/{id}/add": { - "post": { + }, + "patch": { "tags": [ - "B2B Shopping Lists" + "B2B Budget Management" ], - "summary": "Add more product to shopping list", - "description": "This route is used to add more products to shopping list", - "operationId": "addLineItems", + "summary": "Update budget", + "description": "This route is used to update an existing budget", + "operationId": "updateBudget", "parameters": [ { "name": "id", "in": "path", - "description": "Identifier of the shopping list to be fetched", + "description": "Identifier of the budget to be updated", "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "lineItems": { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "id": { - "description": "Product id", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "quantity": { - "description": "Quantity of the product", - "type": "integer" - } - }, - "required": [ - "id", - "quantity" - ] - } - } - }, - "required": [ - "lineItems" - ] - } - } - } - }, - "responses": { - "204": { - "description": "No content response" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/shopping-list/line-item/remove": { - "post": { - "tags": [ - "B2B Shopping Lists" + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } ], - "summary": "Delete shopping list line items", - "description": "This route is used to delete shopping list line items", - "operationId": "removeLineItems", - "parameters": [], "requestBody": { "required": true, "content": { @@ -21794,26 +24904,104 @@ "schema": { "type": "object", "properties": { - "ids": { - "description": "Line items ids", + "name": { + "description": "Budget name", + "type": "string" + }, + "technicalName": { + "description": "Technical name (unique identifier)", + "type": "string" + }, + "costCentre": { + "description": "Cost centre", + "type": "string" + }, + "amount": { + "description": "Budget amount", + "type": "number", + "format": "float" + }, + "active": { + "description": "Whether the budget is active", + "type": "boolean" + }, + "startDate": { + "description": "Budget start date", + "type": "string", + "format": "date" + }, + "endDate": { + "description": "Budget end date", + "type": "string", + "format": "date" + }, + "renewsType": { + "description": "Budget renewal type", + "type": "string", + "enum": [ + "None", + "Weekly", + "Monthly", + "Quarterly", + "Biannual", + "Yearly" + ] + }, + "reviewerRoleId": { + "description": "Reviewer role ID", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "allowApproval": { + "description": "Whether budget allows approval", + "type": "boolean" + }, + "showRemaining": { + "description": "Whether to show remaining budget", + "type": "boolean" + }, + "notify": { + "description": "Whether to send notifications", + "type": "boolean" + }, + "organizationUnitIds": { + "description": "Organization unit IDs", "type": "array", "items": { "type": "string", "pattern": "^[0-9a-f]{32}$" } }, - "productIds": { - "description": "Product ids", + "employeeIds": { + "description": "Employee IDs for notifications", "type": "array", "items": { "type": "string", "pattern": "^[0-9a-f]{32}$" } }, - "listId": { - "description": "List id", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "notificationConfig": { + "description": "Notification configuration", + "type": "object", + "properties": { + "type": { + "description": "Notification type", + "type": "string", + "enum": [ + "Percentage", + "SpecificDay", + "BeforeDay" + ] + }, + "value": { + "description": "Notification value", + "type": "string" + } + }, + "required": [ + "type", + "value" + ] } } } @@ -21821,8 +25009,25 @@ } }, "responses": { - "204": { - "description": "No content response" + "200": { + "description": "Budget updated successfully", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + } + } + }, + "400": { + "description": "Validation error or budget persistence failed" + }, + "404": { + "description": "Budget not found" } }, "security": [ @@ -21832,26 +25037,14 @@ ] } }, - "/shopping-list/line-item/{id}/change-quantity": { + "/budget": { "post": { "tags": [ - "B2B Shopping Lists" - ], - "summary": "Update shopping list line item quantity", - "description": "This route is used to update shopping list line item quantity", - "operationId": "updateLineItems", - "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the shopping list line item to be fetched", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } + "B2B Budget Management" ], + "summary": "Create new budget", + "description": "This route is used to create a new budget", + "operationId": "createBudget", "requestBody": { "required": true, "content": { @@ -21859,21 +25052,131 @@ "schema": { "type": "object", "properties": { - "quantity": { - "description": "new line item quantity", - "type": "integer" + "name": { + "description": "Budget name", + "type": "string" + }, + "technicalName": { + "description": "Technical name (unique identifier)", + "type": "string" + }, + "costCentre": { + "description": "Cost centre", + "type": "string" + }, + "amount": { + "description": "Budget amount", + "type": "number", + "format": "float" + }, + "active": { + "description": "Whether the budget is active", + "type": "boolean" + }, + "startDate": { + "description": "Budget start date", + "type": "string", + "format": "date" + }, + "endDate": { + "description": "Budget end date", + "type": "string", + "format": "date" + }, + "renewsType": { + "description": "Budget renewal type", + "type": "string", + "enum": [ + "None", + "Weekly", + "Monthly", + "Quarterly", + "Biannual", + "Yearly" + ] + }, + "reviewerRoleId": { + "description": "Reviewer role ID", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "allowApproval": { + "description": "Whether budget allows approval", + "type": "boolean" + }, + "showRemaining": { + "description": "Whether to show remaining budget", + "type": "boolean" + }, + "notify": { + "description": "Whether to send notifications", + "type": "boolean" + }, + "organizationUnitIds": { + "description": "Organization unit IDs", + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "notificationConfig": { + "description": "Notification configuration", + "type": "object", + "properties": { + "type": { + "description": "Notification type", + "type": "string", + "enum": [ + "Percentage", + "SpecificDay", + "BeforeDay" + ] + }, + "value": { + "description": "Notification value", + "type": "string" + } + }, + "required": [ + "type", + "value" + ] } }, "required": [ - "quantity" + "name", + "technicalName", + "amount", + "startDate", + "renewsType" ] } } } }, "responses": { - "204": { - "description": "No content response" + "201": { + "description": "Budget created successfully", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "b2b_components_budget": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + } + } + } + } + }, + "400": { + "description": "Validation error or budget persistence failed" } }, "security": [ @@ -21883,41 +25186,44 @@ ] } }, - "/shopping-lists/add-to-cart": { - "post": { + "/budgets/delete": { + "delete": { "tags": [ - "B2B Shopping Lists" + "B2B Budget Management" ], - "summary": "Add shopping lists to cart", - "description": "This route is used to add shopping lists to cart", - "operationId": "addShoppingListsToCart", - "parameters": [], + "summary": "Delete budgets", + "description": "This route is used to delete multiple budgets", + "operationId": "deleteBudgets", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", - "required": [ - "ids" - ], "properties": { "ids": { - "description": "Shopping list ids", + "description": "Budget IDs to delete", "type": "array", "items": { "type": "string", "pattern": "^[0-9a-f]{32}$" - } + }, + "minItems": 1 } - } + }, + "required": [ + "ids" + ] } } } }, "responses": { "204": { - "description": "No content response" + "description": "Budgets deleted successfully" + }, + "400": { + "description": "Missing or invalid IDs parameter" } }, "security": [ @@ -21927,111 +25233,59 @@ ] } }, - "/organization-unit": { + "/budget/{id}/recipients": { "post": { "tags": [ - "B2B Organization Unit" + "B2B Budget Management" + ], + "summary": "Store budget recipients", + "description": "This route is used to add recipients (employees) to a budget for notifications", + "operationId": "storeBudgetRecipients", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Identifier of the budget to add recipients to", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } ], - "summary": "Create new organization unit", - "description": "This route is used to create a new organization", - "operationId": "createOrganizationUnit", - "parameters": [], "requestBody": { "required": true, "content": { "application/json": { "schema": { + "type": "object", "properties": { - "name": { - "description": "Organization unit name", - "type": "string" - }, - "shippingAddressIds": { - "description": "Identifier (UUID) of the addresses for shipping.", - "type": "array", - "items": { - "type": "array", - "properties": { - "customerAddressId": { - "type": "string", - "description": "The Identifier (UUID) of the customer address", - "pattern": "^[0-9a-f]{32}$" - } - }, - "required": [ - "customerAddressId" - ] - } - }, - "billingAddressIds": { - "description": "Identifier (UUID) of the addresses for billing.", - "type": "array", - "items": { - "type": "array", - "properties": { - "customerAddressId": { - "type": "string", - "description": "The Identifier (UUID) of the customer address", - "pattern": "^[0-9a-f]{32}$" - } - }, - "required": [ - "customerAddressId" - ] - } - }, - "paymentMethodIds": { - "description": "Identifier (UUID) of the payment methods.", - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "shippingMethodIds": { - "description": "Identifier (UUID) of the shipping methods.", - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, "employeeIds": { - "description": "Identifier (UUID) of employees.", + "description": "Employee IDs to add as budget recipients", "type": "array", "items": { "type": "string", "pattern": "^[0-9a-f]{32}$" - } - }, - "defaultShippingAddressId": { - "description": "Identifier (UUID) of the default shipping address", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "defaultBillingAddressId": { - "description": "Identifier (UUID) of the default billing address", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + }, + "minItems": 1 } }, - "type": "object", "required": [ - "name", - "shippingAddressIds", - "billingAddressIds", - "paymentMethodIds", - "shippingMethodIds", - "defaultShippingAddressId", - "defaultBillingAddressId" + "employeeIds" ] } } } }, "responses": { - "201": { - "description": "Created organization unit" + "204": { + "description": "Budget recipients stored successfully" + }, + "400": { + "description": "Validation error or budget persistence failed" + }, + "404": { + "description": "Budget not found" } }, "security": [ @@ -22042,37 +25296,56 @@ }, "delete": { "tags": [ - "B2B Organization Units" + "B2B Budget Management" + ], + "summary": "Delete budget recipients", + "description": "This route is used to remove recipients (employees) from a budget", + "operationId": "deleteBudgetRecipients", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "Identifier of the budget to remove recipients from", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } ], - "summary": "Delete organization units", - "description": "This route is used to delete organization units", - "operationId": "removeOrganizationUnits", "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", - "required": [ - "ids" - ], "properties": { - "ids": { - "description": "Organization Unit ids", + "employeeIds": { + "description": "Employee IDs to remove from budget recipients", "type": "array", "items": { "type": "string", "pattern": "^[0-9a-f]{32}$" - } + }, + "minItems": 1 } - } + }, + "required": [ + "employeeIds" + ] } } } }, "responses": { "204": { - "description": "No content response" + "description": "Budget recipients deleted successfully" + }, + "400": { + "description": "Validation error or budget persistence failed" + }, + "404": { + "description": "Budget not found" } }, "security": [ @@ -22082,49 +25355,81 @@ ] } }, - "/organization-units": { + "/checkout/budgets": { + "get": { + "tags": [ + "B2B Budget Management" + ], + "summary": "Get available budgets for checkout", + "description": "This route is used to get available budgets for the current employee during checkout", + "operationId": "getCheckoutAvailableBudgets", + "responses": { + "200": { + "description": "Available budgets for checkout", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "budgets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bComponentsBudget" + } + } + } + } + } + } + }, + "400": { + "description": "Employee not logged in or validation error" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, "post": { "tags": [ - "B2B Organization Units" + "B2B Budget Management" ], - "summary": "Load Organization Units", - "description": "This route is used to load all Organization Units", - "operationId": "readOrganizationUnits", + "summary": "Get available budgets for checkout", + "description": "This route is used to get available budgets for the current employee during checkout", + "operationId": "getCheckoutAvailableBudgetsPost", "requestBody": { "required": false, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Criteria" + "type": "object" } } } }, "responses": { "200": { - "description": "Entity search result containing Organization Units", + "description": "Available budgets for checkout", "content": { "application/json": { "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/B2bComponentsOrganization" - } - } + "type": "object", + "properties": { + "budgets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/B2bComponentsBudget" } - }, - { - "$ref": "#/components/schemas/EntitySearchResult" } - ] + } } } } + }, + "400": { + "description": "Employee not logged in or validation error" } }, "security": [ @@ -22134,36 +25439,86 @@ ] } }, - "/organization-unit/{id}": { - "post": { + "/checkout/budget/{budgetId}/statistic": { + "get": { "tags": [ - "B2B Organization Units" + "B2B Budget Management" ], - "summary": "Load one Organization Unit", - "description": "This route is used to load one Organization Unit", - "operationId": "readOrganizationUnit", + "summary": "Get budget statistics for checkout", + "description": "This route is used to get budget statistics for the current employee during checkout", + "operationId": "getCheckoutBudgetStatistic", "parameters": [ { - "name": "id", + "name": "budgetId", "in": "path", - "description": "Identifier of the Organization Unit to be fetched", + "description": "Budget ID to get statistics for", "required": true, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "name": "quoteId", + "in": "query", + "description": "Quote ID to calculate statistics for (optional)", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } } ], "responses": { "200": { - "description": "Organization Unit entity", + "description": "Budget statistics for checkout", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/B2bComponentsOrganization" + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "amount": { + "description": "Budget total amount", + "type": "number", + "format": "float" + }, + "usedAmount": { + "description": "Budget used amount", + "type": "number", + "format": "float" + }, + "allowApproval": { + "description": "Whether budget allows approval", + "type": "boolean" + }, + "isExceeded": { + "description": "Whether budget is exceeded", + "type": "boolean" + }, + "factor": { + "description": "Currency factor", + "type": "number", + "format": "float" + } + }, + "required": [ + "allowApproval", + "isExceeded" + ] + } + } } } } + }, + "400": { + "description": "Employee not logged in, missing budget ID, or validation error" + }, + "404": { + "description": "Budget not found" } }, "security": [ @@ -22172,18 +25527,18 @@ } ] }, - "patch": { + "post": { "tags": [ - "B2B Organization Units" + "B2B Budget Management" ], - "summary": "Update Organization Unit", - "description": "This route is used to update Organization Unit", - "operationId": "updateOrganizationUnit", + "summary": "Get budget statistics for checkout", + "description": "This route is used to get budget statistics for the current employee during checkout", + "operationId": "getCheckoutBudgetStatisticPost", "parameters": [ { - "name": "id", + "name": "budgetId", "in": "path", - "description": "Identifier of the Organization Unit to be fetched", + "description": "Budget ID to get statistics for", "required": true, "schema": { "type": "string", @@ -22196,90 +25551,71 @@ "content": { "application/json": { "schema": { + "type": "object", "properties": { - "name": { - "description": "Organization unit name", - "type": "string" - }, - "shippingAddressIds": { - "description": "Identifier (UUID) of the addresses for shipping.", - "type": "array", - "items": { - "type": "array", - "properties": { - "customerAddressId": { - "type": "string", - "description": "The Identifier (UUID) of the customer address", - "pattern": "^[0-9a-f]{32}$" - } - }, - "required": [ - "customerAddressId", - "id" - ] - } - }, - "billingAddressIds": { - "description": "Identifier (UUID) of the addresses for billing.", - "type": "array", - "items": { - "type": "array", - "properties": { - "customerAddressId": { - "type": "string", - "description": "The Identifier (UUID) of the customer address", - "pattern": "^[0-9a-f]{32}$" - } - }, - "required": [ - "customerAddressId", - "id" - ] - } - }, - "paymentMethodIds": { - "description": "Identifier (UUID) of the payment methods.", - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "shippingMethodIds": { - "description": "Identifier (UUID) of the shipping methods.", - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "employeeIds": { - "description": "Identifier (UUID) of employees.", - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "defaultShippingAddressId": { - "description": "Identifier (UUID) of the default shipping address", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "defaultBillingAddressId": { - "description": "Identifier (UUID) of the default billing address", + "quoteId": { + "description": "Quote ID to calculate statistics for (optional)", "type": "string", "pattern": "^[0-9a-f]{32}$" } }, - "type": "object" + "required": [ + "budgetId" + ] } } } }, "responses": { - "201": { - "description": "Updated organization unit" + "200": { + "description": "Budget statistics for checkout", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "data": { + "type": "object", + "properties": { + "amount": { + "description": "Budget total amount", + "type": "number", + "format": "float" + }, + "usedAmount": { + "description": "Budget used amount", + "type": "number", + "format": "float" + }, + "allowApproval": { + "description": "Whether budget allows approval", + "type": "boolean" + }, + "isExceeded": { + "description": "Whether budget is exceeded", + "type": "boolean" + }, + "factor": { + "description": "Currency factor", + "type": "number", + "format": "float" + } + }, + "required": [ + "allowApproval", + "isExceeded" + ] + } + } + } + } + } + }, + "400": { + "description": "Employee not logged in, missing budget ID, or validation error" + }, + "404": { + "description": "Budget not found" } }, "security": [ diff --git a/SwagCommercial-storeapi.summary.json b/SwagCommercial-storeapi.summary.json index 4509c69..5282ce7 100644 --- a/SwagCommercial-storeapi.summary.json +++ b/SwagCommercial-storeapi.summary.json @@ -1,8 +1,19 @@ { "paths": [ + "/advanced-product-catalogs/categories", + "/advanced-product-catalogs/categories/remove", + "/advanced-product-catalogs/categories/search", + "/advanced-product-catalogs/save", "/approval-rule", "/approval-rule/create", "/approval-rule/{id}", + "/budget", + "/budget/{id}", + "/budget/{id}/recipients", + "/budgets", + "/budgets/delete", + "/checkout/budget/{budgetId}/statistic", + "/checkout/budgets", "/employee", "/employee/create", "/employee/reinvite/{id}", @@ -25,6 +36,7 @@ "/quote/request", "/quote/{id}/configure", "/quote/{id}/decline", + "/quote/{id}/read-message", "/quote/{id}/request-change", "/quote/{id}/send-message", "/quotes", @@ -77,8 +89,20 @@ "Association", "Associations", "B2bBusinessPartner", + "B2bComponentsAdvancedProductCatalogs", "B2bComponentsApprovalRule", "B2bComponentsApprovalRuleAppScriptCondition", + "B2bComponentsBudget", + "B2bComponentsBudgetNotificationRecipient", + "B2bComponentsBudgetOrganization", + "B2bComponentsEmployeeWishlist", + "B2bComponentsEmployeeWishlistProduct", + "B2bComponentsIndividualPricing", + "B2bComponentsIndividualPricingCompanyAssignment", + "B2bComponentsIndividualPricingCompanyAssignmentUnit", + "B2bComponentsIndividualPricingComputedCache", + "B2bComponentsIndividualPricingTag", + "B2bComponentsIndividualPricingTier", "B2bComponentsOrganization", "B2bComponentsOrganizationCustomerAddress", "B2bComponentsPendingOrder", @@ -88,6 +112,7 @@ "B2bComponentsShoppingListJsonApi", "B2bComponentsShoppingListLineItem", "B2bComponentsShoppingListLineItemJsonApi", + "B2bComponentsSubscriptionEmployee", "B2bEmployee", "B2bOrderEmployee", "B2bPermission", @@ -109,6 +134,11 @@ "CmsSection", "CmsSlot", "ContextMeasurementSystemInfo", + "CookieEntry", + "CookieEntryCollection", + "CookieGroup", + "CookieGroupCollection", + "CookieRouteResponse", "Country", "CountryJsonApi", "CountryState", @@ -127,6 +157,7 @@ "Customer", "CustomerAddress", "CustomerAddressBody", + "CustomerAddressJsonApi", "CustomerAddressRead", "CustomerGroup", "CustomerRecovery", @@ -141,6 +172,7 @@ "DocumentType", "EntitySearchResult", "EqualsFilter", + "Excludes", "Filters", "FindProductVariantRouteResponse", "Flow", @@ -157,6 +189,7 @@ "LanguageJsonApi", "LineItem", "LineItemType", + "ListCategoryRouteResponse", "ListPrice", "Locale", "LogEntry", diff --git a/SwagCustomizedProducts-storeapi.json b/SwagCustomizedProducts-storeapi.json index b17d3b7..98839be 100644 --- a/SwagCustomizedProducts-storeapi.json +++ b/SwagCustomizedProducts-storeapi.json @@ -1,5 +1,5 @@ { - "openapi": "3.0.0", + "openapi": "3.1.0", "info": { "title": "Shopware Store API", "description": "This endpoint reference contains an overview of all endpoints comprising the Shopware Store API", @@ -7,7 +7,7 @@ "name": "MIT", "url": "https://github.com/shopware/shopware/blob/trunk/LICENSE" }, - "version": "6.6.6.1" + "version": "6.7.9999999-dev" }, "servers": [ { @@ -368,9 +368,6 @@ }, "AclRole": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -392,7 +389,6 @@ "App": { "description": "Added since version: 6.3.1.0", "required": [ - "createdAt", "label" ], "properties": { @@ -419,7 +415,6 @@ "AppActionButton": { "description": "Added since version: 6.3.1.0", "required": [ - "createdAt", "label" ], "properties": { @@ -448,8 +443,7 @@ "required": [ "value", "appId", - "localeId", - "createdAt" + "localeId" ], "properties": { "id": { @@ -483,7 +477,6 @@ "AppCmsBlock": { "description": "Added since version: 6.4.2.0", "required": [ - "createdAt", "label" ], "properties": { @@ -510,7 +503,6 @@ "AppFlowAction": { "description": "Added since version: 6.4.10.0", "required": [ - "createdAt", "label" ], "properties": { @@ -536,9 +528,6 @@ }, "AppFlowEvent": { "description": "Added since version: 6.5.2.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -559,9 +548,6 @@ }, "AppPaymentMethod": { "description": "Added since version: 6.4.1.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -583,7 +569,6 @@ "AppScriptCondition": { "description": "Added since version: 6.4.10.3", "required": [ - "createdAt", "name" ], "properties": { @@ -609,9 +594,6 @@ }, "AppShippingMethod": { "description": "Added since version: 6.5.7.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -632,9 +614,6 @@ }, "AppTemplate": { "description": "Added since version: 6.3.1.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -662,10 +641,6 @@ { "required": [ "id", - "displayNestedProducts", - "type", - "productAssignmentType", - "createdAt", "name" ], "properties": { @@ -686,6 +661,7 @@ "pattern": "^[0-9a-f]{32}$" }, "afterCategoryId": { + "description": "Unique identity of the category under which the new category is to be created.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -694,10 +670,12 @@ "pattern": "^[0-9a-f]{32}$" }, "mediaId": { + "description": "Unique identity of media added to identify category.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "displayNestedProducts": { + "description": "Shows nested categories on a product category page.", "type": "boolean" }, "breadcrumb": { @@ -709,11 +687,13 @@ "readOnly": true }, "level": { + "description": "An integer value that denotes the level of nesting of a particular category located in an hierarchical category tree.", "type": "integer", "format": "int64", "readOnly": true }, "path": { + "description": "A relative URL to the category.", "type": "string", "readOnly": true }, @@ -723,15 +703,19 @@ "readOnly": true }, "type": { + "description": "Type of categories like `page`, `folder`, `link`.", "type": "string" }, "productAssignmentType": { + "description": "Type of product assignment: Dynamic product group as or `product_stream` or Manual assignment as `product`.", "type": "string" }, "visible": { + "description": "Displays categories on category page when true.", "type": "boolean" }, "active": { + "description": "When boolean value is `true`, the category is listed for selection.", "type": "boolean" }, "cmsPageIdSwitched": { @@ -775,6 +759,7 @@ "type": "string" }, "cmsPageId": { + "description": "Unique identity of CMS page.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -786,6 +771,10 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "seoUrl": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time", @@ -802,6 +791,7 @@ "relationships": { "properties": { "parent": { + "description": "Unique identity of category.", "properties": { "links": { "type": "object", @@ -831,6 +821,7 @@ "type": "object" }, "children": { + "description": "Child categories within this category for hierarchical navigation", "properties": { "links": { "type": "object", @@ -862,6 +853,7 @@ "type": "object" }, "media": { + "description": "Category image or banner", "properties": { "links": { "type": "object", @@ -891,6 +883,7 @@ "type": "object" }, "tags": { + "description": "Tags for organizing and filtering categories", "properties": { "links": { "type": "object", @@ -922,6 +915,7 @@ "type": "object" }, "cmsPage": { + "description": "CMS page layout for the category", "properties": { "links": { "type": "object", @@ -951,6 +945,7 @@ "type": "object" }, "seoUrls": { + "description": "SEO-friendly URLs for the category across different sales channels", "properties": { "links": { "type": "object", @@ -997,11 +992,8 @@ "children", "childCount", "translated", - "id", - "displayNestedProducts", "type", - "productAssignmentType", - "createdAt", + "id", "name" ], "properties": { @@ -1022,6 +1014,7 @@ "pattern": "^[0-9a-f]{32}$" }, "afterCategoryId": { + "description": "Unique identity of the category under which the new category is to be created.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -1030,10 +1023,12 @@ "pattern": "^[0-9a-f]{32}$" }, "mediaId": { + "description": "Unique identity of media added to identify category.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "displayNestedProducts": { + "description": "Shows nested categories on a product category page.", "type": "boolean" }, "breadcrumb": { @@ -1045,11 +1040,13 @@ "readOnly": true }, "level": { + "description": "An integer value that denotes the level of nesting of a particular category located in an hierarchical category tree.", "type": "integer", "format": "int64", "readOnly": true }, "path": { + "description": "A relative URL to the category.", "type": "string", "readOnly": true }, @@ -1059,15 +1056,23 @@ "readOnly": true }, "type": { - "type": "string" + "description": "Type of categories like `page`, `folder`, `link`.", + "type": "string", + "enum": [ + "page", + "link" + ] }, "productAssignmentType": { + "description": "Type of product assignment: Dynamic product group as or `product_stream` or Manual assignment as `product`.", "type": "string" }, "visible": { + "description": "Displays categories on category page when true.", "type": "boolean" }, "active": { + "description": "When boolean value is `true`, the category is listed for selection.", "type": "boolean" }, "cmsPageIdSwitched": { @@ -1111,6 +1116,7 @@ "type": "string" }, "cmsPageId": { + "description": "Unique identity of CMS page.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -1122,6 +1128,10 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "seoUrl": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time", @@ -1148,27 +1158,33 @@ ] }, "parent": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/Category", + "description": "Unique identity of category." }, "children": { + "description": "Child categories within this category for hierarchical navigation", "type": "array", "items": { "$ref": "#/components/schemas/Category" } }, "media": { - "$ref": "#/components/schemas/Media" + "$ref": "#/components/schemas/Media", + "description": "Category image or banner" }, "tags": { + "description": "Tags for organizing and filtering categories", "type": "array", "items": { "$ref": "#/components/schemas/Tag" } }, "cmsPage": { - "$ref": "#/components/schemas/CmsPage" + "$ref": "#/components/schemas/CmsPage", + "description": "CMS page layout for the category" }, "seoUrls": { + "description": "SEO-friendly URLs for the category across different sales channels", "type": "array", "items": { "$ref": "#/components/schemas/SeoUrl" @@ -1188,52 +1204,72 @@ "required": [ "apiAlias", "slots", + "id", "position", "type", - "sectionId", - "createdAt" + "sectionId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "cmsSectionVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, "position": { + "description": "Order of the block indicated by number like 0, 1, 2,...", "type": "integer", "format": "int64" }, "type": { + "description": "Type of block can be 'image`, `text`, 'product-listing`, `image-two-column`, etc.", "type": "string" }, "name": { + "description": "Unique name of the CMS Block.", "type": "string" }, "sectionPosition": { + "description": "Position of the section. It can either be `main` or `sidebar`.", "type": "string" }, "marginTop": { + "description": "Defines the margin area on the top of an element.", "type": "string" }, "marginBottom": { + "description": "Defines for the margin area on the bottom of an element.", "type": "string" }, "marginLeft": { + "description": "Defines for the margin area on the left of an element.", "type": "string" }, "marginRight": { + "description": "Defines the margin area on the right of an element.", "type": "string" }, "backgroundColor": { + "description": "Defines the background color of an element.", "type": "string" }, "backgroundMediaId": { + "description": "Unique identity of background media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "backgroundMediaMode": { + "description": "Background media mode accept values `cover`, `auto`, `contain`.", "type": "string" }, "cssClass": { + "description": "One or more CSS classes added and separated by spaces.", "type": "string" }, "visibility": { @@ -1251,20 +1287,13 @@ "type": "object" }, "sectionId": { + "description": "Unique identity of section.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "customFields": { "type": "object" }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "cmsSectionVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, "createdAt": { "type": "string", "format": "date-time", @@ -1299,8 +1328,7 @@ "apiAlias", "sections", "id", - "type", - "createdAt" + "type" ], "properties": { "id": { @@ -1315,12 +1343,15 @@ "type": "string" }, "type": { + "description": "CMS page types can be `landingpage`, `page`, `product_list`, `product_detail`.", "type": "string" }, "entity": { + "description": "This field will be implemented in the future.", "type": "string" }, "cssClass": { + "description": "One or more CSS classes added and separated by spaces.", "type": "string" }, "config": { @@ -1332,6 +1363,7 @@ "type": "object" }, "previewMediaId": { + "description": "Unique identity of media to be previewed.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -1352,15 +1384,18 @@ "type": "object" }, "sections": { + "description": "Content sections within the CMS page (layout blocks containing slots)", "type": "array", "items": { "$ref": "#/components/schemas/CmsSection" } }, "previewMedia": { - "$ref": "#/components/schemas/Media" + "$ref": "#/components/schemas/Media", + "description": "Preview image for the CMS page in admin panel and page selection" }, "landingPages": { + "description": "Landing pages using this CMS layout", "type": "array", "items": { "$ref": "#/components/schemas/LandingPage" @@ -1380,46 +1415,64 @@ "required": [ "apiAlias", "blocks", + "id", "position", "type", - "pageId", - "createdAt" + "pageId" ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "cmsPageVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, "position": { + "description": "Position of occurrence of each section denoted by numerical values 0, 1, 2...", "type": "integer", "format": "int64" }, "type": { - "type": "string" + "description": "Types of sections can be `sidebar` or `fullwidth`.", + "type": "string", + "enum": [ + "default", + "sidebar" + ] }, "name": { + "description": "Name of the CMS section defined.", "type": "string" }, "sizingMode": { + "description": "Sizing mode can be `boxed` or `full_width`.", "type": "string" }, "mobileBehavior": { + "description": "Hides the sidebar on mobile viewports. It can hold values such as 'mobile', 'wrap', any other string or be unset.", "type": "string" }, "backgroundColor": { + "description": "Background color of CMS page.", "type": "string" }, "backgroundMediaId": { + "description": "Unique identity of CMS section's background media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "backgroundMediaMode": { + "description": "Background media mode can be `cover`, `auto` or `contain`.", "type": "string" }, "cssClass": { + "description": "One or more CSS classes added and separated by spaces.", "type": "string" }, "pageId": { + "description": "Unique identity of page where CMS section is defined.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -1440,10 +1493,6 @@ "customFields": { "type": "object" }, - "cmsPageVersionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, "createdAt": { "type": "string", "format": "date-time", @@ -1478,11 +1527,11 @@ "CmsSlot": { "description": "Added since version: 6.0.0.0", "required": [ + "apiAlias", "id", "type", "slot", - "blockId", - "createdAt" + "blockId" ], "properties": { "id": { @@ -1493,10 +1542,19 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "cmsBlockVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "fieldConfig": { + "type": "object" + }, "type": { + "description": "It indicates the types of content that can be defined within the slot which includes `image`, `text`, `form`, `product-listing`, `category-navigation`, `product-box`, `buy-box`, `sidebar-filter`, etc.", "type": "string" }, "slot": { + "description": "Key-value pair to configure which element to be shown in which slot.", "type": "string" }, "locked": { @@ -1513,13 +1571,7 @@ "readOnly": true }, "blockId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "fieldConfig": { - "type": "object" - }, - "cmsBlockVersionId": { + "description": "Unique identity of CMS block where slot is defined.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -1538,6 +1590,12 @@ }, "block": { "$ref": "#/components/schemas/CmsBlock" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cms_slot" + ] } }, "type": "object" @@ -1551,8 +1609,6 @@ { "required": [ "id", - "isEu", - "createdAt", "name", "addressFormat" ], @@ -1565,34 +1621,44 @@ "type": "string" }, "iso": { + "description": "Internationally recognized two-letter country codes. For example, DE, IN, NO, etc.", "type": "string" }, "position": { + "description": "Numerical value that indicates the order in which the defined countries must be displayed in the frontend.", "type": "integer", "format": "int64" }, "active": { + "description": "When boolean value is `true`, the country is available for selection in the storefront.", "type": "boolean" }, "shippingAvailable": { + "description": "The shipping availability for a country is enabled when boolean value is `true`.", "type": "boolean" }, "iso3": { + "description": "Internationally recognized three-letter country codes. For example, DEU, IND, NOR, etc.", "type": "string" }, "displayStateInRegistration": { + "description": "The country's state is displayed in the address when boolean value is `true`.", "type": "boolean" }, "forceStateInRegistration": { + "description": "State details in the address are force included when boolean value is `true`.", "type": "boolean" }, "checkVatIdPattern": { + "description": "Verify if VAT ID is valid or not.", "type": "boolean" }, "vatIdRequired": { + "description": "Set to true, if VAT ID is to be made mandatory.", "type": "boolean" }, "vatIdPattern": { + "description": "Unique VAT ID with country code and numbers, for example - GB999 9999", "type": "string" }, "customFields": { @@ -1639,21 +1705,26 @@ "type": "object" }, "postalCodeRequired": { + "description": "The postal code is made mandatory specification in the address, when boolean value is `true`.", "type": "boolean" }, "checkPostalCodePattern": { + "description": "Verify for valid postal code pattern.", "type": "boolean" }, "checkAdvancedPostalCodePattern": { + "description": "Verify for advanced postal code pattern.", "type": "boolean" }, "advancedPostalCodePattern": { + "description": "Wildcard formatted zip codes to allow easy searching in the frontend based on initial constants, for example - 24****, 1856**.", "type": "string" }, "addressFormat": { "type": "object" }, "defaultPostalCodePattern": { + "description": "Default pattern of postal or zip code.", "type": "string" }, "isEu": { @@ -1675,6 +1746,7 @@ "relationships": { "properties": { "states": { + "description": "States/provinces/regions within the country", "properties": { "links": { "type": "object", @@ -1717,8 +1789,6 @@ "description": "Added since version: 6.0.0.0", "required": [ "id", - "isEu", - "createdAt", "name", "addressFormat" ], @@ -1731,34 +1801,44 @@ "type": "string" }, "iso": { + "description": "Internationally recognized two-letter country codes. For example, DE, IN, NO, etc.", "type": "string" }, "position": { + "description": "Numerical value that indicates the order in which the defined countries must be displayed in the frontend.", "type": "integer", "format": "int64" }, "active": { + "description": "When boolean value is `true`, the country is available for selection in the storefront.", "type": "boolean" }, "shippingAvailable": { + "description": "The shipping availability for a country is enabled when boolean value is `true`.", "type": "boolean" }, "iso3": { + "description": "Internationally recognized three-letter country codes. For example, DEU, IND, NOR, etc.", "type": "string" }, "displayStateInRegistration": { + "description": "The country's state is displayed in the address when boolean value is `true`.", "type": "boolean" }, "forceStateInRegistration": { + "description": "State details in the address are force included when boolean value is `true`.", "type": "boolean" }, "checkVatIdPattern": { + "description": "Verify if VAT ID is valid or not.", "type": "boolean" }, "vatIdRequired": { + "description": "Set to true, if VAT ID is to be made mandatory.", "type": "boolean" }, "vatIdPattern": { + "description": "Unique VAT ID with country code and numbers, for example - GB999 9999", "type": "string" }, "customFields": { @@ -1805,21 +1885,26 @@ "type": "object" }, "postalCodeRequired": { + "description": "The postal code is made mandatory specification in the address, when boolean value is `true`.", "type": "boolean" }, "checkPostalCodePattern": { + "description": "Verify for valid postal code pattern.", "type": "boolean" }, "checkAdvancedPostalCodePattern": { + "description": "Verify for advanced postal code pattern.", "type": "boolean" }, "advancedPostalCodePattern": { + "description": "Wildcard formatted zip codes to allow easy searching in the frontend based on initial constants, for example - 24****, 1856**.", "type": "string" }, "addressFormat": { "type": "object" }, "defaultPostalCodePattern": { + "description": "Default pattern of postal or zip code.", "type": "string" }, "isEu": { @@ -1839,6 +1924,7 @@ "type": "object" }, "states": { + "description": "States/provinces/regions within the country", "type": "array", "items": { "$ref": "#/components/schemas/CountryState" @@ -1858,7 +1944,6 @@ "id", "countryId", "shortCode", - "createdAt", "name" ], "properties": { @@ -1867,20 +1952,24 @@ "pattern": "^[0-9a-f]{32}$" }, "countryId": { + "description": "Unique identity of the country.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "shortCode": { + "description": "An abbreviation for the country's state.", "type": "string" }, "name": { "type": "string" }, "position": { + "description": "Numerical value that indicates the order in which the defined states must be displayed in the frontend.", "type": "integer", "format": "int64" }, "active": { + "description": "When boolean value is `true`, the country's state is available for selection in the storefront.", "type": "boolean" }, "customFields": { @@ -1910,7 +1999,6 @@ "id", "countryId", "shortCode", - "createdAt", "name" ], "properties": { @@ -1919,20 +2007,24 @@ "pattern": "^[0-9a-f]{32}$" }, "countryId": { + "description": "Unique identity of the country.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "shortCode": { + "description": "An abbreviation for the country's state.", "type": "string" }, "name": { "type": "string" }, "position": { + "description": "Numerical value that indicates the order in which the defined states must be displayed in the frontend.", "type": "integer", "format": "int64" }, "active": { + "description": "When boolean value is `true`, the country's state is available for selection in the storefront.", "type": "boolean" }, "customFields": { @@ -1968,7 +2060,6 @@ "isoCode", "itemRounding", "totalRounding", - "createdAt", "shortName", "name" ], @@ -1978,13 +2069,16 @@ "pattern": "^[0-9a-f]{32}$" }, "factor": { + "description": "Currency exchange rate.", "type": "number", "format": "float" }, "symbol": { + "description": "A currency symbol is a graphical representation used as shorthand for a currency's name, for example US Dollar - $", "type": "string" }, "isoCode": { + "description": "Standard international three digit code to represent currency. For example, USD.", "type": "string" }, "shortName": { @@ -1994,6 +2088,7 @@ "type": "string" }, "position": { + "description": "The order of the tabs for multiple currencies defined.", "type": "integer", "format": "int64" }, @@ -2002,6 +2097,7 @@ "type": "boolean" }, "taxFreeFrom": { + "description": "The value from which the tax must be exempted.", "type": "number", "format": "float" }, @@ -2077,7 +2173,6 @@ "isoCode", "itemRounding", "totalRounding", - "createdAt", "shortName", "name" ], @@ -2087,13 +2182,16 @@ "pattern": "^[0-9a-f]{32}$" }, "factor": { + "description": "Currency exchange rate.", "type": "number", "format": "float" }, "symbol": { + "description": "A currency symbol is a graphical representation used as shorthand for a currency's name, for example US Dollar - $", "type": "string" }, "isoCode": { + "description": "Standard international three digit code to represent currency. For example, USD.", "type": "string" }, "shortName": { @@ -2103,6 +2201,7 @@ "type": "string" }, "position": { + "description": "The order of the tabs for multiple currencies defined.", "type": "integer", "format": "int64" }, @@ -2111,6 +2210,7 @@ "type": "boolean" }, "taxFreeFrom": { + "description": "The value from which the tax must be exempted.", "type": "number", "format": "float" }, @@ -2177,9 +2277,6 @@ }, "CurrencyCountryRounding": { "description": "Added since version: 6.4.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -2200,9 +2297,6 @@ }, "CustomEntity": { "description": "Added since version: 6.4.9.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -2223,9 +2317,6 @@ }, "CustomField": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -2246,9 +2337,6 @@ }, "CustomFieldSet": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -2269,9 +2357,6 @@ }, "CustomFieldSetRelation": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -2305,10 +2390,7 @@ "customerNumber", "firstName", "lastName", - "email", - "accountType", - "defaultPaymentMethodId", - "createdAt" + "email" ], "properties": { "id": { @@ -2316,110 +2398,128 @@ "pattern": "^[0-9a-f]{32}$" }, "groupId": { + "description": "Unique identity of customer group.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "languageId": { + "description": "Unique identity of language.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "lastPaymentMethodId": { + "description": "Unique identity of previous payment method.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "defaultBillingAddressId": { + "description": "Unique identity of default billing address.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "defaultShippingAddressId": { + "description": "Unique identity of default shipping address.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "customerNumber": { + "description": "Unique number assigned to identity a customer.", "type": "string" }, "salutationId": { + "description": "Unique identity of salutation.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "firstName": { + "description": "First name of the customer.", "type": "string" }, "lastName": { - "type": "string" - }, - "company": { + "description": "Last name of the customer.", "type": "string" }, "email": { + "description": "Email ID of the customer.", "type": "string" }, "title": { + "description": "Titles or honorifics like Mr, Mrs, etc.", "type": "string" }, - "vatIds": { - "type": "array", - "items": { - "type": "string" - } - }, "affiliateCode": { + "description": "An affiliate code is an identification option with which website operators can mark outgoing links.", "type": "string" }, "campaignCode": { + "description": "A campaign code is the globally unique identifier for a campaign.", "type": "string" }, "active": { + "description": "To keep the status of the customer active, the boolean value is set to `true`.", "type": "boolean" }, "doubleOptInRegistration": { + "description": "Set to `true` to allow user subscriptions to an email marketing list.", "type": "boolean" }, "doubleOptInEmailSentDate": { + "description": "Date and time when the double opt-in email was sent.", "type": "string", "format": "date-time" }, "doubleOptInConfirmDate": { + "description": "Date and time when the double opt-in email was confirmed.", "type": "string", "format": "date-time" }, "hash": { + "description": "Password hash for customer recovery.", "type": "string" }, "guest": { + "description": "Boolean value is `true` if it is to be a guest account.", "type": "boolean" }, "firstLogin": { + "description": "To capture date and time of customer's first login.", "type": "string", "format": "date-time" }, "lastLogin": { + "description": "To capture date and time of customer's last login.", "type": "string", "format": "date-time" }, "birthday": { + "description": "To capture customer's birthday details.", "type": "string" }, "lastOrderDate": { + "description": "Captures last order date.", "type": "string", "format": "date-time", "readOnly": true }, "orderCount": { + "description": "Captures the number of orders placed.", "type": "integer", "format": "int64", "readOnly": true }, "orderTotalAmount": { + "description": "Sum of total amount to be paid.", "type": "number", "format": "float", "readOnly": true }, "reviewCount": { + "description": "Number of reviews the customer has given.", "type": "integer", "format": "int64", "readOnly": true @@ -2435,9 +2535,6 @@ }, "readOnly": true }, - "accountType": { - "type": "string" - }, "createdById": { "type": "string", "pattern": "^[0-9a-f]{32}$" @@ -2446,10 +2543,6 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "defaultPaymentMethodId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, "createdAt": { "type": "string", "format": "date-time", @@ -2461,44 +2554,51 @@ "readOnly": true }, "group": { - "$ref": "#/components/schemas/CustomerGroup" + "$ref": "#/components/schemas/CustomerGroup", + "description": "Customer group determining pricing and permissions" }, "language": { - "$ref": "#/components/schemas/Language" + "$ref": "#/components/schemas/Language", + "description": "Preferred language for customer communication" }, "lastPaymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" + "$ref": "#/components/schemas/PaymentMethod", + "description": "Last used payment method by the customer" }, "defaultBillingAddress": { - "$ref": "#/components/schemas/CustomerAddress" + "$ref": "#/components/schemas/CustomerAddress", + "description": "Default billing address for the customer" }, "activeBillingAddress": { - "$ref": "#/components/schemas/CustomerAddress" + "$ref": "#/components/schemas/CustomerAddress", + "description": "Currently active billing address in the session" }, "defaultShippingAddress": { - "$ref": "#/components/schemas/CustomerAddress" + "$ref": "#/components/schemas/CustomerAddress", + "description": "Default shipping address for the customer" }, "activeShippingAddress": { - "$ref": "#/components/schemas/CustomerAddress" + "$ref": "#/components/schemas/CustomerAddress", + "description": "Currently active shipping address in the session" }, "salutation": { - "$ref": "#/components/schemas/Salutation" + "$ref": "#/components/schemas/Salutation", + "description": "Customer salutation (e.g., Mr., Mrs., Ms.)" }, "addresses": { + "description": "All addresses saved for the customer", "type": "array", "items": { "$ref": "#/components/schemas/CustomerAddress" } }, "tags": { + "description": "Tags assigned to the customer for organization and segmentation", "type": "array", "items": { "$ref": "#/components/schemas/Tag" } }, - "defaultPaymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" - }, "apiAlias": { "type": "string", "enum": [ @@ -2506,194 +2606,265 @@ ] } }, - "type": "object" - }, - "CustomerAddress": { - "description": "Added since version: 6.0.0.0", - "required": [ - "id", - "customerId", - "countryId", - "firstName", - "lastName", - "city", - "street", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryStateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salutationId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "zipcode": { - "type": "string" - }, - "city": { - "type": "string" - }, - "company": { - "type": "string" - }, - "street": { - "type": "string" - }, - "department": { - "type": "string" - }, - "title": { - "type": "string" - }, - "phoneNumber": { - "type": "string" - }, - "additionalAddressLine1": { - "type": "string" - }, - "additionalAddressLine2": { - "type": "string" - }, - "customFields": { - "type": "object" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "$ref": "#/components/schemas/CountryState" + "type": "object", + "oneOf": [ + { + "required": [ + "accountType" + ], + "properties": { + "accountType": { + "type": "string", + "enum": [ + "private" + ] + } + } }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + { + "required": [ + "accountType", + "vatIds", + "company" + ], + "properties": { + "accountType": { + "type": "string", + "enum": [ + "business" + ] + }, + "vatIds": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + }, + "company": { + "type": "string" + } + } } - }, - "type": "object" + ] }, - "CustomerGroup": { + "CustomerAddressJsonApi": { "description": "Added since version: 6.0.0.0", - "required": [ - "translated", - "id", - "createdAt", - "name" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" + "allOf": [ + { + "$ref": "#/components/schemas/resource" }, - "customFields": { - "type": "object" - }, - "registrationActive": { - "type": "boolean" - }, - "registrationTitle": { - "type": "string" - }, - "registrationIntroduction": { - "type": "string" - }, - "registrationOnlyCompanyRegistration": { - "type": "boolean" - }, - "registrationSeoMetaDescription": { - "type": "string" - }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - }, - "translated": { - "type": "object", + { + "required": [ + "id", + "customerId", + "countryId", + "firstName", + "lastName", + "city", + "street" + ], "properties": { - "name": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customerId": { + "description": "Unique identity of customer.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryId": { + "description": "Unique identity of country.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryStateId": { + "description": "Unique identity of country's state.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salutationId": { + "description": "Unique identity of salutation.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "description": "First name of the customer.", "type": "string" }, - "registrationIntroduction": { + "lastName": { + "description": "Last name of the customer.", "type": "string" }, - "registrationSeoMetaDescription": { + "zipcode": { + "description": "Postal or zip code of customer's address.", "type": "string" }, - "registrationTitle": { + "city": { + "description": "Name of customer's city.", + "type": "string" + }, + "company": { + "description": "Name of customer's company.", + "type": "string" + }, + "street": { + "description": "Name of customer's street.", + "type": "string" + }, + "department": { + "description": "Name of customer's department.", + "type": "string" + }, + "title": { + "description": "Titles given to customer like Dr. , Prof., etc", + "type": "string" + }, + "phoneNumber": { + "description": "Customer's phone number.", + "type": "string" + }, + "additionalAddressLine1": { + "description": "Additional customer's address information.", + "type": "string" + }, + "additionalAddressLine2": { + "description": "Additional customer's address information.", + "type": "string" + }, + "hash": { + "description": "Runtime field, cannot be used as part of the criteria.", "type": "string" + }, + "customFields": { + "type": "object" + }, + "isDefaultBillingAddress": { + "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "isDefaultShippingAddress": { + "description": "Added since version: 6.7.7.0. 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 + }, + "relationships": { + "properties": { + "country": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/country" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "country" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "e909c2d7067ea37437cf97fe11d91bd0" + } + } + } + }, + "type": "object" + }, + "countryState": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/countryState" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "country_state" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "cb6a9764567191fb74fe28d8d6a4819d" + } + } + } + }, + "type": "object" + }, + "salutation": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/salutation" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "salutation" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "7a6efb02514153b5aa9a8f40c6f8bcc3" + } + } + } + }, + "type": "object" + } + }, + "type": "object" } - } - } - }, - "type": "object" - }, - "CustomerRecovery": { - "description": "Added since version: 6.1.0.0", - "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" } - }, - "type": "object" + ] }, - "CustomerTag": { + "CustomerAddress": { "description": "Added since version: 6.0.0.0", "required": [ + "id", "customerId", - "tagId" + "countryId", + "firstName", + "lastName", + "city", + "street" ], "properties": { "id": { @@ -2701,64 +2872,270 @@ "pattern": "^[0-9a-f]{32}$" }, "customerId": { + "description": "Unique identity of customer.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "tagId": { + "countryId": { + "description": "Unique identity of country.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "tag": { - "$ref": "#/components/schemas/Tag" - } - }, - "type": "object" - }, - "CustomerWishlist": { - "description": "Added since version: 6.3.4.0", - "required": [ - "id", - "customerId", - "createdAt" - ], - "properties": { - "id": { + "countryStateId": { + "description": "Unique identity of country's state.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customerId": { + "salutationId": { + "description": "Unique identity of salutation.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "customFields": { - "type": "object" + "firstName": { + "description": "First name of the customer.", + "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time", - "readOnly": true + "lastName": { + "description": "Last name of the customer.", + "type": "string" }, - "updatedAt": { - "type": "string", - "format": "date-time", - "readOnly": true - } - }, - "type": "object" - }, - "CustomerWishlistProduct": { - "description": "Added since version: 6.3.4.0", - "required": [ - "id", - "productId", - "createdAt" - ], - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "zipcode": { + "description": "Postal or zip code of customer's address.", + "type": "string" + }, + "city": { + "description": "Name of customer's city.", + "type": "string" + }, + "company": { + "description": "Name of customer's company.", + "type": "string" + }, + "street": { + "description": "Name of customer's street.", + "type": "string" + }, + "department": { + "description": "Name of customer's department.", + "type": "string" + }, + "title": { + "description": "Titles given to customer like Dr. , Prof., etc", + "type": "string" + }, + "phoneNumber": { + "description": "Customer's phone number.", + "type": "string" + }, + "additionalAddressLine1": { + "description": "Additional customer's address information.", + "type": "string" + }, + "additionalAddressLine2": { + "description": "Additional customer's address information.", + "type": "string" + }, + "hash": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, + "customFields": { + "type": "object" + }, + "isDefaultBillingAddress": { + "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "isDefaultShippingAddress": { + "description": "Added since version: 6.7.7.0. 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 + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "countryState": { + "$ref": "#/components/schemas/CountryState" + }, + "salutation": { + "$ref": "#/components/schemas/Salutation" + } + }, + "type": "object" + }, + "CustomerGroup": { + "description": "Added since version: 6.0.0.0", + "required": [ + "translated", + "id", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "name": { + "type": "string" + }, + "displayGross": { + "description": "If boolean value is `true` gross value is displayed else, net value will be displayed to the customer.", + "type": "boolean" + }, + "customFields": { + "type": "object" + }, + "registrationActive": { + "description": "To enable the registration of partner customer group.", + "type": "boolean" + }, + "registrationTitle": { + "type": "string" + }, + "registrationIntroduction": { + "type": "string" + }, + "registrationOnlyCompanyRegistration": { + "type": "boolean" + }, + "registrationSeoMetaDescription": { + "type": "string" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "registrationIntroduction": { + "type": "string" + }, + "registrationSeoMetaDescription": { + "type": "string" + }, + "registrationTitle": { + "type": "string" + } + } + } + }, + "type": "object" + }, + "CustomerRecovery": { + "description": "Added since version: 6.1.0.0", + "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" + }, + "CustomerTag": { + "description": "Added since version: 6.0.0.0", + "required": [ + "customerId", + "tagId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "tagId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "tag": { + "$ref": "#/components/schemas/Tag" + } + }, + "type": "object" + }, + "CustomerWishlist": { + "description": "Added since version: 6.3.4.0", + "required": [ + "id", + "customerId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customerId": { + "description": "Unique identity of the customer.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customFields": { + "type": "object" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "products": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CustomerWishlistProduct" + } + } + }, + "type": "object" + }, + "CustomerWishlistProduct": { + "description": "Added since version: 6.3.4.0", + "required": [ + "id", + "productId" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "productId": { + "description": "Unique identity of the product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -2786,8 +3163,7 @@ "name", "min", "max", - "unit", - "createdAt" + "unit" ], "properties": { "id": { @@ -2798,14 +3174,17 @@ "type": "string" }, "min": { + "description": "Minimum delivery time taken.", "type": "integer", "format": "int64" }, "max": { + "description": "Maximum delivery time taken.", "type": "integer", "format": "int64" }, "unit": { + "description": "Unit in which the delivery time is defined. For example, days or hours.", "type": "string" }, "customFields": { @@ -2832,11 +3211,9 @@ "required": [ "id", "documentTypeId", - "fileType", "orderId", "config", - "deepLinkCode", - "createdAt" + "deepLinkCode" ], "properties": { "id": { @@ -2847,9 +3224,6 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "fileType": { - "type": "string" - }, "referencedDocumentId": { "type": "string", "pattern": "^[0-9a-f]{32}$" @@ -2862,6 +3236,10 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "documentA11yMediaFileId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, "orderVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" @@ -2923,6 +3301,12 @@ }, "documentMediaFile": { "$ref": "#/components/schemas/Media" + }, + "documentA11yMediaFile": { + "$ref": "#/components/schemas/Media" + }, + "fileType": { + "type": "string" } }, "type": "object" @@ -2932,9 +3316,7 @@ "required": [ "id", "documentTypeId", - "name", - "global", - "createdAt" + "name" ], "properties": { "id": { @@ -2942,26 +3324,33 @@ "pattern": "^[0-9a-f]{32}$" }, "documentTypeId": { + "description": "Unique identity of the document type.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "logoId": { + "description": "Unique identity of the company logo.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "name": { + "description": "Name of the document.", "type": "string" }, "filenamePrefix": { + "description": "A prefix name added to the file name separated by an underscore.", "type": "string" }, "filenameSuffix": { + "description": "A suffix name added to the file name separated by an underscore.", "type": "string" }, "global": { + "description": "When set to `true`, the document can be used across all sales channels.", "type": "boolean" }, "documentNumber": { + "description": "Unique number associated with every document.", "type": "string" }, "config": { @@ -2981,7 +3370,8 @@ "readOnly": true }, "logo": { - "$ref": "#/components/schemas/Media" + "$ref": "#/components/schemas/Media", + "description": "Logo in the document at the top-right corner." } }, "type": "object" @@ -2990,8 +3380,7 @@ "description": "Added since version: 6.0.0.0", "required": [ "id", - "documentBaseConfigId", - "createdAt" + "documentBaseConfigId" ], "properties": { "id": { @@ -2999,14 +3388,17 @@ "pattern": "^[0-9a-f]{32}$" }, "documentBaseConfigId": { + "description": "Unique identity of document's base config.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "documentTypeId": { + "description": "Unique identity of document type.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -3028,7 +3420,6 @@ "required": [ "id", "technicalName", - "createdAt", "name" ], "properties": { @@ -3040,6 +3431,7 @@ "type": "string" }, "technicalName": { + "description": "Technical name of document type.", "type": "string" }, "createdAt": { @@ -3063,9 +3455,6 @@ }, "Flow": { "description": "Added since version: 6.4.6.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -3086,9 +3475,6 @@ }, "FlowSequence": { "description": "Added since version: 6.4.6.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -3109,9 +3495,6 @@ }, "FlowTemplate": { "description": "Added since version: 6.4.18.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -3132,9 +3515,6 @@ }, "ImportExportFile": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -3155,9 +3535,6 @@ }, "ImportExportLog": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -3178,9 +3555,6 @@ }, "ImportExportProfile": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -3204,9 +3578,6 @@ }, "Integration": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -3234,7 +3605,6 @@ { "required": [ "id", - "createdAt", "name", "url" ], @@ -3295,6 +3665,7 @@ "relationships": { "properties": { "cmsPage": { + "description": "CMS page layout for the landing page", "properties": { "links": { "type": "object", @@ -3324,6 +3695,7 @@ "type": "object" }, "seoUrls": { + "description": "SEO-friendly URLs for the landing page across different sales channels", "properties": { "links": { "type": "object", @@ -3367,7 +3739,6 @@ "required": [ "apiAlias", "id", - "createdAt", "name", "url" ], @@ -3426,9 +3797,11 @@ "type": "object" }, "cmsPage": { - "$ref": "#/components/schemas/CmsPage" + "$ref": "#/components/schemas/CmsPage", + "description": "CMS page layout for the landing page" }, "seoUrls": { + "description": "SEO-friendly URLs for the landing page across different sales channels", "type": "array", "items": { "$ref": "#/components/schemas/SeoUrl" @@ -3453,8 +3826,7 @@ "required": [ "id", "localeId", - "name", - "createdAt" + "name" ], "properties": { "id": { @@ -3466,16 +3838,22 @@ "pattern": "^[0-9a-f]{32}$" }, "localeId": { + "description": "Unique identity of locale.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "translationCodeId": { + "description": "Unique identity of translation code.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "name": { + "description": "Name of the language.", "type": "string" }, + "active": { + "type": "boolean" + }, "customFields": { "type": "object" }, @@ -3492,6 +3870,7 @@ "relationships": { "properties": { "parent": { + "description": "Unique identity of language.", "properties": { "links": { "type": "object", @@ -3521,6 +3900,7 @@ "type": "object" }, "locale": { + "description": "Locale defining regional settings (date, time, number formats)", "properties": { "links": { "type": "object", @@ -3550,6 +3930,7 @@ "type": "object" }, "translationCode": { + "description": "Locale used for translating content", "properties": { "links": { "type": "object", @@ -3579,6 +3960,7 @@ "type": "object" }, "children": { + "description": "Child languages inheriting from this parent language", "properties": { "links": { "type": "object", @@ -3622,8 +4004,7 @@ "required": [ "id", "localeId", - "name", - "createdAt" + "name" ], "properties": { "id": { @@ -3635,16 +4016,22 @@ "pattern": "^[0-9a-f]{32}$" }, "localeId": { + "description": "Unique identity of locale.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "translationCodeId": { + "description": "Unique identity of translation code.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "name": { + "description": "Name of the language.", "type": "string" }, + "active": { + "type": "boolean" + }, "customFields": { "type": "object" }, @@ -3659,15 +4046,19 @@ "readOnly": true }, "parent": { - "$ref": "#/components/schemas/Language" + "$ref": "#/components/schemas/Language", + "description": "Unique identity of language." }, "locale": { - "$ref": "#/components/schemas/Locale" + "$ref": "#/components/schemas/Locale", + "description": "Locale defining regional settings (date, time, number formats)" }, "translationCode": { - "$ref": "#/components/schemas/Locale" + "$ref": "#/components/schemas/Locale", + "description": "Locale used for translating content" }, "children": { + "description": "Child languages inheriting from this parent language", "type": "array", "items": { "$ref": "#/components/schemas/Language" @@ -3681,7 +4072,6 @@ "required": [ "id", "code", - "createdAt", "name", "territory" ], @@ -3691,6 +4081,7 @@ "pattern": "^[0-9a-f]{32}$" }, "code": { + "description": "Code given to the locale. For example: en-CA.", "type": "string" }, "name": { @@ -3720,9 +4111,6 @@ }, "LogEntry": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -3744,7 +4132,6 @@ "MailHeaderFooter": { "description": "Added since version: 6.0.0.0", "required": [ - "createdAt", "name" ], "properties": { @@ -3792,7 +4179,6 @@ "MailTemplate": { "description": "Added since version: 6.0.0.0", "required": [ - "createdAt", "subject", "contentHtml", "contentPlain" @@ -3882,7 +4268,6 @@ "required": [ "id", "technicalName", - "createdAt", "name" ], "properties": { @@ -3894,6 +4279,7 @@ "type": "string" }, "technicalName": { + "description": "Technical name of mail template.", "type": "string" }, "customFields": { @@ -3926,8 +4312,7 @@ "id", "productId", "categoryId", - "salesChannelId", - "createdAt" + "salesChannelId" ], "properties": { "id": { @@ -3935,6 +4320,7 @@ "pattern": "^[0-9a-f]{32}$" }, "productId": { + "description": "Unique identity of the product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -3943,6 +4329,7 @@ "pattern": "^[0-9a-f]{32}$" }, "categoryId": { + "description": "Unique identity of the category.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -3951,6 +4338,7 @@ "pattern": "^[0-9a-f]{32}$" }, "salesChannelId": { + "description": "Unique identity of the sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -3975,8 +4363,7 @@ "id", "productId", "categoryId", - "salesChannelId", - "createdAt" + "salesChannelId" ], "properties": { "id": { @@ -3984,6 +4371,7 @@ "pattern": "^[0-9a-f]{32}$" }, "productId": { + "description": "Unique identity of the product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -3992,6 +4380,7 @@ "pattern": "^[0-9a-f]{32}$" }, "categoryId": { + "description": "Unique identity of the category.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -4000,9 +4389,93 @@ "pattern": "^[0-9a-f]{32}$" }, "salesChannelId": { + "description": "Unique identity of the sales channel.", + "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" + }, + "MeasurementDisplayUnit": { + "description": "Added since version: 6.7.1.0", + "required": [ + "id", + "measurementSystemId", + "default", + "type", + "shortName", + "factor", + "precision" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "measurementSystemId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "default": { + "type": "boolean" + }, + "type": { + "type": "string" + }, + "shortName": { + "type": "string" + }, + "factor": { + "type": "number", + "format": "float" + }, + "precision": { + "type": "integer", + "format": "int64" + }, + "createdAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "updatedAt": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "translated": { + "type": "object" + }, + "measurementSystem": { + "$ref": "#/components/schemas/MeasurementSystem" + } + }, + "type": "object" + }, + "MeasurementSystem": { + "description": "Added since version: 6.7.1.0", + "required": [ + "id", + "technicalName" + ], + "properties": { + "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "technicalName": { + "type": "string" + }, "createdAt": { "type": "string", "format": "date-time", @@ -4012,6 +4485,15 @@ "type": "string", "format": "date-time", "readOnly": true + }, + "translated": { + "type": "object" + }, + "units": { + "type": "array", + "items": { + "$ref": "#/components/schemas/MeasurementDisplayUnit" + } } }, "type": "object" @@ -4026,8 +4508,7 @@ "path", "private", "url", - "id", - "createdAt" + "id" ], "properties": { "id": { @@ -4035,30 +4516,42 @@ "pattern": "^[0-9a-f]{32}$" }, "mimeType": { - "type": "string", - "readOnly": true + "description": "A string sent along with a file indicating the type of the file. For example: image/jpeg.", + "type": "string" }, "fileExtension": { - "type": "string", - "readOnly": true + "description": "Type of file indication. For example: jpeg, png.", + "type": "string" }, "uploadedAt": { + "description": "Date and time at which media was added.", "type": "string", "format": "date-time", "readOnly": true }, "fileName": { - "type": "string", - "readOnly": true + "description": "Name of the media file uploaded.", + "type": "string" }, "fileSize": { + "description": "Size of the file media file uploaded.", "type": "integer", "format": "int64", "readOnly": true }, "metaData": { "type": "object", - "readOnly": true + "readOnly": true, + "properties": { + "height": { + "type": "integer", + "format": "int64" + }, + "width": { + "type": "integer", + "format": "int64" + } + } }, "config": { "type": "object" @@ -4081,6 +4574,7 @@ "type": "boolean" }, "private": { + "description": "When `true`, the media display is kept private.", "type": "boolean" }, "customFields": { @@ -4100,6 +4594,7 @@ "type": "object" }, "thumbnails": { + "description": "Generated thumbnail images in various sizes", "type": "array", "items": { "$ref": "#/components/schemas/MediaThumbnail" @@ -4116,9 +4611,6 @@ }, "MediaDefaultFolder": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -4139,9 +4631,6 @@ }, "MediaFolder": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -4162,9 +4651,6 @@ }, "MediaFolderConfiguration": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -4218,8 +4704,7 @@ "id", "mediaId", "width", - "height", - "createdAt" + "height" ], "properties": { "id": { @@ -4227,21 +4712,28 @@ "pattern": "^[0-9a-f]{32}$" }, "mediaId": { + "description": "Unique identity of media.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "mediaThumbnailSizeId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, "width": { + "description": "Width of the thumbnail.", "type": "integer", "format": "int64", "readOnly": true }, "height": { + "description": "Height of the thumbnail.", "type": "integer", "format": "int64", "readOnly": true }, "url": { - "description": "Runtime field, cannot be used as part of the criteria.", + "description": "Public url of media thumbnail. Runtime field, cannot be used as part of the criteria.", "type": "string" }, "path": { @@ -4268,8 +4760,7 @@ "required": [ "id", "width", - "height", - "createdAt" + "height" ], "properties": { "id": { @@ -4277,10 +4768,12 @@ "pattern": "^[0-9a-f]{32}$" }, "width": { + "description": "Width of the thumbnail.", "type": "integer", "format": "int64" }, "height": { + "description": "Height of the thumbnail.", "type": "integer", "format": "int64" }, @@ -4307,9 +4800,6 @@ "$ref": "#/components/schemas/resource" }, { - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -4332,9 +4822,6 @@ }, "NewsletterRecipient": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -4355,9 +4842,6 @@ }, "Notification": { "description": "Added since version: 6.4.7.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -4379,7 +4863,6 @@ "NumberRange": { "description": "Added since version: 6.0.0.0", "required": [ - "createdAt", "name" ], "properties": { @@ -4405,9 +4888,6 @@ }, "NumberRangeSalesChannel": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -4428,9 +4908,6 @@ }, "NumberRangeState": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -4452,7 +4929,6 @@ "NumberRangeType": { "description": "Added since version: 6.0.0.0", "required": [ - "createdAt", "typeName" ], "properties": { @@ -4482,14 +4958,14 @@ "documents", "orderDate", "stateMachineState", + "price", "id", "billingAddressId", "currencyId", "languageId", "salesChannelId", "orderDateTime", - "currencyFactor", - "createdAt" + "currencyFactor" ], "properties": { "id": { @@ -4501,9 +4977,11 @@ "pattern": "^[0-9a-f]{32}$" }, "orderNumber": { + "description": "Unique number associated with every order.", "type": "string" }, "billingAddressId": { + "description": "Unique identity of the billing address.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -4511,23 +4989,44 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "primaryOrderDeliveryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "primaryOrderDeliveryVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "primaryOrderTransactionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "primaryOrderTransactionVersionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, "currencyId": { + "description": "Unique identity of the currency.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "languageId": { + "description": "Unique identity of the language.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "salesChannelId": { + "description": "Unique identity of the sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "orderDateTime": { + "description": "Timestamp when the order was placed.", "type": "string", "format": "date-time" }, "orderDate": { + "description": "Date when the order was placed.", "type": "string", "readOnly": true }, @@ -4566,24 +5065,29 @@ "type": "string" } }, - "type": "object" + "type": "object", + "$ref": "#/components/schemas/CalculatedPrice" }, "amountTotal": { + "description": "Gross price of the order.", "type": "number", "format": "float", "readOnly": true }, "amountNet": { + "description": "Net price of the order.", "type": "number", "format": "float", "readOnly": true }, "positionPrice": { + "description": "Price of each line item in the cart multiplied by its quantity excluding charges like shipping cost, rules, taxes etc.", "type": "number", "format": "float", "readOnly": true }, "taxStatus": { + "description": "TaxStatus takes `Free`, `Net` or `Gross` as values.", "type": "string", "readOnly": true }, @@ -4645,37 +5149,49 @@ "type": "object" }, "shippingTotal": { + "description": "Total shipping cost of the ordered product.", "type": "number", "format": "float", "readOnly": true }, "currencyFactor": { + "description": "Rate at which currency is exchanged.", "type": "number", "format": "float" }, "deepLinkCode": { + "description": "It is a generated special code linked to email. It is used to access orders placed by guest customers.", "type": "string" }, "affiliateCode": { + "description": "An affiliate code is an identification option with which website operators can mark outgoing links.", "type": "string" }, "campaignCode": { + "description": "A campaign code is the globally unique identifier for a campaign.", "type": "string" }, "customerComment": { + "description": "Comments given by comments.", "type": "string" }, "source": { + "description": "Source of orders either via normal order placement or subscriptions.", + "type": "string" + }, + "taxCalculationType": { "type": "string" }, "customFields": { "type": "object" }, "createdById": { + "description": "Unique identity of createdBy.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "updatedById": { + "description": "Unique identity of updatedBy.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -4690,51 +5206,70 @@ "readOnly": true }, "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" + "$ref": "#/components/schemas/StateMachineState", + "description": "Current order state (e.g., open, in_progress, completed, cancelled)" + }, + "primaryOrderDelivery": { + "$ref": "#/components/schemas/OrderDelivery", + "description": "Primary delivery information for the order" + }, + "primaryOrderTransaction": { + "$ref": "#/components/schemas/OrderTransaction", + "description": "Primary payment transaction for the order" }, "orderCustomer": { - "$ref": "#/components/schemas/OrderCustomer" + "$ref": "#/components/schemas/OrderCustomer", + "description": "Customer information associated with the order" }, "currency": { - "$ref": "#/components/schemas/Currency" + "$ref": "#/components/schemas/Currency", + "description": "Currency used for the order" }, "language": { - "$ref": "#/components/schemas/Language" + "$ref": "#/components/schemas/Language", + "description": "Language used when placing the order" }, "addresses": { + "description": "All addresses associated with the order (billing and shipping)", "type": "array", "items": { "$ref": "#/components/schemas/OrderAddress" } }, "billingAddress": { - "$ref": "#/components/schemas/OrderAddress" + "$ref": "#/components/schemas/OrderAddress", + "description": "Billing address for the order" }, "deliveries": { + "description": "Delivery information including shipping address and tracking", "type": "array", "items": { "$ref": "#/components/schemas/OrderDelivery" } }, "lineItems": { + "description": "Order line items (products, discounts, fees)", "type": "array", "items": { "$ref": "#/components/schemas/OrderLineItem" } }, "transactions": { + "description": "Payment transactions for the order", "type": "array", "items": { "$ref": "#/components/schemas/OrderTransaction" } }, "documents": { + "description": "Generated documents (invoices, delivery notes, credit notes)", "type": "array", "items": { "$ref": "#/components/schemas/Document" } }, "tags": { + "description": "Tags assigned to the order for organization and filtering", "type": "array", "items": { "$ref": "#/components/schemas/Tag" @@ -4751,8 +5286,7 @@ "firstName", "lastName", "street", - "city", - "createdAt" + "city" ], "properties": { "id": { @@ -4764,47 +5298,65 @@ "pattern": "^[0-9a-f]{32}$" }, "countryId": { + "description": "Unique identity of country.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "countryStateId": { + "description": "Unique identity of state.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "firstName": { + "description": "First name of the customer.", "type": "string" }, "lastName": { + "description": "Last name of the customer.", "type": "string" }, "street": { + "description": "Street address", "type": "string" }, "zipcode": { + "description": "Zip code of the country.", "type": "string" }, "city": { + "description": "Name of the city.", "type": "string" }, "company": { + "description": "Name of the company.", "type": "string" }, "department": { + "description": "Name of the department.", "type": "string" }, "title": { + "description": "Title name given to customer like DR. , Prof., etc.", "type": "string" }, "vatId": { + "description": "Unique identity of VAT.", "type": "string" }, "phoneNumber": { + "description": "Phone number of the customer.", "type": "string" }, "additionalAddressLine1": { + "description": "Additional address input if necessary.", "type": "string" }, "additionalAddressLine2": { + "description": "Additional address input if necessary.", + "type": "string" + }, + "hash": { + "description": "Runtime field, cannot be used as part of the criteria.", "type": "string" }, "customFields": { @@ -4838,8 +5390,7 @@ "id", "email", "firstName", - "lastName", - "createdAt" + "lastName" ], "properties": { "id": { @@ -4851,22 +5402,28 @@ "pattern": "^[0-9a-f]{32}$" }, "email": { + "description": "Email address of the customer.", "type": "string" }, "salutationId": { + "description": "Unique identity of salutation.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "firstName": { + "description": "First name of the customer.", "type": "string" }, "lastName": { + "description": "Last name of the customer.", "type": "string" }, "company": { + "description": "Name of the company.", "type": "string" }, "title": { + "description": "Title name given to the customer like Dr, prof. etc.", "type": "string" }, "vatIds": { @@ -4876,6 +5433,7 @@ } }, "customerNumber": { + "description": "Unique number assigned to the customer.", "type": "string" }, "customFields": { @@ -4905,10 +5463,8 @@ "shippingOrderAddressId", "shippingMethodId", "stateId", - "trackingCodes", "shippingDateEarliest", - "shippingDateLatest", - "createdAt" + "shippingDateLatest" ], "properties": { "id": { @@ -4920,6 +5476,7 @@ "pattern": "^[0-9a-f]{32}$" }, "orderId": { + "description": "Unique identity of order.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -4928,6 +5485,7 @@ "pattern": "^[0-9a-f]{32}$" }, "shippingOrderAddressId": { + "description": "Unique identity of order's shipping address.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -4936,10 +5494,12 @@ "pattern": "^[0-9a-f]{32}$" }, "shippingMethodId": { + "description": "Unique identity of shipping method.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "stateId": { + "description": "Unique identity of state.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -4950,10 +5510,12 @@ } }, "shippingDateEarliest": { + "description": "Date and time of earliest delivery of products.", "type": "string", "format": "date-time" }, "shippingDateLatest": { + "description": "Date and time of latest delivery of products.", "type": "string", "format": "date-time" }, @@ -5028,15 +5590,19 @@ "readOnly": true }, "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" + "$ref": "#/components/schemas/StateMachineState", + "description": "Current delivery state (e.g., open, shipped, delivered, cancelled)" }, "shippingOrderAddress": { - "$ref": "#/components/schemas/OrderAddress" + "$ref": "#/components/schemas/OrderAddress", + "description": "Shipping address for this delivery" }, "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" + "$ref": "#/components/schemas/ShippingMethod", + "description": "Shipping method used for this delivery" }, "positions": { + "description": "Line items included in this delivery", "type": "array", "items": { "$ref": "#/components/schemas/OrderDeliveryPosition" @@ -5050,8 +5616,7 @@ "required": [ "id", "orderDeliveryId", - "orderLineItemId", - "createdAt" + "orderLineItemId" ], "properties": { "id": { @@ -5063,6 +5628,7 @@ "pattern": "^[0-9a-f]{32}$" }, "orderDeliveryId": { + "description": "Unique identity of order delivery.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5071,6 +5637,7 @@ "pattern": "^[0-9a-f]{32}$" }, "orderLineItemId": { + "description": "Unique identity of line items in an order.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5136,14 +5703,17 @@ "type": "object" }, "unitPrice": { + "description": "Price of product per item (where, quantity=1).", "type": "number", "format": "float" }, "totalPrice": { + "description": "Cost of product based on quantity.", "type": "number", "format": "float" }, "quantity": { + "description": "Number of items of each product.", "type": "integer", "format": "int64" }, @@ -5172,10 +5742,8 @@ "identifier", "quantity", "label", - "position", - "states", "children", - "createdAt" + "states" ], "properties": { "id": { @@ -5187,6 +5755,7 @@ "pattern": "^[0-9a-f]{32}$" }, "orderId": { + "description": "Unique identity of order.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5195,6 +5764,7 @@ "pattern": "^[0-9a-f]{32}$" }, "productId": { + "description": "Unique identity of product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5203,6 +5773,7 @@ "pattern": "^[0-9a-f]{32}$" }, "promotionId": { + "description": "Unique identity of product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5215,20 +5786,25 @@ "pattern": "^[0-9a-f]{32}$" }, "coverId": { + "description": "Unique identity of cover image.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "identifier": { + "description": "It is a unique identity of an item in cart before its converted to an order.", "type": "string" }, "referencedId": { + "description": "Unique identity of type of entity.", "type": "string" }, "quantity": { + "description": "Number of items of product.", "type": "integer", "format": "int64" }, "label": { + "description": "It is a typical product name given to the line item.", "type": "string" }, "payload": { @@ -5325,49 +5901,61 @@ "taxId": { "type": "string", "pattern": "^[0-9a-f]{32}$" + }, + "productType": { + "$ref": "#/components/schemas/Product/properties/type" } } }, "good": { + "description": "When set to true, it indicates the line item is physical else it is virtual.", "type": "boolean" }, "removable": { + "description": "Allows the line item to be removable from the cart when set to true.", "type": "boolean" }, "stackable": { + "description": "Allows to change the quantity of the line item when set to true.", "type": "boolean" }, "position": { + "description": "Position of line items placed in an order.", "type": "integer", "format": "int64" }, - "states": { - "type": "array", - "items": { - "type": "string" - } - }, "priceDefinition": { "type": "object", "$ref": "#/components/schemas/CartPriceQuantity" }, "unitPrice": { + "description": "Price of product per item (where, quantity=1).", "type": "number", "format": "float" }, "totalPrice": { + "description": "Cost of product based on quantity.", "type": "number", "format": "float" }, "description": { + "description": "Description of line items in an order.", "type": "string" }, "type": { + "description": "Type refers to the entity type of an item whether it is product or promotion for instance.", "type": "string" }, "customFields": { "type": "object" }, + "states": { + "type": "array", + "items": { + "type": "string" + }, + "deprecated": true + }, "createdAt": { "type": "string", "format": "date-time", @@ -5379,15 +5967,22 @@ "readOnly": true }, "cover": { - "$ref": "#/components/schemas/Media" + "$ref": "#/components/schemas/Media", + "description": "Line item image or thumbnail" + }, + "product": { + "$ref": "#/components/schemas/Product", + "description": "Referenced product if this is a product line item" }, "orderDeliveryPositions": { + "description": "Delivery positions for this line item", "type": "array", "items": { "$ref": "#/components/schemas/OrderDeliveryPosition" } }, "downloads": { + "description": "Digital downloads associated with this line item", "type": "array", "items": { "$ref": "#/components/schemas/OrderLineItemDownload" @@ -5425,8 +6020,7 @@ "orderLineItemId", "mediaId", "position", - "accessGranted", - "createdAt" + "accessGranted" ], "properties": { "id": { @@ -5438,6 +6032,7 @@ "pattern": "^[0-9a-f]{32}$" }, "orderLineItemId": { + "description": "Unique identity of Order line item.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5446,14 +6041,17 @@ "pattern": "^[0-9a-f]{32}$" }, "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "position": { + "description": "The order of downloaded digital products displayed in the storefront by mentioning numerical values like 1,2,3, etc.", "type": "integer", "format": "int64" }, "accessGranted": { + "description": "When boolean value is `true`, the digital product is allowed to download.", "type": "boolean" }, "customFields": { @@ -5517,8 +6115,7 @@ "orderId", "paymentMethodId", "amount", - "stateId", - "createdAt" + "stateId" ], "properties": { "id": { @@ -5530,6 +6127,7 @@ "pattern": "^[0-9a-f]{32}$" }, "orderId": { + "description": "Unique identity of an order.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5538,6 +6136,7 @@ "pattern": "^[0-9a-f]{32}$" }, "paymentMethodId": { + "description": "Unique identity of payment method.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5602,6 +6201,7 @@ "type": "object" }, "stateId": { + "description": "Unique identity of state.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5619,12 +6219,15 @@ "readOnly": true }, "stateMachineState": { - "$ref": "#/components/schemas/StateMachineState" + "$ref": "#/components/schemas/StateMachineState", + "description": "Current payment transaction state (e.g., open, paid, cancelled)" }, "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" + "$ref": "#/components/schemas/PaymentMethod", + "description": "Payment method used for this transaction" }, "captures": { + "description": "Payment captures for this transaction", "type": "array", "items": { "$ref": "#/components/schemas/OrderTransactionCapture" @@ -5639,8 +6242,7 @@ "id", "orderTransactionId", "stateId", - "amount", - "createdAt" + "amount" ], "properties": { "id": { @@ -5652,6 +6254,7 @@ "pattern": "^[0-9a-f]{32}$" }, "orderTransactionId": { + "description": "Unique identity of order transaction.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5660,10 +6263,12 @@ "pattern": "^[0-9a-f]{32}$" }, "stateId": { + "description": "Unique identity of order state.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "externalReference": { + "description": "External payment provider token.", "type": "string" }, "amount": { @@ -5757,8 +6362,7 @@ "id", "captureId", "stateId", - "amount", - "createdAt" + "amount" ], "properties": { "id": { @@ -5770,6 +6374,7 @@ "pattern": "^[0-9a-f]{32}$" }, "captureId": { + "description": "Unique identity of order transaction capture.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5778,13 +6383,16 @@ "pattern": "^[0-9a-f]{32}$" }, "stateId": { + "description": "Unique identity of order state.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "externalReference": { + "description": "External payment provider token.", "type": "string" }, "reason": { + "description": "Reason for refunding the amount for an order.", "type": "string" }, "amount": { @@ -5878,8 +6486,7 @@ "id", "refundId", "orderLineItemId", - "amount", - "createdAt" + "amount" ], "properties": { "id": { @@ -5891,6 +6498,7 @@ "pattern": "^[0-9a-f]{32}$" }, "refundId": { + "description": "Unique identity of order transaction capture refund.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5899,6 +6507,7 @@ "pattern": "^[0-9a-f]{32}$" }, "orderLineItemId": { + "description": "Unique identity of order line item.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -5907,12 +6516,15 @@ "pattern": "^[0-9a-f]{32}$" }, "externalReference": { + "description": "External payment provider token.", "type": "string" }, "reason": { + "description": "Reason for refunding the amount for an order.", "type": "string" }, "quantity": { + "description": "Quantity of line item to be refunded.", "type": "integer", "format": "int64" }, @@ -6004,7 +6616,7 @@ { "required": [ "id", - "createdAt", + "technicalName", "name" ], "properties": { @@ -6023,54 +6635,33 @@ "type": "string" }, "position": { + "description": "The order of the tabs of your defined payment methods in the storefront by entering numerical values like 1,2,3, etc.", "type": "integer", "format": "int64" }, "active": { + "description": "When boolean value is `true`, the payment methods are available for selection in the storefront.", "type": "boolean" }, "afterOrderEnabled": { + "description": "When set to true, customers are redirected to the payment options page to choose a new payment method on order failure.", "type": "boolean" }, "customFields": { "type": "object" }, "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "synchronous": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean", - "readOnly": true - }, - "asynchronous": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean", - "readOnly": true - }, - "prepared": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean", - "readOnly": true - }, - "refundable": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean", - "readOnly": true - }, - "recurring": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean", - "readOnly": true + "technicalName": { + "type": "string" }, "shortName": { "description": "Runtime field, cannot be used as part of the criteria.", "type": "string" }, - "technicalName": { - "type": "string" - }, "createdAt": { "type": "string", "format": "date-time", @@ -6087,6 +6678,7 @@ "relationships": { "properties": { "media": { + "description": "Payment method logo or icon image", "properties": { "links": { "type": "object", @@ -6127,7 +6719,7 @@ "description": "Added since version: 6.0.0.0", "required": [ "id", - "createdAt", + "technicalName", "name" ], "properties": { @@ -6146,54 +6738,33 @@ "type": "string" }, "position": { + "description": "The order of the tabs of your defined payment methods in the storefront by entering numerical values like 1,2,3, etc.", "type": "integer", "format": "int64" }, "active": { + "description": "When boolean value is `true`, the payment methods are available for selection in the storefront.", "type": "boolean" }, "afterOrderEnabled": { + "description": "When set to true, customers are redirected to the payment options page to choose a new payment method on order failure.", "type": "boolean" }, "customFields": { "type": "object" }, "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, - "synchronous": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean", - "readOnly": true - }, - "asynchronous": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean", - "readOnly": true - }, - "prepared": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean", - "readOnly": true - }, - "refundable": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean", - "readOnly": true - }, - "recurring": { - "description": "Runtime field, cannot be used as part of the criteria.", - "type": "boolean", - "readOnly": true + "technicalName": { + "type": "string" }, "shortName": { "description": "Runtime field, cannot be used as part of the criteria.", "type": "string" }, - "technicalName": { - "type": "string" - }, "createdAt": { "type": "string", "format": "date-time", @@ -6208,7 +6779,8 @@ "type": "object" }, "media": { - "$ref": "#/components/schemas/Media" + "$ref": "#/components/schemas/Media", + "description": "Payment method logo or icon image" } }, "type": "object" @@ -6216,7 +6788,6 @@ "Plugin": { "description": "Added since version: 6.0.0.0", "required": [ - "createdAt", "label" ], "properties": { @@ -6244,35 +6815,74 @@ "description": "Added since version: 6.0.0.0", "allOf": [ { - "$ref": "#/components/schemas/resource" - }, - { + "$ref": "#/components/schemas/resource", "required": [ - "id", - "taxId", - "productNumber", - "stock", - "createdAt", - "name" + "options" ], "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "versionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "parentId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "options": { + "type": "array", + "items": { + "type": "object", + "required": [ + "group", + "option", + "translated" + ], + "properties": { + "group": { + "type": "string" + }, + "option": { + "type": "string" + }, + "translated": { + "type": "object", + "properties": { + "group": { + "type": "string" + }, + "option": { + "type": "string" + } + }, + "required": [ + "group", + "option" + ] + } + } + } + } + } + }, + { + "required": [ + "id", + "taxId", + "productNumber", + "stock", + "name" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "versionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "parentId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, "parentVersionId": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, "manufacturerId": { + "description": "Unique identity of the manufacturer.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -6281,14 +6891,17 @@ "pattern": "^[0-9a-f]{32}$" }, "unitId": { + "description": "Unique identity of the unit.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "taxId": { + "description": "Unique identity of tax.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "coverId": { + "description": "Unique identity of a ProductMedia item used as product cover.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -6297,10 +6910,12 @@ "pattern": "^[0-9a-f]{32}$" }, "deliveryTimeId": { + "description": "Unique identity of delivery time.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "canonicalProductId": { + "description": "Unique identity of canonical product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -6309,6 +6924,7 @@ "pattern": "^[0-9a-f]{32}$" }, "cmsPageId": { + "description": "Unique identity of CMS page.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -6317,88 +6933,111 @@ "pattern": "^[0-9a-f]{32}$" }, "productNumber": { + "description": "Unique number assigned to individual products. Define rules for automatic assignment of every product creation as per your number range.", "type": "string" }, "restockTime": { + "description": "The restock time in days indicates how long it will take until a sold out item is back in stock.", "type": "integer", "format": "int64" }, "active": { + "description": "When boolean value is `true`, the products are available for selection in the storefront for purchase.", "type": "boolean" }, "available": { + "description": "Indicates weather the product is available or not.", "type": "boolean", "readOnly": true }, "isCloseout": { + "description": "When the value is set to true, the product is hidden when sold out.", "type": "boolean" }, "availableStock": { + "description": "Indicates the number of products still available. This value results from the stock minus the open orders.", "type": "integer", "format": "int64", "readOnly": true }, "stock": { + "description": "Indicates the number of products available.", "type": "integer", "format": "int64" }, "displayGroup": { + "description": "Runtime field, cannot be used as part of the criteria.", "type": "string", "readOnly": true }, "manufacturerNumber": { + "description": "Unique number that describes the manufacturer.", "type": "string" }, "ean": { + "description": "Indicates EAN of the product.", "type": "string" }, "purchaseSteps": { + "description": "Specifies the scales in which the item is to be offered. For example, a scale of 2 means that your customers can purchase 2, 4, 6 products, etc., but not 1, 3 or 5.", "type": "integer", "format": "int64" }, "maxPurchase": { + "description": "Maximum number of items that can be purchased.", "type": "integer", "format": "int64" }, "minPurchase": { + "description": "Minimum number of items that can be purchased.", "type": "integer", "format": "int64" }, "purchaseUnit": { + "description": "Quantity of the item purchased. For example, 500ml, 2kg, etc.", "type": "number", "format": "float" }, "referenceUnit": { + "description": "Price of purchased item calculated as per the reference unit. Say, you bought 500ml of milk and the price is calculated in reference to 1000ml.", "type": "number", "format": "float" }, "shippingFree": { + "description": "Indicates weather the shipping price is free or not.", "type": "boolean" }, "markAsTopseller": { + "description": "Indicates weather the product is top seller or not.", "type": "boolean" }, "weight": { + "description": "The weight of the product.", "type": "number", "format": "float" }, "width": { + "description": "The width of the product.", "type": "number", "format": "float" }, "height": { + "description": "The height of the product.", "type": "number", "format": "float" }, "length": { + "description": "The length of the product.", "type": "number", "format": "float" }, "releaseDate": { + "description": "The release date of a product or product model. This can be used to distinguish the exact variant of a product.", "type": "string", "format": "date-time" }, "ratingAverage": { + "description": "Average of all the ratings.", "type": "number", "format": "float", "readOnly": true @@ -6457,17 +7096,11 @@ "readOnly": true }, "sales": { + "description": "Frequency of the product sales.", "type": "integer", "format": "int64", "readOnly": true }, - "states": { - "type": "array", - "items": { - "type": "string" - }, - "readOnly": true - }, "metaDescription": { "type": "string" }, @@ -6492,6 +7125,18 @@ "customFields": { "type": "object" }, + "type": { + "description": "The type of the product, e.g., physical or digital.", + "type": "string" + }, + "states": { + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true, + "deprecated": true + }, "calculatedPrice": { "type": "object" }, @@ -6517,6 +7162,9 @@ "sortedProperties": { "type": "object" }, + "measurements": { + "type": "object" + }, "createdAt": { "type": "string", "format": "date-time", @@ -6567,6 +7215,7 @@ "relationships": { "properties": { "downloads": { + "description": "Downloadable files associated with the product (e.g., manuals, digital content)", "properties": { "links": { "type": "object", @@ -6598,6 +7247,7 @@ "type": "object" }, "parent": { + "description": "Unique identity of the product.", "properties": { "links": { "type": "object", @@ -6627,6 +7277,7 @@ "type": "object" }, "children": { + "description": "Product variants that inherit from this parent product", "properties": { "links": { "type": "object", @@ -6658,6 +7309,7 @@ "type": "object" }, "deliveryTime": { + "description": "Estimated delivery time for the product", "properties": { "links": { "type": "object", @@ -6687,6 +7339,7 @@ "type": "object" }, "tax": { + "description": "Tax configuration (rate and calculation rules)", "properties": { "links": { "type": "object", @@ -6716,6 +7369,7 @@ "type": "object" }, "manufacturer": { + "description": "Product manufacturer or brand information", "properties": { "links": { "type": "object", @@ -6745,6 +7399,7 @@ "type": "object" }, "unit": { + "description": "Product unit of measure (e.g., piece, liter, kg)", "properties": { "links": { "type": "object", @@ -6774,6 +7429,7 @@ "type": "object" }, "cover": { + "description": "Main product image displayed in listings and detail pages", "properties": { "links": { "type": "object", @@ -6803,6 +7459,7 @@ "type": "object" }, "cmsPage": { + "description": "Custom CMS page layout for the product detail page", "properties": { "links": { "type": "object", @@ -6832,6 +7489,7 @@ "type": "object" }, "canonicalProduct": { + "description": "Canonical product reference for variant consolidation and SEO purposes", "properties": { "links": { "type": "object", @@ -6861,6 +7519,7 @@ "type": "object" }, "media": { + "description": "Product images and media gallery", "properties": { "links": { "type": "object", @@ -6892,6 +7551,7 @@ "type": "object" }, "crossSellings": { + "description": "Cross-selling configurations (related products, accessories, similar items)", "properties": { "links": { "type": "object", @@ -6923,6 +7583,7 @@ "type": "object" }, "configuratorSettings": { + "description": "Variant configurator settings defining available options for product variants", "properties": { "links": { "type": "object", @@ -6954,6 +7615,7 @@ "type": "object" }, "productReviews": { + "description": "Customer reviews and ratings for the product", "properties": { "links": { "type": "object", @@ -6985,6 +7647,7 @@ "type": "object" }, "mainCategories": { + "description": "Primary category assignments per sales channel for SEO and navigation", "properties": { "links": { "type": "object", @@ -7016,6 +7679,7 @@ "type": "object" }, "seoUrls": { + "description": "SEO-friendly URLs for the product across different sales channels", "properties": { "links": { "type": "object", @@ -7047,6 +7711,7 @@ "type": "object" }, "options": { + "description": "Product variant options (e.g., size, color) that define different variants", "properties": { "links": { "type": "object", @@ -7078,6 +7743,7 @@ "type": "object" }, "properties": { + "description": "Product properties and characteristics for filtering", "properties": { "links": { "type": "object", @@ -7109,6 +7775,7 @@ "type": "object" }, "categories": { + "description": "Categories this product is assigned to", "properties": { "links": { "type": "object", @@ -7140,6 +7807,7 @@ "type": "object" }, "streams": { + "description": "Dynamic product streams this product belongs to based on defined filters", "properties": { "links": { "type": "object", @@ -7171,6 +7839,7 @@ "type": "object" }, "categoriesRo": { + "description": "Read-only category tree including all parent categories for optimized queries", "properties": { "links": { "type": "object", @@ -7202,6 +7871,7 @@ "type": "object" }, "tags": { + "description": "Tags for organizing and filtering products", "properties": { "links": { "type": "object", @@ -7233,6 +7903,7 @@ "type": "object" }, "seoCategory": { + "description": "Main category used for SEO URL generation in the current sales channel", "properties": { "links": { "type": "object", @@ -7276,11 +7947,12 @@ "calculatedPrice", "calculatedPrices", "seoCategory", + "type", + "translated", "id", "taxId", "productNumber", "stock", - "createdAt", "name" ], "properties": { @@ -7301,6 +7973,7 @@ "pattern": "^[0-9a-f]{32}$" }, "manufacturerId": { + "description": "Unique identity of the manufacturer.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -7309,14 +7982,17 @@ "pattern": "^[0-9a-f]{32}$" }, "unitId": { + "description": "Unique identity of the unit.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "taxId": { + "description": "Unique identity of tax.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "coverId": { + "description": "Unique identity of a ProductMedia item used as product cover.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -7325,10 +8001,12 @@ "pattern": "^[0-9a-f]{32}$" }, "deliveryTimeId": { + "description": "Unique identity of delivery time.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "canonicalProductId": { + "description": "Unique identity of canonical product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -7337,6 +8015,7 @@ "pattern": "^[0-9a-f]{32}$" }, "cmsPageId": { + "description": "Unique identity of CMS page.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -7345,88 +8024,111 @@ "pattern": "^[0-9a-f]{32}$" }, "productNumber": { + "description": "Unique number assigned to individual products. Define rules for automatic assignment of every product creation as per your number range.", "type": "string" }, "restockTime": { + "description": "The restock time in days indicates how long it will take until a sold out item is back in stock.", "type": "integer", "format": "int64" }, "active": { + "description": "When boolean value is `true`, the products are available for selection in the storefront for purchase.", "type": "boolean" }, "available": { + "description": "Indicates weather the product is available or not.", "type": "boolean", "readOnly": true }, "isCloseout": { + "description": "When the value is set to true, the product is hidden when sold out.", "type": "boolean" }, "availableStock": { + "description": "Indicates the number of products still available. This value results from the stock minus the open orders.", "type": "integer", "format": "int64", "readOnly": true }, "stock": { + "description": "Indicates the number of products available.", "type": "integer", "format": "int64" }, "displayGroup": { + "description": "Runtime field, cannot be used as part of the criteria.", "type": "string", "readOnly": true }, "manufacturerNumber": { + "description": "Unique number that describes the manufacturer.", "type": "string" }, "ean": { + "description": "Indicates EAN of the product.", "type": "string" }, "purchaseSteps": { + "description": "Specifies the scales in which the item is to be offered. For example, a scale of 2 means that your customers can purchase 2, 4, 6 products, etc., but not 1, 3 or 5.", "type": "integer", "format": "int64" }, "maxPurchase": { + "description": "Maximum number of items that can be purchased.", "type": "integer", "format": "int64" }, "minPurchase": { + "description": "Minimum number of items that can be purchased.", "type": "integer", "format": "int64" }, "purchaseUnit": { + "description": "Quantity of the item purchased. For example, 500ml, 2kg, etc.", "type": "number", "format": "float" }, "referenceUnit": { + "description": "Price of purchased item calculated as per the reference unit. Say, you bought 500ml of milk and the price is calculated in reference to 1000ml.", "type": "number", "format": "float" }, "shippingFree": { + "description": "Indicates weather the shipping price is free or not.", "type": "boolean" }, "markAsTopseller": { + "description": "Indicates weather the product is top seller or not.", "type": "boolean" }, "weight": { + "description": "The weight of the product.", "type": "number", "format": "float" }, "width": { + "description": "The width of the product.", "type": "number", "format": "float" }, "height": { + "description": "The height of the product.", "type": "number", "format": "float" }, "length": { + "description": "The length of the product.", "type": "number", "format": "float" }, "releaseDate": { + "description": "The release date of a product or product model. This can be used to distinguish the exact variant of a product.", "type": "string", "format": "date-time" }, "ratingAverage": { + "description": "Average of all the ratings.", "type": "number", "format": "float", "readOnly": true @@ -7485,17 +8187,11 @@ "readOnly": true }, "sales": { + "description": "Frequency of the product sales.", "type": "integer", "format": "int64", "readOnly": true }, - "states": { - "type": "array", - "items": { - "type": "string" - }, - "readOnly": true - }, "metaDescription": { "type": "string" }, @@ -7520,6 +8216,22 @@ "customFields": { "type": "object" }, + "type": { + "description": "The type of the product, e.g., physical or digital.", + "type": "string", + "enum": [ + "physical", + "digital" + ] + }, + "states": { + "type": "array", + "items": { + "type": "string" + }, + "readOnly": true, + "deprecated": true + }, "calculatedPrice": { "type": "object", "$ref": "#/components/schemas/CalculatedPrice" @@ -7543,43 +8255,39 @@ }, "calculatedCheapestPrice": { "type": "object", - "allOf": [ - { - "$ref": "#/components/schemas/CalculatedPrice" + "properties": { + "unitPrice": { + "type": "number" }, - { - "type": "object", - "properties": { - "unitPrice": { - "type": "number" - }, - "quantity": { - "type": "number" - }, - "totalPrice": { - "type": "number" - }, - "referencePrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartPriceReference" - }, - { - "type": "null" - } - ] + "quantity": { + "type": "number" + }, + "totalPrice": { + "type": "number" + }, + "referencePrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/ReferencePrice" }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" - } - ] + { + "type": "null" + } + ] + }, + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/ListPrice" }, - "regulationPrice": { + { + "type": "null" + } + ] + }, + "regulationPrice": { + "oneOf": [ + { "type": "object", "properties": { "price": { @@ -7588,26 +8296,34 @@ }, "required": [ "price" - ], - "nullable": true - }, - "hasRange": { - "type": "boolean" + ] }, - "variantId": { + { + "type": "null" + } + ] + }, + "hasRange": { + "type": "boolean" + }, + "variantId": { + "oneOf": [ + { "type": "string", - "format": "", - "nullable": true + "format": "" }, - "apiAlias": { - "type": "string", - "enum": [ - "calculated_cheapest_price" - ] + { + "type": "null" } - } + ] + }, + "apiAlias": { + "type": "string", + "enum": [ + "calculated_cheapest_price" + ] } - ] + } }, "isNew": { "description": "Runtime field, cannot be used as part of the criteria.", @@ -7616,6 +8332,10 @@ "sortedProperties": { "type": "object" }, + "measurements": { + "type": "object", + "$ref": "#/components/schemas/ProductMeasurements" + }, "createdAt": { "type": "string", "format": "date-time", @@ -7664,115 +8384,138 @@ "type": "object" }, "downloads": { + "description": "Downloadable files associated with the product (e.g., manuals, digital content)", "type": "array", "items": { "$ref": "#/components/schemas/ProductDownload" } }, "parent": { - "$ref": "#/components/schemas/Product" + "$ref": "#/components/schemas/Product", + "description": "Unique identity of the product." }, "children": { + "description": "Product variants that inherit from this parent product", "type": "array", "items": { "$ref": "#/components/schemas/Product" } }, "deliveryTime": { - "$ref": "#/components/schemas/DeliveryTime" + "$ref": "#/components/schemas/DeliveryTime", + "description": "Estimated delivery time for the product" }, "tax": { - "$ref": "#/components/schemas/Tax" + "$ref": "#/components/schemas/Tax", + "description": "Tax configuration (rate and calculation rules)" }, "manufacturer": { - "$ref": "#/components/schemas/ProductManufacturer" + "$ref": "#/components/schemas/ProductManufacturer", + "description": "Product manufacturer or brand information" }, "unit": { - "$ref": "#/components/schemas/Unit" + "$ref": "#/components/schemas/Unit", + "description": "Product unit of measure (e.g., piece, liter, kg)" }, "cover": { - "$ref": "#/components/schemas/ProductMedia" + "$ref": "#/components/schemas/ProductMedia", + "description": "Main product image displayed in listings and detail pages" }, "cmsPage": { - "$ref": "#/components/schemas/CmsPage" + "$ref": "#/components/schemas/CmsPage", + "description": "Custom CMS page layout for the product detail page" }, "canonicalProduct": { - "$ref": "#/components/schemas/Product" + "$ref": "#/components/schemas/Product", + "description": "Canonical product reference for variant consolidation and SEO purposes" }, "media": { + "description": "Product images and media gallery", "type": "array", "items": { "$ref": "#/components/schemas/ProductMedia" } }, "crossSellings": { + "description": "Cross-selling configurations (related products, accessories, similar items)", "type": "array", "items": { "$ref": "#/components/schemas/ProductCrossSelling" } }, "configuratorSettings": { + "description": "Variant configurator settings defining available options for product variants", "type": "array", "items": { "$ref": "#/components/schemas/ProductConfiguratorSetting" } }, "productReviews": { + "description": "Customer reviews and ratings for the product", "type": "array", "items": { "$ref": "#/components/schemas/ProductReview" } }, "mainCategories": { + "description": "Primary category assignments per sales channel for SEO and navigation", "type": "array", "items": { "$ref": "#/components/schemas/MainCategory" } }, "seoUrls": { + "description": "SEO-friendly URLs for the product across different sales channels", "type": "array", "items": { "$ref": "#/components/schemas/SeoUrl" } }, "options": { + "description": "Product variant options (e.g., size, color) that define different variants", "type": "array", "items": { "$ref": "#/components/schemas/PropertyGroupOption" } }, "properties": { + "description": "Product properties and characteristics for filtering", "type": "array", "items": { "$ref": "#/components/schemas/PropertyGroupOption" } }, "categories": { + "description": "Categories this product is assigned to", "type": "array", "items": { "$ref": "#/components/schemas/Category" } }, "streams": { + "description": "Dynamic product streams this product belongs to based on defined filters", "type": "array", "items": { "$ref": "#/components/schemas/ProductStream" } }, "categoriesRo": { + "description": "Read-only category tree including all parent categories for optimized queries", "type": "array", "items": { "$ref": "#/components/schemas/Category" } }, "tags": { + "description": "Tags for organizing and filtering products", "type": "array", "items": { "$ref": "#/components/schemas/Tag" } }, "seoCategory": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/Category", + "description": "Main category used for SEO URL generation in the current sales channel" }, "apiAlias": { "type": "string", @@ -7781,13 +8524,19 @@ ] }, "variantListingConfig": { - "nullable": true, - "type": "object", - "properties": { - "displayParent": { - "type": "boolean" + "oneOf": [ + { + "type": "object", + "properties": { + "displayParent": { + "type": "boolean" + } + } + }, + { + "type": "null" } - } + ] } }, "type": "object" @@ -7797,8 +8546,7 @@ "required": [ "id", "productId", - "optionId", - "createdAt" + "optionId" ], "properties": { "id": { @@ -7810,6 +8558,7 @@ "pattern": "^[0-9a-f]{32}$" }, "productId": { + "description": "Unique identity of product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -7818,14 +8567,17 @@ "pattern": "^[0-9a-f]{32}$" }, "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "optionId": { + "description": "Unique identity of option.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "position": { + "description": "The order of the tabs of your defined product configuration settings in the storefront by entering numerical values like 1,2,3, etc.", "type": "integer", "format": "int64" }, @@ -7855,10 +8607,7 @@ "description": "Added since version: 6.1.0.0", "required": [ "id", - "name", - "position", - "type", - "createdAt" + "name" ], "properties": { "id": { @@ -7869,22 +8618,28 @@ "type": "string" }, "position": { + "description": "The order of the tabs of your defined cross-selling actions in the storefront by entering numerical values like 1,2,3, etc.", "type": "integer", "format": "int64" }, "sortBy": { + "description": "To sort the display of products by name, price or publication (descending, ascending) date.", "type": "string" }, "sortDirection": { + "description": "To sort the display of products by ascending or descending order.", "type": "string" }, "type": { + "description": "Type of product assignment for cross-selling. It can either be Dynamic product group or Manual assignment.", "type": "string" }, "active": { + "description": "When set to active, the cross-selling feature is enabled.", "type": "boolean" }, "limit": { + "description": "The maximum number of products to be displayed in cross-selling on the item detail page of your item.", "type": "integer", "format": "int64" }, @@ -7906,9 +8661,6 @@ }, "ProductCrossSellingAssignedProducts": { "description": "Added since version: 6.2.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -7932,8 +8684,7 @@ "required": [ "id", "productId", - "mediaId", - "createdAt" + "mediaId" ], "properties": { "id": { @@ -7945,6 +8696,7 @@ "pattern": "^[0-9a-f]{32}$" }, "productId": { + "description": "Unique identity of Product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -7953,10 +8705,12 @@ "pattern": "^[0-9a-f]{32}$" }, "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "position": { + "description": "The order in which the digital products are downloaded, like 1,2,3, etc.to adjust their order of display.", "type": "integer", "format": "int64" }, @@ -7984,9 +8738,6 @@ }, "ProductExport": { "description": "Added since version: 6.1.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -8008,7 +8759,6 @@ "ProductFeatureSet": { "description": "Added since version: 6.3.0.0", "required": [ - "createdAt", "name" ], "properties": { @@ -8044,10 +8794,12 @@ "pattern": "^[0-9a-f]{32}$" }, "languageId": { + "description": "Unique identity of the language.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "keyword": { + "description": "The keywords that help to search the product.", "type": "string" } }, @@ -8057,7 +8809,6 @@ "description": "Added since version: 6.0.0.0", "required": [ "id", - "createdAt", "name" ], "properties": { @@ -8070,6 +8821,7 @@ "pattern": "^[0-9a-f]{32}$" }, "mediaId": { + "description": "Unique identity of the media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -8107,10 +8859,10 @@ "ProductMedia": { "description": "Added since version: 6.0.0.0", "required": [ + "media", "id", "productId", - "mediaId", - "createdAt" + "mediaId" ], "properties": { "id": { @@ -8122,6 +8874,7 @@ "pattern": "^[0-9a-f]{32}$" }, "productId": { + "description": "Unique identity of the product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -8130,10 +8883,12 @@ "pattern": "^[0-9a-f]{32}$" }, "mediaId": { + "description": "Unique identity of the media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "position": { + "description": "The order of the images to be displayed for a product.", "type": "integer", "format": "int64" }, @@ -8152,18 +8907,12 @@ }, "media": { "$ref": "#/components/schemas/Media" - }, - "thumbnails": { - "$ref": "#/components/schemas/MediaThumbnail" } }, "type": "object" }, "ProductPrice": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -8185,14 +8934,12 @@ "ProductReview": { "description": "Added since version: 6.0.0.0", "required": [ - "points", "id", "productId", "salesChannelId", "languageId", "title", - "content", - "createdAt" + "content" ], "properties": { "id": { @@ -8200,6 +8947,7 @@ "pattern": "^[0-9a-f]{32}$" }, "productId": { + "description": "Unique identity of the product.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -8208,27 +8956,38 @@ "pattern": "^[0-9a-f]{32}$" }, "salesChannelId": { + "description": "Unique identity of the sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "languageId": { + "description": "Unique identity of the language.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "externalUser": { + "description": "External user name.", + "type": "string" + }, "title": { + "description": "Title of product review.", "type": "string" }, "content": { + "description": "Short description or subject of the project review.", "type": "string" }, "points": { + "description": "A floating point number given to rate a product.", "type": "number", "format": "float" }, "status": { + "description": "When status is set, the rating is made visible.", "type": "boolean" }, "comment": { + "description": "Detailed review about the product.", "type": "string" }, "customFields": { @@ -8249,9 +9008,6 @@ }, "ProductSearchConfig": { "description": "Added since version: 6.3.5.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -8272,9 +9028,6 @@ }, "ProductSearchConfigField": { "description": "Added since version: 6.3.5.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -8295,9 +9048,6 @@ }, "ProductSearchKeyword": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -8321,7 +9071,6 @@ "required": [ "key", "priority", - "createdAt", "label" ], "properties": { @@ -8359,7 +9108,6 @@ "description": "Added since version: 6.0.0.0", "required": [ "id", - "createdAt", "name" ], "properties": { @@ -8376,6 +9124,10 @@ "customFields": { "type": "object" }, + "internal": { + "description": "When the boolean value is `true` indicating that it is for internal use only and will not appear in product stream listings.", + "type": "boolean" + }, "createdAt": { "type": "string", "format": "date-time", @@ -8394,9 +9146,6 @@ }, "ProductStreamFilter": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -8417,9 +9166,6 @@ }, "ProductVisibility": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -8441,7 +9187,6 @@ "Promotion": { "description": "Added since version: 6.0.0.0", "required": [ - "createdAt", "name" ], "properties": { @@ -8470,9 +9215,6 @@ }, "PromotionDiscount": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -8493,9 +9235,6 @@ }, "PromotionDiscountPrices": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -8516,9 +9255,6 @@ }, "PromotionIndividualCode": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -8539,9 +9275,6 @@ }, "PromotionSalesChannel": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -8562,9 +9295,6 @@ }, "PromotionSetgroup": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -8587,9 +9317,6 @@ "description": "Added since version: 6.0.0.0", "required": [ "id", - "displayType", - "sortingType", - "createdAt", "name" ], "properties": { @@ -8604,15 +9331,19 @@ "type": "string" }, "displayType": { + "description": "Property groups can be displayed in the form of text, image, dropdown or color.", "type": "string" }, "sortingType": { + "description": "Sorting the property group by name or position.", "type": "string" }, "filterable": { + "description": "When set to true, the property will be displayed in the product filter of product lists.", "type": "boolean" }, "visibleOnProductDetailPage": { + "description": "When set to true, the property groups are displayed on product detail page.", "type": "boolean" }, "position": { @@ -8649,9 +9380,9 @@ "required": [ "group", "option", + "translated", "id", "groupId", - "createdAt", "name" ], "properties": { @@ -8660,6 +9391,7 @@ "pattern": "^[0-9a-f]{32}$" }, "groupId": { + "description": "Unique identity of property group.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -8671,12 +9403,18 @@ "format": "int64" }, "colorHexCode": { + "description": "Property group options can be displayed in the form of color. For example: #98e3f5ff.", "type": "string" }, "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "combinable": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, "customFields": { "type": "object" }, @@ -8708,8 +9446,7 @@ "Rule": { "description": "Added since version: 6.0.0.0", "required": [ - "name", - "createdAt" + "name" ], "properties": { "id": { @@ -8717,9 +9454,11 @@ "pattern": "^[0-9a-f]{32}$" }, "name": { + "description": "Name of the rule defined.", "type": "string" }, "description": { + "description": "Description of the rule.", "type": "string" }, "customFields": { @@ -8740,9 +9479,6 @@ }, "RuleCondition": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -8772,7 +9508,6 @@ "shippingMethodId", "countryId", "navigationCategoryId", - "createdAt", "name", "homeEnabled" ], @@ -8782,30 +9517,37 @@ "pattern": "^[0-9a-f]{32}$" }, "languageId": { + "description": "Unique identity of language used.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "customerGroupId": { + "description": "Unique identity of customer group.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "currencyId": { + "description": "Unique identity of currency used.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "paymentMethodId": { + "description": "Unique identity of payment method used.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "shippingMethodId": { + "description": "Unique identity of shipping method.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "countryId": { + "description": "Unique identity of country.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "navigationCategoryId": { + "description": "Unique identity of navigation category.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -8814,10 +9556,12 @@ "pattern": "^[0-9a-f]{32}$" }, "navigationCategoryDepth": { + "description": "It determines the number of levels of subcategories in the storefront category menu.", "type": "integer", "format": "int64" }, "footerCategoryId": { + "description": "Unique identity of footer category.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -8826,6 +9570,7 @@ "pattern": "^[0-9a-f]{32}$" }, "serviceCategoryId": { + "description": "Unique identity of service category.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -8834,32 +9579,42 @@ "pattern": "^[0-9a-f]{32}$" }, "mailHeaderFooterId": { + "description": "Unique identity of mail header and footer.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "hreflangDefaultDomainId": { + "description": "Unique identity of hreflangDefaultDomain.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "measurementUnits": { + "$ref": "#/components/schemas/MeasurementUnits" + }, "name": { "type": "string" }, "shortName": { + "description": "A short name for sales channel.", "type": "string" }, "taxCalculationType": { + "description": "Tax calculation types are `horizontal` and `vertical`.", "type": "string" }, "configuration": { "type": "object" }, "active": { + "description": "When boolean value is `true`, the sales channel is enabled.", "type": "boolean" }, "hreflangActive": { + "description": "When set to true, the sales channel pages are available in different languages.", "type": "boolean" }, "maintenance": { + "description": "When `true`, it indicates that the sales channel is undergoing maintenance, and shopping is temporarily unavailable during this period.", "type": "boolean" }, "customFields": { @@ -8879,34 +9634,43 @@ "type": "object" }, "language": { - "$ref": "#/components/schemas/Language" + "$ref": "#/components/schemas/Language", + "description": "Default language for the sales channel" }, "currency": { - "$ref": "#/components/schemas/Currency" + "$ref": "#/components/schemas/Currency", + "description": "Default currency for the sales channel" }, "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" + "$ref": "#/components/schemas/PaymentMethod", + "description": "Default payment method for the sales channel" }, "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" + "$ref": "#/components/schemas/ShippingMethod", + "description": "Default shipping method for the sales channel" }, "country": { - "$ref": "#/components/schemas/Country" + "$ref": "#/components/schemas/Country", + "description": "Default country for the sales channel" }, "domains": { + "description": "Domain URLs configured for the sales channel", "type": "array", "items": { "$ref": "#/components/schemas/SalesChannelDomain" } }, "navigationCategory": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/Category", + "description": "Root category for navigation menu" }, "footerCategory": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/Category", + "description": "Root category for footer navigation" }, "serviceCategory": { - "$ref": "#/components/schemas/Category" + "$ref": "#/components/schemas/Category", + "description": "Root category for service pages" }, "hreflangDefaultDomain": { "$ref": "#/components/schemas/SalesChannelDomain" @@ -8916,9 +9680,6 @@ }, "SalesChannelAnalytics": { "description": "Added since version: 6.2.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -8945,8 +9706,7 @@ "salesChannelId", "languageId", "currencyId", - "snippetSetId", - "createdAt" + "snippetSetId" ], "properties": { "id": { @@ -8954,25 +9714,34 @@ "pattern": "^[0-9a-f]{32}$" }, "url": { + "description": "URL of the sales channel domain.", "type": "string" }, "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "languageId": { + "description": "Unique identity of language used.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "currencyId": { + "description": "Unique identity of currency.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "snippetSetId": { + "description": "Unique identity of snippet set.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, + "measurementUnits": { + "$ref": "#/components/schemas/MeasurementUnits" + }, "hreflangUseOnlyLocale": { + "description": "This is used to toggle the language configurations, say between DE and DE-DE for instance.", "type": "boolean" }, "customFields": { @@ -9003,7 +9772,6 @@ "SalesChannelType": { "description": "Added since version: 6.0.0.0", "required": [ - "createdAt", "name" ], "properties": { @@ -9037,7 +9805,6 @@ "required": [ "id", "salutationKey", - "createdAt", "displayName", "letterName" ], @@ -9047,6 +9814,7 @@ "pattern": "^[0-9a-f]{32}$" }, "salutationKey": { + "description": "Technical name given to salutation. For example: mr", "type": "string" }, "displayName": { @@ -9081,7 +9849,6 @@ "required": [ "id", "salutationKey", - "createdAt", "displayName", "letterName" ], @@ -9091,6 +9858,7 @@ "pattern": "^[0-9a-f]{32}$" }, "salutationKey": { + "description": "Technical name given to salutation. For example: mr", "type": "string" }, "displayName": { @@ -9120,9 +9888,6 @@ }, "ScheduledTask": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -9143,9 +9908,6 @@ }, "Script": { "description": "Added since version: 6.4.7.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -9177,8 +9939,7 @@ "foreignKey", "routeName", "pathInfo", - "seoPathInfo", - "createdAt" + "seoPathInfo" ], "properties": { "id": { @@ -9186,33 +9947,42 @@ "pattern": "^[0-9a-f]{32}$" }, "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "languageId": { + "description": "Unique identity of language.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "foreignKey": { + "description": "The key that references to product or category entity ID.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "routeName": { + "description": "A destination routeName that has been registered somewhere in the app's router. For example: \\\\\"frontend.detail.page\\\\\"", "type": "string" }, "pathInfo": { + "description": "Path to product URL. For example: \\\\\"/detail/bbf36734504741c79a3bbe3795b91564\\\\\"", "type": "string" }, "seoPathInfo": { + "description": "Seo path to product. For example: \\\\\"Pepper-white-ground-pearl/SW10098\\\\\"", "type": "string" }, "isCanonical": { + "description": "When set to true, search redirects to the main URL.", "type": "boolean" }, "isModified": { + "description": "When boolean value is `true`, the seo url is changed.", "type": "boolean" }, "isDeleted": { + "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.", "type": "boolean" }, "error": { @@ -9249,8 +10019,7 @@ "foreignKey", "routeName", "pathInfo", - "seoPathInfo", - "createdAt" + "seoPathInfo" ], "properties": { "id": { @@ -9258,18 +10027,22 @@ "pattern": "^[0-9a-f]{32}$" }, "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "languageId": { + "description": "Unique identity of language.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "foreignKey": { + "description": "The key that references to product or category entity ID.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "routeName": { + "description": "A destination routeName that has been registered somewhere in the app's router. For example: \\\\\"frontend.detail.page\\\\\"", "type": "string", "enum": [ "frontend.navigation.page", @@ -9278,18 +10051,23 @@ ] }, "pathInfo": { + "description": "Path to product URL. For example: \\\\\"/detail/bbf36734504741c79a3bbe3795b91564\\\\\"", "type": "string" }, "seoPathInfo": { + "description": "Seo path to product. For example: \\\\\"Pepper-white-ground-pearl/SW10098\\\\\"", "type": "string" }, "isCanonical": { + "description": "When set to true, search redirects to the main URL.", "type": "boolean" }, "isModified": { + "description": "When boolean value is `true`, the seo url is changed.", "type": "boolean" }, "isDeleted": { + "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.", "type": "boolean" }, "error": { @@ -9314,23 +10092,23 @@ "readOnly": true } }, - "type": "object" + "type": "object", + "title": "SeoUrlEntity" }, "SeoUrlTemplate": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", "pattern": "^[0-9a-f]{32}$" }, "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "isValid": { + "description": "Created SEO URL template can be made usable by setting `isValid` to true.", "type": "boolean" }, "customFields": { @@ -9358,9 +10136,8 @@ { "required": [ "id", + "technicalName", "deliveryTimeId", - "taxType", - "createdAt", "name" ], "properties": { @@ -9371,10 +10148,15 @@ "name": { "type": "string" }, + "technicalName": { + "type": "string" + }, "active": { + "description": "When boolean value is `true`, the shipping methods are available for selection in the storefront.", "type": "boolean" }, "position": { + "description": "The order of the tabs of your defined shipping methods in the storefront by entering numerical values like 1,2,3, etc.", "type": "integer", "format": "int64" }, @@ -9382,14 +10164,17 @@ "type": "object" }, "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "deliveryTimeId": { + "description": "Unique identity of deliveryTime.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "taxType": { + "description": "Refers `Free`, `Net` or `Gross` type of taxes.", "type": "string" }, "description": { @@ -9398,9 +10183,6 @@ "trackingUrl": { "type": "string" }, - "technicalName": { - "type": "string" - }, "createdAt": { "type": "string", "format": "date-time", @@ -9417,6 +10199,7 @@ "relationships": { "properties": { "deliveryTime": { + "description": "Estimated delivery time information", "properties": { "links": { "type": "object", @@ -9446,6 +10229,7 @@ "type": "object" }, "availabilityRule": { + "description": "Rule defining when this shipping method is available", "properties": { "links": { "type": "object", @@ -9475,6 +10259,7 @@ "type": "object" }, "prices": { + "description": "Shipping prices based on weight, volume, or cart value", "properties": { "links": { "type": "object", @@ -9506,6 +10291,7 @@ "type": "object" }, "media": { + "description": "Shipping method logo or carrier image", "properties": { "links": { "type": "object", @@ -9535,6 +10321,7 @@ "type": "object" }, "tags": { + "description": "Tags for organizing shipping methods", "properties": { "links": { "type": "object", @@ -9566,6 +10353,7 @@ "type": "object" }, "tax": { + "description": "Tax configuration for shipping costs", "properties": { "links": { "type": "object", @@ -9606,9 +10394,8 @@ "description": "Added since version: 6.0.0.0", "required": [ "id", + "technicalName", "deliveryTimeId", - "taxType", - "createdAt", "name" ], "properties": { @@ -9619,10 +10406,15 @@ "name": { "type": "string" }, + "technicalName": { + "type": "string" + }, "active": { + "description": "When boolean value is `true`, the shipping methods are available for selection in the storefront.", "type": "boolean" }, "position": { + "description": "The order of the tabs of your defined shipping methods in the storefront by entering numerical values like 1,2,3, etc.", "type": "integer", "format": "int64" }, @@ -9630,14 +10422,17 @@ "type": "object" }, "mediaId": { + "description": "Unique identity of media.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "deliveryTimeId": { + "description": "Unique identity of deliveryTime.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "taxType": { + "description": "Refers `Free`, `Net` or `Gross` type of taxes.", "type": "string" }, "description": { @@ -9646,9 +10441,6 @@ "trackingUrl": { "type": "string" }, - "technicalName": { - "type": "string" - }, "createdAt": { "type": "string", "format": "date-time", @@ -9663,28 +10455,34 @@ "type": "object" }, "deliveryTime": { - "$ref": "#/components/schemas/DeliveryTime" + "$ref": "#/components/schemas/DeliveryTime", + "description": "Estimated delivery time information" }, "availabilityRule": { - "$ref": "#/components/schemas/Rule" + "$ref": "#/components/schemas/Rule", + "description": "Rule defining when this shipping method is available" }, "prices": { + "description": "Shipping prices based on weight, volume, or cart value", "type": "array", "items": { "$ref": "#/components/schemas/ShippingMethodPrice" } }, "media": { - "$ref": "#/components/schemas/Media" + "$ref": "#/components/schemas/Media", + "description": "Shipping method logo or carrier image" }, "tags": { + "description": "Tags for organizing shipping methods", "type": "array", "items": { "$ref": "#/components/schemas/Tag" } }, "tax": { - "$ref": "#/components/schemas/Tax" + "$ref": "#/components/schemas/Tax", + "description": "Tax configuration for shipping costs" } }, "type": "object" @@ -9693,8 +10491,7 @@ "description": "Added since version: 6.0.0.0", "required": [ "id", - "shippingMethodId", - "createdAt" + "shippingMethodId" ], "properties": { "id": { @@ -9702,31 +10499,40 @@ "pattern": "^[0-9a-f]{32}$" }, "shippingMethodId": { + "description": "Unique identity of shipping method.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "ruleId": { + "description": "Unique identity of rule.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "calculation": { + "description": "Shipping price calculated based on quantity, price, weight or volume of items.", "type": "integer", "format": "int64" }, "calculationRuleId": { + "description": "Unique identity of rule calculation.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "quantityStart": { + "description": "Starting range of quantity of an item.", "type": "number", "format": "float" }, "quantityEnd": { + "description": "Ending range of quantity of an item.", "type": "number", "format": "float" }, "currencyPrice": { - "type": "object" + "type": "array", + "items": { + "$ref": "#/components/schemas/Price" + } }, "customFields": { "type": "object" @@ -9749,8 +10555,7 @@ "required": [ "setId", "translationKey", - "value", - "createdAt" + "value" ], "properties": { "id": { @@ -9758,13 +10563,16 @@ "pattern": "^[0-9a-f]{32}$" }, "setId": { + "description": "Unique identity od snippet set.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, "translationKey": { + "description": "Reference to the snippet in the template.", "type": "string" }, "value": { + "description": "Value of the key.", "type": "string" }, "customFields": { @@ -9787,8 +10595,7 @@ "description": "Added since version: 6.0.0.0", "required": [ "name", - "iso", - "createdAt" + "iso" ], "properties": { "id": { @@ -9796,9 +10603,11 @@ "pattern": "^[0-9a-f]{32}$" }, "name": { + "description": "Name of snippet set.", "type": "string" }, "iso": { + "description": "ISO nomenclature used to classify languages.", "type": "string" }, "customFields": { @@ -9826,7 +10635,6 @@ "StateMachine": { "description": "Added since version: 6.0.0.0", "required": [ - "createdAt", "name" ], "properties": { @@ -9864,9 +10672,6 @@ }, "StateMachineHistory": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -9894,8 +10699,8 @@ "StateMachineState": { "description": "Added since version: 6.0.0.0", "required": [ + "translated", "technicalName", - "createdAt", "name" ], "properties": { @@ -9904,6 +10709,7 @@ "pattern": "^[0-9a-f]{32}$" }, "technicalName": { + "description": "Technical name of StateMachineState.", "type": "string" }, "name": { @@ -9930,9 +10736,6 @@ }, "StateMachineTransition": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -9960,7 +10763,6 @@ "required": [ "id", "internalName", - "createdAt", "displayName" ], "properties": { @@ -10185,7 +10987,6 @@ "required": [ "id", "internalName", - "createdAt", "displayName" ], "properties": { @@ -10283,8 +11084,7 @@ "id", "hash", "configuration", - "templateId", - "createdAt" + "templateId" ], "properties": { "id": { @@ -10394,8 +11194,7 @@ "id", "hash", "configuration", - "templateId", - "createdAt" + "templateId" ], "properties": { "id": { @@ -10443,9 +11242,6 @@ "type": "object" }, "SwagCustomizedProductsTemplateConfigurationShare": { - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -10468,8 +11264,7 @@ "required": [ "id", "name", - "templateId", - "createdAt" + "templateId" ], "properties": { "id": { @@ -10518,8 +11313,7 @@ "id", "templateExclusionId", "templateOptionId", - "templateExclusionOperatorId", - "createdAt" + "templateExclusionOperatorId" ], "properties": { "id": { @@ -10583,7 +11377,6 @@ "id", "operator", "templateOptionType", - "createdAt", "label" ], "properties": { @@ -10632,7 +11425,6 @@ "id", "type", "templateId", - "createdAt", "displayName" ], "properties": { @@ -10679,7 +11471,10 @@ "format": "int64" }, "price": { - "type": "object" + "type": "array", + "items": { + "$ref": "#/components/schemas/Price" + } }, "calculatedPrice": { "type": "object" @@ -10875,7 +11670,6 @@ "id", "type", "templateId", - "createdAt", "displayName" ], "properties": { @@ -10922,7 +11716,10 @@ "format": "int64" }, "price": { - "type": "object" + "type": "array", + "items": { + "$ref": "#/components/schemas/Price" + } }, "calculatedPrice": { "type": "object" @@ -10982,8 +11779,7 @@ "SwagCustomizedProductsTemplateOptionPrice": { "required": [ "id", - "templateOptionId", - "createdAt" + "templateOptionId" ], "properties": { "id": { @@ -11003,7 +11799,10 @@ "pattern": "^[0-9a-f]{32}$" }, "price": { - "type": "object" + "type": "array", + "items": { + "$ref": "#/components/schemas/Price" + } }, "percentageSurcharge": { "type": "number", @@ -11042,7 +11841,6 @@ "id", "templateOptionId", "position", - "createdAt", "displayName" ], "properties": { @@ -11088,7 +11886,10 @@ "format": "int64" }, "price": { - "type": "object" + "type": "array", + "items": { + "$ref": "#/components/schemas/Price" + } }, "percentageSurcharge": { "type": "number", @@ -11246,7 +12047,6 @@ "id", "templateOptionId", "position", - "createdAt", "displayName" ], "properties": { @@ -11292,7 +12092,10 @@ "format": "int64" }, "price": { - "type": "object" + "type": "array", + "items": { + "$ref": "#/components/schemas/Price" + } }, "percentageSurcharge": { "type": "number", @@ -11339,8 +12142,7 @@ "SwagCustomizedProductsTemplateOptionValuePrice": { "required": [ "id", - "templateOptionValueId", - "createdAt" + "templateOptionValueId" ], "properties": { "id": { @@ -11360,7 +12162,10 @@ "pattern": "^[0-9a-f]{32}$" }, "price": { - "type": "object" + "type": "array", + "items": { + "$ref": "#/components/schemas/Price" + } }, "percentageSurcharge": { "type": "number", @@ -11394,8 +12199,7 @@ "required": [ "id", "configurationKey", - "configurationValue", - "createdAt" + "configurationValue" ], "properties": { "id": { @@ -11403,6 +12207,7 @@ "pattern": "^[0-9a-f]{32}$" }, "configurationKey": { + "description": "Config key for shop configurations.", "type": "string" }, "configurationValue": { @@ -11414,6 +12219,7 @@ "type": "object" }, "salesChannelId": { + "description": "Unique identity of sales channel.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -11437,8 +12243,7 @@ "description": "Added since version: 6.0.0.0", "required": [ "id", - "name", - "createdAt" + "name" ], "properties": { "id": { @@ -11466,9 +12271,7 @@ "required": [ "id", "taxRate", - "name", - "position", - "createdAt" + "name" ], "properties": { "id": { @@ -11476,14 +12279,16 @@ "pattern": "^[0-9a-f]{32}$" }, "taxRate": { + "description": "Rate of tax.", "type": "number", "format": "float" }, "name": { + "description": "Name defined for a Tax.", "type": "string" }, "position": { - "description": "Added since version: 6.4.0.0.", + "description": "The order of the tabs of your defined taxes in the storefront by entering numerical values like 1,2,3, etc. Added since version: 6.4.0.0.", "type": "integer", "format": "int64" }, @@ -11508,7 +12313,6 @@ "required": [ "id", "priority", - "createdAt", "name" ], "properties": { @@ -11517,19 +12321,23 @@ "pattern": "^[0-9a-f]{32}$" }, "active": { + "description": "When boolean value is `true`, the tax providers are available for selection in the storefront.", "type": "boolean" }, "name": { "type": "string" }, "priority": { + "description": "A numerical value to prioritize one of the tax providers from the list.", "type": "integer", "format": "int64" }, "processUrl": { + "description": "External URL makes request to get tax info.", "type": "string" }, "appId": { + "description": "Unique identity of app.", "type": "string", "pattern": "^[0-9a-f]{32}$" }, @@ -11554,9 +12362,6 @@ }, "TaxRule": { "description": "Added since version: 6.1.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -11578,7 +12383,6 @@ "TaxRuleType": { "description": "Added since version: 6.1.0.0", "required": [ - "createdAt", "typeName" ], "properties": { @@ -11608,8 +12412,7 @@ "id", "name", "author", - "active", - "createdAt" + "active" ], "properties": { "id": { @@ -11680,7 +12483,6 @@ "description": "Added since version: 6.0.0.0", "required": [ "id", - "createdAt", "shortCode", "name" ], @@ -11716,9 +12518,6 @@ }, "User": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -11739,9 +12538,6 @@ }, "UserAccessKey": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -11762,9 +12558,6 @@ }, "UserConfig": { "description": "Added since version: 6.3.5.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -11785,9 +12578,6 @@ }, "UserRecovery": { "description": "Added since version: 6.0.0.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -11808,9 +12598,6 @@ }, "Webhook": { "description": "Added since version: 6.3.1.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -11831,9 +12618,6 @@ }, "WebhookEventLog": { "description": "Added since version: 6.4.1.0", - "required": [ - "createdAt" - ], "properties": { "id": { "type": "string", @@ -11852,824 +12636,597 @@ }, "type": "object" }, - "AggregationEntity": { - "title": "AggregationEntity", + "EntitySearchResult": { "type": "object", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", + "entity": { "type": "string" }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "entity" - ] + "total": { + "type": "integer", + "description": "The total number of found entities" }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" + "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" + } }, - "definition": { - "description": "The entity definition e.g \"product_manufacturer\".", - "type": "string" + "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." } - }, - "required": [ - "name", - "type", - "field", - "definition" - ] + } }, - "AggregationFilter": { - "title": "AggregationFilter", + "CartDelivery": { "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" + } + } }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "filter" - ] + "location": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_shipping_location" + ] + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "address": { + "$ref": "#/components/schemas/CustomerAddress" + }, + "state": { + "$ref": "#/components/schemas/CountryState" + } + } }, - "filter": { + "positions": { "type": "array", "items": { - "$ref": "#/components/schemas/Filters" + "$ref": "#/components/schemas/CartDeliveryPosition" } + }, + "shippingCosts": { + "$ref": "#/components/schemas/CalculatedPrice" + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" } - }, - "required": [ - "name", - "type", - "filter" - ] + } }, - "AggregationTerms": { - "title": "AggregationTerms", + "CookieGroupCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieGroup" + } + }, + "OrderRouteResponse": { "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", - "enum": [ - "terms" + "orders": { + "type": "object", + "allOf": [ + { + "type": "object", + "required": [ + "elements" + ], + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Order" + } + } + } + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } ] }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" - }, - "limit": { - "description": "The number of terms to return", - "type": "number" - }, - "sort": { - "type": "array", - "description": "Sorting the aggregation result.", - "items": { - "$ref": "#/components/schemas/Sort" + "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" } } }, "required": [ - "name", - "type", - "field" + "orders" ] }, - "AggregationHistogram": { - "title": "AggregationHistogram", + "ReferencePrice": { "type": "object", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", + "purchaseUnit": { + "type": "number" + }, + "referenceUnit": { + "type": "number" + }, + "unitName": { "type": "string" }, - "type": { - "description": "The type of aggregation", + "price": { + "type": "number" + }, + "apiAlias": { "type": "string", "enum": [ - "histogram" + "cart_price_reference" ] }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/ListPrice" + }, + { + "type": "null" + } + ] }, - "interval": { - "description": "The interval of the histogram", - "type": "number" + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } + }, + { + "type": "null" + } + ] }, - "format": { - "description": "The format of the histogram", - "type": "string" + "hasRange": { + "type": "boolean" }, - "timeZone": { - "description": "The timezone of the histogram", - "type": "string" + "variantId": { + "oneOf": [ + { + "type": "string", + "format": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] } }, "required": [ - "name", - "type", - "field" + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" ] }, - "AggregationRange": { - "title": "AggregationRange", - "description": "For more information, see [Aggregations Reference > Range Aggregation](https://developer.shopware.com/docs/resources/references/core-reference/dal-reference/aggregations-reference.html#range-aggregations)", + "SuccessResponse": { + "type": "object", + "properties": { + "success": { + "type": "boolean" + } + } + }, + "Cart": { "type": "object", "properties": { "name": { - "description": "Give your aggregation an identifier, so you can find it easier", + "description": "Name of the cart - for example `guest-cart`", "type": "string" }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "range" - ] - }, - "field": { - "description": "The field you want to aggregate over.", + "token": { + "description": "Context token identifying the cart and the user session", "type": "string" }, - "ranges": { - "description": "The ranges of the aggregation", + "price": { + "$ref": "#/components/schemas/CalculatedPrice" + }, + "lineItems": { + "description": "All items within the cart", "type": "array", "items": { - "type": "object", - "anyOf": [ - { + "$ref": "#/components/schemas/LineItem" + } + }, + "errors": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartError" + } + }, + { + "type": "object", + "additionalProperties": { "type": "object", - "title": "From and to", "properties": { - "from": { - "type": "number", - "description": "The lower bound of the range" + "code": { + "type": "number" }, - "to": { - "type": "number", - "description": "The upper bound of the range" - } - }, - "required": [ - "from", - "to" - ] - }, - { - "type": "object", - "title": "From only", - "properties": { - "from": { - "type": "string", - "description": "The lower bound of the range" - } - }, - "required": [ - "from" - ] - }, - { - "type": "object", - "title": "To only", - "properties": { - "to": { - "type": "string", - "description": "The upper bound of the range" + "key": { + "type": "string" + }, + "level": { + "type": "number" + }, + "message": { + "type": "string" + }, + "messageKey": { + "type": "string" } }, "required": [ - "to" + "code", + "key", + "level", + "message", + "messageKey" ] } - ] + } + ] + }, + "deliveries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartDelivery" } - } - }, - "required": [ - "name", - "type", - "field", - "ranges" - ] - }, - "WishlistLoadRouteResponse": { - "type": "object", - "properties": { - "wishlist": { - "type": "object", - "properties": { - "customerId": { - "type": "string" - }, - "salesChannelId": { - "type": "string" + }, + "transactions": { + "description": "A list of all payment transactions associated with the current cart.", + "type": "array", + "items": { + "type": "object", + "properties": { + "paymentMethodId": { + "type": "string" + }, + "amount": { + "$ref": "#/components/schemas/CalculatedPrice" + } } } }, - "products": { - "$ref": "#/components/schemas/ProductListingResult" - } - } - }, - "SalesChannelContext": { - "type": "object", - "properties": { - "token": { - "description": "Context the user session", - "type": "string" + "modified": { + "type": "boolean" }, - "currentCustomerGroup": { - "type": "object", - "description": "Customer group of the current user", - "properties": { - "name": { + "customerComment": { + "description": "A comment that can be added to the cart.", + "oneOf": [ + { "type": "string" }, - "displayGross": { - "type": "boolean" + { + "type": "null" } - } + ] }, - "fallbackCustomerGroup": { - "description": "Fallback group if the default customer group is not applicable", - "type": "object", - "properties": { - "name": { + "affiliateCode": { + "description": "An affiliate tracking code", + "oneOf": [ + { "type": "string" }, - "displayGross": { - "type": "boolean" + { + "type": "null" } - } + ] }, - "currency": { - "$ref": "#/components/schemas/Currency" - }, - "salesChannel": { - "description": "Information about the current sales channel", - "type": "object", - "properties": { - "typeId": { - "type": "string" - }, - "languageId": { - "type": "string" - }, - "currencyId": { - "type": "string" - }, - "paymentMethodId": { - "type": "string" - }, - "shippingMethodId": { - "type": "string" - }, - "countryId": { - "type": "string" - }, - "navigationCategoryId": { - "type": "string" - }, - "navigationCategoryDepth": { - "type": "integer", - "format": "int32" - }, - "footerCategoryId": { - "type": "string" - }, - "serviceCategoryId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "shortName": { - "type": "string" - }, - "accessKey": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "maintenance": { - "type": "boolean" - }, - "maintenanceIpWhitelist": { - "type": "string" - }, - "mailHeaderFooterId": { - "type": "string" - }, - "customerGroupId": { - "type": "string" - }, - "hreflangActive": { - "type": "boolean" - }, - "hreflangDefaultDomainId": { - "type": "string" - }, - "analyticsId": { - "type": "string" - } - } - }, - "taxRules": { - "type": "array", - "description": "Currently active tax rules and/or rates", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } - } - }, - "customer": { - "$ref": "#/components/schemas/Customer" - }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" - }, - "shippingLocation": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_shipping_location" - ] - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "address": { - "$ref": "#/components/schemas/CustomerAddress" - } - } - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" - }, - "context": { - "description": "Core context with general configuration values and state", - "type": "object", - "properties": { - "versionId": { - "type": "string" - }, - "currencyId": { - "type": "string" - }, - "currencyFactor": { - "type": "integer" - }, - "currencyPrecision": { - "type": "integer", - "format": "int32" - }, - "languageIdChain": { - "type": "array", - "items": { - "type": "string" - } - }, - "scope": { - "type": "string" - }, - "source": { - "type": "string" - }, - "taxState": { + "campaignCode": { + "description": "A campaign tracking code", + "oneOf": [ + { "type": "string" }, - "useCache": { - "type": "boolean" + { + "type": "null" } - } - } - } - }, - "Sitemap": { - "type": "object", - "properties": { - "filename": { - "type": "string" + ] }, - "created": { + "apiAlias": { "type": "string", - "format": "date-time" + "enum": [ + "cart" + ] } }, "required": [ - "filename", - "created" + "price", + "apiAlias" ] }, - "CartDeliveryPosition": { - "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "properties": { - "deliveryDate": { - "type": "object", - "properties": { - "earliest": { - "type": "string", - "format": "date-time" - }, - "latest": { - "type": "string", - "format": "date-time" - } - } - }, - "identifier": { - "type": "string" - }, - "lineItem": { - "$ref": "#/components/schemas/LineItem" - }, - "price": { - "$ref": "#/components/schemas/CalculatedPrice" - } + "CookieEntryCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieEntry" } }, - "CartItems": { + "CrossSellingElement": { "type": "object", "properties": { - "items": { + "crossSelling": { + "$ref": "#/components/schemas/ProductCrossSelling" + }, + "products": { "type": "array", "items": { - "$ref": "#/components/schemas/LineItem" + "$ref": "#/components/schemas/Product" } + }, + "total": { + "type": "integer", + "format": "int32" + }, + "streamId": { + "type": "string", + "format": "uuid" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cross_selling_element" + ] } - } + }, + "required": [ + "crossSelling", + "products", + "total", + "apiAlias" + ] }, - "Criteria": { + "CalculatedPrice": { "type": "object", - "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", + "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "page": { - "description": "Search result page", - "type": "integer" + "unitPrice": { + "type": "number" }, - "term": { - "description": "Search term", - "type": "string" + "quantity": { + "type": "number" }, - "limit": { - "description": "Number of items per result page", - "type": "integer" + "rawTotal": { + "type": "number" }, - "filter": { + "totalPrice": { + "type": "number" + }, + "taxStatus": { + "type": "string", + "enum": [ + "net", + "tax-free" + ] + }, + "calculatedTaxes": { "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": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_tax_calculated" + ] }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "ids": { - "type": "array", - "description": "List of ids to search for", - "items": { - "type": "string" - } - }, - "query": { - "type": "array", - "description": "List of queries to restrict the search result. For more information, see [Search Queries > Query](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#query)", - "items": { - "$ref": "#/components/schemas/Query" - } - }, - "associations": { - "type": "array", - "description": "Associations to include. For more information, see [Search Queries > Associations](https://shopware.stoplight.io/docs/store-api/cf710bf73d0cd-search-queries#associations)", - "items": { - "$ref": "#/components/schemas/Association" - } - }, - "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": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" + "tax": { + "type": "number" }, - { - "$ref": "#/components/schemas/MultiNotFilter" + "taxRate": { + "type": "number" }, - { - "$ref": "#/components/schemas/RangeFilter" + "price": { + "type": "number" } + }, + "required": [ + "apiAlias", + "tax", + "taxRate", + "price" ] } }, - "sort": { - "type": "array", - "description": "Sorting in the search result.", - "items": { - "$ref": "#/components/schemas/Sort" - } - }, - "aggregations": { - "$ref": "#/components/schemas/Aggregations" - }, - "fields": { - "type": "array", - "description": "Fields which should be returned in the search result.", - "items": { - "type": "string", - "description": "Name of a field" - } - }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" - } - }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" - }, - "includes": { - "$ref": "#/components/schemas/Include" - } - } - }, - "Association": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Criteria" - } - }, - "Include": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "Aggregations": { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" - }, - { - "title": "AggregationEntity", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationEntity" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] - }, - { - "title": "AggregationFilter", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationFilter" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] - }, - { - "title": "AggregationTerms", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationTerms" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] - }, - { - "title": "AggregationHistogram", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationHistogram" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] - }, - { - "title": "AggregationRange", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationRange" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] - } - ] - } - }, - "SubAggregations": { - "type": "object", - "properties": { - "aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" - }, - { - "$ref": "#/components/schemas/AggregationEntity" - }, + "referencePrice": { + "oneOf": [ { - "$ref": "#/components/schemas/AggregationFilter" + "$ref": "#/components/schemas/CartPriceReference" }, { - "$ref": "#/components/schemas/AggregationTerms" - }, + "type": "null" + } + ] + }, + "listPrice": { + "oneOf": [ { - "$ref": "#/components/schemas/AggregationHistogram" + "$ref": "#/components/schemas/CartListPrice" }, { - "$ref": "#/components/schemas/AggregationRange" + "type": "null" } ] - } - } - }, - "TotalCountMode": { - "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" - ] - }, - "Query": { - "type": "object", - "properties": { - "score": { + }, + "positionPrice": { "type": "number" }, - "query": { + "netPrice": { + "type": "number" + }, + "regulationPrice": { "oneOf": [ { - "$ref": "#/components/schemas/SimpleFilter" + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } }, { - "$ref": "#/components/schemas/EqualsFilter" - }, + "type": "null" + } + ] + }, + "hasRange": { + "type": "boolean" + }, + "variantId": { + "oneOf": [ { - "$ref": "#/components/schemas/MultiNotFilter" + "type": "string", + "format": "^[0-9a-f]{32}$" }, { - "$ref": "#/components/schemas/RangeFilter" + "type": "null" } ] - } - }, - "additionalProperties": true - }, - "Sort": { - "type": "object", - "properties": { - "field": { - "type": "string" }, - "order": { + "apiAlias": { "type": "string", "enum": [ - "ASC", - "DESC" + "calculated_price" ] }, - "naturalSorting": { - "type": "boolean" - }, - "type": { - "type": "string" - } - }, - "required": [ - "field", - "order" - ] - }, - "Filters": { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" + "taxRules": { + "type": "array", + "description": "Currently active tax rules and/or rates", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } } - ] - } - }, - "SimpleFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "contains", - "equalsAny", - "prefix", - "suffix" - ] - }, - "field": { - "type": "string" - }, - "value": { - "type": "string" } }, "required": [ - "type", - "field", - "value" + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "referencePrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitPrice", + "positionPrice", + "netPrice", + "taxRules", + "rawTotal", + "taxStatus" ] }, - "EqualsFilter": { + "CartPriceReference": { "type": "object", "properties": { - "type": { + "purchaseUnit": { + "type": "number" + }, + "referenceUnit": { + "type": "number" + }, + "unitName": { + "type": "string" + }, + "price": { + "type": "number" + }, + "apiAlias": { "type": "string", "enum": [ - "equals" + "cart_price_reference" ] }, - "field": { - "type": "string" - }, - "value": { + "listPrice": { "oneOf": [ { - "type": "string" + "$ref": "#/components/schemas/CartListPrice" }, { - "type": "number" + "type": "null" + } + ] + }, + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } }, { - "type": "boolean" + "type": "null" + } + ] + }, + "hasRange": { + "type": "boolean" + }, + "variantId": { + "oneOf": [ + { + "type": "string", + "format": "^[0-9a-f]{32}$" }, { "type": "null" @@ -12678,74 +13235,94 @@ } }, "required": [ - "type", - "field", - "value" + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" ] }, - "MultiNotFilter": { + "CartDeliveryPosition": { "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "type": { - "type": "string", - "enum": [ - "multi", - "not" - ] + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" + } + } }, - "operator": { - "type": "string", - "enum": [ - "AND", - "and", - "OR", - "or" - ] + "identifier": { + "type": "string" }, - "queries": { - "$ref": "#/components/schemas/Filters" + "lineItem": { + "$ref": "#/components/schemas/LineItem" + }, + "price": { + "$ref": "#/components/schemas/CalculatedPrice" } - }, - "required": [ - "type", - "operator", - "queries" - ] + } }, - "RangeFilter": { + "ProductListingFlags": { "type": "object", + "description": "Additional flags for product listings", "properties": { - "type": { - "type": "string", - "enum": [ - "range" + "no-aggregations": { + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } ] }, - "field": { - "type": "string" - }, - "parameters": { - "type": "object", - "properties": { - "gte": { - "type": "number" - }, - "gt": { - "type": "number" - }, - "lte": { - "type": "number" + "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.", + "oneOf": [ + { + "type": "string" }, - "lt": { - "type": "number" + { + "type": "null" } - } + ] + } + } + }, + "CartListPrice": { + "type": "object", + "description": "", + "properties": { + "discount": { + "type": "number" + }, + "percentage": { + "type": "number" + }, + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] } }, "required": [ - "type", - "field", - "parameters" + "apiAlias" ] }, "NavigationRouteResponse": { @@ -12754,263 +13331,6 @@ "$ref": "#/components/schemas/Category" } }, - "SuccessResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - } - } - }, - "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" - }, - "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 - } - } - } - ] - }, - "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" - } - } - }, - "required": [ - "product" - ] - }, - "CalculatedPrice": { - "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", - "properties": { - "unitPrice": { - "type": "number" - }, - "quantity": { - "type": "number" - }, - "rawTotal": { - "type": "number" - }, - "totalPrice": { - "type": "number" - }, - "calculatedTaxes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_tax_calculated" - ] - }, - "tax": { - "type": "number" - }, - "taxRate": { - "type": "number" - }, - "price": { - "type": "number" - } - }, - "required": [ - "apiAlias", - "tax", - "taxRate", - "price" - ] - } - }, - "referencePrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartPriceReference" - }, - { - "type": "null" - } - ] - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" - } - ] - }, - "positionPrice": { - "type": "number" - }, - "netPrice": { - "type": "number" - }, - "regulationPrice": { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - }, - "nullable": true - }, - "hasRange": { - "type": "boolean" - }, - "variantId": { - "type": "string", - "format": "^[0-9a-f]{32}$", - "nullable": true - }, - "apiAlias": { - "type": "string", - "enum": [ - "calculated_price" - ] - }, - "taxRules": { - "type": "array", - "description": "Currently active tax rules and/or rates", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } - } - } - }, - "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "referencePrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitPrice", - "positionPrice", - "netPrice", - "taxRules" - ] - }, - "NavigationType": { - "type": "string", - "enum": [ - "main-navigation", - "footer-navigation", - "service-navigation" - ] - }, "ShippingMethodPageRouteResponse": { "type": "array", "items": { @@ -13353,271 +13673,895 @@ } } }, - "FindProductVariantRouteResponse": { + "Sitemap": { "type": "object", "properties": { - "foundCombination": { + "filename": { + "type": "string" + }, + "created": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "filename", + "created" + ] + }, + "AggregationEntity": { + "title": "AggregationEntity", + "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", + "enum": [ + "entity" + ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "definition": { + "description": "The entity definition e.g \"product_manufacturer\".", + "type": "string" + } + }, + "required": [ + "name", + "type", + "field", + "definition" + ] + }, + "AggregationFilter": { + "title": "AggregationFilter", + "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", + "enum": [ + "filter" + ] + }, + "filter": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Filters" + } + } + }, + "required": [ + "name", + "type", + "filter" + ] + }, + "AggregationTerms": { + "title": "AggregationTerms", + "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", + "enum": [ + "terms" + ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "limit": { + "description": "The number of terms to return", + "type": "number" + }, + "sort": { + "type": "array", + "description": "Sorting the aggregation result.", + "items": { + "$ref": "#/components/schemas/Sort" + } + } + }, + "required": [ + "name", + "type", + "field" + ] + }, + "AggregationHistogram": { + "title": "AggregationHistogram", + "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", + "enum": [ + "histogram" + ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "interval": { + "description": "The interval of the histogram", + "type": "number" + }, + "format": { + "description": "The format of the histogram", + "type": "string" + }, + "timeZone": { + "description": "The timezone of the histogram", + "type": "string" + } + }, + "required": [ + "name", + "type", + "field" + ] + }, + "AggregationRange": { + "title": "AggregationRange", + "description": "For more information, see [Aggregations Reference > Range Aggregation](https://developer.shopware.com/docs/resources/references/core-reference/dal-reference/aggregations-reference.html#range-aggregations)", + "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", + "enum": [ + "range" + ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "ranges": { + "description": "The ranges of the aggregation", + "type": "array", + "items": { + "type": "object", + "anyOf": [ + { + "type": "object", + "title": "From and to", + "properties": { + "from": { + "type": "number", + "description": "The lower bound of the range" + }, + "to": { + "type": "number", + "description": "The upper bound of the range" + } + }, + "required": [ + "from", + "to" + ] + }, + { + "type": "object", + "title": "From only", + "properties": { + "from": { + "type": "string", + "description": "The lower bound of the range" + } + }, + "required": [ + "from" + ] + }, + { + "type": "object", + "title": "To only", + "properties": { + "to": { + "type": "string", + "description": "The upper bound of the range" + } + }, + "required": [ + "to" + ] + } + ] + } + } + }, + "required": [ + "name", + "type", + "field", + "ranges" + ] + }, + "LineItemType": { + "type": "string", + "enum": [ + "product", + "credit", + "custom", + "promotion", + "discount", + "container", + "quantity" + ] + }, + "LineItem": { + "type": "object", + "properties": { + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } + }, + "cover": { + "$ref": "#/components/schemas/Media" + }, + "dataContextHash": { + "type": "string" + }, + "dataTimestamp": { + "type": "string" + }, + "deliveryInformation": { + "$ref": "#/components/schemas/CartDeliveryInformation" + }, + "description": { + "type": "string" + }, + "good": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "modified": { + "type": "boolean" + }, + "modifiedByApp": { + "type": "boolean" + }, + "payload": { + "$ref": "#/components/schemas/ProductJsonApi" + }, + "price": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "calculated_price" + ] + }, + "calculatedTaxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_tax_calculated" + ] + }, + "tax": { + "type": "number" + }, + "taxRate": { + "type": "number" + }, + "price": { + "type": "number" + } + }, + "required": [ + "apiAlias", + "tax", + "taxRate", + "price" + ] + } + }, + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartListPrice" + }, + { + "type": "null" + } + ] + }, + "quantity": { + "type": "number" + }, + "referencePrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartPriceReference" + }, + { + "type": "null" + } + ] + }, + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } + }, + { + "type": "null" + } + ] + }, + "totalPrice": { + "type": "number" + }, + "unitPrice": { + "type": "number" + }, + "taxRules": { + "type": "array", + "description": "Currently active tax rules and/or rates", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } + } + }, + "required": [ + "apiAlias", + "totalPrice", + "quantity", + "unitPrice" + ] + }, + "priceDefinition": { + "$ref": "#/components/schemas/CartPriceQuantity" + }, + "quantity": { + "type": "number" + }, + "quantityInformation": { + "type": "object", + "properties": { + "maxPurchase": { + "type": "number" + }, + "minPurchase": { + "type": "number" + }, + "purchaseSteps": { + "type": "number" + } + } + }, + "referencedId": { + "type": "string" + }, + "removable": { + "type": "boolean" + }, + "stackable": { + "type": "boolean" + }, + "states": { + "deprecated": true, + "type": "array", + "items": { + "type": "string", + "enum": [ + "is-physical", + "is-download" + ] + } + }, + "type": { + "$ref": "#/components/schemas/LineItemType" + }, + "uniqueIdentifier": { + "type": "string" + } + }, + "required": [ + "id", + "type", + "deliveryInformation", + "payload", + "quantity", + "states" + ] + }, + "CrossSellingElementCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CrossSellingElement" + } + }, + "CartError": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "properties": { + "key": { + "type": "string" + }, + "level": { + "type": "number", + "enum": [ + 0, + 10, + 20 + ], + "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" + }, + "message": { + "type": "string" + }, + "messageKey": { + "type": "string" + } + }, + "required": [ + "key", + "level", + "message", + "messageKey" + ] + }, + "FindProductVariantRouteResponse": { + "type": "object", + "properties": { + "foundCombination": { + "type": "object", + "properties": { + "variantId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "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" + }, + "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.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + } + } + ] + }, + "NavigationType": { + "type": "string", + "enum": [ + "main-navigation", + "footer-navigation", + "service-navigation" + ] + }, + "WishlistLoadRouteResponse": { + "type": "object", + "required": [ + "products" + ], + "properties": { + "wishlist": { + "type": "object", + "properties": { + "customerId": { + "type": "string" + }, + "salesChannelId": { + "type": "string" + } + } + }, + "products": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + }, + "AggregationMetrics": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "avg", + "count", + "max", + "min", + "stats", + "sum" + ] + }, + "field": { + "type": "string" + } + }, + "required": [ + "name", + "type", + "field" + ] + }, + "CartDeliveryInformation": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_information" + ] + }, + "freeDelivery": { + "type": "boolean" + }, + "deliveryTime": { "type": "object", "properties": { - "variantId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "type": "string" }, - "options": { - "type": "array", - "items": { - "type": "string" - } + "min": { + "type": "integer" + }, + "max": { + "type": "integer" + }, + "unit": { + "type": "string" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_time" + ] } } - } - } - }, - "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 + "height": { + "type": "integer" + }, + "length": { + "type": "integer" + }, + "restockTime": { + "type": "integer" + }, + "stock": { + "type": "integer" + }, + "weight": { + "type": "integer" + }, + "width": { + "type": "integer" } - } - }, - "LineItemType": { - "type": "string", - "enum": [ - "product", - "credit", - "custom", - "promotion", - "discount", - "container", - "quantity" + }, + "required": [ + "apiAlias" ] }, - "LineItem": { + "CartItems": { "type": "object", + "required": [ + "items" + ], "properties": { - "children": { + "items": { "type": "array", "items": { "$ref": "#/components/schemas/LineItem" } - }, - "cover": { - "$ref": "#/components/schemas/ProductMedia" - }, - "dataContextHash": { - "type": "string" - }, - "dataTimestamp": { - "type": "string" - }, - "deliveryInformation": { - "$ref": "#/components/schemas/CartDeliveryInformation" - }, - "description": { - "type": "string" - }, - "good": { - "type": "boolean" - }, - "id": { - "type": "string" - }, - "label": { + } + } + }, + "Breadcrumb": { + "type": "object", + "properties": { + "name": { "type": "string" }, - "modified": { - "type": "boolean" - }, - "modifiedByApp": { - "type": "boolean" + "categoryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "payload": { - "$ref": "#/components/schemas/ProductJsonApi" + "type": { + "type": "string", + "enum": [ + "page", + "link", + "folder" + ] }, - "price": { + "translated": { "type": "object", + "additionalProperties": true, "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "calculated_price" - ] + "customFields": { + "type": "object" }, - "calculatedTaxes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_tax_calculated" - ] - }, - "tax": { - "type": "number" - }, - "taxRate": { - "type": "number" - }, - "price": { - "type": "number" - } - }, - "required": [ - "apiAlias", - "tax", - "taxRate", - "price" - ] - } + "slotConfig": { + "type": "object" }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" - } + "linkType": { + "type": "string", + "enum": [ + "external", + "category", + "product", + "landing_page" ] }, - "quantity": { - "type": "number" - }, - "referencePrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartPriceReference" - }, - { - "type": "null" - } - ] + "internalLink": { + "type": "string" }, - "regulationPrice": { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - }, - "nullable": true + "externalLink": { + "type": "string" }, - "totalPrice": { - "type": "number" + "linkNewTab": { + "type": "boolean" }, - "unitPrice": { - "type": "number" + "description": { + "type": "string" }, - "taxRules": { - "type": "array", - "description": "Currently active tax rules and/or rates", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } - } - } - }, - "required": [ - "apiAlias", - "totalPrice", - "quantity", - "unitPrice" - ] - }, - "priceDefinition": { - "$ref": "#/components/schemas/CartPriceQuantity" - }, - "quantity": { - "type": "number" - }, - "quantityInformation": { - "type": "object", - "properties": { - "maxPurchase": { - "type": "number" + "metaTitle": { + "type": "string" }, - "minPurchase": { - "type": "number" + "metaDescription": { + "type": "string" }, - "purchaseSteps": { - "type": "number" + "keywords": { + "type": "string" } } }, - "referencedId": { + "path": { "type": "string" }, - "removable": { - "type": "boolean" - }, - "stackable": { - "type": "boolean" - }, - "states": { + "seoUrls": { "type": "array", "items": { - "type": "string", - "enum": [ - "is-physical", - "is-download" - ] + "$ref": "#/components/schemas/SeoUrl" } }, - "type": { - "$ref": "#/components/schemas/LineItemType" - }, - "uniqueIdentifier": { - "type": "string" + "apiAlias": { + "type": "string", + "enum": [ + "breadcrumb" + ] } }, "required": [ - "id", - "type" + "name", + "categoryId", + "type", + "translated", + "path", + "apiAlias" ] }, - "CartDelivery": { + "SalesChannelContext": { "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "deliveryDate": { + "token": { + "description": "Context the user session", + "type": "string" + }, + "currentCustomerGroup": { "type": "object", + "description": "Customer group of the current user", "properties": { - "earliest": { - "type": "string", - "format": "date-time" + "name": { + "type": "string" }, - "latest": { - "type": "string", - "format": "date-time" + "displayGross": { + "type": "boolean" } } }, - "location": { + "fallbackCustomerGroup": { + "description": "Fallback group if the default customer group is not applicable", + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "displayGross": { + "type": "boolean" + } + } + }, + "currency": { + "$ref": "#/components/schemas/Currency" + }, + "salesChannel": { + "$ref": "#/components/schemas/SalesChannel" + }, + "measurementSystem": { + "$ref": "#/components/schemas/ContextMeasurementSystemInfo" + }, + "taxRules": { + "type": "array", + "description": "Currently active tax rules and/or rates", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } + }, + "customer": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Customer" + } + ] + }, + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod" + }, + "shippingLocation": { "type": "object", "properties": { "apiAlias": { @@ -13631,79 +14575,301 @@ }, "address": { "$ref": "#/components/schemas/CustomerAddress" + } + } + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" + }, + "context": { + "description": "Core context with general configuration values and state", + "type": "object", + "properties": { + "versionId": { + "type": "string" }, - "state": { - "$ref": "#/components/schemas/CountryState" + "currencyId": { + "type": "string" + }, + "currencyFactor": { + "type": "integer" + }, + "currencyPrecision": { + "type": "integer", + "format": "int32" + }, + "languageIdChain": { + "type": "array", + "items": { + "type": "string" + } + }, + "scope": { + "type": "string" + }, + "source": { + "type": "object", + "required": [ + "salesChannelId", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "sales-channel", + "shop-api" + ] + }, + "salesChannelId": { + "type": "string" + } + } + }, + "taxState": { + "type": "string" + }, + "useCache": { + "type": "boolean" } } }, - "positions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDeliveryPosition" + "itemRounding": { + "type": "object", + "required": [ + "decimals", + "interval", + "roundForNet", + "apiAlias" + ], + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" + ] + }, + "decimals": { + "type": "integer", + "format": "int32" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" + } } }, - "shippingCosts": { - "$ref": "#/components/schemas/CalculatedPrice" + "totalRounding": { + "type": "object", + "required": [ + "decimals", + "interval", + "roundForNet", + "apiAlias" + ], + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" + ] + }, + "decimals": { + "type": "integer", + "format": "int32" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" + } + } }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" + "languageInfo": { + "type": "object", + "required": [ + "localeCode", + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "localeCode": { + "type": "string" + } + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "sales_channel_context" + ] + } + }, + "required": [ + "salesChannel", + "apiAlias", + "itemRounding", + "totalRounding", + "languageInfo" + ] + }, + "Association": { + "additionalProperties": { + "$ref": "#/components/schemas/Association" + } + }, + "ContextMeasurementSystemInfo": { + "type": "object", + "description": "Configuration of the measurement system used in the store, by default including units for length and weight.", + "properties": { + "system": { + "type": "string", + "enum": [ + "metric", + "imperial" + ], + "default": "metric", + "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." + }, + "units": { + "type": "object", + "description": "Units used in the measurement system.", + "properties": { + "length": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm", + "description": "Unit of length." + }, + "weight": { + "type": "string", + "enum": [ + "g", + "kg", + "oz", + "lb" + ], + "default": "kg", + "description": "Unit of weight." + } + } } } }, - "AggregationMetrics": { + "ListPrice": { "type": "object", + "description": "", "properties": { - "name": { - "type": "string" + "discount": { + "type": "number" }, - "type": { + "percentage": { + "type": "number" + }, + "price": { + "type": "number" + }, + "apiAlias": { "type": "string", "enum": [ - "avg", - "count", - "max", - "min", - "stats", - "sum" + "cart_list_price" ] - }, - "field": { - "type": "string" } }, "required": [ - "name", - "type", - "field" + "apiAlias" ] }, - "OrderRouteResponse": { + "Price": { "type": "object", + "description": "Price object", "properties": { - "orders": { - "allOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - } + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" + }, + "listPrice": { + "description": "", + "type": "object", + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - { - "$ref": "#/components/schemas/EntitySearchResult" + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" } + }, + "required": [ + "gross", + "net" ] }, - "paymentChangeable": { + "regulationPrice": { + "description": "", "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" - } + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" + } + }, + "required": [ + "gross", + "net" + ] } }, "required": [ - "orders" + "currencyId", + "gross", + "net" ] }, "ProductListingResult": { @@ -13746,8 +14912,14 @@ ] }, "rating": { - "type": "integer", - "nullable": true + "oneOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] }, "shipping-free": { "type": "boolean", @@ -13846,6 +15018,57 @@ } ] }, + "CookieGroup": { + "type": "object", + "properties": { + "isRequired": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "cookie": { + "type": "string" + }, + "value": { + "type": "string" + }, + "expiration": { + "type": "integer" + }, + "entries": { + "$ref": "#/components/schemas/CookieEntryCollection" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cookie_group" + ] + } + }, + "not": { + "allOf": [ + { + "required": [ + "cookie" + ] + }, + { + "required": [ + "entries" + ] + } + ] + }, + "required": [ + "name", + "isRequired", + "apiAlias" + ] + }, "CustomerAddressBody": { "description": "Added since version: 6.0.0.0", "required": [ @@ -13889,462 +15112,986 @@ "department": { "type": "string" }, - "title": { + "title": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "additionalAddressLine1": { + "type": "string" + }, + "additionalAddressLine2": { + "type": "string" + }, + "customFields": { + "type": "object" + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "countryState": { + "$ref": "#/components/schemas/CountryState" + }, + "salutation": { + "$ref": "#/components/schemas/Salutation" + } + }, + "type": "object" + }, + "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" + } + } + }, + "required": [ + "product" + ] + }, + "CartPriceQuantity": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_quantity" + ] + }, + "isCalculated": { + "type": "boolean" + }, + "listPrice": { + "$ref": "#/components/schemas/CartListPrice" + }, + "price": { + "type": "number" + }, + "quantity": { + "type": "number" + }, + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "taxRules": { + "type": "array", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } + }, + "type": { + "type": "string" + } + }, + "required": [ + "apiAlias" + ] + }, + "MeasurementUnits": { + "type": "object", + "description": "Configuration of the measurement system", + "properties": { + "system": { + "type": "string", + "enum": [ + "metric", + "imperial" + ], + "default": "metric", + "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." + }, + "units": { + "type": "object", + "description": "Units used in the measurement system.", + "properties": { + "length": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm", + "description": "Unit of length." + }, + "weight": { + "type": "string", + "enum": [ + "g", + "kg", + "oz", + "lb" + ], + "default": "kg", + "description": "Unit of weight." + } + } + } + } + }, + "CookieEntry": { + "type": "object", + "properties": { + "cookie": { + "type": "string" + }, + "value": { "type": "string" }, - "phoneNumber": { - "type": "string" + "expiration": { + "type": "integer" }, - "additionalAddressLine1": { + "name": { "type": "string" }, - "additionalAddressLine2": { + "description": { "type": "string" }, - "customFields": { - "type": "object" - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "$ref": "#/components/schemas/CountryState" - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" - } - }, - "type": "object" - }, - "AccountNewsletterRecipient": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "undefined", - "notSet", - "direct", - "optIn", - "optOut" - ] + "hidden": { + "type": "boolean" }, "apiAlias": { "type": "string", "enum": [ - "account_newsletter_recipient" + "cookie_entry" ] } }, "required": [ - "status", + "cookie", + "hidden", "apiAlias" ] }, - "CrossSellingElement": { + "CookieRouteResponse": { "type": "object", + "description": "Response containing cookie groups and their configuration hash.", "properties": { - "crossSelling": { - "$ref": "#/components/schemas/ProductCrossSelling" + "apiAlias": { + "type": "string", + "enum": [ + "cookie_groups_hash" + ] }, - "products": { + "elements": { "type": "array", + "description": "Collection of cookie groups", "items": { - "$ref": "#/components/schemas/Product" + "$ref": "#/components/schemas/CookieGroup" } }, - "total": { - "type": "integer", - "format": "int32" - }, - "streamId": { + "hash": { "type": "string", - "format": "uuid" + "description": "Hash of the current cookie configuration. Can be used to detect changes in cookie configuration.", + "example": "f86b6a872cb83dbd22d838ceda1aa3d4" }, - "apiAlias": { + "languageId": { "type": "string", - "enum": [ - "cross_selling_element" - ] + "format": "uuid", + "description": "The language ID for which the cookie configuration was generated. Used to store hashes per language.", + "example": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" } }, "required": [ - "crossSelling", - "products", - "total", + "elements", + "hash", + "languageId", "apiAlias" - ] + ], + "example": { + "apiAlias": "cookie_groups_hash", + "elements": [ + { + "isRequired": true, + "description": "Cookies required for this shop to function:", + "name": "Technically required", + "entries": [ + { + "name": "Session", + "hidden": false, + "cookie": "session-", + "apiAlias": "cookie_entry" + }, + { + "name": "Timezone", + "hidden": false, + "cookie": "timezone", + "apiAlias": "cookie_entry" + }, + { + "value": "1", + "expiration": 30, + "name": "Cookie preferences", + "hidden": true, + "cookie": "cookie-preference", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + }, + { + "isRequired": false, + "description": "Cookies used for statistics and shop performance metrics.", + "name": "Statistics", + "entries": [ + { + "value": "1", + "expiration": 30, + "name": "Google Analytics", + "hidden": false, + "cookie": "google-analytics-enabled", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + }, + { + "isRequired": false, + "description": "Allows Google to collect personal data for online advertising and marketing.", + "name": "Marketing", + "entries": [ + { + "value": "1", + "expiration": 30, + "name": "Google Advertising", + "hidden": false, + "cookie": "google-ads-enabled", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + }, + { + "isRequired": false, + "name": "Comfort features", + "entries": [ + { + "value": "1", + "expiration": 30, + "name": "YouTube video", + "hidden": false, + "cookie": "youtube-video", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + } + ], + "hash": "f86b6a872cb83dbd22d838ceda1aa3d4", + "languageId": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" + } }, - "CustomerAddressRead": { + "Criteria": { "type": "object", + "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true + "page": { + "description": "Search result page", + "type": "integer" }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true + "term": { + "description": "Search term", + "type": "string" }, - "createdAt": { - "type": "string", - "format": "date-time" + "limit": { + "description": "Number of items per result page", + "type": "integer" }, - "updatedAt": { + "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": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + }, + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } + }, + "query": { "type": "string", - "format": "date-time", - "nullable": true + "description": "The query string to search for" }, - "country": { - "$ref": "#/components/schemas/Country" + "associations": { + "$ref": "#/components/schemas/Associations" }, - "countryState": { - "$ref": "#/components/schemas/CountryState", - "nullable": true + "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": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" + } + }, + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } + }, + "fields": { + "type": "array", + "description": "Fields which should be returned in the search result.", + "items": { + "type": "string", + "description": "Name of a field" + } + }, + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" + } + }, + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" + }, + "includes": { + "$ref": "#/components/schemas/Includes" + }, + "excludes": { + "$ref": "#/components/schemas/Excludes" } - }, - "required": [ - "customerId", - "createdAt", - "updatedAt", - "country", - "salutation" - ] + } }, - "CartPriceQuantity": { + "NoneFieldsCriteria": { "type": "object", + "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_quantity" - ] + "page": { + "description": "Search result page", + "type": "integer" }, - "isCalculated": { - "type": "boolean" + "term": { + "description": "Search term", + "type": "string" }, - "listPrice": { - "$ref": "#/components/schemas/CartListPrice" + "limit": { + "description": "Number of items per result page", + "type": "integer" }, - "price": { - "type": "number" + "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": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + }, + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } }, - "quantity": { - "type": "number" + "query": { + "type": "string", + "description": "The query string to search for" }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" + "associations": { + "$ref": "#/components/schemas/Associations" }, - "taxRules": { + "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": { - "taxRate": { - "type": "number", - "format": "float" + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" }, - "name": { - "type": "string" + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } - } + ] } }, - "type": { - "type": "string" - } - }, - "required": [ - "apiAlias" - ] - }, - "EntitySearchResult": { - "type": "object", - "properties": { - "entity": { - "type": "string" - }, - "total": { - "type": "integer", - "description": "The total number of found entities" + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" + } }, "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" + "$ref": "#/components/schemas/Aggregation" } }, - "page": { - "type": "integer", - "description": "The actual page. This can be used for pagination." + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" + } }, - "limit": { - "type": "integer", - "description": "The actual limit. This is used for pagination and goes together with the page." + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" + }, + "includes": { + "$ref": "#/components/schemas/Includes" + }, + "excludes": { + "$ref": "#/components/schemas/Excludes" } } }, - "CartError": { + "Associations": { "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "properties": { + "additionalProperties": { + "$ref": "#/components/schemas/Criteria" + } + }, + "Includes": { + "type": "object", + "additionalProperties": { + "type": "array", "items": { - "type": "object", - "properties": { - "key": { - "type": "string" - }, - "level": { - "type": "number", - "enum": [ - 0, - 10, - 20 - ], - "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" - }, - "message": { - "type": "string" - }, - "messageKey": { - "type": "string" - } - } + "type": "string" } } }, - "Cart": { + "Excludes": { "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", + "additionalProperties": { + "type": "array", + "items": { "type": "string" + } + } + }, + "Aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" }, - "price": { - "$ref": "#/components/schemas/CalculatedPrice" + { + "title": "AggregationEntity", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationEntity" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] }, - "lineItems": { - "description": "All items within the cart", - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" - } + { + "title": "AggregationFilter", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationFilter" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] }, - "errors": { - "type": "array", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "items": { - "$ref": "#/components/schemas/CartError" - } + { + "title": "AggregationTerms", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationTerms" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] }, - "deliveries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDelivery" - } + { + "title": "AggregationHistogram", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationHistogram" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] }, - "transactions": { - "description": "A list of all payment transactions associated with the current cart.", - "type": "array", - "items": { - "type": "object", - "properties": { - "paymentMethodId": { - "type": "string" - }, - "amount": { - "$ref": "#/components/schemas/CalculatedPrice" - } + { + "title": "AggregationRange", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationRange" + }, + { + "$ref": "#/components/schemas/SubAggregations" } - } + ] + } + ] + }, + "SubAggregations": { + "type": "object", + "properties": { + "aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" + }, + { + "$ref": "#/components/schemas/AggregationEntity" + }, + { + "$ref": "#/components/schemas/AggregationFilter" + }, + { + "$ref": "#/components/schemas/AggregationTerms" + }, + { + "$ref": "#/components/schemas/AggregationHistogram" + }, + { + "$ref": "#/components/schemas/AggregationRange" + } + ] + } + } + }, + "TotalCountMode": { + "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" + ] + }, + "Query": { + "type": "object", + "properties": { + "score": { + "type": "number" }, - "modified": { - "type": "boolean" + "query": { + "oneOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + }, + "additionalProperties": true + }, + "Sort": { + "type": "object", + "properties": { + "field": { + "type": "string" }, - "customerComment": { + "order": { "type": "string", - "description": "A comment that can be added to the cart.", - "nullable": true + "enum": [ + "ASC", + "DESC" + ] }, - "affiliateCode": { - "type": "string", - "description": "An affiliate tracking code", - "nullable": true + "naturalSorting": { + "type": "boolean" }, - "campaignCode": { - "type": "string", - "description": "A campaign tracking code", - "nullable": true + "type": { + "type": "string" } + }, + "required": [ + "field", + "order" + ] + }, + "Filters": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] } }, - "CartPriceReference": { + "SimpleFilter": { "type": "object", "properties": { - "purchaseUnit": { - "type": "number" - }, - "referenceUnit": { - "type": "number" + "type": { + "type": "string", + "enum": [ + "contains", + "equalsAny", + "prefix", + "suffix" + ] }, - "unitName": { + "field": { "type": "string" }, - "price": { - "type": "number" - }, - "apiAlias": { + "value": { + "type": "string" + } + }, + "required": [ + "type", + "field", + "value" + ] + }, + "EqualsFilter": { + "type": "object", + "properties": { + "type": { "type": "string", "enum": [ - "cart_price_reference" + "equals" ] }, - "listPrice": { + "field": { + "type": "string" + }, + "value": { "oneOf": [ { - "$ref": "#/components/schemas/CartListPrice" + "type": "string" }, { - "type": "null" - } - ] - }, - "regulationPrice": { - "type": "object", - "properties": { - "price": { "type": "number" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] + { + "type": "boolean" + }, + { + "type": "null" } - }, - "nullable": true - }, - "hasRange": { - "type": "boolean" - }, - "variantId": { - "type": "string", - "format": "^[0-9a-f]{32}$", - "nullable": true + ] } }, "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" + "type", + "field", + "value" ] }, - "CartListPrice": { + "MultiNotFilter": { "type": "object", - "description": "", "properties": { - "discount": { - "type": "number" - }, - "percentage": { - "type": "number" - }, - "price": { - "type": "number" + "type": { + "type": "string", + "enum": [ + "multi", + "not" + ] }, - "apiAlias": { + "operator": { "type": "string", "enum": [ - "cart_list_price" + "and", + "or", + "nor", + "nand" ] + }, + "queries": { + "$ref": "#/components/schemas/Filters" } }, "required": [ - "apiAlias" + "type", + "operator", + "queries" ] }, - "CrossSellingElementCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CrossSellingElement" - } - }, - "CartDeliveryInformation": { + "RangeFilter": { "type": "object", "properties": { - "apiAlias": { + "type": { "type": "string", "enum": [ - "cart_delivery_information" + "range" ] }, - "freeDelivery": { - "type": "boolean" + "field": { + "type": "string" }, - "deliveryTime": { + "parameters": { "type": "object", "properties": { - "name": { - "type": "string" + "gte": { + "type": "number" }, - "min": { - "type": "integer" + "gt": { + "type": "number" }, - "max": { - "type": "integer" + "lte": { + "type": "number" }, - "unit": { - "type": "string" + "lt": { + "type": "number" + } + } + } + }, + "required": [ + "type", + "field", + "parameters" + ] + }, + "CustomerAddressRead": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true + }, + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true + }, + "createdAt": { + "type": "string", + "format": "date-time" + }, + "updatedAt": { + "oneOf": [ + { + "type": "string", + "format": "date-time" }, - "apiAlias": { + { + "type": "null" + } + ] + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "countryState": { + "oneOf": [ + { + "$ref": "#/components/schemas/CountryState" + }, + { + "type": "null" + } + ] + }, + "salutation": { + "$ref": "#/components/schemas/Salutation" + } + }, + "required": [ + "customerId", + "createdAt", + "updatedAt", + "country", + "salutation" + ] + }, + "ProductMeasurements": { + "type": "object", + "description": "Runtime field, cannot be used as part of the criteria. Measurements of a product, including dimensions and weight.", + "properties": { + "width": { + "type": "object", + "properties": { + "unit": { "type": "string", "enum": [ - "cart_delivery_time" - ] + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm" + }, + "value": { + "type": "number" } } }, "height": { - "type": "integer" + "type": "object", + "properties": { + "unit": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm" + }, + "value": { + "type": "number" + } + } }, "length": { - "type": "integer" - }, - "restockTime": { - "type": "integer" - }, - "stock": { - "type": "integer" + "type": "object", + "properties": { + "unit": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm" + }, + "value": { + "type": "number" + } + } }, "weight": { - "type": "integer" + "type": "object", + "properties": { + "unit": { + "type": "string", + "enum": [ + "g", + "kg", + "oz", + "lb" + ], + "default": "kg" + }, + "value": { + "type": "number" + } + } + } + } + }, + "AccountNewsletterRecipient": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "undefined", + "notSet", + "direct", + "optIn", + "optOut" + ] }, - "width": { - "type": "integer" + "apiAlias": { + "type": "string", + "enum": [ + "account_newsletter_recipient" + ] } }, "required": [ + "status", "apiAlias" ] } @@ -14485,26 +16232,55 @@ "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", + "ProductListResponse": { + "description": "Entity search result containing products", + "content": { + "application/json": { "schema": { - "type": "string" + "allOf": [ + { + "required": [ + "elements" + ], + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } } - }, + } + }, + "CategoryListResponse": { + "description": "Entity search result containing categories.", "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "redirectUrl": { - "description": "Define the URL which browser will be redirected to", - "type": "string" + "allOf": [ + { + "type": "object", + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" + } + } + } + }, + { + "$ref": "#/components/schemas/EntitySearchResult" } - } + ] } } } @@ -14627,72 +16403,302 @@ "callbacks": { "type": "object" }, - "pathItems": { + "pathItems": { + "type": "object" + } + } + }, + "security": { + "type": "array", + "items": { + "type": "object" + } + }, + "paths": { + "type": "object" + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "externalDocs": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url" + ] + } + }, + "required": [ + "name" + ] + } + }, + "externalDocs": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url" + ] + } + }, + "type": "object", + "required": [ + "openapi", + "info" + ] + } + } + } + }, + "CountryStateListResponse": { + "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" + } + ] + } + } + } + }, + "CurrencyListResponse": { + "description": "Entity search result containing currencies.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Currency" + } + } + } + } + }, + "SeoUrlListResponse": { + "description": "Entity search result containing seo urls.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeoUrl" + } + } + }, + "type": "object", + "required": [ + "elements" + ] + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + }, + "PaymentMethodListResponse": { + "description": "", + "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" + } + } + } + }, + "ShippingMethodListResponse": { + "description": "Entity search result containing shipping methods.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "required": [ + "elements" + ], + "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", "type": "object" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ShippingMethod" + } } - } - }, - "security": { - "type": "array", - "items": { - "type": "object" - } + }, + "type": "object" }, - "paths": { + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + }, + "SalutationListResponse": { + "description": "Entity search result containing salutations.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Salutation" + } + } + }, "type": "object" }, - "tags": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "externalDocs": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "url" - ] + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + }, + "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" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redirectUrl": { + "description": "Define the URL which browser will be redirected to", + "type": "string" + } + } + } + } + } + }, + "CountryListResponse": { + "description": "Entity search result containing countries.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Country" } - }, - "required": [ - "name" - ] - } + } + }, + "type": "object" }, - "externalDocs": { - "type": "object", + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + }, + "LanguageListResponse": { + "description": "Entity search result containing languages.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Language" + } } }, "required": [ - "url" - ] + "elements" + ], + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" } - }, - "type": "object", - "required": [ - "openapi", - "info" ] } } @@ -14719,6 +16725,235 @@ "type": "string", "default": "application/json" } + }, + "noAggregations": { + "name": "no-aggregations", + "in": "query", + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "onlyAggregations": { + "name": "only-aggregations", + "in": "query", + "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.", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "criteriaPage": { + "name": "page", + "in": "query", + "description": "Search result page", + "schema": { + "type": "integer" + } + }, + "criteriaLimit": { + "name": "limit", + "in": "query", + "description": "Number of items per result page", + "schema": { + "type": "integer" + } + }, + "criteriaTerm": { + "name": "term", + "in": "query", + "description": "Search term", + "schema": { + "type": "string" + } + }, + "criteriaFilter": { + "name": "filter[]", + "in": "query", + "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)", + "schema": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + } + }, + "criteriaIds": { + "name": "ids[]", + "in": "query", + "description": "List of ids to search for", + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "criteriaQuery": { + "name": "query", + "in": "query", + "description": "The query string to search for", + "schema": { + "type": "string" + } + }, + "criteriaAssociations": { + "name": "associations", + "in": "query", + "description": "", + "schema": { + "$ref": "#/components/schemas/Associations" + }, + "style": "deepObject", + "explode": true + }, + "criteriaPostFilter": { + "name": "post-filter[]", + "in": "query", + "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)", + "schema": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + } + }, + "criteriaSort": { + "name": "sort[]", + "in": "query", + "description": "Sorting in the search result.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Sort" + } + } + }, + "criteriaAggregations": { + "name": "aggregations[]", + "in": "query", + "description": "", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } + } + }, + "criteriaFields": { + "name": "fields[]", + "in": "query", + "description": "Fields which should be returned in the search result.", + "schema": { + "type": "array", + "items": { + "type": "string", + "description": "Name of a field" + } + } + }, + "criteriaGrouping": { + "name": "grouping[]", + "in": "query", + "description": "Perform groupings over certain fields", + "schema": { + "type": "array", + "items": { + "type": "string", + "description": "Name of a field" + } + } + }, + "criteriaTotalCountMode": { + "name": "total-count-mode", + "in": "query", + "description": "", + "schema": { + "$ref": "#/components/schemas/TotalCountMode" + } + }, + "criteriaIncludes": { + "name": "includes", + "in": "query", + "description": "Specify the fields that should be returned for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Fields will not be included, if they are also specified in the excludes. Note that the include fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons.", + "schema": { + "$ref": "#/components/schemas/Includes" + }, + "style": "deepObject", + "explode": true + }, + "criteriaExcludes": { + "name": "excludes", + "in": "query", + "description": "Specify the fields that should be excluded from the response for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Note that the exclude fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons.", + "schema": { + "$ref": "#/components/schemas/Excludes" + }, + "style": "deepObject", + "explode": true + }, + "CompressedCriteria": { + "name": "_criteria", + "in": "query", + "description": "Compressed and encoded criteria object. Format: base64url(gzip(json_encode(criteria))). This parameter allows passing complex criteria as a single encoded string instead of multiple query parameters. The criteria object should be JSON-encoded, then gzipped, and finally base64url-encoded. The criteria object structure is defined in the Criteria schema (see #/components/schemas/Criteria).", + "required": false, + "schema": { + "type": "string", + "format": "base64url", + "example": "H4sIAAAAAAAAA6tWykpNzFGyqlbKz8lPTSxRslJKSi0pzSsFAGcQr7sHAAAA" + } + }, + "CompressedNoneFieldsCriteria": { + "name": "_criteria", + "in": "query", + "description": "Compressed and encoded criteria object. Format: base64url(gzip(json_encode(criteria))). This parameter allows passing complex criteria as a single encoded string instead of multiple query parameters. The criteria object should be JSON-encoded, then gzipped, and finally base64url-encoded. The criteria object structure is defined in the NoneFieldsCriteria schema (see #/components/schemas/NoneFieldsCriteria).", + "required": false, + "schema": { + "type": "string", + "format": "base64url", + "example": "H4sIAAAAAAAAA6tWykpNzFGyqlbKz8lPTSxRslJKSi0pzSsFAGcQr7sHAAAA" + } } }, "securitySchemes": { @@ -14748,7 +16983,7 @@ "description": "Experimental API, not part of our backwards compatibility promise, thus this API can introduce breaking changes at any time.", "externalDocs": { "description": "Find out more", - "url": "https://github.com/shopware/platform/blob/trunk/adr/2023-05-10-experimental-features.md" + "url": "https://github.com/shopware/shopware/blob/trunk/adr/2023-05-10-experimental-features.md" } } ] diff --git a/SwagCustomizedProducts-storeapi.summary.json b/SwagCustomizedProducts-storeapi.summary.json index 0086903..9690699 100644 --- a/SwagCustomizedProducts-storeapi.summary.json +++ b/SwagCustomizedProducts-storeapi.summary.json @@ -3,13 +3,13 @@ "schemas": [ "AccountNewsletterRecipient", "AclRole", + "Aggregation", "AggregationEntity", "AggregationFilter", "AggregationHistogram", "AggregationMetrics", "AggregationRange", "AggregationTerms", - "Aggregations", "App", "AppActionButton", "AppAdministrationSnippet", @@ -21,6 +21,8 @@ "AppShippingMethod", "AppTemplate", "Association", + "Associations", + "Breadcrumb", "CalculatedPrice", "Cart", "CartDelivery", @@ -37,6 +39,12 @@ "CmsPage", "CmsSection", "CmsSlot", + "ContextMeasurementSystemInfo", + "CookieEntry", + "CookieEntryCollection", + "CookieGroup", + "CookieGroupCollection", + "CookieRouteResponse", "Country", "CountryJsonApi", "CountryState", @@ -54,6 +62,7 @@ "Customer", "CustomerAddress", "CustomerAddressBody", + "CustomerAddressJsonApi", "CustomerAddressRead", "CustomerGroup", "CustomerRecovery", @@ -67,6 +76,7 @@ "DocumentType", "EntitySearchResult", "EqualsFilter", + "Excludes", "Filters", "FindProductVariantRouteResponse", "Flow", @@ -75,7 +85,7 @@ "ImportExportFile", "ImportExportLog", "ImportExportProfile", - "Include", + "Includes", "Integration", "LandingPage", "LandingPageJsonApi", @@ -83,6 +93,7 @@ "LanguageJsonApi", "LineItem", "LineItemType", + "ListPrice", "Locale", "LogEntry", "MailHeaderFooter", @@ -91,6 +102,9 @@ "MailTemplateType", "MainCategory", "MainCategoryJsonApi", + "MeasurementDisplayUnit", + "MeasurementSystem", + "MeasurementUnits", "Media", "MediaDefaultFolder", "MediaFolder", @@ -103,6 +117,7 @@ "NavigationType", "NewsletterRecipient", "NewsletterRecipientJsonApi", + "NoneFieldsCriteria", "Notification", "NumberRange", "NumberRangeSalesChannel", @@ -124,6 +139,7 @@ "PaymentMethod", "PaymentMethodJsonApi", "Plugin", + "Price", "Product", "ProductConfiguratorSetting", "ProductCrossSelling", @@ -138,6 +154,7 @@ "ProductListingFlags", "ProductListingResult", "ProductManufacturer", + "ProductMeasurements", "ProductMedia", "ProductPrice", "ProductReview", @@ -158,6 +175,7 @@ "PropertyGroupOption", "Query", "RangeFilter", + "ReferencePrice", "Rule", "RuleCondition", "SalesChannel", diff --git a/SwagDigitalSalesRooms-storeapi.json b/SwagDigitalSalesRooms-storeapi.json index 7875e1b..998eb24 100644 --- a/SwagDigitalSalesRooms-storeapi.json +++ b/SwagDigitalSalesRooms-storeapi.json @@ -704,7 +704,12 @@ }, "type": { "description": "Type of categories like `page`, `folder`, `link`.", - "type": "string" + "type": "string", + "enum": [ + "page", + "link", + "folder" + ] }, "productAssignmentType": { "description": "Type of product assignment: Dynamic product group as or `product_stream` or Manual assignment as `product`.", @@ -734,7 +739,13 @@ "type": "object" }, "linkType": { - "type": "string" + "type": "string", + "enum": [ + "category", + "product", + "external", + "landing_page" + ] }, "internalLink": { "type": "string", @@ -1060,7 +1071,8 @@ "type": "string", "enum": [ "page", - "link" + "link", + "folder" ] }, "productAssignmentType": { @@ -1091,7 +1103,13 @@ "type": "object" }, "linkType": { - "type": "string" + "type": "string", + "enum": [ + "category", + "product", + "external", + "landing_page" + ] }, "internalLink": { "type": "string", @@ -1435,7 +1453,7 @@ "format": "int64" }, "type": { - "description": "Types of sections can be `sidebar` or `fullwidth`.", + "description": "Types of sections can be `default` or `sidebar`.", "type": "string", "enum": [ "default", @@ -2668,6 +2686,213 @@ } ] }, + "CustomerAddressJsonApi": { + "description": "Added since version: 6.0.0.0", + "allOf": [ + { + "$ref": "#/components/schemas/resource" + }, + { + "required": [ + "id", + "customerId", + "countryId", + "firstName", + "lastName", + "city", + "street" + ], + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "customerId": { + "description": "Unique identity of customer.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryId": { + "description": "Unique identity of country.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryStateId": { + "description": "Unique identity of country's state.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salutationId": { + "description": "Unique identity of salutation.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "description": "First name of the customer.", + "type": "string" + }, + "lastName": { + "description": "Last name of the customer.", + "type": "string" + }, + "zipcode": { + "description": "Postal or zip code of customer's address.", + "type": "string" + }, + "city": { + "description": "Name of customer's city.", + "type": "string" + }, + "company": { + "description": "Name of customer's company.", + "type": "string" + }, + "street": { + "description": "Name of customer's street.", + "type": "string" + }, + "department": { + "description": "Name of customer's department.", + "type": "string" + }, + "title": { + "description": "Titles given to customer like Dr. , Prof., etc", + "type": "string" + }, + "phoneNumber": { + "description": "Customer's phone number.", + "type": "string" + }, + "additionalAddressLine1": { + "description": "Additional customer's address information.", + "type": "string" + }, + "additionalAddressLine2": { + "description": "Additional customer's address information.", + "type": "string" + }, + "hash": { + "description": "Runtime field, cannot be used as part of the criteria.", + "type": "string" + }, + "customFields": { + "type": "object" + }, + "isDefaultBillingAddress": { + "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "isDefaultShippingAddress": { + "description": "Added since version: 6.7.7.0. 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 + }, + "relationships": { + "properties": { + "country": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/country" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "country" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "e909c2d7067ea37437cf97fe11d91bd0" + } + } + } + }, + "type": "object" + }, + "countryState": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/countryState" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "country_state" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "cb6a9764567191fb74fe28d8d6a4819d" + } + } + } + }, + "type": "object" + }, + "salutation": { + "properties": { + "links": { + "type": "object", + "properties": { + "related": { + "type": "string", + "format": "uri-reference", + "example": "/customer-address/1b4b031005f93d02d887e7d66efb653b/salutation" + } + } + }, + "data": { + "type": "object", + "properties": { + "type": { + "type": "string", + "example": "salutation" + }, + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "example": "7a6efb02514153b5aa9a8f40c6f8bcc3" + } + } + } + }, + "type": "object" + } + }, + "type": "object" + } + }, + "type": "object" + } + ] + }, "CustomerAddress": { "description": "Added since version: 6.0.0.0", "required": [ @@ -2755,6 +2980,14 @@ "customFields": { "type": "object" }, + "isDefaultBillingAddress": { + "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, + "isDefaultShippingAddress": { + "description": "Added since version: 6.7.7.0. Runtime field, cannot be used as part of the criteria.", + "type": "boolean" + }, "createdAt": { "type": "string", "format": "date-time", @@ -5554,10 +5787,6 @@ "description": "Title name given to customer like DR. , Prof., etc.", "type": "string" }, - "vatId": { - "description": "Unique identity of VAT.", - "type": "string" - }, "phoneNumber": { "description": "Phone number of the customer.", "type": "string" @@ -5577,6 +5806,11 @@ "customFields": { "type": "object" }, + "vatId": { + "description": "Unique identity of VAT.", + "type": "string", + "deprecated": true + }, "createdAt": { "type": "string", "format": "date-time", @@ -6159,7 +6393,16 @@ }, "type": { "description": "Type refers to the entity type of an item whether it is product or promotion for instance.", - "type": "string" + "type": "string", + "enum": [ + "product", + "credit", + "custom", + "promotion", + "container", + "discount", + "quantity" + ] }, "customFields": { "type": "object" @@ -7342,7 +7585,11 @@ }, "type": { "description": "The type of the product, e.g., physical or digital.", - "type": "string" + "type": "string", + "enum": [ + "physical", + "digital" + ] }, "states": { "type": "array", @@ -9347,6 +9594,10 @@ "customFields": { "type": "object" }, + "internal": { + "description": "When the boolean value is `true` indicating that it is for internal use only and will not appear in product stream listings.", + "type": "boolean" + }, "createdAt": { "type": "string", "format": "date-time", @@ -10182,7 +10433,12 @@ }, "routeName": { "description": "A destination routeName that has been registered somewhere in the app's router. For example: \\\\\"frontend.detail.page\\\\\"", - "type": "string" + "type": "string", + "enum": [ + "frontend.detail.page", + "frontend.navigation.page", + "frontend.landing.page" + ] }, "pathInfo": { "description": "Path to product URL. For example: \\\\\"/detail/bbf36734504741c79a3bbe3795b91564\\\\\"", @@ -10264,9 +10520,9 @@ "description": "A destination routeName that has been registered somewhere in the app's router. For example: \\\\\"frontend.detail.page\\\\\"", "type": "string", "enum": [ + "frontend.detail.page", "frontend.navigation.page", - "frontend.landing.page", - "frontend.detail.page" + "frontend.landing.page" ] }, "pathInfo": { @@ -10311,8 +10567,7 @@ "readOnly": true } }, - "type": "object", - "title": "SeoUrlEntity" + "type": "object" }, "SeoUrlTemplate": { "description": "Added since version: 6.0.0.0", @@ -11415,34 +11670,26 @@ }, "type": "object" }, - "EntitySearchResult": { + "ProductDetailResponse": { "type": "object", + "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "entity": { - "type": "string" - }, - "total": { - "type": "integer", - "description": "The total number of found entities" + "product": { + "$ref": "#/components/schemas/Product" }, - "aggregations": { + "configurator": { "type": "array", - "description": "Contains aggregated data. A simple example is the determination of the average price from a product search query.", + "description": "List of property groups with their corresponding options and information on how to display them.", "items": { - "type": "object" + "$ref": "#/components/schemas/PropertyGroup" } - }, - "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." } - } + }, + "required": [ + "product" + ] }, - "CartDelivery": { + "CartDeliveryPosition": { "type": "object", "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { @@ -11459,84 +11706,136 @@ } } }, - "location": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_shipping_location" - ] - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "address": { - "$ref": "#/components/schemas/CustomerAddress" - }, - "state": { - "$ref": "#/components/schemas/CountryState" - } - } + "identifier": { + "type": "string" }, - "positions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDeliveryPosition" - } + "lineItem": { + "$ref": "#/components/schemas/LineItem" }, - "shippingCosts": { + "price": { "$ref": "#/components/schemas/CalculatedPrice" - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" } } }, - "CookieGroupCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CookieGroup" + "CartItems": { + "type": "object", + "required": [ + "items" + ], + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } + } } }, - "OrderRouteResponse": { + "CookieGroup": { "type": "object", "properties": { - "orders": { - "type": "object", - "allOf": [ - { - "type": "object", - "required": [ - "elements" - ], - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - } - } - } - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } + "isRequired": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "cookie": { + "type": "string" + }, + "value": { + "type": "string" + }, + "expiration": { + "type": "integer" + }, + "entries": { + "$ref": "#/components/schemas/CookieEntryCollection" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cookie_group" + ] + } + }, + "not": { + "allOf": [ + { + "required": [ + "cookie" + ] + }, + { + "required": [ + "entries" + ] + } + ] + }, + "required": [ + "name", + "isRequired", + "apiAlias" + ] + }, + "CartPriceQuantity": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_quantity" ] }, - "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" + "isCalculated": { + "type": "boolean" + }, + "listPrice": { + "$ref": "#/components/schemas/CartListPrice" + }, + "price": { + "type": "number" + }, + "quantity": { + "type": "number" + }, + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "taxRules": { + "type": "array", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } } + }, + "type": { + "type": "string" } }, "required": [ - "orders" + "apiAlias" ] }, - "ReferencePrice": { + "CartPriceReference": { "type": "object", "properties": { "purchaseUnit": { @@ -11560,7 +11859,7 @@ "listPrice": { "oneOf": [ { - "$ref": "#/components/schemas/ListPrice" + "$ref": "#/components/schemas/CartListPrice" }, { "type": "null" @@ -11604,6 +11903,7 @@ } }, "required": [ + "apiAlias", "hasRange", "regulationPrice", "listPrice", @@ -11613,150 +11913,55 @@ "unitName" ] }, - "SuccessResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - } - } - }, - "Cart": { + "CartDelivery": { "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "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": { - "$ref": "#/components/schemas/CalculatedPrice" - }, - "lineItems": { - "description": "All items within the cart", - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" + "deliveryDate": { + "type": "object", + "properties": { + "earliest": { + "type": "string", + "format": "date-time" + }, + "latest": { + "type": "string", + "format": "date-time" + } } }, - "errors": { + "location": { "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "anyOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartError" - } + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_shipping_location" + ] }, - { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "code": { - "type": "number" - }, - "key": { - "type": "string" - }, - "level": { - "type": "number" - }, - "message": { - "type": "string" - }, - "messageKey": { - "type": "string" - } - }, - "required": [ - "code", - "key", - "level", - "message", - "messageKey" - ] - } + "country": { + "$ref": "#/components/schemas/Country" + }, + "address": { + "$ref": "#/components/schemas/CustomerAddress" + }, + "state": { + "$ref": "#/components/schemas/CountryState" } - ] + } }, - "deliveries": { + "positions": { "type": "array", "items": { - "$ref": "#/components/schemas/CartDelivery" + "$ref": "#/components/schemas/CartDeliveryPosition" } }, - "transactions": { - "description": "A list of all payment transactions associated with the current cart.", - "type": "array", - "items": { - "type": "object", - "properties": { - "paymentMethodId": { - "type": "string" - }, - "amount": { - "$ref": "#/components/schemas/CalculatedPrice" - } - } - } - }, - "modified": { - "type": "boolean" - }, - "customerComment": { - "description": "A comment that can be added to the cart.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "affiliateCode": { - "description": "An affiliate tracking code", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "campaignCode": { - "description": "A campaign tracking code", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] + "shippingCosts": { + "$ref": "#/components/schemas/CalculatedPrice" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart" - ] + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" } - }, - "required": [ - "price", - "apiAlias" - ] - }, - "CookieEntryCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CookieEntry" } }, "CrossSellingElement": { @@ -11793,428 +11998,111 @@ "apiAlias" ] }, - "CalculatedPrice": { - "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", - "properties": { - "unitPrice": { - "type": "number" - }, - "quantity": { - "type": "number" - }, - "rawTotal": { - "type": "number" - }, - "totalPrice": { - "type": "number" - }, - "taxStatus": { - "type": "string", - "enum": [ - "net", - "tax-free" - ] - }, - "calculatedTaxes": { - "type": "array", - "items": { + "ShippingMethodPageRouteResponse": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "deliveryTimeId": { + "type": "string" + }, + "deliveryTime": { "type": "object", "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_tax_calculated" - ] + "name": { + "type": "string" }, - "tax": { - "type": "number" + "min": { + "type": "integer", + "format": "int32" }, - "taxRate": { - "type": "number" + "max": { + "type": "integer", + "format": "int32" }, - "price": { - "type": "number" + "unit": { + "type": "string" } - }, - "required": [ - "apiAlias", - "tax", - "taxRate", - "price" - ] - } - }, - "referencePrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartPriceReference" - }, - { - "type": "null" - } - ] - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" } - ] - }, - "positionPrice": { - "type": "number" - }, - "netPrice": { - "type": "number" - }, - "regulationPrice": { - "oneOf": [ - { + }, + "translations": { + "type": "array", + "items": { "type": "object", "properties": { - "price": { - "type": "number" + "shippingMethodId": { + "type": "string" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] + "name": { + "type": "string" + }, + "description": { + "type": "string" } } - }, - { - "type": "null" - } - ] - }, - "hasRange": { - "type": "boolean" - }, - "variantId": { - "oneOf": [ - { - "type": "string", - "format": "^[0-9a-f]{32}$" - }, - { - "type": "null" } - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "calculated_price" - ] - }, - "taxRules": { - "type": "array", - "description": "Currently active tax rules and/or rates", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } - } - } - }, - "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "referencePrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitPrice", - "positionPrice", - "netPrice", - "taxRules", - "rawTotal", - "taxStatus" - ] - }, - "CartPriceReference": { - "type": "object", - "properties": { - "purchaseUnit": { - "type": "number" - }, - "referenceUnit": { - "type": "number" - }, - "unitName": { - "type": "string" - }, - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_reference" - ] - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" - } - ] - }, - "regulationPrice": { - "oneOf": [ - { - "type": "object", - "properties": { - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } - }, - { - "type": "null" - } - ] - }, - "hasRange": { - "type": "boolean" - }, - "variantId": { - "oneOf": [ - { - "type": "string", - "format": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" - ] - }, - "CartDeliveryPosition": { - "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "properties": { - "deliveryDate": { - "type": "object", - "properties": { - "earliest": { - "type": "string", - "format": "date-time" - }, - "latest": { - "type": "string", - "format": "date-time" - } - } - }, - "identifier": { - "type": "string" - }, - "lineItem": { - "$ref": "#/components/schemas/LineItem" - }, - "price": { - "$ref": "#/components/schemas/CalculatedPrice" - } - } - }, - "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.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "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.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - } - }, - "CartListPrice": { - "type": "object", - "description": "", - "properties": { - "discount": { - "type": "number" - }, - "percentage": { - "type": "number" - }, - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_list_price" - ] - } - }, - "required": [ - "apiAlias" - ] - }, - "NavigationRouteResponse": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - } - }, - "ShippingMethodPageRouteResponse": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "deliveryTimeId": { - "type": "string" - }, - "deliveryTime": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "min": { - "type": "integer", - "format": "int32" - }, - "max": { - "type": "integer", - "format": "int32" - }, - "unit": { - "type": "string" + }, + "orderDeliveries": { + "type": "array", + "items": { + "type": "object", + "properties": { + "orderId": { + "type": "string" + }, + "shippingOrderAddressId": { + "type": "string" + }, + "shippingMethodId": { + "type": "string" + }, + "shippingDateEarliest": { + "type": "string", + "format": "date-time" + }, + "shippingDateLatest": { + "type": "string", + "format": "date-time" + }, + "stateId": { + "type": "string" + } } } }, - "translations": { + "salesChannelDefaultAssignments": { "type": "array", "items": { "type": "object", "properties": { - "shippingMethodId": { + "typeId": { "type": "string" }, - "name": { + "languageId": { "type": "string" }, - "description": { - "type": "string" - } - } - } - }, - "orderDeliveries": { - "type": "array", - "items": { - "type": "object", - "properties": { - "orderId": { + "currencyId": { "type": "string" }, - "shippingOrderAddressId": { + "paymentMethodId": { "type": "string" }, "shippingMethodId": { "type": "string" }, - "shippingDateEarliest": { - "type": "string", - "format": "date-time" - }, - "shippingDateLatest": { - "type": "string", - "format": "date-time" - }, - "stateId": { + "countryId": { "type": "string" - } - } - } - }, - "salesChannelDefaultAssignments": { - "type": "array", - "items": { - "type": "object", - "properties": { - "typeId": { - "type": "string" - }, - "languageId": { - "type": "string" - }, - "currencyId": { - "type": "string" - }, - "paymentMethodId": { - "type": "string" - }, - "shippingMethodId": { - "type": "string" - }, - "countryId": { - "type": "string" - }, - "navigationCategoryId": { + }, + "navigationCategoryId": { "type": "string" }, "navigationCategoryDepth": { @@ -12452,6 +12340,99 @@ } } }, + "CookieEntryCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieEntry" + } + }, + "NavigationType": { + "type": "string", + "enum": [ + "main-navigation", + "footer-navigation", + "service-navigation" + ] + }, + "Price": { + "type": "object", + "description": "Price object", + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" + }, + "listPrice": { + "description": "", + "type": "object", + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" + } + }, + "required": [ + "gross", + "net" + ] + }, + "regulationPrice": { + "description": "", + "type": "object", + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" + } + }, + "required": [ + "gross", + "net" + ] + } + }, + "required": [ + "currencyId", + "gross", + "net" + ] + }, "Sitemap": { "type": "object", "properties": { @@ -12683,54 +12664,352 @@ "ranges" ] }, - "LineItemType": { - "type": "string", - "enum": [ - "product", - "credit", - "custom", - "promotion", - "discount", - "container", - "quantity", - "dsr-line-item-discount", - "dsr-cart-discount" - ] - }, - "LineItem": { + "Breadcrumb": { "type": "object", "properties": { - "children": { + "name": { + "type": "string" + }, + "categoryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "type": { + "$ref": "#/components/schemas/Category/properties/type" + }, + "translated": { + "type": "object", + "additionalProperties": true, + "properties": { + "customFields": { + "type": "object" + }, + "slotConfig": { + "type": "object" + }, + "linkType": { + "$ref": "#/components/schemas/Category/properties/linkType" + }, + "internalLink": { + "type": "string" + }, + "externalLink": { + "type": "string" + }, + "linkNewTab": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "metaTitle": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "keywords": { + "type": "string" + } + } + }, + "path": { + "type": "string" + }, + "seoUrls": { "type": "array", "items": { - "$ref": "#/components/schemas/LineItem" + "$ref": "#/components/schemas/SeoUrl" } }, - "cover": { - "$ref": "#/components/schemas/Media" + "apiAlias": { + "type": "string", + "enum": [ + "breadcrumb" + ] + } + }, + "required": [ + "name", + "categoryId", + "type", + "translated", + "path", + "apiAlias" + ] + }, + "ReferencePrice": { + "type": "object", + "properties": { + "purchaseUnit": { + "type": "number" }, - "dataContextHash": { - "type": "string" + "referenceUnit": { + "type": "number" }, - "dataTimestamp": { + "unitName": { "type": "string" }, - "deliveryInformation": { - "$ref": "#/components/schemas/CartDeliveryInformation" - }, - "description": { - "type": "string" + "price": { + "type": "number" }, - "good": { - "type": "boolean" + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_reference" + ] }, - "id": { - "type": "string" + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/ListPrice" + }, + { + "type": "null" + } + ] }, - "label": { - "type": "string" + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } + }, + { + "type": "null" + } + ] }, - "modified": { + "hasRange": { + "type": "boolean" + }, + "variantId": { + "oneOf": [ + { + "type": "string", + "format": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" + ] + }, + "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": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "price": { + "type": "object", + "properties": { + "min": { + "type": "integer", + "default": 0 + }, + "max": { + "type": "integer", + "default": 0 + } + }, + "required": [ + "min", + "max" + ] + }, + "rating": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "shipping-free": { + "type": "boolean", + "default": false + }, + "properties": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "search": { + "type": "string" + } + }, + "required": [ + "manufacturer", + "navigationId", + "price", + "properties", + "rating", + "shipping-free" + ] + }, + "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", + "properties": { + "label": { + "type": "string" + }, + "translated": { + "type": "object", + "properties": { + "label": { + "type": "string" + } + }, + "required": [ + "label" + ] + }, + "key": { + "type": "string" + }, + "priority": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "product_sorting" + ] + } + }, + "required": [ + "label", + "translated", + "key", + "priority", + "apiAlias" + ] + } + }, + "sorting": { + "type": "string" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + }, + "entity": { + "type": "string", + "enum": [ + "product" + ] + }, + "apiAlias": { + "type": "string", + "enum": [ + "product_listing" + ] + } + }, + "required": [ + "elements", + "availableSortings", + "currentFilters", + "apiAlias" + ] + } + ] + }, + "LineItemType": { + "type": "string", + "deprecated": true, + "enum": [ + "product", + "credit", + "custom", + "promotion", + "discount", + "container", + "quantity", + "dsr-line-item-discount", + "dsr-cart-discount" + ] + }, + "LineItem": { + "type": "object", + "properties": { + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } + }, + "cover": { + "$ref": "#/components/schemas/Media" + }, + "dataContextHash": { + "type": "string" + }, + "dataTimestamp": { + "type": "string" + }, + "deliveryInformation": { + "$ref": "#/components/schemas/CartDeliveryInformation" + }, + "description": { + "type": "string" + }, + "good": { + "type": "boolean" + }, + "id": { + "type": "string" + }, + "label": { + "type": "string" + }, + "modified": { "type": "boolean" }, "modifiedByApp": { @@ -12892,7 +13171,7 @@ } }, "type": { - "$ref": "#/components/schemas/LineItemType" + "$ref": "#/components/schemas/OrderLineItem/properties/type" }, "uniqueIdentifier": { "type": "string" @@ -12935,215 +13214,291 @@ "states" ] }, - "CrossSellingElementCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CrossSellingElement" - } - }, - "CartError": { + "SalesChannelContext": { "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "key": { + "token": { + "description": "Context the user session", "type": "string" }, - "level": { - "type": "number", - "enum": [ - 0, - 10, - 20 - ], - "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" - }, - "message": { - "type": "string" + "currentCustomerGroup": { + "type": "object", + "description": "Customer group of the current user", + "properties": { + "name": { + "type": "string" + }, + "displayGross": { + "type": "boolean" + } + } }, - "messageKey": { - "type": "string" - } - }, - "required": [ - "key", - "level", - "message", - "messageKey" - ] - }, - "FindProductVariantRouteResponse": { - "type": "object", - "properties": { - "foundCombination": { + "fallbackCustomerGroup": { + "description": "Fallback group if the default customer group is not applicable", "type": "object", "properties": { - "variantId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "name": { + "type": "string" }, - "options": { - "type": "array", - "items": { + "displayGross": { + "type": "boolean" + } + } + }, + "currency": { + "$ref": "#/components/schemas/Currency" + }, + "salesChannel": { + "$ref": "#/components/schemas/SalesChannel" + }, + "measurementSystem": { + "$ref": "#/components/schemas/ContextMeasurementSystemInfo" + }, + "taxRules": { + "type": "array", + "description": "Currently active tax rules and/or rates", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { "type": "string" } } } - } - } - }, - "ProductListingCriteria": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" }, - { + "customer": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Customer" + } + ] + }, + "paymentMethod": { + "$ref": "#/components/schemas/PaymentMethod" + }, + "shippingLocation": { "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" + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_shipping_location" + ] }, - "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 + "country": { + "$ref": "#/components/schemas/Country" }, - "p": { - "description": "Search result page", - "type": "integer", - "default": 1 + "address": { + "$ref": "#/components/schemas/CustomerAddress" + } + } + }, + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" + }, + "context": { + "description": "Core context with general configuration values and state", + "type": "object", + "properties": { + "versionId": { + "type": "string" }, - "manufacturer": { - "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "currencyId": { "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 + "currencyFactor": { + "type": "integer" }, - "max-price": { - "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "currencyPrecision": { "type": "integer", - "minimum": 0, - "default": 0 - }, - "rating": { - "description": "Filter products with a minimum average rating.", - "type": "integer" + "format": "int32" }, - "shipping-free": { - "description": "Filters products that are marked as shipping-free.", - "type": "boolean", - "default": false + "languageIdChain": { + "type": "array", + "items": { + "type": "string" + } }, - "properties": { - "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "scope": { "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 + "source": { + "type": "object", + "required": [ + "salesChannelId", + "type" + ], + "properties": { + "type": { + "type": "string", + "enum": [ + "sales-channel", + "shop-api" + ] + }, + "salesChannelId": { + "type": "string" + } + } }, - "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.", + "taxState": { "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.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] + "useCache": { + "type": "boolean" } } - } - ] - }, - "NavigationType": { - "type": "string", - "enum": [ - "main-navigation", - "footer-navigation", - "service-navigation" - ] - }, - "WishlistLoadRouteResponse": { - "type": "object", - "required": [ - "products" - ], - "properties": { - "wishlist": { + }, + "itemRounding": { "type": "object", + "required": [ + "decimals", + "interval", + "roundForNet", + "apiAlias" + ], "properties": { - "customerId": { - "type": "string" + "apiAlias": { + "type": "string", + "enum": [ + "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" + ] }, - "salesChannelId": { - "type": "string" + "decimals": { + "type": "integer", + "format": "int32" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" } } }, - "products": { - "$ref": "#/components/schemas/ProductListingResult" - } - } - }, - "AggregationMetrics": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "avg", - "count", - "max", - "min", - "stats", - "sum" - ] + "totalRounding": { + "type": "object", + "required": [ + "decimals", + "interval", + "roundForNet", + "apiAlias" + ], + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" + ] + }, + "decimals": { + "type": "integer", + "format": "int32" + }, + "interval": { + "type": "number", + "format": "float" + }, + "roundForNet": { + "type": "boolean" + } + } }, - "field": { - "type": "string" + "languageInfo": { + "type": "object", + "required": [ + "localeCode", + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "localeCode": { + "type": "string" + } + } + }, + "apiAlias": { + "type": "string", + "enum": [ + "sales_channel_context" + ] } }, "required": [ - "name", - "type", - "field" + "salesChannel", + "apiAlias", + "itemRounding", + "totalRounding", + "languageInfo" + ] + }, + "CookieGroupCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieGroup" + } + }, + "AccountNewsletterRecipient": { + "type": "object", + "properties": { + "status": { + "type": "string", + "enum": [ + "undefined", + "notSet", + "direct", + "optIn", + "optOut" + ] + }, + "apiAlias": { + "type": "string", + "enum": [ + "account_newsletter_recipient" + ] + } + }, + "required": [ + "status", + "apiAlias" ] }, + "FindProductVariantRouteResponse": { + "type": "object", + "properties": { + "foundCombination": { + "type": "object", + "properties": { + "variantId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "options": { + "type": "array", + "items": { + "type": "string" + } + } + } + } + } + }, + "CrossSellingElementCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CrossSellingElement" + } + }, "CartDeliveryInformation": { "type": "object", "properties": { @@ -13202,643 +13557,617 @@ "apiAlias" ] }, - "CartItems": { + "SuccessResponse": { "type": "object", - "required": [ - "items" - ], "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" - } + "success": { + "type": "boolean" } } }, - "Breadcrumb": { + "Criteria": { "type": "object", + "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", "properties": { - "name": { - "type": "string" + "page": { + "description": "Search result page", + "type": "integer" }, - "categoryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "term": { + "description": "Search term", + "type": "string" }, - "type": { - "type": "string", - "enum": [ - "page", - "link", - "folder" - ] + "limit": { + "description": "Number of items per result page", + "type": "integer" }, - "translated": { - "type": "object", - "additionalProperties": true, - "properties": { - "customFields": { - "type": "object" - }, - "slotConfig": { - "type": "object" - }, - "linkType": { - "type": "string", - "enum": [ - "external", - "category", - "product", - "landing_page" - ] - }, - "internalLink": { - "type": "string" - }, - "externalLink": { - "type": "string" - }, - "linkNewTab": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "metaTitle": { - "type": "string" - }, - "metaDescription": { - "type": "string" - }, - "keywords": { - "type": "string" - } + "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": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] } }, - "path": { - "type": "string" - }, - "seoUrls": { + "ids": { "type": "array", + "description": "List of ids to search for", "items": { - "$ref": "#/components/schemas/SeoUrl" + "type": "string" } }, - "apiAlias": { + "query": { "type": "string", - "enum": [ - "breadcrumb" - ] - } - }, - "required": [ - "name", - "categoryId", - "type", - "translated", - "path", - "apiAlias" - ] - }, - "SalesChannelContext": { - "type": "object", - "properties": { - "token": { - "description": "Context the user session", - "type": "string" + "description": "The query string to search for" }, - "currentCustomerGroup": { - "type": "object", - "description": "Customer group of the current user", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } - } + "associations": { + "$ref": "#/components/schemas/Associations" }, - "fallbackCustomerGroup": { - "description": "Fallback group if the default customer group is not applicable", - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } + "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": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] } }, - "currency": { - "$ref": "#/components/schemas/Currency" + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" + } }, - "salesChannel": { - "$ref": "#/components/schemas/SalesChannel" + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } }, - "measurementSystem": { - "$ref": "#/components/schemas/ContextMeasurementSystemInfo" + "fields": { + "type": "array", + "description": "Fields which should be returned in the search result.", + "items": { + "type": "string", + "description": "Name of a field" + } }, - "taxRules": { + "grouping": { "type": "array", - "description": "Currently active tax rules and/or rates", + "description": "Perform groupings over certain fields", "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" + "type": "string", + "description": "Name of a field" + } + }, + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" + }, + "includes": { + "$ref": "#/components/schemas/Includes" + }, + "excludes": { + "$ref": "#/components/schemas/Excludes" + } + } + }, + "NoneFieldsCriteria": { + "type": "object", + "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", + "properties": { + "page": { + "description": "Search result page", + "type": "integer" + }, + "term": { + "description": "Search term", + "type": "string" + }, + "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": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" }, - "name": { - "type": "string" + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } - } + ] } }, - "customer": { - "oneOf": [ + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } + }, + "query": { + "type": "string", + "description": "The query string to search for" + }, + "associations": { + "$ref": "#/components/schemas/Associations" + }, + "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": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + }, + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" + } + }, + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } + }, + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" + } + }, + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" + }, + "includes": { + "$ref": "#/components/schemas/Includes" + }, + "excludes": { + "$ref": "#/components/schemas/Excludes" + } + } + }, + "Associations": { + "type": "object", + "additionalProperties": { + "$ref": "#/components/schemas/Criteria" + } + }, + "Includes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "Excludes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "Aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" + }, + { + "title": "AggregationEntity", + "allOf": [ { - "type": "null" + "$ref": "#/components/schemas/AggregationEntity" }, { - "$ref": "#/components/schemas/Customer" + "$ref": "#/components/schemas/SubAggregations" } ] }, - "paymentMethod": { - "$ref": "#/components/schemas/PaymentMethod" + { + "title": "AggregationFilter", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationFilter" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] }, - "shippingLocation": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_shipping_location" - ] + { + "title": "AggregationTerms", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationTerms" }, - "country": { - "$ref": "#/components/schemas/Country" + { + "$ref": "#/components/schemas/SubAggregations" + } + ] + }, + { + "title": "AggregationHistogram", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationHistogram" }, - "address": { - "$ref": "#/components/schemas/CustomerAddress" + { + "$ref": "#/components/schemas/SubAggregations" } - } + ] }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" - }, - "context": { - "description": "Core context with general configuration values and state", - "type": "object", - "properties": { - "versionId": { - "type": "string" - }, - "currencyId": { - "type": "string" - }, - "currencyFactor": { - "type": "integer" - }, - "currencyPrecision": { - "type": "integer", - "format": "int32" - }, - "languageIdChain": { - "type": "array", - "items": { - "type": "string" - } - }, - "scope": { - "type": "string" - }, - "source": { - "type": "object", - "required": [ - "salesChannelId", - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "sales-channel", - "shop-api" - ] - }, - "salesChannelId": { - "type": "string" - } - } - }, - "taxState": { - "type": "string" + { + "title": "AggregationRange", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationRange" }, - "useCache": { - "type": "boolean" + { + "$ref": "#/components/schemas/SubAggregations" } - } - }, - "itemRounding": { - "type": "object", - "required": [ - "decimals", - "interval", - "roundForNet", - "apiAlias" - ], - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" - ] - }, - "decimals": { - "type": "integer", - "format": "int32" - }, - "interval": { - "type": "number", - "format": "float" + ] + } + ] + }, + "SubAggregations": { + "type": "object", + "properties": { + "aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" }, - "roundForNet": { - "type": "boolean" - } - } - }, - "totalRounding": { - "type": "object", - "required": [ - "decimals", - "interval", - "roundForNet", - "apiAlias" - ], - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "shopware_core_framework_data_abstraction_layer_pricing_cash_rounding_config" - ] + { + "$ref": "#/components/schemas/AggregationEntity" }, - "decimals": { - "type": "integer", - "format": "int32" + { + "$ref": "#/components/schemas/AggregationFilter" }, - "interval": { - "type": "number", - "format": "float" + { + "$ref": "#/components/schemas/AggregationTerms" }, - "roundForNet": { - "type": "boolean" - } - } - }, - "languageInfo": { - "type": "object", - "required": [ - "localeCode", - "name" - ], - "properties": { - "name": { - "type": "string" + { + "$ref": "#/components/schemas/AggregationHistogram" }, - "localeCode": { - "type": "string" + { + "$ref": "#/components/schemas/AggregationRange" } - } - }, - "apiAlias": { - "type": "string", - "enum": [ - "sales_channel_context" ] } - }, - "required": [ - "salesChannel", - "apiAlias", - "itemRounding", - "totalRounding", - "languageInfo" - ] - }, - "Association": { - "additionalProperties": { - "$ref": "#/components/schemas/Association" } }, - "ContextMeasurementSystemInfo": { + "TotalCountMode": { + "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" + ] + }, + "Query": { "type": "object", - "description": "Configuration of the measurement system used in the store, by default including units for length and weight.", "properties": { - "system": { - "type": "string", - "enum": [ - "metric", - "imperial" - ], - "default": "metric", - "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." + "score": { + "type": "number" }, - "units": { - "type": "object", - "description": "Units used in the measurement system.", - "properties": { - "length": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm", - "description": "Unit of length." + "query": { + "oneOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" }, - "weight": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg", - "description": "Unit of weight." + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } - } + ] } - } + }, + "additionalProperties": true }, - "ListPrice": { + "Sort": { "type": "object", - "description": "", "properties": { - "discount": { - "type": "number" - }, - "percentage": { - "type": "number" - }, - "price": { - "type": "number" + "field": { + "type": "string" }, - "apiAlias": { + "order": { "type": "string", "enum": [ - "cart_list_price" + "ASC", + "DESC" ] + }, + "naturalSorting": { + "type": "boolean" + }, + "type": { + "type": "string" } }, "required": [ - "apiAlias" + "field", + "order" ] }, - "Price": { - "type": "object", - "description": "Price object", + "Filters": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + }, + "SimpleFilter": { + "type": "object", "properties": { - "currencyId": { + "type": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "contains", + "equalsAny", + "prefix", + "suffix" + ] }, - "gross": { - "description": "", - "type": "number" + "field": { + "type": "string" }, - "net": { - "description": "", - "type": "number" + "value": { + "type": "string" + } + }, + "required": [ + "type", + "field", + "value" + ] + }, + "EqualsFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "equals" + ] }, - "linked": { - "description": "", - "type": "boolean" + "field": { + "type": "string" }, - "listPrice": { - "description": "", - "type": "object", - "properties": { - "currencyId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "gross": { - "description": "", - "type": "number" + "value": { + "oneOf": [ + { + "type": "string" }, - "net": { - "description": "", + { "type": "number" }, - "linked": { - "description": "", + { "type": "boolean" + }, + { + "type": "null" } - }, - "required": [ - "gross", - "net" + ] + } + }, + "required": [ + "type", + "field", + "value" + ] + }, + "MultiNotFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "multi", + "not" ] }, - "regulationPrice": { - "description": "", + "operator": { + "type": "string", + "enum": [ + "and", + "or", + "nor", + "nand" + ] + }, + "queries": { + "$ref": "#/components/schemas/Filters" + } + }, + "required": [ + "type", + "operator", + "queries" + ] + }, + "RangeFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "range" + ] + }, + "field": { + "type": "string" + }, + "parameters": { "type": "object", "properties": { - "currencyId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "gte": { + "type": "number" }, - "gross": { - "description": "", + "gt": { "type": "number" }, - "net": { - "description": "", + "lte": { "type": "number" }, - "linked": { - "description": "", - "type": "boolean" + "lt": { + "type": "number" } - }, - "required": [ - "gross", - "net" + } + } + }, + "required": [ + "type", + "field", + "parameters" + ] + }, + "AggregationMetrics": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "type": { + "type": "string", + "enum": [ + "avg", + "count", + "max", + "min", + "stats", + "sum" ] + }, + "field": { + "type": "string" } }, "required": [ - "currencyId", - "gross", - "net" + "name", + "type", + "field" ] }, - "ProductListingResult": { - "allOf": [ - { - "$ref": "#/components/schemas/EntitySearchResult" + "MeasurementUnits": { + "type": "object", + "description": "Configuration of the measurement system", + "properties": { + "system": { + "type": "string", + "enum": [ + "metric", + "imperial" + ], + "default": "metric", + "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." }, - { + "units": { "type": "object", + "description": "Units used in the measurement system.", "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": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "price": { - "type": "object", - "properties": { - "min": { - "type": "integer", - "default": 0 - }, - "max": { - "type": "integer", - "default": 0 - } - }, - "required": [ - "min", - "max" - ] - }, - "rating": { - "oneOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "shipping-free": { - "type": "boolean", - "default": false - }, - "properties": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "search": { - "type": "string" - } - }, - "required": [ - "manufacturer", - "navigationId", - "price", - "properties", - "rating", - "shipping-free" - ] - }, - "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", - "properties": { - "label": { - "type": "string" - }, - "translated": { - "type": "object", - "properties": { - "label": { - "type": "string" - } - }, - "required": [ - "label" - ] - }, - "key": { - "type": "string" - }, - "priority": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "product_sorting" - ] - } - }, - "required": [ - "label", - "translated", - "key", - "priority", - "apiAlias" - ] - } - }, - "sorting": { - "type": "string" - }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } - }, - "entity": { + "length": { "type": "string", "enum": [ - "product" - ] + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm", + "description": "Unit of length." }, - "apiAlias": { + "weight": { "type": "string", "enum": [ - "product_listing" - ] + "g", + "kg", + "oz", + "lb" + ], + "default": "kg", + "description": "Unit of weight." } - }, - "required": [ - "elements", - "availableSortings", - "currentFilters", - "apiAlias" - ] + } } - ] + } }, - "CookieGroup": { + "CookieEntry": { "type": "object", "properties": { - "isRequired": { - "type": "boolean" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, "cookie": { "type": "string" }, @@ -13848,282 +14177,310 @@ "expiration": { "type": "integer" }, - "entries": { - "$ref": "#/components/schemas/CookieEntryCollection" + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "hidden": { + "type": "boolean" }, "apiAlias": { "type": "string", "enum": [ - "cookie_group" + "cookie_entry" ] } }, - "not": { - "allOf": [ - { - "required": [ - "cookie" - ] - }, - { - "required": [ - "entries" - ] - } - ] - }, "required": [ - "name", - "isRequired", + "cookie", + "hidden", "apiAlias" ] }, - "CustomerAddressBody": { - "description": "Added since version: 6.0.0.0", - "required": [ - "countryId", - "firstName", - "lastName", - "city", - "street" - ], + "ContextMeasurementSystemInfo": { + "type": "object", + "description": "Configuration of the measurement system used in the store, by default including units for length and weight.", "properties": { - "countryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryStateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salutationId": { + "system": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "zipcode": { - "type": "string" - }, - "city": { - "type": "string" - }, - "company": { - "type": "string" - }, - "street": { - "type": "string" - }, - "department": { - "type": "string" - }, - "title": { - "type": "string" - }, - "phoneNumber": { - "type": "string" - }, - "additionalAddressLine1": { - "type": "string" - }, - "additionalAddressLine2": { - "type": "string" - }, - "customFields": { - "type": "object" - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "$ref": "#/components/schemas/CountryState" + "enum": [ + "metric", + "imperial" + ], + "default": "metric", + "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + "units": { + "type": "object", + "description": "Units used in the measurement system.", + "properties": { + "length": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm", + "description": "Unit of length." + }, + "weight": { + "type": "string", + "enum": [ + "g", + "kg", + "oz", + "lb" + ], + "default": "kg", + "description": "Unit of weight." + } + } } - }, - "type": "object" + } }, - "ProductDetailResponse": { + "ListPrice": { "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", + "description": "", "properties": { - "product": { - "$ref": "#/components/schemas/Product" + "discount": { + "type": "number" }, - "configurator": { - "type": "array", - "description": "List of property groups with their corresponding options and information on how to display them.", - "items": { - "$ref": "#/components/schemas/PropertyGroup" - } + "percentage": { + "type": "number" + }, + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] } }, "required": [ - "product" + "apiAlias" ] }, - "CartPriceQuantity": { + "ProductListingFlags": { "type": "object", + "description": "Additional flags for product listings", "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_quantity" + "no-aggregations": { + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } ] }, - "isCalculated": { - "type": "boolean" - }, - "listPrice": { - "$ref": "#/components/schemas/CartListPrice" - }, - "price": { + "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.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + } + }, + "CartListPrice": { + "type": "object", + "description": "", + "properties": { + "discount": { "type": "number" }, - "quantity": { + "percentage": { "type": "number" }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" - }, - "taxRules": { - "type": "array", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } - } + "price": { + "type": "number" }, - "type": { - "type": "string" + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" + ] } }, "required": [ "apiAlias" ] }, - "MeasurementUnits": { - "type": "object", - "description": "Configuration of the measurement system", + "CustomerAddressBody": { + "description": "Added since version: 6.0.0.0", + "required": [ + "countryId", + "firstName", + "lastName", + "city", + "street" + ], "properties": { - "system": { + "countryId": { "type": "string", - "enum": [ - "metric", - "imperial" - ], - "default": "metric", - "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." + "pattern": "^[0-9a-f]{32}$" }, - "units": { - "type": "object", - "description": "Units used in the measurement system.", - "properties": { - "length": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm", - "description": "Unit of length." - }, - "weight": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg", - "description": "Unit of weight." - } - } - } - } - }, - "CookieEntry": { - "type": "object", - "properties": { - "cookie": { + "countryStateId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salutationId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { "type": "string" }, - "value": { + "lastName": { "type": "string" }, - "expiration": { - "type": "integer" + "zipcode": { + "type": "string" }, - "name": { + "city": { "type": "string" }, - "description": { + "company": { "type": "string" }, - "hidden": { - "type": "boolean" + "street": { + "type": "string" }, - "apiAlias": { - "type": "string", - "enum": [ - "cookie_entry" - ] + "department": { + "type": "string" + }, + "title": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "additionalAddressLine1": { + "type": "string" + }, + "additionalAddressLine2": { + "type": "string" + }, + "customFields": { + "type": "object" + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "countryState": { + "$ref": "#/components/schemas/CountryState" + }, + "salutation": { + "$ref": "#/components/schemas/Salutation" } }, - "required": [ - "cookie", - "hidden", - "apiAlias" - ] + "type": "object" }, - "CookieRouteResponse": { + "OrderRouteResponse": { "type": "object", - "description": "Response containing cookie groups and their configuration hash.", "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cookie_groups_hash" + "orders": { + "type": "object", + "allOf": [ + { + "type": "object", + "required": [ + "elements" + ], + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Order" + } + } + } + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } ] }, - "elements": { - "type": "array", - "description": "Collection of cookie groups", - "items": { - "$ref": "#/components/schemas/CookieGroup" + "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" } - }, - "hash": { - "type": "string", - "description": "Hash of the current cookie configuration. Can be used to detect changes in cookie configuration.", - "example": "f86b6a872cb83dbd22d838ceda1aa3d4" } }, "required": [ - "elements", - "hash", + "orders" + ] + }, + "WishlistLoadRouteResponse": { + "type": "object", + "required": [ + "products" + ], + "properties": { + "wishlist": { + "type": "object", + "properties": { + "customerId": { + "type": "string" + }, + "salesChannelId": { + "type": "string" + } + } + }, + "products": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + }, + "CookieRouteResponse": { + "type": "object", + "description": "Response containing cookie groups and their configuration hash.", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cookie_groups_hash" + ] + }, + "elements": { + "type": "array", + "description": "Collection of cookie groups", + "items": { + "$ref": "#/components/schemas/CookieGroup" + } + }, + "hash": { + "type": "string", + "description": "Hash of the current cookie configuration. Can be used to detect changes in cookie configuration.", + "example": "f86b6a872cb83dbd22d838ceda1aa3d4" + }, + "languageId": { + "type": "string", + "format": "uuid", + "description": "The language ID for which the cookie configuration was generated. Used to store hashes per language.", + "example": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" + } + }, + "required": [ + "elements", + "hash", + "languageId", "apiAlias" ], "example": { @@ -14205,610 +14562,378 @@ "apiAlias": "cookie_group" } ], - "hash": "f86b6a872cb83dbd22d838ceda1aa3d4" + "hash": "f86b6a872cb83dbd22d838ceda1aa3d4", + "languageId": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" } }, - "Criteria": { + "NavigationRouteResponse": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" + } + }, + "EntitySearchResult": { "type": "object", - "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", "properties": { - "page": { - "description": "Search result page", - "type": "integer" - }, - "term": { - "description": "Search term", + "entity": { "type": "string" }, - "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": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "ids": { - "type": "array", - "description": "List of ids to search for", - "items": { - "type": "string" - } - }, - "query": { - "type": "string", - "description": "The query string to search for" - }, - "associations": { - "$ref": "#/components/schemas/Associations" - }, - "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": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "sort": { - "type": "array", - "description": "Sorting in the search result.", - "items": { - "$ref": "#/components/schemas/Sort" - } + "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": { - "$ref": "#/components/schemas/Aggregation" - } - }, - "fields": { - "type": "array", - "description": "Fields which should be returned in the search result.", - "items": { - "type": "string", - "description": "Name of a field" - } - }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" + "type": "object" } }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" - }, - "includes": { - "$ref": "#/components/schemas/Includes" + "page": { + "type": "integer", + "description": "The actual page. This can be used for pagination." }, - "excludes": { - "$ref": "#/components/schemas/Excludes" + "limit": { + "type": "integer", + "description": "The actual limit. This is used for pagination and goes together with the page." } } }, - "NoneFieldsCriteria": { + "CartError": { "type": "object", - "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "page": { - "description": "Search result page", - "type": "integer" - }, - "term": { - "description": "Search term", + "key": { "type": "string" }, - "limit": { - "description": "Number of items per result page", - "type": "integer" + "level": { + "type": "number", + "enum": [ + 0, + 10, + 20 + ], + "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" }, - "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": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } + "message": { + "type": "string" }, - "ids": { - "type": "array", - "description": "List of ids to search for", - "items": { - "type": "string" - } + "messageKey": { + "type": "string" + } + }, + "required": [ + "key", + "level", + "message", + "messageKey" + ] + }, + "CustomerAddressRead": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true }, - "query": { + "customerId": { "type": "string", - "description": "The query string to search for" + "pattern": "^[0-9a-f]{32}$", + "readOnly": true }, - "associations": { - "$ref": "#/components/schemas/Associations" + "createdAt": { + "type": "string", + "format": "date-time" }, - "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": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "sort": { - "type": "array", - "description": "Sorting in the search result.", - "items": { - "$ref": "#/components/schemas/Sort" - } - }, - "aggregations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Aggregation" - } - }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" - } - }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" - }, - "includes": { - "$ref": "#/components/schemas/Includes" - }, - "excludes": { - "$ref": "#/components/schemas/Excludes" - } - } - }, - "Associations": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Criteria" - } - }, - "Includes": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "Excludes": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "Aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" - }, - { - "title": "AggregationEntity", - "allOf": [ + "updatedAt": { + "oneOf": [ { - "$ref": "#/components/schemas/AggregationEntity" + "type": "string", + "format": "date-time" }, { - "$ref": "#/components/schemas/SubAggregations" + "type": "null" } ] }, - { - "title": "AggregationFilter", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationFilter" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "country": { + "$ref": "#/components/schemas/Country" }, - { - "title": "AggregationTerms", - "allOf": [ + "countryState": { + "oneOf": [ { - "$ref": "#/components/schemas/AggregationTerms" + "$ref": "#/components/schemas/CountryState" }, { - "$ref": "#/components/schemas/SubAggregations" + "type": "null" } ] }, + "salutation": { + "$ref": "#/components/schemas/Salutation" + } + }, + "required": [ + "customerId", + "createdAt", + "updatedAt", + "country", + "salutation" + ] + }, + "ProductListingCriteria": { + "allOf": [ { - "title": "AggregationHistogram", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationHistogram" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "$ref": "#/components/schemas/Criteria" }, { - "title": "AggregationRange", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationRange" + "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" }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] - } - ] - }, - "SubAggregations": { - "type": "object", - "properties": { - "aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" + "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 }, - { - "$ref": "#/components/schemas/AggregationEntity" + "p": { + "description": "Search result page", + "type": "integer", + "default": 1 }, - { - "$ref": "#/components/schemas/AggregationFilter" + "manufacturer": { + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "type": "string" }, - { - "$ref": "#/components/schemas/AggregationTerms" + "min-price": { + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "type": "integer", + "minimum": 0, + "default": 0 }, - { - "$ref": "#/components/schemas/AggregationHistogram" + "max-price": { + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "type": "integer", + "minimum": 0, + "default": 0 }, - { - "$ref": "#/components/schemas/AggregationRange" + "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.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] } - ] + } } - } - }, - "TotalCountMode": { - "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" ] }, - "Query": { + "Cart": { "type": "object", "properties": { - "score": { - "type": "number" + "name": { + "description": "Name of the cart - for example `guest-cart`", + "type": "string" }, - "query": { - "oneOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, + "token": { + "description": "Context token identifying the cart and the user session", + "type": "string" + }, + "price": { + "$ref": "#/components/schemas/CalculatedPrice" + }, + "lineItems": { + "description": "All items within the cart", + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } + }, + "errors": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "anyOf": [ { - "$ref": "#/components/schemas/MultiNotFilter" + "type": "array", + "items": { + "$ref": "#/components/schemas/CartError" + } }, { - "$ref": "#/components/schemas/RangeFilter" + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "code": { + "type": "number" + }, + "key": { + "type": "string" + }, + "level": { + "type": "number" + }, + "message": { + "type": "string" + }, + "messageKey": { + "type": "string" + } + }, + "required": [ + "code", + "key", + "level", + "message", + "messageKey" + ] + } } ] - } - }, - "additionalProperties": true - }, - "Sort": { - "type": "object", - "properties": { - "field": { - "type": "string" - }, - "order": { - "type": "string", - "enum": [ - "ASC", - "DESC" - ] }, - "naturalSorting": { - "type": "boolean" + "deliveries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartDelivery" + } }, - "type": { - "type": "string" - } - }, - "required": [ - "field", - "order" - ] - }, - "Filters": { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" + "transactions": { + "description": "A list of all payment transactions associated with the current cart.", + "type": "array", + "items": { + "type": "object", + "properties": { + "paymentMethodId": { + "type": "string" + }, + "amount": { + "$ref": "#/components/schemas/CalculatedPrice" + } + } } - ] - } - }, - "SimpleFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "contains", - "equalsAny", - "prefix", - "suffix" - ] }, - "field": { - "type": "string" + "modified": { + "type": "boolean" }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "field", - "value" - ] - }, - "EqualsFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "equals" + "customerComment": { + "description": "A comment that can be added to the cart.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } ] }, - "field": { - "type": "string" - }, - "value": { + "affiliateCode": { + "description": "An affiliate tracking code", "oneOf": [ { "type": "string" }, { - "type": "number" - }, + "type": "null" + } + ] + }, + "campaignCode": { + "description": "A campaign tracking code", + "oneOf": [ { - "type": "boolean" + "type": "string" }, { "type": "null" } ] - } - }, - "required": [ - "type", - "field", - "value" - ] - }, - "MultiNotFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "multi", - "not" - ] }, - "operator": { + "apiAlias": { "type": "string", "enum": [ - "and", - "or", - "nor", - "nand" + "cart" ] - }, - "queries": { - "$ref": "#/components/schemas/Filters" } }, "required": [ - "type", - "operator", - "queries" + "price", + "apiAlias" ] }, - "RangeFilter": { + "Association": { + "additionalProperties": { + "$ref": "#/components/schemas/Association" + } + }, + "ProductMeasurements": { "type": "object", + "description": "Runtime field, cannot be used as part of the criteria. Measurements of a product, including dimensions and weight.", "properties": { - "type": { - "type": "string", - "enum": [ - "range" - ] - }, - "field": { - "type": "string" - }, - "parameters": { + "width": { "type": "object", "properties": { - "gte": { - "type": "number" - }, - "gt": { - "type": "number" - }, - "lte": { - "type": "number" + "unit": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm" }, - "lt": { - "type": "number" - } - } - } - }, - "required": [ - "type", - "field", - "parameters" - ] - }, - "CustomerAddressRead": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true - }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true - }, - "createdAt": { - "type": "string", - "format": "date-time" - }, - "updatedAt": { - "oneOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ] - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "countryState": { - "oneOf": [ - { - "$ref": "#/components/schemas/CountryState" - }, - { - "type": "null" - } - ] - }, - "salutation": { - "$ref": "#/components/schemas/Salutation" - } - }, - "required": [ - "customerId", - "createdAt", - "updatedAt", - "country", - "salutation" - ] - }, - "ProductMeasurements": { - "type": "object", - "description": "Runtime field, cannot be used as part of the criteria. Measurements of a product, including dimensions and weight.", - "properties": { - "width": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" - }, - "value": { + "value": { "type": "number" } } @@ -14871,4138 +14996,3835 @@ } } }, - "AccountNewsletterRecipient": { + "CalculatedPrice": { "type": "object", + "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "status": { + "unitPrice": { + "type": "number" + }, + "quantity": { + "type": "number" + }, + "rawTotal": { + "type": "number" + }, + "totalPrice": { + "type": "number" + }, + "taxStatus": { "type": "string", "enum": [ - "undefined", - "notSet", - "direct", - "optIn", - "optOut" + "net", + "tax-free" ] }, - "apiAlias": { - "type": "string", - "enum": [ - "account_newsletter_recipient" + "calculatedTaxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_tax_calculated" + ] + }, + "tax": { + "type": "number" + }, + "taxRate": { + "type": "number" + }, + "price": { + "type": "number" + } + }, + "required": [ + "apiAlias", + "tax", + "taxRate", + "price" + ] + } + }, + "referencePrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartPriceReference" + }, + { + "type": "null" + } ] - } - }, - "required": [ - "status", - "apiAlias" - ] - }, - "PageViewedPayload": { - "type": "object", - "required": [ - "pageId", - "sectionId", - "slideAlias" - ], - "properties": { - "pageId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "the id from the page which was viewed" }, - "sectionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "the id from the section within the page which was viewed" + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartListPrice" + }, + { + "type": "null" + } + ] }, - "slideAlias": { - "type": "number", - "description": "the alias of the slide which was viewed" + "positionPrice": { + "type": "number" }, - "pageNumber": { + "netPrice": { + "type": "number" + }, + "regulationPrice": { "oneOf": [ { - "type": "integer", - "description": "the number of the page which was viewed" + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } }, { "type": "null" } ] - } - } - }, - "ToggleBroadcastModePayload": { - "type": "object", - "required": [ - "active" - ], - "properties": { - "active": { - "type": "boolean", - "description": "Status if the mode is toggled to active or inactive" - } - } - }, - "ProductPayload": { - "type": "object", - "required": [ - "productId" - ], - "properties": { - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "the id from the product which is used in the interaction" - } - } - }, - "GuideHoveredPayload": { - "type": "object", - "properties": { - "hoveredElementId": { - "anyOf": [ + }, + "hasRange": { + "type": "boolean" + }, + "variantId": { + "oneOf": [ { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "the id from the product which is used in the interaction" + "format": "^[0-9a-f]{32}$" }, { "type": "null" } ] - } - } - }, - "PresentationStructure": { - "type": "object", - "required": [ - "cmsPageResults", - "navigation" - ], - "properties": { - "cmsPageResults": { - "type": "array", - "items": { - "type": "object", - "properties": { - "resourceType": { - "type": "string", - "description": "The type of presentation page", - "default": "frontend.presentation.page" - }, - "resourceIdentifier": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The presentation id" - }, - "cmsPage": { - "$ref": "#/components/schemas/CmsPage" - } - } - } }, - "navigation": { + "apiAlias": { + "type": "string", + "enum": [ + "calculated_price" + ] + }, + "taxRules": { "type": "array", + "description": "Currently active tax rules and/or rates", "items": { "type": "object", - "required": [ - "cmsPageId", - "groupId", - "groupName", - "index", - "sectionId", - "sectionName" - ], "properties": { - "index": { - "type": "integer", - "description": "The slide position" - }, - "sectionId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The section id" - }, - "sectionName": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The section name" - }, - "groupId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The presentation CMS page id" - }, - "groupName": { - "type": "string", - "description": "The slide name" + "taxRate": { + "type": "number", + "format": "float" }, - "cmsPageId": { + "name": { + "type": "string" + } + } + } + } + }, + "required": [ + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "referencePrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitPrice", + "positionPrice", + "netPrice", + "taxRules", + "rawTotal", + "taxStatus" + ] + }, + "AttendeeProductCollectionLastSeenResponse": { + "type": "object", + "properties": { + "collection": { + "type": "object", + "properties": { + "lastSeen": { + "type": "array", + "items": { "type": "string", "pattern": "^[0-9a-f]{32}$", - "description": "The CMS page id" - }, - "isInstantListing": { - "type": "boolean", - "description": "If the slide is an instant listing" - }, - "pickedProductsCount": { - "type": "integer", - "description": "The number of picked products of the instant listing" - }, - "notes": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CmsSlot" - }, - "default": [] + "description": "Product ids from the collection" } } } } }, "example": { - "cmsPageResults": [ - { - "resourceType": "frontend.presentation.page", - "resourceIdentifier": "45a2b8ad0bb544e48f61eab564a2171c", - "cmsPage": { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "name": "Default Digital Sales Rooms product listing page", - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": "2023-08-10T04:30:28.668+00:00", - "name": "Default Digital Sales Rooms product listing page", - "type": "presentation_product_list", - "entity": null, - "sections": [ - { - "extensions": { - "translations": [] - }, - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": "2023-08-10T04:30:28.668+00:00", - "type": "default", - "blocks": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": "2023-08-10T04:30:28.667+00:00", - "type": "product-listing", - "slots": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "config": { - "filters": { - "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", - "source": "static" - }, - "boxLayout": { - "value": "standard", - "source": "static" - }, - "showSorting": { - "value": true, - "source": "static" - }, - "defaultSorting": { - "value": "", - "source": "static" - }, - "useCustomSorting": { - "value": false, - "source": "static" - }, - "availableSortings": { - "value": [], - "source": "static" - }, - "propertyWhitelist": { - "value": [], - "source": "static" - } - }, - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "product-listing", - "slot": "content", - "block": null, - "blockId": "96ea8b9676a5461c9149d205d792ecf2", - "config": { - "filters": { - "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", - "source": "static" - }, - "boxLayout": { - "value": "standard", - "source": "static" - }, - "showSorting": { - "value": true, - "source": "static" - }, - "defaultSorting": { - "value": "", - "source": "static" - }, - "useCustomSorting": { - "value": false, - "source": "static" - }, - "availableSortings": { - "value": [], - "source": "static" - }, - "propertyWhitelist": { - "value": [], - "source": "static" - } - }, - "fieldConfig": null, - "translations": null, - "data": null, - "locked": false, - "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "customFields": null, - "apiAlias": "cms_slot" - } - ], - "sectionId": "2229e1f1208a4b8086baf7aec84f5e2c", - "position": 1, - "name": null, - "sectionPosition": "main", - "marginTop": "20px", - "marginBottom": "20px", - "marginLeft": "20px", - "marginRight": "20px", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": { - "mobile": true, - "tablet": true, - "desktop": true - }, - "customFields": null, - "apiAlias": "cms_block" - } - ], - "pageId": "33e88c7994fa4cf79a1265e5105b93b2", - "page": null, - "position": 0, - "sizingMode": "boxed", - "mobileBehavior": "wrap", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": { - "mobile": true, - "tablet": true, - "desktop": true - }, - "customFields": null, - "apiAlias": "cms_section" - } - ], - "translations": null, - "cssClass": null, - "config": null, - "previewMediaId": null, - "previewMedia": null, - "landingPages": null, - "id": "33e88c7994fa4cf79a1265e5105b93b2", - "customFields": null, - "apiAlias": "cms_page" - }, - "apiAlias": "pwa_page_result" - }, - { - "resourceType": "frontend.presentation.page", - "resourceIdentifier": "45a2b8ad0bb544e48f61eab564a2171c", - "cmsPage": { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "name": "Default Digital Sales Rooms product detail page", - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "name": "Default Digital Sales Rooms product detail page", - "type": "presentation_product_detail", - "entity": null, - "sections": [ - { - "extensions": { - "translations": [] - }, - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "default", - "blocks": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "product-heading", - "slots": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "config": [], - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "like", - "slot": "right", - "block": null, - "blockId": "c0d3daba2e244122947438c28f776d41", - "config": [], - "fieldConfig": null, - "translations": null, - "data": null, - "locked": false, - "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "customFields": null, - "apiAlias": "cms_slot" - }, - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "config": { - "content": { - "value": "product.name", - "source": "mapped" - }, - "verticalAlign": { - "value": null, - "source": "static" - } - }, - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "product-name", - "slot": "left", - "block": null, - "blockId": "c0d3daba2e244122947438c28f776d41", - "config": { - "content": { - "value": "product.name", - "source": "mapped" - }, - "verticalAlign": { - "value": null, - "source": "static" - } - }, - "fieldConfig": null, - "translations": null, - "data": null, - "locked": false, - "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "customFields": null, - "apiAlias": "cms_slot" - } - ], - "sectionId": "f4aaa27972314e3c9b7f3bb35c7f8a10", - "position": 0, - "name": null, - "sectionPosition": "main", - "marginTop": "0", - "marginBottom": "20px", - "marginLeft": "0", - "marginRight": "0", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_block" - }, - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "image-gallery-big", - "slots": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "config": { - "zoom": { - "value": true, - "source": "static" - }, - "minHeight": { - "value": "430px", - "source": "static" - }, - "fullScreen": { - "value": true, - "source": "static" - }, - "displayMode": { - "value": "contain", - "source": "static" - }, - "sliderItems": { - "value": "product.media", - "source": "mapped" - }, - "bigImageMode": { - "value": true, - "source": "static" - }, - "verticalAlign": { - "value": null, - "source": "static" - }, - "navigationDots": { - "value": "inside", - "source": "static" - }, - "galleryPosition": { - "value": "left", - "source": "static" - }, - "navigationArrows": { - "value": "inside", - "source": "static" - } - }, - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "image-gallery", - "slot": "imageGallery", - "block": null, - "blockId": "47cc4a3919794162982ea83f64a836fe", - "config": { - "zoom": { - "value": true, - "source": "static" - }, - "minHeight": { - "value": "430px", - "source": "static" - }, - "fullScreen": { - "value": true, - "source": "static" - }, - "displayMode": { - "value": "contain", - "source": "static" - }, - "sliderItems": { - "value": "product.media", - "source": "mapped" - }, - "bigImageMode": { - "value": true, - "source": "static" - }, - "verticalAlign": { - "value": null, - "source": "static" - }, - "navigationDots": { - "value": "inside", - "source": "static" - }, - "galleryPosition": { - "value": "left", - "source": "static" - }, - "navigationArrows": { - "value": "inside", - "source": "static" - } - }, - "fieldConfig": null, - "translations": null, - "data": null, - "locked": false, - "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "customFields": null, - "apiAlias": "cms_slot" - } - ], - "sectionId": "f4aaa27972314e3c9b7f3bb35c7f8a10", - "position": 1, - "name": null, - "sectionPosition": "main", - "marginTop": "20px", - "marginBottom": "20px", - "marginLeft": "20px", - "marginRight": "20px", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_block" - }, - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "text-two-column", - "slots": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "config": { - "product": { - "value": null, - "source": "static" - }, - "alignment": { - "value": null, - "source": "static" - } - }, - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "buy-box", - "slot": "right", - "block": null, - "blockId": "095cd9a4eb49493aa95ea1e7a84a9503", - "config": { - "product": { - "value": null, - "source": "static" - }, - "alignment": { - "value": null, - "source": "static" - } - }, - "fieldConfig": null, - "translations": null, - "data": null, - "locked": false, - "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "customFields": null, - "apiAlias": "cms_slot" - }, - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "config": { - "product": { - "value": null, - "source": "static" - }, - "alignment": { - "value": null, - "source": "static" - } - }, - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "product-description-reviews", - "slot": "left", - "block": null, - "blockId": "095cd9a4eb49493aa95ea1e7a84a9503", - "config": { - "product": { - "value": null, - "source": "static" - }, - "alignment": { - "value": null, - "source": "static" - } - }, - "fieldConfig": null, - "translations": null, - "data": null, - "locked": false, - "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "customFields": null, - "apiAlias": "cms_slot" - } - ], - "sectionId": "f4aaa27972314e3c9b7f3bb35c7f8a10", - "position": 2, - "name": null, - "sectionPosition": "main", - "marginTop": "20px", - "marginBottom": "20px", - "marginLeft": "20px", - "marginRight": "20px", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_block" - }, - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "cross-selling", - "slots": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "config": { - "product": { - "value": null, - "source": "static" - }, - "boxLayout": { - "value": "standard", - "source": "static" - }, - "elMinWidth": { - "value": "300px", - "source": "static" - }, - "displayMode": { - "value": "standard", - "source": "static" - } - }, - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "cross-selling", - "slot": "content", - "block": null, - "blockId": "2d69edd4faab493baa056c81ea8d131f", - "config": { - "product": { - "value": null, - "source": "static" - }, - "boxLayout": { - "value": "standard", - "source": "static" - }, - "elMinWidth": { - "value": "300px", - "source": "static" - }, - "displayMode": { - "value": "standard", - "source": "static" - } - }, - "fieldConfig": null, - "translations": null, - "data": null, - "locked": false, - "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "customFields": null, - "apiAlias": "cms_slot" - } - ], - "sectionId": "f4aaa27972314e3c9b7f3bb35c7f8a10", - "position": 3, - "name": null, - "sectionPosition": "main", - "marginTop": "0", - "marginBottom": "0", - "marginLeft": "0", - "marginRight": "0", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_block" - } - ], - "pageId": "bea211b5099241719830df8026624f7f", - "page": null, - "position": 0, - "sizingMode": "boxed", - "mobileBehavior": "wrap", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_section" - } - ], - "translations": null, - "cssClass": null, - "config": null, - "previewMediaId": null, - "previewMedia": null, - "landingPages": null, - "id": "bea211b5099241719830df8026624f7f", - "customFields": null, - "apiAlias": "cms_page" - }, - "apiAlias": "pwa_page_result" - }, - { - "resourceType": "frontend.presentation.page", - "resourceIdentifier": "45a2b8ad0bb544e48f61eab564a2171c", - "cmsPage": { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "name": "Ended presentation page", - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "name": "Ended presentation page", - "type": "presentation_product_list", - "entity": null, - "sections": [ - { - "extensions": { - "translations": [] - }, - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "default", - "blocks": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "text-hero", - "slots": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "config": { - "content": { - "value": "
Thank you for your attention!
Below you can find all products wich were presented to you.
", - "source": "static" - }, - "verticalAlign": { - "value": null, - "source": "static" - } - }, - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "text", - "slot": "content", - "block": null, - "blockId": "c49b01e9c6624973b9cdd1992d3c009a", - "config": { - "content": { - "value": "Thank you for your attention!
Below you can find all products wich were presented to you.
", - "source": "static" - }, - "verticalAlign": { - "value": null, - "source": "static" - } - }, - "fieldConfig": null, - "translations": null, - "data": null, - "locked": false, - "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "customFields": null, - "apiAlias": "cms_slot" - } - ], - "sectionId": "0a5e89814463470684a734b975add4ed", - "position": 0, - "name": null, - "sectionPosition": "main", - "marginTop": "20px", - "marginBottom": "20px", - "marginLeft": "20px", - "marginRight": "20px", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_block" - }, - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "product-listing", - "slots": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "config": { - "filters": { - "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", - "source": "static" - }, - "boxLayout": { - "value": "standard", - "source": "static" - }, - "showSorting": { - "value": true, - "source": "static" - }, - "defaultSorting": { - "value": "", - "source": "static" - }, - "useCustomSorting": { - "value": false, - "source": "static" - }, - "availableSortings": { - "value": [], - "source": "static" - }, - "propertyWhitelist": { - "value": [], - "source": "static" - } - }, - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "product-listing", - "slot": "content", - "block": null, - "blockId": "0a13f5daa9be4e7b8ed5e3ecaba79fe6", - "config": { - "filters": { - "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", - "source": "static" - }, - "boxLayout": { - "value": "standard", - "source": "static" - }, - "showSorting": { - "value": true, - "source": "static" - }, - "defaultSorting": { - "value": "", - "source": "static" - }, - "useCustomSorting": { - "value": false, - "source": "static" - }, - "availableSortings": { - "value": [], - "source": "static" - }, - "propertyWhitelist": { - "value": [], - "source": "static" - } - }, - "fieldConfig": null, - "translations": null, - "data": null, - "locked": false, - "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "customFields": null, - "apiAlias": "cms_slot" - } - ], - "sectionId": "0a5e89814463470684a734b975add4ed", - "position": 1, - "name": null, - "sectionPosition": "main", - "marginTop": "20px", - "marginBottom": "20px", - "marginLeft": "20px", - "marginRight": "20px", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_block" - } - ], - "pageId": "8ea80092faa744559409f3e9f7adcc6b", - "page": null, - "position": 0, - "sizingMode": "boxed", - "mobileBehavior": "wrap", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_section" - } - ], - "translations": null, - "cssClass": null, - "config": null, - "previewMediaId": null, - "previewMedia": null, - "landingPages": null, - "id": "8ea80092faa744559409f3e9f7adcc6b", - "customFields": null, - "apiAlias": "cms_page" - }, - "apiAlias": "pwa_page_result" - } - ], - "navigation": [ - { - "groupName": "Default Digital Sales Rooms product listing page", - "groupId": "468b0e34237a44ad8f8a8d5e0b72b78f", - "cmsPageId": "33e88c7994fa4cf79a1265e5105b93b2", - "name": null, - "id": "2229e1f1208a4b8086baf7aec84f5e2c", - "index": 1, - "notes": [ - { - "extensions": { - "foreignKeys": { - "extensions": [], - "apiAlias": "cms_slot_foreign_keys_extension" - } - }, - "_uniqueIdentifier": "de28c711c20b4ad0a54871d5a23109fc", - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "config": { - "content": { - "value": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, \n sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \n sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. \n Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. \n Lorem ipsum dolor sit amet, consetetur sadipscing elitr, \n sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. \n At vero eos et accusam et justo duo dolores et ea rebum. \n Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
", - "source": "static" - }, - "verticalAlign": { - "value": null, - "source": "static" - } - }, - "customFields": [] - }, - "createdAt": "2023-08-10T04:30:28.649+00:00", - "updatedAt": null, - "type": "notes", - "slot": "content", - "block": null, - "blockId": "978ca9beff6e4edca6d5263fac254e13", - "config": { - "content": { - "value": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, \n sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \n sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. \n Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. \n Lorem ipsum dolor sit amet, consetetur sadipscing elitr, \n sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. \n At vero eos et accusam et justo duo dolores et ea rebum. \n Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
", - "source": "static" - }, - "verticalAlign": { - "value": null, - "source": "static" - } - }, - "fieldConfig": null, - "translations": null, - "data": null, - "locked": false, - "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "id": "de28c711c20b4ad0a54871d5a23109fc", - "customFields": null - } - ] - }, - { - "groupName": "Default Digital Sales Rooms product detail page", - "groupId": "52f1e61cd45945a0b72bd613d1268d65", - "cmsPageId": "bea211b5099241719830df8026624f7f", - "name": null, - "id": "f4aaa27972314e3c9b7f3bb35c7f8a10", - "index": 2, - "notes": [] - }, - { - "groupName": "Ended presentation page", - "groupId": "b073190abe03407993f41b8d5bc8ba57", - "cmsPageId": "8ea80092faa744559409f3e9f7adcc6b", - "name": null, - "id": "0a5e89814463470684a734b975add4ed", - "index": 3, - "notes": [] - } - ], - "apiAlias": "pwa_page_result" - } - }, - "JoinAppointmentResponse": { - "type": "object", - "description": "Includes all data you will need to attend to a appointment.", - "properties": { - "mercureSubscriberTopics": { - "type": "array", - "items": { - "type": "string", - "description": "mercure topic" - }, - "description": "The topics to which the attendee/guide can subscribe for" - }, - "mercurePublisherTopic": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The topic to which the attendee/guide can send updates" - }, - "JWTMercureSubscriberToken": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The JWT mercure token to publish updates" - }, - "mercureHubPublicUrl": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The mercure hub url to connect for subscribing and updating" - }, - "JWTMercurePublisherToken": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The JWT mercure token to subscribe for updates" - }, - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The appointment id" - }, - "newContextToken": { - "type": "string", - "description": "The new context token will be used in the header (sw-context-token) for calling the other routes" - }, - "attendeeId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The created Id for the attendee" - }, - "salesChannelId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The id of the current sales channel" - }, - "salesChannelName": { - "type": "string", - "description": "The name of the current sales channel" - }, - "appointmentName": { - "type": "string", - "description": "The name of the appointment" - }, - "presentationGuideMode": { - "type": "string", - "enum": [ - "self", - "guided" - ], - "description": "The type of the appointment" - }, - "isPreview": { - "type": "boolean", - "description": "To see if it's a preview appointment" - }, - "attendeeName": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The name of the attendee" - }, - "videoUserId": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "description": "The video user id that attendee could use" - }, - "b2bFeatures": { - "type": "object", - "description": "The b2b features that available for the appointment", - "properties": { - "quoteManagement": { - "type": "boolean", - "description": "To know if the quote management is enabled for current customer" - } - } - } - }, - "example": { - "mercureSubscriberTopics": [ - "gs-guide-actions-2d2c358f1ca04098aacf12873c2eed82", - "gs-presentation-state-for-client-2d2c358f1ca04098aacf12873c2eed82", - "gs-presentation-state-for-all-2d2c358f1ca04098aacf12873c2eed82" - ], - "mercurePublisherTopic": "gs-client-actions-2d2c358f1ca04098aacf12873c2eed82", - "JWTMercureSubscriberToken": "jwt token for subscribing to updates", - "mercureHubPublicUrl": "http://localhost:8081/.well-known/mercure", - "JWTMercurePublisherToken": "jwt token for publishing updates", - "attendeeName": "attendee name", - "videoUserId": null, - "b2bFeatures": { - "feature1": false, - "feature2": true - }, - "id": "2d2c358f1ca04098aacf12873c2eed82", - "newContextToken": "new context token to call the other routes", - "attendeeId": "b6358241e4ad4a4e99d0f729d21d63be", - "salesChannelId": "4a791ec7f9ff46b2ad67ae2f562891d3", - "salesChannelName": "Storefront", - "appointmentName": "Test Appointment", - "presentationGuideMode": "guided", - "isPreview": false, - "apiAlias": "swag_digital_sales_rooms_content_appointment_struct_appointment_join_struct" - } - }, - "AttendeeProductCollectionResponse": { - "type": "object", - "properties": { - "collection": { - "type": "object", - "anyOf": [ - { - "type": "object", - "properties": { - "liked": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Product ids from the collection" - } - } - } - }, - { - "type": "object", - "properties": { - "disliked": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Product ids from the collection" - } - } - } - } - ] - } - }, - "example": { - "collection": { - "liked": [ - "0015b3d83df441e490da7f6880a9c2da", - "60793d25cbab473f92c405ce0525f3ec" - ] - } - } - }, - "DynamicProductPageOpenedPayload": { - "allOf": [ - { - "$ref": "#/components/schemas/AbstractDynamicPageOpenedPayload" - } - ], - "required": [ - "productId" - ], - "properties": { - "productId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "the id from the product which is shown on the dynamic page" - } - } - }, - "UpdateAttendeeRequestBody": { - "type": "object", - "properties": { - "attendeeName": { - "type": "string", - "description": "Name of the attendee" - }, - "videoUserId": { - "type": "string", - "description": "Id of the attendee in the video chat tool" - } - } - }, - "ScreenSharingToggledPayload": { - "type": "object", - "required": [ - "active" - ], - "properties": { - "active": { - "type": "boolean", - "description": "Whether the screen sharing is active or not" - } - } - }, - "CreateAppointmentRequestBody": { - "type": "object", - "description": "Includes all data you will need to attend to a appointment.", - "required": [ - "salutationId", - "firstName", - "lastName", - "emailAddress", - "subject" - ], - "properties": { - "salutationId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The id of the salutation" - }, - "firstName": { - "type": "string", - "description": "The first name of the requester" - }, - "lastName": { - "type": "string", - "description": "The last name of the requester" - }, - "emailAddress": { - "type": "string", - "format": "email", - "description": "The email address of the requester" - }, - "companyName": { - "type": "string", - "description": "The company name of the requester" - }, - "phoneNumber": { - "type": "string", - "description": "The phone number of the requester" - }, - "subject": { - "type": "string", - "description": "The subject of the appointment" - }, - "message": { - "type": "string", - "description": "The message of the appointment" - } - }, - "example": { - "id": "2d2c358f1ca04098aacf12873c2eed94", - "appointmentId": "3b3c358f1ca04098aacf12873c2eed94", - "salutationId": "5m6c358f1ca04098aacf12873c2eed94", - "firstName": "John", - "lastName": "Doe", - "emailAddress": "john@example.com", - "companyName": "Example Inc.", - "phoneNumber": "+1234567890", - "subject": "Appointment subject", - "message": "Appointment message", - "requestedById": "7b7c358f1ca04098aacf12873c2eed94" - } - }, - "DiscountLineItemPayload": { - "type": "object", - "properties": { - "discountType": { - "type": "string", - "enum": [ - "percentage", - "absolute" - ] - }, - "discountValue": { - "type": "number", - "format": "float", - "maximum": 0 - }, - "discountPrice": { - "type": "number", - "format": "float", - "maximum": 0 - } - } - }, - "EmptyPayload": { - "type": "object", - "properties": [] - }, - "AttendeeProductCollectionLastSeenResponse": { - "type": "object", - "properties": { - "collection": { - "type": "object", - "properties": { - "lastSeen": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Product ids from the collection" - } - } - } - } - }, - "example": { - "collection": { - "lastSeen": [ - "0015b3d83df441e490da7f6880a9c2da", - "60793d25cbab473f92c405ce0525f3ec" - ] - } - } - }, - "BasePresentationSlideData": { - "properties": { - "cmsPage": { - "$ref": "#/components/schemas/CmsPage" - }, - "extensions": { - "type": "object", - "properties": { - "cmsPageRelation": { - "$ref": "#/components/schemas/PresentationCmsPage" - } - } - } - } - }, - "PresentationSlideData": { - "type": "object", - "properties": { - "cmsPage": { - "$ref": "#/components/schemas/CmsPage" - }, - "extensions": { - "type": "object", - "properties": { - "cmsPageRelation": { - "$ref": "#/components/schemas/PresentationCmsPage" - } - } - }, - "product": { - "$ref": "#/components/schemas/Product" - }, - "category": { - "$ref": "#/components/schemas/Category" - }, - "configurator": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PropertyGroup" - } - } - }, - "example": { - "extensions": { - "cmsPageRelation": { - "translated": { - "title": null - }, - "createdAt": "2023-08-09T11:00:13.160+00:00", - "updatedAt": null, - "presentationId": "506cce706e914c1e8b083f05670d85c4", - "cmsPageId": "33e88c7994fa4cf79a1265e5105b93b2", - "title": null, - "productId": null, - "productStreamId": null, - "position": 2, - "isInstantListing": false, - "cmsPage": { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "name": "Default Digital Sales Rooms product listing page", - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "name": "Default Digital Sales Rooms product listing page", - "type": "presentation_product_list", - "entity": null, - "sections": [ - { - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "default", - "blocks": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "product-listing", - "slots": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "config": { - "filters": { - "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", - "source": "static" - }, - "boxLayout": { - "value": "standard", - "source": "static" - }, - "showSorting": { - "value": true, - "source": "static" - }, - "defaultSorting": { - "value": "", - "source": "static" - }, - "useCustomSorting": { - "value": false, - "source": "static" - }, - "availableSortings": { - "value": [], - "source": "static" - }, - "propertyWhitelist": { - "value": [], - "source": "static" - } - }, - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "product-listing", - "slot": "content", - "block": null, - "blockId": "96ea8b9676a5461c9149d205d792ecf2", - "config": { - "filters": { - "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", - "source": "static" - }, - "boxLayout": { - "value": "standard", - "source": "static" - }, - "showSorting": { - "value": true, - "source": "static" - }, - "defaultSorting": { - "value": "", - "source": "static" - }, - "useCustomSorting": { - "value": false, - "source": "static" - }, - "availableSortings": { - "value": [], - "source": "static" - }, - "propertyWhitelist": { - "value": [], - "source": "static" - } - }, - "fieldConfig": null, - "translations": null, - "data": null, - "locked": false, - "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "customFields": null, - "apiAlias": "cms_slot" - } - ], - "sectionId": "2229e1f1208a4b8086baf7aec84f5e2c", - "position": 0, - "name": null, - "sectionPosition": "main", - "marginTop": "20px", - "marginBottom": "20px", - "marginLeft": "20px", - "marginRight": "20px", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_block" - } - ], - "pageId": "33e88c7994fa4cf79a1265e5105b93b2", - "page": null, - "position": 0, - "sizingMode": "boxed", - "mobileBehavior": "wrap", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_section" - } - ], - "translations": null, - "cssClass": null, - "config": null, - "previewMediaId": null, - "previewMedia": null, - "landingPages": null, - "id": "33e88c7994fa4cf79a1265e5105b93b2", - "customFields": null, - "apiAlias": "cms_page" - }, - "pickedProductIds": null, - "dsrPresentationVersionId": "213769ba28dd4ee788bdb49dc9ce53d2", - "id": "4ee08e142ed046eb99681594f67599f1", - "customFields": null, - "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "apiAlias": "dsr_presentation_cms_page" - } - }, - "cmsPage": { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "name": "Default Digital Sales Rooms product listing page", - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "name": "Default Digital Sales Rooms product listing page", - "type": "presentation_product_list", - "entity": null, - "sections": [ - { - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "default", - "blocks": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": [], - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "product-listing", - "slots": [ - { - "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "translated": { - "config": { - "filters": { - "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", - "source": "static" - }, - "boxLayout": { - "value": "standard", - "source": "static" - }, - "showSorting": { - "value": true, - "source": "static" - }, - "defaultSorting": { - "value": "", - "source": "static" - }, - "useCustomSorting": { - "value": false, - "source": "static" - }, - "availableSortings": { - "value": [], - "source": "static" - }, - "propertyWhitelist": { - "value": [], - "source": "static" - } - }, - "customFields": [] - }, - "createdAt": "2023-08-03T17:24:09.000+00:00", - "updatedAt": null, - "type": "product-listing", - "slot": "content", - "block": null, - "blockId": "96ea8b9676a5461c9149d205d792ecf2", - "config": { - "filters": { - "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", - "source": "static" - }, - "boxLayout": { - "value": "standard", - "source": "static" - }, - "showSorting": { - "value": true, - "source": "static" - }, - "defaultSorting": { - "value": "", - "source": "static" - }, - "useCustomSorting": { - "value": false, - "source": "static" - }, - "availableSortings": { - "value": [], - "source": "static" - }, - "propertyWhitelist": { - "value": [], - "source": "static" - } - }, - "fieldConfig": null, - "translations": null, - "data": { - "listing": { - "elements": [ - { - "versionId": null, - "translated": [], - "createdAt": null, - "updatedAt": null, - "parentId": null, - "childCount": null, - "taxId": null, - "manufacturerId": null, - "unitId": null, - "active": null, - "displayGroup": null, - "manufacturerNumber": null, - "ean": null, - "sales": null, - "productNumber": null, - "stock": null, - "availableStock": null, - "available": null, - "deliveryTimeId": null, - "deliveryTime": null, - "restockTime": null, - "isCloseout": null, - "purchaseSteps": null, - "maxPurchase": null, - "minPurchase": null, - "purchaseUnit": null, - "referenceUnit": null, - "shippingFree": null, - "markAsTopseller": null, - "weight": null, - "width": null, - "height": null, - "length": null, - "releaseDate": null, - "categoryTree": null, - "streamIds": null, - "optionIds": null, - "propertyIds": null, - "name": null, - "keywords": null, - "description": null, - "metaDescription": null, - "metaTitle": null, - "packUnit": null, - "packUnitPlural": null, - "tax": null, - "manufacturer": null, - "unit": null, - "cover": null, - "parent": null, - "children": null, - "media": null, - "cmsPageId": null, - "cmsPage": null, - "translations": null, - "categories": null, - "properties": null, - "options": null, - "configuratorSettings": null, - "categoriesRo": null, - "coverId": null, - "categoryIds": null, - "productReviews": null, - "ratingAverage": null, - "mainCategories": null, - "seoUrls": null, - "crossSellings": null, - "canonicalProductId": null, - "canonicalProduct": null, - "streams": null, - "downloads": null, - "states": [], - "id": "a32702bb0b1443e3881c3b9a38c09169", - "customFields": null, - "apiAlias": "product" - } - ], - "aggregations": [], - "page": 1, - "limit": null, - "entity": "product", - "total": 0, - "states": [], - "apiAlias": "dal_entity_search_result" - }, - "apiAlias": "cms_product_listing" - }, - "locked": false, - "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "customFields": null, - "apiAlias": "cms_slot" - } - ], - "sectionId": "2229e1f1208a4b8086baf7aec84f5e2c", - "position": 0, - "name": null, - "sectionPosition": "main", - "marginTop": "20px", - "marginBottom": "20px", - "marginLeft": "20px", - "marginRight": "20px", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_block" - } - ], - "pageId": "33e88c7994fa4cf79a1265e5105b93b2", - "page": null, - "position": 0, - "sizingMode": "boxed", - "mobileBehavior": "wrap", - "backgroundColor": null, - "backgroundMediaId": null, - "backgroundMedia": null, - "backgroundMediaMode": "cover", - "cssClass": null, - "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", - "visibility": null, - "customFields": null, - "apiAlias": "cms_section" - } - ], - "translations": null, - "cssClass": null, - "config": null, - "previewMediaId": null, - "previewMedia": null, - "landingPages": null, - "id": "33e88c7994fa4cf79a1265e5105b93b2", - "customFields": null, - "apiAlias": "cms_page" - }, - "category": { - "versionId": null, - "translated": { - "breadcrumb": [] - }, - "createdAt": null, - "updatedAt": null, - "afterCategoryId": null, - "parentId": null, - "mediaId": null, - "name": null, - "breadcrumb": [], - "path": null, - "level": null, - "active": null, - "childCount": null, - "visibleChildCount": 0, - "displayNestedProducts": null, - "parent": null, - "children": null, - "translations": null, - "media": null, - "cmsPageId": null, - "cmsPageIdSwitched": false, - "cmsPage": null, - "linkType": null, - "linkNewTab": null, - "internalLink": null, - "externalLink": null, - "visible": null, - "type": null, - "productAssignmentType": null, - "description": null, - "metaTitle": null, - "metaDescription": null, - "keywords": null, - "seoUrls": null, - "customEntityTypeId": null, - "id": "34f21c5eb6d54a939f10973204aa5f08", - "customFields": null, - "apiAlias": "category" - }, - "apiAlias": "pwa_page_result" - } - }, - "DynamicPageOpenedPayload": { - "allOf": [ - { - "$ref": "#/components/schemas/AbstractDynamicPageOpenedPayload" - } - ] - }, - "StateForClients": { - "type": "object", - "properties": { - "videoClientToken": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "hoveredElementId": { - "anyOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } - ] - }, - "extensions": { - "type": "array", - "default": [] - } - } - }, - "AttendeeRespondInvitationResponse": { - "type": "object", - "properties": { - "appointment": { - "type": "object", - "properties": { - "id": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "The appointment id" - }, - "accessibleFrom": { - "type": "string", - "format": "date-time", - "description": "The time the client can access the appointment" - }, - "accessibleTo": { - "type": "string", - "format": "date-time", - "description": "The time the appointment will be closed, the client can not access" - }, - "status": { - "anyOf": [ - { - "type": "string", - "enum": [ - "started", - "ended" - ] - }, - { - "type": "null" - } - ], - "description": "The appointment status" - } - } - }, - "answer": { - "type": "string", - "enum": [ - "accepted", - "maybe", - "declined" - ], - "description": "The invitation status that client responded to" - } - } - }, - "ProductPageResult": { - "type": "object", - "properties": { - "cmsPage": { - "$ref": "#/components/schemas/CmsPage" - }, - "product": { - "$ref": "#/components/schemas/Product" - }, - "configurator": { - "oneOf": [ - { - "$ref": "#/components/schemas/PropertyGroup" - }, - { - "type": "null" - } - ] - }, - "apiAlias": { - "type": "string" - } - } - }, - "ViewModeChangedPayload": { - "type": "object", - "properties": { - "mode": { - "type": "string", - "description": "The view mode of presentation", - "enum": [ - "onlyYou", - "presentation", - "videoGrid" - ], - "default": "presentation" - } - } - }, - "DynamicProductListingPageOpenedPayload": { - "required": [ - "page" - ], - "properties": { - "page": { - "type": "integer", - "description": "Current page position in the pagination" - } - } - }, - "DynamicPageClosedPayload": { - "type": "object", - "properties": { - "pageId": { - "oneOf": [ - { - "type": "string", - "pattern": "^[a-f0-9]{32}$" - }, - { - "type": "null" - } - ], - "pattern": "^[a-f0-9]{32}$", - "description": "The id of the page that was closed" - }, - "all": { - "type": "boolean", - "default": false, - "description": "Whether all pages were closed" - } - } - }, - "ClientPresentationStateResponse": { - "type": "object", - "properties": { - "stateForAll": { - "$ref": "#/components/schemas/StateForAll" - }, - "stateForClients": { - "$ref": "#/components/schemas/StateForClients" - } - }, - "example": { - "stateForAll": { - "currentGuideProductId": null, - "lastActiveGuideSection": null, - "currentPageId": null, - "currentSectionId": null, - "currentSlideAlias": 0, - "currentDynamicPage": null, - "started": false, - "running": false, - "ended": false, - "startedAt": null, - "endedAt": null, - "accessibleFrom": null, - "accessibleTo": null, - "appointmentMode": "guided", - "videoAudioSettings": "both", - "videoRoomUrl": "", - "attendeeRestrictionType": "open", - "productDetailDefaultPageId": "bea211b5099241719830df8026624f7f", - "quickviewPageId": "182d3f7f988044adbba449b70c8bc472", - "productListingDefaultPageId": "33e88c7994fa4cf79a1265e5105b93b2", - "broadcastMode": false, - "extensions": [] - }, - "stateForClients": { - "videoClientToken": null, - "hoveredElementId": null, - "extensions": [] - }, - "apiAlias": "swag_digital_sales_rooms_content_presentation_state_sales_channel_get_get_client_presentation_state_struct" - } - }, - "PresentationCmsPage": { - "allOf": [ - { - "$ref": "#/components/schemas/DsrPresentationCmsPage" - }, - { - "type": "object", - "properties": { - "pickedProductIds": { - "anyOf": [ - { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Product id" - } - }, - { - "type": "null" - } - ], - "description": "The product id is assigned to presentation if it's product listing or instant listing" - } - } - } - ] - }, - "AppointmentBasicSettingResponse": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "description": "The API alias of the appointment basic setting" - }, - "mode": { - "type": "string", - "description": "The mode of the interaction", - "enum": [ - "guided", - "self" - ] - }, - "attendeeRestrictionType": { - "type": "string", - "description": "The type of attendee restriction", - "enum": [ - "open", - "customer", - "rules" - ] - }, - "videoAudioSettings": { - "type": "string", - "description": "The video and audio settings", - "enum": [ - "none", - "both", - "audio-only" - ] - }, - "canSendRequestEmail": { - "type": "boolean", - "description": "Indicates if request emails can be sent", - "default": false - }, - "canBookAppointment": { - "type": "boolean", - "description": "Indicates if appointments can be booked", - "default": false - }, - "enableWishlist": { - "type": "boolean", - "description": "Indicates if the wishlist is enabled", - "default": false - }, - "bookingLink": { - "description": "The booking link", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "appointmentName": { - "type": "string", - "description": "The name of the appointment" - }, - "salesChannelName": { - "type": "string", - "description": "The name of the sales channel" - } - }, - "example": { - "apiAlias": "appointment_basic_setting", - "mode": "self", - "attendeeRestrictionType": "open", - "videoAudioSettings": "none", - "canSendRequestEmail": false, - "canBookAppointment": false, - "enableWishlist": false, - "bookingLink": null, - "appointmentName": "dsr11", - "salesChannelName": "Storefront" - } - }, - "AbstractDynamicPageOpenedPayload": { - "type": "object", - "required": [ - "pageId", - "type" - ], - "properties": { - "pageId": { - "type": "string", - "pattern": "^[a-f0-9]{32}$", - "description": "The id of the current dynamic page" - }, - "type": { - "type": "string", - "description": "The type of the current dynamic page" - }, - "opened": { - "type": "boolean", - "default": true - }, - "position": { - "type": "integer", - "description": "The position of the dynamic page in the list of dynamic pages" + "collection": { + "lastSeen": [ + "0015b3d83df441e490da7f6880a9c2da", + "60793d25cbab473f92c405ce0525f3ec" + ] } } }, - "StateForAll": { + "JoinAppointmentResponse": { "type": "object", + "description": "Includes all data you will need to attend to a appointment.", "properties": { - "currentGuideProductId": { - "anyOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } - ] + "mercureSubscriberTopics": { + "type": "array", + "items": { + "type": "string", + "description": "mercure topic" + }, + "description": "The topics to which the attendee/guide can subscribe for" }, - "lastActiveGuideSection": { - "anyOf": [ + "mercurePublisherTopic": { + "oneOf": [ { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" }, { "type": "null" } - ] + ], + "description": "The topic to which the attendee/guide can send updates" }, - "currentPageId": { - "anyOf": [ + "JWTMercureSubscriberToken": { + "oneOf": [ { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" }, { "type": "null" } - ] + ], + "description": "The JWT mercure token to publish updates" }, - "currentSectionId": { - "anyOf": [ + "mercureHubPublicUrl": { + "oneOf": [ { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" }, { "type": "null" } - ] - }, - "currentSlideAlias": { - "type": "integer", - "default": 0 + ], + "description": "The mercure hub url to connect for subscribing and updating" }, - "currentSlideData": { - "anyOf": [ + "JWTMercurePublisherToken": { + "oneOf": [ { - "$ref": "#/components/schemas/DynamicProductListingPageOpenedPayload" + "type": "string" }, { "type": "null" } - ] - }, - "currentDynamicPage": { - "$ref": "#/components/schemas/DynamicPageOpenedPayload" - }, - "started": { - "type": "boolean", - "default": false - }, - "running": { - "type": "boolean", - "default": false + ], + "description": "The JWT mercure token to subscribe for updates" }, - "ended": { - "type": "boolean", - "default": false + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The appointment id" }, - "startedAt": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ] + "newContextToken": { + "type": "string", + "description": "The new context token will be used in the header (sw-context-token) for calling the other routes" }, - "endedAt": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ] + "attendeeId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The created Id for the attendee" }, - "accessibleFrom": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ] + "salesChannelId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The id of the current sales channel" }, - "accessibleTo": { - "anyOf": [ - { - "type": "string", - "format": "date-time" - }, - { - "type": "null" - } - ] + "salesChannelName": { + "type": "string", + "description": "The name of the current sales channel" }, - "appointmentMode": { + "appointmentName": { "type": "string", - "enum": [ - "guided", - "self" - ] + "description": "The name of the appointment" }, - "videoAudioSettings": { + "presentationGuideMode": { "type": "string", "enum": [ - "both", - "none", - "audio-only" + "self", + "guided" ], - "default": "none" - }, - "videoRoomUrl": { - "type": "string", - "default": "" + "description": "The type of the appointment" }, - "attendeeRestrictionType": { - "anyOf": [ - { - "type": "string", - "enum": [ - "open", - "customer", - "rules" - ] - }, - { - "type": "null" - } - ] + "isPreview": { + "type": "boolean", + "description": "To see if it's a preview appointment" }, - "productDetailDefaultPageId": { - "anyOf": [ + "attendeeName": { + "oneOf": [ { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" }, { "type": "null" } - ] + ], + "description": "The name of the attendee" }, - "quickviewPageId": { - "anyOf": [ + "videoUserId": { + "oneOf": [ { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" }, { "type": "null" } - ] + ], + "description": "The video user id that attendee could use" }, - "productListingDefaultPageId": { - "anyOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "type": "null" + "b2bFeatures": { + "type": "object", + "description": "The b2b features that available for the appointment", + "properties": { + "quoteManagement": { + "type": "boolean", + "description": "To know if the quote management is enabled for current customer" } - ] + } + } + }, + "example": { + "mercureSubscriberTopics": [ + "gs-guide-actions-2d2c358f1ca04098aacf12873c2eed82", + "gs-presentation-state-for-client-2d2c358f1ca04098aacf12873c2eed82", + "gs-presentation-state-for-all-2d2c358f1ca04098aacf12873c2eed82" + ], + "mercurePublisherTopic": "gs-client-actions-2d2c358f1ca04098aacf12873c2eed82", + "JWTMercureSubscriberToken": "jwt token for subscribing to updates", + "mercureHubPublicUrl": "http://localhost:8081/.well-known/mercure", + "JWTMercurePublisherToken": "jwt token for publishing updates", + "attendeeName": "attendee name", + "videoUserId": null, + "b2bFeatures": { + "feature1": false, + "feature2": true }, - "broadcastMode": { - "type": "boolean", - "default": false + "id": "2d2c358f1ca04098aacf12873c2eed82", + "newContextToken": "new context token to call the other routes", + "attendeeId": "b6358241e4ad4a4e99d0f729d21d63be", + "salesChannelId": "4a791ec7f9ff46b2ad67ae2f562891d3", + "salesChannelName": "Storefront", + "appointmentName": "Test Appointment", + "presentationGuideMode": "guided", + "isPreview": false, + "apiAlias": "swag_digital_sales_rooms_content_appointment_struct_appointment_join_struct" + } + }, + "AbstractDynamicPageOpenedPayload": { + "type": "object", + "required": [ + "pageId", + "type" + ], + "properties": { + "pageId": { + "type": "string", + "pattern": "^[a-f0-9]{32}$", + "description": "The id of the current dynamic page" }, - "viewMode": { + "type": { "type": "string", - "enum": [ - "onlyYou", - "presentation", - "videoGrid" - ], - "default": "presentation" + "description": "The type of the current dynamic page" }, - "allowScreenSharing": { + "opened": { "type": "boolean", - "default": false + "default": true }, - "extensions": { - "type": "array", - "default": [] + "position": { + "type": "integer", + "description": "The position of the dynamic page in the list of dynamic pages" } } }, - "DynamicInteractionBody": { - "oneOf": [ - { - "$ref": "#/components/schemas/EmptyInteraction" + "ToggleBroadcastModePayload": { + "type": "object", + "required": [ + "active" + ], + "properties": { + "active": { + "type": "boolean", + "description": "Status if the mode is toggled to active or inactive" + } + } + }, + "UpdateAttendeeRequestBody": { + "type": "object", + "properties": { + "attendeeName": { + "type": "string", + "description": "Name of the attendee" }, - { - "$ref": "#/components/schemas/ProductInteraction" + "videoUserId": { + "type": "string", + "description": "Id of the attendee in the video chat tool" + } + } + }, + "BasePresentationSlideData": { + "properties": { + "cmsPage": { + "$ref": "#/components/schemas/CmsPage" }, - { - "$ref": "#/components/schemas/DynamicPageOpenedInteraction" + "extensions": { + "type": "object", + "properties": { + "cmsPageRelation": { + "$ref": "#/components/schemas/PresentationCmsPage" + } + } + } + } + }, + "PresentationSlideData": { + "type": "object", + "properties": { + "cmsPage": { + "$ref": "#/components/schemas/CmsPage" }, - { - "$ref": "#/components/schemas/DynamicPageClosedInteraction" + "extensions": { + "type": "object", + "properties": { + "cmsPageRelation": { + "$ref": "#/components/schemas/PresentationCmsPage" + } + } }, - { - "$ref": "#/components/schemas/DynamicProductPageOpenedInteraction" + "product": { + "$ref": "#/components/schemas/Product" }, - { - "$ref": "#/components/schemas/PageViewedInteraction" + "category": { + "$ref": "#/components/schemas/Category" }, - { - "$ref": "#/components/schemas/GuideHoveredInteraction" + "configurator": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertyGroup" + } + } + }, + "example": { + "extensions": { + "cmsPageRelation": { + "translated": { + "title": null + }, + "createdAt": "2023-08-09T11:00:13.160+00:00", + "updatedAt": null, + "presentationId": "506cce706e914c1e8b083f05670d85c4", + "cmsPageId": "33e88c7994fa4cf79a1265e5105b93b2", + "title": null, + "productId": null, + "productStreamId": null, + "position": 2, + "isInstantListing": false, + "cmsPage": { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "name": "Default Digital Sales Rooms product listing page", + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "name": "Default Digital Sales Rooms product listing page", + "type": "presentation_product_list", + "entity": null, + "sections": [ + { + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "default", + "blocks": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "product-listing", + "slots": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "config": { + "filters": { + "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", + "source": "static" + }, + "boxLayout": { + "value": "standard", + "source": "static" + }, + "showSorting": { + "value": true, + "source": "static" + }, + "defaultSorting": { + "value": "", + "source": "static" + }, + "useCustomSorting": { + "value": false, + "source": "static" + }, + "availableSortings": { + "value": [], + "source": "static" + }, + "propertyWhitelist": { + "value": [], + "source": "static" + } + }, + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "product-listing", + "slot": "content", + "block": null, + "blockId": "96ea8b9676a5461c9149d205d792ecf2", + "config": { + "filters": { + "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", + "source": "static" + }, + "boxLayout": { + "value": "standard", + "source": "static" + }, + "showSorting": { + "value": true, + "source": "static" + }, + "defaultSorting": { + "value": "", + "source": "static" + }, + "useCustomSorting": { + "value": false, + "source": "static" + }, + "availableSortings": { + "value": [], + "source": "static" + }, + "propertyWhitelist": { + "value": [], + "source": "static" + } + }, + "fieldConfig": null, + "translations": null, + "data": null, + "locked": false, + "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "customFields": null, + "apiAlias": "cms_slot" + } + ], + "sectionId": "2229e1f1208a4b8086baf7aec84f5e2c", + "position": 0, + "name": null, + "sectionPosition": "main", + "marginTop": "20px", + "marginBottom": "20px", + "marginLeft": "20px", + "marginRight": "20px", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_block" + } + ], + "pageId": "33e88c7994fa4cf79a1265e5105b93b2", + "page": null, + "position": 0, + "sizingMode": "boxed", + "mobileBehavior": "wrap", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_section" + } + ], + "translations": null, + "cssClass": null, + "config": null, + "previewMediaId": null, + "previewMedia": null, + "landingPages": null, + "id": "33e88c7994fa4cf79a1265e5105b93b2", + "customFields": null, + "apiAlias": "cms_page" + }, + "pickedProductIds": null, + "dsrPresentationVersionId": "213769ba28dd4ee788bdb49dc9ce53d2", + "id": "4ee08e142ed046eb99681594f67599f1", + "customFields": null, + "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "apiAlias": "dsr_presentation_cms_page" + } }, - { - "$ref": "#/components/schemas/ToggleBroadcastModeInteraction" + "cmsPage": { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "name": "Default Digital Sales Rooms product listing page", + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "name": "Default Digital Sales Rooms product listing page", + "type": "presentation_product_list", + "entity": null, + "sections": [ + { + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "default", + "blocks": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "product-listing", + "slots": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "config": { + "filters": { + "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", + "source": "static" + }, + "boxLayout": { + "value": "standard", + "source": "static" + }, + "showSorting": { + "value": true, + "source": "static" + }, + "defaultSorting": { + "value": "", + "source": "static" + }, + "useCustomSorting": { + "value": false, + "source": "static" + }, + "availableSortings": { + "value": [], + "source": "static" + }, + "propertyWhitelist": { + "value": [], + "source": "static" + } + }, + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "product-listing", + "slot": "content", + "block": null, + "blockId": "96ea8b9676a5461c9149d205d792ecf2", + "config": { + "filters": { + "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", + "source": "static" + }, + "boxLayout": { + "value": "standard", + "source": "static" + }, + "showSorting": { + "value": true, + "source": "static" + }, + "defaultSorting": { + "value": "", + "source": "static" + }, + "useCustomSorting": { + "value": false, + "source": "static" + }, + "availableSortings": { + "value": [], + "source": "static" + }, + "propertyWhitelist": { + "value": [], + "source": "static" + } + }, + "fieldConfig": null, + "translations": null, + "data": { + "listing": { + "elements": [ + { + "versionId": null, + "translated": [], + "createdAt": null, + "updatedAt": null, + "parentId": null, + "childCount": null, + "taxId": null, + "manufacturerId": null, + "unitId": null, + "active": null, + "displayGroup": null, + "manufacturerNumber": null, + "ean": null, + "sales": null, + "productNumber": null, + "stock": null, + "availableStock": null, + "available": null, + "deliveryTimeId": null, + "deliveryTime": null, + "restockTime": null, + "isCloseout": null, + "purchaseSteps": null, + "maxPurchase": null, + "minPurchase": null, + "purchaseUnit": null, + "referenceUnit": null, + "shippingFree": null, + "markAsTopseller": null, + "weight": null, + "width": null, + "height": null, + "length": null, + "releaseDate": null, + "categoryTree": null, + "streamIds": null, + "optionIds": null, + "propertyIds": null, + "name": null, + "keywords": null, + "description": null, + "metaDescription": null, + "metaTitle": null, + "packUnit": null, + "packUnitPlural": null, + "tax": null, + "manufacturer": null, + "unit": null, + "cover": null, + "parent": null, + "children": null, + "media": null, + "cmsPageId": null, + "cmsPage": null, + "translations": null, + "categories": null, + "properties": null, + "options": null, + "configuratorSettings": null, + "categoriesRo": null, + "coverId": null, + "categoryIds": null, + "productReviews": null, + "ratingAverage": null, + "mainCategories": null, + "seoUrls": null, + "crossSellings": null, + "canonicalProductId": null, + "canonicalProduct": null, + "streams": null, + "downloads": null, + "states": [], + "id": "a32702bb0b1443e3881c3b9a38c09169", + "customFields": null, + "apiAlias": "product" + } + ], + "aggregations": [], + "page": 1, + "limit": null, + "entity": "product", + "total": 0, + "states": [], + "apiAlias": "dal_entity_search_result" + }, + "apiAlias": "cms_product_listing" + }, + "locked": false, + "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "customFields": null, + "apiAlias": "cms_slot" + } + ], + "sectionId": "2229e1f1208a4b8086baf7aec84f5e2c", + "position": 0, + "name": null, + "sectionPosition": "main", + "marginTop": "20px", + "marginBottom": "20px", + "marginLeft": "20px", + "marginRight": "20px", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_block" + } + ], + "pageId": "33e88c7994fa4cf79a1265e5105b93b2", + "page": null, + "position": 0, + "sizingMode": "boxed", + "mobileBehavior": "wrap", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_section" + } + ], + "translations": null, + "cssClass": null, + "config": null, + "previewMediaId": null, + "previewMedia": null, + "landingPages": null, + "id": "33e88c7994fa4cf79a1265e5105b93b2", + "customFields": null, + "apiAlias": "cms_page" }, - { - "$ref": "#/components/schemas/ViewModeChangedInteraction" + "category": { + "versionId": null, + "translated": { + "breadcrumb": [] + }, + "createdAt": null, + "updatedAt": null, + "afterCategoryId": null, + "parentId": null, + "mediaId": null, + "name": null, + "breadcrumb": [], + "path": null, + "level": null, + "active": null, + "childCount": null, + "visibleChildCount": 0, + "displayNestedProducts": null, + "parent": null, + "children": null, + "translations": null, + "media": null, + "cmsPageId": null, + "cmsPageIdSwitched": false, + "cmsPage": null, + "linkType": null, + "linkNewTab": null, + "internalLink": null, + "externalLink": null, + "visible": null, + "type": null, + "productAssignmentType": null, + "description": null, + "metaTitle": null, + "metaDescription": null, + "keywords": null, + "seoUrls": null, + "customEntityTypeId": null, + "id": "34f21c5eb6d54a939f10973204aa5f08", + "customFields": null, + "apiAlias": "category" }, - { - "$ref": "#/components/schemas/ScreenSharingToggledInteraction" - } - ], - "discriminator": { - "propertyName": "name", - "mapping": { - "keep.alive": "#/components/schemas/EmptyInteraction", - "quickview.opened": "#/components/schemas/EmptyInteraction", - "quickview.closed": "#/components/schemas/EmptyInteraction", - "attendee.leave": "#/components/schemas/EmptyInteraction", - "remote.checkout.accepted": "#/components/schemas/EmptyInteraction", - "remote.checkout.denied": "#/components/schemas/EmptyInteraction", - "product.viewed": "#/components/schemas/ProductInteraction", - "attendee.product.collection.liked": "#/components/schemas/ProductInteraction", - "attendee.product.collection.disliked": "#/components/schemas/ProductInteraction", - "attendee.product.collection.removed": "#/components/schemas/ProductInteraction", - "dynamicPage.opened": "#/components/schemas/DynamicPageOpenedInteraction", - "dynamicPage.closed": "#/components/schemas/DynamicPageClosedInteraction", - "dynamicProductPage.opened": "#/components/schemas/DynamicProductPageOpenedInteraction", - "page.viewed": "#/components/schemas/PageViewedInteraction", - "guide.hovered": "#/components/schemas/GuideHoveredInteraction", - "broadcastMode.toggled": "#/components/schemas/ToggleBroadcastModeInteraction", - "viewMode.changed": "#/components/schemas/ViewModeChangedInteraction", - "screenSharing.toggled": "#/components/schemas/ScreenSharingToggledInteraction" - } + "apiAlias": "pwa_page_result" } }, - "BaseInteraction": { + "ProductPayload": { "type": "object", + "required": [ + "productId" + ], "properties": { - "triggeredAt": { + "productId": { "type": "string", - "description": "The time when the interaction was triggered", - "default": "now" - }, - "lifeTimeInSeconds": { - "type": "integer", - "description": "The time in seconds how long the interaction should be stored in the database", - "default": -1 + "pattern": "^[0-9a-f]{32}$", + "description": "the id from the product which is used in the interaction" } } }, - "EmptyInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" - }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" - }, - "payload": { - "type": "object", - "additionalProperties": false, - "minProperties": 0, - "maxProperties": 0 - } - } - } - ] - }, - "ProductInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" - }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" - }, - "payload": { - "$ref": "#/components/schemas/ProductPayload" - } - } - } - ] - }, - "DynamicPageOpenedInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" - }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" - }, - "payload": { - "$ref": "#/components/schemas/DynamicPageOpenedPayload" - } - } - } - ] - }, - "DynamicProductPageOpenedInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" - }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" - }, - "payload": { - "$ref": "#/components/schemas/DynamicProductPageOpenedPayload" - } - } - } - ] - }, - "DynamicPageClosedInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" - }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" - }, - "payload": { - "$ref": "#/components/schemas/DynamicPageClosedPayload" - } - } - } - ] - }, - "PageViewedInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" + "DiscountLineItemPayload": { + "type": "object", + "properties": { + "discountType": { + "type": "string", + "enum": [ + "percentage", + "absolute" + ] }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" - }, - "payload": { - "$ref": "#/components/schemas/PageViewedPayload" - } - } + "discountValue": { + "type": "number", + "format": "float", + "maximum": 0 + }, + "discountPrice": { + "type": "number", + "format": "float", + "maximum": 0 } - ] + } }, - "GuideHoveredInteraction": { + "PresentationCmsPage": { "allOf": [ { - "$ref": "#/components/schemas/BaseInteraction" + "$ref": "#/components/schemas/DsrPresentationCmsPage" }, { "type": "object", - "required": [ - "name", - "payload" - ], "properties": { - "name": { - "type": "string" - }, - "payload": { - "$ref": "#/components/schemas/GuideHoveredPayload" + "pickedProductIds": { + "anyOf": [ + { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Product id" + } + }, + { + "type": "null" + } + ], + "description": "The product id is assigned to presentation if it's product listing or instant listing" } } } ] }, - "ToggleBroadcastModeInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" + "ProductPageResult": { + "type": "object", + "properties": { + "cmsPage": { + "$ref": "#/components/schemas/CmsPage" }, - { - "type": "object", - "required": [ - "name", - "payload" - ], - "properties": { - "name": { - "type": "string" + "product": { + "$ref": "#/components/schemas/Product" + }, + "configurator": { + "oneOf": [ + { + "$ref": "#/components/schemas/PropertyGroup" }, - "payload": { - "$ref": "#/components/schemas/ToggleBroadcastModePayload" + { + "type": "null" } - } + ] + }, + "apiAlias": { + "type": "string" } - ] + } }, - "ViewModeChangedInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" - }, - { + "AttendeeRespondInvitationResponse": { + "type": "object", + "properties": { + "appointment": { "type": "object", - "required": [ - "name", - "payload" - ], "properties": { - "name": { - "type": "string" + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The appointment id" }, - "payload": { - "$ref": "#/components/schemas/ViewModeChangedPayload" + "accessibleFrom": { + "type": "string", + "format": "date-time", + "description": "The time the client can access the appointment" + }, + "accessibleTo": { + "type": "string", + "format": "date-time", + "description": "The time the appointment will be closed, the client can not access" + }, + "status": { + "anyOf": [ + { + "type": "string", + "enum": [ + "started", + "ended" + ] + }, + { + "type": "null" + } + ], + "description": "The appointment status" } } - } - ] - }, - "ScreenSharingToggledInteraction": { - "allOf": [ - { - "$ref": "#/components/schemas/BaseInteraction" }, - { - "type": "object", - "required": [ - "name", - "payload" + "answer": { + "type": "string", + "enum": [ + "accepted", + "maybe", + "declined" ], - "properties": { - "name": { - "type": "string" - }, - "payload": { - "$ref": "#/components/schemas/ScreenSharingToggledPayload" - } - } + "description": "The invitation status that client responded to" } - ] + } }, - "CreateInteractionRequestBody": { - "$ref": "#/components/schemas/DynamicInteractionBody" - } - }, - "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." - } - ] - } + "DynamicPageClosedPayload": { + "type": "object", + "properties": { + "pageId": { + "oneOf": [ + { + "type": "string", + "pattern": "^[a-f0-9]{32}$" + }, + { + "type": "null" + } + ], + "pattern": "^[a-f0-9]{32}$", + "description": "The id of the page that was closed" }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "404", - "title": "Not Found", - "description": "Resource with given parameter was not found." - } - ] - } + "all": { + "type": "boolean", + "default": false, + "description": "Whether all pages were closed" } } }, - "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." - } - ] - } + "CreateAppointmentRequestBody": { + "type": "object", + "description": "Includes all data you will need to attend to a appointment.", + "required": [ + "salutationId", + "firstName", + "lastName", + "emailAddress", + "subject" + ], + "properties": { + "salutationId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The id of the salutation" + }, + "firstName": { + "type": "string", + "description": "The first name of the requester" + }, + "lastName": { + "type": "string", + "description": "The last name of the requester" + }, + "emailAddress": { + "type": "string", + "format": "email", + "description": "The email address of the requester" + }, + "companyName": { + "type": "string", + "description": "The company name of the requester" + }, + "phoneNumber": { + "type": "string", + "description": "The phone number of the requester" + }, + "subject": { + "type": "string", + "description": "The subject of the appointment" }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "403", - "title": "Forbidden", - "description": "This operation is restricted to logged in users." - } - ] - } + "message": { + "type": "string", + "description": "The message of the appointment" } + }, + "example": { + "id": "2d2c358f1ca04098aacf12873c2eed94", + "appointmentId": "3b3c358f1ca04098aacf12873c2eed94", + "salutationId": "5m6c358f1ca04098aacf12873c2eed94", + "firstName": "John", + "lastName": "Doe", + "emailAddress": "john@example.com", + "companyName": "Example Inc.", + "phoneNumber": "+1234567890", + "subject": "Appointment subject", + "message": "Appointment message", + "requestedById": "7b7c358f1ca04098aacf12873c2eed94" } }, - "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." - } - ] - } + "PageViewedPayload": { + "type": "object", + "required": [ + "pageId", + "sectionId", + "slideAlias" + ], + "properties": { + "pageId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "the id from the page which was viewed" }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "401", - "title": "Unauthorized", - "description": "Authorization information is missing or invalid." - } - ] - } + "sectionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "the id from the section within the page which was viewed" + }, + "slideAlias": { + "type": "number", + "description": "the alias of the slide which was viewed" + }, + "pageNumber": { + "oneOf": [ + { + "type": "integer", + "description": "the number of the page which was viewed" + }, + { + "type": "null" + } + ] } } }, - "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." - } - ] - } + "ClientPresentationStateResponse": { + "type": "object", + "properties": { + "stateForAll": { + "$ref": "#/components/schemas/StateForAll" }, - "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." - } - ] - } + "stateForClients": { + "$ref": "#/components/schemas/StateForClients" } + }, + "example": { + "stateForAll": { + "currentGuideProductId": null, + "lastActiveGuideSection": null, + "currentPageId": null, + "currentSectionId": null, + "currentSlideAlias": 0, + "currentDynamicPage": null, + "started": false, + "running": false, + "ended": false, + "startedAt": null, + "endedAt": null, + "accessibleFrom": null, + "accessibleTo": null, + "appointmentMode": "guided", + "videoAudioSettings": "both", + "videoRoomUrl": "", + "attendeeRestrictionType": "open", + "productDetailDefaultPageId": "bea211b5099241719830df8026624f7f", + "quickviewPageId": "182d3f7f988044adbba449b70c8bc472", + "productListingDefaultPageId": "33e88c7994fa4cf79a1265e5105b93b2", + "broadcastMode": false, + "extensions": [] + }, + "stateForClients": { + "videoClientToken": null, + "hoveredElementId": null, + "extensions": [] + }, + "apiAlias": "swag_digital_sales_rooms_content_presentation_state_sales_channel_get_get_client_presentation_state_struct" } }, - "204": { - "description": "No Content" + "GuideHoveredPayload": { + "type": "object", + "properties": { + "hoveredElementId": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "the id from the product which is used in the interaction" + }, + { + "type": "null" + } + ] + } + } }, - "ProductListResponse": { - "description": "Entity search result containing products", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "required": [ - "elements" - ], - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } - } - }, - "type": "object" + "PresentationStructure": { + "type": "object", + "required": [ + "cmsPageResults", + "navigation" + ], + "properties": { + "cmsPageResults": { + "type": "array", + "items": { + "type": "object", + "properties": { + "resourceType": { + "type": "string", + "description": "The type of presentation page", + "default": "frontend.presentation.page" }, - { - "$ref": "#/components/schemas/EntitySearchResult" + "resourceIdentifier": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The presentation id" + }, + "cmsPage": { + "$ref": "#/components/schemas/CmsPage" } - ] + } } - } - } - }, - "CategoryListResponse": { - "description": "Entity search result containing categories.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - } + }, + "navigation": { + "type": "array", + "items": { + "type": "object", + "required": [ + "cmsPageId", + "groupId", + "groupName", + "index", + "sectionId", + "sectionName" + ], + "properties": { + "index": { + "type": "integer", + "description": "The slide position" + }, + "sectionId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The section id" + }, + "sectionName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" } - } + ], + "description": "The section name" }, - { - "$ref": "#/components/schemas/EntitySearchResult" + "groupId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The presentation CMS page id" + }, + "groupName": { + "type": "string", + "description": "The slide name" + }, + "cmsPageId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "The CMS page id" + }, + "isInstantListing": { + "type": "boolean", + "description": "If the slide is an instant listing" + }, + "pickedProductsCount": { + "type": "integer", + "description": "The number of picked products of the instant listing" + }, + "notes": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CmsSlot" + }, + "default": [] } - ] + } } } - } - }, - "OpenApi3": { - "description": "Returns information about the store API.", - "content": { - "application/json": { - "schema": { - "properties": { - "openapi": { - "type": "string" + }, + "example": { + "cmsPageResults": [ + { + "resourceType": "frontend.presentation.page", + "resourceIdentifier": "45a2b8ad0bb544e48f61eab564a2171c", + "cmsPage": { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "name": "Default Digital Sales Rooms product listing page", + "customFields": [] }, - "info": { - "type": "object", - "properties": { - "title": { - "type": "string" - }, - "summary": { - "type": "string" - }, - "description": { - "type": "string" - }, - "termsOfService": { - "type": "string", - "format": "uri" + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": "2023-08-10T04:30:28.668+00:00", + "name": "Default Digital Sales Rooms product listing page", + "type": "presentation_product_list", + "entity": null, + "sections": [ + { + "extensions": { + "translations": [] }, - "contact": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": "2023-08-10T04:30:28.668+00:00", + "type": "default", + "blocks": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": "2023-08-10T04:30:28.667+00:00", + "type": "product-listing", + "slots": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "config": { + "filters": { + "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", + "source": "static" + }, + "boxLayout": { + "value": "standard", + "source": "static" + }, + "showSorting": { + "value": true, + "source": "static" + }, + "defaultSorting": { + "value": "", + "source": "static" + }, + "useCustomSorting": { + "value": false, + "source": "static" + }, + "availableSortings": { + "value": [], + "source": "static" + }, + "propertyWhitelist": { + "value": [], + "source": "static" + } + }, + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "product-listing", + "slot": "content", + "block": null, + "blockId": "96ea8b9676a5461c9149d205d792ecf2", + "config": { + "filters": { + "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", + "source": "static" + }, + "boxLayout": { + "value": "standard", + "source": "static" + }, + "showSorting": { + "value": true, + "source": "static" + }, + "defaultSorting": { + "value": "", + "source": "static" + }, + "useCustomSorting": { + "value": false, + "source": "static" + }, + "availableSortings": { + "value": [], + "source": "static" + }, + "propertyWhitelist": { + "value": [], + "source": "static" + } + }, + "fieldConfig": null, + "translations": null, + "data": null, + "locked": false, + "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "customFields": null, + "apiAlias": "cms_slot" + } + ], + "sectionId": "2229e1f1208a4b8086baf7aec84f5e2c", + "position": 1, + "name": null, + "sectionPosition": "main", + "marginTop": "20px", + "marginBottom": "20px", + "marginLeft": "20px", + "marginRight": "20px", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": { + "mobile": true, + "tablet": true, + "desktop": true }, - "email": { - "type": "string", - "format": "email" - } + "customFields": null, + "apiAlias": "cms_block" } + ], + "pageId": "33e88c7994fa4cf79a1265e5105b93b2", + "page": null, + "position": 0, + "sizingMode": "boxed", + "mobileBehavior": "wrap", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": { + "mobile": true, + "tablet": true, + "desktop": true + }, + "customFields": null, + "apiAlias": "cms_section" + } + ], + "translations": null, + "cssClass": null, + "config": null, + "previewMediaId": null, + "previewMedia": null, + "landingPages": null, + "id": "33e88c7994fa4cf79a1265e5105b93b2", + "customFields": null, + "apiAlias": "cms_page" + }, + "apiAlias": "pwa_page_result" + }, + { + "resourceType": "frontend.presentation.page", + "resourceIdentifier": "45a2b8ad0bb544e48f61eab564a2171c", + "cmsPage": { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "name": "Default Digital Sales Rooms product detail page", + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "name": "Default Digital Sales Rooms product detail page", + "type": "presentation_product_detail", + "entity": null, + "sections": [ + { + "extensions": { + "translations": [] }, - "license": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "identifier": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - } + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "default", + "blocks": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "product-heading", + "slots": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "config": [], + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "like", + "slot": "right", + "block": null, + "blockId": "c0d3daba2e244122947438c28f776d41", + "config": [], + "fieldConfig": null, + "translations": null, + "data": null, + "locked": false, + "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "customFields": null, + "apiAlias": "cms_slot" + }, + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "config": { + "content": { + "value": "product.name", + "source": "mapped" + }, + "verticalAlign": { + "value": null, + "source": "static" + } + }, + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "product-name", + "slot": "left", + "block": null, + "blockId": "c0d3daba2e244122947438c28f776d41", + "config": { + "content": { + "value": "product.name", + "source": "mapped" + }, + "verticalAlign": { + "value": null, + "source": "static" + } + }, + "fieldConfig": null, + "translations": null, + "data": null, + "locked": false, + "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "customFields": null, + "apiAlias": "cms_slot" + } + ], + "sectionId": "f4aaa27972314e3c9b7f3bb35c7f8a10", + "position": 0, + "name": null, + "sectionPosition": "main", + "marginTop": "0", + "marginBottom": "20px", + "marginLeft": "0", + "marginRight": "0", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_block" + }, + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "image-gallery-big", + "slots": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "config": { + "zoom": { + "value": true, + "source": "static" + }, + "minHeight": { + "value": "430px", + "source": "static" + }, + "fullScreen": { + "value": true, + "source": "static" + }, + "displayMode": { + "value": "contain", + "source": "static" + }, + "sliderItems": { + "value": "product.media", + "source": "mapped" + }, + "bigImageMode": { + "value": true, + "source": "static" + }, + "verticalAlign": { + "value": null, + "source": "static" + }, + "navigationDots": { + "value": "inside", + "source": "static" + }, + "galleryPosition": { + "value": "left", + "source": "static" + }, + "navigationArrows": { + "value": "inside", + "source": "static" + } + }, + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "image-gallery", + "slot": "imageGallery", + "block": null, + "blockId": "47cc4a3919794162982ea83f64a836fe", + "config": { + "zoom": { + "value": true, + "source": "static" + }, + "minHeight": { + "value": "430px", + "source": "static" + }, + "fullScreen": { + "value": true, + "source": "static" + }, + "displayMode": { + "value": "contain", + "source": "static" + }, + "sliderItems": { + "value": "product.media", + "source": "mapped" + }, + "bigImageMode": { + "value": true, + "source": "static" + }, + "verticalAlign": { + "value": null, + "source": "static" + }, + "navigationDots": { + "value": "inside", + "source": "static" + }, + "galleryPosition": { + "value": "left", + "source": "static" + }, + "navigationArrows": { + "value": "inside", + "source": "static" + } + }, + "fieldConfig": null, + "translations": null, + "data": null, + "locked": false, + "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "customFields": null, + "apiAlias": "cms_slot" + } + ], + "sectionId": "f4aaa27972314e3c9b7f3bb35c7f8a10", + "position": 1, + "name": null, + "sectionPosition": "main", + "marginTop": "20px", + "marginBottom": "20px", + "marginLeft": "20px", + "marginRight": "20px", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_block" + }, + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "text-two-column", + "slots": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "config": { + "product": { + "value": null, + "source": "static" + }, + "alignment": { + "value": null, + "source": "static" + } + }, + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "buy-box", + "slot": "right", + "block": null, + "blockId": "095cd9a4eb49493aa95ea1e7a84a9503", + "config": { + "product": { + "value": null, + "source": "static" + }, + "alignment": { + "value": null, + "source": "static" + } + }, + "fieldConfig": null, + "translations": null, + "data": null, + "locked": false, + "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "customFields": null, + "apiAlias": "cms_slot" + }, + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "config": { + "product": { + "value": null, + "source": "static" + }, + "alignment": { + "value": null, + "source": "static" + } + }, + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "product-description-reviews", + "slot": "left", + "block": null, + "blockId": "095cd9a4eb49493aa95ea1e7a84a9503", + "config": { + "product": { + "value": null, + "source": "static" + }, + "alignment": { + "value": null, + "source": "static" + } + }, + "fieldConfig": null, + "translations": null, + "data": null, + "locked": false, + "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "customFields": null, + "apiAlias": "cms_slot" + } + ], + "sectionId": "f4aaa27972314e3c9b7f3bb35c7f8a10", + "position": 2, + "name": null, + "sectionPosition": "main", + "marginTop": "20px", + "marginBottom": "20px", + "marginLeft": "20px", + "marginRight": "20px", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_block" }, - "required": [ - "name" - ] - }, - "version": { - "type": "string" - } - }, - "required": [ - "title", - "version" - ] - }, - "jsonSchemaDialect": { - "type": "string" - }, - "webhooks": { - "type": "object" - }, - "servers": { - "type": "array", - "items": { - "type": "object", - "properties": { - "url": { - "type": "string" + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "cross-selling", + "slots": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "config": { + "product": { + "value": null, + "source": "static" + }, + "boxLayout": { + "value": "standard", + "source": "static" + }, + "elMinWidth": { + "value": "300px", + "source": "static" + }, + "displayMode": { + "value": "standard", + "source": "static" + } + }, + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "cross-selling", + "slot": "content", + "block": null, + "blockId": "2d69edd4faab493baa056c81ea8d131f", + "config": { + "product": { + "value": null, + "source": "static" + }, + "boxLayout": { + "value": "standard", + "source": "static" + }, + "elMinWidth": { + "value": "300px", + "source": "static" + }, + "displayMode": { + "value": "standard", + "source": "static" + } + }, + "fieldConfig": null, + "translations": null, + "data": null, + "locked": false, + "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "customFields": null, + "apiAlias": "cms_slot" + } + ], + "sectionId": "f4aaa27972314e3c9b7f3bb35c7f8a10", + "position": 3, + "name": null, + "sectionPosition": "main", + "marginTop": "0", + "marginBottom": "0", + "marginLeft": "0", + "marginRight": "0", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_block" } - }, - "required": [ - "url" - ] - } - }, - "components": { - "type": "object", - "properties": { - "schemas": { - "type": "object" - }, - "responses": { - "type": "object" - }, - "parameters": { - "type": "object" - }, - "examples": { - "type": "object" - }, - "requestBodies": { - "type": "object" - }, - "headers": { - "type": "object" - }, - "securitySchemes": { - "type": "object" - }, - "links": { - "type": "object" - }, - "callbacks": { - "type": "object" - }, - "pathItems": { - "type": "object" - } - } - }, - "security": { - "type": "array", - "items": { - "type": "object" + ], + "pageId": "bea211b5099241719830df8026624f7f", + "page": null, + "position": 0, + "sizingMode": "boxed", + "mobileBehavior": "wrap", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_section" } + ], + "translations": null, + "cssClass": null, + "config": null, + "previewMediaId": null, + "previewMedia": null, + "landingPages": null, + "id": "bea211b5099241719830df8026624f7f", + "customFields": null, + "apiAlias": "cms_page" + }, + "apiAlias": "pwa_page_result" + }, + { + "resourceType": "frontend.presentation.page", + "resourceIdentifier": "45a2b8ad0bb544e48f61eab564a2171c", + "cmsPage": { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "name": "Ended presentation page", + "customFields": [] }, - "paths": { - "type": "object" - }, - "tags": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "name": "Ended presentation page", + "type": "presentation_product_list", + "entity": null, + "sections": [ + { + "extensions": { + "translations": [] + }, + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "default", + "blocks": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "text-hero", + "slots": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "config": { + "content": { + "value": "Thank you for your attention!
Below you can find all products wich were presented to you.
", + "source": "static" + }, + "verticalAlign": { + "value": null, + "source": "static" + } + }, + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "text", + "slot": "content", + "block": null, + "blockId": "c49b01e9c6624973b9cdd1992d3c009a", + "config": { + "content": { + "value": "Thank you for your attention!
Below you can find all products wich were presented to you.
", + "source": "static" + }, + "verticalAlign": { + "value": null, + "source": "static" + } + }, + "fieldConfig": null, + "translations": null, + "data": null, + "locked": false, + "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "customFields": null, + "apiAlias": "cms_slot" + } + ], + "sectionId": "0a5e89814463470684a734b975add4ed", + "position": 0, + "name": null, + "sectionPosition": "main", + "marginTop": "20px", + "marginBottom": "20px", + "marginLeft": "20px", + "marginRight": "20px", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_block" }, - "description": { - "type": "string" + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": [], + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "product-listing", + "slots": [ + { + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "config": { + "filters": { + "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", + "source": "static" + }, + "boxLayout": { + "value": "standard", + "source": "static" + }, + "showSorting": { + "value": true, + "source": "static" + }, + "defaultSorting": { + "value": "", + "source": "static" + }, + "useCustomSorting": { + "value": false, + "source": "static" + }, + "availableSortings": { + "value": [], + "source": "static" + }, + "propertyWhitelist": { + "value": [], + "source": "static" + } + }, + "customFields": [] + }, + "createdAt": "2023-08-03T17:24:09.000+00:00", + "updatedAt": null, + "type": "product-listing", + "slot": "content", + "block": null, + "blockId": "0a13f5daa9be4e7b8ed5e3ecaba79fe6", + "config": { + "filters": { + "value": "manufacturer-filter,rating-filter,price-filter,shipping-free-filter,property-filter", + "source": "static" + }, + "boxLayout": { + "value": "standard", + "source": "static" + }, + "showSorting": { + "value": true, + "source": "static" + }, + "defaultSorting": { + "value": "", + "source": "static" + }, + "useCustomSorting": { + "value": false, + "source": "static" + }, + "availableSortings": { + "value": [], + "source": "static" + }, + "propertyWhitelist": { + "value": [], + "source": "static" + } + }, + "fieldConfig": null, + "translations": null, + "data": null, + "locked": false, + "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "customFields": null, + "apiAlias": "cms_slot" + } + ], + "sectionId": "0a5e89814463470684a734b975add4ed", + "position": 1, + "name": null, + "sectionPosition": "main", + "marginTop": "20px", + "marginBottom": "20px", + "marginLeft": "20px", + "marginRight": "20px", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsSectionVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_block" + } + ], + "pageId": "8ea80092faa744559409f3e9f7adcc6b", + "page": null, + "position": 0, + "sizingMode": "boxed", + "mobileBehavior": "wrap", + "backgroundColor": null, + "backgroundMediaId": null, + "backgroundMedia": null, + "backgroundMediaMode": "cover", + "cssClass": null, + "cmsPageVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "visibility": null, + "customFields": null, + "apiAlias": "cms_section" + } + ], + "translations": null, + "cssClass": null, + "config": null, + "previewMediaId": null, + "previewMedia": null, + "landingPages": null, + "id": "8ea80092faa744559409f3e9f7adcc6b", + "customFields": null, + "apiAlias": "cms_page" + }, + "apiAlias": "pwa_page_result" + } + ], + "navigation": [ + { + "groupName": "Default Digital Sales Rooms product listing page", + "groupId": "468b0e34237a44ad8f8a8d5e0b72b78f", + "cmsPageId": "33e88c7994fa4cf79a1265e5105b93b2", + "name": null, + "id": "2229e1f1208a4b8086baf7aec84f5e2c", + "index": 1, + "notes": [ + { + "extensions": { + "foreignKeys": { + "extensions": [], + "apiAlias": "cms_slot_foreign_keys_extension" + } + }, + "_uniqueIdentifier": "de28c711c20b4ad0a54871d5a23109fc", + "versionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "translated": { + "config": { + "content": { + "value": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, \n sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \n sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. \n Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. \n Lorem ipsum dolor sit amet, consetetur sadipscing elitr, \n sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. \n At vero eos et accusam et justo duo dolores et ea rebum. \n Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
", + "source": "static" }, - "externalDocs": { - "type": "object", - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - } - }, - "required": [ - "url" - ] + "verticalAlign": { + "value": null, + "source": "static" } }, - "required": [ - "name" - ] - } - }, - "externalDocs": { - "type": "object", - "properties": { - "description": { - "type": "string" + "customFields": [] + }, + "createdAt": "2023-08-10T04:30:28.649+00:00", + "updatedAt": null, + "type": "notes", + "slot": "content", + "block": null, + "blockId": "978ca9beff6e4edca6d5263fac254e13", + "config": { + "content": { + "value": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, \n sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, \n sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. \n Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. \n Lorem ipsum dolor sit amet, consetetur sadipscing elitr, \n sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. \n At vero eos et accusam et justo duo dolores et ea rebum. \n Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
", + "source": "static" }, - "url": { - "type": "string", - "format": "uri" + "verticalAlign": { + "value": null, + "source": "static" } }, - "required": [ - "url" - ] + "fieldConfig": null, + "translations": null, + "data": null, + "locked": false, + "cmsBlockVersionId": "0fa91ce3e96a4bc2be4bd9ce752c3425", + "id": "de28c711c20b4ad0a54871d5a23109fc", + "customFields": null } - }, - "type": "object", - "required": [ - "openapi", - "info" ] + }, + { + "groupName": "Default Digital Sales Rooms product detail page", + "groupId": "52f1e61cd45945a0b72bd613d1268d65", + "cmsPageId": "bea211b5099241719830df8026624f7f", + "name": null, + "id": "f4aaa27972314e3c9b7f3bb35c7f8a10", + "index": 2, + "notes": [] + }, + { + "groupName": "Ended presentation page", + "groupId": "b073190abe03407993f41b8d5bc8ba57", + "cmsPageId": "8ea80092faa744559409f3e9f7adcc6b", + "name": null, + "id": "0a5e89814463470684a734b975add4ed", + "index": 3, + "notes": [] } + ], + "apiAlias": "pwa_page_result" + } + }, + "EmptyPayload": { + "type": "object", + "properties": [] + }, + "ViewModeChangedPayload": { + "type": "object", + "properties": { + "mode": { + "type": "string", + "description": "The view mode of presentation", + "enum": [ + "onlyYou", + "presentation", + "videoGrid" + ], + "default": "presentation" } } }, - "CountryStateListResponse": { - "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" - } - ] - } + "StateForClients": { + "type": "object", + "properties": { + "videoClientToken": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "hoveredElementId": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + }, + "extensions": { + "type": "array", + "default": [] + } + } + }, + "DynamicProductPageOpenedPayload": { + "allOf": [ + { + "$ref": "#/components/schemas/AbstractDynamicPageOpenedPayload" + } + ], + "required": [ + "productId" + ], + "properties": { + "productId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "the id from the product which is shown on the dynamic page" + } + } + }, + "DynamicPageOpenedPayload": { + "allOf": [ + { + "$ref": "#/components/schemas/AbstractDynamicPageOpenedPayload" + } + ] + }, + "DynamicInteractionBody": { + "oneOf": [ + { + "$ref": "#/components/schemas/EmptyInteraction" + }, + { + "$ref": "#/components/schemas/ProductInteraction" + }, + { + "$ref": "#/components/schemas/DynamicPageOpenedInteraction" + }, + { + "$ref": "#/components/schemas/DynamicPageClosedInteraction" + }, + { + "$ref": "#/components/schemas/DynamicProductPageOpenedInteraction" + }, + { + "$ref": "#/components/schemas/PageViewedInteraction" + }, + { + "$ref": "#/components/schemas/GuideHoveredInteraction" + }, + { + "$ref": "#/components/schemas/ToggleBroadcastModeInteraction" + }, + { + "$ref": "#/components/schemas/ViewModeChangedInteraction" + }, + { + "$ref": "#/components/schemas/ScreenSharingToggledInteraction" + } + ], + "discriminator": { + "propertyName": "name", + "mapping": { + "keep.alive": "#/components/schemas/EmptyInteraction", + "quickview.opened": "#/components/schemas/EmptyInteraction", + "quickview.closed": "#/components/schemas/EmptyInteraction", + "attendee.leave": "#/components/schemas/EmptyInteraction", + "remote.checkout.accepted": "#/components/schemas/EmptyInteraction", + "remote.checkout.denied": "#/components/schemas/EmptyInteraction", + "product.viewed": "#/components/schemas/ProductInteraction", + "attendee.product.collection.liked": "#/components/schemas/ProductInteraction", + "attendee.product.collection.disliked": "#/components/schemas/ProductInteraction", + "attendee.product.collection.removed": "#/components/schemas/ProductInteraction", + "dynamicPage.opened": "#/components/schemas/DynamicPageOpenedInteraction", + "dynamicPage.closed": "#/components/schemas/DynamicPageClosedInteraction", + "dynamicProductPage.opened": "#/components/schemas/DynamicProductPageOpenedInteraction", + "page.viewed": "#/components/schemas/PageViewedInteraction", + "guide.hovered": "#/components/schemas/GuideHoveredInteraction", + "broadcastMode.toggled": "#/components/schemas/ToggleBroadcastModeInteraction", + "viewMode.changed": "#/components/schemas/ViewModeChangedInteraction", + "screenSharing.toggled": "#/components/schemas/ScreenSharingToggledInteraction" + } + } + }, + "BaseInteraction": { + "type": "object", + "properties": { + "triggeredAt": { + "type": "string", + "description": "The time when the interaction was triggered", + "default": "now" + }, + "lifeTimeInSeconds": { + "type": "integer", + "description": "The time in seconds how long the interaction should be stored in the database", + "default": -1 } } }, - "CurrencyListResponse": { - "description": "Entity search result containing currencies.", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Currency" + "EmptyInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "type": "object", + "additionalProperties": false, + "minProperties": 0, + "maxProperties": 0 } } } - } + ] }, - "SeoUrlListResponse": { - "description": "Entity search result containing seo urls.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeoUrl" - } - } - }, - "type": "object", - "required": [ - "elements" - ] - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "ProductInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/ProductPayload" + } } } - } + ] }, - "PaymentMethodListResponse": { - "description": "", - "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" - } - } + "DynamicPageOpenedInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" }, - "type": "object" + "payload": { + "$ref": "#/components/schemas/DynamicPageOpenedPayload" + } } } - } + ] }, - "ShippingMethodListResponse": { - "description": "Entity search result containing shipping methods.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "required": [ - "elements" - ], - "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/EntitySearchResult" - } - ] + "DynamicProductPageOpenedInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/DynamicProductPageOpenedPayload" + } } } - } + ] }, - "SalutationListResponse": { - "description": "Entity search result containing salutations.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Salutation" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "DynamicPageClosedInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/DynamicPageClosedPayload" + } } } - } + ] }, - "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" + "PageViewedInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/PageViewedPayload" + } } } - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redirectUrl": { - "description": "Define the URL which browser will be redirected to", - "type": "string" - } + ] + }, + "GuideHoveredInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/GuideHoveredPayload" } } } - } + ] }, - "CountryListResponse": { - "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" - } - ] + "ToggleBroadcastModeInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/ToggleBroadcastModePayload" + } } } - } + ] }, - "LanguageListResponse": { - "description": "Entity search result containing languages.", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Language" - } - } - }, - "required": [ - "elements" - ], - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "ViewModeChangedInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/ViewModeChangedPayload" + } } } - } - } - }, - "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" - } - }, - "noAggregations": { - "name": "no-aggregations", - "in": "query", - "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", - "required": false, - "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } + ] }, - "onlyAggregations": { - "name": "only-aggregations", - "in": "query", - "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.", - "required": false, - "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" + "ScreenSharingToggledInteraction": { + "allOf": [ + { + "$ref": "#/components/schemas/BaseInteraction" + }, + { + "type": "object", + "required": [ + "name", + "payload" + ], + "properties": { + "name": { + "type": "string" + }, + "payload": { + "$ref": "#/components/schemas/ScreenSharingToggledPayload" + } } - ] - } + } + ] }, - "criteriaPage": { - "name": "page", - "in": "query", - "description": "Search result page", - "schema": { - "type": "integer" - } + "CreateInteractionRequestBody": { + "$ref": "#/components/schemas/DynamicInteractionBody" }, - "criteriaLimit": { - "name": "limit", - "in": "query", - "description": "Number of items per result page", - "schema": { - "type": "integer" + "ScreenSharingToggledPayload": { + "type": "object", + "required": [ + "active" + ], + "properties": { + "active": { + "type": "boolean", + "description": "Whether the screen sharing is active or not" + } } }, - "criteriaTerm": { - "name": "term", - "in": "query", - "description": "Search term", - "schema": { - "type": "string" + "DynamicProductListingPageOpenedPayload": { + "required": [ + "page" + ], + "properties": { + "page": { + "type": "integer", + "description": "Current page position in the pagination" + } } }, - "criteriaFilter": { - "name": "filter[]", - "in": "query", - "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)", - "schema": { - "type": "array", - "items": { + "StateForAll": { + "type": "object", + "properties": { + "currentGuideProductId": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + }, + "lastActiveGuideSection": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + }, + "currentPageId": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + }, + "currentSectionId": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + }, + "currentSlideAlias": { + "type": "integer", + "default": 0 + }, + "currentSlideData": { "anyOf": [ { - "$ref": "#/components/schemas/SimpleFilter" + "$ref": "#/components/schemas/DynamicProductListingPageOpenedPayload" }, { - "$ref": "#/components/schemas/EqualsFilter" + "type": "null" + } + ] + }, + "currentDynamicPage": { + "$ref": "#/components/schemas/DynamicPageOpenedPayload" + }, + "started": { + "type": "boolean", + "default": false + }, + "running": { + "type": "boolean", + "default": false + }, + "ended": { + "type": "boolean", + "default": false + }, + "startedAt": { + "anyOf": [ + { + "type": "string", + "format": "date-time" }, { - "$ref": "#/components/schemas/MultiNotFilter" + "type": "null" + } + ] + }, + "endedAt": { + "anyOf": [ + { + "type": "string", + "format": "date-time" }, { - "$ref": "#/components/schemas/RangeFilter" + "type": "null" } ] + }, + "accessibleFrom": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ] + }, + "accessibleTo": { + "anyOf": [ + { + "type": "string", + "format": "date-time" + }, + { + "type": "null" + } + ] + }, + "appointmentMode": { + "type": "string", + "enum": [ + "guided", + "self" + ] + }, + "videoAudioSettings": { + "type": "string", + "enum": [ + "both", + "none", + "audio-only" + ], + "default": "none" + }, + "videoRoomUrl": { + "type": "string", + "default": "" + }, + "attendeeRestrictionType": { + "anyOf": [ + { + "type": "string", + "enum": [ + "open", + "customer", + "rules" + ] + }, + { + "type": "null" + } + ] + }, + "productDetailDefaultPageId": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + }, + "quickviewPageId": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + }, + "productListingDefaultPageId": { + "anyOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + }, + "broadcastMode": { + "type": "boolean", + "default": false + }, + "viewMode": { + "type": "string", + "enum": [ + "onlyYou", + "presentation", + "videoGrid" + ], + "default": "presentation" + }, + "allowScreenSharing": { + "type": "boolean", + "default": false + }, + "extensions": { + "type": "array", + "default": [] } } }, - "criteriaIds": { - "name": "ids[]", - "in": "query", - "description": "List of ids to search for", - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "criteriaQuery": { - "name": "query", - "in": "query", - "description": "The query string to search for", - "schema": { - "type": "string" - } - }, - "criteriaAssociations": { - "name": "associations", - "in": "query", - "description": "", - "schema": { - "$ref": "#/components/schemas/Associations" - }, - "style": "deepObject", - "explode": true - }, - "criteriaPostFilter": { - "name": "post-filter[]", - "in": "query", - "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)", - "schema": { - "type": "array", - "items": { + "AttendeeProductCollectionResponse": { + "type": "object", + "properties": { + "collection": { + "type": "object", "anyOf": [ { - "$ref": "#/components/schemas/SimpleFilter" + "type": "object", + "properties": { + "liked": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Product ids from the collection" + } + } + } }, { - "$ref": "#/components/schemas/EqualsFilter" - }, + "type": "object", + "properties": { + "disliked": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "description": "Product ids from the collection" + } + } + } + } + ] + } + }, + "example": { + "collection": { + "liked": [ + "0015b3d83df441e490da7f6880a9c2da", + "60793d25cbab473f92c405ce0525f3ec" + ] + } + } + }, + "AppointmentBasicSettingResponse": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "description": "The API alias of the appointment basic setting" + }, + "mode": { + "type": "string", + "description": "The mode of the interaction", + "enum": [ + "guided", + "self" + ] + }, + "attendeeRestrictionType": { + "type": "string", + "description": "The type of attendee restriction", + "enum": [ + "open", + "customer", + "rules" + ] + }, + "videoAudioSettings": { + "type": "string", + "description": "The video and audio settings", + "enum": [ + "none", + "both", + "audio-only" + ] + }, + "canSendRequestEmail": { + "type": "boolean", + "description": "Indicates if request emails can be sent", + "default": false + }, + "canBookAppointment": { + "type": "boolean", + "description": "Indicates if appointments can be booked", + "default": false + }, + "enableWishlist": { + "type": "boolean", + "description": "Indicates if the wishlist is enabled", + "default": false + }, + "bookingLink": { + "description": "The booking link", + "oneOf": [ { - "$ref": "#/components/schemas/MultiNotFilter" + "type": "string" }, { - "$ref": "#/components/schemas/RangeFilter" + "type": "null" } ] + }, + "appointmentName": { + "type": "string", + "description": "The name of the appointment" + }, + "salesChannelName": { + "type": "string", + "description": "The name of the sales channel" } + }, + "example": { + "apiAlias": "appointment_basic_setting", + "mode": "self", + "attendeeRestrictionType": "open", + "videoAudioSettings": "none", + "canSendRequestEmail": false, + "canBookAppointment": false, + "enableWishlist": false, + "bookingLink": null, + "appointmentName": "dsr11", + "salesChannelName": "Storefront" } - }, - "criteriaSort": { - "name": "sort[]", - "in": "query", - "description": "Sorting in the search result.", - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Sort" + } + }, + "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." + } + ] + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "404", + "title": "Not Found", + "description": "Resource with given parameter was not found." + } + ] + } } } }, - "criteriaAggregations": { - "name": "aggregations[]", - "in": "query", - "description": "", - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Aggregation" + "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." + } + ] + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "403", + "title": "Forbidden", + "description": "This operation is restricted to logged in users." + } + ] + } } } }, - "criteriaFields": { - "name": "fields[]", - "in": "query", - "description": "Fields which should be returned in the search result.", - "schema": { - "type": "array", - "items": { - "type": "string", - "description": "Name of a field" + "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." + } + ] + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "401", + "title": "Unauthorized", + "description": "Authorization information is missing or invalid." + } + ] + } } } }, - "criteriaGrouping": { - "name": "grouping[]", - "in": "query", - "description": "Perform groupings over certain fields", - "schema": { - "type": "array", - "items": { - "type": "string", - "description": "Name of a 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." + } + ] + } + }, + "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." + } + ] + } } } }, - "criteriaTotalCountMode": { - "name": "total-count-mode", - "in": "query", - "description": "", - "schema": { - "$ref": "#/components/schemas/TotalCountMode" - } - }, - "criteriaIncludes": { - "name": "includes", - "in": "query", - "description": "Specify the fields that should be returned for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Fields will not be included, if they are also specified in the excludes. Note that the include fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons.", - "schema": { - "$ref": "#/components/schemas/Includes" - }, - "style": "deepObject", - "explode": true - }, - "criteriaExcludes": { - "name": "excludes", - "in": "query", - "description": "Specify the fields that should be excluded from the response for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Note that the exclude fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons.", - "schema": { - "$ref": "#/components/schemas/Excludes" - }, - "style": "deepObject", - "explode": true - }, - "CompressedCriteria": { - "name": "_criteria", - "in": "query", - "description": "Compressed and encoded criteria object. Format: base64url(gzip(json_encode(criteria))). This parameter allows passing complex criteria as a single encoded string instead of multiple query parameters. The criteria object should be JSON-encoded, then gzipped, and finally base64url-encoded. The criteria object structure is defined in the Criteria schema (see #/components/schemas/Criteria).", - "required": false, - "schema": { - "type": "string", - "format": "base64url", - "example": "H4sIAAAAAAAAA6tWykpNzFGyqlbKz8lPTSxRslJKSi0pzSsFAGcQr7sHAAAA" - } + "204": { + "description": "No Content" }, - "CompressedNoneFieldsCriteria": { - "name": "_criteria", - "in": "query", - "description": "Compressed and encoded criteria object. Format: base64url(gzip(json_encode(criteria))). This parameter allows passing complex criteria as a single encoded string instead of multiple query parameters. The criteria object should be JSON-encoded, then gzipped, and finally base64url-encoded. The criteria object structure is defined in the NoneFieldsCriteria schema (see #/components/schemas/NoneFieldsCriteria).", - "required": false, - "schema": { - "type": "string", - "format": "base64url", - "example": "H4sIAAAAAAAAA6tWykpNzFGyqlbKz8lPTSxRslJKSi0pzSsFAGcQr7sHAAAA" + "LanguageListResponse": { + "description": "Entity search result containing languages.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Language" + } + } + }, + "required": [ + "elements" + ], + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } } - } - }, - "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": { - "/dsr/appointment/presentation": { - "get": { - "tags": [ - "Presentation" - ], - "summary": "Fetch presentation structure and flat navigation", - "description": "Resolves the presentation structure and navigation by using the attendeeContext information. There will be NO Slot-Data inside call store-api.dsr.presentation-data for that", - "operationId": "getPresentationStructure", - "parameters": [], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PresentationStructure" + "OpenApi3": { + "description": "Returns information about the store API.", + "content": { + "application/json": { + "schema": { + "properties": { + "openapi": { + "type": "string" + }, + "info": { + "type": "object", + "properties": { + "title": { + "type": "string" + }, + "summary": { + "type": "string" + }, + "description": { + "type": "string" + }, + "termsOfService": { + "type": "string", + "format": "uri" + }, + "contact": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + }, + "email": { + "type": "string", + "format": "email" + } + } + }, + "license": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "identifier": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "name" + ] + }, + "version": { + "type": "string" + } + }, + "required": [ + "title", + "version" + ] + }, + "jsonSchemaDialect": { + "type": "string" + }, + "webhooks": { + "type": "object" + }, + "servers": { + "type": "array", + "items": { + "type": "object", + "properties": { + "url": { + "type": "string" + } + }, + "required": [ + "url" + ] + } + }, + "components": { + "type": "object", + "properties": { + "schemas": { + "type": "object" + }, + "responses": { + "type": "object" + }, + "parameters": { + "type": "object" + }, + "examples": { + "type": "object" + }, + "requestBodies": { + "type": "object" + }, + "headers": { + "type": "object" + }, + "securitySchemes": { + "type": "object" + }, + "links": { + "type": "object" + }, + "callbacks": { + "type": "object" + }, + "pathItems": { + "type": "object" + } + } + }, + "security": { + "type": "array", + "items": { + "type": "object" + } + }, + "paths": { + "type": "object" + }, + "tags": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "description": { + "type": "string" + }, + "externalDocs": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url" + ] + } + }, + "required": [ + "name" + ] + } + }, + "externalDocs": { + "type": "object", + "properties": { + "description": { + "type": "string" + }, + "url": { + "type": "string", + "format": "uri" + } + }, + "required": [ + "url" + ] } - } + }, + "type": "object", + "required": [ + "openapi", + "info" + ] } } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ] - } - }, - "/dsr/appointment/presentation/{presentationCmsPageId}/slide/{sectionId}": { - "get": { - "tags": [ - "Presentation" - ], - "summary": "Fetch resolved data for specific slide", - "description": "Gives the resolved slot-data for the given slide index (slot-config)", - "operationId": "getSlideData", - "parameters": [ - { - "name": "presentationCmsPageId", - "in": "path", - "description": "Presentation CMS page id for which the data is requested", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sectionId", - "in": "path", - "description": "CMS section id for which the data is requested", - "required": true, + } + }, + "CountryListResponse": { + "description": "Entity search result containing countries.", + "content": { + "application/json": { "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/PresentationSlideData" + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Country" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" } - } + ] } } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ] - } - }, - "/dsr/appointment/presentation/{presentationCmsPageId}/slide/{sectionId}/products": { - "post": { - "tags": [ - "Presentation" - ], - "summary": "Fetch all products for specific slide", - "description": "Fetches all products for a specific slide", - "operationId": "getSlideProducts", - "parameters": [ - { - "name": "presentationCmsPageId", - "in": "path", - "description": "Presentation CMS page id for which the data is requested", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sectionId", - "in": "path", - "description": "CMS section id for which the data is requested", - "required": true, + } + }, + "CategoryListResponse": { + "description": "Entity search result containing categories.", + "content": { + "application/json": { "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], - "requestBody": { - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - }, - { - "type": "object", - "properties": { - "interaction": { - "type": "boolean" + "allOf": [ + { + "type": "object", + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" } } } - ] - } + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProductListingResult" - } - } + } + }, + "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": [], - "ContextToken": [] - } - ] - } - }, - "/dsr/appointment/presentation/state": { - "get": { - "tags": [ - "Presentation" - ], - "summary": "Get the current presentation state", - "description": "Returns the presentation state for all and the client", - "operationId": "getClientPresentationState", - "parameters": [], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ClientPresentationStateResponse" + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redirectUrl": { + "description": "Define the URL which browser will be redirected to", + "type": "string" } } } } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] + } + }, + "ShippingMethodListResponse": { + "description": "Entity search result containing shipping methods.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "required": [ + "elements" + ], + "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/EntitySearchResult" + } + ] + } } - ] - } - }, - "/dsr/quickview/{productId}/{cmsPageLayoutId}": { - "get": { - "tags": [ - "Presentation" - ], - "summary": "Fetch a cms page for quickview with product data", - "description": "Takes a product identifier and returns the preconfigured quickview CMS layout (defined in SwagDigitalSalesRooms.config.quickviewPageId ) hydrated with the product specific data", - "operationId": "resolveQuickviewPage", - "parameters": [ - { - "name": "productId", - "in": "path", - "description": "The product id", - "required": true, + } + }, + "PaymentMethodListResponse": { + "description": "", + "content": { + "application/json": { "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", + "type": "object" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentMethod" + } + } + }, + "type": "object" } - }, - { - "name": "cmsPageLayoutId", - "in": "path", - "description": "The cms page id using as product quick view", - "required": true, + } + } + }, + "CurrencyListResponse": { + "description": "Entity search result containing currencies.", + "content": { + "application/json": { "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "array", + "items": { + "$ref": "#/components/schemas/Currency" + } } } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "object", + } + }, + "SeoUrlListResponse": { + "description": "Entity search result containing seo urls.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { "properties": { - "cmsPage": { - "$ref": "#/components/schemas/CmsPage" - }, - "product": { - "$ref": "#/components/schemas/Product" - }, - "configurator": { + "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/PropertyGroup" + "$ref": "#/components/schemas/SeoUrl" } } - } + }, + "type": "object", + "required": [ + "elements" + ] + }, + { + "$ref": "#/components/schemas/EntitySearchResult" } - } + ] } } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ] - } - }, - "/dsr/account/update-default-info": { - "post": { - "tags": [ - "Customer account" - ], - "summary": "Update customer default info", - "description": "Mark the customer who was created by admin from DSR has already updated the default info when the customer first login", - "operationId": "dsrAccountUpdateDefaultInfo", - "parameters": [], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" + } + }, + "SalutationListResponse": { + "description": "Entity search result containing salutations.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Salutation" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" } - } + ] } } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] + } + }, + "ProductListResponse": { + "description": "Entity search result containing products", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "required": [ + "elements" + ], + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } } - ] - } - }, - "/dsr/customer/wishlist-product-ids": { - "post": { - "tags": [ - "Wishlist" - ], - "summary": "Load customer wishlist product ids", - "description": "Load customer wishlist product ids", - "operationId": "dsrLoadCustomerWishlistProductIds", - "parameters": [], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "object", + } + }, + "CountryStateListResponse": { + "description": "Entity search result containing countries.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { "properties": { - "apiAlias": { - "type": "string", - "default": "array_struct" - }, - "wishlistProductIds": { + "elements": { "type": "array", "items": { - "type": "string" + "$ref": "#/components/schemas/CountryState" } } - } + }, + "type": "object" }, - "example": { - "apiAlias": "array_struct", - "wishlistProductIds": [ - "01951c1b08247366b6c29989c74b048d", - "01951c1b0ad070b689596328fa27568b", - "01951c359620703b833179608409e270", - "01951c3d327b72d59694fc992aac69a5", - "01951c3fe62a71c5a5f0523d87af0800" - ] + { + "$ref": "#/components/schemas/EntitySearchResult" } + ] + } + } + } + } + }, + "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" + } + }, + "criteriaPage": { + "name": "page", + "in": "query", + "description": "Search result page", + "schema": { + "type": "integer" + } + }, + "criteriaLimit": { + "name": "limit", + "in": "query", + "description": "Number of items per result page", + "schema": { + "type": "integer" + } + }, + "criteriaTerm": { + "name": "term", + "in": "query", + "description": "Search term", + "schema": { + "type": "string" + } + }, + "criteriaFilter": { + "name": "filter[]", + "in": "query", + "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)", + "schema": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } - } - } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] + ] } - ] - } - }, - "/dsr/customer/generate-login-token": { - "post": { - "tags": [ - "Customer account" - ], - "summary": "Generate login token that can be used to login to Storefront from DSR", - "description": "Generate login token that can be used to login to Storefront from DSR", - "operationId": "dsrGenerateLoginToken", - "body": { - "type": "object", - "properties": { - "storefrontUrl": { - "type": "string" - } + } + }, + "criteriaIds": { + "name": "ids[]", + "in": "query", + "description": "List of ids to search for", + "schema": { + "type": "array", + "items": { + "type": "string" } + } + }, + "criteriaQuery": { + "name": "query", + "in": "query", + "description": "The query string to search for", + "schema": { + "type": "string" + } + }, + "criteriaAssociations": { + "name": "associations", + "in": "query", + "description": "", + "schema": { + "$ref": "#/components/schemas/Associations" }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "default": "dsr.storefront-login.response" - }, - "token": { - "type": "string" - } - } - } + "style": "deepObject", + "explode": true + }, + "criteriaPostFilter": { + "name": "post-filter[]", + "in": "query", + "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)", + "schema": { + "type": "array", + "items": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" } - } + ] } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] + } + }, + "criteriaSort": { + "name": "sort[]", + "in": "query", + "description": "Sorting in the search result.", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Sort" } - ] - } - }, - "/dsr/customer/automatic-login": { - "post": { - "tags": [ - "Customer account" - ], - "summary": "Automatic login from DSR to Storefront", - "description": "Automatic login from DSR to Storefront", - "operationId": "dsrAutomaticLogin", - "body": { - "type": "object", - "properties": { - "token": { - "type": "string" - } + } + }, + "criteriaAggregations": { + "name": "aggregations[]", + "in": "query", + "description": "", + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ContextTokenResponse" - } - } - } + } + }, + "criteriaFields": { + "name": "fields[]", + "in": "query", + "description": "Fields which should be returned in the search result.", + "schema": { + "type": "array", + "items": { + "type": "string", + "description": "Name of a field" } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] + } + }, + "criteriaGrouping": { + "name": "grouping[]", + "in": "query", + "description": "Perform groupings over certain fields", + "schema": { + "type": "array", + "items": { + "type": "string", + "description": "Name of a field" } - ] - } - }, - "/dsr/customer/migrate-visitor-session": { - "post": { - "tags": [ - "Customer account" - ], - "summary": "Migrate visitor session from DSR to Storefront", - "description": "Migrate visitor session from DSR to Storefront", - "operationId": "dsrMigrateVisitorSession", - "body": { - "type": "object", - "properties": { - "contextToken": { + } + }, + "criteriaTotalCountMode": { + "name": "total-count-mode", + "in": "query", + "description": "", + "schema": { + "$ref": "#/components/schemas/TotalCountMode" + } + }, + "criteriaIncludes": { + "name": "includes", + "in": "query", + "description": "Specify the fields that should be returned for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Fields will not be included, if they are also specified in the excludes. Note that the include fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons.", + "schema": { + "$ref": "#/components/schemas/Includes" + }, + "style": "deepObject", + "explode": true + }, + "criteriaExcludes": { + "name": "excludes", + "in": "query", + "description": "Specify the fields that should be excluded from the response for the given entities. Object key needs to be the entity name, and the list of fields needs to be the value. Note that the exclude fields will only be stripped on the API-Level, consider using the `fields` parameter for performance reasons.", + "schema": { + "$ref": "#/components/schemas/Excludes" + }, + "style": "deepObject", + "explode": true + }, + "CompressedCriteria": { + "name": "_criteria", + "in": "query", + "description": "Compressed and encoded criteria object. Format: base64url(gzip(json_encode(criteria))). This parameter allows passing complex criteria as a single encoded string instead of multiple query parameters. The criteria object should be JSON-encoded, then gzipped, and finally base64url-encoded. The criteria object structure is defined in the Criteria schema (see #/components/schemas/Criteria).", + "required": false, + "schema": { + "type": "string", + "format": "base64url", + "example": "H4sIAAAAAAAAA6tWykpNzFGyqlbKz8lPTSxRslJKSi0pzSsFAGcQr7sHAAAA" + } + }, + "CompressedNoneFieldsCriteria": { + "name": "_criteria", + "in": "query", + "description": "Compressed and encoded criteria object. Format: base64url(gzip(json_encode(criteria))). This parameter allows passing complex criteria as a single encoded string instead of multiple query parameters. The criteria object should be JSON-encoded, then gzipped, and finally base64url-encoded. The criteria object structure is defined in the NoneFieldsCriteria schema (see #/components/schemas/NoneFieldsCriteria).", + "required": false, + "schema": { + "type": "string", + "format": "base64url", + "example": "H4sIAAAAAAAAA6tWykpNzFGyqlbKz8lPTSxRslJKSi0pzSsFAGcQr7sHAAAA" + } + }, + "noAggregations": { + "name": "no-aggregations", + "in": "query", + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "required": false, + "schema": { + "oneOf": [ + { "type": "string" + }, + { + "type": "null" } - } - }, - "responses": { - "204": [] - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ] + ] + } + }, + "onlyAggregations": { + "name": "only-aggregations", + "in": "query", + "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.", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } } }, + "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": { "/dsr/appointment/{presentationPath}/join-as-client": { "post": { "tags": [ @@ -19597,21 +19419,212 @@ ] } }, - "/dsr/shop-pages/{layoutName}": { + "/dsr/appointment/presentation": { "get": { "tags": [ - "Shop pages" + "Presentation" ], - "summary": "Get shop pages", - "description": "Get shop pages by layout name", - "operationId": "dsrReadShopPage", + "summary": "Fetch presentation structure and flat navigation", + "description": "Resolves the presentation structure and navigation by using the attendeeContext information. There will be NO Slot-Data inside call store-api.dsr.presentation-data for that", + "operationId": "getPresentationStructure", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PresentationStructure" + } + } + } + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/dsr/appointment/presentation/{presentationCmsPageId}/slide/{sectionId}": { + "get": { + "tags": [ + "Presentation" + ], + "summary": "Fetch resolved data for specific slide", + "description": "Gives the resolved slot-data for the given slide index (slot-config)", + "operationId": "getSlideData", + "parameters": [ + { + "name": "presentationCmsPageId", + "in": "path", + "description": "Presentation CMS page id for which the data is requested", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "sectionId", + "in": "path", + "description": "CMS section id for which the data is requested", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/PresentationSlideData" + } + } + } + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/dsr/appointment/presentation/{presentationCmsPageId}/slide/{sectionId}/products": { + "post": { + "tags": [ + "Presentation" + ], + "summary": "Fetch all products for specific slide", + "description": "Fetches all products for a specific slide", + "operationId": "getSlideProducts", + "parameters": [ + { + "name": "presentationCmsPageId", + "in": "path", + "description": "Presentation CMS page id for which the data is requested", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "sectionId", + "in": "path", + "description": "CMS section id for which the data is requested", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + }, + { + "type": "object", + "properties": { + "interaction": { + "type": "boolean" + } + } + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + } + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/dsr/appointment/presentation/state": { + "get": { + "tags": [ + "Presentation" + ], + "summary": "Get the current presentation state", + "description": "Returns the presentation state for all and the client", + "operationId": "getClientPresentationState", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ClientPresentationStateResponse" + } + } + } + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/dsr/quickview/{productId}/{cmsPageLayoutId}": { + "get": { + "tags": [ + "Presentation" + ], + "summary": "Fetch a cms page for quickview with product data", + "description": "Takes a product identifier and returns the preconfigured quickview CMS layout (defined in SwagDigitalSalesRooms.config.quickviewPageId ) hydrated with the product specific data", + "operationId": "resolveQuickviewPage", "parameters": [ { - "name": "layoutName", + "name": "productId", + "in": "path", + "description": "The product id", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "cmsPageLayoutId", "in": "path", + "description": "The cms page id using as product quick view", "required": true, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } } ], @@ -19621,7 +19634,21 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CmsPage" + "type": "object", + "properties": { + "cmsPage": { + "$ref": "#/components/schemas/CmsPage" + }, + "product": { + "$ref": "#/components/schemas/Product" + }, + "configurator": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PropertyGroup" + } + } + } } } } @@ -19629,7 +19656,8 @@ }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } @@ -19757,6 +19785,231 @@ } ] } + }, + "/dsr/shop-pages/{layoutName}": { + "get": { + "tags": [ + "Shop pages" + ], + "summary": "Get shop pages", + "description": "Get shop pages by layout name", + "operationId": "dsrReadShopPage", + "parameters": [ + { + "name": "layoutName", + "in": "path", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CmsPage" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/dsr/account/update-default-info": { + "post": { + "tags": [ + "Customer account" + ], + "summary": "Update customer default info", + "description": "Mark the customer who was created by admin from DSR has already updated the default info when the customer first login", + "operationId": "dsrAccountUpdateDefaultInfo", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SuccessResponse" + } + } + } + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/dsr/customer/wishlist-product-ids": { + "post": { + "tags": [ + "Wishlist" + ], + "summary": "Load customer wishlist product ids", + "description": "Load customer wishlist product ids", + "operationId": "dsrLoadCustomerWishlistProductIds", + "parameters": [], + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "default": "array_struct" + }, + "wishlistProductIds": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "example": { + "apiAlias": "array_struct", + "wishlistProductIds": [ + "01951c1b08247366b6c29989c74b048d", + "01951c1b0ad070b689596328fa27568b", + "01951c359620703b833179608409e270", + "01951c3d327b72d59694fc992aac69a5", + "01951c3fe62a71c5a5f0523d87af0800" + ] + } + } + } + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/dsr/customer/generate-login-token": { + "post": { + "tags": [ + "Customer account" + ], + "summary": "Generate login token that can be used to login to Storefront from DSR", + "description": "Generate login token that can be used to login to Storefront from DSR", + "operationId": "dsrGenerateLoginToken", + "body": { + "type": "object", + "properties": { + "storefrontUrl": { + "type": "string" + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "default": "dsr.storefront-login.response" + }, + "token": { + "type": "string" + } + } + } + } + } + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/dsr/customer/automatic-login": { + "post": { + "tags": [ + "Customer account" + ], + "summary": "Automatic login from DSR to Storefront", + "description": "Automatic login from DSR to Storefront", + "operationId": "dsrAutomaticLogin", + "body": { + "type": "object", + "properties": { + "token": { + "type": "string" + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/responses/ContextTokenResponse" + } + } + } + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/dsr/customer/migrate-visitor-session": { + "post": { + "tags": [ + "Customer account" + ], + "summary": "Migrate visitor session from DSR to Storefront", + "description": "Migrate visitor session from DSR to Storefront", + "operationId": "dsrMigrateVisitorSession", + "body": { + "type": "object", + "properties": { + "contextToken": { + "type": "string" + } + } + }, + "responses": { + "204": [] + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } } }, "tags": [ diff --git a/SwagDigitalSalesRooms-storeapi.summary.json b/SwagDigitalSalesRooms-storeapi.summary.json index 07ea55e..a9620b4 100644 --- a/SwagDigitalSalesRooms-storeapi.summary.json +++ b/SwagDigitalSalesRooms-storeapi.summary.json @@ -97,6 +97,7 @@ "Customer", "CustomerAddress", "CustomerAddressBody", + "CustomerAddressJsonApi", "CustomerAddressRead", "CustomerGroup", "CustomerRecovery", diff --git a/storeapi.json b/storeapi.json index 2a56e33..a8c0333 100644 --- a/storeapi.json +++ b/storeapi.json @@ -722,7 +722,12 @@ }, "type": { "description": "Type of categories like `page`, `folder`, `link`.", - "type": "string" + "type": "string", + "enum": [ + "page", + "link", + "folder" + ] }, "productAssignmentType": { "description": "Type of product assignment: Dynamic product group as or `product_stream` or Manual assignment as `product`.", @@ -752,7 +757,13 @@ "type": "object" }, "linkType": { - "type": "string" + "type": "string", + "enum": [ + "category", + "product", + "external", + "landing_page" + ] }, "internalLink": { "type": "string", @@ -1084,7 +1095,8 @@ "type": "string", "enum": [ "page", - "link" + "link", + "folder" ] }, "productAssignmentType": { @@ -1118,6 +1130,12 @@ }, "linkType": { "type": "string", + "enum": [ + "category", + "product", + "external", + "landing_page" + ], "description": "linkType : `external`, `category`, `product`, `landing_page`." }, "internalLink": { @@ -5611,10 +5629,6 @@ "description": "Title name given to customer like DR. , Prof., etc.", "type": "string" }, - "vatId": { - "description": "Unique identity of VAT.", - "type": "string" - }, "phoneNumber": { "description": "Phone number of the customer.", "type": "string" @@ -5635,6 +5649,11 @@ "type": "object", "description": "Additional fields that offer a possibility to add own fields for the different program-areas." }, + "vatId": { + "description": "Unique identity of VAT.", + "type": "string", + "deprecated": true + }, "createdAt": { "type": "string", "format": "date-time", @@ -6260,7 +6279,16 @@ }, "type": { "description": "Type refers to the entity type of an item whether it is product or promotion for instance.", - "type": "string" + "type": "string", + "enum": [ + "product", + "credit", + "custom", + "promotion", + "container", + "discount", + "quantity" + ] }, "customFields": { "type": "object", @@ -7623,7 +7651,11 @@ }, "type": { "description": "The type of the product, e.g., physical or digital.", - "type": "string" + "type": "string", + "enum": [ + "physical", + "digital" + ] }, "states": { "type": "array", @@ -9627,6 +9659,10 @@ "type": "object", "description": "Additional fields that offer a possibility to add own fields for the different program-areas." }, + "internal": { + "description": "When the boolean value is `true` indicating that it is for internal use only and will not appear in product stream listings.", + "type": "boolean" + }, "createdAt": { "type": "string", "format": "date-time", @@ -10509,7 +10545,12 @@ }, "routeName": { "description": "A destination routeName that has been registered somewhere in the app's router. For example: \\\\\"frontend.detail.page\\\\\"", - "type": "string" + "type": "string", + "enum": [ + "frontend.detail.page", + "frontend.navigation.page", + "frontend.landing.page" + ] }, "pathInfo": { "description": "Path to product URL. For example: \\\\\"/detail/bbf36734504741c79a3bbe3795b91564\\\\\"", @@ -10592,9 +10633,9 @@ "description": "A destination routeName that has been registered somewhere in the app's router. For example: \"frontend.detail.page\"", "type": "string", "enum": [ + "frontend.detail.page", "frontend.navigation.page", - "frontend.landing.page", - "frontend.detail.page" + "frontend.landing.page" ] }, "pathInfo": { @@ -10640,8 +10681,7 @@ "readOnly": true } }, - "type": "object", - "title": "SeoUrlEntity" + "type": "object" }, "SeoUrlTemplate": { "description": "Added since version: 6.0.0.0", @@ -11806,40 +11846,47 @@ }, "type": "object" }, - "BreadcrumbCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Breadcrumb" - } - }, - "EntitySearchResult": { + "ProductDetailResponse": { "type": "object", + "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "entity": { - "type": "string" - }, - "total": { - "type": "integer", - "description": "The total number of found entities" + "product": { + "$ref": "#/components/schemas/Product" }, - "aggregations": { + "configurator": { "type": "array", - "description": "Contains aggregated data. A simple example is the determination of the average price from a product search query.", + "description": "List of property groups with their corresponding options and information on how to display them.", "items": { - "type": "object" + "$ref": "#/components/schemas/PropertyGroup" } }, - "page": { - "type": "integer", - "description": "The actual page. This can be used for pagination." + "id": { + "description": "Unique identity of product detail response." }, - "limit": { - "type": "integer", - "description": "The actual limit. This is used for pagination and goes together with the page." + "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" } - } + }, + "required": [ + "product" + ] }, - "CartDelivery": { + "CartDeliveryPosition": { "type": "object", "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { @@ -11856,113 +11903,173 @@ } } }, - "location": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_shipping_location" - ] - }, - "country": { - "$ref": "#/components/schemas/Country" - }, - "address": { - "$ref": "#/components/schemas/CustomerAddress" - }, - "state": { - "$ref": "#/components/schemas/CountryState" - } - } + "identifier": { + "type": "string" }, - "positions": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDeliveryPosition" - } + "lineItem": { + "$ref": "#/components/schemas/LineItem" }, - "shippingCosts": { + "price": { "$ref": "#/components/schemas/CalculatedPrice" - }, - "shippingMethod": { - "$ref": "#/components/schemas/ShippingMethod" } } }, - "CookieGroupCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CookieGroup" - } - }, - "OrderRouteResponse": { + "CartItems": { "type": "object", + "required": [ + "items" + ], "properties": { - "orders": { - "type": "object", - "allOf": [ - { - "type": "object", - "required": [ - "elements" - ], - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Order" - } - } - } + "items": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + }, + "properties": { + "id": { + "description": "Unique identity of cart item." }, - { - "$ref": "#/components/schemas/EntitySearchResult" + "modified": { + "description": "When boolean value is `true`, the cart is said to be modified." } - ] - }, - "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" } } - }, - "required": [ - "orders" - ] + } }, - "ReferencePrice": { + "CookieGroup": { "type": "object", "properties": { - "purchaseUnit": { - "type": "number" + "isRequired": { + "type": "boolean" }, - "referenceUnit": { - "type": "number" + "name": { + "type": "string" }, - "unitName": { + "description": { "type": "string" }, - "price": { - "type": "number" + "cookie": { + "type": "string" + }, + "value": { + "type": "string" + }, + "expiration": { + "type": "integer" + }, + "entries": { + "$ref": "#/components/schemas/CookieEntryCollection" }, "apiAlias": { "type": "string", "enum": [ - "cart_price_reference" + "cookie_group" + ] + } + }, + "not": { + "allOf": [ + { + "required": [ + "cookie" + ] + }, + { + "required": [ + "entries" + ] + } + ] + }, + "required": [ + "name", + "isRequired", + "apiAlias" + ] + }, + "CartPriceQuantity": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_quantity" ] }, + "isCalculated": { + "type": "boolean" + }, "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/ListPrice" - }, - { - "type": "null" - } - ] + "$ref": "#/components/schemas/CartListPrice" + }, + "price": { + "type": "number" + }, + "quantity": { + "type": "number" + }, + "regulationPrice": { + "properties": { + "price": { + "type": "number", + "format": "float" + } + }, + "type": "object" + }, + "taxRules": { + "type": "array", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } + }, + "type": { + "type": "string" + } + }, + "required": [ + "apiAlias" + ] + }, + "CartPriceReference": { + "type": "object", + "properties": { + "purchaseUnit": { + "type": "number" + }, + "referenceUnit": { + "type": "number" + }, + "unitName": { + "type": "string" + }, + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_reference" + ] + }, + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartListPrice" + }, + { + "type": "null" + } + ] }, "regulationPrice": { "oneOf": [ @@ -12001,6 +12108,7 @@ } }, "required": [ + "apiAlias", "hasRange", "regulationPrice", "listPrice", @@ -12010,170 +12118,55 @@ "unitName" ] }, - "SuccessResponse": { - "type": "object", - "properties": { - "success": { - "type": "boolean" - } - } - }, - "Cart": { + "CartDelivery": { "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "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": { - "$ref": "#/components/schemas/CalculatedPrice" - }, - "lineItems": { - "description": "All items within the cart", - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" - } - }, - "errors": { + "deliveryDate": { "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "anyOf": [ - { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartError" - } + "properties": { + "earliest": { + "type": "string", + "format": "date-time" }, - { - "type": "object", - "additionalProperties": { - "type": "object", - "properties": { - "code": { - "type": "number" - }, - "key": { - "type": "string" - }, - "level": { - "type": "number" - }, - "message": { - "type": "string" - }, - "messageKey": { - "type": "string" - } - }, - "required": [ - "code", - "key", - "level", - "message", - "messageKey" - ] - } + "latest": { + "type": "string", + "format": "date-time" } - ], + } + }, + "location": { + "type": "object", "properties": { - "key": { - "description": "Unique key for every message." + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_shipping_location" + ] }, - "level": { - "description": "Types of level - Notice, warning and error. " + "country": { + "$ref": "#/components/schemas/Country" }, - "message": { - "description": "A persistent error passed from the shopping cart calculation processes to the user end." + "address": { + "$ref": "#/components/schemas/CustomerAddress" + }, + "state": { + "$ref": "#/components/schemas/CountryState" } } }, - "deliveries": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CartDelivery" - } - }, - "transactions": { - "description": "A list of all payment transactions associated with the current cart.", + "positions": { "type": "array", "items": { - "type": "object", - "properties": { - "paymentMethodId": { - "type": "string" - }, - "amount": { - "$ref": "#/components/schemas/CalculatedPrice" - } - } - }, - "properties": { - "paymentMethodId": { - "description": "Unique identity of payment method." - } + "$ref": "#/components/schemas/CartDeliveryPosition" } }, - "modified": { - "type": "boolean", - "description": "It signifies any changes to cart." - }, - "customerComment": { - "description": "A comment that can be added to the cart.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "affiliateCode": { - "description": "An affiliate tracking code", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "campaignCode": { - "description": "A campaign tracking code", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart" - ] + "shippingCosts": { + "$ref": "#/components/schemas/CalculatedPrice" }, - "id": { - "description": "Unique identity of cart." + "shippingMethod": { + "$ref": "#/components/schemas/ShippingMethod" } - }, - "required": [ - "price", - "apiAlias" - ] - }, - "CookieEntryCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CookieEntry" } }, "CrossSellingElement": { @@ -12210,405 +12203,83 @@ "apiAlias" ] }, - "CalculatedPrice": { - "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", - "properties": { - "unitPrice": { - "type": "number" - }, - "quantity": { - "type": "number" - }, - "rawTotal": { - "type": "number" - }, - "totalPrice": { - "type": "number" - }, - "taxStatus": { - "type": "string", - "enum": [ - "net", - "tax-free" - ] - }, - "calculatedTaxes": { - "type": "array", - "items": { + "ShippingMethodPageRouteResponse": { + "type": "array", + "items": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "active": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "deliveryTimeId": { + "type": "string" + }, + "deliveryTime": { "type": "object", "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_tax_calculated" - ] + "name": { + "type": "string" }, - "tax": { - "type": "number" + "min": { + "type": "integer", + "format": "int32" }, - "taxRate": { - "type": "number" + "max": { + "type": "integer", + "format": "int32" }, - "price": { - "type": "number" + "unit": { + "type": "string" } - }, - "required": [ - "apiAlias", - "tax", - "taxRate", - "price" - ] - } - }, - "referencePrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartPriceReference" - }, - { - "type": "null" - } - ] - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" } - ] - }, - "positionPrice": { - "type": "number" - }, - "netPrice": { - "type": "number" - }, - "regulationPrice": { - "oneOf": [ - { + }, + "translations": { + "type": "array", + "items": { "type": "object", "properties": { - "price": { - "type": "number" + "shippingMethodId": { + "type": "string" }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_regulation_price" - ] + "name": { + "type": "string" + }, + "description": { + "type": "string" } } - }, - { - "type": "null" - } - ] - }, - "hasRange": { - "type": "boolean" - }, - "variantId": { - "oneOf": [ - { - "type": "string", - "format": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "calculated_price" - ] - }, - "taxRules": { - "type": "array", - "description": "Currently active tax rules and/or rates", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } - } - } - }, - "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "referencePrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitPrice", - "positionPrice", - "netPrice", - "taxRules", - "rawTotal", - "taxStatus" - ] - }, - "CartPriceReference": { - "type": "object", - "properties": { - "purchaseUnit": { - "type": "number" - }, - "referenceUnit": { - "type": "number" - }, - "unitName": { - "type": "string" - }, - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_price_reference" - ] - }, - "listPrice": { - "oneOf": [ - { - "$ref": "#/components/schemas/CartListPrice" - }, - { - "type": "null" } - ] - }, - "regulationPrice": { - "oneOf": [ - { + }, + "orderDeliveries": { + "type": "array", + "items": { "type": "object", "properties": { - "price": { - "type": "number" + "orderId": { + "type": "string" }, - "apiAlias": { + "shippingOrderAddressId": { + "type": "string" + }, + "shippingMethodId": { + "type": "string" + }, + "shippingDateEarliest": { "type": "string", - "enum": [ - "cart_regulation_price" - ] - } - } - }, - { - "type": "null" - } - ] - }, - "hasRange": { - "type": "boolean" - }, - "variantId": { - "oneOf": [ - { - "type": "string", - "format": "^[0-9a-f]{32}$" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "apiAlias", - "hasRange", - "regulationPrice", - "listPrice", - "calculatedTaxes", - "totalPrice", - "quantity", - "unitName" - ] - }, - "CartDeliveryPosition": { - "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", - "properties": { - "deliveryDate": { - "type": "object", - "properties": { - "earliest": { - "type": "string", - "format": "date-time" - }, - "latest": { - "type": "string", - "format": "date-time" - } - } - }, - "identifier": { - "type": "string" - }, - "lineItem": { - "$ref": "#/components/schemas/LineItem" - }, - "price": { - "$ref": "#/components/schemas/CalculatedPrice" - } - } - }, - "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.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "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.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - } - }, - "CartListPrice": { - "type": "object", - "description": "", - "properties": { - "discount": { - "type": "number" - }, - "percentage": { - "type": "number" - }, - "price": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_list_price" - ] - } - }, - "required": [ - "apiAlias" - ] - }, - "NavigationRouteResponse": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - }, - "properties": { - "id": { - "description": "Unique identity of navigation route response." - } - } - }, - "ShippingMethodPageRouteResponse": { - "type": "array", - "items": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "active": { - "type": "boolean" - }, - "description": { - "type": "string" - }, - "deliveryTimeId": { - "type": "string" - }, - "deliveryTime": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "min": { - "type": "integer", - "format": "int32" - }, - "max": { - "type": "integer", - "format": "int32" - }, - "unit": { - "type": "string" - } - } - }, - "translations": { - "type": "array", - "items": { - "type": "object", - "properties": { - "shippingMethodId": { - "type": "string" - }, - "name": { - "type": "string" - }, - "description": { - "type": "string" - } - } - } - }, - "orderDeliveries": { - "type": "array", - "items": { - "type": "object", - "properties": { - "orderId": { - "type": "string" - }, - "shippingOrderAddressId": { - "type": "string" - }, - "shippingMethodId": { - "type": "string" - }, - "shippingDateEarliest": { - "type": "string", - "format": "date-time" - }, - "shippingDateLatest": { - "type": "string", - "format": "date-time" - }, - "stateId": { - "type": "string" + "format": "date-time" + }, + "shippingDateLatest": { + "type": "string", + "format": "date-time" + }, + "stateId": { + "type": "string" } } } @@ -13161,73 +12832,166 @@ } } }, - "Sitemap": { - "type": "object", - "properties": { - "filename": { - "type": "string", - "description": "Name of the file which holds a list of all URL's." - }, - "created": { - "type": "string", - "format": "date-time" - } - }, - "required": [ - "filename", - "created" + "CookieEntryCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieEntry" + } + }, + "NavigationType": { + "type": "string", + "enum": [ + "main-navigation", + "footer-navigation", + "service-navigation" ] }, - "AggregationEntity": { - "title": "AggregationEntity", + "Price": { "type": "object", + "description": "Price object", "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" - }, - "type": { - "description": "The type of aggregation", + "currencyId": { "type": "string", - "enum": [ - "entity" - ] + "pattern": "^[0-9a-f]{32}$" }, - "field": { - "description": "The field you want to aggregate over.", - "type": "string" + "gross": { + "description": "", + "type": "number" }, - "definition": { - "description": "The entity definition e.g \"product_manufacturer\".", - "type": "string" - } - }, - "required": [ - "name", - "type", - "field", - "definition" - ] - }, - "AggregationFilter": { - "title": "AggregationFilter", - "type": "object", - "properties": { - "name": { - "description": "Give your aggregation an identifier, so you can find it easier", - "type": "string" + "net": { + "description": "", + "type": "number" }, - "type": { - "description": "The type of aggregation", - "type": "string", - "enum": [ - "filter" - ] + "linked": { + "description": "", + "type": "boolean" }, - "filter": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Filters" + "listPrice": { + "description": "", + "type": "object", + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" + } + }, + "required": [ + "gross", + "net" + ] + }, + "regulationPrice": { + "description": "", + "type": "object", + "properties": { + "currencyId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "gross": { + "description": "", + "type": "number" + }, + "net": { + "description": "", + "type": "number" + }, + "linked": { + "description": "", + "type": "boolean" + } + }, + "required": [ + "gross", + "net" + ] + } + }, + "required": [ + "currencyId", + "gross", + "net" + ] + }, + "Sitemap": { + "type": "object", + "properties": { + "filename": { + "type": "string", + "description": "Name of the file which holds a list of all URL's." + }, + "created": { + "type": "string", + "format": "date-time" + } + }, + "required": [ + "filename", + "created" + ] + }, + "AggregationEntity": { + "title": "AggregationEntity", + "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", + "enum": [ + "entity" + ] + }, + "field": { + "description": "The field you want to aggregate over.", + "type": "string" + }, + "definition": { + "description": "The entity definition e.g \"product_manufacturer\".", + "type": "string" + } + }, + "required": [ + "name", + "type", + "field", + "definition" + ] + }, + "AggregationFilter": { + "title": "AggregationFilter", + "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", + "enum": [ + "filter" + ] + }, + "filter": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Filters" } } }, @@ -13393,63 +13157,361 @@ "ranges" ] }, - "LineItemType": { - "type": "string", - "enum": [ - "product", - "credit", - "custom", - "promotion", - "discount", - "container", - "quantity" - ] - }, - "LineItem": { + "Breadcrumb": { "type": "object", "properties": { - "children": { - "type": "array", - "items": { - "$ref": "#/components/schemas/LineItem" - } + "name": { + "type": "string" }, - "cover": { - "$ref": "#/components/schemas/Media" + "categoryId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "dataContextHash": { - "type": "string" + "type": { + "$ref": "#/components/schemas/Category/properties/type" }, - "dataTimestamp": { + "translated": { + "type": "object", + "additionalProperties": true, + "properties": { + "customFields": { + "type": "object" + }, + "slotConfig": { + "type": "object" + }, + "linkType": { + "$ref": "#/components/schemas/Category/properties/linkType" + }, + "internalLink": { + "type": "string" + }, + "externalLink": { + "type": "string" + }, + "linkNewTab": { + "type": "boolean" + }, + "description": { + "type": "string" + }, + "metaTitle": { + "type": "string" + }, + "metaDescription": { + "type": "string" + }, + "keywords": { + "type": "string" + } + } + }, + "path": { "type": "string" }, - "deliveryInformation": { - "$ref": "#/components/schemas/CartDeliveryInformation" + "seoUrls": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SeoUrl" + } }, - "description": { + "apiAlias": { "type": "string", - "description": "Description of line items in an order." + "enum": [ + "breadcrumb" + ] + } + }, + "required": [ + "name", + "categoryId", + "type", + "translated", + "path", + "apiAlias" + ] + }, + "ReferencePrice": { + "type": "object", + "properties": { + "purchaseUnit": { + "type": "number" }, - "good": { - "type": "boolean", - "description": "When set to true, it indicates the line item is physical else it is virtual." + "referenceUnit": { + "type": "number" }, - "id": { - "type": "string", - "description": "Unique identity of line item." + "unitName": { + "type": "string" }, - "label": { - "type": "string", - "description": "It is a typical product name given to the line item." + "price": { + "type": "number" }, - "modified": { - "type": "boolean", - "description": "When boolean value is `true`, line items are said to be modified." + "apiAlias": { + "type": "string", + "enum": [ + "cart_price_reference" + ] }, - "modifiedByApp": { - "type": "boolean" + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/ListPrice" + }, + { + "type": "null" + } + ] }, - "payload": { + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } + }, + { + "type": "null" + } + ] + }, + "hasRange": { + "type": "boolean" + }, + "variantId": { + "oneOf": [ + { + "type": "string", + "format": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "hasRange", + "regulationPrice", + "listPrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitName" + ] + }, + "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": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "price": { + "type": "object", + "properties": { + "min": { + "type": "integer", + "default": 0 + }, + "max": { + "type": "integer", + "default": 0 + } + }, + "required": [ + "min", + "max" + ] + }, + "rating": { + "oneOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "shipping-free": { + "type": "boolean", + "default": false + }, + "properties": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "search": { + "type": "string" + } + }, + "required": [ + "manufacturer", + "navigationId", + "price", + "properties", + "rating", + "shipping-free" + ] + }, + "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", + "properties": { + "label": { + "type": "string" + }, + "translated": { + "type": "object", + "properties": { + "label": { + "type": "string" + } + }, + "required": [ + "label" + ] + }, + "key": { + "type": "string" + }, + "priority": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "product_sorting" + ] + } + }, + "required": [ + "label", + "translated", + "key", + "priority", + "apiAlias" + ] + } + }, + "sorting": { + "type": "string" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Product" + } + }, + "entity": { + "type": "string", + "enum": [ + "product" + ] + }, + "apiAlias": { + "type": "string", + "enum": [ + "product_listing" + ] + } + }, + "required": [ + "elements", + "availableSortings", + "currentFilters", + "apiAlias" + ] + } + ] + }, + "LineItemType": { + "type": "string", + "deprecated": true, + "enum": [ + "product", + "credit", + "custom", + "promotion", + "discount", + "container", + "quantity" + ] + }, + "LineItem": { + "type": "object", + "properties": { + "children": { + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } + }, + "cover": { + "$ref": "#/components/schemas/Media" + }, + "dataContextHash": { + "type": "string" + }, + "dataTimestamp": { + "type": "string" + }, + "deliveryInformation": { + "$ref": "#/components/schemas/CartDeliveryInformation" + }, + "description": { + "type": "string", + "description": "Description of line items in an order." + }, + "good": { + "type": "boolean", + "description": "When set to true, it indicates the line item is physical else it is virtual." + }, + "id": { + "type": "string", + "description": "Unique identity of line item." + }, + "label": { + "type": "string", + "description": "It is a typical product name given to the line item." + }, + "modified": { + "type": "boolean", + "description": "When boolean value is `true`, line items are said to be modified." + }, + "modifiedByApp": { + "type": "boolean" + }, + "payload": { "$ref": "#/components/schemas/ProductJsonApi" }, "price": { @@ -13609,7 +13671,7 @@ } }, "type": { - "$ref": "#/components/schemas/LineItemType", + "$ref": "#/components/schemas/OrderLineItem/properties/type", "description": "Type refers to the entity type of an item whether it is product or promotion for instance." }, "uniqueIdentifier": { @@ -13625,623 +13687,199 @@ "states" ] }, - "CrossSellingElementCollection": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CrossSellingElement" - }, - "properties": { - "total": { - "description": "Number of cross selling elements found." - } - } - }, - "CartError": { + "SalesChannelContext": { "type": "object", - "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", "properties": { - "key": { - "type": "string" - }, - "level": { - "type": "number", - "enum": [ - 0, - 10, - 20 - ], - "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" - }, - "message": { + "token": { + "description": "Context the user session", "type": "string" }, - "messageKey": { - "type": "string" - } - }, - "required": [ - "key", - "level", - "message", - "messageKey" - ] - }, - "FindProductVariantRouteResponse": { - "type": "object", - "properties": { - "foundCombination": { + "currentCustomerGroup": { "type": "object", + "description": "Customer group of the current user", "properties": { - "variantId": { + "name": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "description": "Unique identity of a variant." + "description": "Name of customer group to which the customer belongs within the specific sales channel they are currently interacting with." }, - "options": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Available product variant options. For example, for variant `Size`, option would be `XS`, `S`, `M`, `L`, `XL`." + "displayGross": { + "type": "boolean", + "description": "When `true`, product's gross price is displayed for that customer group who belongs to the specific sales channel they are currently interacting with." } } - } - } - }, - "ProductListingCriteria": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" }, - { + "fallbackCustomerGroup": { + "description": "Fallback group if the default customer group is not applicable", "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.", + "name": { "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 + "displayGross": { + "type": "boolean" + } + } + }, + "currency": { + "$ref": "#/components/schemas/Currency", + "properties": { + "isoCode": { + "description": "Standard international three digit code to represent currency in a given sales channel. For example, USD." }, - "p": { - "description": "Search result page", - "type": "integer", - "default": 1 + "factor": { + "description": "Currency exchange rate in a specific sales channel the customer is currently interacting with." }, - "manufacturer": { - "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", - "type": "string" + "symbol": { + "description": "A currency symbol is a graphical representation used as shorthand for a currency's name, for example US Dollar - $ in a given 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 + "shortName": { + "description": "Acronym for international currencies, for example, USD in a given 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 + "name": { + "description": "Full name of the currency in a given sales channel. For example, US-Dollar." }, - "rating": { - "description": "Filter products with a minimum average rating.", - "type": "integer" + "position": { + "description": "The order of the tabs for multiple currencies defined in a given sales channel." }, - "shipping-free": { - "description": "Filters products that are marked as shipping-free.", - "type": "boolean", - "default": false + "decimalPrecision": { + "description": "It defines the round off value for currency to the nearest decimal point in a given sales channel. If set to 2, it rounds off to two significant decimal points." }, - "properties": { - "description": "Filters products by their properties. List of property identifiers separated by a `|`.", - "type": "string" + "isSystemDefault": { + "description": "Runtime field, cannot be used as part of the criteria." + } + } + }, + "salesChannel": { + "$ref": "#/components/schemas/SalesChannel", + "properties": { + "typeId": { + "description": "Unique identity of a sales channel's type 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 + "languageId": { + "description": "Unique identity of a sales channel's language 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 + "currencyId": { + "description": "Unique identity of a sales channel's currency 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 + "paymentMethodId": { + "description": "Unique identity of a sales channel's payment method 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 + "shippingMethodId": { + "description": "Unique identity of a sales channel's shipping method 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 + "countryId": { + "description": "Unique identity of a sales channel's country 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" + "navigationCategoryId": { + "description": "Unique identity of a sales channel's navigation category 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.", - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - } - } - ], - "properties": { - "filter": { - "properties": { - "type": { - "description": "To filter the results and aggregations with filter types like ==, >=, etc." + "navigationCategoryDepth": { + "description": "It determines the number of levels of subcategories in the storefront category menu within a specific sales channel." }, - "field": { - "description": "To filter the results and aggregations by field like an property identifier." + "footerCategoryId": { + "description": "Unique identity of a sales channel's footer category 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." + "serviceCategoryId": { + "description": "Unique identity of a sales channel's service category within a specific sales channel." }, - "order": { - "description": "Sort the search results of orders by ascending or descending." + "name": { + "description": "Name of the sales channel." }, - "naturalSorting": { - "description": "Sorting for special cases such as German letters with umlauts and similar characters etc." - } - } - }, - "post-filter": { - "properties": { - "type": { - "description": "To filter only the results but not the aggregations with filter types like ==, >=, etc." + "shortName": { + "description": "A short name for sales channel." }, - "field": { - "description": "To filter only the results but not the aggregations by field like an property identifier." + "accessKey": { + "description": "Access key to store api." }, - "value": { - "description": "To filter only the results but not the aggregations by value." + "active": { + "description": "When `true`, the sales channel is enabled." + }, + "maintenance": { + "description": "When `true`, it indicates that the sales channel is undergoing maintenance, and shopping is temporarily unavailable during this period." + }, + "maintenanceIpWhitelist": { + "description": "Array of IP address allowed to access the sales channel." + }, + "mailHeaderFooterId": { + "description": "Unique identity of a sales channel's mail header and footer within a specific sales channel." + }, + "customerGroupId": { + "description": "Unique identity of a sales channel's customer group within a specific sales channel." + }, + "hreflangActive": { + "description": "When `true`, the sales channel pages are available in different languages within a specific sales channel." + }, + "hreflangDefaultDomainId": { + "description": "Unique identity of a sales channel's hreflangDefaultDomain within a specific sales channel." + }, + "analyticsId": { + "description": "Unique identity of a sales channel's analytics within a specific sales channel." } } - } - } - }, - "NavigationType": { - "type": "string", - "enum": [ - "main-navigation", - "footer-navigation", - "service-navigation" - ] - }, - "WishlistLoadRouteResponse": { - "type": "object", - "required": [ - "products" - ], - "properties": { - "wishlist": { - "type": "object", - "properties": { - "customerId": { - "type": "string", - "description": "Unique identity of the customer." - }, - "salesChannelId": { - "type": "string", - "description": "Unique identity of the sales channel." - } - } - }, - "products": { - "$ref": "#/components/schemas/ProductListingResult" - } - } - }, - "AggregationMetrics": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "type": { - "type": "string", - "enum": [ - "avg", - "count", - "max", - "min", - "stats", - "sum" - ] - }, - "field": { - "type": "string" - } - }, - "required": [ - "name", - "type", - "field" - ] - }, - "CartDeliveryInformation": { - "type": "object", - "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_information" - ] - }, - "freeDelivery": { - "type": "boolean" - }, - "deliveryTime": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "min": { - "type": "integer" - }, - "max": { - "type": "integer" - }, - "unit": { - "type": "string" - }, - "apiAlias": { - "type": "string", - "enum": [ - "cart_delivery_time" - ] - } - } - }, - "height": { - "type": "integer" - }, - "length": { - "type": "integer" - }, - "restockTime": { - "type": "integer" - }, - "stock": { - "type": "integer" }, - "weight": { - "type": "integer" + "measurementSystem": { + "$ref": "#/components/schemas/ContextMeasurementSystemInfo" }, - "width": { - "type": "integer" - } - }, - "required": [ - "apiAlias" - ] - }, - "CartItems": { - "type": "object", - "required": [ - "items" - ], - "properties": { - "items": { + "taxRules": { "type": "array", + "description": "Currently active tax rules and/or rates", "items": { - "$ref": "#/components/schemas/LineItem" + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } }, "properties": { - "id": { - "description": "Unique identity of cart item." + "taxRate": { + "description": "Rate of tax within a specific sales channel." }, - "modified": { - "description": "When boolean value is `true`, the cart is said to be modified." + "name": { + "description": "Name defined for a Tax within a specific sales channel." } } - } - } - }, - "Breadcrumb": { - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "categoryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "type": { - "type": "string", - "enum": [ - "page", - "link", - "folder" - ] }, - "translated": { - "type": "object", - "additionalProperties": true, + "customer": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/components/schemas/Customer" + } + ], "properties": { - "customFields": { - "type": "object" + "groupId": { + "description": "Unique identity of a customer's group within a specific sales channel." }, - "slotConfig": { - "type": "object" + "defaultPaymentMethodId": { + "description": "Unique identity of a customer's default payment method within a specific sales channel." }, - "linkType": { - "type": "string", - "enum": [ - "external", - "category", - "product", - "landing_page" - ] + "salesChannelId": { + "description": "Unique identity of sales channel the customer is currently interacting with." }, - "internalLink": { - "type": "string" + "languageId": { + "description": "Unique identity of language within a specific sales channel the customer is interacting." }, - "externalLink": { - "type": "string" + "lastPaymentMethodId": { + "description": "Unique identity of customer's last payment method within a specific sales channel." }, - "linkNewTab": { - "type": "boolean" + "defaultBillingAddressId": { + "description": "Unique identity of customer's default billing address within a specific sales channel." }, - "description": { - "type": "string" + "defaultShippingAddressId": { + "description": "Unique identity of customer's default shipping address within a specific sales channel." }, - "metaTitle": { - "type": "string" + "customerNumber": { + "description": "Name of the customer within a specific sales channel the customer is interacting." }, - "metaDescription": { - "type": "string" - }, - "keywords": { - "type": "string" - } - } - }, - "path": { - "type": "string" - }, - "seoUrls": { - "type": "array", - "items": { - "$ref": "#/components/schemas/SeoUrl" - } - }, - "apiAlias": { - "type": "string", - "enum": [ - "breadcrumb" - ] - } - }, - "required": [ - "name", - "categoryId", - "type", - "translated", - "path", - "apiAlias" - ] - }, - "SalesChannelContext": { - "type": "object", - "properties": { - "token": { - "description": "Context the user session", - "type": "string" - }, - "currentCustomerGroup": { - "type": "object", - "description": "Customer group of the current user", - "properties": { - "name": { - "type": "string", - "description": "Name of customer group to which the customer belongs within the specific sales channel they are currently interacting with." - }, - "displayGross": { - "type": "boolean", - "description": "When `true`, product's gross price is displayed for that customer group who belongs to the specific sales channel they are currently interacting with." - } - } - }, - "fallbackCustomerGroup": { - "description": "Fallback group if the default customer group is not applicable", - "type": "object", - "properties": { - "name": { - "type": "string" - }, - "displayGross": { - "type": "boolean" - } - } - }, - "currency": { - "$ref": "#/components/schemas/Currency", - "properties": { - "isoCode": { - "description": "Standard international three digit code to represent currency in a given sales channel. For example, USD." - }, - "factor": { - "description": "Currency exchange rate in a specific sales channel the customer is currently interacting with." - }, - "symbol": { - "description": "A currency symbol is a graphical representation used as shorthand for a currency's name, for example US Dollar - $ in a given sales channel." - }, - "shortName": { - "description": "Acronym for international currencies, for example, USD in a given sales channel." - }, - "name": { - "description": "Full name of the currency in a given sales channel. For example, US-Dollar." - }, - "position": { - "description": "The order of the tabs for multiple currencies defined in a given sales channel." - }, - "decimalPrecision": { - "description": "It defines the round off value for currency to the nearest decimal point in a given sales channel. If set to 2, it rounds off to two significant decimal points." - }, - "isSystemDefault": { - "description": "Runtime field, cannot be used as part of the criteria." - } - } - }, - "salesChannel": { - "$ref": "#/components/schemas/SalesChannel", - "properties": { - "typeId": { - "description": "Unique identity of a sales channel's type within a specific sales channel." - }, - "languageId": { - "description": "Unique identity of a sales channel's language within a specific sales channel." - }, - "currencyId": { - "description": "Unique identity of a sales channel's currency within a specific sales channel." - }, - "paymentMethodId": { - "description": "Unique identity of a sales channel's payment method within a specific sales channel." - }, - "shippingMethodId": { - "description": "Unique identity of a sales channel's shipping method within a specific sales channel." - }, - "countryId": { - "description": "Unique identity of a sales channel's country within a specific sales channel." - }, - "navigationCategoryId": { - "description": "Unique identity of a sales channel's navigation category within a specific sales channel." - }, - "navigationCategoryDepth": { - "description": "It determines the number of levels of subcategories in the storefront category menu within a specific sales channel." - }, - "footerCategoryId": { - "description": "Unique identity of a sales channel's footer category within a specific sales channel." - }, - "serviceCategoryId": { - "description": "Unique identity of a sales channel's service category within a specific sales channel." - }, - "name": { - "description": "Name of the sales channel." - }, - "shortName": { - "description": "A short name for sales channel." - }, - "accessKey": { - "description": "Access key to store api." - }, - "active": { - "description": "When `true`, the sales channel is enabled." - }, - "maintenance": { - "description": "When `true`, it indicates that the sales channel is undergoing maintenance, and shopping is temporarily unavailable during this period." - }, - "maintenanceIpWhitelist": { - "description": "Array of IP address allowed to access the sales channel." - }, - "mailHeaderFooterId": { - "description": "Unique identity of a sales channel's mail header and footer within a specific sales channel." - }, - "customerGroupId": { - "description": "Unique identity of a sales channel's customer group within a specific sales channel." - }, - "hreflangActive": { - "description": "When `true`, the sales channel pages are available in different languages within a specific sales channel." - }, - "hreflangDefaultDomainId": { - "description": "Unique identity of a sales channel's hreflangDefaultDomain within a specific sales channel." - }, - "analyticsId": { - "description": "Unique identity of a sales channel's analytics within a specific sales channel." - } - } - }, - "measurementSystem": { - "$ref": "#/components/schemas/ContextMeasurementSystemInfo" - }, - "taxRules": { - "type": "array", - "description": "Currently active tax rules and/or rates", - "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } - }, - "properties": { - "taxRate": { - "description": "Rate of tax within a specific sales channel." - }, - "name": { - "description": "Name defined for a Tax within a specific sales channel." - } - } - }, - "customer": { - "oneOf": [ - { - "type": "null" - }, - { - "$ref": "#/components/schemas/Customer" - } - ], - "properties": { - "groupId": { - "description": "Unique identity of a customer's group within a specific sales channel." - }, - "defaultPaymentMethodId": { - "description": "Unique identity of a customer's default payment method within a specific sales channel." - }, - "salesChannelId": { - "description": "Unique identity of sales channel the customer is currently interacting with." - }, - "languageId": { - "description": "Unique identity of language within a specific sales channel the customer is interacting." - }, - "lastPaymentMethodId": { - "description": "Unique identity of customer's last payment method within a specific sales channel." - }, - "defaultBillingAddressId": { - "description": "Unique identity of customer's default billing address within a specific sales channel." - }, - "defaultShippingAddressId": { - "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." + "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." @@ -14539,1288 +14177,1252 @@ "languageInfo" ] }, - "Association": { - "additionalProperties": { - "$ref": "#/components/schemas/Association" + "CookieGroupCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CookieGroup" } }, - "ContextMeasurementSystemInfo": { + "AccountNewsletterRecipient": { "type": "object", - "description": "Configuration of the measurement system used in the store, by default including units for length and weight.", "properties": { - "system": { + "status": { "type": "string", "enum": [ - "metric", - "imperial" - ], - "default": "metric", - "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." - }, - "units": { - "type": "object", - "description": "Units used in the measurement system.", - "properties": { - "length": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm", - "description": "Unit of length." - }, - "weight": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg", - "description": "Unit of weight." - } - } - } - } - }, - "ListPrice": { - "type": "object", - "description": "", - "properties": { - "discount": { - "type": "number" - }, - "percentage": { - "type": "number" - }, - "price": { - "type": "number" + "undefined", + "notSet", + "direct", + "optIn", + "optOut" + ] }, "apiAlias": { "type": "string", "enum": [ - "cart_list_price" + "account_newsletter_recipient" ] } }, "required": [ + "status", "apiAlias" ] }, - "Price": { + "FindProductVariantRouteResponse": { "type": "object", - "description": "Price object", "properties": { - "currencyId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "gross": { - "description": "", - "type": "number" - }, - "net": { - "description": "", - "type": "number" - }, - "linked": { - "description": "", - "type": "boolean" - }, - "listPrice": { - "description": "", - "type": "object", - "properties": { - "currencyId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "gross": { - "description": "", - "type": "number" - }, - "net": { - "description": "", - "type": "number" - }, - "linked": { - "description": "", - "type": "boolean" - } - }, - "required": [ - "gross", - "net" - ] - }, - "regulationPrice": { - "description": "", + "foundCombination": { "type": "object", "properties": { - "currencyId": { + "variantId": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "gross": { - "description": "", - "type": "number" - }, - "net": { - "description": "", - "type": "number" + "pattern": "^[0-9a-f]{32}$", + "description": "Unique identity of a variant." }, - "linked": { - "description": "", - "type": "boolean" + "options": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Available product variant options. For example, for variant `Size`, option would be `XS`, `S`, `M`, `L`, `XL`." } - }, - "required": [ - "gross", - "net" - ] + } } + } + }, + "CrossSellingElementCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CrossSellingElement" }, - "required": [ - "currencyId", - "gross", - "net" - ] + "properties": { + "total": { + "description": "Number of cross selling elements found." + } + } }, - "ProductListingResult": { - "allOf": [ - { - "$ref": "#/components/schemas/EntitySearchResult" + "CartDeliveryInformation": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_delivery_information" + ] }, - { + "freeDelivery": { + "type": "boolean" + }, + "deliveryTime": { "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": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "price": { - "type": "object", - "properties": { - "min": { - "type": "integer", - "default": 0 - }, - "max": { - "type": "integer", - "default": 0 - } - }, - "required": [ - "min", - "max" - ] - }, - "rating": { - "oneOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "shipping-free": { - "type": "boolean", - "default": false - }, - "properties": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - "search": { - "type": "string" - } - }, - "required": [ - "manufacturer", - "navigationId", - "price", - "properties", - "rating", - "shipping-free" - ] - }, - "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", - "properties": { - "label": { - "type": "string" - }, - "translated": { - "type": "object", - "properties": { - "label": { - "type": "string" - } - }, - "required": [ - "label" - ] - }, - "key": { - "type": "string" - }, - "priority": { - "type": "number" - }, - "apiAlias": { - "type": "string", - "enum": [ - "product_sorting" - ] - } - }, - "required": [ - "label", - "translated", - "key", - "priority", - "apiAlias" - ] - } - }, - "sorting": { + "name": { "type": "string" }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } + "min": { + "type": "integer" }, - "entity": { - "type": "string", - "enum": [ - "product" - ] + "max": { + "type": "integer" + }, + "unit": { + "type": "string" }, "apiAlias": { "type": "string", "enum": [ - "product_listing" + "cart_delivery_time" ] } - }, - "required": [ - "elements", - "availableSortings", - "currentFilters", - "apiAlias" - ] - } - ] - }, - "CookieGroup": { - "type": "object", - "properties": { - "isRequired": { - "type": "boolean" + } }, - "name": { - "type": "string" + "height": { + "type": "integer" }, - "description": { - "type": "string" + "length": { + "type": "integer" }, - "cookie": { - "type": "string" - }, - "value": { - "type": "string" + "restockTime": { + "type": "integer" }, - "expiration": { + "stock": { "type": "integer" }, - "entries": { - "$ref": "#/components/schemas/CookieEntryCollection" + "weight": { + "type": "integer" }, - "apiAlias": { - "type": "string", - "enum": [ - "cookie_group" - ] + "width": { + "type": "integer" } }, - "not": { - "allOf": [ - { - "required": [ - "cookie" - ] - }, - { - "required": [ - "entries" - ] - } - ] - }, "required": [ - "name", - "isRequired", "apiAlias" ] }, - "CustomerAddressBody": { - "description": "Added since version: 6.0.0.0", - "required": [ - "countryId", - "firstName", - "lastName", - "city", - "street" - ], + "SuccessResponse": { + "type": "object", "properties": { - "countryId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryStateId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "salutationId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "firstName": { - "type": "string" + "success": { + "type": "boolean" + } + } + }, + "Criteria": { + "type": "object", + "description": "Criteria to query entities.", + "properties": { + "page": { + "description": "Search result page", + "type": "integer" }, - "lastName": { + "term": { + "description": "Search term", "type": "string" }, - "zipcode": { - "type": "string" + "limit": { + "description": "Number of items per result page", + "type": "integer" }, - "city": { - "type": "string" + "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": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + }, + "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." + } + } }, - "company": { - "type": "string" + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } }, - "street": { - "type": "string" + "query": { + "type": "string", + "description": "The query string to search for" }, - "department": { - "type": "string" + "associations": { + "$ref": "#/components/schemas/Associations" }, - "title": { - "type": "string" + "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": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + }, + "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." + } + } }, - "phoneNumber": { - "type": "string" + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/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." + } + } }, - "additionalAddressLine1": { - "type": "string" + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } }, - "additionalAddressLine2": { - "type": "string" + "fields": { + "type": "array", + "description": "Fields which should be returned in the search result.", + "items": { + "type": "string", + "description": "Name of a field" + } }, - "customFields": { - "type": "object" + "grouping": { + "type": "array", + "description": "Perform groupings over certain fields", + "items": { + "type": "string", + "description": "Name of a field" + } }, - "country": { - "$ref": "#/components/schemas/Country" + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" }, - "countryState": { - "$ref": "#/components/schemas/CountryState" + "includes": { + "$ref": "#/components/schemas/Includes" }, - "salutation": { - "$ref": "#/components/schemas/Salutation" + "excludes": { + "$ref": "#/components/schemas/Excludes" } - }, - "type": "object" + } }, - "ProductDetailResponse": { + "NoneFieldsCriteria": { "type": "object", - "description": "Represents a product along with detailed information required to display a variant selection.", + "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", "properties": { - "product": { - "$ref": "#/components/schemas/Product" + "page": { + "description": "Search result page", + "type": "integer" }, - "configurator": { + "term": { + "description": "Search term", + "type": "string" + }, + "limit": { + "description": "Number of items per result page", + "type": "integer" + }, + "filter": { "type": "array", - "description": "List of property groups with their corresponding options and information on how to display them.", + "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": { - "$ref": "#/components/schemas/PropertyGroup" + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] } }, - "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." + "ids": { + "type": "array", + "description": "List of ids to search for", + "items": { + "type": "string" + } }, - "sortedProperties": { - "description": "Properties of the product that are sorted" - } - }, - "required": [ - "product" - ] - }, - "CartPriceQuantity": { - "type": "object", - "properties": { - "apiAlias": { + "query": { "type": "string", - "enum": [ - "cart_price_quantity" - ] - }, - "isCalculated": { - "type": "boolean" + "description": "The query string to search for" }, - "listPrice": { - "$ref": "#/components/schemas/CartListPrice" + "associations": { + "$ref": "#/components/schemas/Associations" }, - "price": { - "type": "number" + "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": { + "anyOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } }, - "quantity": { - "type": "number" + "sort": { + "type": "array", + "description": "Sorting in the search result.", + "items": { + "$ref": "#/components/schemas/Sort" + } }, - "regulationPrice": { - "properties": { - "price": { - "type": "number", - "format": "float" - } - }, - "type": "object" + "aggregations": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Aggregation" + } }, - "taxRules": { + "grouping": { "type": "array", + "description": "Perform groupings over certain fields", "items": { - "type": "object", - "properties": { - "taxRate": { - "type": "number", - "format": "float" - }, - "name": { - "type": "string" - } - } + "type": "string", + "description": "Name of a field" } }, - "type": { - "type": "string" + "total-count-mode": { + "$ref": "#/components/schemas/TotalCountMode" + }, + "includes": { + "$ref": "#/components/schemas/Includes" + }, + "excludes": { + "$ref": "#/components/schemas/Excludes" } - }, - "required": [ - "apiAlias" - ] + } }, - "MeasurementUnits": { + "Associations": { "type": "object", - "description": "Configuration of the measurement system", - "properties": { - "system": { - "type": "string", - "enum": [ - "metric", - "imperial" - ], - "default": "metric", - "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." - }, - "units": { - "type": "object", - "description": "Units used in the measurement system.", - "properties": { - "length": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm", - "description": "Unit of length." - }, - "weight": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg", - "description": "Unit of weight." - } - } - } + "additionalProperties": { + "$ref": "#/components/schemas/Criteria" } }, - "CookieEntry": { + "Includes": { "type": "object", - "properties": { - "cookie": { + "additionalProperties": { + "type": "array", + "items": { "type": "string" - }, - "value": { + } + } + }, + "Excludes": { + "type": "object", + "additionalProperties": { + "type": "array", + "items": { "type": "string" + } + } + }, + "Aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" }, - "expiration": { - "type": "integer" + { + "title": "AggregationEntity", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationEntity" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] }, - "name": { - "type": "string" + { + "title": "AggregationFilter", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationFilter" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] }, - "description": { - "type": "string" + { + "title": "AggregationTerms", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationTerms" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] }, - "hidden": { - "type": "boolean" + { + "title": "AggregationHistogram", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationHistogram" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } + ] }, - "apiAlias": { - "type": "string", - "enum": [ - "cookie_entry" + { + "title": "AggregationRange", + "allOf": [ + { + "$ref": "#/components/schemas/AggregationRange" + }, + { + "$ref": "#/components/schemas/SubAggregations" + } ] } - }, - "required": [ - "cookie", - "hidden", - "apiAlias" ] }, - "CookieRouteResponse": { + "SubAggregations": { "type": "object", - "description": "Response containing cookie groups and their configuration hash.", "properties": { - "apiAlias": { - "type": "string", - "enum": [ - "cookie_groups_hash" + "aggregation": { + "anyOf": [ + { + "$ref": "#/components/schemas/AggregationMetrics" + }, + { + "$ref": "#/components/schemas/AggregationEntity" + }, + { + "$ref": "#/components/schemas/AggregationFilter" + }, + { + "$ref": "#/components/schemas/AggregationTerms" + }, + { + "$ref": "#/components/schemas/AggregationHistogram" + }, + { + "$ref": "#/components/schemas/AggregationRange" + } ] + } + } + }, + "TotalCountMode": { + "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" + ] + }, + "Query": { + "type": "object", + "properties": { + "score": { + "type": "number" }, - "elements": { - "type": "array", - "description": "Collection of cookie groups", - "items": { - "$ref": "#/components/schemas/CookieGroup" - } + "query": { + "oneOf": [ + { + "$ref": "#/components/schemas/SimpleFilter" + }, + { + "$ref": "#/components/schemas/EqualsFilter" + }, + { + "$ref": "#/components/schemas/MultiNotFilter" + }, + { + "$ref": "#/components/schemas/RangeFilter" + } + ] + } + }, + "additionalProperties": true + }, + "Sort": { + "type": "object", + "properties": { + "field": { + "type": "string" }, - "hash": { + "order": { "type": "string", - "description": "Hash of the current cookie configuration. Can be used to detect changes in cookie configuration.", - "example": "f86b6a872cb83dbd22d838ceda1aa3d4" + "enum": [ + "ASC", + "DESC" + ] }, - "languageId": { - "type": "string", - "format": "uuid", - "description": "The language ID for which the cookie configuration was generated. Used to store hashes per language.", - "example": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" + "naturalSorting": { + "type": "boolean" + }, + "type": { + "type": "string" } }, "required": [ - "elements", - "hash", - "languageId", - "apiAlias" - ], - "example": { - "apiAlias": "cookie_groups_hash", - "elements": [ + "field", + "order" + ] + }, + "Filters": { + "type": "array", + "items": { + "anyOf": [ { - "isRequired": true, - "description": "Cookies required for this shop to function:", - "name": "Technically required", - "entries": [ - { - "name": "Session", - "hidden": false, - "cookie": "session-", - "apiAlias": "cookie_entry" - }, - { - "name": "Timezone", - "hidden": false, - "cookie": "timezone", - "apiAlias": "cookie_entry" - }, - { - "value": "1", - "expiration": 30, - "name": "Cookie preferences", - "hidden": true, - "cookie": "cookie-preference", - "apiAlias": "cookie_entry" - } - ], - "apiAlias": "cookie_group" + "$ref": "#/components/schemas/SimpleFilter" }, { - "isRequired": false, - "description": "Cookies used for statistics and shop performance metrics.", - "name": "Statistics", - "entries": [ - { - "value": "1", - "expiration": 30, - "name": "Google Analytics", - "hidden": false, - "cookie": "google-analytics-enabled", - "apiAlias": "cookie_entry" - } - ], - "apiAlias": "cookie_group" + "$ref": "#/components/schemas/EqualsFilter" }, { - "isRequired": false, - "description": "Allows Google to collect personal data for online advertising and marketing.", - "name": "Marketing", - "entries": [ - { - "value": "1", - "expiration": 30, - "name": "Google Advertising", - "hidden": false, - "cookie": "google-ads-enabled", - "apiAlias": "cookie_entry" - } - ], - "apiAlias": "cookie_group" + "$ref": "#/components/schemas/MultiNotFilter" }, { - "isRequired": false, - "name": "Comfort features", - "entries": [ - { - "value": "1", - "expiration": 30, - "name": "YouTube video", - "hidden": false, - "cookie": "youtube-video", - "apiAlias": "cookie_entry" - } - ], - "apiAlias": "cookie_group" + "$ref": "#/components/schemas/RangeFilter" } - ], - "hash": "f86b6a872cb83dbd22d838ceda1aa3d4", - "languageId": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" + ] } }, - "Criteria": { + "SimpleFilter": { "type": "object", - "description": "Criteria to query entities.", "properties": { - "page": { - "description": "Search result page", - "type": "integer" + "type": { + "type": "string", + "enum": [ + "contains", + "equalsAny", + "prefix", + "suffix" + ] }, - "term": { - "description": "Search term", + "field": { "type": "string" }, - "limit": { - "description": "Number of items per result page", - "type": "integer" + "value": { + "type": "string" + } + }, + "required": [ + "type", + "field", + "value" + ] + }, + "EqualsFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "equals" + ] }, - "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": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - }, - "properties": { - "type": { - "description": "To filter the results and aggregations with filter types like ==, >=, etc." + "field": { + "type": "string" + }, + "value": { + "oneOf": [ + { + "type": "string" }, - "field": { - "description": "To filter the results and aggregations by field like an property identifier." + { + "type": "number" }, - "value": { - "description": "To filter the results and aggregations by value." - } - } + { + "type": "boolean" + }, + { + "type": "null" + } + ] + } + }, + "required": [ + "type", + "field", + "value" + ] + }, + "MultiNotFilter": { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "multi", + "not" + ] }, - "ids": { - "type": "array", - "description": "List of ids to search for", - "items": { - "type": "string" - } + "operator": { + "type": "string", + "enum": [ + "and", + "or", + "nor", + "nand" + ] }, - "query": { + "queries": { + "$ref": "#/components/schemas/Filters" + } + }, + "required": [ + "type", + "operator", + "queries" + ] + }, + "RangeFilter": { + "type": "object", + "properties": { + "type": { "type": "string", - "description": "The query string to search for" + "enum": [ + "range" + ] }, - "associations": { - "$ref": "#/components/schemas/Associations" + "field": { + "type": "string" }, - "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": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - }, + "parameters": { + "type": "object", "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." + "gte": { + "type": "number" }, - "value": { - "description": "To filter only the results but not the aggregations by value." - } - } - }, - "sort": { - "type": "array", - "description": "Sorting in the search result.", - "items": { - "$ref": "#/components/schemas/Sort" - }, - "properties": { - "field": { - "description": "Sort the search results by field like an property identifier." + "gt": { + "type": "number" }, - "order": { - "description": "Sort the search results of orders by ascending or descending." + "lte": { + "type": "number" }, - "naturalSorting": { - "description": "Sorting for special cases such as German letters with umlauts and similar characters etc." + "lt": { + "type": "number" } } + } + }, + "required": [ + "type", + "field", + "parameters" + ] + }, + "AggregationMetrics": { + "type": "object", + "properties": { + "name": { + "type": "string" }, - "aggregations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Aggregation" - } + "type": { + "type": "string", + "enum": [ + "avg", + "count", + "max", + "min", + "stats", + "sum" + ] }, - "fields": { - "type": "array", - "description": "Fields which should be returned in the search result.", - "items": { - "type": "string", - "description": "Name of a field" - } + "field": { + "type": "string" + } + }, + "required": [ + "name", + "type", + "field" + ] + }, + "MeasurementUnits": { + "type": "object", + "description": "Configuration of the measurement system", + "properties": { + "system": { + "type": "string", + "enum": [ + "metric", + "imperial" + ], + "default": "metric", + "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" + "units": { + "type": "object", + "description": "Units used in the measurement system.", + "properties": { + "length": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm", + "description": "Unit of length." + }, + "weight": { + "type": "string", + "enum": [ + "g", + "kg", + "oz", + "lb" + ], + "default": "kg", + "description": "Unit of weight." + } } - }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" - }, - "includes": { - "$ref": "#/components/schemas/Includes" - }, - "excludes": { - "$ref": "#/components/schemas/Excludes" } } }, - "NoneFieldsCriteria": { + "CookieEntry": { "type": "object", - "description": "Search parameters. For more information, see our documentation on [Search Queries](https://shopware.stoplight.io/docs/store-api/docs/concepts/search-queries.md#structure)", "properties": { - "page": { - "description": "Search result page", - "type": "integer" + "cookie": { + "type": "string" }, - "term": { - "description": "Search term", + "value": { "type": "string" }, - "limit": { - "description": "Number of items per result page", + "expiration": { "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": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } + "name": { + "type": "string" }, - "ids": { - "type": "array", - "description": "List of ids to search for", - "items": { - "type": "string" - } + "description": { + "type": "string" }, - "query": { - "type": "string", - "description": "The query string to search for" - }, - "associations": { - "$ref": "#/components/schemas/Associations" - }, - "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": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "sort": { - "type": "array", - "description": "Sorting in the search result.", - "items": { - "$ref": "#/components/schemas/Sort" - } - }, - "aggregations": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Aggregation" - } - }, - "grouping": { - "type": "array", - "description": "Perform groupings over certain fields", - "items": { - "type": "string", - "description": "Name of a field" - } - }, - "total-count-mode": { - "$ref": "#/components/schemas/TotalCountMode" - }, - "includes": { - "$ref": "#/components/schemas/Includes" + "hidden": { + "type": "boolean" }, - "excludes": { - "$ref": "#/components/schemas/Excludes" + "apiAlias": { + "type": "string", + "enum": [ + "cookie_entry" + ] } - } - }, - "Associations": { - "type": "object", - "additionalProperties": { - "$ref": "#/components/schemas/Criteria" - } + }, + "required": [ + "cookie", + "hidden", + "apiAlias" + ] }, - "Includes": { + "ContextMeasurementSystemInfo": { "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" + "description": "Configuration of the measurement system used in the store, by default including units for length and weight.", + "properties": { + "system": { + "type": "string", + "enum": [ + "metric", + "imperial" + ], + "default": "metric", + "description": "The measurement system used in the store. 'metric' for metric system, 'imperial' for imperial system." + }, + "units": { + "type": "object", + "description": "Units used in the measurement system.", + "properties": { + "length": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm", + "description": "Unit of length." + }, + "weight": { + "type": "string", + "enum": [ + "g", + "kg", + "oz", + "lb" + ], + "default": "kg", + "description": "Unit of weight." + } + } } } }, - "Excludes": { + "ListPrice": { "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "Aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" - }, - { - "title": "AggregationEntity", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationEntity" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] - }, - { - "title": "AggregationFilter", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationFilter" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "description": "", + "properties": { + "discount": { + "type": "number" }, - { - "title": "AggregationTerms", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationTerms" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "percentage": { + "type": "number" }, - { - "title": "AggregationHistogram", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationHistogram" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } - ] + "price": { + "type": "number" }, - { - "title": "AggregationRange", - "allOf": [ - { - "$ref": "#/components/schemas/AggregationRange" - }, - { - "$ref": "#/components/schemas/SubAggregations" - } + "apiAlias": { + "type": "string", + "enum": [ + "cart_list_price" ] } + }, + "required": [ + "apiAlias" ] }, - "SubAggregations": { + "ProductListingFlags": { "type": "object", + "description": "Additional flags for product listings", "properties": { - "aggregation": { - "anyOf": [ - { - "$ref": "#/components/schemas/AggregationMetrics" - }, - { - "$ref": "#/components/schemas/AggregationEntity" - }, + "no-aggregations": { + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "oneOf": [ { - "$ref": "#/components/schemas/AggregationFilter" + "type": "string" }, { - "$ref": "#/components/schemas/AggregationTerms" - }, + "type": "null" + } + ] + }, + "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.", + "oneOf": [ { - "$ref": "#/components/schemas/AggregationHistogram" + "type": "string" }, { - "$ref": "#/components/schemas/AggregationRange" + "type": "null" } ] } } }, - "TotalCountMode": { - "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" - ] - }, - "Query": { + "CartListPrice": { "type": "object", + "description": "", "properties": { - "score": { + "discount": { "type": "number" }, - "query": { - "oneOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "additionalProperties": true - }, - "Sort": { - "type": "object", - "properties": { - "field": { - "type": "string" + "percentage": { + "type": "number" }, - "order": { + "price": { + "type": "number" + }, + "apiAlias": { "type": "string", "enum": [ - "ASC", - "DESC" + "cart_list_price" ] - }, - "naturalSorting": { - "type": "boolean" - }, - "type": { - "type": "string" } }, "required": [ - "field", - "order" + "apiAlias" ] }, - "Filters": { - "type": "array", - "items": { - "anyOf": [ - { - "$ref": "#/components/schemas/SimpleFilter" - }, - { - "$ref": "#/components/schemas/EqualsFilter" - }, - { - "$ref": "#/components/schemas/MultiNotFilter" - }, - { - "$ref": "#/components/schemas/RangeFilter" - } - ] - } - }, - "SimpleFilter": { - "type": "object", + "CustomerAddressBody": { + "description": "Added since version: 6.0.0.0", + "required": [ + "countryId", + "firstName", + "lastName", + "city", + "street" + ], "properties": { - "type": { + "countryId": { "type": "string", - "enum": [ - "contains", - "equalsAny", - "prefix", - "suffix" - ] + "pattern": "^[0-9a-f]{32}$" }, - "field": { + "countryStateId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "salutationId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { "type": "string" }, - "value": { + "lastName": { + "type": "string" + }, + "zipcode": { + "type": "string" + }, + "city": { + "type": "string" + }, + "company": { + "type": "string" + }, + "street": { + "type": "string" + }, + "department": { + "type": "string" + }, + "title": { + "type": "string" + }, + "phoneNumber": { + "type": "string" + }, + "additionalAddressLine1": { "type": "string" + }, + "additionalAddressLine2": { + "type": "string" + }, + "customFields": { + "type": "object" + }, + "country": { + "$ref": "#/components/schemas/Country" + }, + "countryState": { + "$ref": "#/components/schemas/CountryState" + }, + "salutation": { + "$ref": "#/components/schemas/Salutation" } }, - "required": [ - "type", - "field", - "value" - ] + "type": "object" }, - "EqualsFilter": { + "OrderRouteResponse": { "type": "object", "properties": { - "type": { - "type": "string", - "enum": [ - "equals" - ] - }, - "field": { - "type": "string" - }, - "value": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "number" - }, + "orders": { + "type": "object", + "allOf": [ { - "type": "boolean" + "type": "object", + "required": [ + "elements" + ], + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Order" + } + } + } }, { - "type": "null" + "$ref": "#/components/schemas/EntitySearchResult" } ] - } - }, - "required": [ - "type", - "field", - "value" - ] - }, - "MultiNotFilter": { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "multi", - "not" - ] - }, - "operator": { - "type": "string", - "enum": [ - "and", - "or", - "nor", - "nand" - ] }, - "queries": { - "$ref": "#/components/schemas/Filters" + "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" + } } }, "required": [ - "type", - "operator", - "queries" + "orders" ] }, - "RangeFilter": { + "WishlistLoadRouteResponse": { "type": "object", + "required": [ + "products" + ], "properties": { - "type": { - "type": "string", - "enum": [ - "range" - ] - }, - "field": { - "type": "string" - }, - "parameters": { + "wishlist": { "type": "object", "properties": { - "gte": { - "type": "number" - }, - "gt": { - "type": "number" - }, - "lte": { - "type": "number" + "customerId": { + "type": "string", + "description": "Unique identity of the customer." }, - "lt": { - "type": "number" + "salesChannelId": { + "type": "string", + "description": "Unique identity of the sales channel." } } + }, + "products": { + "$ref": "#/components/schemas/ProductListingResult" } - }, - "required": [ - "type", - "field", - "parameters" - ] + } }, - "CustomerAddressRead": { + "CookieRouteResponse": { "type": "object", + "description": "Response containing cookie groups and their configuration hash.", "properties": { - "id": { + "apiAlias": { "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true + "enum": [ + "cookie_groups_hash" + ] }, - "customerId": { - "type": "string", - "pattern": "^[0-9a-f]{32}$", - "readOnly": true + "elements": { + "type": "array", + "description": "Collection of cookie groups", + "items": { + "$ref": "#/components/schemas/CookieGroup" + } + }, + "hash": { + "type": "string", + "description": "Hash of the current cookie configuration. Can be used to detect changes in cookie configuration.", + "example": "f86b6a872cb83dbd22d838ceda1aa3d4" + }, + "languageId": { + "type": "string", + "format": "uuid", + "description": "The language ID for which the cookie configuration was generated. Used to store hashes per language.", + "example": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" + } + }, + "required": [ + "elements", + "hash", + "languageId", + "apiAlias" + ], + "example": { + "apiAlias": "cookie_groups_hash", + "elements": [ + { + "isRequired": true, + "description": "Cookies required for this shop to function:", + "name": "Technically required", + "entries": [ + { + "name": "Session", + "hidden": false, + "cookie": "session-", + "apiAlias": "cookie_entry" + }, + { + "name": "Timezone", + "hidden": false, + "cookie": "timezone", + "apiAlias": "cookie_entry" + }, + { + "value": "1", + "expiration": 30, + "name": "Cookie preferences", + "hidden": true, + "cookie": "cookie-preference", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + }, + { + "isRequired": false, + "description": "Cookies used for statistics and shop performance metrics.", + "name": "Statistics", + "entries": [ + { + "value": "1", + "expiration": 30, + "name": "Google Analytics", + "hidden": false, + "cookie": "google-analytics-enabled", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + }, + { + "isRequired": false, + "description": "Allows Google to collect personal data for online advertising and marketing.", + "name": "Marketing", + "entries": [ + { + "value": "1", + "expiration": 30, + "name": "Google Advertising", + "hidden": false, + "cookie": "google-ads-enabled", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + }, + { + "isRequired": false, + "name": "Comfort features", + "entries": [ + { + "value": "1", + "expiration": 30, + "name": "YouTube video", + "hidden": false, + "cookie": "youtube-video", + "apiAlias": "cookie_entry" + } + ], + "apiAlias": "cookie_group" + } + ], + "hash": "f86b6a872cb83dbd22d838ceda1aa3d4", + "languageId": "2fbb5fe2e29a4d70aa5854ce7ce3e20b" + } + }, + "NavigationRouteResponse": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" + }, + "properties": { + "id": { + "description": "Unique identity of navigation route response." + } + } + }, + "EntitySearchResult": { + "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." + } + } + }, + "CartError": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "properties": { + "key": { + "type": "string" + }, + "level": { + "type": "number", + "enum": [ + 0, + 10, + 20 + ], + "description": "* `0` - notice,\n* `10` - warning,\n* `20` - error" + }, + "message": { + "type": "string" + }, + "messageKey": { + "type": "string" + } + }, + "required": [ + "key", + "level", + "message", + "messageKey" + ] + }, + "CustomerAddressRead": { + "type": "object", + "properties": { + "id": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true + }, + "customerId": { + "type": "string", + "pattern": "^[0-9a-f]{32}$", + "readOnly": true }, "createdAt": { "type": "string", @@ -15862,747 +15464,1076 @@ "salutation" ] }, - "ProductMeasurements": { - "type": "object", - "description": "Runtime field, cannot be used as part of the criteria. Measurements of a product, including dimensions and weight.", - "properties": { - "width": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" - }, - "value": { - "type": "number" - } - } + "ProductListingCriteria": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" }, - "height": { + { "type": "object", + "description": "Additional search parameters for product listings", "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" + "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" }, - "value": { - "type": "number" - } - } - }, - "length": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "mm", - "cm", - "m", - "in", - "ft" - ], - "default": "mm" + "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 }, - "value": { - "type": "number" - } - } - }, - "weight": { - "type": "object", - "properties": { - "unit": { - "type": "string", - "enum": [ - "g", - "kg", - "oz", - "lb" - ], - "default": "kg" + "p": { + "description": "Search result page", + "type": "integer", + "default": 1 }, - "value": { - "type": "number" - } - } - } - } - }, - "AccountNewsletterRecipient": { - "type": "object", - "properties": { - "status": { - "type": "string", - "enum": [ - "undefined", - "notSet", - "direct", - "optIn", - "optOut" - ] - }, - "apiAlias": { - "type": "string", - "enum": [ - "account_newsletter_recipient" - ] - } - }, - "required": [ - "status", - "apiAlias" - ] - }, - "AccountNewsletterRecipientResult": { - "properties": { - "status": { - "description": "Status indicates if the customer has subscribed to the news letter or not." - } - } - }, - "OrderProductWarehouse": { - "properties": { - "id": { - "description": "Unique identity of order's product warehouse." - } - } - }, - "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." + "manufacturer": { + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "type": "string" }, - "totalPrice": { - "description": "Gross price of the product." + "min-price": { + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "type": "integer", + "minimum": 0, + "default": 0 }, - "calculatedTaxes": { - "description": "Contains calculated tax on order delivery price." + "max-price": { + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "type": "integer", + "minimum": 0, + "default": 0 }, - "taxRules": { - "description": "Pricing based on multiple taxes." + "rating": { + "description": "Filter products with a minimum average rating.", + "type": "integer" }, - "positionPrice": { - "description": "Price of each line item in the cart multiplied by its quantity excluding charges like shipping cost, rules, taxes etc." + "shipping-free": { + "description": "Filters products that are marked as shipping-free.", + "type": "boolean", + "default": false }, - "rawTotal": { - "description": "The total value before rounding off." + "properties": { + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "type": "string" }, - "taxStatus": { - "description": "TaxStatus takes `Free`, `Net` or `Gross` as values." - } - } - }, - "shippingCosts": { - "properties": { - "unitPrice": { - "description": "Shipping cost of product per item (where, quantity=1)." + "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 }, - "totalPrice": { - "description": "Shipping cost of product based on quantity." + "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 }, - "quantity": { - "description": "Number of items of each product." + "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 }, - "calculatedTaxes": { - "description": "Contains calculated taxes based on shipping costs/methods." + "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 }, - "taxRules": { - "description": "Pricing based on multiple taxes." + "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 }, - "referencePrice": { - "description": "Original cost price of the product." + "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" }, - "listPrice": { - "properties": { - "price": { - "description": "Price of each line item." - }, - "discount": { - "description": "Absolute discount on each line item." + "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.", + "oneOf": [ + { + "type": "string" }, - "percentage": { - "description": "Discount in percentage." + { + "type": "null" } - } + ] + } + } + } + ], + "properties": { + "filter": { + "properties": { + "type": { + "description": "To filter the results and aggregations with filter types like ==, >=, etc." }, - "regulationPrice": { - "properties": { - "price": { - "description": "Contains cheapest price from last 30 days as per EU law." - } - } + "field": { + "description": "To filter the results and aggregations by field like an property identifier." + }, + "value": { + "description": "To filter the results and aggregations by value." } } }, - "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." + "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." + } + } }, - "amountNet": { - "description": "Net price of the order." + "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." + } + } } } }, - "OrderReturnLineItem": { + "Cart": { + "type": "object", "properties": { - "id": { - "description": "Unique identity of order return line item." + "name": { + "description": "Name of the cart - for example `guest-cart`", + "type": "string" }, - "versionId": { - "description": "Unique identity of order return line item's version." + "token": { + "description": "Context token identifying the cart and the user session", + "type": "string" }, - "orderReturnId": { - "description": "Unique identity of order return." + "price": { + "$ref": "#/components/schemas/CalculatedPrice" }, - "orderReturnVersionId": { - "description": "Unique identity of order return version." + "lineItems": { + "description": "All items within the cart", + "type": "array", + "items": { + "$ref": "#/components/schemas/LineItem" + } }, - "orderLineItemId": { - "description": "Unique identity of order line item." + "errors": { + "type": "object", + "description": "A list of all cart errors, such as insufficient stocks, invalid addresses or vouchers.", + "anyOf": [ + { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartError" + } + }, + { + "type": "object", + "additionalProperties": { + "type": "object", + "properties": { + "code": { + "type": "number" + }, + "key": { + "type": "string" + }, + "level": { + "type": "number" + }, + "message": { + "type": "string" + }, + "messageKey": { + "type": "string" + } + }, + "required": [ + "code", + "key", + "level", + "message", + "messageKey" + ] + } + } + ], + "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." + } + } }, - "orderLineItemVersionId": { - "description": "Unique identity of order line items's version." + "deliveries": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CartDelivery" + } }, - "reasonId": { - "description": "Unique identity of reason for return." + "transactions": { + "description": "A list of all payment transactions associated with the current cart.", + "type": "array", + "items": { + "type": "object", + "properties": { + "paymentMethodId": { + "type": "string" + }, + "amount": { + "$ref": "#/components/schemas/CalculatedPrice" + } + } + }, + "properties": { + "paymentMethodId": { + "description": "Unique identity of payment method." + } + } }, - "quantity": { - "description": "Number of line items returned." + "modified": { + "type": "boolean", + "description": "It signifies any changes to cart." }, - "refundAmount": { - "description": "Amount to be refunded." + "customerComment": { + "description": "A comment that can be added to the cart.", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "restockQuantity": { - "description": "Update of stock quantity after the return of certain line items are initiated." + "affiliateCode": { + "description": "An affiliate tracking code", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "customFields": { - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." + "campaignCode": { + "description": "A campaign tracking code", + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] }, - "stateId": { - "description": "Unique identity of state." + "apiAlias": { + "type": "string", + "enum": [ + "cart" + ] + }, + "id": { + "description": "Unique identity of cart." } + }, + "required": [ + "price", + "apiAlias" + ] + }, + "Association": { + "additionalProperties": { + "$ref": "#/components/schemas/Association" } }, - "OrderReturnLineItemReason": { + "ProductMeasurements": { + "type": "object", + "description": "Runtime field, cannot be used as part of the criteria. Measurements of a product, including dimensions and weight.", "properties": { - "id": { - "description": "Unique identity for reason of return." + "width": { + "type": "object", + "properties": { + "unit": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm" + }, + "value": { + "type": "number" + } + } }, - "reasonKey": { - "description": "Unique key associated with reason for the order return. " + "height": { + "type": "object", + "properties": { + "unit": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm" + }, + "value": { + "type": "number" + } + } }, - "content": { - "description": "Description of the reason of return." + "length": { + "type": "object", + "properties": { + "unit": { + "type": "string", + "enum": [ + "mm", + "cm", + "m", + "in", + "ft" + ], + "default": "mm" + }, + "value": { + "type": "number" + } + } }, - "translated": { - "description": "Contains the translations of all translated fields." - } - } - }, - "OrderWarehouseGroup": { - "properties": { - "id": { - "description": "Unique identity of order warehouse group." + "weight": { + "type": "object", + "properties": { + "unit": { + "type": "string", + "enum": [ + "g", + "kg", + "oz", + "lb" + ], + "default": "kg" + }, + "value": { + "type": "number" + } + } } } }, - "ProductReviewSummary": { + "CalculatedPrice": { + "type": "object", + "description": "Represents a product along with detailed information required to display a variant selection.", "properties": { - "id": { - "description": "Unique identity of products's review summary." - }, - "productId": { - "description": "Unique identity of products." + "unitPrice": { + "type": "number" }, - "salesChannelId": { - "description": "Unique identity of sales channel." + "quantity": { + "type": "number" }, - "summary": { - "description": "Unique identity of products's review summary." + "rawTotal": { + "type": "number" }, - "visible": { - "description": "When boolean value is `true`, the review is displayed to the customer." + "totalPrice": { + "type": "number" }, - "translated": { - "description": "Contains the translations of all translated fields." - } - } - }, - "ProductWarehouse": { - "properties": { - "id": { - "description": "Unique identity of warehouse of product." - } - } - }, - "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." + "taxStatus": { + "type": "string", + "enum": [ + "net", + "tax-free" + ] }, - "subscriptionIntervalName": { - "description": "Unique name for subscription interval." + "calculatedTaxes": { + "type": "array", + "items": { + "type": "object", + "properties": { + "apiAlias": { + "type": "string", + "enum": [ + "cart_tax_calculated" + ] + }, + "tax": { + "type": "number" + }, + "taxRate": { + "type": "number" + }, + "price": { + "type": "number" + } + }, + "required": [ + "apiAlias", + "tax", + "taxRate", + "price" + ] + } }, - "dateInterval": { - "description": "Relative interval data. For example, `every 3 days`, `every 2 months`, etc." + "referencePrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartPriceReference" + }, + { + "type": "null" + } + ] }, - "cronInterval": { - "description": "Absolute interval data. For example, `only on January`, `only on Mondays`, etc." + "listPrice": { + "oneOf": [ + { + "$ref": "#/components/schemas/CartListPrice" + }, + { + "type": "null" + } + ] }, - "billingAddressId": { - "description": "Unique identity of billing address." + "positionPrice": { + "type": "number" }, - "shippingAddressId": { - "description": "Unique identity of shipping address." + "netPrice": { + "type": "number" }, - "shippingMethodId": { - "description": "Unique identity of shipping method." + "regulationPrice": { + "oneOf": [ + { + "type": "object", + "properties": { + "price": { + "type": "number" + }, + "apiAlias": { + "type": "string", + "enum": [ + "cart_regulation_price" + ] + } + } + }, + { + "type": "null" + } + ] }, - "paymentMethodId": { - "description": "Unique identity of payment method." + "hasRange": { + "type": "boolean" }, - "currencyId": { - "description": "Unique identity of currency." + "variantId": { + "oneOf": [ + { + "type": "string", + "format": "^[0-9a-f]{32}$" + }, + { + "type": "null" + } + ] }, - "languageId": { - "description": "Unique identity of language." + "apiAlias": { + "type": "string", + "enum": [ + "calculated_price" + ] }, - "customFields": { - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." + "taxRules": { + "type": "array", + "description": "Currently active tax rules and/or rates", + "items": { + "type": "object", + "properties": { + "taxRate": { + "type": "number", + "format": "float" + }, + "name": { + "type": "string" + } + } + } } + }, + "required": [ + "apiAlias", + "hasRange", + "regulationPrice", + "listPrice", + "referencePrice", + "calculatedTaxes", + "totalPrice", + "quantity", + "unitPrice", + "positionPrice", + "netPrice", + "taxRules", + "rawTotal", + "taxStatus" + ] + }, + "BreadcrumbCollection": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Breadcrumb" } }, - "SubscriptionAddress": { + "AccountNewsletterRecipientResult": { + "properties": { + "status": { + "description": "Status indicates if the customer has subscribed to the news letter or not." + } + } + }, + "OrderProductWarehouse": { "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." - }, - "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. " + "description": "Unique identity of order's product warehouse." } } }, - "SubscriptionCustomer": { + "OrderReturn": { "properties": { "id": { - "description": "Unique identity of subscription customer." + "description": "Unique identity of order return." }, - "customerId": { - "description": "Unique identity of the customer." + "versionId": { + "description": "Unique identity of order return's version." }, - "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." + "orderId": { + "description": "Unique identity of order." }, - "vatId": { - "description": "Unique identity of VAT." + "orderVersionId": { + "description": "Unique identity of order return version." }, - "customFields": { - "description": "Additional fields that offer a possibility to add own fields for the different program-areas." - } - } - }, - "SubscriptionInterval": { - "properties": { - "id": { - "description": "Unique identity of subscription interval." + "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." + } + } }, - "name": { - "description": "Name of the subscription interval." + "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." + } + } + } + } }, - "active": { - "description": "When `true`, the defined subscription interval is available for selection in storefront." + "stateId": { + "description": "Unique identity of state." }, - "dateInterval": { - "description": "Relative interval data. For example, `every 3 days`, `every 2 months`, etc." + "returnNumber": { + "description": "Reference number for returning order." }, - "cronInterval": { - "description": "Absolute interval data. For example, `only on January`, `only on Mondays`, etc." + "requestedAt": { + "description": "Date and time when the order return was requested." }, - "availabilityRuleId": { - "description": "Unique identity of rule." + "amountTotal": { + "description": "Gross price of the order." }, - "translated": { - "description": "Contains the translations of all translated fields." + "amountNet": { + "description": "Net price of the order." } } }, - "SubscriptionPlan": { + "OrderReturnLineItem": { "properties": { "id": { - "description": "Unique identity of subscription plan." - }, - "name": { - "description": "Name of the subscription plan." + "description": "Unique identity of order return line item." }, - "description": { - "description": "A short description about the subscription plan." + "versionId": { + "description": "Unique identity of order return line item's version." }, - "active": { - "description": "When `true`, the subscription plan is available for selection in storefront." + "orderReturnId": { + "description": "Unique identity of order return." }, - "activeStorefrontLabel": { - "description": "When boolean value id `true`, the label overrides the plan name." + "orderReturnVersionId": { + "description": "Unique identity of order return version." }, - "availabilityRuleId": { - "description": "Unique identity of rule." + "orderLineItemId": { + "description": "Unique identity of order line item." }, - "label": { - "description": "Label that can overwrite the active plan name. " + "orderLineItemVersionId": { + "description": "Unique identity of order line items's version." }, - "translated": { - "description": "Contains the translations of all translated fields." - } - } - }, - "SubscriptionPlanIntervalMapping": { - "properties": { - "id": { - "description": "Unique identity of subscription plan interval mapping." + "reasonId": { + "description": "Unique identity of reason for return." }, - "subscriptionIntervalId": { - "description": "Unique identity of subscription interval." + "quantity": { + "description": "Number of line items returned." }, - "subscriptionPlanId": { - "description": "Unique identity of subscription plan." - } - } - }, - "SubscriptionPlanProductMapping": { - "properties": { - "id": { - "description": "Unique identity of subscription plan for product mapping." + "refundAmount": { + "description": "Amount to be refunded." }, - "productId": { - "description": "Unique identity of product." + "restockQuantity": { + "description": "Update of stock quantity after the return of certain line items are initiated." }, - "productVersionId": { - "description": "Unique identity of product's version." + "customFields": { + "description": "Additional fields that offer a possibility to add own fields for the different program-areas." }, - "subscriptionPlanId": { - "description": "Unique identity of subscription plan." + "stateId": { + "description": "Unique identity of state." } } }, - "SubscriptionTagMapping": { + "OrderReturnLineItemReason": { "properties": { "id": { - "description": "Unique identity of subscription tag." - }, - "subscriptionId": { - "description": "Unique identity of subscription." + "description": "Unique identity for reason of return." }, - "tagId": { - "description": "Unique identity of subscription tag." - } - } - }, - "SwagDelayAction": { - "properties": { - "id": { - "description": "Unique identity of swag delay action for flow builder" + "reasonKey": { + "description": "Unique key associated with reason for the order return. " }, - "orderId": { - "description": "Unique identity of order." + "content": { + "description": "Description of the reason of return." }, - "customerId": { - "description": "Unique identity of customer." - } - } - }, - "Warehouse": { - "properties": { - "id": { - "description": "Unique identity of warehouse." + "translated": { + "description": "Contains the translations of all translated fields." } } }, - "WarehouseGroup": { + "OrderWarehouseGroup": { "properties": { "id": { - "description": "Unique identity of warehouse group." + "description": "Unique identity of order warehouse group." } } }, - "CustomPrice": { + "ProductReviewSummary": { "properties": { "id": { - "description": "Unique identity of the custom price." + "description": "Unique identity of products's review summary." }, "productId": { - "description": "Unique identity of the product." + "description": "Unique identity of products." }, - "productVersionId": { - "description": "Unique identity of the product's version." + "salesChannelId": { + "description": "Unique identity of sales channel." }, - "customerId": { - "description": "Unique identity of the customer." + "summary": { + "description": "Unique identity of products's review summary." }, - "customerGroupId": { - "description": "Unique identity of the customer's group." + "visible": { + "description": "When boolean value is `true`, the review is displayed to the customer." }, - "price": { - "description": "Detailed information of price." + "translated": { + "description": "Contains the translations of all translated fields." } } }, - "CustomerSpecificFeatures": { + "ProductWarehouse": { "properties": { "id": { - "description": "Unique identity of the customer specific features." - }, - "customerId": { - "description": "Unique identity of the customer." + "description": "Unique identity of warehouse of product." } } }, - "MediaAiTag": { + "Subscription": { "properties": { "id": { - "description": "Unique identity of the AI media tag." + "description": "Unique identity of subscription." }, - "tag": { - "description": "Tag that indicates if the media is made by AI or not." + "convertedOrder": { + "description": "An array loaded with persistent information related to cart data." }, - "translated": { - "description": "Contains the translations of all translated fields." + "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." } } - } - }, - "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." - } - ] - } + }, + "SubscriptionAddress": { + "properties": { + "id": { + "description": "Unique identity of subscription address." }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "404", - "title": "Not Found", - "description": "Resource with given parameter was not found." - } - ] - } + "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." + }, + "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. " } } }, - "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." - } - ] - } + "SubscriptionCustomer": { + "properties": { + "id": { + "description": "Unique identity of subscription customer." }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "403", - "title": "Forbidden", - "description": "This operation is restricted to logged in users." - } - ] - } + "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." } } }, - "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." - } - ] - } + "SubscriptionInterval": { + "properties": { + "id": { + "description": "Unique identity of subscription interval." }, - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ - { - "status": "401", - "title": "Unauthorized", - "description": "Authorization information is missing or invalid." - } - ] - } + "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." } } }, - "400": { - "description": "Bad Request", - "content": { - "application/vnd.api+json": { - "schema": { - "$ref": "#/components/schemas/failure" - }, - "example": { - "errors": [ + "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." + } + } + }, + "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." + } + } + }, + "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." + } + } + }, + "SubscriptionTagMapping": { + "properties": { + "id": { + "description": "Unique identity of subscription tag." + }, + "subscriptionId": { + "description": "Unique identity of subscription." + }, + "tagId": { + "description": "Unique identity of subscription tag." + } + } + }, + "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." + } + } + }, + "Warehouse": { + "properties": { + "id": { + "description": "Unique identity of warehouse." + } + } + }, + "WarehouseGroup": { + "properties": { + "id": { + "description": "Unique identity of warehouse group." + } + } + }, + "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." + } + } + }, + "CustomerSpecificFeatures": { + "properties": { + "id": { + "description": "Unique identity of the customer specific features." + }, + "customerId": { + "description": "Unique identity of the customer." + } + } + }, + "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." + } + } + } + }, + "responses": { + "404": { + "description": "Not Found", + "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." + "status": "404", + "title": "Not Found", + "description": "Resource with given parameter was not found." } ] } @@ -16614,79 +16545,153 @@ "example": { "errors": [ { - "status": "400", - "title": "Bad Request", - "description": "Bad parameters for this endpoint. See documentation for the correct ones." + "status": "404", + "title": "Not Found", + "description": "Resource with given parameter was not found." } ] } } } }, - "204": { - "description": "No Content" - }, - "ProductListResponse": { - "description": "Entity search result containing products", + "403": { + "description": "Forbidden", "content": { - "application/json": { + "application/vnd.api+json": { "schema": { - "allOf": [ + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ { - "required": [ - "elements" - ], - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Product" - } - } - }, - "type": "object" - }, + "status": "403", + "title": "Forbidden", + "description": "This operation is restricted to logged in users." + } + ] + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ { - "$ref": "#/components/schemas/EntitySearchResult" + "status": "403", + "title": "Forbidden", + "description": "This operation is restricted to logged in users." } ] } } } }, - "CategoryListResponse": { - "description": "Entity search result containing categories.", + "401": { + "description": "Unauthorized", "content": { - "application/json": { + "application/vnd.api+json": { "schema": { - "allOf": [ + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ { - "type": "object", - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Category" - } - } - } - }, + "status": "401", + "title": "Unauthorized", + "description": "Authorization information is missing or invalid." + } + ] + } + }, + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ { - "$ref": "#/components/schemas/EntitySearchResult" + "status": "401", + "title": "Unauthorized", + "description": "Authorization information is missing or invalid." } ] } } } }, - "OpenApi3": { - "description": "Returns information about the store API.", + "400": { + "description": "Bad Request", "content": { - "application/json": { + "application/vnd.api+json": { "schema": { - "properties": { - "openapi": { - "type": "string" + "$ref": "#/components/schemas/failure" + }, + "example": { + "errors": [ + { + "status": "400", + "title": "Bad Request", + "description": "Bad parameters for this endpoint. See documentation for the correct ones." + } + ] + } + }, + "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." + } + ] + } + } + } + }, + "204": { + "description": "No Content" + }, + "LanguageListResponse": { + "description": "Entity search result containing languages.", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Language" + } + } + }, + "required": [ + "elements" + ], + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + }, + "OpenApi3": { + "description": "Returns information about the store API.", + "content": { + "application/json": { + "schema": { + "properties": { + "openapi": { + "type": "string" }, "info": { "type": "object", @@ -16868,7 +16873,7 @@ } } }, - "CountryStateListResponse": { + "CountryListResponse": { "description": "Entity search result containing countries.", "content": { "application/json": { @@ -16879,7 +16884,7 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/CountryState" + "$ref": "#/components/schemas/Country" } } }, @@ -16893,38 +16898,82 @@ } } }, - "CurrencyListResponse": { - "description": "Entity search result containing currencies.", + "CategoryListResponse": { + "description": "Entity search result containing categories.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Currency" + "allOf": [ + { + "type": "object", + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Category" + } + } + } + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + }, + "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" + } + } + }, + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redirectUrl": { + "description": "Define the URL which browser will be redirected to", + "type": "string" + } } } } } }, - "SeoUrlListResponse": { - "description": "Entity search result containing seo urls.", + "ShippingMethodListResponse": { + "description": "Entity search result containing shipping methods.", "content": { "application/json": { "schema": { "allOf": [ { + "required": [ + "elements" + ], "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", + "type": "object" + }, "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/SeoUrl" + "$ref": "#/components/schemas/ShippingMethod" } } }, - "type": "object", - "required": [ - "elements" - ] + "type": "object" }, { "$ref": "#/components/schemas/EntitySearchResult" @@ -16960,33 +17009,38 @@ } } }, - "ShippingMethodListResponse": { - "description": "Entity search result containing shipping methods.", + "CurrencyListResponse": { + "description": "Entity search result containing currencies.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Currency" + } + } + } + } + }, + "SeoUrlListResponse": { + "description": "Entity search result containing seo urls.", "content": { "application/json": { "schema": { "allOf": [ { - "required": [ - "elements" - ], "properties": { - "total": { - "description": "Total amount", - "type": "integer" - }, - "aggregations": { - "description": "aggregation result", - "type": "object" - }, "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/ShippingMethod" + "$ref": "#/components/schemas/SeoUrl" } } }, - "type": "object" + "type": "object", + "required": [ + "elements" + ] }, { "$ref": "#/components/schemas/EntitySearchResult" @@ -17021,42 +17075,21 @@ } } }, - "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" - } - } - }, - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redirectUrl": { - "description": "Define the URL which browser will be redirected to", - "type": "string" - } - } - } - } - } - }, - "CountryListResponse": { - "description": "Entity search result containing countries.", + "ProductListResponse": { + "description": "Entity search result containing products", "content": { "application/json": { "schema": { "allOf": [ { + "required": [ + "elements" + ], "properties": { "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/Country" + "$ref": "#/components/schemas/Product" } } }, @@ -17070,8 +17103,8 @@ } } }, - "LanguageListResponse": { - "description": "Entity search result containing languages.", + "CountryStateListResponse": { + "description": "Entity search result containing countries.", "content": { "application/json": { "schema": { @@ -17081,13 +17114,10 @@ "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/Language" + "$ref": "#/components/schemas/CountryState" } } }, - "required": [ - "elements" - ], "type": "object" }, { @@ -17120,38 +17150,6 @@ "default": "application/json" } }, - "noAggregations": { - "name": "no-aggregations", - "in": "query", - "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", - "required": false, - "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "onlyAggregations": { - "name": "only-aggregations", - "in": "query", - "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.", - "required": false, - "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, "criteriaPage": { "name": "page", "in": "query", @@ -17348,1020 +17346,282 @@ "format": "base64url", "example": "H4sIAAAAAAAAA6tWykpNzFGyqlbKz8lPTSxRslJKSi0pzSsFAGcQr7sHAAAA" } - } - }, - "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": { - "/currency": { - "post": { - "tags": [ - "System & Context", - "Endpoints supporting Criteria " - ], - "summary": "Fetch currencies", - "description": "Perform a filtered search for currencies.", - "operationId": "readCurrency", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" - } - } - ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/NoneFieldsCriteria" - } - ] - } - } - } - }, - "responses": { - "200": { - "$ref": "#/components/responses/CurrencyListResponse" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - }, - "get": { - "tags": [ - "System & Context", - "Endpoints supporting Criteria " - ], - "summary": "Fetch currencies", - "description": "Perform a filtered search for currencies.", - "operationId": "readCurrencyGet", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "$ref": "#/components/parameters/criteriaPage" - }, - { - "$ref": "#/components/parameters/criteriaLimit" - }, - { - "$ref": "#/components/parameters/criteriaTerm" - }, - { - "$ref": "#/components/parameters/criteriaFilter" - }, - { - "$ref": "#/components/parameters/criteriaIds" - }, - { - "$ref": "#/components/parameters/criteriaQuery" - }, - { - "$ref": "#/components/parameters/criteriaAssociations" - }, - { - "$ref": "#/components/parameters/criteriaPostFilter" - }, - { - "$ref": "#/components/parameters/criteriaSort" - }, - { - "$ref": "#/components/parameters/criteriaAggregations" - }, - { - "$ref": "#/components/parameters/criteriaGrouping" - }, - { - "$ref": "#/components/parameters/criteriaTotalCountMode" - }, - { - "$ref": "#/components/parameters/criteriaIncludes" - }, - { - "$ref": "#/components/parameters/criteriaExcludes" - }, - { - "$ref": "#/components/parameters/CompressedNoneFieldsCriteria" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/CurrencyListResponse" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/customer-group-registration/config/{customerGroupId}": { - "get": { - "tags": [ - "Login & Registration" - ], - "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}$" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], - "responses": { - "200": { - "description": "Returns the customer group including registration settings.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomerGroup" - } - } - } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/script/{hook}": { - "get": { - "tags": [ - "API", - "Script", - "App" - ], - "summary": "Access point for different api logics which are provided by apps over script hooks", - "operationId": "getScriptStoreApiRoute", - "parameters": [ - { - "name": "hook", - "in": "path", - "description": "Dynamic hook which used to build the hook name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "Returns different structures of results based on the called script.", - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "additionalProperties": true - }, - { - "type": "null" - } - ] - } - }, - "application/vnd.api+json": { - "schema": { - "oneOf": [ - { - "type": "object", - "additionalProperties": true - }, - { - "type": "null" - } - ] - } - } - } - }, - "204": { - "description": "No data by default" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - }, - "post": { - "tags": [ - "API", - "Script", - "App" - ], - "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" - } - } - ], - "responses": { - "200": { - "description": "Returns different structures of results based on the called script.", - "content": { - "application/json": { - "schema": { - "oneOf": [ - { - "type": "object", - "additionalProperties": true - }, - { - "type": "null" - } - ] - } - }, - "application/vnd.api+json": { - "schema": { - "oneOf": [ - { - "type": "object", - "additionalProperties": true - }, - { - "type": "null" - } - ] - } - } - } - }, - "204": { - "description": "No data by default" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/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" - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AccountNewsletterRecipient" - } - } - } - } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ], - "parameters": [ - { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" - } - } - ] - } - }, - "/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": { - "type": "object", - "required": [ - "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" - }, - "birthdayDay": { - "description": "Birthday day", - "type": "integer" - }, - "birthdayMonth": { - "description": "Birthday month", - "type": "integer" - }, - "birthdayYear": { - "description": "Birthday year", - "type": "integer" - } - }, - "oneOf": [ - { - "properties": { - "accountType": { - "description": "Type of the customer account. Default value is 'private'.", - "type": "string", - "enum": [ - "private" - ], - "default": "private" - }, - "company": { - "type": "null" - }, - "vatIds": { - "type": "null" - } - } - }, - { - "required": [ - "accountType", - "company", - "vatIds" - ], - "properties": { - "accountType": { - "description": "Type of the customer account. Can be `private` or `business`.", - "type": "string", - "enum": [ - "business" - ] - }, - "company": { - "description": "Company of the customer. Only required when `accountType` is `business`.", - "type": "string" - }, - "vatIds": { - "description": "VAT IDs of the customer's company. Only valid when `accountType` is `business`.", - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1 - } - } - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "Returns a success response indicating a successful update", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" - } - } - } - } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ] - } - }, - "/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" - } - } - } - } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ] - } - }, - "/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" - } - } - } - }, - "responses": { - "200": { - "description": "Returns a success response indicating a successful update", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" - } - } - } - } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ] - } - }, - "/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" - } - } - } - }, - "responses": { - "200": { - "description": "Returns a success response indicating a successful update.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" - } - } - } - } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ] - } - }, - "/account/convert-guest": { - "post": { - "tags": [ - "Profile" - ], - "summary": "Convert a guest customer to a registered customer", - "description": "Takes a password to convert a guest customer to a registered customer. The customer can then log in with the provided password in the future.", - "operationId": "convertGuest", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "password" - ], - "properties": { - "password": { - "description": "New Password for the customer", - "type": "string" - } - }, - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Returns a success response indicating a successful update.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" - } - } - } - } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ] - } - }, - "/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" - } - } - } - }, - "responses": { - "200": { - "description": "Returns a CustomerRecoveryIsExpiredResponse that indicates if the hash is expired or not.", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "data": { - "type": "array", - "items": { - "type": "object", - "properties": { - "isExpired": { - "type": "boolean" - } - }, - "required": [ - "isExpired" - ] - } - }, - "apiAlias": { - "enum": [ - "array_struct" - ], - "type": "string" - } - } - } - } + "noAggregations": { + "name": "no-aggregations", + "in": "query", + "description": "Resets all aggregations in the criteria. This parameter is a flag, the value has no effect.", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" } - } - }, - "security": [ - { - "ApiKey": [] - } - ] + ] + } + }, + "onlyAggregations": { + "name": "only-aggregations", + "in": "query", + "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.", + "required": false, + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } } }, - "/account/customer": { - "post": { + "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": { + "/breadcrumb/{id}": { + "get": { "tags": [ - "Profile", - "Endpoints supporting Criteria " - ], - "summary": "Get information about current customer", - "description": "Returns information about the current customer.\n\n**Available Associations:**\n- `group` - Customer group determining pricing and permissions\n- `language` - Preferred language for customer communication\n- `lastPaymentMethod` - Last used payment method by the customer\n- `defaultBillingAddress` - Default billing address for the customer\n- `activeBillingAddress` - Currently active billing address in the session\n- `defaultShippingAddress` - Default shipping address for the customer\n- `activeShippingAddress` - Currently active shipping address in the session\n- `salutation` - Customer salutation (e.g., Mr., Mrs., Ms.)\n- `addresses` - All addresses saved for the customer\n- `tags` - Tags assigned to the customer for organization and segmentation", - "operationId": "readCustomer", - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/NoneFieldsCriteria" - } - ] - } - } - } - }, - "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.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Customer" - } - } - } - } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } + "Experimental", + "Breadcrumb" ], + "summary": "Fetch a breadcrumb", + "description": "Perform search to get category or product breadcrumb. \n\nExperimental API, not part of our backwards compatibility promise, thus this API can introduce breaking changes at any time.", + "operationId": "readBreadcrumb", "parameters": [ { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", + "name": "id", + "in": "path", + "description": "UUID for product or category", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "type", + "in": "query", + "description": "Type: category or product (optional - default: product)", "required": false, "schema": { "type": "string", "enum": [ - "0", - "1" - ], - "default": "1" + "product", + "category" + ] } - } - ] - }, - "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": [], - "ContextToken": [] - } - ] - } - }, - "/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, + "name": "referrerCategoryId", + "in": "query", + "description": "UUID for referrer category only used for product breadcrumb", + "required": false, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } } ], "responses": { - "204": { - "description": "No Content response, when the address has been deleted" + "200": { + "description": "Search result containing SeoUrl\\'s to be used as breadcrumb.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/BreadcrumbCollection" + } + } + } }, "400": { - "description": "Response containing a list of errors, most likely due to the address being in use" + "$ref": "#/components/responses/400" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] - }, - "patch": { + } + }, + "/contact-form": { + "post": { "tags": [ - "Address" + "Content" ], - "summary": "Modify an address of a customer", - "description": "Modifies an existing address of a customer.", - "operationId": "updateCustomerAddress", + "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", "parameters": [ { - "name": "addressId", - "in": "path", - "description": "Address ID", - "required": true, + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CustomerAddressBody" + "required": [ + "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 concat 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" } } } }, "responses": { "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/CustomerAddress" - }, - { - "$ref": "#/components/schemas/CustomerAddressRead" - } - ] - } - } - } + "description": "Message sent successful." } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] } }, - "/account/list-address": { - "post": { + "/product-export/{accessKey}/{fileName}": { + "get": { "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" - } - ] - } + "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" } } - }, + ], "responses": { "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "type": "object", - "required": [ - "elements" - ], - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/CustomerAddress" - } - } - } - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } + "description": "" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } + ] + } + }, + "/seo-url": { + "post": { + "tags": [ + "Sitemap & Routes", + "Endpoints supporting Criteria " ], + "summary": "Fetch SEO routes", + "description": "Perform a filtered search for seo urls.", + "operationId": "readSeoUrl", "parameters": [ + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, { "name": "sw-include-search-info", "in": "header", @@ -18376,54 +17636,27 @@ "default": "1" } } - ] - } - }, - "/account/login": { - "post": { - "tags": [ - "Login & Registration" ], - "summary": "Log in a customer", - "description": "Logs in customers given their credentials.", - "operationId": "loginCustomer", "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { - "required": [ - "username", - "password" - ], - "properties": { - "username": { - "description": "Email", - "type": "string" - }, - "password": { - "description": "Password", - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "$ref": "#/components/responses/ContextTokenResponse" + "$ref": "#/components/responses/SeoUrlListResponse" }, - "401": { - "description": "If credentials are incorrect an error is returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - } - } - } + "404": { + "$ref": "#/components/responses/404" } }, "security": [ @@ -18431,58 +17664,81 @@ "ApiKey": [] } ] - } - }, - "/account/login/imitate-customer": { - "post": { + }, + "get": { "tags": [ - "Login & Registration" + "Sitemap & Routes", + "Endpoints supporting Criteria " ], - "summary": "Imitate the log in as a customer", - "description": "Imitate the log in as a customer given a generated token.", - "operationId": "imitateCustomerLogin", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "token", - "customerId", - "userId" - ], - "properties": { - "token": { - "description": "Generated customer impersonation token", - "type": "string" - }, - "customerId": { - "description": "ID of the customer", - "type": "string" - }, - "userId": { - "description": "ID of the user who generated the token", - "type": "string" - } - }, - "type": "object" - } + "summary": "Fetch SEO routes", + "description": "Perform a filtered search for seo urls.", + "operationId": "readSeoUrlGet", + "parameters": [ + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/criteriaPage" + }, + { + "$ref": "#/components/parameters/criteriaLimit" + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaFields" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" } - }, + ], "responses": { "200": { - "$ref": "#/components/responses/ContextTokenResponse" + "$ref": "#/components/responses/SeoUrlListResponse" }, - "400": { - "description": "If the token is incorrect an error is returned", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/failure" - } - } - } + "404": { + "$ref": "#/components/responses/404" } }, "security": [ @@ -18492,283 +17748,185 @@ ] } }, - "/account/logout": { + "/order/state/cancel": { "post": { "tags": [ - "Login & Registration" + "Order" ], - "summary": "Log out a customer", - "description": "Logs out a customer.", - "operationId": "logoutCustomer", - "responses": { - "200": { - "$ref": "#/components/responses/ContextTokenResponse" - }, - "403": { - "$ref": "#/components/responses/403" - } - }, - "security": [ + "summary": "Cancel an order", + "description": "Cancels an order. The order state will be set to 'cancelled'.", + "operationId": "cancelOrder", + "parameters": [ { - "ApiKey": [], - "ContextToken": [] + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } } - ] - } - }, - "/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" + "orderId": { + "description": "The identifier of the order to be canceled.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, - "type": "object" + "type": "object", + "required": [ + "orderId" + ] } } } }, "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 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": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/account/register": { + "/order": { "post": { "tags": [ - "Login & Registration" + "Order", + "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", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "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" - }, - "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" - } - }, - "required": [ - "email", - "password", - "firstName", - "lastName", - "acceptedDataProtection", - "storefrontUrl", - "billingAddress" - ], - "oneOf": [ - { - "properties": { - "accountType": { - "description": "Type of the customer account. Default value is 'private'.", - "type": "string", - "enum": [ - "private" - ], - "default": "private" - }, - "company": { - "type": "null" - }, - "vatIds": { - "type": "null" - } - } - }, - { - "required": [ - "accountType", - "company", - "vatIds" - ], - "properties": { - "accountType": { - "description": "Type of the customer account. Can be `private` or `business`.", - "type": "string", - "enum": [ - "business" - ] - }, - "company": { - "description": "Company of the customer. Only required when `accountType` is `business`.", - "type": "string" - }, - "vatIds": { - "description": "VAT IDs of the customer's company. Only valid when `accountType` is `business`.", - "type": "array", - "items": { - "type": "string" - }, - "minItems": 1 - } - } - } - ], - "type": "object" - } - } - } - }, - "responses": { - "200": { - "description": "Success", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Customer" - } - } + "summary": "Fetch a list of orders", + "description": "List orders of a customer.\n\n**Available Associations:**\n- `stateMachineState` - Current order state (e.g., open, in_progress, completed, cancelled)\n- `primaryOrderDelivery` - Primary delivery information for the order\n- `primaryOrderTransaction` - Primary payment transaction for the order\n- `orderCustomer` - Customer information associated with the order\n- `currency` - Currency used for the order\n- `language` - Language used when placing the order\n- `addresses` - All addresses associated with the order (billing and shipping)\n- `billingAddress` - Billing address for the order\n- `deliveries` - Delivery information including shipping address and tracking\n- `lineItems` - Order line items (products, discounts, fees)\n- `transactions` - Payment transactions for the order\n- `documents` - Generated documents (invoices, delivery notes, credit notes)\n- `tags` - Tags assigned to the order for organization and filtering", + "operationId": "readOrder", + "parameters": [ + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" } - } - }, - "security": [ + }, { - "ApiKey": [] + "name": "sw-include-search-info", + "in": "header", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "0", + "1" + ], + "default": "1" + } } - ] - } - }, - "/account/recovery-password-confirm": { - "post": { - "tags": [ - "Profile" ], - "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": { - "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" + "allOf": [ + { + "$ref": "#/components/schemas/NoneFieldsCriteria" }, - "newPasswordConfirm": { - "description": "Confirmation of the new password", - "type": "string" + { + "properties": { + "checkPromotion": { + "description": "Check if the payment method of the order is still changeable.", + "type": "boolean" + }, + "filter": { + "type": "array", + "description": "Pass the deepLinkCode criteria filter to allow for guest user authentification. Not required, if a user (guest or not) is already logged in.", + "items": { + "allOf": [ + { + "type": "object", + "properties": { + "type": { + "type": "string", + "enum": [ + "equals" + ] + }, + "field": { + "type": "string", + "enum": [ + "deepLinkCode" + ] + }, + "value": { + "type": "string" + } + }, + "required": [ + "type", + "field", + "value" + ] + } + ] + } + }, + "email": { + "description": "The email address of the customer. Pass this value to allow for guest user authentification. Not required, if a user (guest or not) is already logged in.", + "type": "string", + "format": "email" + }, + "zipcode": { + "description": "The zip/postal code of the billing address of the customer. Pass this value to allow for guest user authentification. Not required, if a user (guest or not) is already logged in.", + "type": "string" + }, + "login": { + "description": "If set and when handling a guest order, a context token will be returned in the response header with a logged-in session.", + "type": "boolean" + } + }, + "type": "object" } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "description": "Returns a success response indicating a successful update.", + "description": "An array of orders and an indicator if the payment of the order can be changed.", + "headers": { + "sw-context-token": { + "description": "Contains sw-context-token value, if login parameter is set to true and a guest order was found and the correct credentials were provided.", + "schema": { + "type": "string" + } + } + }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SuccessResponse" + "$ref": "#/components/schemas/OrderRouteResponse" } } } @@ -18776,36 +17934,51 @@ }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/account/recovery-password": { + "/order/payment": { "post": { "tags": [ - "Profile" + "Order" + ], + "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", + "parameters": [ + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } ], - "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": { "required": [ - "email", - "storefrontUrl" + "paymentMethodId", + "orderId" ], "properties": { - "email": { - "description": "E-Mail address to identify the customer", - "type": "string" + "paymentMethodId": { + "description": "The identifier of the paymentMethod to be set", + "type": "string", + "pattern": "^[0-9a-f]{32}$" }, - "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" + "orderId": { + "description": "The identifier of the order.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, "type": "object" @@ -18815,7 +17988,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": "Successfully updated the payment method of the order.", "content": { "application/json": { "schema": { @@ -18827,65 +18000,61 @@ }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/account/address/default-shipping/{addressId}": { - "patch": { + "/order/download/{orderId}/{downloadId}": { + "get": { "tags": [ - "Address" + "Order" ], - "summary": "Change a customer's default shipping address", - "description": "Updates the default (preselected) shipping addresses of a customer.", - "operationId": "defaultShippingAddress", + "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": "addressId", + "name": "orderId", "in": "path", - "description": "Address ID", "required": true, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } - } - ], - "responses": { - "200": { - "description": "" - } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ] - } - }, - "/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", + "name": "downloadId", "in": "path", - "description": "Address ID", "required": true, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" } } ], "responses": { "200": { - "description": "" + "description": "An arbitrary binary file.", + "content": { + "application/octet-stream": { + "schema": { + "type": "string", + "format": "binary" + } + } + } } }, "security": [ @@ -18896,60 +18065,72 @@ ] } }, - "/account/address": { - "post": { + "/_info/routes": { + "get": { + "summary": "Get API routes", + "operationId": "getRoutes", "tags": [ - "Address" + "System Info & Health Check" ], - "summary": "Create a new address for a customer", - "description": "Creates a new address for a customer.", - "operationId": "createCustomerAddress", - "requestBody": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CustomerAddressBody" - } - } - } - }, "responses": { "200": { - "description": "", + "description": "Successful operation", "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/CustomerAddress" - }, - { - "$ref": "#/components/schemas/CustomerAddressRead" + "type": "object", + "required": [ + "endpoints" + ], + "properties": { + "endpoints": { + "type": "array", + "items": { + "type": "object", + "required": [ + "methods", + "path" + ], + "properties": { + "methods": { + "type": "array", + "items": { + "type": "string" + } + }, + "path": { + "type": "string" + } + } + } } - ] + } } } } } - }, - "security": [ - { - "ApiKey": [], - "ContextToken": [] - } - ] + } } }, - "/language": { + "/landing-page/{landingPageId}": { "post": { "tags": [ - "System & Context", + "Content", "Endpoints supporting Criteria " ], - "summary": "Fetch languages", - "description": "Perform a filtered search for languages.\n\n**Available Associations:**\n- `locale` - Locale defining regional settings (date, time, number formats)\n- `translationCode` - Locale used for translating content\n- `children` - Child languages inheriting from this parent language", - "operationId": "readLanguages", + "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.\n\n**Available Associations:**\n- `cmsPage` - CMS page layout for the landing page\n- `seoUrls` - SEO-friendly URLs for the landing page across different sales channels", + "operationId": "readLandingPage", "parameters": [ + { + "name": "landingPageId", + "in": "path", + "description": "Identifier of the landing page.", + "required": true, + "schema": { + "type": "string" + } + }, { "name": "sw-language-id", "in": "header", @@ -18976,13 +18157,28 @@ } ], "requestBody": { - "required": false, "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" + } + ] } ] } @@ -18991,7 +18187,17 @@ }, "responses": { "200": { - "$ref": "#/components/responses/LanguageListResponse" + "description": "The loaded landing page with cms page", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LandingPage" + } + } + } + }, + "404": { + "$ref": "#/components/responses/404" } }, "security": [ @@ -19002,13 +18208,22 @@ }, "get": { "tags": [ - "System & Context", + "Content", "Endpoints supporting Criteria " ], - "summary": "Fetch languages", - "description": "Perform a filtered search for languages.\n\n**Available Associations:**\n- `locale` - Locale defining regional settings (date, time, number formats)\n- `translationCode` - Locale used for translating content\n- `children` - Child languages inheriting from this parent language", - "operationId": "readLanguagesGet", + "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.\n\n**Available Associations:**\n- `cmsPage` - CMS page layout for the landing page\n- `seoUrls` - SEO-friendly URLs for the landing page across different sales channels", + "operationId": "readLandingPageGet", "parameters": [ + { + "name": "landingPageId", + "in": "path", + "description": "Identifier of the landing page.", + "required": true, + "schema": { + "type": "string" + } + }, { "name": "sw-language-id", "in": "header", @@ -19019,11 +18234,31 @@ "pattern": "^[0-9a-f]{32}$" } }, + { + "name": "sw-include-search-info", + "in": "header", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "0", + "1" + ], + "default": "1" + } + }, { "$ref": "#/components/parameters/criteriaPage" }, { - "$ref": "#/components/parameters/criteriaLimit" + "name": "limit", + "in": "query", + "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.", + "schema": { + "type": "integer", + "minimum": 0 + } }, { "$ref": "#/components/parameters/criteriaTerm" @@ -19065,12 +18300,104 @@ "$ref": "#/components/parameters/criteriaExcludes" }, { - "$ref": "#/components/parameters/CompressedCriteria" + "name": "order", + "in": "query", + "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.", + "schema": { + "type": "string" + } + }, + { + "name": "p", + "in": "query", + "description": "Search result page", + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "manufacturer", + "in": "query", + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "min-price", + "in": "query", + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "max-price", + "in": "query", + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "rating", + "in": "query", + "description": "Filter products with a minimum average rating.", + "schema": { + "type": "integer" + } + }, + { + "name": "shipping-free", + "in": "query", + "description": "Filters products that are marked as shipping-free.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "properties", + "in": "query", + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "reduce-aggregations", + "in": "query", + "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.", + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } } ], "responses": { "200": { - "$ref": "#/components/responses/LanguageListResponse" + "description": "The loaded landing page with cms page", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LandingPage" + } + } + } + }, + "404": { + "$ref": "#/components/responses/404" } }, "security": [ @@ -19080,15 +18407,42 @@ ] } }, - "/payment-method": { + "/product-listing/{categoryId}": { "post": { "tags": [ - "Payment Method", - "Endpoints supporting Criteria " + "Product" ], - "summary": "Loads all available payment methods", - "operationId": "readPaymentMethod", + "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.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProductListing", "parameters": [ + { + "name": "categoryId", + "in": "path", + "description": "Identifier of a category.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "p", + "in": "query", + "description": "The page number to fetch.", + "required": false, + "schema": { + "type": "integer" + } + }, + { + "name": "sw-include-seo-urls", + "in": "header", + "description": "Determines if the response must contain a SeoUrl entity for a product entity", + "required": false, + "schema": { + "type": "boolean" + } + }, { "name": "sw-language-id", "in": "header", @@ -19115,22 +18469,15 @@ } ], "requestBody": { - "required": true, "content": { "application/json": { "schema": { "allOf": [ { - "$ref": "#/components/schemas/Criteria" + "$ref": "#/components/schemas/ProductListingCriteria" }, { - "properties": { - "onlyAvailable": { - "description": "List only available", - "type": "boolean" - } - }, - "type": "object" + "$ref": "#/components/schemas/ProductListingFlags" } ] } @@ -19139,7 +18486,14 @@ }, "responses": { "200": { - "$ref": "#/components/responses/PaymentMethodListResponse" + "description": "Returns a product listing containing all products and additional fields to display a listing.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + } } }, "security": [ @@ -19150,12 +18504,30 @@ }, "get": { "tags": [ - "Payment Method", - "Endpoints supporting Criteria " + "Product" ], - "summary": "Loads all available payment methods", - "operationId": "readPaymentMethodGet", + "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.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProductListingGet", "parameters": [ + { + "name": "categoryId", + "in": "path", + "description": "Identifier of a category.", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "sw-include-seo-urls", + "in": "header", + "description": "Determines if the response must contain a SeoUrl entity for a product entity", + "required": false, + "schema": { + "type": "boolean" + } + }, { "name": "sw-language-id", "in": "header", @@ -19170,7 +18542,13 @@ "$ref": "#/components/parameters/criteriaPage" }, { - "$ref": "#/components/parameters/criteriaLimit" + "name": "limit", + "in": "query", + "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.", + "schema": { + "type": "integer", + "minimum": 0 + } }, { "$ref": "#/components/parameters/criteriaTerm" @@ -19212,12 +18590,107 @@ "$ref": "#/components/parameters/criteriaExcludes" }, { - "$ref": "#/components/parameters/CompressedCriteria" + "name": "order", + "in": "query", + "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.", + "schema": { + "type": "string" + } + }, + { + "name": "p", + "in": "query", + "description": "Search result page", + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "manufacturer", + "in": "query", + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "min-price", + "in": "query", + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "max-price", + "in": "query", + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "rating", + "in": "query", + "description": "Filter products with a minimum average rating.", + "schema": { + "type": "integer" + } + }, + { + "name": "shipping-free", + "in": "query", + "description": "Filters products that are marked as shipping-free.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "properties", + "in": "query", + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "reduce-aggregations", + "in": "query", + "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.", + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + { + "$ref": "#/components/parameters/noAggregations" + }, + { + "$ref": "#/components/parameters/onlyAggregations" } ], "responses": { "200": { - "$ref": "#/components/responses/PaymentMethodListResponse" + "description": "Returns a product listing containing all products and additional fields to display a listing.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + } } }, "security": [ @@ -19227,58 +18700,60 @@ ] } }, - "/category": { - "post": { + "/script/{hook}": { + "get": { "tags": [ - "Category", - "Endpoints supporting Criteria " + "API", + "Script", + "App" ], - "summary": "Fetch a list of categories", - "description": "Perform a filtered search for categories.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", - "operationId": "readCategoryList", + "summary": "Access point for different api logics which are provided by apps over script hooks", + "operationId": "getScriptStoreApiRoute", "parameters": [ { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, + "name": "hook", + "in": "path", + "description": "Dynamic hook which used to build the hook name", + "required": true, "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" + "type": "string" } } ], - "requestBody": { - "required": false, - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" - } - ] - } - } - } - }, "responses": { "200": { - "$ref": "#/components/responses/CategoryListResponse" + "description": "Returns different structures of results based on the called script.", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "additionalProperties": true + }, + { + "type": "null" + } + ] + } + }, + "application/vnd.api+json": { + "schema": { + "oneOf": [ + { + "type": "object", + "additionalProperties": true + }, + { + "type": "null" + } + ] + } + } + } + }, + "204": { + "description": "No data by default" } }, "security": [ @@ -19287,77 +18762,59 @@ } ] }, - "get": { + "post": { "tags": [ - "Category", - "Endpoints supporting Criteria " + "API", + "Script", + "App" ], - "summary": "Fetch a list of categories", - "description": "Perform a filtered search for categories.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", - "operationId": "readCategoryListGet", + "summary": "Access point for different api logics which are provided by apps over script hooks", + "operationId": "postScriptStoreApiRoute", "parameters": [ { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, + "name": "hook", + "in": "path", + "description": "Dynamic hook which used to build the hook name", + "required": true, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" } - }, - { - "$ref": "#/components/parameters/criteriaPage" - }, - { - "$ref": "#/components/parameters/criteriaLimit" - }, - { - "$ref": "#/components/parameters/criteriaTerm" - }, - { - "$ref": "#/components/parameters/criteriaFilter" - }, - { - "$ref": "#/components/parameters/criteriaIds" - }, - { - "$ref": "#/components/parameters/criteriaQuery" - }, - { - "$ref": "#/components/parameters/criteriaAssociations" - }, - { - "$ref": "#/components/parameters/criteriaPostFilter" - }, - { - "$ref": "#/components/parameters/criteriaSort" - }, - { - "$ref": "#/components/parameters/criteriaAggregations" - }, - { - "$ref": "#/components/parameters/criteriaFields" - }, - { - "$ref": "#/components/parameters/criteriaGrouping" - }, - { - "$ref": "#/components/parameters/criteriaTotalCountMode" - }, - { - "$ref": "#/components/parameters/criteriaIncludes" - }, - { - "$ref": "#/components/parameters/criteriaExcludes" - }, - { - "$ref": "#/components/parameters/CompressedCriteria" } ], "responses": { "200": { - "$ref": "#/components/responses/CategoryListResponse" + "description": "Returns different structures of results based on the called script.", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object", + "additionalProperties": true + }, + { + "type": "null" + } + ] + } + }, + "application/vnd.api+json": { + "schema": { + "oneOf": [ + { + "type": "object", + "additionalProperties": true + }, + { + "type": "null" + } + ] + } + } + } + }, + "204": { + "description": "No data by default" } }, "security": [ @@ -19367,23 +18824,22 @@ ] } }, - "/category/{navigationId}": { + "/search-suggest": { "post": { "tags": [ - "Category", - "Endpoints supporting Criteria " + "Product" ], - "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.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", - "operationId": "readCategory", + "summary": "Search for products (suggest)", + "description": "Can be used to implement search previews or suggestion listings, that don’t require any interaction.", + "operationId": "searchSuggest", "parameters": [ { - "name": "sw-include-seo-urls", - "in": "header", - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", + "name": "p", + "in": "query", + "description": "The page number to fetch.", "required": false, "schema": { - "type": "boolean" + "type": "integer" } }, { @@ -19409,33 +18865,31 @@ ], "default": "1" } - }, - { - "name": "navigationId", - "in": "path", - "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": { "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" } ] } @@ -19444,11 +18898,11 @@ }, "responses": { "200": { - "description": "The loaded category with cms page", + "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/Category" + "$ref": "#/components/schemas/ProductListingResult" } } } @@ -19462,22 +18916,12 @@ }, "get": { "tags": [ - "Category", - "Endpoints supporting Criteria " + "Product" ], - "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.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", - "operationId": "readCategoryGet", + "summary": "Search for products (suggest)", + "description": "Can be used to implement search previews or suggestion listings, that don’t require any interaction.", + "operationId": "searchSuggestGet", "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": "sw-language-id", "in": "header", @@ -19489,19 +18933,10 @@ } }, { - "name": "navigationId", - "in": "path", - "description": "Identifier of the category to be fetched", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "slots", + "name": "search", "in": "query", - "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a '|' character", + "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.", + "required": true, "schema": { "type": "string" } @@ -19641,15 +19076,21 @@ } ] } + }, + { + "$ref": "#/components/parameters/noAggregations" + }, + { + "$ref": "#/components/parameters/onlyAggregations" } ], "responses": { "200": { - "description": "The loaded category with cms page", + "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/Category" + "$ref": "#/components/schemas/ProductListingResult" } } } @@ -19662,33 +19103,42 @@ ] } }, - "/customer/wishlist/add/{productId}": { - "post": { + "/customer-group-registration/config/{customerGroupId}": { + "get": { "tags": [ - "Wishlist" + "Login & Registration" ], - "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", + "summary": "Fetch registration settings for customer group", + "operationId": "getCustomerGroupRegistrationInfo", "parameters": [ { - "name": "productId", + "name": "customerGroupId", "in": "path", - "description": "Identifier of the product to be added.", + "description": "Customer group id", "required": true, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } } ], "responses": { "200": { - "description": "Returns a success response.", + "description": "Returns the customer group including registration settings.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SuccessResponse" + "$ref": "#/components/schemas/CustomerGroup" } } } @@ -19696,22 +19146,59 @@ }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] } }, - "/customer/wishlist": { + "/_info/openapi3.json": { + "get": { + "tags": [ + "System Info & Health Check" + ], + "summary": "Get OpenAPI Specification", + "description": "Get information about the store API in OpenAPI format.", + "operationId": "api-info", + "parameters": [ + { + "name": "type", + "in": "query", + "description": "Type of the api", + "schema": { + "type": "string", + "enum": [ + "jsonapi", + "json" + ] + } + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/OpenApi3" + } + } + } + }, + "/country-state/{countryId}": { "post": { "tags": [ - "Wishlist", + "System & Context", "Endpoints supporting Criteria " ], - "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": "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}$" + } + }, { "name": "sw-language-id", "in": "header", @@ -19753,119 +19240,131 @@ }, "responses": { "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/WishlistLoadRouteResponse" - } - } - } + "$ref": "#/components/responses/CountryStateListResponse" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] - } - }, - "/customer/wishlist/merge": { - "post": { + }, + "get": { "tags": [ - "Wishlist" + "System & Context", + "Endpoints supporting Criteria " ], - "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" - } + "summary": "Fetch the states of a country", + "description": "Perform a filtered search the states for a country", + "operationId": "readCountryStateGet", + "parameters": [ + { + "name": "countryId", + "in": "path", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/criteriaPage" + }, + { + "$ref": "#/components/parameters/criteriaLimit" + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaFields" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" } - }, + ], "responses": { "200": { - "description": "Returns a success response.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SuccessResponse" - } - } - } + "$ref": "#/components/responses/CountryStateListResponse" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] } }, - "/customer/wishlist/delete/{productId}": { - "delete": { + "/cookie-groups": { + "get": { "tags": [ - "Wishlist" - ], - "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": "The identifier of the product to be removed from the wishlist.", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } + "Experimental", + "Cookies" ], + "summary": "Fetch all cookie groups", + "description": "Fetch all cookie groups available in the system with configuration hash. Experimental API, not part of our backwards compatibility promise, thus this API can introduce breaking changes at any time.", + "operationId": "readCookieGroups", "responses": { "200": { - "description": "Returns a success response indicating a successful removal.", + "description": "Successful response with a collection of cookie groups and their configuration hash.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SuccessResponse" + "$ref": "#/components/schemas/CookieRouteResponse" } } } }, - "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" - } - } - } + "400": { + "$ref": "#/components/responses/400" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] } @@ -19971,23 +19470,108 @@ ] } }, - "/country-state/{countryId}": { + "/revocation-request-form": { + "post": { + "tags": [ + "Content" + ], + "summary": "Submit a revocation request form message", + "description": "Used for submitting revocation request forms. Be aware that there can be more required fields, depending on the system settings.", + "operationId": "sendRevocationRequestMail", + "parameters": [ + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "email", + "contractNumber" + ], + "properties": { + "firstName": { + "description": "First name. This field may be required depending on the system settings.", + "type": "string" + }, + "lastName": { + "description": "Last name. This field may be required depending on the system settings.", + "type": "string" + }, + "email": { + "description": "Email address.", + "type": "string" + }, + "contractNumber": { + "description": "The number of the contract.", + "type": "string" + }, + "comment": { + "description": "The message of the revocation request 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 revocation 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" + } + } + } + }, + "responses": { + "200": { + "description": "Message sent successfully." + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/search": { "post": { "tags": [ - "System & Context", - "Endpoints supporting Criteria " + "Product" ], - "summary": "Fetch the states of a country", - "description": "Perform a filtered search the states for a country", - "operationId": "readCountryState", + "summary": "Search for products", + "description": "Performs a search for products which can be used to display a product listing.", + "operationId": "searchPage", "parameters": [ { - "name": "countryId", - "in": "path", - "required": true, + "name": "p", + "in": "query", + "description": "The page number to fetch.", + "required": false, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "integer" } }, { @@ -20000,6 +19584,15 @@ "pattern": "^[0-9a-f]{32}$" } }, + { + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", + "in": "header", + "name": "sw-include-seo-urls", + "required": false, + "schema": { + "type": "boolean" + } + }, { "name": "sw-include-search-info", "in": "header", @@ -20016,13 +19609,24 @@ } ], "requestBody": { - "required": false, "content": { "application/json": { "schema": { "allOf": [ { - "$ref": "#/components/schemas/Criteria" + "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" } ] } @@ -20031,7 +19635,14 @@ }, "responses": { "200": { - "$ref": "#/components/responses/CountryStateListResponse" + "description": "Returns a product listing containing all products and additional fields to display a listing.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + } } }, "security": [ @@ -20042,37 +19653,51 @@ }, "get": { "tags": [ - "System & Context", - "Endpoints supporting Criteria " + "Product" ], - "summary": "Fetch the states of a country", - "description": "Perform a filtered search the states for a country", - "operationId": "readCountryStateGet", + "summary": "Search for products", + "description": "Performs a search for products which can be used to display a product listing.", + "operationId": "searchPageGet", "parameters": [ { - "name": "countryId", - "in": "path", - "required": true, + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } }, { - "name": "sw-language-id", + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "name": "sw-include-seo-urls", "required": false, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "boolean" + } + }, + { + "name": "search", + "in": "query", + "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.", + "required": false, + "schema": { + "type": "string" } }, { "$ref": "#/components/parameters/criteriaPage" }, { - "$ref": "#/components/parameters/criteriaLimit" + "name": "limit", + "in": "query", + "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.", + "schema": { + "type": "integer", + "minimum": 0 + } }, { "$ref": "#/components/parameters/criteriaTerm" @@ -20114,182 +19739,107 @@ "$ref": "#/components/parameters/criteriaExcludes" }, { - "$ref": "#/components/parameters/CompressedCriteria" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/CountryStateListResponse" - } - }, - "security": [ + "name": "order", + "in": "query", + "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.", + "schema": { + "type": "string" + } + }, { - "ApiKey": [] - } - ] - } - }, - "/newsletter/confirm": { - "post": { - "tags": [ - "Newsletter" - ], - "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": { - "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" - } - }, - "type": "object" - } + "name": "p", + "in": "query", + "description": "Search result page", + "schema": { + "type": "integer", + "default": 1 } - } - }, - "responses": { - "200": { - "description": "The newsletter confirmation was successful." - } - }, - "security": [ + }, { - "ApiKey": [] - } - ] - } - }, - "/newsletter/subscribe": { - "post": { - "tags": [ - "Newsletter" - ], - "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 address 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`: Confirms the newsletter subscription for the provided email address.", - "operationId": "subscribeToNewsletter", - "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.", - "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" - } + "name": "manufacturer", + "in": "query", + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "min-price", + "in": "query", + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "max-price", + "in": "query", + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 } - } - }, - "responses": { - "200": { - "description": "Success" - } - }, - "security": [ + }, { - "ApiKey": [] - } - ] - } - }, - "/newsletter/unsubscribe": { - "post": { - "tags": [ - "Newsletter" - ], - "summary": "Remove a newsletter subscription", - "description": "Removes a newsletter recipient from the mailing lists.", - "operationId": "unsubscribeToNewsletter", - "requestBody": { - "required": true, - "content": { - "application/json": { - "schema": { - "required": [ - "email" - ], - "properties": { - "email": { - "description": "Email address that should be removed from the mailing lists.", - "type": "string" - } + "name": "rating", + "in": "query", + "description": "Filter products with a minimum average rating.", + "schema": { + "type": "integer" + } + }, + { + "name": "shipping-free", + "in": "query", + "description": "Filters products that are marked as shipping-free.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "properties", + "in": "query", + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "reduce-aggregations", + "in": "query", + "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.", + "schema": { + "oneOf": [ + { + "type": "string" }, - "type": "object" - } + { + "type": "null" + } + ] } + }, + { + "$ref": "#/components/parameters/noAggregations" + }, + { + "$ref": "#/components/parameters/onlyAggregations" } - }, + ], "responses": { "200": { - "description": "Unsubscribing was successful." + "description": "Returns a product listing containing all products and additional fields to display a listing.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductListingResult" + } + } + } } }, "security": [ @@ -20299,16 +19849,25 @@ ] } }, - "/seo-url": { + "/navigation/{activeId}/{rootId}": { "post": { "tags": [ - "Sitemap & Routes", + "Category", "Endpoints supporting Criteria " ], - "summary": "Fetch SEO routes", - "description": "Perform a filtered search for seo urls.", - "operationId": "readSeoUrl", + "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": "sw-language-id", "in": "header", @@ -20332,16 +19891,67 @@ ], "default": "1" } + }, + { + "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": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "$ref": "#/components/schemas/NavigationType" + } + ] + } + }, + { + "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": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "$ref": "#/components/schemas/NavigationType" + } + ] + } } ], "requestBody": { - "required": false, + "required": true, "content": { "application/json": { "schema": { "allOf": [ { - "$ref": "#/components/schemas/Criteria" + "$ref": "#/components/schemas/NoneFieldsCriteria" + }, + { + "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" } ] } @@ -20350,10 +19960,14 @@ }, "responses": { "200": { - "$ref": "#/components/responses/SeoUrlListResponse" - }, - "404": { - "$ref": "#/components/responses/404" + "description": "All available navigations", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/NavigationRouteResponse" + } + } + } } }, "security": [ @@ -20364,13 +19978,22 @@ }, "get": { "tags": [ - "Sitemap & Routes", + "Category", "Endpoints supporting Criteria " ], - "summary": "Fetch SEO routes", - "description": "Perform a filtered search for seo urls.", - "operationId": "readSeoUrlGet", + "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": "readNavigationGet", "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": "sw-language-id", "in": "header", @@ -20381,6 +20004,64 @@ "pattern": "^[0-9a-f]{32}$" } }, + { + "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": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "$ref": "#/components/schemas/NavigationType" + } + ] + } + }, + { + "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": { + "oneOf": [ + { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + { + "$ref": "#/components/schemas/NavigationType" + } + ] + } + }, + { + "name": "depth", + "in": "query", + "description": "Determines the depth of fetched navigation levels.", + "required": false, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "buildTree", + "in": "query", + "description": "Return the categories as a tree or as a flat list.", + "required": false, + "schema": { + "type": "array", + "items": { + "type": "object" + } + }, + "style": "deepObject", + "explode": true + }, { "$ref": "#/components/parameters/criteriaPage" }, @@ -20409,10 +20090,7 @@ "$ref": "#/components/parameters/criteriaSort" }, { - "$ref": "#/components/parameters/criteriaAggregations" - }, - { - "$ref": "#/components/parameters/criteriaFields" + "$ref": "#/components/parameters/criteriaAggregations" }, { "$ref": "#/components/parameters/criteriaGrouping" @@ -20427,76 +20105,16 @@ "$ref": "#/components/parameters/criteriaExcludes" }, { - "$ref": "#/components/parameters/CompressedCriteria" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/SeoUrlListResponse" - }, - "404": { - "$ref": "#/components/responses/404" - } - }, - "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", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "$ref": "#/components/parameters/CompressedNoneFieldsCriteria" } ], "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", + "description": "All available navigations", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SuccessResponse" + "$ref": "#/components/schemas/NavigationRouteResponse" } } } @@ -20509,19 +20127,36 @@ ] } }, - "/checkout/cart/line-item": { + "/document/download/{documentId}/{deepLinkCode}": { "post": { "tags": [ - "Cart" + "Document" ], - "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", + "summary": "Download generated document", + "description": "Returns 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" + } + }, { "name": "sw-language-id", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "description": "If a document is rendered on the fly the provided language id is added to fallback languages while the order language has priority. It does not change already generated documents.", "required": false, "schema": { "type": "string", @@ -20530,61 +20165,113 @@ } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CartItems" + "type": "object", + "properties": { + "email": { + "type": "string" + }, + "zipcode": { + "type": "string" + } + }, + "description": "Required for guest orders to verify the user; ignored for orders with logged-in user." } } } }, "responses": { "200": { - "description": "The updated cart.", + "description": "Success", "content": { - "application/json": { + "application/pdf": { "schema": { - "$ref": "#/components/schemas/Cart" + "type": "string", + "format": "binary" + } + }, + "text/html": { + "schema": { + "type": "string" + } + }, + "application/xml": { + "schema": { + "type": "string" } } } }, - "400": { - "$ref": "#/components/responses/400" + "204": { + "description": "DEPRECATED: Returns a no content response when no document is found. Will be changed in v6.8.0.0 and returns a 404 response instead." + }, + "403": { + "description": "Forbidden." + }, + "404": { + "description": "Document not found." + }, + "406": { + "description": "The requested mime type is not supported." } }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] }, - "delete": { + "get": { "tags": [ - "Cart" + "Document" ], - "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": "Download generated document", + "description": "Returns generated document to download.", + "operationId": "downloadGet", "parameters": [ { - "name": "ids", - "in": "query", - "description": "A list of product identifiers.", + "name": "documentId", + "in": "path", "required": true, "schema": { - "type": "array", - "items": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "deepLinkCode", + "required": true, + "in": "path", + "schema": { + "type": "string" } }, + { + "name": "email", + "required": false, + "in": "query", + "schema": { + "type": "string" + }, + "description": "Required for guest orders to verify the user; ignored for orders with logged-in user." + }, + { + "name": "zipcode", + "required": false, + "in": "query", + "schema": { + "type": "string" + }, + "description": "Required for guest orders to verify the user; ignored for orders with logged-in user." + }, { "name": "sw-language-id", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "description": "If a document is rendered on the fly the provided language id is added to fallback languages while the order language has priority. It does not change already generated documents.", "required": false, "schema": { "type": "string", @@ -20594,29 +20281,55 @@ ], "responses": { "200": { - "description": "The updated cart.", + "description": "Success", "content": { - "application/json": { + "application/pdf": { "schema": { - "$ref": "#/components/schemas/Cart" + "type": "string", + "format": "binary" + } + }, + "text/html": { + "schema": { + "type": "string" + } + }, + "application/xml": { + "schema": { + "type": "string" } } } + }, + "204": { + "description": "DEPRECATED: Returns a no content response when no document is found. Will be changed in v6.8.0.0 and returns a 404 response instead." + }, + "403": { + "description": "Forbidden." + }, + "404": { + "description": "Document not found." + }, + "406": { + "description": "The requested mime type is not supported." } }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] - }, - "patch": { + } + }, + "/payment-method": { + "post": { "tags": [ - "Cart" + "Payment Method", + "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": "Loads all available payment methods", + "operationId": "readPaymentMethod", "parameters": [ { "name": "sw-language-id", @@ -20627,27 +20340,48 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "name": "sw-include-search-info", + "in": "header", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "0", + "1" + ], + "default": "1" + } } ], "requestBody": { + "required": true, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CartItems" + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + }, + { + "properties": { + "onlyAvailable": { + "description": "List only available", + "type": "boolean" + } + }, + "type": "object" + } + ] } } } }, "responses": { "200": { - "description": "The updated cart.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Cart" - } - } - } + "$ref": "#/components/responses/PaymentMethodListResponse" } }, "security": [ @@ -20655,16 +20389,14 @@ "ApiKey": [] } ] - } - }, - "/checkout/cart/line-item/delete": { - "post": { + }, + "get": { "tags": [ - "Cart" + "Payment Method", + "Endpoints supporting Criteria " ], - "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", + "summary": "Loads all available payment methods", + "operationId": "readPaymentMethodGet", "parameters": [ { "name": "sw-language-id", @@ -20675,42 +20407,59 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/criteriaPage" + }, + { + "$ref": "#/components/parameters/criteriaLimit" + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaFields" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" } ], - "requestBody": { - "required": true, - "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}$" - } - } - }, - "type": "object" - } - } - } - }, "responses": { "200": { - "description": "The updated cart.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/Cart" - } - } - } + "$ref": "#/components/responses/PaymentMethodListResponse" } }, "security": [ @@ -20720,15 +20469,24 @@ ] } }, - "/checkout/order": { + "/product/{productId}/cross-selling": { "post": { "tags": [ - "Order" + "Product" ], - "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", + "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" + } + }, { "name": "sw-language-id", "in": "header", @@ -20738,39 +20496,24 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } - } - ], - "requestBody": { - "description": "Contains additional metadata which is stored together with the order. It can also contain payment transaction details.", - "content": { - "application/json": { - "schema": { - "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" - } + }, + { + "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" } } - }, + ], "responses": { "200": { - "description": "Order", + "description": "Found cross sellings", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/Order" + "$ref": "#/components/schemas/CrossSellingElementCollection" } } } @@ -20778,85 +20521,54 @@ }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] - } - }, - "/checkout/gateway": { + }, "get": { "tags": [ - "Gateway" + "Product" ], - "summary": "Call the checkout gateway", - "description": "Call the checkout gateway, which is used to manipulate certain aspects of the checkout process (e.g. available payment methods).", - "operationId": "checkoutGateway", - "responses": { - "200": { - "description": "Checkout gateway response", - "content": { - "application/json": { - "schema": { - "properties": { - "paymentMethods": { - "properties": { - "total": { - "description": "Total amount", - "type": "integer" - }, - "aggregations": { - "description": "aggregation result", - "type": "object" - }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/PaymentMethod" - } - } - }, - "type": "object" - }, - "shippingMethods": { - "properties": { - "total": { - "description": "Total amount", - "type": "integer" - }, - "aggregations": { - "description": "aggregation result", - "type": "object" - }, - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ShippingMethod" - } - } - }, - "type": "object" - }, - "errors": { - "type": "array", - "items": { - "properties": { - "code": { - "description": "Error code", - "type": "string" - }, - "detail": { - "description": "Error detail", - "type": "string" - }, - "blocking": { - "description": "If the error is blocking", - "type": "boolean" - } - } - } - } - } + "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": "readProductCrossSellingsGet", + "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product ID", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "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" + } + } + ], + "responses": { + "200": { + "description": "Found cross sellings", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CrossSellingElementCollection" } } } @@ -20869,15 +20581,25 @@ ] } }, - "/contact-form": { + "/product/{productId}": { "post": { "tags": [ - "Content" + "Product" ], - "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", + "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.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProductDetail", "parameters": [ + { + "name": "productId", + "in": "path", + "description": "Product ID", + "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$'" + } + }, { "name": "sw-language-id", "in": "header", @@ -20887,75 +20609,73 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", + "in": "header", + "name": "sw-include-seo-urls", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "name": "sw-include-search-info", + "in": "header", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "0", + "1" + ], + "default": "1" + } + }, + { + "description": "Instructs Shopware to skip loading the configurator data", + "in": "query", + "name": "skipConfigurator", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Instructs Shopware to skip loading the CMS page data", + "in": "query", + "name": "skipCmsPage", + "required": false, + "schema": { + "type": "boolean" + } } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { - "required": [ - "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 concat 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" + "allOf": [ + { + "$ref": "#/components/schemas/NoneFieldsCriteria" } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "description": "Message sent successful." + "description": "Product information along with variant groups and options", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProductDetailResponse" + } + } + } } }, "security": [ @@ -20963,65 +20683,118 @@ "ApiKey": [] } ] - } - }, - "/breadcrumb/{id}": { + }, "get": { "tags": [ - "Experimental", - "Breadcrumb" + "Product" ], - "summary": "Fetch a breadcrumb", - "description": "Perform search to get category or product breadcrumb. \n\nExperimental API, not part of our backwards compatibility promise, thus this API can introduce breaking changes at any time.", - "operationId": "readBreadcrumb", + "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.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProductDetailGet", "parameters": [ { - "name": "id", + "name": "productId", "in": "path", - "description": "UUID for product or category", + "description": "Product ID", "required": true, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$'" + } + }, + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } }, { - "name": "type", + "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", + "in": "header", + "name": "sw-include-seo-urls", + "required": false, + "schema": { + "type": "boolean" + } + }, + { + "description": "Instructs Shopware to skip loading the configurator data", "in": "query", - "description": "Type: category or product (optional - default: product)", + "name": "skipConfigurator", "required": false, "schema": { - "type": "string", - "enum": [ - "product", - "category" - ] + "type": "boolean" + } + }, + { + "description": "Instructs Shopware to skip loading the CMS page data", + "in": "query", + "name": "skipCmsPage", + "required": false, + "schema": { + "type": "boolean" } }, { - "name": "referrerCategoryId", - "in": "query", - "description": "UUID for referrer category only used for product breadcrumb", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "$ref": "#/components/parameters/criteriaPage" + }, + { + "$ref": "#/components/parameters/criteriaLimit" + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedNoneFieldsCriteria" } ], "responses": { "200": { - "description": "Search result containing SeoUrl\\'s to be used as breadcrumb.", + "description": "Product information along with variant groups and options", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/BreadcrumbCollection" + "$ref": "#/components/schemas/ProductDetailResponse" } } } - }, - "400": { - "$ref": "#/components/responses/400" } }, "security": [ @@ -21031,25 +20804,16 @@ ] } }, - "/cms/{id}": { + "/product": { "post": { "tags": [ - "Content" + "Product", + "Endpoints supporting Criteria " ], - "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.\n\n**Available Associations:**\n- `sections` - Content sections within the CMS page (layout blocks containing slots)\n- `previewMedia` - Preview image for the CMS page in admin panel and page selection\n- `landingPages` - Landing pages using this CMS layout", - "operationId": "readCms", + "summary": "Fetch a list of products", + "description": "List products that match the given criteria. For performance reasons a limit should always be set.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProduct", "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the CMS page to be resolved", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, { "name": "sw-language-id", "in": "header", @@ -21076,21 +20840,13 @@ } ], "requestBody": { + "required": false, "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" + "$ref": "#/components/schemas/Criteria" } ] } @@ -21099,17 +20855,7 @@ }, "responses": { "200": { - "description": "The loaded cms page", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CmsPage" - } - } - } - }, - "404": { - "$ref": "#/components/responses/404" + "$ref": "#/components/responses/ProductListResponse" } }, "security": [ @@ -21120,22 +20866,13 @@ }, "get": { "tags": [ - "Content" + "Product", + "Endpoints supporting Criteria " ], - "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.\n\n**Available Associations:**\n- `sections` - Content sections within the CMS page (layout blocks containing slots)\n- `previewMedia` - Preview image for the CMS page in admin panel and page selection\n- `landingPages` - Landing pages using this CMS layout", - "operationId": "readCmsGet", + "summary": "Fetch a list of products", + "description": "List products that match the given criteria. For performance reasons a limit should always be set.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", + "operationId": "readProductGet", "parameters": [ - { - "name": "id", - "in": "path", - "description": "Identifier of the CMS page to be resolved", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, { "name": "sw-language-id", "in": "header", @@ -21146,25 +20883,11 @@ "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" - } - }, { "$ref": "#/components/parameters/criteriaPage" }, { - "name": "limit", - "in": "query", - "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.", - "schema": { - "type": "integer", - "minimum": 0 - } + "$ref": "#/components/parameters/criteriaLimit" }, { "$ref": "#/components/parameters/criteriaTerm" @@ -21206,104 +20929,12 @@ "$ref": "#/components/parameters/criteriaExcludes" }, { - "name": "order", - "in": "query", - "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.", - "schema": { - "type": "string" - } - }, - { - "name": "p", - "in": "query", - "description": "Search result page", - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "manufacturer", - "in": "query", - "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", - "schema": { - "type": "string" - } - }, - { - "name": "min-price", - "in": "query", - "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", - "schema": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - { - "name": "max-price", - "in": "query", - "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", - "schema": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - { - "name": "rating", - "in": "query", - "description": "Filter products with a minimum average rating.", - "schema": { - "type": "integer" - } - }, - { - "name": "shipping-free", - "in": "query", - "description": "Filters products that are marked as shipping-free.", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "properties", - "in": "query", - "description": "Filters products by their properties. List of property identifiers separated by a `|`.", - "schema": { - "type": "string" - } - }, - { - "name": "reduce-aggregations", - "in": "query", - "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.", - "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } + "$ref": "#/components/parameters/CompressedCriteria" } ], "responses": { "200": { - "description": "The loaded cms page", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CmsPage" - } - } - } - }, - "404": { - "$ref": "#/components/responses/404" + "$ref": "#/components/responses/ProductListResponse" } }, "security": [ @@ -21313,22 +20944,23 @@ ] } }, - "/search": { + "/product/{productId}/reviews": { "post": { "tags": [ - "Product" + "Product", + "Endpoints supporting Criteria " ], - "summary": "Search for products", - "description": "Performs a search for products which can be used to display a product listing.", - "operationId": "searchPage", + "summary": "Fetch product reviews", + "description": "Perform a filtered search for product reviews.", + "operationId": "readProductReviews", "parameters": [ { - "name": "p", - "in": "query", - "description": "The page number to fetch.", - "required": false, + "name": "productId", + "in": "path", + "description": "Identifier of the product.", + "required": true, "schema": { - "type": "integer" + "type": "string" } }, { @@ -21341,15 +20973,6 @@ "pattern": "^[0-9a-f]{32}$" } }, - { - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", - "in": "header", - "name": "sw-include-seo-urls", - "required": false, - "schema": { - "type": "boolean" - } - }, { "name": "sw-include-search-info", "in": "header", @@ -21366,24 +20989,13 @@ } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "allOf": [ { - "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" + "$ref": "#/components/schemas/Criteria" } ] } @@ -21392,11 +21004,26 @@ }, "responses": { "200": { - "description": "Returns a product listing containing all products and additional fields to display a listing.", + "description": "Entity search result containing product reviews", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ProductListingResult" + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductReview" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } } } @@ -21410,51 +21037,37 @@ }, "get": { "tags": [ - "Product" + "Product", + "Endpoints supporting Criteria " ], - "summary": "Search for products", - "description": "Performs a search for products which can be used to display a product listing.", - "operationId": "searchPageGet", + "summary": "Fetch product reviews", + "description": "Perform a filtered search for product reviews.", + "operationId": "readProductReviewsGet", "parameters": [ { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, + "name": "productId", + "in": "path", + "description": "Identifier of the product.", + "required": true, "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "type": "string" } }, { - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", + "name": "sw-language-id", "in": "header", - "name": "sw-include-seo-urls", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "name": "search", - "in": "query", - "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.", + "description": "Instructs Shopware to return the response in the given language.", "required": false, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, { "$ref": "#/components/parameters/criteriaPage" }, { - "name": "limit", - "in": "query", - "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.", - "schema": { - "type": "integer", - "minimum": 0 - } + "$ref": "#/components/parameters/criteriaLimit" }, { "$ref": "#/components/parameters/criteriaTerm" @@ -21496,104 +21109,289 @@ "$ref": "#/components/parameters/criteriaExcludes" }, { - "name": "order", - "in": "query", - "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.", + "$ref": "#/components/parameters/CompressedCriteria" + } + ], + "responses": { + "200": { + "description": "Entity search result containing product reviews", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "properties": { + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ProductReview" + } + } + }, + "type": "object" + }, + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/product/{productId}/review": { + "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" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, { - "name": "p", - "in": "query", - "description": "Search result page", + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, "schema": { - "type": "integer", - "default": 1 + "type": "string", + "pattern": "^[0-9a-f]{32}$" } - }, + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "title", + "content", + "points" + ], + "properties": { + "name": { + "description": "The name of the review author. If not set, the first name of the customer is chosen.", + "type": "string" + }, + "email": { + "description": "The email address of the review author. If not set, the email of the customer is chosen.", + "type": "string" + }, + "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" + } + } + } + }, + "responses": { + "200": { + "description": "Success response indicating the review was saved successfully." + } + }, + "security": [ { - "name": "manufacturer", - "in": "query", - "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/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" } }, { - "name": "min-price", - "in": "query", - "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, "schema": { - "type": "integer", - "minimum": 0, - "default": 0 + "type": "string", + "pattern": "^[0-9a-f]{32}$" } - }, + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "required": [ + "options" + ], + "properties": { + "options": { + "oneOf": [ + { + "description": "The options parameter for the variant to find.", + "type": "array", + "items": { + "type": "string" + } + }, + { + "description": "The options parameter as a map of groupId => optionId.", + "type": "object", + "additionalProperties": { + "type": "string" + } + } + ] + }, + "switchedGroup": { + "description": "The id of the option group that has been switched.", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "Returns an FoundCombination struct containing the ids matching the search.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FindProductVariantRouteResponse" + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "get": { + "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": "searchProductVariantIdsGet", + "parameters": [ { - "name": "max-price", - "in": "query", - "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "name": "productId", + "in": "path", + "description": "Product ID", + "required": true, "schema": { - "type": "integer", - "minimum": 0, - "default": 0 + "type": "string" } }, { - "name": "rating", - "in": "query", - "description": "Filter products with a minimum average rating.", + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, "schema": { - "type": "integer" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, { - "name": "shipping-free", + "name": "options[]", "in": "query", - "description": "Filters products that are marked as shipping-free.", + "description": "The options parameter for the variant to find. Array of option IDs.", + "required": true, "schema": { - "type": "boolean", - "default": false + "type": "array", + "items": { + "type": "string" + } } }, { - "name": "properties", + "name": "switchedGroup", "in": "query", - "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "description": "The id of the option group that has been switched.", + "required": false, "schema": { "type": "string" } - }, - { - "name": "reduce-aggregations", - "in": "query", - "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.", - "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" + } + ], + "responses": { + "200": { + "description": "Returns an FoundCombination struct containing the ids matching the search.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/FindProductVariantRouteResponse" } - ] + } } - }, - { - "$ref": "#/components/parameters/noAggregations" - }, + } + }, + "security": [ { - "$ref": "#/components/parameters/onlyAggregations" + "ApiKey": [] } + ] + } + }, + "/context": { + "get": { + "tags": [ + "System & Context" ], + "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 a product listing containing all products and additional fields to display a listing.", + "description": "Returns the current context.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ProductListingResult" + "$ref": "#/components/schemas/SalesChannelContext" } } } @@ -21604,44 +21402,177 @@ "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": { + "properties": { + "currencyId": { + "description": "Currency", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "languageId": { + "description": "Language", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "billingAddressId": { + "description": "Billing Address", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shippingAddressId": { + "description": "Shipping Address", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "paymentMethodId": { + "description": "Payment Method", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "shippingMethodId": { + "description": "Shipping Method", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryId": { + "description": "Country", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "countryStateId": { + "description": "Country State", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "$ref": "#/components/responses/ContextTokenResponse" + } + }, + "security": [ + { + "ApiKey": [] + } + ] } }, - "/product-listing/{categoryId}": { + "/context/gateway": { "post": { + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "appName" + ], + "properties": { + "appName": { + "type": "string" + }, + "data": { + "type": "object" + } + }, + "type": "object" + } + } + } + }, "tags": [ - "Product" + "Gateway" ], - "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.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", - "operationId": "readProductListing", + "summary": "Call the context gateway", + "description": "Call the context gateway, which is used to manipulate certain aspects of context (e.g. selected payment methods, register customer, etc.).", + "operationId": "contextGateway", + "responses": { + "200": { + "$ref": "#/components/responses/ContextTokenResponse" + }, + "400": { + "description": "App server communication error" + }, + "422": { + "description": "Error provided by App Server with message to show customer" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "get": { + "tags": [ + "Gateway" + ], + "summary": "Call the context gateway", + "description": "Call the context gateway, which is used to manipulate certain aspects of context (e.g. selected payment methods, register customer, etc.). Please prefer using the POST version of this endpoint.", + "operationId": "contextGatewayGet", "parameters": [ { - "name": "categoryId", - "in": "path", - "description": "Identifier of a category.", + "name": "appName", + "in": "query", "required": true, "schema": { "type": "string" } }, { - "name": "p", + "name": "data", "in": "query", - "description": "The page number to fetch.", - "required": false, "schema": { - "type": "integer" - } + "type": "object" + }, + "style": "deepObject" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ContextTokenResponse" }, - { - "name": "sw-include-seo-urls", - "in": "header", - "description": "Determines if the response must contain a SeoUrl entity for a product entity", - "required": false, - "schema": { - "type": "boolean" - } + "400": { + "description": "App server communication error" }, + "422": { + "description": "Error provided by App Server with message to show customer" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/currency": { + "post": { + "tags": [ + "System & Context", + "Endpoints supporting Criteria " + ], + "summary": "Fetch currencies", + "description": "Perform a filtered search for currencies.", + "operationId": "readCurrency", + "parameters": [ { "name": "sw-language-id", "in": "header", @@ -21668,15 +21599,13 @@ } ], "requestBody": { + "required": false, "content": { "application/json": { "schema": { "allOf": [ { - "$ref": "#/components/schemas/ProductListingCriteria" - }, - { - "$ref": "#/components/schemas/ProductListingFlags" + "$ref": "#/components/schemas/NoneFieldsCriteria" } ] } @@ -21685,14 +21614,7 @@ }, "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" - } - } - } + "$ref": "#/components/responses/CurrencyListResponse" } }, "security": [ @@ -21703,30 +21625,13 @@ }, "get": { "tags": [ - "Product" + "System & Context", + "Endpoints supporting Criteria " ], - "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.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", - "operationId": "readProductListingGet", + "summary": "Fetch currencies", + "description": "Perform a filtered search for currencies.", + "operationId": "readCurrencyGet", "parameters": [ - { - "name": "categoryId", - "in": "path", - "description": "Identifier of a category.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "sw-include-seo-urls", - "in": "header", - "description": "Determines if the response must contain a SeoUrl entity for a product entity", - "required": false, - "schema": { - "type": "boolean" - } - }, { "name": "sw-language-id", "in": "header", @@ -21741,13 +21646,7 @@ "$ref": "#/components/parameters/criteriaPage" }, { - "name": "limit", - "in": "query", - "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.", - "schema": { - "type": "integer", - "minimum": 0 - } + "$ref": "#/components/parameters/criteriaLimit" }, { "$ref": "#/components/parameters/criteriaTerm" @@ -21773,9 +21672,6 @@ { "$ref": "#/components/parameters/criteriaAggregations" }, - { - "$ref": "#/components/parameters/criteriaFields" - }, { "$ref": "#/components/parameters/criteriaGrouping" }, @@ -21789,107 +21685,12 @@ "$ref": "#/components/parameters/criteriaExcludes" }, { - "name": "order", - "in": "query", - "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.", - "schema": { - "type": "string" - } - }, - { - "name": "p", - "in": "query", - "description": "Search result page", - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "manufacturer", - "in": "query", - "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", - "schema": { - "type": "string" - } - }, - { - "name": "min-price", - "in": "query", - "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", - "schema": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - { - "name": "max-price", - "in": "query", - "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", - "schema": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - { - "name": "rating", - "in": "query", - "description": "Filter products with a minimum average rating.", - "schema": { - "type": "integer" - } - }, - { - "name": "shipping-free", - "in": "query", - "description": "Filters products that are marked as shipping-free.", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "properties", - "in": "query", - "description": "Filters products by their properties. List of property identifiers separated by a `|`.", - "schema": { - "type": "string" - } - }, - { - "name": "reduce-aggregations", - "in": "query", - "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.", - "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - { - "$ref": "#/components/parameters/noAggregations" - }, - { - "$ref": "#/components/parameters/onlyAggregations" + "$ref": "#/components/parameters/CompressedNoneFieldsCriteria" } ], "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" - } - } - } + "$ref": "#/components/responses/CurrencyListResponse" } }, "security": [ @@ -21899,25 +21700,16 @@ ] } }, - "/navigation/{activeId}/{rootId}": { + "/shipping-method": { "post": { "tags": [ - "Category", + "Payment & Shipping", "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", + "summary": "Fetch shipping methods", + "description": "Perform a filtered search for shipping methods.\n\n**Available Associations:**\n- `prices` - Shipping method price configurations (based on current cart and context)\n- `deliveryTime` - Delivery time information (min/max days, unit)\n- `media` - Media/images associated with the shipping method (loaded by default)\n- `availabilityRule` - Availability rule determining when this method is available\n- `tax` - Tax configuration for the shipping method\n\n**Example with associations:**\n```json\n{\n \"associations\": {\n \"prices\": {},\n \"deliveryTime\": {}\n }\n}\n```\n\nNote: The `prices` association is essential for accessing shipping cost configurations.", + "operationId": "readShippingMethod", "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": "sw-language-id", "in": "header", @@ -21943,78 +21735,61 @@ } }, { - "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": { - "oneOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "$ref": "#/components/schemas/NavigationType" - } - ] - } - }, - { - "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, + "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": { - "oneOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "$ref": "#/components/schemas/NavigationType" - } - ] + "type": "boolean" } } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { "allOf": [ { - "$ref": "#/components/schemas/NoneFieldsCriteria" - }, - { - "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": { + "$ref": "#/components/schemas/Criteria" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "required": [ + "elements" + ], + "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", "type": "object" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ShippingMethod" + } } - } + }, + "type": "object" }, - "type": "object" - } - ] - } - } - } - }, - "responses": { - "200": { - "description": "All available navigations", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/NavigationRouteResponse" + { + "$ref": "#/components/schemas/EntitySearchResult" + } + ] } } } @@ -22028,22 +21803,13 @@ }, "get": { "tags": [ - "Category", + "Payment & Shipping", "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": "readNavigationGet", + "summary": "Fetch shipping methods", + "description": "Perform a filtered search for shipping methods.\n\n**Available Associations:**\n- `prices` - Shipping method price configurations (graduated prices, quantity-based pricing)\n- `deliveryTime` - Delivery time information (min/max days, unit)\n- `media` - Media/images associated with the shipping method (loaded by default)\n- `availabilityRule` - Availability rule determining when this method is available\n- `tax` - Tax configuration for the shipping method\n\nNote: The `prices` association is essential for accessing shipping cost configurations.", + "operationId": "readShippingMethodGet", "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": "sw-language-id", "in": "header", @@ -22054,64 +21820,6 @@ "pattern": "^[0-9a-f]{32}$" } }, - { - "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": { - "oneOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "$ref": "#/components/schemas/NavigationType" - } - ] - } - }, - { - "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": { - "oneOf": [ - { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - { - "$ref": "#/components/schemas/NavigationType" - } - ] - } - }, - { - "name": "depth", - "in": "query", - "description": "Determines the depth of fetched navigation levels.", - "required": false, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "name": "buildTree", - "in": "query", - "description": "Return the categories as a tree or as a flat list.", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "object" - } - }, - "style": "deepObject", - "explode": true - }, { "$ref": "#/components/parameters/criteriaPage" }, @@ -22142,6 +21850,9 @@ { "$ref": "#/components/parameters/criteriaAggregations" }, + { + "$ref": "#/components/parameters/criteriaFields" + }, { "$ref": "#/components/parameters/criteriaGrouping" }, @@ -22155,16 +21866,188 @@ "$ref": "#/components/parameters/criteriaExcludes" }, { - "$ref": "#/components/parameters/CompressedNoneFieldsCriteria" + "$ref": "#/components/parameters/CompressedCriteria" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/ShippingMethodListResponse" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/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" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AccountNewsletterRecipient" + } + } + } + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ], + "parameters": [ + { + "name": "sw-include-search-info", + "in": "header", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "0", + "1" + ], + "default": "1" + } + } + ] + } + }, + "/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": { + "type": "object", + "required": [ + "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" + }, + "birthdayDay": { + "description": "Birthday day", + "type": "integer" + }, + "birthdayMonth": { + "description": "Birthday month", + "type": "integer" + }, + "birthdayYear": { + "description": "Birthday year", + "type": "integer" + } + }, + "oneOf": [ + { + "properties": { + "accountType": { + "description": "Type of the customer account. Default value is 'private'.", + "type": "string", + "enum": [ + "private" + ], + "default": "private" + }, + "company": { + "type": "null" + }, + "vatIds": { + "type": "null" + } + } + }, + { + "required": [ + "accountType", + "company", + "vatIds" + ], + "properties": { + "accountType": { + "description": "Type of the customer account. Can be `private` or `business`.", + "type": "string", + "enum": [ + "business" + ] + }, + "company": { + "description": "Company of the customer. Only required when `accountType` is `business`.", + "type": "string" + }, + "vatIds": { + "description": "VAT IDs of the customer's company. Only valid when `accountType` is `business`.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + } + } + } + ] + } + } } - ], + }, "responses": { "200": { - "description": "All available navigations", + "description": "Returns a success response indicating a successful update", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/NavigationRouteResponse" + "$ref": "#/components/schemas/SuccessResponse" } } } @@ -22172,166 +22055,56 @@ }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/salutation": { + "/account/change-email": { "post": { "tags": [ - "System & Context", - "Endpoints supporting Criteria " - ], - "summary": "Fetch salutations", - "description": "Fetches salutations with a criteria obj.", - "operationId": "readSalutation", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" - } - } + "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": false, + "required": true, "content": { "application/json": { "schema": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "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": { - "$ref": "#/components/responses/SalutationListResponse" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - }, - "get": { - "tags": [ - "System & Context", - "Endpoints supporting Criteria " - ], - "summary": "Fetch salutations", - "description": "Perform a filtered search for salutations.", - "operationId": "readSalutationGet", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "$ref": "#/components/parameters/criteriaPage" - }, - { - "$ref": "#/components/parameters/criteriaLimit" - }, - { - "$ref": "#/components/parameters/criteriaTerm" - }, - { - "$ref": "#/components/parameters/criteriaFilter" - }, - { - "$ref": "#/components/parameters/criteriaIds" - }, - { - "$ref": "#/components/parameters/criteriaQuery" - }, - { - "$ref": "#/components/parameters/criteriaAssociations" - }, - { - "$ref": "#/components/parameters/criteriaPostFilter" - }, - { - "$ref": "#/components/parameters/criteriaSort" - }, - { - "$ref": "#/components/parameters/criteriaAggregations" - }, - { - "$ref": "#/components/parameters/criteriaFields" - }, - { - "$ref": "#/components/parameters/criteriaGrouping" - }, - { - "$ref": "#/components/parameters/criteriaTotalCountMode" - }, - { - "$ref": "#/components/parameters/criteriaIncludes" - }, - { - "$ref": "#/components/parameters/criteriaExcludes" - }, - { - "$ref": "#/components/parameters/CompressedCriteria" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/SalutationListResponse" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/context": { - "get": { - "tags": [ - "System & Context" - ], - "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.", + "description": "Returns a success response indicating a successful update", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SalesChannelContext" + "$ref": "#/components/schemas/SuccessResponse" } } } @@ -22339,62 +22112,32 @@ }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] - }, - "patch": { + } + }, + "/account/change-language": { + "post": { "tags": [ - "System & Context" + "Profile" ], - "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": "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": { - "currencyId": { - "description": "Currency", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "languageId": { - "description": "Language", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "billingAddressId": { - "description": "Billing Address", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "shippingAddressId": { - "description": "Shipping Address", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "paymentMethodId": { - "description": "Payment Method", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "shippingMethodId": { - "description": "Shipping Method", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryId": { - "description": "Country", - "type": "string", - "pattern": "^[0-9a-f]{32}$" - }, - "countryStateId": { - "description": "Country State", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "language": { + "description": "New languageId", + "type": "string" } }, "type": "object" @@ -22404,32 +22147,54 @@ }, "responses": { "200": { - "$ref": "#/components/responses/ContextTokenResponse" + "description": "Returns a success response indicating a successful update", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SuccessResponse" + } + } + } } }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/context/gateway": { + "/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": [ - "appName" + "password", + "newPassword", + "newPasswordConfirm" ], "properties": { - "appName": { + "password": { + "description": "Current password of the customer", "type": "string" }, - "data": { - "type": "object" + "newPassword": { + "description": "New Password for the customer", + "type": "string" + }, + "newPasswordConfirm": { + "description": "Confirmation of the new password", + "type": "string" } }, "type": "object" @@ -22437,102 +22202,13 @@ } } }, - "tags": [ - "Gateway" - ], - "summary": "Call the context gateway", - "description": "Call the context gateway, which is used to manipulate certain aspects of context (e.g. selected payment methods, register customer, etc.).", - "operationId": "contextGateway", - "responses": { - "200": { - "$ref": "#/components/responses/ContextTokenResponse" - }, - "400": { - "description": "App server communication error" - }, - "422": { - "description": "Error provided by App Server with message to show customer" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - }, - "get": { - "tags": [ - "Gateway" - ], - "summary": "Call the context gateway", - "description": "Call the context gateway, which is used to manipulate certain aspects of context (e.g. selected payment methods, register customer, etc.). Please prefer using the POST version of this endpoint.", - "operationId": "contextGatewayGet", - "parameters": [ - { - "name": "appName", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "data", - "in": "query", - "schema": { - "type": "object" - }, - "style": "deepObject" - } - ], - "responses": { - "200": { - "$ref": "#/components/responses/ContextTokenResponse" - }, - "400": { - "description": "App server communication error" - }, - "422": { - "description": "Error provided by App Server with message to show customer" - } - }, - "security": [ - { - "ApiKey": [] - } - ] - } - }, - "/sitemap": { - "get": { - "tags": [ - "Sitemap & Routes" - ], - "summary": "Fetch sitemaps", - "description": "Fetches a list of compressed sitemap files, which are often used by search engines.", - "operationId": "readSitemap", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } - ], "responses": { "200": { - "description": "Returns a list of available sitemaps.", + "description": "Returns a success response indicating a successful update.", "content": { "application/json": { "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/Sitemap" - } + "$ref": "#/components/schemas/SuccessResponse" } } } @@ -22540,55 +22216,46 @@ }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/sitemap/{filePath}": { - "get": { + "/account/convert-guest": { + "post": { "tags": [ - "Sitemap & Routes" + "Profile" ], - "summary": "Download sitemap file", - "description": "Downloads the sitemap file from the configured sitemap storage.", - "operationId": "getSitemapFile", - "parameters": [ - { - "name": "filePath", - "in": "path", - "description": "The path to the sitemap file", - "required": true, - "schema": { - "type": "string", - "pattern": ".*\\.(xml|gz)$" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "summary": "Convert a guest customer to a registered customer", + "description": "Takes a password to convert a guest customer to a registered customer. The customer can then log in with the provided password in the future.", + "operationId": "convertGuest", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "password" + ], + "properties": { + "password": { + "description": "New Password for the customer", + "type": "string" + } + }, + "type": "object" + } } } - ], + }, "responses": { "200": { - "description": "Returns the blob to download.", + "description": "Returns a success response indicating a successful update.", "content": { - "application/xml": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "application/gzip": { + "application/json": { "schema": { - "type": "string", - "format": "binary" + "$ref": "#/components/schemas/SuccessResponse" } } } @@ -22596,186 +22263,113 @@ }, "security": [ { - "ApiKey": [] - } - ] - } - }, - "/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" - } - }, - { - "name": "fileName", - "in": "path", - "description": "File Name", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "" - } - }, - "security": [ - { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/_info/routes": { - "get": { - "summary": "Get API routes", - "operationId": "getRoutes", + "/account/customer-recovery-is-expired": { + "post": { "tags": [ - "System Info & Health Check" + "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" + } + } + } + }, "responses": { "200": { - "description": "Successful operation", + "description": "Returns a CustomerRecoveryIsExpiredResponse that indicates if the hash is expired or not.", "content": { "application/json": { "schema": { "type": "object", - "required": [ - "endpoints" - ], "properties": { - "endpoints": { + "data": { "type": "array", "items": { "type": "object", - "required": [ - "methods", - "path" - ], "properties": { - "methods": { - "type": "array", - "items": { - "type": "string" - } - }, - "path": { - "type": "string" + "isExpired": { + "type": "boolean" } - } + }, + "required": [ + "isExpired" + ] } + }, + "apiAlias": { + "enum": [ + "array_struct" + ], + "type": "string" } } } } } } - } + }, + "security": [ + { + "ApiKey": [] + } + ] } }, - "/document/download/{documentId}/{deepLinkCode}": { + "/account/customer": { "post": { "tags": [ - "Document" - ], - "summary": "Download generated document", - "description": "Returns 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" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "If a document is rendered on the fly the provided language id is added to fallback languages while the order language has priority. It does not change already generated documents.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } + "Profile", + "Endpoints supporting Criteria " ], + "summary": "Get information about current customer", + "description": "Returns information about the current customer.\n\n**Available Associations:**\n- `group` - Customer group determining pricing and permissions\n- `language` - Preferred language for customer communication\n- `lastPaymentMethod` - Last used payment method by the customer\n- `defaultBillingAddress` - Default billing address for the customer\n- `activeBillingAddress` - Currently active billing address in the session\n- `defaultShippingAddress` - Default shipping address for the customer\n- `activeShippingAddress` - Currently active shipping address in the session\n- `salutation` - Customer salutation (e.g., Mr., Mrs., Ms.)\n- `addresses` - All addresses saved for the customer\n- `tags` - Tags assigned to the customer for organization and segmentation", + "operationId": "readCustomer", "requestBody": { "required": false, "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "email": { - "type": "string" - }, - "zipcode": { - "type": "string" + "allOf": [ + { + "$ref": "#/components/schemas/NoneFieldsCriteria" } - }, - "description": "Required for guest orders to verify the user; ignored for orders with logged-in user." + ] } } } }, "responses": { "200": { - "description": "Success", + "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/pdf": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "text/html": { - "schema": { - "type": "string" - } - }, - "application/xml": { + "application/json": { "schema": { - "type": "string" + "$ref": "#/components/schemas/Customer" } } } - }, - "204": { - "description": "DEPRECATED: Returns a no content response when no document is found. Will be changed in v6.8.0.0 and returns a 404 response instead." - }, - "403": { - "description": "Forbidden." - }, - "404": { - "description": "Document not found." - }, - "406": { - "description": "The requested mime type is not supported." } }, "security": [ @@ -22783,95 +22377,69 @@ "ApiKey": [], "ContextToken": [] } - ] - }, - "get": { - "tags": [ - "Document" ], - "summary": "Download generated document", - "description": "Returns generated document to download.", - "operationId": "downloadGet", "parameters": [ { - "name": "documentId", - "in": "path", - "required": true, + "name": "sw-include-search-info", + "in": "header", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", + "required": false, "schema": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "deepLinkCode", - "required": true, - "in": "path", - "schema": { - "type": "string" + "enum": [ + "0", + "1" + ], + "default": "1" } - }, + } + ] + }, + "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": [ { - "name": "email", - "required": false, - "in": "query", - "schema": { - "type": "string" - }, - "description": "Required for guest orders to verify the user; ignored for orders with logged-in user." - }, + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/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": "zipcode", - "required": false, - "in": "query", + "name": "addressId", + "in": "path", + "description": "ID of the address to be deleted.", + "required": true, "schema": { "type": "string" - }, - "description": "Required for guest orders to verify the user; ignored for orders with logged-in user." - }, - { - "name": "sw-language-id", - "in": "header", - "description": "If a document is rendered on the fly the provided language id is added to fallback languages while the order language has priority. It does not change already generated documents.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" } } ], "responses": { - "200": { - "description": "Success", - "content": { - "application/pdf": { - "schema": { - "type": "string", - "format": "binary" - } - }, - "text/html": { - "schema": { - "type": "string" - } - }, - "application/xml": { - "schema": { - "type": "string" - } - } - } - }, "204": { - "description": "DEPRECATED: Returns a no content response when no document is found. Will be changed in v6.8.0.0 and returns a 404 response instead." - }, - "403": { - "description": "Forbidden." - }, - "404": { - "description": "Document not found." + "description": "No Content response, when the address has been deleted" }, - "406": { - "description": "The requested mime type is not supported." + "400": { + "description": "Response containing a list of errors, most likely due to the address being in use" } }, "security": [ @@ -22879,34 +22447,31 @@ "ApiKey": [], "ContextToken": [] } - ] - } - }, - "/app-system/{name}/generate-token": { - "post": { + ] + }, + "patch": { "tags": [ - "App system" + "Address" ], - "summary": "Generate JWT token for app system backend", - "description": "Generate JWT token for authenticated communication with the app server", - "operationId": "generateJWTAppSystemAppServer", + "summary": "Modify an address of a customer", + "description": "Modifies an existing address of a customer.", + "operationId": "updateCustomerAddress", "parameters": [ { + "name": "addressId", "in": "path", - "name": "name", + "description": "Address ID", "required": true, - "description": "Name of the app", "schema": { "type": "string" } } ], "requestBody": { - "required": false, "content": { "application/json": { "schema": { - "type": "object" + "$ref": "#/components/schemas/CustomerAddressBody" } } } @@ -22917,19 +22482,14 @@ "content": { "application/json": { "schema": { - "type": "object", - "properties": { - "token": { - "type": "string" - }, - "expires": { - "type": "string", - "format": "date-time" + "allOf": [ + { + "$ref": "#/components/schemas/CustomerAddress" }, - "shopId": { - "type": "string" + { + "$ref": "#/components/schemas/CustomerAddressRead" } - } + ] } } } @@ -22937,54 +22497,21 @@ }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/shipping-method": { + "/account/list-address": { "post": { "tags": [ - "Payment & Shipping", + "Address", "Endpoints supporting Criteria " ], - "summary": "Fetch shipping methods", - "description": "Perform a filtered search for shipping methods.\n\n**Available Associations:**\n- `prices` - Shipping method price configurations (based on current cart and context)\n- `deliveryTime` - Delivery time information (min/max days, unit)\n- `media` - Media/images associated with the shipping method (loaded by default)\n- `availabilityRule` - Availability rule determining when this method is available\n- `tax` - Tax configuration for the shipping method\n\n**Example with associations:**\n```json\n{\n \"associations\": {\n \"prices\": {},\n \"deliveryTime\": {}\n }\n}\n```\n\nNote: The `prices` association is essential for accessing shipping cost configurations.", - "operationId": "readShippingMethod", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" - } - }, - { - "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": "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": { @@ -23007,26 +22534,18 @@ "schema": { "allOf": [ { + "type": "object", "required": [ "elements" ], "properties": { - "total": { - "description": "Total amount", - "type": "integer" - }, - "aggregations": { - "description": "aggregation result", - "type": "object" - }, "elements": { "type": "array", "items": { - "$ref": "#/components/schemas/ShippingMethod" + "$ref": "#/components/schemas/CustomerAddress" } } - }, - "type": "object" + } }, { "$ref": "#/components/schemas/EntitySearchResult" @@ -23039,176 +22558,421 @@ }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } - ] - }, - "get": { - "tags": [ - "Payment & Shipping", - "Endpoints supporting Criteria " ], - "summary": "Fetch shipping methods", - "description": "Perform a filtered search for shipping methods.\n\n**Available Associations:**\n- `prices` - Shipping method price configurations (graduated prices, quantity-based pricing)\n- `deliveryTime` - Delivery time information (min/max days, unit)\n- `media` - Media/images associated with the shipping method (loaded by default)\n- `availabilityRule` - Availability rule determining when this method is available\n- `tax` - Tax configuration for the shipping method\n\nNote: The `prices` association is essential for accessing shipping cost configurations.", - "operationId": "readShippingMethodGet", "parameters": [ { - "name": "sw-language-id", + "name": "sw-include-search-info", "in": "header", - "description": "Instructs Shopware to return the response in the given language.", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", "required": false, "schema": { "type": "string", - "pattern": "^[0-9a-f]{32}$" + "enum": [ + "0", + "1" + ], + "default": "1" } + } + ] + } + }, + "/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" + }, + "password": { + "description": "Password", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "$ref": "#/components/responses/ContextTokenResponse" }, + "401": { + "description": "If credentials are incorrect an error is returned", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + } + } + } + } + }, + "security": [ { - "$ref": "#/components/parameters/criteriaPage" - }, - { - "$ref": "#/components/parameters/criteriaLimit" - }, - { - "$ref": "#/components/parameters/criteriaTerm" - }, - { - "$ref": "#/components/parameters/criteriaFilter" - }, - { - "$ref": "#/components/parameters/criteriaIds" - }, - { - "$ref": "#/components/parameters/criteriaQuery" - }, - { - "$ref": "#/components/parameters/criteriaAssociations" - }, - { - "$ref": "#/components/parameters/criteriaPostFilter" - }, - { - "$ref": "#/components/parameters/criteriaSort" - }, - { - "$ref": "#/components/parameters/criteriaAggregations" - }, - { - "$ref": "#/components/parameters/criteriaFields" - }, - { - "$ref": "#/components/parameters/criteriaGrouping" - }, - { - "$ref": "#/components/parameters/criteriaTotalCountMode" - }, - { - "$ref": "#/components/parameters/criteriaIncludes" - }, - { - "$ref": "#/components/parameters/criteriaExcludes" + "ApiKey": [] + } + ] + } + }, + "/account/login/imitate-customer": { + "post": { + "tags": [ + "Login & Registration" + ], + "summary": "Imitate the log in as a customer", + "description": "Imitate the log in as a customer given a generated token.", + "operationId": "imitateCustomerLogin", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "required": [ + "token", + "customerId", + "userId" + ], + "properties": { + "token": { + "description": "Generated customer impersonation token", + "type": "string" + }, + "customerId": { + "description": "ID of the customer", + "type": "string" + }, + "userId": { + "description": "ID of the user who generated the token", + "type": "string" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "$ref": "#/components/responses/ContextTokenResponse" }, + "400": { + "description": "If the token is incorrect an error is returned", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/failure" + } + } + } + } + }, + "security": [ { - "$ref": "#/components/parameters/CompressedCriteria" + "ApiKey": [] } + ] + } + }, + "/account/logout": { + "post": { + "tags": [ + "Login & Registration" ], + "summary": "Log out a customer", + "description": "Logs out a customer.", + "operationId": "logoutCustomer", "responses": { "200": { - "$ref": "#/components/responses/ShippingMethodListResponse" + "$ref": "#/components/responses/ContextTokenResponse" + }, + "403": { + "$ref": "#/components/responses/403" } }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/landing-page/{landingPageId}": { + "/account/register-confirm": { "post": { "tags": [ - "Content", - "Endpoints supporting Criteria " + "Login & Registration" ], - "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.\n\n**Available Associations:**\n- `cmsPage` - CMS page layout for the landing page\n- `seoUrls` - SEO-friendly URLs for the landing page across different sales channels", - "operationId": "readLandingPage", - "parameters": [ - { - "name": "landingPageId", - "in": "path", - "description": "Identifier of the landing page.", - "required": true, - "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, + "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." }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } + "404": { + "description": "No hash provided" }, + "412": { + "description": "The customer has already been confirmed" + } + }, + "security": [ { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" + "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": { + "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" + }, + "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" + } + }, + "required": [ + "email", + "password", + "firstName", + "lastName", + "acceptedDataProtection", + "storefrontUrl", + "billingAddress" + ], + "oneOf": [ + { + "properties": { + "accountType": { + "description": "Type of the customer account. Default value is 'private'.", + "type": "string", + "enum": [ + "private" + ], + "default": "private" + }, + "company": { + "type": "null" + }, + "vatIds": { + "type": "null" + } + } + }, + { + "required": [ + "accountType", + "company", + "vatIds" + ], + "properties": { + "accountType": { + "description": "Type of the customer account. Can be `private` or `business`.", + "type": "string", + "enum": [ + "business" + ] + }, + "company": { + "description": "Company of the customer. Only required when `accountType` is `business`.", + "type": "string" + }, + "vatIds": { + "description": "VAT IDs of the customer's company. Only valid when `accountType` is `business`.", + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1 + } + } + } + ], + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Customer" + } + } } } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/account/recovery-password-confirm": { + "post": { + "tags": [ + "Profile" ], + "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": { - "allOf": [ - { - "$ref": "#/components/schemas/Criteria" + "required": [ + "hash", + "newPassword", + "newPasswordConfirm" + ], + "properties": { + "hash": { + "description": "Parameter from the link in the confirmation mail sent in Step 1", + "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" - }, - { - "$ref": "#/components/schemas/ProductListingCriteria" - } - ] + "newPassword": { + "description": "New password for the customer", + "type": "string" + }, + "newPasswordConfirm": { + "description": "Confirmation of the new password", + "type": "string" } - ] + }, + "type": "object" } } } }, "responses": { "200": { - "description": "The loaded landing page with cms page", + "description": "Returns a success response indicating a successful update.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/LandingPage" + "$ref": "#/components/schemas/SuccessResponse" } } } - }, - "404": { - "$ref": "#/components/responses/404" } }, "security": [ @@ -23216,199 +22980,50 @@ "ApiKey": [] } ] - }, - "get": { + } + }, + "/account/recovery-password": { + "post": { "tags": [ - "Content", - "Endpoints supporting Criteria " + "Profile" ], - "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.\n\n**Available Associations:**\n- `cmsPage` - CMS page layout for the landing page\n- `seoUrls` - SEO-friendly URLs for the landing page across different sales channels", - "operationId": "readLandingPageGet", - "parameters": [ - { - "name": "landingPageId", - "in": "path", - "description": "Identifier of the landing page.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" - } - }, - { - "$ref": "#/components/parameters/criteriaPage" - }, - { - "name": "limit", - "in": "query", - "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.", - "schema": { - "type": "integer", - "minimum": 0 - } - }, - { - "$ref": "#/components/parameters/criteriaTerm" - }, - { - "$ref": "#/components/parameters/criteriaFilter" - }, - { - "$ref": "#/components/parameters/criteriaIds" - }, - { - "$ref": "#/components/parameters/criteriaQuery" - }, - { - "$ref": "#/components/parameters/criteriaAssociations" - }, - { - "$ref": "#/components/parameters/criteriaPostFilter" - }, - { - "$ref": "#/components/parameters/criteriaSort" - }, - { - "$ref": "#/components/parameters/criteriaAggregations" - }, - { - "$ref": "#/components/parameters/criteriaFields" - }, - { - "$ref": "#/components/parameters/criteriaGrouping" - }, - { - "$ref": "#/components/parameters/criteriaTotalCountMode" - }, - { - "$ref": "#/components/parameters/criteriaIncludes" - }, - { - "$ref": "#/components/parameters/criteriaExcludes" - }, - { - "name": "order", - "in": "query", - "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.", - "schema": { - "type": "string" - } - }, - { - "name": "p", - "in": "query", - "description": "Search result page", - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "manufacturer", - "in": "query", - "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", - "schema": { - "type": "string" - } - }, - { - "name": "min-price", - "in": "query", - "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", - "schema": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - { - "name": "max-price", - "in": "query", - "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", - "schema": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - { - "name": "rating", - "in": "query", - "description": "Filter products with a minimum average rating.", - "schema": { - "type": "integer" - } - }, - { - "name": "shipping-free", - "in": "query", - "description": "Filters products that are marked as shipping-free.", - "schema": { - "type": "boolean", - "default": false - } - }, - { - "name": "properties", - "in": "query", - "description": "Filters products by their properties. List of property identifiers separated by a `|`.", - "schema": { - "type": "string" - } - }, - { - "name": "reduce-aggregations", - "in": "query", - "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.", - "schema": { - "oneOf": [ - { - "type": "string" + "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": { + "required": [ + "email", + "storefrontUrl" + ], + "properties": { + "email": { + "description": "E-Mail address to identify the customer", + "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.", + "type": "string" + } }, - { - "type": "null" - } - ] + "type": "object" + } } } - ], + }, "responses": { "200": { - "description": "The loaded landing page with cms page", + "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/LandingPage" + "$ref": "#/components/schemas/SuccessResponse" } } } - }, - "404": { - "$ref": "#/components/responses/404" } }, "security": [ @@ -23418,46 +23033,123 @@ ] } }, - "/cookie-groups": { - "get": { + "/account/address/default-shipping/{addressId}": { + "patch": { "tags": [ - "Experimental", - "Cookies" + "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" + } + } ], - "summary": "Fetch all cookie groups", - "description": "Fetch all cookie groups available in the system with configuration hash. Experimental API, not part of our backwards compatibility promise, thus this API can introduce breaking changes at any time.", - "operationId": "readCookieGroups", "responses": { "200": { - "description": "Successful response with a collection of cookie groups and their configuration hash.", + "description": "" + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/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": [], + "ContextToken": [] + } + ] + } + }, + "/account/address": { + "post": { + "tags": [ + "Address" + ], + "summary": "Create a new address for a customer", + "description": "Creates a new address for a customer.", + "operationId": "createCustomerAddress", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CustomerAddressBody" + } + } + } + }, + "responses": { + "200": { + "description": "", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CookieRouteResponse" + "allOf": [ + { + "$ref": "#/components/schemas/CustomerAddress" + }, + { + "$ref": "#/components/schemas/CustomerAddressRead" + } + ] } } } - }, - "400": { - "$ref": "#/components/responses/400" } }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] } }, - "/country": { + "/salutation": { "post": { "tags": [ "System & Context", "Endpoints supporting Criteria " ], - "summary": "Fetch countries", - "description": "Perform a filtered search for countries\n\n**Available Associations:**\n- `states` - States/provinces/regions within the country", - "operationId": "readCountry", + "summary": "Fetch salutations", + "description": "Fetches salutations with a criteria obj.", + "operationId": "readSalutation", "parameters": [ { "name": "sw-language-id", @@ -23500,7 +23192,7 @@ }, "responses": { "200": { - "$ref": "#/components/responses/CountryListResponse" + "$ref": "#/components/responses/SalutationListResponse" } }, "security": [ @@ -23514,9 +23206,9 @@ "System & Context", "Endpoints supporting Criteria " ], - "summary": "Fetch countries", - "description": "Perform a filtered search for countries\n\n**Available Associations:**\n- `states` - States/provinces/regions within the country", - "operationId": "readCountryGet", + "summary": "Fetch salutations", + "description": "Perform a filtered search for salutations.", + "operationId": "readSalutationGet", "parameters": [ { "name": "sw-language-id", @@ -23579,7 +23271,131 @@ ], "responses": { "200": { - "$ref": "#/components/responses/CountryListResponse" + "$ref": "#/components/responses/SalutationListResponse" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/handle-payment": { + "post": { + "tags": [ + "Payment & Shipping" + ], + "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": "Redirect to external payment provider", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redirectUrl": { + "type": "string" + } + }, + "required": [ + "redirectUrl" + ] + } + } + } + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "get": { + "tags": [ + "Payment & Shipping" + ], + "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. Please prefer the POST version of this endpoint.", + "operationId": "handlePaymentMethodGet", + "parameters": [ + { + "name": "orderId", + "in": "query", + "required": true, + "description": "Identifier of an order", + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + }, + { + "name": "finishUrl", + "in": "query", + "description": "URL to which the client should be redirected after successful payment", + "schema": { + "type": "string" + } + }, + { + "name": "errorUrl", + "in": "query", + "description": "URL to which the client should be redirected after erroneous payment", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Redirect to external payment provider", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "redirectUrl": { + "type": "string" + } + }, + "required": [ + "redirectUrl" + ] + } + } + } } }, "security": [ @@ -23589,53 +23405,79 @@ ] } }, - "/_info/openapi3.json": { + "/checkout/cart": { "get": { "tags": [ - "System Info & Health Check" + "Cart" ], - "summary": "Get OpenAPI Specification", - "description": "Get information about the store API in OpenAPI format.", - "operationId": "api-info", + "summary": "Fetch or create a cart", + "description": "Used to fetch the current cart or for creating a new one.", + "operationId": "readCart", "parameters": [ { - "name": "type", - "in": "query", - "description": "Type of the api", + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, "schema": { "type": "string", - "enum": [ - "jsonapi", - "json" - ] + "pattern": "^[0-9a-f]{32}$" } } ], "responses": { "200": { - "$ref": "#/components/responses/OpenApi3" + "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": [] + } + ] } }, - "/search-suggest": { + "/checkout/cart/line-item": { "post": { "tags": [ - "Product" + "Cart" ], - "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": "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", "parameters": [ - { - "name": "p", - "in": "query", - "description": "The page number to fetch.", - "required": false, - "schema": { - "type": "integer" - } - }, { "name": "sw-language-id", "in": "header", @@ -23645,61 +23487,30 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } - }, - { - "name": "sw-include-search-info", - "in": "header", - "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", - "required": false, - "schema": { - "type": "string", - "enum": [ - "0", - "1" - ], - "default": "1" - } } ], "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" - }, - { - "$ref": "#/components/schemas/ProductListingCriteria" - }, - { - "$ref": "#/components/schemas/ProductListingFlags" - } - ] + "$ref": "#/components/schemas/CartItems" } } } }, "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.", + "description": "The updated cart.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ProductListingResult" + "$ref": "#/components/schemas/Cart" } } } + }, + "400": { + "$ref": "#/components/responses/400" } }, "security": [ @@ -23708,183 +23519,155 @@ } ] }, - "get": { + "delete": { "tags": [ - "Product" - ], - "summary": "Search for products (suggest)", - "description": "Can be used to implement search previews or suggestion listings, that don’t require any interaction.", - "operationId": "searchSuggestGet", - "parameters": [ - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "search", - "in": "query", - "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.", - "required": true, - "schema": { - "type": "string" - } - }, - { - "$ref": "#/components/parameters/criteriaPage" - }, - { - "name": "limit", - "in": "query", - "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.", - "schema": { - "type": "integer", - "minimum": 0 - } - }, - { - "$ref": "#/components/parameters/criteriaTerm" - }, - { - "$ref": "#/components/parameters/criteriaFilter" - }, - { - "$ref": "#/components/parameters/criteriaIds" - }, - { - "$ref": "#/components/parameters/criteriaQuery" - }, - { - "$ref": "#/components/parameters/criteriaAssociations" - }, - { - "$ref": "#/components/parameters/criteriaPostFilter" - }, - { - "$ref": "#/components/parameters/criteriaSort" - }, - { - "$ref": "#/components/parameters/criteriaAggregations" - }, - { - "$ref": "#/components/parameters/criteriaFields" - }, - { - "$ref": "#/components/parameters/criteriaGrouping" - }, - { - "$ref": "#/components/parameters/criteriaTotalCountMode" - }, - { - "$ref": "#/components/parameters/criteriaIncludes" - }, - { - "$ref": "#/components/parameters/criteriaExcludes" - }, - { - "name": "order", - "in": "query", - "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.", - "schema": { - "type": "string" - } - }, - { - "name": "p", - "in": "query", - "description": "Search result page", - "schema": { - "type": "integer", - "default": 1 - } - }, - { - "name": "manufacturer", - "in": "query", - "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", - "schema": { - "type": "string" - } - }, - { - "name": "min-price", - "in": "query", - "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", - "schema": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, - { - "name": "max-price", - "in": "query", - "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", - "schema": { - "type": "integer", - "minimum": 0, - "default": 0 - } - }, + "Cart" + ], + "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": "rating", + "name": "ids", "in": "query", - "description": "Filter products with a minimum average rating.", + "description": "A list of product identifiers.", + "required": true, "schema": { - "type": "integer" + "type": "array", + "items": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } } }, { - "name": "shipping-free", - "in": "query", - "description": "Filters products that are marked as shipping-free.", + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, "schema": { - "type": "boolean", - "default": false + "type": "string", + "pattern": "^[0-9a-f]{32}$" } - }, - { - "name": "properties", - "in": "query", - "description": "Filters products by their properties. List of property identifiers separated by a `|`.", - "schema": { - "type": "string" + } + ], + "responses": { + "200": { + "description": "The updated cart.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Cart" + } + } } - }, + } + }, + "security": [ { - "name": "reduce-aggregations", - "in": "query", - "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.", + "ApiKey": [] + } + ] + }, + "patch": { + "tags": [ + "Cart" + ], + "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", + "parameters": [ + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, "schema": { - "oneOf": [ - { - "type": "string" - }, - { - "type": "null" + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } + } + ], + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CartItems" + } + } + } + }, + "responses": { + "200": { + "description": "The updated cart.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Cart" } - ] + } } - }, + } + }, + "security": [ { - "$ref": "#/components/parameters/noAggregations" - }, + "ApiKey": [] + } + ] + } + }, + "/checkout/cart/line-item/delete": { + "post": { + "tags": [ + "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", + "parameters": [ { - "$ref": "#/components/parameters/onlyAggregations" + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" + } } ], + "requestBody": { + "required": true, + "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}$" + } + } + }, + "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.", + "description": "The updated cart.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ProductListingResult" + "$ref": "#/components/schemas/Cart" } } } @@ -23897,14 +23680,14 @@ ] } }, - "/order/state/cancel": { + "/checkout/order": { "post": { "tags": [ "Order" ], - "summary": "Cancel an order", - "description": "Cancels an order. The order state will be set to 'cancelled'.", - "operationId": "cancelOrder", + "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", "parameters": [ { "name": "sw-language-id", @@ -23918,32 +23701,122 @@ } ], "requestBody": { - "required": true, + "description": "Contains additional metadata which is stored together with the order. It can also contain payment transaction details.", "content": { "application/json": { "schema": { "properties": { - "orderId": { - "description": "The identifier of the order to be canceled.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + "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": "Order", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Order" + } + } + } + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/checkout/gateway": { + "get": { + "tags": [ + "Gateway" + ], + "summary": "Call the checkout gateway", + "description": "Call the checkout gateway, which is used to manipulate certain aspects of the checkout process (e.g. available payment methods).", + "operationId": "checkoutGateway", + "responses": { + "200": { + "description": "Checkout gateway response", + "content": { + "application/json": { + "schema": { + "properties": { + "paymentMethods": { + "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", + "type": "object" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/PaymentMethod" + } + } + }, + "type": "object" + }, + "shippingMethods": { + "properties": { + "total": { + "description": "Total amount", + "type": "integer" + }, + "aggregations": { + "description": "aggregation result", + "type": "object" + }, + "elements": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ShippingMethod" + } + } + }, + "type": "object" + }, + "errors": { + "type": "array", + "items": { + "properties": { + "code": { + "description": "Error code", + "type": "string" + }, + "detail": { + "description": "Error detail", + "type": "string" + }, + "blocking": { + "description": "If the error is blocking", + "type": "boolean" + } + } + } + } } - }, - "type": "object", - "required": [ - "orderId" - ] - } - } - } - }, - "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)", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/StateMachineState" } } } @@ -23951,21 +23824,20 @@ }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] } }, - "/order": { + "/language": { "post": { "tags": [ - "Order", + "System & Context", "Endpoints supporting Criteria " ], - "summary": "Fetch a list of orders", - "description": "List orders of a customer.\n\n**Available Associations:**\n- `stateMachineState` - Current order state (e.g., open, in_progress, completed, cancelled)\n- `primaryOrderDelivery` - Primary delivery information for the order\n- `primaryOrderTransaction` - Primary payment transaction for the order\n- `orderCustomer` - Customer information associated with the order\n- `currency` - Currency used for the order\n- `language` - Language used when placing the order\n- `addresses` - All addresses associated with the order (billing and shipping)\n- `billingAddress` - Billing address for the order\n- `deliveries` - Delivery information including shipping address and tracking\n- `lineItems` - Order line items (products, discounts, fees)\n- `transactions` - Payment transactions for the order\n- `documents` - Generated documents (invoices, delivery notes, credit notes)\n- `tags` - Tags assigned to the order for organization and filtering", - "operationId": "readOrder", + "summary": "Fetch languages", + "description": "Perform a filtered search for languages.\n\n**Available Associations:**\n- `locale` - Locale defining regional settings (date, time, number formats)\n- `translationCode` - Locale used for translating content\n- `children` - Child languages inheriting from this parent language", + "operationId": "readLanguages", "parameters": [ { "name": "sw-language-id", @@ -23993,68 +23865,13 @@ } ], "requestBody": { - "required": true, + "required": false, "content": { "application/json": { "schema": { "allOf": [ { - "$ref": "#/components/schemas/NoneFieldsCriteria" - }, - { - "properties": { - "checkPromotion": { - "description": "Check if the payment method of the order is still changeable.", - "type": "boolean" - }, - "filter": { - "type": "array", - "description": "Pass the deepLinkCode criteria filter to allow for guest user authentification. Not required, if a user (guest or not) is already logged in.", - "items": { - "allOf": [ - { - "type": "object", - "properties": { - "type": { - "type": "string", - "enum": [ - "equals" - ] - }, - "field": { - "type": "string", - "enum": [ - "deepLinkCode" - ] - }, - "value": { - "type": "string" - } - }, - "required": [ - "type", - "field", - "value" - ] - } - ] - } - }, - "email": { - "description": "The email address of the customer. Pass this value to allow for guest user authentification. Not required, if a user (guest or not) is already logged in.", - "type": "string", - "format": "email" - }, - "zipcode": { - "description": "The zip/postal code of the billing address of the customer. Pass this value to allow for guest user authentification. Not required, if a user (guest or not) is already logged in.", - "type": "string" - }, - "login": { - "description": "If set and when handling a guest order, a context token will be returned in the response header with a logged-in session.", - "type": "boolean" - } - }, - "type": "object" + "$ref": "#/components/schemas/Criteria" } ] } @@ -24063,41 +23880,114 @@ }, "responses": { "200": { - "description": "An array of orders and an indicator if the payment of the order can be changed.", - "headers": { - "sw-context-token": { - "description": "Contains sw-context-token value, if login parameter is set to true and a guest order was found and the correct credentials were provided.", - "schema": { - "type": "string" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/OrderRouteResponse" - } - } + "$ref": "#/components/responses/LanguageListResponse" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + }, + "get": { + "tags": [ + "System & Context", + "Endpoints supporting Criteria " + ], + "summary": "Fetch languages", + "description": "Perform a filtered search for languages.\n\n**Available Associations:**\n- `locale` - Locale defining regional settings (date, time, number formats)\n- `translationCode` - Locale used for translating content\n- `children` - Child languages inheriting from this parent language", + "operationId": "readLanguagesGet", + "parameters": [ + { + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, + "schema": { + "type": "string", + "pattern": "^[0-9a-f]{32}$" } + }, + { + "$ref": "#/components/parameters/criteriaPage" + }, + { + "$ref": "#/components/parameters/criteriaLimit" + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaFields" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" + } + ], + "responses": { + "200": { + "$ref": "#/components/responses/LanguageListResponse" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] } }, - "/order/payment": { + "/cms/{id}": { "post": { "tags": [ - "Order" + "Content" ], - "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": "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.\n\n**Available Associations:**\n- `sections` - Content sections within the CMS page (layout blocks containing slots)\n- `previewMedia` - Preview image for the CMS page in admin panel and page selection\n- `landingPages` - Landing pages using this CMS layout", + "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}$" + } + }, { "name": "sw-language-id", "in": "header", @@ -24107,75 +23997,77 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } + }, + { + "name": "sw-include-search-info", + "in": "header", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", + "required": false, + "schema": { + "type": "string", + "enum": [ + "0", + "1" + ], + "default": "1" + } } ], "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}$" + "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" }, - "orderId": { - "description": "The identifier of the order.", - "type": "string", - "pattern": "^[0-9a-f]{32}$" + { + "$ref": "#/components/schemas/ProductListingCriteria" } - }, - "type": "object" + ] } } } }, "responses": { "200": { - "description": "Successfully updated the payment method of the order.", + "description": "The loaded cms page", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/SuccessResponse" + "$ref": "#/components/schemas/CmsPage" } } } + }, + "404": { + "$ref": "#/components/responses/404" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] - } - }, - "/order/download/{orderId}/{downloadId}": { + }, "get": { "tags": [ - "Order" + "Content" ], - "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": "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.\n\n**Available Associations:**\n- `sections` - Content sections within the CMS page (layout blocks containing slots)\n- `previewMedia` - Preview image for the CMS page in admin panel and page selection\n- `landingPages` - Landing pages using this CMS layout", + "operationId": "readCmsGet", "parameters": [ { - "name": "orderId", - "in": "path", - "required": true, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "downloadId", + "name": "id", "in": "path", + "description": "Identifier of the CMS page to be resolved", "required": true, "schema": { "type": "string", @@ -24191,47 +24083,184 @@ "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" + } + }, + { + "$ref": "#/components/parameters/criteriaPage" + }, + { + "name": "limit", + "in": "query", + "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.", + "schema": { + "type": "integer", + "minimum": 0 + } + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaFields" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "name": "order", + "in": "query", + "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.", + "schema": { + "type": "string" + } + }, + { + "name": "p", + "in": "query", + "description": "Search result page", + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "manufacturer", + "in": "query", + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "min-price", + "in": "query", + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "max-price", + "in": "query", + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "rating", + "in": "query", + "description": "Filter products with a minimum average rating.", + "schema": { + "type": "integer" + } + }, + { + "name": "shipping-free", + "in": "query", + "description": "Filters products that are marked as shipping-free.", + "schema": { + "type": "boolean", + "default": false + } + }, + { + "name": "properties", + "in": "query", + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "reduce-aggregations", + "in": "query", + "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.", + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } } ], "responses": { "200": { - "description": "An arbitrary binary file.", + "description": "The loaded cms page", "content": { - "application/octet-stream": { + "application/json": { "schema": { - "type": "string", - "format": "binary" + "$ref": "#/components/schemas/CmsPage" } } } + }, + "404": { + "$ref": "#/components/responses/404" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] } }, - "/product/{productId}/cross-selling": { + "/category": { "post": { "tags": [ - "Product" + "Category", + "Endpoints supporting Criteria " ], - "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", + "summary": "Fetch a list of categories", + "description": "Perform a filtered search for categories.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", + "operationId": "readCategoryList", "parameters": [ - { - "name": "productId", - "in": "path", - "description": "Product ID", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "sw-language-id", "in": "header", @@ -24243,27 +24272,39 @@ } }, { - "name": "sw-include-seo-urls", + "name": "sw-include-search-info", "in": "header", - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", + "description": "Controls whether API search information is included in the response. Default is 1 (enabled), will be 0 (disabled) in the next major version.", "required": false, "schema": { - "type": "boolean" + "type": "string", + "enum": [ + "0", + "1" + ], + "default": "1" } } ], - "responses": { - "200": { - "description": "Found cross sellings", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CrossSellingElementCollection" - } + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "allOf": [ + { + "$ref": "#/components/schemas/Criteria" + } + ] } } } }, + "responses": { + "200": { + "$ref": "#/components/responses/CategoryListResponse" + } + }, "security": [ { "ApiKey": [] @@ -24272,21 +24313,13 @@ }, "get": { "tags": [ - "Product" + "Category", + "Endpoints supporting Criteria " ], - "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": "readProductCrossSellingsGet", + "summary": "Fetch a list of categories", + "description": "Perform a filtered search for categories.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", + "operationId": "readCategoryListGet", "parameters": [ - { - "name": "productId", - "in": "path", - "description": "Product ID", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "sw-language-id", "in": "header", @@ -24298,25 +24331,57 @@ } }, { - "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" - } + "$ref": "#/components/parameters/criteriaPage" + }, + { + "$ref": "#/components/parameters/criteriaLimit" + }, + { + "$ref": "#/components/parameters/criteriaTerm" + }, + { + "$ref": "#/components/parameters/criteriaFilter" + }, + { + "$ref": "#/components/parameters/criteriaIds" + }, + { + "$ref": "#/components/parameters/criteriaQuery" + }, + { + "$ref": "#/components/parameters/criteriaAssociations" + }, + { + "$ref": "#/components/parameters/criteriaPostFilter" + }, + { + "$ref": "#/components/parameters/criteriaSort" + }, + { + "$ref": "#/components/parameters/criteriaAggregations" + }, + { + "$ref": "#/components/parameters/criteriaFields" + }, + { + "$ref": "#/components/parameters/criteriaGrouping" + }, + { + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "$ref": "#/components/parameters/CompressedCriteria" } ], "responses": { "200": { - "description": "Found cross sellings", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CrossSellingElementCollection" - } - } - } + "$ref": "#/components/responses/CategoryListResponse" } }, "security": [ @@ -24326,23 +24391,23 @@ ] } }, - "/product/{productId}": { + "/category/{navigationId}": { "post": { "tags": [ - "Product" + "Category", + "Endpoints supporting Criteria " ], - "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.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", - "operationId": "readProductDetail", + "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.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", + "operationId": "readCategory", "parameters": [ { - "name": "productId", - "in": "path", - "description": "Product ID", - "required": true, + "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": "string", - "pattern": "^[0-9a-f]{32}$'" + "type": "boolean" } }, { @@ -24355,15 +24420,6 @@ "pattern": "^[0-9a-f]{32}$" } }, - { - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", - "in": "header", - "name": "sw-include-seo-urls", - "required": false, - "schema": { - "type": "boolean" - } - }, { "name": "sw-include-search-info", "in": "header", @@ -24379,32 +24435,31 @@ } }, { - "description": "Instructs Shopware to skip loading the configurator data", - "in": "query", - "name": "skipConfigurator", - "required": false, + "name": "navigationId", + "in": "path", + "description": "Identifier of the category to be fetched", + "required": true, "schema": { - "type": "boolean" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, { - "description": "Instructs Shopware to skip loading the CMS page data", + "name": "slots", "in": "query", - "name": "skipCmsPage", - "required": false, + "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a '|' character", "schema": { - "type": "boolean" + "type": "string" } } ], "requestBody": { - "required": false, "content": { "application/json": { "schema": { "allOf": [ { - "$ref": "#/components/schemas/NoneFieldsCriteria" + "$ref": "#/components/schemas/ProductListingCriteria" } ] } @@ -24413,11 +24468,11 @@ }, "responses": { "200": { - "description": "Product information along with variant groups and options", + "description": "The loaded category with cms page", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ProductDetailResponse" + "$ref": "#/components/schemas/Category" } } } @@ -24431,20 +24486,20 @@ }, "get": { "tags": [ - "Product" + "Category", + "Endpoints supporting Criteria " ], - "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.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", - "operationId": "readProductDetailGet", + "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.\n\n**Available Associations:**\n- `children` - Child categories within this category for hierarchical navigation\n- `media` - Category image or banner\n- `tags` - Tags for organizing and filtering categories\n- `cmsPage` - CMS page layout for the category\n- `seoUrls` - SEO-friendly URLs for the category across different sales channels", + "operationId": "readCategoryGet", "parameters": [ { - "name": "productId", - "in": "path", - "description": "Product ID", - "required": true, + "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": "string", - "pattern": "^[0-9a-f]{32}$'" + "type": "boolean" } }, { @@ -24458,37 +24513,34 @@ } }, { - "description": "Instructs Shopware to try and resolve SEO URLs for the given navigation item", - "in": "header", - "name": "sw-include-seo-urls", - "required": false, - "schema": { - "type": "boolean" - } - }, - { - "description": "Instructs Shopware to skip loading the configurator data", - "in": "query", - "name": "skipConfigurator", - "required": false, + "name": "navigationId", + "in": "path", + "description": "Identifier of the category to be fetched", + "required": true, "schema": { - "type": "boolean" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } }, { - "description": "Instructs Shopware to skip loading the CMS page data", + "name": "slots", "in": "query", - "name": "skipCmsPage", - "required": false, + "description": "Resolves only the given slot identifiers. The identifiers have to be seperated by a '|' character", "schema": { - "type": "boolean" + "type": "string" } }, { "$ref": "#/components/parameters/criteriaPage" }, { - "$ref": "#/components/parameters/criteriaLimit" + "name": "limit", + "in": "query", + "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.", + "schema": { + "type": "integer", + "minimum": 0 + } }, { "$ref": "#/components/parameters/criteriaTerm" @@ -24514,29 +24566,114 @@ { "$ref": "#/components/parameters/criteriaAggregations" }, + { + "$ref": "#/components/parameters/criteriaFields" + }, { "$ref": "#/components/parameters/criteriaGrouping" }, { - "$ref": "#/components/parameters/criteriaTotalCountMode" + "$ref": "#/components/parameters/criteriaTotalCountMode" + }, + { + "$ref": "#/components/parameters/criteriaIncludes" + }, + { + "$ref": "#/components/parameters/criteriaExcludes" + }, + { + "name": "order", + "in": "query", + "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.", + "schema": { + "type": "string" + } + }, + { + "name": "p", + "in": "query", + "description": "Search result page", + "schema": { + "type": "integer", + "default": 1 + } + }, + { + "name": "manufacturer", + "in": "query", + "description": "Filter by manufacturers. List of manufacturer identifiers separated by a `|`.", + "schema": { + "type": "string" + } + }, + { + "name": "min-price", + "in": "query", + "description": "Filters by a minimum product price. Has to be lower than the `max-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "max-price", + "in": "query", + "description": "Filters by a maximum product price. Has to be higher than the `min-price` filter.", + "schema": { + "type": "integer", + "minimum": 0, + "default": 0 + } + }, + { + "name": "rating", + "in": "query", + "description": "Filter products with a minimum average rating.", + "schema": { + "type": "integer" + } }, { - "$ref": "#/components/parameters/criteriaIncludes" + "name": "shipping-free", + "in": "query", + "description": "Filters products that are marked as shipping-free.", + "schema": { + "type": "boolean", + "default": false + } }, { - "$ref": "#/components/parameters/criteriaExcludes" + "name": "properties", + "in": "query", + "description": "Filters products by their properties. List of property identifiers separated by a `|`.", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/parameters/CompressedNoneFieldsCriteria" + "name": "reduce-aggregations", + "in": "query", + "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.", + "schema": { + "oneOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } } ], "responses": { "200": { - "description": "Product information along with variant groups and options", + "description": "The loaded category with cms page", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/ProductDetailResponse" + "$ref": "#/components/schemas/Category" } } } @@ -24549,15 +24686,55 @@ ] } }, - "/product": { + "/customer/wishlist/add/{productId}": { "post": { "tags": [ - "Product", + "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.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SuccessResponse" + } + } + } + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/customer/wishlist": { + "post": { + "tags": [ + "Wishlist", "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.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", - "operationId": "readProduct", + "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", "parameters": [ { "name": "sw-language-id", @@ -24600,86 +24777,174 @@ }, "responses": { "200": { - "$ref": "#/components/responses/ProductListResponse" + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/WishlistLoadRouteResponse" + } + } + } } }, "security": [ { - "ApiKey": [] + "ApiKey": [], + "ContextToken": [] } ] - }, - "get": { + } + }, + "/customer/wishlist/merge": { + "post": { "tags": [ - "Product", - "Endpoints supporting Criteria " + "Wishlist" ], - "summary": "Fetch a list of products", - "description": "List products that match the given criteria. For performance reasons a limit should always be set.\n\n**Available Associations:**\n- `downloads` - Downloadable files associated with the product (e.g., manuals, digital content)\n- `children` - Product variants that inherit from this parent product\n- `deliveryTime` - Estimated delivery time for the product\n- `tax` - Tax configuration (rate and calculation rules)\n- `manufacturer` - Product manufacturer or brand information\n- `unit` - Product unit of measure (e.g., piece, liter, kg)\n- `cover` - Main product image displayed in listings and detail pages\n- `cmsPage` - Custom CMS page layout for the product detail page\n- `canonicalProduct` - Canonical product reference for variant consolidation and SEO purposes\n- `media` - Product images and media gallery\n- `crossSellings` - Cross-selling configurations (related products, accessories, similar items)\n- `configuratorSettings` - Variant configurator settings defining available options for product variants\n- `productReviews` - Customer reviews and ratings for the product\n- `mainCategories` - Primary category assignments per sales channel for SEO and navigation\n- `seoUrls` - SEO-friendly URLs for the product across different sales channels\n- `options` - Product variant options (e.g., size, color) that define different variants\n- `properties` - Product properties and characteristics for filtering\n- `categories` - Categories this product is assigned to\n- `streams` - Dynamic product streams this product belongs to based on defined filters\n- `categoriesRo` - Read-only category tree including all parent categories for optimized queries\n- `tags` - Tags for organizing and filtering products\n- `seoCategory` - Main category used for SEO URL generation in the current sales channel", - "operationId": "readProductGet", + "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": "Returns a success response.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SuccessResponse" + } + } + } + } + }, + "security": [ + { + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/customer/wishlist/delete/{productId}": { + "delete": { + "tags": [ + "Wishlist" + ], + "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": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, + "name": "productId", + "in": "path", + "description": "The identifier of the product to be removed from the wishlist.", + "required": true, "schema": { "type": "string", "pattern": "^[0-9a-f]{32}$" } + } + ], + "responses": { + "200": { + "description": "Returns a success response indicating a successful removal.", + "content": { + "application/json": { + "schema": { + "$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" + } + } + } + } + }, + "security": [ { - "$ref": "#/components/parameters/criteriaPage" - }, - { - "$ref": "#/components/parameters/criteriaLimit" - }, - { - "$ref": "#/components/parameters/criteriaTerm" - }, - { - "$ref": "#/components/parameters/criteriaFilter" - }, - { - "$ref": "#/components/parameters/criteriaIds" - }, - { - "$ref": "#/components/parameters/criteriaQuery" - }, - { - "$ref": "#/components/parameters/criteriaAssociations" - }, - { - "$ref": "#/components/parameters/criteriaPostFilter" - }, - { - "$ref": "#/components/parameters/criteriaSort" - }, - { - "$ref": "#/components/parameters/criteriaAggregations" - }, - { - "$ref": "#/components/parameters/criteriaFields" - }, - { - "$ref": "#/components/parameters/criteriaGrouping" - }, - { - "$ref": "#/components/parameters/criteriaTotalCountMode" - }, - { - "$ref": "#/components/parameters/criteriaIncludes" - }, - { - "$ref": "#/components/parameters/criteriaExcludes" - }, + "ApiKey": [], + "ContextToken": [] + } + ] + } + }, + "/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": [ { - "$ref": "#/components/parameters/CompressedCriteria" + "in": "path", + "name": "name", + "required": true, + "description": "Name of the app", + "schema": { + "type": "string" + } } ], + "requestBody": { + "required": false, + "content": { + "application/json": { + "schema": { + "type": "object" + } + } + } + }, "responses": { "200": { - "$ref": "#/components/responses/ProductListResponse" + "description": "", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "token": { + "type": "string" + }, + "expires": { + "type": "string", + "format": "date-time" + }, + "shopId": { + "type": "string" + } + } + } + } + } } }, "security": [ @@ -24689,25 +24954,16 @@ ] } }, - "/product/{productId}/reviews": { + "/country": { "post": { "tags": [ - "Product", + "System & Context", "Endpoints supporting Criteria " ], - "summary": "Fetch product reviews", - "description": "Perform a filtered search for product reviews.", - "operationId": "readProductReviews", + "summary": "Fetch countries", + "description": "Perform a filtered search for countries\n\n**Available Associations:**\n- `states` - States/provinces/regions within the country", + "operationId": "readCountry", "parameters": [ - { - "name": "productId", - "in": "path", - "description": "Identifier of the product.", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "sw-language-id", "in": "header", @@ -24749,29 +25005,7 @@ }, "responses": { "200": { - "description": "Entity search result containing product reviews", - "content": { - "application/json": { - "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProductReview" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] - } - } - } + "$ref": "#/components/responses/CountryListResponse" } }, "security": [ @@ -24782,22 +25016,13 @@ }, "get": { "tags": [ - "Product", + "System & Context", "Endpoints supporting Criteria " ], - "summary": "Fetch product reviews", - "description": "Perform a filtered search for product reviews.", - "operationId": "readProductReviewsGet", + "summary": "Fetch countries", + "description": "Perform a filtered search for countries\n\n**Available Associations:**\n- `states` - States/provinces/regions within the country", + "operationId": "readCountryGet", "parameters": [ - { - "name": "productId", - "in": "path", - "description": "Identifier of the product.", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "sw-language-id", "in": "header", @@ -24859,29 +25084,61 @@ ], "responses": { "200": { - "description": "Entity search result containing product reviews", + "$ref": "#/components/responses/CountryListResponse" + } + }, + "security": [ + { + "ApiKey": [] + } + ] + } + }, + "/newsletter/confirm": { + "post": { + "tags": [ + "Newsletter" + ], + "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": { + "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" + } + }, + "type": "object" + } + } + } + }, + "responses": { + "200": { + "description": "The newsletter confirmation was successful.", "content": { "application/json": { "schema": { - "allOf": [ - { - "properties": { - "elements": { - "type": "array", - "items": { - "$ref": "#/components/schemas/ProductReview" - } - } - }, - "type": "object" - }, - { - "$ref": "#/components/schemas/EntitySearchResult" - } - ] + "$ref": "#/components/schemas/SuccessResponse" } } } + }, + "400": { + "$ref": "#/components/responses/400" } }, "security": [ @@ -24891,66 +25148,74 @@ ] } }, - "/product/{productId}/review": { + "/newsletter/subscribe": { "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}$" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } + "Newsletter" ], + "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 address 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`: Confirms the newsletter subscription for the provided email address.", + "operationId": "subscribeToNewsletter", "requestBody": { + "required": true, "content": { "application/json": { "schema": { "required": [ - "title", - "content", - "points" + "email", + "option", + "storefrontUrl" ], "properties": { - "name": { - "description": "The name of the review author. If not set, the first name of the customer is chosen.", + "email": { + "description": "Email address that will receive the confirmation and the newsletter.", "type": "string" }, - "email": { - "description": "The email address of the review author. If not set, the email of the customer is chosen.", + "option": { + "description": "Defines what should be done.", "type": "string" }, - "title": { - "description": "The title of the review.", + "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" }, - "content": { - "description": "The content of review.", + "salutationId": { + "description": "Identifier of the salutation.", + "type": "string", + "pattern": "^[0-9a-f]{32}$" + }, + "firstName": { + "description": "First name", "type": "string" }, - "points": { - "description": "The review rating for the product.", - "type": "number", - "format": "double" + "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" @@ -24960,74 +25225,65 @@ }, "responses": { "200": { - "description": "Success response indicating the review was saved successfully." + "description": "Success", + "content": { + "application/json": { + "schema": { + "required": [ + "success", + "status" + ], + "properties": { + "success": { + "description": "Indicates whether the subscribe request was successful.", + "type": "boolean" + }, + "status": { + "description": "The subscription status.", + "type": "string", + "enum": [ + "notSet", + "optIn", + "optOut", + "direct" + ] + } + }, + "type": "object" + } + } + } + }, + "400": { + "$ref": "#/components/responses/400" } }, "security": [ { - "ApiKey": [], - "ContextToken": [] + "ApiKey": [] } ] } }, - "/product/{productId}/find-variant": { + "/newsletter/unsubscribe": { "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" - } - }, - { - "name": "sw-language-id", - "in": "header", - "description": "Instructs Shopware to return the response in the given language.", - "required": false, - "schema": { - "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - } + "Newsletter" ], + "summary": "Remove a newsletter subscription", + "description": "Removes a newsletter recipient from the mailing lists.", + "operationId": "unsubscribeToNewsletter", "requestBody": { + "required": true, "content": { "application/json": { "schema": { "required": [ - "options" + "email" ], "properties": { - "options": { - "oneOf": [ - { - "description": "The options parameter for the variant to find.", - "type": "array", - "items": { - "type": "string" - } - }, - { - "description": "The options parameter as a map of groupId => optionId.", - "type": "object", - "additionalProperties": { - "type": "string" - } - } - ] - }, - "switchedGroup": { - "description": "The id of the option group that has been switched.", + "email": { + "description": "Email address that should be removed from the mailing lists.", "type": "string" } }, @@ -25038,14 +25294,17 @@ }, "responses": { "200": { - "description": "Returns an FoundCombination struct containing the ids matching the search.", + "description": "Unsubscribing was successful.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FindProductVariantRouteResponse" + "$ref": "#/components/schemas/SuccessResponse" } } } + }, + "400": { + "$ref": "#/components/responses/400" } }, "security": [ @@ -25053,24 +25312,17 @@ "ApiKey": [] } ] - }, + } + }, + "/sitemap": { "get": { "tags": [ - "Product" + "Sitemap & Routes" ], - "summary": "Search for a matching variant by product options.", - "description": "Performs a search for product variants and returns the best matching variant.", - "operationId": "searchProductVariantIdsGet", + "summary": "Fetch sitemaps", + "description": "Fetches a list of compressed sitemap files, which are often used by search engines.", + "operationId": "readSitemap", "parameters": [ - { - "name": "productId", - "in": "path", - "description": "Product ID", - "required": true, - "schema": { - "type": "string" - } - }, { "name": "sw-language-id", "in": "header", @@ -25080,36 +25332,18 @@ "type": "string", "pattern": "^[0-9a-f]{32}$" } - }, - { - "name": "options[]", - "in": "query", - "description": "The options parameter for the variant to find. Array of option IDs.", - "required": true, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - { - "name": "switchedGroup", - "in": "query", - "description": "The id of the option group that has been switched.", - "required": false, - "schema": { - "type": "string" - } } ], "responses": { "200": { - "description": "Returns an FoundCombination struct containing the ids matching the search.", + "description": "Returns a list of available sitemaps.", "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/FindProductVariantRouteResponse" + "type": "array", + "items": { + "$ref": "#/components/schemas/Sitemap" + } } } } @@ -25122,118 +25356,50 @@ ] } }, - "/handle-payment": { - "post": { - "tags": [ - "Payment & Shipping" - ], - "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": "Redirect to external payment provider", - "content": { - "application/json": { - "schema": { - "type": "object", - "properties": { - "redirectUrl": { - "type": "string" - } - }, - "required": [ - "redirectUrl" - ] - } - } - } - } - }, - "security": [ - { - "ApiKey": [] - } - ] - }, + "/sitemap/{filePath}": { "get": { "tags": [ - "Payment & Shipping" + "Sitemap & Routes" ], - "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. Please prefer the POST version of this endpoint.", - "operationId": "handlePaymentMethodGet", + "summary": "Download sitemap file", + "description": "Downloads the sitemap file from the configured sitemap storage.", + "operationId": "getSitemapFile", "parameters": [ { - "name": "orderId", - "in": "query", + "name": "filePath", + "in": "path", + "description": "The path to the sitemap file", "required": true, - "description": "Identifier of an order", "schema": { "type": "string", - "pattern": "^[0-9a-f]{32}$" - } - }, - { - "name": "finishUrl", - "in": "query", - "description": "URL to which the client should be redirected after successful payment", - "schema": { - "type": "string" + "pattern": ".*\\.(xml|gz)$" } }, { - "name": "errorUrl", - "in": "query", - "description": "URL to which the client should be redirected after erroneous payment", + "name": "sw-language-id", + "in": "header", + "description": "Instructs Shopware to return the response in the given language.", + "required": false, "schema": { - "type": "string" + "type": "string", + "pattern": "^[0-9a-f]{32}$" } } ], "responses": { "200": { - "description": "Redirect to external payment provider", + "description": "Returns the blob to download.", "content": { - "application/json": { + "application/xml": { "schema": { - "type": "object", - "properties": { - "redirectUrl": { - "type": "string" - } - }, - "required": [ - "redirectUrl" - ] + "type": "string", + "format": "binary" + } + }, + "application/gzip": { + "schema": { + "type": "string", + "format": "binary" } } } diff --git a/storeapi.summary.json b/storeapi.summary.json index d6abe71..43f1758 100644 --- a/storeapi.summary.json +++ b/storeapi.summary.json @@ -66,6 +66,7 @@ "/product/{productId}/find-variant", "/product/{productId}/review", "/product/{productId}/reviews", + "/revocation-request-form", "/salutation", "/script/{hook}", "/search",