From c1002eb07de78c9a610bc154f3b8ac7775a5146c Mon Sep 17 00:00:00 2001 From: Auto Mation Date: Mon, 8 Jul 2024 09:03:17 +0000 Subject: [PATCH] Updated api-reference from documentation release --- ...inessUnitChangeApprovalRuleModeAction.json | 4 + .../Cart/MyCartAddLineItemAction.json | 22 + .../CustomerPagedSearchResponse.json | 19 + .../CustomerSearchIndexingStatusResponse.json | 11 + .../CustomerSearch/CustomerSearchRequest.json | 8 + .../ProductTailoringAddAssetAction.json | 15 + ...roductTailoringAddExternalImageAction.json | 12 + .../ProductTailoringAddVariantAction.json | 5 + ...ProductTailoringChangeAssetNameAction.json | 9 + ...roductTailoringChangeAssetOrderAction.json | 5 + ...uctTailoringMoveImageToPositionAction.json | 6 + .../ProductTailoringRemoveAssetAction.json | 5 + .../ProductTailoringRemoveImageAction.json | 5 + .../ProductTailoringRemoveVariantAction.json | 4 + ...uctTailoringSetAssetCustomFieldAction.json | 7 + ...ductTailoringSetAssetCustomTypeAction.json | 12 + ...uctTailoringSetAssetDescriptionAction.json | 9 + .../ProductTailoringSetAssetKeyAction.json | 6 + ...ProductTailoringSetAssetSourcesAction.json | 11 + .../ProductTailoringSetAssetTagsAction.json | 6 + ...oductTailoringSetExternalImagesAction.json | 20 + .../ProductTailoringSetImageLabelAction.json | 7 + ...ojectChangeCustomerSearchStatusAction.json | 4 + .../TaxCategoryChangeNameAction.json | 4 +- .../api/examples/business-unit.example.json | 3 +- .../api/examples/business-units.example.json | 1 + .../examples/my-business-unit.example.json | 3 +- .../examples/my-business-units.example.json | 3 +- .../product-tailoring-create.example.json | 26 + ...uct-tailoring-in-store-create.example.json | 14 + .../product-tailoring-list.example.json | 29 +- .../examples/product-tailoring.example.json | 29 +- .../api/examples/tax-categories.example.json | 19 +- .../examples/tax-category-create.example.json | 17 +- .../api/examples/tax-category.example.json | 19 +- api-specs/api/resources/carts.raml | 2 +- api-specs/api/resources/customers.raml | 39 + api-specs/api/resources/in-store.raml | 853 +++++++++++++++++- api-specs/api/resources/me.raml | 155 +++- api-specs/api/resources/orders.raml | 3 + api-specs/api/resources/products.raml | 14 +- .../api/resources/standalone-prices.raml | 5 +- api-specs/api/ruleset.xml | 1 + api-specs/api/traits/price-selecting.raml | 14 +- api-specs/api/types/annotations.raml | 3 + .../AssociateRoleKeyReference.raml | 2 +- .../api/types/business-unit/Associate.raml | 2 + .../AssociateRoleAssignment.raml | 1 + .../api/types/business-unit/BusinessUnit.raml | 5 + .../BusinessUnitApprovalRuleMode.raml | 14 + .../business-unit/BusinessUnitDraft.raml | 6 + .../BusinessUnitKeyReference.raml | 2 +- .../api/types/business-unit/Company.raml | 9 +- .../api/types/business-unit/Division.raml | 5 + .../types/business-unit/DivisionDraft.raml | 5 + .../business-unit/InheritedAssociate.raml | 2 + .../InheritedAssociateRoleAssignment.raml | 1 + ...inessUnitChangeApprovalRuleModeAction.raml | 17 + api-specs/api/types/cart/Cart.raml | 4 +- api-specs/api/types/cart/CartDraft.raml | 4 +- api-specs/api/types/cart/CartState.raml | 2 +- api-specs/api/types/cart/CustomLineItem.raml | 1 + .../types/cart/CustomLineItemPriceMode.raml | 2 +- .../api/types/cart/DirectDiscountDraft.raml | 6 +- .../api/types/cart/DiscountCodeInfo.raml | 1 + .../cart/DiscountedTotalPricePortion.raml | 1 + .../api/types/cart/ExternalTaxRateDraft.raml | 3 +- api-specs/api/types/cart/LineItem.raml | 3 +- api-specs/api/types/cart/LineItemDraft.raml | 4 +- .../api/types/cart/LineItemPriceMode.raml | 4 +- api-specs/api/types/cart/ShippingInfo.raml | 1 + .../api/types/cart/ShippingMethodState.raml | 2 +- api-specs/api/types/cart/TaxMode.raml | 33 +- .../cart/updates/CartAddLineItemAction.raml | 6 +- .../CartChangeLineItemQuantityAction.raml | 4 +- .../updates/CartRemoveLineItemAction.raml | 2 +- .../updates/CartSetCartTotalTaxAction.raml | 3 +- ...tSetLineItemDistributionChannelAction.raml | 2 +- .../CartSetLineItemTaxAmountAction.raml | 3 +- .../updates/CartSetShippingAddressAction.raml | 2 +- .../api/types/channel/ChannelRoleEnum.raml | 2 +- api-specs/api/types/common/BaseResource.raml | 1 + .../api/types/common/CentPrecisionMoney.raml | 3 +- api-specs/api/types/common/ClientLogging.raml | 1 + .../api/types/common/DiscountedPrice.raml | 1 + .../api/types/common/HighPrecisionMoney.raml | 2 +- .../types/common/HighPrecisionMoneyDraft.raml | 2 +- api-specs/api/types/common/Money.raml | 3 +- api-specs/api/types/common/Price.raml | 3 +- api-specs/api/types/common/QueryPrice.raml | 1 + api-specs/api/types/common/Reference.raml | 1 + .../api/types/common/ReferenceTypeId.raml | 2 +- api-specs/api/types/common/ScopedPrice.raml | 3 +- .../CustomerIndexingProgress.raml | 18 + .../CustomerIndexingStatus.raml | 17 + .../CustomerPagedSearchResponse.raml | 30 + .../CustomerSearchIndexingStatusResponse.raml | 24 + .../CustomerSearchRequest.raml | 25 + .../customer-search/CustomerSearchResult.raml | 15 + ...stomerSetDefaultShippingAddressAction.raml | 1 - .../discount-code/DiscountCodeDraft.raml | 4 + .../DiscountCodeSetMaxApplicationsAction.raml | 4 +- ...deSetMaxApplicationsPerCustomerAction.raml | 4 +- api-specs/api/types/error/GeneralError.raml | 2 +- .../error/MissingTaxRateForCountryError.raml | 2 +- .../types/error/PendingOperationError.raml | 2 +- .../error/graphql/GraphQLGeneralError.raml | 2 +- .../GraphQLMissingTaxRateForCountryError.raml | 2 +- .../graphql/GraphQLPendingOperationError.raml | 2 +- .../api/types/extension/ExtensionDraft.raml | 2 +- .../ExtensionSetTimeoutInMsAction.raml | 2 +- api-specs/api/types/me/MyCartDraft.raml | 2 +- api-specs/api/types/me/MyLineItemDraft.raml | 2 +- api-specs/api/types/me/MyPayment.raml | 1 + .../me/updates/MyCartAddLineItemAction.raml | 6 +- .../updates/MyCartRemoveLineItemAction.raml | 2 +- ...tSetLineItemDistributionChannelAction.raml | 2 +- .../MyCartSetShippingAddressAction.raml | 2 +- ...essUnitApprovalRuleModeChangedMessage.raml | 16 + .../OrderLineItemDiscountSetMessage.raml | 2 +- .../message/ProductPriceAddedMessage.raml | 2 +- .../message/ProductPriceChangedMessage.raml | 6 +- .../ProductPriceCustomFieldAddedMessage.raml | 29 + ...ProductPriceCustomFieldChangedMessage.raml | 29 + ...ProductPriceCustomFieldRemovedMessage.raml | 25 + ...roductPriceCustomFieldsRemovedMessage.raml | 21 + .../ProductPriceCustomFieldsSetMessage.raml | 29 + .../ProductPriceDiscountsSetUpdatedPrice.raml | 2 +- .../message/ProductPriceRemovedMessage.raml | 2 +- .../ProductTailoringCreatedMessage.raml | 17 +- .../ProductTailoringDeletedMessage.raml | 1 - ...ProductTailoringDescriptionSetMessage.raml | 1 - .../ProductTailoringImageAddedMessage.raml | 31 + .../ProductTailoringImagesSetMessage.raml | 36 + .../ProductTailoringNameSetMessage.raml | 1 - .../ProductTailoringPublishedMessage.raml | 1 - .../ProductTailoringSlugSetMessage.raml | 1 - .../ProductTailoringUnpublishedMessage.raml | 1 - .../ProductVariantTailoringAddedMessage.raml | 30 + ...ProductVariantTailoringRemovedMessage.raml | 30 + .../StandalonePriceValueChangedMessage.raml | 4 +- ...ApprovalRuleModeChangedMessagePayload.raml | 16 + ...rderLineItemDiscountSetMessagePayload.raml | 2 +- .../ProductPriceAddedMessagePayload.raml | 2 +- .../ProductPriceChangedMessagePayload.raml | 6 +- ...ctPriceCustomFieldAddedMessagePayload.raml | 29 + ...PriceCustomFieldChangedMessagePayload.raml | 29 + ...PriceCustomFieldRemovedMessagePayload.raml | 25 + ...riceCustomFieldsRemovedMessagePayload.raml | 21 + ...uctPriceCustomFieldsSetMessagePayload.raml | 29 + .../ProductPriceRemovedMessagePayload.raml | 2 +- ...ProductTailoringCreatedMessagePayload.raml | 17 +- ...ProductTailoringDeletedMessagePayload.raml | 1 - ...TailoringDescriptionSetMessagePayload.raml | 1 - ...ductTailoringImageAddedMessagePayload.raml | 31 + ...oductTailoringImagesSetMessagePayload.raml | 36 + ...ProductTailoringNameSetMessagePayload.raml | 1 - ...oductTailoringPublishedMessagePayload.raml | 1 - ...ProductTailoringSlugSetMessagePayload.raml | 1 - ...uctTailoringUnpublishedMessagePayload.raml | 1 - ...ctVariantTailoringAddedMessagePayload.raml | 30 + ...VariantTailoringRemovedMessagePayload.raml | 30 + ...dalonePriceValueChangedMessagePayload.raml | 4 +- .../updates/StagedOrderAddLineItemAction.raml | 6 +- ...agedOrderChangeLineItemQuantityAction.raml | 4 +- .../StagedOrderRemoveLineItemAction.raml | 2 +- ...rSetLineItemDistributionChannelAction.raml | 2 +- ...StagedOrderSetLineItemTaxAmountAction.raml | 3 +- api-specs/api/types/order/ItemState.raml | 1 + .../api/types/order/LineItemImportDraft.raml | 2 +- api-specs/api/types/order/Order.raml | 4 +- api-specs/api/types/order/PaymentInfo.raml | 1 + api-specs/api/types/order/SyncInfo.raml | 1 + .../api/types/payment/PaymentStatus.raml | 1 + .../ProductPagedSearchResponse.raml | 2 +- .../ProductSearchErrorResponse.raml | 1 - .../ProductSearchMatchingVariantEntry.raml | 1 - .../ProductSearchMatchingVariants.raml | 1 - .../ProductSearchProjectionParams.raml | 10 +- .../product-search/ProductSearchRequest.raml | 3 +- .../product-search/ProductSearchResult.raml | 2 +- .../AssignedProductReference.raml | 1 + .../AssignedProductSelection.raml | 1 + .../ProductSelectionAssignment.raml | 1 + ...uctSelectionProductPagedQueryResponse.raml | 1 + .../product-tailoring/ProductTailoring.raml | 1 - .../ProductTailoringData.raml | 6 +- .../ProductTailoringDraft.raml | 6 +- .../ProductTailoringInStoreDraft.raml | 6 +- .../ProductTailoringPagedQueryResponse.raml | 1 - .../ProductTailoringReference.raml | 1 - .../ProductTailoringResourceIdentifier.raml | 1 - .../ProductTailoringUpdate.raml | 1 - .../ProductTailoringUpdateAction.raml | 1 - .../ProductVariantTailoring.raml | 23 + .../ProductVariantTailoringDraft.raml | 25 + .../ProductTailoringAddAssetAction.raml | 33 + ...roductTailoringAddExternalImageAction.raml | 28 + .../ProductTailoringAddVariantAction.raml | 33 + ...ProductTailoringChangeAssetNameAction.raml | 37 + ...roductTailoringChangeAssetOrderAction.raml | 28 + ...uctTailoringMoveImageToPositionAction.raml | 33 + .../ProductTailoringPublishAction.raml | 1 - .../ProductTailoringRemoveAssetAction.raml | 33 + .../ProductTailoringRemoveImageAction.raml | 28 + .../ProductTailoringRemoveVariantAction.raml | 25 + ...uctTailoringSetAssetCustomFieldAction.raml | 43 + ...ductTailoringSetAssetCustomTypeAction.raml | 42 + ...uctTailoringSetAssetDescriptionAction.raml | 37 + .../ProductTailoringSetAssetKeyAction.raml | 35 + ...ProductTailoringSetAssetSourcesAction.raml | 38 + .../ProductTailoringSetAssetTagsAction.raml | 37 + .../ProductTailoringSetDescriptionAction.raml | 1 - ...oductTailoringSetExternalImagesAction.raml | 29 + .../ProductTailoringSetImageLabelAction.raml | 32 + ...oductTailoringSetMetaAttributesAction.raml | 1 - ...ductTailoringSetMetaDescriptionAction.raml | 1 - ...ProductTailoringSetMetaKeywordsAction.raml | 1 - .../ProductTailoringSetMetaTitleAction.raml | 1 - .../ProductTailoringSetNameAction.raml | 1 - .../ProductTailoringSetSlugAction.raml | 1 - .../ProductTailoringUnpublishAction.raml | 1 - .../product-type/AttributeNestedType.raml | 1 + api-specs/api/types/product/Attribute.raml | 2 + api-specs/api/types/product/ProductData.raml | 1 + .../types/product/ProductPriceModeEnum.raml | 3 +- .../api/types/product/ProductVariant.raml | 7 +- .../product/ProductVariantAvailability.raml | 2 +- .../updates/ProductSetPriceKeyAction.raml | 4 +- .../updates/ProductUnpublishAction.raml | 5 +- .../types/project/CartClassificationType.raml | 2 +- .../api/types/project/CartScoreType.raml | 2 +- .../api/types/project/CartValueType.raml | 4 +- .../types/project/CustomerSearchStatus.raml | 14 + ...ojectChangeCustomerSearchStatusAction.raml | 11 + .../api/types/search/SearchAndExpression.raml | 1 - .../api/types/search/SearchAnyValue.raml | 1 - .../search/SearchCompoundExpression.raml | 1 - .../search/SearchDateRangeExpression.raml | 1 - .../types/search/SearchDateRangeValue.raml | 1 - .../search/SearchDateTimeRangeExpression.raml | 1 - .../search/SearchDateTimeRangeValue.raml | 1 - .../types/search/SearchExactExpression.raml | 1 - .../types/search/SearchExistsExpression.raml | 1 - .../api/types/search/SearchExistsValue.raml | 1 - .../api/types/search/SearchFieldType.raml | 1 - .../types/search/SearchFilterExpression.raml | 1 - .../search/SearchFullTextExpression.raml | 1 - .../SearchFullTextPrefixExpression.raml | 1 - .../search/SearchFullTextPrefixValue.raml | 1 - .../api/types/search/SearchFullTextValue.raml | 1 - .../search/SearchLongRangeExpression.raml | 1 - .../types/search/SearchLongRangeValue.raml | 1 - .../api/types/search/SearchMatchType.raml | 1 - .../types/search/SearchMatchingVariant.raml | 1 - .../api/types/search/SearchNotExpression.raml | 1 - .../search/SearchNumberRangeExpression.raml | 1 - .../types/search/SearchNumberRangeValue.raml | 1 - .../api/types/search/SearchOrExpression.raml | 1 - .../types/search/SearchPrefixExpression.raml | 1 - api-specs/api/types/search/SearchQuery.raml | 1 - .../types/search/SearchQueryExpression.raml | 1 - .../search/SearchQueryExpressionValue.raml | 1 - .../api/types/search/SearchSortMode.raml | 1 - .../api/types/search/SearchSortOrder.raml | 1 - api-specs/api/types/search/SearchSorting.raml | 1 - .../search/SearchTimeRangeExpression.raml | 1 - .../types/search/SearchTimeRangeValue.raml | 1 - .../search/SearchWildCardExpression.raml | 1 - .../CartClassificationTier.raml | 2 +- .../types/shipping-method/CartScoreTier.raml | 2 +- .../types/shipping-method/CartValueTier.raml | 5 +- .../types/shipping-method/ShippingRate.raml | 4 +- .../api/types/shipping-method/ZoneRate.raml | 1 + .../shopping-list/ShoppingListLineItem.raml | 1 + .../api/types/shopping-list/TextLineItem.raml | 1 + .../api/types/staged-quote/StagedQuote.raml | 4 + .../standalone-price/StandalonePrice.raml | 6 +- .../StandalonePriceDraft.raml | 6 +- .../StandalonePricePagedQueryResponse.raml | 2 + .../types/store/ProductSelectionSetting.raml | 1 + .../api/types/store/StoreKeyReference.raml | 2 +- .../ChangeSubscriptionResourceTypeId.raml | 9 +- .../SubscriptionHealthStatus.raml | 2 +- api-specs/api/types/tax-category/TaxRate.raml | 3 +- .../api/types/tax-category/TaxRateDraft.raml | 4 +- .../api/types/type/CustomFieldValue.raml | 1 + api-specs/api/types/type/CustomFields.raml | 1 + api-specs/api/types/type/FieldContainer.raml | 2 + api-specs/api/types/type/ResourceTypeId.raml | 2 +- .../type/updates/TypeChangeLabelAction.raml | 3 + api-specs/api/types/types.raml | 55 ++ 292 files changed, 3072 insertions(+), 306 deletions(-) create mode 100644 api-specs/api/examples/BusinessUnit/BusinessUnitChangeApprovalRuleModeAction.json create mode 100644 api-specs/api/examples/Cart/MyCartAddLineItemAction.json create mode 100644 api-specs/api/examples/CustomerSearch/CustomerPagedSearchResponse.json create mode 100644 api-specs/api/examples/CustomerSearch/CustomerSearchIndexingStatusResponse.json create mode 100644 api-specs/api/examples/CustomerSearch/CustomerSearchRequest.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringAddAssetAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringAddExternalImageAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringAddVariantAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringChangeAssetNameAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringChangeAssetOrderAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringMoveImageToPositionAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringRemoveAssetAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringRemoveImageAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringRemoveVariantAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetCustomFieldAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetCustomTypeAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetDescriptionAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetKeyAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetSourcesAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetTagsAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringSetExternalImagesAction.json create mode 100644 api-specs/api/examples/ProductTailoring/ProductTailoringSetImageLabelAction.json create mode 100644 api-specs/api/examples/Project/ProjectChangeCustomerSearchStatusAction.json create mode 100644 api-specs/api/types/business-unit/BusinessUnitApprovalRuleMode.raml create mode 100644 api-specs/api/types/business-unit/updates/BusinessUnitChangeApprovalRuleModeAction.raml create mode 100644 api-specs/api/types/customer-search/CustomerIndexingProgress.raml create mode 100644 api-specs/api/types/customer-search/CustomerIndexingStatus.raml create mode 100644 api-specs/api/types/customer-search/CustomerPagedSearchResponse.raml create mode 100644 api-specs/api/types/customer-search/CustomerSearchIndexingStatusResponse.raml create mode 100644 api-specs/api/types/customer-search/CustomerSearchRequest.raml create mode 100644 api-specs/api/types/customer-search/CustomerSearchResult.raml create mode 100644 api-specs/api/types/message/BusinessUnitApprovalRuleModeChangedMessage.raml create mode 100644 api-specs/api/types/message/ProductPriceCustomFieldAddedMessage.raml create mode 100644 api-specs/api/types/message/ProductPriceCustomFieldChangedMessage.raml create mode 100644 api-specs/api/types/message/ProductPriceCustomFieldRemovedMessage.raml create mode 100644 api-specs/api/types/message/ProductPriceCustomFieldsRemovedMessage.raml create mode 100644 api-specs/api/types/message/ProductPriceCustomFieldsSetMessage.raml create mode 100644 api-specs/api/types/message/ProductTailoringImageAddedMessage.raml create mode 100644 api-specs/api/types/message/ProductTailoringImagesSetMessage.raml create mode 100644 api-specs/api/types/message/ProductVariantTailoringAddedMessage.raml create mode 100644 api-specs/api/types/message/ProductVariantTailoringRemovedMessage.raml create mode 100644 api-specs/api/types/message/payload/BusinessUnitApprovalRuleModeChangedMessagePayload.raml create mode 100644 api-specs/api/types/message/payload/ProductPriceCustomFieldAddedMessagePayload.raml create mode 100644 api-specs/api/types/message/payload/ProductPriceCustomFieldChangedMessagePayload.raml create mode 100644 api-specs/api/types/message/payload/ProductPriceCustomFieldRemovedMessagePayload.raml create mode 100644 api-specs/api/types/message/payload/ProductPriceCustomFieldsRemovedMessagePayload.raml create mode 100644 api-specs/api/types/message/payload/ProductPriceCustomFieldsSetMessagePayload.raml create mode 100644 api-specs/api/types/message/payload/ProductTailoringImageAddedMessagePayload.raml create mode 100644 api-specs/api/types/message/payload/ProductTailoringImagesSetMessagePayload.raml create mode 100644 api-specs/api/types/message/payload/ProductVariantTailoringAddedMessagePayload.raml create mode 100644 api-specs/api/types/message/payload/ProductVariantTailoringRemovedMessagePayload.raml create mode 100644 api-specs/api/types/product-tailoring/ProductVariantTailoring.raml create mode 100644 api-specs/api/types/product-tailoring/ProductVariantTailoringDraft.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringAddAssetAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringAddExternalImageAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringAddVariantAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringChangeAssetNameAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringChangeAssetOrderAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringMoveImageToPositionAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringRemoveAssetAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringRemoveImageAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringRemoveVariantAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetCustomFieldAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetCustomTypeAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetDescriptionAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetKeyAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetSourcesAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetTagsAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringSetExternalImagesAction.raml create mode 100644 api-specs/api/types/product-tailoring/updates/ProductTailoringSetImageLabelAction.raml create mode 100644 api-specs/api/types/project/CustomerSearchStatus.raml create mode 100644 api-specs/api/types/project/updates/ProjectChangeCustomerSearchStatusAction.raml diff --git a/api-specs/api/examples/BusinessUnit/BusinessUnitChangeApprovalRuleModeAction.json b/api-specs/api/examples/BusinessUnit/BusinessUnitChangeApprovalRuleModeAction.json new file mode 100644 index 0000000000..4d43c24b79 --- /dev/null +++ b/api-specs/api/examples/BusinessUnit/BusinessUnitChangeApprovalRuleModeAction.json @@ -0,0 +1,4 @@ +{ + "action": "changeApprovalRuleMode", + "approvalRuleMode": "Explicit" +} diff --git a/api-specs/api/examples/Cart/MyCartAddLineItemAction.json b/api-specs/api/examples/Cart/MyCartAddLineItemAction.json new file mode 100644 index 0000000000..ab36dd130a --- /dev/null +++ b/api-specs/api/examples/Cart/MyCartAddLineItemAction.json @@ -0,0 +1,22 @@ +{ + "action": "addLineItem", + "productId": "{{product-id}}", + "variantId": 2, + "quantity": 1, + "supplyChannel": { + "typeId": "channel", + "id": "{{channel-id}}" + }, + "distributionChannel": { + "typeId": "channel", + "id": "{{channel-id}}" + }, + "shippingDetails": { + "targets": [ + { + "addressKey": "AddressKeyStringFromAddress", + "quantity": 2 + } + ] + } +} diff --git a/api-specs/api/examples/CustomerSearch/CustomerPagedSearchResponse.json b/api-specs/api/examples/CustomerSearch/CustomerPagedSearchResponse.json new file mode 100644 index 0000000000..4f398a1c54 --- /dev/null +++ b/api-specs/api/examples/CustomerSearch/CustomerPagedSearchResponse.json @@ -0,0 +1,19 @@ +{ + "results": [ + { + "id": "e41337a0-ea96-4ddc-a9a4-d267976f21e0", + "relevance": 0.9264881 + }, + { + "id": "05cd5998-015c-4232-8943-ff8a1880bcbc", + "relevance": 0.6989829 + }, + { + "id": "09c3c5a2-6569-49dd-b021-af5de4cf4b02", + "relevance": 0.6989829 + } + ], + "limit": 100, + "offset": 0, + "total": 3 +} diff --git a/api-specs/api/examples/CustomerSearch/CustomerSearchIndexingStatusResponse.json b/api-specs/api/examples/CustomerSearch/CustomerSearchIndexingStatusResponse.json new file mode 100644 index 0000000000..d902676215 --- /dev/null +++ b/api-specs/api/examples/CustomerSearch/CustomerSearchIndexingStatusResponse.json @@ -0,0 +1,11 @@ +{ + "status": "Indexing", + "states": { + "indexed": 43242, + "failed": 0, + "estimatedTotal": 100000 + }, + "startedAt": "2023-08-15T12:56:07.89Z", + "retryCount": 2, + "lastModifiedAt": "2023-08-15T12:56:07.89Z" +} diff --git a/api-specs/api/examples/CustomerSearch/CustomerSearchRequest.json b/api-specs/api/examples/CustomerSearch/CustomerSearchRequest.json new file mode 100644 index 0000000000..8fdcca5f06 --- /dev/null +++ b/api-specs/api/examples/CustomerSearch/CustomerSearchRequest.json @@ -0,0 +1,8 @@ +{ + "query": { + "fullText": { + "field": "all", + "value": "john" + } + } +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringAddAssetAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringAddAssetAction.json new file mode 100644 index 0000000000..09d553e3bf --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringAddAssetAction.json @@ -0,0 +1,15 @@ +{ + "action": "addAsset", + "variantId": 1, + "asset": { + "sources": [ + { + "uri": "//asset.mp4" + } + ], + "name": { + "de": "FirstAssetDE", + "en": "FirstassetEN" + } + } +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringAddExternalImageAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringAddExternalImageAction.json new file mode 100644 index 0000000000..7770b19247 --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringAddExternalImageAction.json @@ -0,0 +1,12 @@ +{ + "action": "addExternalImage", + "variantId": 1, + "image": { + "url": "//myimage.jpg", + "dimensions": { + "w": 1400, + "h": 1400 + }, + "label": "myImage" + } +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringAddVariantAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringAddVariantAction.json new file mode 100644 index 0000000000..ab2ba1986c --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringAddVariantAction.json @@ -0,0 +1,5 @@ +{ + "action": "addVariant", + "id": 2, + "sku": "VariantSKU" +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringChangeAssetNameAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringChangeAssetNameAction.json new file mode 100644 index 0000000000..8cd6a5ac11 --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringChangeAssetNameAction.json @@ -0,0 +1,9 @@ +{ + "action": "changeAssetName", + "variantId": 1, + "assetId": "{{assetId}}", + "name": { + "de": "Mein Asset", + "en": "My asset" + } +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringChangeAssetOrderAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringChangeAssetOrderAction.json new file mode 100644 index 0000000000..6471de9c7c --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringChangeAssetOrderAction.json @@ -0,0 +1,5 @@ +{ + "action": "changeAssetOrder", + "variantId": 1, + "assetOrder": ["{{assetId1}}", "{{assetId2}}"] +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringMoveImageToPositionAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringMoveImageToPositionAction.json new file mode 100644 index 0000000000..73317966c2 --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringMoveImageToPositionAction.json @@ -0,0 +1,6 @@ +{ + "action": "moveImageToPosition", + "variantId": 1, + "imageUrl": "//myimage2.jpg", + "position": 1 +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringRemoveAssetAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringRemoveAssetAction.json new file mode 100644 index 0000000000..b4c308b83c --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringRemoveAssetAction.json @@ -0,0 +1,5 @@ +{ + "action": "removeAsset", + "variantId": 1, + "assetId": "{{assetId}}" +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringRemoveImageAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringRemoveImageAction.json new file mode 100644 index 0000000000..54f43286d3 --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringRemoveImageAction.json @@ -0,0 +1,5 @@ +{ + "action": "removeImage", + "variantId": 1, + "imageUrl": "//myimage2.jpg" +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringRemoveVariantAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringRemoveVariantAction.json new file mode 100644 index 0000000000..abb0c1da33 --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringRemoveVariantAction.json @@ -0,0 +1,4 @@ +{ + "action": "removeVariant", + "id": 2 +} \ No newline at end of file diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetCustomFieldAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetCustomFieldAction.json new file mode 100644 index 0000000000..146336b1af --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetCustomFieldAction.json @@ -0,0 +1,7 @@ +{ + "action": "setAssetCustomField", + "assetId": "{{assetId}}", + "variantId": 1, + "name": "ExampleStringTypeField", + "value": "TextString" +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetCustomTypeAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetCustomTypeAction.json new file mode 100644 index 0000000000..0de58e64a7 --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetCustomTypeAction.json @@ -0,0 +1,12 @@ +{ + "action": "setAssetCustomType", + "variantId": 1, + "assetId": "{{assetId}}", + "type": { + "id": "{{type-id}}", + "typeId": "type" + }, + "fields": { + "exampleStringTypeField": "TextString" + } +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetDescriptionAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetDescriptionAction.json new file mode 100644 index 0000000000..560a176d3b --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetDescriptionAction.json @@ -0,0 +1,9 @@ +{ + "action": "setAssetDescription", + "assetId": "{{assetId}}", + "variantId": 1, + "description": { + "de": "Dies ist eine Asset-Beschreibung", + "en": "This is an asset description" + } +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetKeyAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetKeyAction.json new file mode 100644 index 0000000000..c1ba38107b --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetKeyAction.json @@ -0,0 +1,6 @@ +{ + "action": "setAssetKey", + "variantId": 1, + "assetId": "{{assetId}}", + "assetKey": "assetKeyString" +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetSourcesAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetSourcesAction.json new file mode 100644 index 0000000000..2841073552 --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetSourcesAction.json @@ -0,0 +1,11 @@ +{ + "action": "setAssetSources", + "variantId": 1, + "assetId": "{{assetId}}", + "sources": [ + { + "uri": "https://www.commercetools.de/ct-logo.svg", + "key": "vector" + } + ] +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetTagsAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetTagsAction.json new file mode 100644 index 0000000000..51e1590f6e --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringSetAssetTagsAction.json @@ -0,0 +1,6 @@ +{ + "action": "setAssetTags", + "variantId": 1, + "assetId": "{{assetId}}", + "tags": ["commercetools", "awesome"] +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringSetExternalImagesAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringSetExternalImagesAction.json new file mode 100644 index 0000000000..fb69613fe6 --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringSetExternalImagesAction.json @@ -0,0 +1,20 @@ +{ + "action": "setImages", + "variantId": 1, + "images": [ + { + "url": "//myimage.jpg", + "dimensions": { + "w": 100, + "h": 100 + } + }, + { + "url": "//myimage2.jpg", + "dimensions": { + "w": 100, + "h": 100 + } + } + ] +} diff --git a/api-specs/api/examples/ProductTailoring/ProductTailoringSetImageLabelAction.json b/api-specs/api/examples/ProductTailoring/ProductTailoringSetImageLabelAction.json new file mode 100644 index 0000000000..df3985add7 --- /dev/null +++ b/api-specs/api/examples/ProductTailoring/ProductTailoringSetImageLabelAction.json @@ -0,0 +1,7 @@ +{ + "action": "setImageLabel", + "variantId": 2, + "imageUrl": "//image.png", + "label": "labelString", + "staged": true +} diff --git a/api-specs/api/examples/Project/ProjectChangeCustomerSearchStatusAction.json b/api-specs/api/examples/Project/ProjectChangeCustomerSearchStatusAction.json new file mode 100644 index 0000000000..60f7218c4a --- /dev/null +++ b/api-specs/api/examples/Project/ProjectChangeCustomerSearchStatusAction.json @@ -0,0 +1,4 @@ +{ + "action": "changeCustomerSearchStatus", + "status": "Activated" +} diff --git a/api-specs/api/examples/TaxCategory/TaxCategoryChangeNameAction.json b/api-specs/api/examples/TaxCategory/TaxCategoryChangeNameAction.json index 8bfc56241a..722b1bee64 100644 --- a/api-specs/api/examples/TaxCategory/TaxCategoryChangeNameAction.json +++ b/api-specs/api/examples/TaxCategory/TaxCategoryChangeNameAction.json @@ -1,4 +1,4 @@ { "action": "changeName", - "name": "name" -} \ No newline at end of file + "name": "New Name" +} diff --git a/api-specs/api/examples/business-unit.example.json b/api-specs/api/examples/business-unit.example.json index 19d573a2b6..97291d961e 100644 --- a/api-specs/api/examples/business-unit.example.json +++ b/api-specs/api/examples/business-unit.example.json @@ -16,5 +16,6 @@ "addresses": [], "associates": [], "associateMode": "Explicit", - "inheritedAssociates": [] + "inheritedAssociates": [], + "approvalRuleMode": "Explicit" } diff --git a/api-specs/api/examples/business-units.example.json b/api-specs/api/examples/business-units.example.json index 8a7cbbf8f8..436c632fbd 100644 --- a/api-specs/api/examples/business-units.example.json +++ b/api-specs/api/examples/business-units.example.json @@ -21,6 +21,7 @@ "associates": [], "associateMode": "Explicit", "inheritedAssociates": [], + "approvalRuleMode": "Explicit", "storeMode": "Explicit", "stores": [] } diff --git a/api-specs/api/examples/my-business-unit.example.json b/api-specs/api/examples/my-business-unit.example.json index 19d573a2b6..97291d961e 100644 --- a/api-specs/api/examples/my-business-unit.example.json +++ b/api-specs/api/examples/my-business-unit.example.json @@ -16,5 +16,6 @@ "addresses": [], "associates": [], "associateMode": "Explicit", - "inheritedAssociates": [] + "inheritedAssociates": [], + "approvalRuleMode": "Explicit" } diff --git a/api-specs/api/examples/my-business-units.example.json b/api-specs/api/examples/my-business-units.example.json index 524d5c9057..3f4a4a597e 100644 --- a/api-specs/api/examples/my-business-units.example.json +++ b/api-specs/api/examples/my-business-units.example.json @@ -22,7 +22,8 @@ "addresses": [], "associates": [], "associateMode": "Explicit", - "inheritedAssociates": [] + "inheritedAssociates": [], + "approvalRuleMode": "Explicit" } ] } diff --git a/api-specs/api/examples/product-tailoring-create.example.json b/api-specs/api/examples/product-tailoring-create.example.json index ba85ca16e3..706275ff3c 100644 --- a/api-specs/api/examples/product-tailoring-create.example.json +++ b/api-specs/api/examples/product-tailoring-create.example.json @@ -10,5 +10,31 @@ "metaKeywords": { "en": "tailored meta keywords" }, "slug": { "en": "tailored-slug" }, "description": { "en": "tailored description" }, + "variants": [ + { + "id": 1, + "images": [ + { + "url": "//myimage.jpg", + "dimensions": { + "w": 400, + "h": 300 + } + } + ] + }, + { + "sku": "sku-1", + "images": [ + { + "url": "//myimage-2.png", + "dimensions": { + "w": 400, + "h": 300 + } + } + ] + } + ], "publish": false } diff --git a/api-specs/api/examples/product-tailoring-in-store-create.example.json b/api-specs/api/examples/product-tailoring-in-store-create.example.json index a7eedec06a..75883c0169 100644 --- a/api-specs/api/examples/product-tailoring-in-store-create.example.json +++ b/api-specs/api/examples/product-tailoring-in-store-create.example.json @@ -9,5 +9,19 @@ "metaKeywords": { "en": "tailored meta keywords" }, "slug": { "en": "tailored-slug" }, "description": { "en": "tailored description" }, + "variants": [ + { + "id": 1, + "images": [ + { + "url": "//myimage.jpg", + "dimensions": { + "w": 400, + "h": 300 + } + } + ] + } + ], "publish": false } diff --git a/api-specs/api/examples/product-tailoring-list.example.json b/api-specs/api/examples/product-tailoring-list.example.json index 72ad328543..3242760eb4 100644 --- a/api-specs/api/examples/product-tailoring-list.example.json +++ b/api-specs/api/examples/product-tailoring-list.example.json @@ -47,7 +47,34 @@ "slug": { "en": "tailored-slug" }, - "variants": [] + "variants": [ + { + "id": 1, + "images": [ + { + "url": "//myimage.jpg", + "dimensions": { + "w": 400, + "h": 300 + } + } + ], + "assets": [] + }, + { + "id": 2, + "images": [ + { + "url": "//myimage-2.png", + "dimensions": { + "w": 400, + "h": 300 + } + } + ], + "assets": [] + } + ] }, "published": false, "hasStagedChanges": true diff --git a/api-specs/api/examples/product-tailoring.example.json b/api-specs/api/examples/product-tailoring.example.json index 4a8528c98e..18756c3d04 100644 --- a/api-specs/api/examples/product-tailoring.example.json +++ b/api-specs/api/examples/product-tailoring.example.json @@ -42,7 +42,34 @@ "slug": { "en": "tailored-slug" }, - "variants": [] + "variants": [ + { + "id": 1, + "images": [ + { + "url": "//myimage.jpg", + "dimensions": { + "w": 400, + "h": 300 + } + } + ], + "assets": [] + }, + { + "id": 2, + "images": [ + { + "url": "//myimage-2.png", + "dimensions": { + "w": 400, + "h": 300 + } + } + ], + "assets": [] + } + ] }, "published": false, "hasStagedChanges": true diff --git a/api-specs/api/examples/tax-categories.example.json b/api-specs/api/examples/tax-categories.example.json index 359a3cc104..62b807b2f3 100644 --- a/api-specs/api/examples/tax-categories.example.json +++ b/api-specs/api/examples/tax-categories.example.json @@ -10,12 +10,21 @@ "name": "test-tax-category", "rates": [ { - "name": "test-tax-category", - "amount": 0.2, + "name": "HST Ontario", + "amount": 0.13, "includedInPrice": true, - "country": "DE", - "id": "vWTk7VjT", - "subRates": [] + "country": "CA", + "state": "ON", + "subRates": [ + { + "name": "Federal rate (GST 5%)", + "amount": 0.05 + }, + { + "name": "Provincial rate (PST 8%)", + "amount": 0.08 + } + ] } ], "createdAt": "2016-02-24T15:33:40.811Z", diff --git a/api-specs/api/examples/tax-category-create.example.json b/api-specs/api/examples/tax-category-create.example.json index f36b19e487..63cc49d068 100644 --- a/api-specs/api/examples/tax-category-create.example.json +++ b/api-specs/api/examples/tax-category-create.example.json @@ -2,10 +2,21 @@ "name": "test-tax-category", "rates": [ { - "name": "test-tax-category", - "amount": 0.2, + "name": "HST Ontario", + "amount": 0.13, "includedInPrice": true, - "country": "DE" + "country": "CA", + "state": "ON", + "subRates": [ + { + "name": "Federal rate (GST 5%)", + "amount": 0.05 + }, + { + "name": "Provincial rate (PST 8%)", + "amount": 0.08 + } + ] } ] } diff --git a/api-specs/api/examples/tax-category.example.json b/api-specs/api/examples/tax-category.example.json index 9cd36ba3d1..4adcc9f55b 100644 --- a/api-specs/api/examples/tax-category.example.json +++ b/api-specs/api/examples/tax-category.example.json @@ -4,12 +4,21 @@ "name": "test-tax-category", "rates": [ { - "name": "test-tax-category", - "amount": 0.2, + "name": "HST Ontario", + "amount": 0.13, "includedInPrice": true, - "country": "DE", - "id": "vWTk7VjT", - "subRates": [] + "country": "CA", + "state": "ON", + "subRates": [ + { + "name": "Federal rate (GST 5%)", + "amount": 0.05 + }, + { + "name": "Provincial rate (PST 8%)", + "amount": 0.08 + } + ] } ], "createdAt": "2016-02-24T15:33:40.811Z", diff --git a/api-specs/api/resources/carts.raml b/api-specs/api/resources/carts.raml index c64b47fd16..5d8f4f58a8 100644 --- a/api-specs/api/resources/carts.raml +++ b/api-specs/api/resources/carts.raml @@ -66,7 +66,7 @@ post: get: securedBy: [oauth_2_0: { scopes: ['view_orders:{projectKey}'] }] description: | - Retrieves the recently modified active Cart of a Customer with [CartOrigin](ctp:api:type:CartOrigin) `Customer`. If no active Cart exists, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. + Retrieves the most recently modified active Cart of a Customer with [CartOrigin](ctp:api:type:CartOrigin) `Customer`. If no active Cart exists, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. To ensure the Cart is up-to-date with current values (such as Prices and Discounts), use the [Recalculate](ctp:api:type:CartRecalculateAction) update action. responses: diff --git a/api-specs/api/resources/customers.raml b/api-specs/api/resources/customers.raml index f972f90b8c..429bd4a86b 100644 --- a/api-specs/api/resources/customers.raml +++ b/api-specs/api/resources/customers.raml @@ -230,3 +230,42 @@ post: body: application/json: example: !include ../examples/customer.example.json +/search: + type: base + displayName: Customer Search + description: | + This endpoint provides high-performance search queries over Customers. + post: + displayName: Search Customers + securedBy: [oauth_2_0: { scopes: ['view_customers:{projectKey}'] }] + body: + application/json: + type: CustomerSearchRequest + responses: + 200: + body: + application/json: + type: CustomerPagedSearchResponse + head: + securedBy: [oauth_2_0: { scopes: ['view_customers:{projectKey}'] }] + description: | + Checks whether a search index for the Project's Customers exists. + Returns a `200 OK` status if the index exists or `404 Not Found` otherwise. + responses: + 200: + description: The search index exists and the Search Customers endpoint is fully operational. + 404: + description: The search index does not exist and the Search Customers endpoint returns Error 404 only. +/search/indexing-status: + type: base + displayName: Customer Search Status + description: | + This endpoint provides information on the status of a Customer search for a project + get: + displayName: Customer Search Status + securedBy: [oauth_2_0: { scopes: ['view_project_settings:{projectKey}'] }] + responses: + 200: + body: + application/json: + type: CustomerSearchIndexingStatusResponse diff --git a/api-specs/api/resources/in-store.raml b/api-specs/api/resources/in-store.raml index fa7fc6e24f..7a583364ef 100644 --- a/api-specs/api/resources/in-store.raml +++ b/api-specs/api/resources/in-store.raml @@ -27,8 +27,8 @@ uriParameters: ], }, ] - displayName: Query carts in store - description: Queries carts in a specific [Store](ctp:api:type:Store). + displayName: Query Carts in Store + description: Queries Carts in a specific [Store](ctp:api:type:Store). responses: 200: body: @@ -51,7 +51,7 @@ uriParameters: where?: type: QueryPredicate[] post: - displayName: Create cart in store + displayName: Create Cart in Store securedBy: [ oauth_2_0: @@ -82,7 +82,7 @@ uriParameters: uriParameterName: customerId resourceType: Cart get: - displayName: Get cart by customer id in store + displayName: Get Cart in Store by Customer ID securedBy: [ oauth_2_0: @@ -95,7 +95,7 @@ uriParameters: }, ] description: | - Retrieves the recently modified active Cart of a Customer with [CartOrigin](ctp:api:type:CartOrigin) `Customer`. If no active Cart exists, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. + Retrieves the most recently modified active Cart of a Customer with [CartOrigin](ctp:api:type:CartOrigin) `Customer`. If no active Cart exists, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. If the Cart exists in the Project but does not have the `store` field, or the `store` field references a different Store, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. @@ -126,7 +126,7 @@ uriParameters: resourceType: Cart resourceUpdateType: CartUpdate get: - displayName: Get cart by key in store + displayName: Get Cart in Store by Key securedBy: [ oauth_2_0: @@ -161,7 +161,7 @@ uriParameters: ] description: Checks if a Cart exists for a given `key`. Returns a `200 OK` status if the Cart exists or a `404 Not Found` otherwise. post: - displayName: Update cart by key in store + displayName: Update Cart in Store by Key securedBy: [ oauth_2_0: @@ -184,7 +184,7 @@ uriParameters: application/json: example: !include ../examples/cart.example.json delete: - displayName: Delete cart by key in store + displayName: Delete Cart in Store by Key description: | If the Cart exists in the Project but does not have the `store` field, or the `store` field references a different Store, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. is: @@ -208,7 +208,7 @@ uriParameters: /replicate: type: base post: - displayName: Replicate cart for store + displayName: Replicate Cart in Store description: | Creates a new Cart by replicating an existing Cart or Order. Can be useful in cases where a customer wants to cancel a recent order to make some changes or reorder a previous order. @@ -244,7 +244,7 @@ uriParameters: resourceType: Cart resourceUpdateType: CartUpdate get: - displayName: Get cart by id in store + displayName: Get Cart in Store by ID securedBy: [ oauth_2_0: @@ -279,7 +279,7 @@ uriParameters: ] description: Checks if a Cart exists for a given `id`. Returns a `200 OK` status if the Cart exists or a `404 Not Found` otherwise. post: - displayName: Update cart by id in store + displayName: Update Cart in Store by ID securedBy: [ oauth_2_0: @@ -303,7 +303,7 @@ uriParameters: application/json: example: !include ../examples/cart.example.json delete: - displayName: Delete cart by id in store + displayName: Delete Cart in Store by ID description: | If the Cart exists in the Project but does not have the `store` field, or the `store` field references a different Store, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. is: @@ -339,7 +339,7 @@ uriParameters: An order can be created from a cart, usually after a checkout process has been completed. get: - displayName: Query orders in store + displayName: Query Orders in Store securedBy: [ oauth_2_0: @@ -373,7 +373,7 @@ uriParameters: where?: type: QueryPredicate[] post: - displayName: Create order in store + displayName: Create Order in Store securedBy: [ oauth_2_0: @@ -391,6 +391,9 @@ uriParameters: Creating an Order produces the [OrderCreated](ctp:api:type:OrderCreatedMessage) Message. + If a server-side problem occurs, indicated by a 500 Internal Server Error HTTP response, the Order creation may still successfully complete after the error is returned. + If you receive this error, you should verify the status of the Order by querying a unique identifier supplied during the creation request, such as the Order number. + Specific Error Codes: - [OutOfStock](ctp:api:type:OutOfStockError) @@ -409,6 +412,43 @@ uriParameters: body: application/json: example: !include ../examples/order.example.json + /quotes: + (methodName): orderQuote + type: base + displayName: Order from Quote + post: + displayName: Create an Order from a Quote + description: | + Creating an Order produces the [OrderCreated](ctp:api:type:OrderCreatedMessage) Message. + + Specific Error Codes: + + - [OutOfStock](ctp:api:type:OutOfStockError) + - [PriceChanged](ctp:api:type:PriceChangedError) + - [InvalidItemShippingDetails](ctp:api:type:InvalidItemShippingDetailsError) + - [InvalidOperation](ctp:api:type:InvalidOperationError) + - [CountryNotConfiguredInStore](ctp:api:type:CountryNotConfiguredInStoreError) + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_quotes:{projectKey}', + 'manage_quotes:{projectKey}:{storeKey}', + ], + }, + ] + body: + application/json: + example: !include ../examples/order-from-quote.example.json + type: OrderFromQuoteDraft + responses: + 201: + body: + application/json: + example: !include ../examples/order.example.json + type: Order /order-number={orderNumber}: (methodName): withOrderNumber uriParameters: @@ -421,7 +461,7 @@ uriParameters: resourceType: Order resourceUpdateType: OrderUpdate get: - displayName: Get order by order number in store + displayName: Get Order in Store by OrderNumber securedBy: [ oauth_2_0: @@ -454,7 +494,7 @@ uriParameters: ] description: Checks if an Order exists for a given `orderNumber`. Returns a `200 OK` status if the Order exists or a `404 Not Found` otherwise. post: - displayName: Update order by order number in store + displayName: Update Order in Store by OrderNumber securedBy: [ oauth_2_0: @@ -477,7 +517,7 @@ uriParameters: application/json: example: !include ../examples/order.example.json delete: - displayName: Delete order by order number in store + displayName: Delete Order in Store by OrderNumber description: | If the Order exists in the Project but does not have the `store` field, or the `store` field references a different Store, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. @@ -508,7 +548,7 @@ uriParameters: resourceType: Order resourceUpdateType: OrderUpdate get: - displayName: Get order by id in store + displayName: Get Order in Store by ID securedBy: [ oauth_2_0: @@ -541,7 +581,7 @@ uriParameters: ] description: Checks if an Order exists for a given `id`. Returns a `200 OK` status if the Order exists or a `404 Not Found` otherwise. post: - displayName: Update order by id in store + displayName: Update Order in Store by ID securedBy: [ oauth_2_0: @@ -564,7 +604,7 @@ uriParameters: application/json: example: !include ../examples/order.example.json delete: - displayName: Delete order by id in store + displayName: Delete Order in Store by ID description: | If the Order exists in the Project but does not have the `store` field, or the `store` field references a different Store, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. @@ -601,7 +641,7 @@ uriParameters: (createable): MyCartDraft description: A shopping cart holds product variants and can be ordered. get: - displayName: Query my carts in store + displayName: Query My Carts in Store securedBy: [ oauth_2_0: @@ -610,9 +650,13 @@ uriParameters: [ 'manage_my_orders:{projectKey}', 'manage_my_orders:{projectKey}:{storeKey}', + 'customer_id:{id}', + 'anonymous_id:{id}', ], }, ] + description: | + Returns all Carts that match a given Query Predicate and contain either a matching `customerId` or `anonymousId` in a Store. responses: 200: body: @@ -627,15 +671,18 @@ uriParameters: [ 'manage_my_orders:{projectKey}', 'manage_my_orders:{projectKey}:{storeKey}', + 'customer_id:{id}', + 'anonymous_id:{id}', ], }, ] - description: Checks if a Cart exists for a given Query Predicate. Returns a `200 OK` status if any Carts match the Query Predicate or a `404 Not Found` otherwise. + description: | + Checks if a Cart exists for a Store that matches the given Query Predicate, and contains a matching `customerId` or `anonymousId`. Returns a `200 OK` status if any Carts match these conditions, or a `404 Not Found` otherwise. queryParameters: where?: type: QueryPredicate[] post: - displayName: Create my cart in store + displayName: Create My Cart in Store securedBy: [ oauth_2_0: @@ -644,10 +691,14 @@ uriParameters: [ 'manage_my_orders:{projectKey}', 'manage_my_orders:{projectKey}:{storeKey}', + 'customer_id:{id}', + 'anonymous_id:{id}', ], }, ] description: | + Creates a Cart in the specified Store for a given `customerId` or `anonymousId`. + The `store` field in the created [Cart](ctp:api:type:Cart) is set to the Store specified by the `storeKey` path parameter. Specific Error Codes: [CountryNotConfiguredInStore](ctp:api:type:CountryNotConfiguredInStoreError) @@ -667,7 +718,7 @@ uriParameters: resourceType: Cart resourceUpdateType: MyCartUpdate get: - displayName: Get my cart by id in store + displayName: Get My Cart in Store by ID securedBy: [ oauth_2_0: @@ -676,9 +727,17 @@ uriParameters: [ 'manage_my_orders:{projectKey}', 'manage_my_orders:{projectKey}:{storeKey}', + 'customer_id:{id}', + 'anonymous_id:{id}', ], }, ] + description: | + Returns a Cart for a given `id` in a Store. Returns a `200 OK` status if the Cart exists, or a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error otherwise. + + If the Cart exists in the Project but does not belong to a Store, or the Cart's `store` field references a different Store, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. + + If the Cart exists in the Project but does not have a matching `customerId` or `anonymousId`, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. responses: 200: body: @@ -693,14 +752,13 @@ uriParameters: [ 'manage_my_orders:{projectKey}', 'manage_my_orders:{projectKey}:{storeKey}', + 'customer_id:{id}', + 'anonymous_id:{id}', ], }, ] - description: Checks ifa My Cart exists for a given `id`. Returns a `200 OK` status if the My Cart exists or a `404 Not Found` otherwise. post: - displayName: Update my cart by id in store - description: | - If the Cart exists in the Project but does not have the `store` field, or the `store` field references a different Store, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. + displayName: Update My Cart in Store by ID securedBy: [ oauth_2_0: @@ -709,9 +767,17 @@ uriParameters: [ 'manage_my_orders:{projectKey}', 'manage_my_orders:{projectKey}:{storeKey}', + 'customer_id:{id}', + 'anonymous_id:{id}', ], }, ] + description: | + Updates the Cart for a given `id` in a Store. Returns a `200 OK` status if the Cart exists, or a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error otherwise. + + If the Cart exists in the Project but does not belong to a Store, or the Cart's `store` field references a different Store, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. + + If the Cart exists in the Project but does not have a matching `customerId` or `anonymousId`, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. body: application/json: example: !include ../examples/cart-update.example.json @@ -721,7 +787,7 @@ uriParameters: application/json: example: !include ../examples/cart.example.json delete: - displayName: Delete my cart by id in store + displayName: Delete My Cart in Store by ID securedBy: [ oauth_2_0: @@ -730,9 +796,17 @@ uriParameters: [ 'manage_my_orders:{projectKey}', 'manage_my_orders:{projectKey}:{storeKey}', + 'customer_id:{id}', + 'anonymous_id:{id}', ], }, ] + description: | + Deletes the Cart for a given `id` in a Store. Returns a `200 OK` status if the Cart exists, or a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error otherwise. + + If the Cart exists in the Project but does not belong to a Store, or the Cart's `store` field references a different Store, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. + + If the Cart exists in the Project but does not have a matching `customerId` or `anonymousId`, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. responses: 200: body: @@ -750,7 +824,7 @@ uriParameters: An order can be created from a order, usually after a checkout process has been completed. get: - displayName: Query my orders in store + displayName: Query My Orders in Store securedBy: [ oauth_2_0: @@ -786,7 +860,7 @@ uriParameters: post: is: - conflicting - displayName: Create my order in store + displayName: Create My Order in Store description: | The Cart must have a [shipping address set](ctp:api:type:CartSetShippingAddressAction) for taxes to be calculated. When creating [B2B Orders](/associates-overview#b2b-resources), the Customer must have the `CreateMyOrdersFromMyCarts` [Permission](ctp:api:type:Permission). @@ -825,7 +899,7 @@ uriParameters: uriParameterName: ID resourceType: Order get: - displayName: Get my order by id in store + displayName: Get My Order in Store by ID description: | If the Order exists in the Project but does not have the `store` field, or the `store` field references a different Store, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. securedBy: @@ -860,7 +934,7 @@ uriParameters: /active-cart: type: base get: - displayName: Get my active cart in store + displayName: Get My Active Cart in Store description: | Retrieves the Customer's most recently modified active Cart in the Store specified by the `storeKey` path parameter. @@ -2657,6 +2731,37 @@ uriParameters: application/json: type: ProductTailoring example: !include ../examples/product-tailoring.example.json + /images: + post: + displayName: Upload a Product Tailoring image + queryParameters: + filename?: + type: string + description: Base filename of the image when stored in the Content Delivery Network. The filename will be modified when uploaded to prevent filename conflicts. If not included a random filename will be allocated. + variant?: + type: number + format: int64 + description: The `id` of the [ProductTailoringVariant](/projects/product-tailoring#productvarianttailoring) the image should be uploaded to. It must correspond to an existing [ProductVariant](/projects/products#productvariant) in the Product. + sku?: + type: string + description: The `sku` of the [ProductTailoringVariant](/projects/product-tailoring#productvarianttailoring) the image should be uploaded to. It must correspond to an existing [ProductVariant](/projects/products#productvariant) in the Product. + staged?: + type: boolean + description: If `true`, only the staged ProductTailoringVariant is updated. If `false`, both the current and staged ProductTailoringVariant are updated. + description: | + Upload a JPEG, PNG and GIF file to a [ProductTailoringVariant](ctp:api:type:ProductTailoringVariant). The maximum file size of the image is 10MB. `variant` or `sku` is required to update a specific ProductVariant. Produces the [ProductTailoringImageAdded](/projects/messages#product-tailoring-image-added) Message when the `Small` version of the image has been uploaded to the CDN. + securedBy: [oauth_2_0: { scopes: ['manage_products:{projectKey}'] }] + body: + type: file + fileTypes: ['image/jpeg', 'image/png', 'image/gif'] + headers: + Content-Type: + enum: ['image/jpeg', 'image/png', 'image/gif'] + responses: + 200: + body: + type: ProductTailoring + example: !include ../examples/product-tailoring.example.json /key={productKey}: (methodName): withProductKey uriParameters: @@ -2735,3 +2840,685 @@ uriParameters: application/json: type: ProductTailoring example: !include ../examples/product-tailoring.example.json + /images: + post: + displayName: Upload a Product Tailoring image + queryParameters: + filename?: + type: string + description: Base filename of the image when stored in the Content Delivery Network. The filename will be modified when uploaded to prevent filename conflicts. If not included a random filename will be allocated. + variant?: + type: number + format: int64 + description: The `id` of the [ProductTailoringVariant](/projects/product-tailoring#productvarianttailoring) the image should be uploaded to. It must correspond to an existing [ProductVariant](/projects/products#productvariant) in the Product. + sku?: + type: string + description: The `sku` of the [ProductTailoringVariant](/projects/product-tailoring#productvarianttailoring) the image should be uploaded to. It must correspond to an existing [ProductVariant](/projects/products#productvariant) in the Product. + staged?: + type: boolean + description: If `true`, only the staged ProductTailoringVariant is updated. If `false`, both the current and staged ProductTailoringVariant are updated. + description: | + Upload a JPEG, PNG and GIF file to a [ProductTailoringVariant](ctp:api:type:ProductTailoringVariant). The maximum file size of the image is 10MB. `variant` or `sku` is required to update a specific ProductVariant. Produces the [ProductTailoringImageAdded](/projects/messages#product-tailoring-image-added) Message when the `Small` version of the image has been uploaded to the CDN. + securedBy: [oauth_2_0: { scopes: ['manage_products:{projectKey}'] }] + body: + type: file + fileTypes: ['image/jpeg', 'image/png', 'image/gif'] + headers: + Content-Type: + enum: ['image/jpeg', 'image/png', 'image/gif'] + responses: + 200: + body: + type: ProductTailoring + example: !include ../examples/product-tailoring.example.json +/quote-requests: + type: + baseDomain: + resourceType: QuoteRequest + resourceQueryType: QuoteRequestPagedQueryResponse + resourceDraft: QuoteRequestDraft + whereExample: 'quoteRequestState = "Submitted"' + sortExample: createdAt asc + (updateable): QuoteRequest + (deleteable): QuoteRequest + (createable): QuoteRequestDraft + description: A request for a Quote holds product variants and can be ordered. + get: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_quote_requests:{projectKey}', + 'view_quote_requests:{projectKey}:{storeKey}', + ], + }, + ] + responses: + 200: + body: + application/json: + example: !include ../examples/quote-requests.example.json + head: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_quote_requests:{projectKey}', + 'view_quote_requests:{projectKey}:{storeKey}', + ], + }, + ] + description: Checks if a QuoteRequest exists for a given Query Predicate. Returns a `200 OK` status if any QuoteRequests match the Query Predicate or a `404 Not Found` otherwise. + queryParameters: + where?: + type: QueryPredicate[] + post: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_quote_requests:{projectKey}', + 'manage_quote_requests:{projectKey}:{storeKey}', + ], + }, + ] + body: + application/json: + example: !include ../examples/quote-request-create.example.json + responses: + 201: + body: + application/json: + example: !include ../examples/quote-request.example.json + /key={key}: + (methodName): withKey + type: + baseResource: + uriParameterName: key + resourceType: QuoteRequest + resourceUpdateType: QuoteRequestUpdate + get: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_quote_requests:{projectKey}', + 'view_quote_requests:{projectKey}:{storeKey}', + ], + }, + ] + responses: + 200: + body: + application/json: + example: !include ../examples/quote-request.example.json + head: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_quote_requests:{projectKey}', + 'view_quote_requests:{projectKey}:{storeKey}', + ], + }, + ] + description: Checks if a QuoteRequest exists for a given `key`. Returns a `200 OK` status if the QuoteRequest exists or a `404 Not Found` otherwise. + post: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_quote_requests:{projectKey}', + 'manage_quote_requests:{projectKey}:{storeKey}', + ], + }, + ] + body: + application/json: + example: !include ../examples/quote-request-update.example.json + responses: + 200: + body: + application/json: + example: !include ../examples/quote-request-update-response.example.json + delete: + is: + - dataErasure + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_quote_requests:{projectKey}', + 'manage_quote_requests:{projectKey}:{storeKey}', + ], + }, + ] + responses: + 200: + body: + application/json: + example: !include ../examples/quote-request.example.json + /{ID}: + (methodName): withId + type: + baseResource: + uriParameterName: ID + resourceType: QuoteRequest + resourceUpdateType: QuoteRequestUpdate + get: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_quote_requests:{projectKey}', + 'view_quote_requests:{projectKey}:{storeKey}', + ], + }, + ] + responses: + 200: + body: + application/json: + example: !include ../examples/quote-request.example.json + head: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_quote_requests:{projectKey}', + 'view_quote_requests:{projectKey}:{storeKey}', + ], + }, + ] + description: Checks if a QuoteRequest exists for a given `id`. Returns a `200 OK` status if the QuoteRequest exists or a `404 Not Found` otherwise. + post: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_quote_requests:{projectKey}', + 'manage_quote_requests:{projectKey}:{storeKey}', + ], + }, + ] + body: + application/json: + example: !include ../examples/quote-request-update.example.json + responses: + 200: + body: + application/json: + example: !include ../examples/quote-request-update-response.example.json + delete: + is: + - dataErasure + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_quote_requests:{projectKey}', + 'manage_quote_requests:{projectKey}:{storeKey}', + ], + }, + ] + responses: + 200: + body: + application/json: + example: !include ../examples/quote-request.example.json +/staged-quotes: + type: + baseDomain: + resourceType: StagedQuote + resourceQueryType: StagedQuotePagedQueryResponse + resourceDraft: StagedQuoteDraft + whereExample: 'stagedQuoteState = "InProgress"' + sortExample: createdAt asc + (updateable): StagedQuote + (deleteable): StagedQuote + (createable): StagedQuoteDraft + description: A staged quote holds the negotiation between the [Buyer](/../api/quotes-overview#buyer) and the [Seller](/../api/quotes-overview#seller). + get: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_staged_quotes:{projectKey}', + 'view_staged_quotes:{projectKey}:{storeKey}', + ], + }, + ] + responses: + 200: + body: + application/json: + example: !include ../examples/staged-quotes.example.json + head: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_staged_quotes:{projectKey}', + 'view_staged_quotes:{projectKey}:{storeKey}', + ], + }, + ] + description: Checks if a StagedQuote exists for a given Query Predicate. Returns a `200 OK` status if any StagedQuotes match the Query Predicate or a `404 Not Found` otherwise. + queryParameters: + where?: + type: QueryPredicate[] + post: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_staged_quotes:{projectKey}', + 'manage_staged_quotes:{projectKey}:{storeKey}', + ], + }, + ] + body: + application/json: + example: !include ../examples/staged-quote-create.example.json + responses: + 201: + body: + application/json: + example: !include ../examples/staged-quote.example.json + /key={key}: + (methodName): withKey + type: + baseResource: + uriParameterName: key + resourceType: StagedQuote + resourceUpdateType: StagedQuoteUpdate + get: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_staged_quotes:{projectKey}', + 'view_staged_quotes:{projectKey}:{storeKey}', + ], + }, + ] + responses: + 200: + body: + application/json: + example: !include ../examples/staged-quote.example.json + head: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_staged_quotes:{projectKey}', + 'view_staged_quotes:{projectKey}:{storeKey}', + ], + }, + ] + description: Checks if a StagedQuote exists for a given `key`. Returns a `200 OK` status if the StagedQuote exists or a `404 Not Found` otherwise. + post: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_staged_quotes:{projectKey}', + 'manage_staged_quotes:{projectKey}:{storeKey}', + ], + }, + ] + body: + application/json: + example: !include ../examples/staged-quote-update.example.json + responses: + 200: + body: + application/json: + example: !include ../examples/staged-quote.example.json + delete: + is: + - dataErasure + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_staged_quotes:{projectKey}', + 'manage_staged_quotes:{projectKey}:{storeKey}', + ], + }, + ] + responses: + 200: + body: + application/json: + example: !include ../examples/staged-quote.example.json + /{ID}: + (methodName): withId + type: + baseResource: + uriParameterName: ID + resourceType: StagedQuote + resourceUpdateType: StagedQuoteUpdate + get: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_staged_quotes:{projectKey}', + 'view_staged_quotes:{projectKey}:{storeKey}', + ], + }, + ] + responses: + 200: + body: + application/json: + example: !include ../examples/staged-quote.example.json + head: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_staged_quotes:{projectKey}', + 'view_staged_quotes:{projectKey}:{storeKey}', + ], + }, + ] + description: Checks if a StagedQuote exists for a given `id`. Returns a `200 OK` status if the StagedQuote exists or a `404 Not Found` otherwise. + post: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_staged_quotes:{projectKey}', + 'manage_staged_quotes:{projectKey}:{storeKey}', + ], + }, + ] + body: + application/json: + example: !include ../examples/staged-quote-update.example.json + responses: + 200: + body: + application/json: + example: !include ../examples/staged-quote.example.json + delete: + is: + - dataErasure + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_staged_quotes:{projectKey}', + 'manage_staged_quotes:{projectKey}:{storeKey}', + ], + }, + ] + responses: + 200: + body: + application/json: + example: !include ../examples/staged-quote.example.json +/quotes: + type: + baseDomain: + resourceType: Quote + resourceQueryType: QuotePagedQueryResponse + resourceDraft: QuoteDraft + whereExample: 'quoteState = "Accepted"' + sortExample: createdAt asc + (updateable): Quote + (deleteable): Quote + (createable): QuoteDraft + description: A quote holds the negotiated offer. + get: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_quotes:{projectKey}', + 'view_quotes:{projectKey}:{storeKey}', + ], + }, + ] + responses: + 200: + body: + application/json: + example: !include ../examples/quotes.example.json + head: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_quotes:{projectKey}', + 'view_quotes:{projectKey}:{storeKey}', + ], + }, + ] + description: Checks if a Quote exists for a given Query Predicate. Returns a `200 OK` status if any Quotes match the Query Predicate or a `404 Not Found` otherwise. + queryParameters: + where?: + type: QueryPredicate[] + post: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_quotes:{projectKey}', + 'manage_quotes:{projectKey}:{storeKey}', + ], + }, + ] + body: + application/json: + example: !include ../examples/quote-create.example.json + responses: + 201: + body: + application/json: + example: !include ../examples/quote.example.json + /key={key}: + (methodName): withKey + type: + baseResource: + uriParameterName: key + resourceType: Quote + resourceUpdateType: QuoteUpdate + get: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_quotes:{projectKey}', + 'view_quotes:{projectKey}:{storeKey}', + ], + }, + ] + responses: + 200: + body: + application/json: + example: !include ../examples/quote.example.json + head: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_quotes:{projectKey}', + 'view_quotes:{projectKey}:{storeKey}', + ], + }, + ] + description: Checks if a Quote exists for a given `key`. Returns a `200 OK` status if the Quote exists or a `404 Not Found` otherwise. + post: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_quotes:{projectKey}', + 'manage_quotes:{projectKey}:{storeKey}', + ], + }, + ] + body: + application/json: + example: !include ../examples/quote-update.example.json + responses: + 200: + body: + application/json: + example: !include ../examples/quote.example.json + delete: + is: + - dataErasure + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_quotes:{projectKey}', + 'manage_quotes:{projectKey}:{storeKey}', + ], + }, + ] + responses: + 200: + body: + application/json: + example: !include ../examples/quote.example.json + /{ID}: + (methodName): withId + type: + baseResource: + uriParameterName: ID + resourceType: Quote + resourceUpdateType: QuoteUpdate + get: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_quotes:{projectKey}', + 'view_quotes:{projectKey}:{storeKey}', + ], + }, + ] + responses: + 200: + body: + application/json: + example: !include ../examples/quote.example.json + head: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'view_quotes:{projectKey}', + 'view_quotes:{projectKey}:{storeKey}', + ], + }, + ] + description: Checks if a Quote exists for a given `id`. Returns a `200 OK` status if the Quote exists or a `404 Not Found` otherwise. + post: + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_quotes:{projectKey}', + 'manage_quotes:{projectKey}:{storeKey}', + ], + }, + ] + body: + application/json: + example: !include ../examples/quote-update.example.json + responses: + 200: + body: + application/json: + example: !include ../examples/quote.example.json + delete: + is: + - dataErasure + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_quotes:{projectKey}', + 'manage_quotes:{projectKey}:{storeKey}', + ], + }, + ] + responses: + 200: + body: + application/json: + example: !include ../examples/quote.example.json diff --git a/api-specs/api/resources/me.raml b/api-specs/api/resources/me.raml index 7146359661..e7faba9166 100644 --- a/api-specs/api/resources/me.raml +++ b/api-specs/api/resources/me.raml @@ -299,22 +299,60 @@ delete: (createable): MyCartDraft description: A shopping cart holds product variants and can be ordered. get: - displayName: Query my carts - securedBy: [oauth_2_0: { scopes: ['manage_my_orders:{projectKey}'] }] + displayName: Query My Carts + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_my_orders:{projectKey}', + 'customer_id:{id}', + 'anonymous_id:{id}', + ], + }, + ] + description: | + Returns all Carts that match a given Query Predicate and contain either a matching `customerId` or `anonymousId`. responses: 200: body: application/json: example: !include ../examples/carts.example.json head: - securedBy: [oauth_2_0: { scopes: ['manage_my_orders:{projectKey}'] }] - description: Checks if a Cart exists for a given Query Predicate. Returns a `200 OK` status if any Carts match the Query Predicate or a `404 Not Found` otherwise. + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_my_orders:{projectKey}', + 'customer_id:{id}', + 'anonymous_id:{id}', + ], + }, + ] + description: | + Checks if a Cart exists that matches a given Query Predicate and contains either a matching `customerId` or `anonymousId`. Returns a `200 OK` status if the Cart exists, or a `404 Not Found` otherwise. queryParameters: where?: type: QueryPredicate[] post: - displayName: Create my cart - securedBy: [oauth_2_0: { scopes: ['manage_my_orders:{projectKey}'] }] + displayName: Create My Cart + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_my_orders:{projectKey}', + 'customer_id:{id}', + 'anonymous_id:{id}', + ], + }, + ] + description: | + Creates a Cart for a given `customerId` or `anonymousId`. body: application/json: example: !include ../examples/cart-create.example.json @@ -331,7 +369,7 @@ delete: resourceType: Cart resourceUpdateType: MyCartUpdate get: - displayName: Get my cart by key + displayName: Get My Cart by Key securedBy: [oauth_2_0: { scopes: ['manage_my_orders:{projectKey}'] }] responses: 200: @@ -368,19 +406,63 @@ delete: resourceType: Cart resourceUpdateType: MyCartUpdate get: - displayName: Get my cart by id - securedBy: [oauth_2_0: { scopes: ['manage_my_orders:{projectKey}'] }] + displayName: Get My Cart by ID + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_my_orders:{projectKey}', + 'customer_id:{id}', + 'anonymous_id:{id}', + ], + }, + ] + description: | + Returns a Cart for a given `id`. Returns a `200 OK` status if the Cart exists, or a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error otherwise. + + If the Cart exists in the Project but does not have a matching `customerId` or `anonymousId`, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. responses: 200: body: application/json: example: !include ../examples/cart.example.json head: - securedBy: [oauth_2_0: { scopes: ['manage_my_orders:{projectKey}'] }] - description: Checks if a Cart exists for a given `id`. Returns a `200 OK` status if the Cart exists or a `404 Not Found` otherwise. + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_my_orders:{projectKey}', + 'customer_id:{id}', + 'anonymous_id:{id}', + ], + }, + ] + description: | + Checks if a Cart exists for a given `id`. Returns a `200 OK` status if the Cart exists, or a `404 Not Found` otherwise. + + If the Cart exists in the Project but does not have a matching `customerId` or `anonymousId`, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. post: - displayName: Update my cart by id - securedBy: [oauth_2_0: { scopes: ['manage_my_orders:{projectKey}'] }] + displayName: Update My Cart by ID + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_my_orders:{projectKey}', + 'customer_id:{id}', + 'anonymous_id:{id}', + ], + }, + ] + description: | + Updates the Cart for a given `id`. Returns a `200 OK` status if the Cart exists, or a `404 Not Found` otherwise. + + If the Cart exists in the Project but does not have a matching `customerId` or `anonymousId`, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. body: application/json: example: !include ../examples/cart-update.example.json @@ -390,8 +472,23 @@ delete: application/json: example: !include ../examples/cart.example.json delete: - displayName: Delete my cart by id - securedBy: [oauth_2_0: { scopes: ['manage_my_orders:{projectKey}'] }] + displayName: Delete My Cart by ID + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_my_orders:{projectKey}', + 'customer_id:{id}', + 'anonymous_id:{id}', + ], + }, + ] + description: | + Deletes the Cart for a given `id`. Returns a `200 OK` status if the Cart exists, or a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error otherwise. + + If the Cart exists in the Project but does not have a matching `customerId` or `anonymousId`, this method returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error. responses: 200: body: @@ -400,7 +497,7 @@ delete: /replicate: type: base post: - displayName: Replicate my cart + displayName: Replicate My Cart description: | Creates a new Cart by replicating an existing Cart or Order of the authenticated Customer. This can be useful in cases where a customer wants to cancel a recent order to make some changes or reorder a previous order. @@ -412,7 +509,7 @@ delete: The new Cart does not contain Payments or Deliveries. The [State](ctp:api:type:ItemState) of Line Items and Custom Line Items is reset to `initial`. - In case the Cart or Order to be replicated does not belong to the authenticaed Customer, the API returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error + If the Cart or Order to be replicated does not belong to the authenticated Customer, the API returns a [ResourceNotFound](ctp:api:type:ResourceNotFoundError) error body: application/json: type: ReplicaMyCartDraft @@ -422,7 +519,18 @@ delete: application/json: example: !include ../examples/cart.example.json type: Cart - securedBy: [oauth_2_0: { scopes: ['manage_my_orders:{projectKey}'] }] + securedBy: + [ + oauth_2_0: + { + scopes: + [ + 'manage_my_orders:{projectKey}', + 'customer_id:{id}', + 'anonymous_id:{id}', + ], + }, + ] /orders: type: baseDomain: @@ -435,7 +543,7 @@ delete: An order can be created from a cart, usually after a checkout process has been completed. get: - displayName: Query my orders + displayName: Query My Orders securedBy: [oauth_2_0: { scopes: ['manage_my_orders:{projectKey}'] }] responses: 200: @@ -451,12 +559,15 @@ delete: post: is: - conflicting - displayName: Create my order + displayName: Create My Order description: | The Cart must have a [shipping address set](ctp:api:type:CartSetShippingAddressAction) for taxes to be calculated. When creating [B2B Orders](/associates-overview#b2b-resources), the Customer must have the `CreateMyOrdersFromMyCarts` [Permission](ctp:api:type:Permission). Creating an Order produces the [OrderCreated](ctp:api:type:OrderCreatedMessage) Message. + If a server-side problem occurs, indicated by a 500 Internal Server Error HTTP response, the Order creation may still successfully complete after the error is returned. + If you receive this error, you should verify the status of the Order by querying a unique identifier supplied during the creation request, such as the Order number. + Specific Error Codes: - [OutOfStock](ctp:api:type:OutOfStockError) @@ -480,7 +591,7 @@ delete: resourceType: Order resourceUpdateType: MyOrderUpdate get: - displayName: Get my order by id + displayName: Get My Order by ID securedBy: [oauth_2_0: { scopes: ['manage_my_orders:{projectKey}'] }] responses: 200: @@ -495,7 +606,7 @@ delete: type: base displayName: Order from Quote post: - displayName: Create my Order from a Quote + displayName: Create My Order from Quote description: | When creating [B2B Orders](/associates-overview#b2b-resources), the Customer must have the `CreateMyOrdersFromMyQuotes` [Permission](ctp:api:type:Permission). diff --git a/api-specs/api/resources/orders.raml b/api-specs/api/resources/orders.raml index 456b6e3654..f8e04a55f1 100644 --- a/api-specs/api/resources/orders.raml +++ b/api-specs/api/resources/orders.raml @@ -34,6 +34,9 @@ post: Creating an Order produces the [OrderCreated](ctp:api:type:OrderCreatedMessage) Message. + If a server-side problem occurs, indicated by a 500 Internal Server Error HTTP response, the Order creation may still successfully complete after the error is returned. + If you receive this error, you should verify the status of the Order by querying a unique identifier supplied during the creation request, such as the Order number. + Specific Error Codes: - [OutOfStock](ctp:api:type:OutOfStockError) diff --git a/api-specs/api/resources/products.raml b/api-specs/api/resources/products.raml index 65318d56b2..3d2e528cf4 100644 --- a/api-specs/api/resources/products.raml +++ b/api-specs/api/resources/products.raml @@ -25,7 +25,7 @@ get: is: - priceSelecting description: |- - If [Price selection](ctp:api:type:ProductPriceSelection) query parameters are provided, the selected Prices are added to the response. + If [Product price selection query parameters](/../api/pricing-and-discounts-overview#product-price-selection) are provided, the selected Prices are added to the response. queryParameters: where: type: QueryPredicate[] @@ -54,7 +54,7 @@ post: securedBy: [oauth_2_0: { scopes: ['manage_products:{projectKey}'] }] description: | To create a new Product, send a representation that is going to become the initial _staged_ and _current_ representation of the new Product in the catalog. - If [Price Selection](ctp:api:type:ProductPriceSelection) query parameters are provided, selected Prices will be added to the response. + If [Product price selection query parameters](/../api/pricing-and-discounts-overview#product-price-selection) are provided, selected Prices will be added to the response. Produces the [ProductCreated](/projects/messages#product-created) Message. is: - priceSelecting @@ -78,7 +78,7 @@ post: is: - priceSelecting description: |- - If [Price selection](ctp:api:type:ProductPriceSelection) query parameters are provided, the selected Prices are added to the response. + If [Product price selection query parameters]](/../api/pricing-and-discounts-overview#product-price-selection) are provided, the selected Prices are added to the response. responses: 200: body: @@ -102,7 +102,7 @@ post: example: !include ../examples/product.example.json delete: description: |- - If [Price selection](ctp:api:type:ProductPriceSelection) query parameters are provided, the selected Prices are added to the response. + If [Product price selection query parameters](/../api/pricing-and-discounts-overview#product-price-selection) are provided, the selected Prices are added to the response. Produces the [ProductDeleted](/projects/messages#product-deleted) Message. securedBy: [oauth_2_0: { scopes: ['manage_products:{projectKey}'] }] is: @@ -139,7 +139,7 @@ post: is: - priceSelecting description: |- - If [Price selection](ctp:api:type:ProductPriceSelection) query parameters are provided, the selected Prices are added to the response. + If [Product price selection query parameters](/../api/pricing-and-discounts-overview#product-price-selection) are provided, the selected Prices are added to the response. responses: 200: body: @@ -153,7 +153,7 @@ post: is: - priceSelecting description: |- - If [Price selection](ctp:api:type:ProductPriceSelection) query parameters are provided, the selected Prices are added to the response. + If [Product price selection query parameters](/../api/pricing-and-discounts-overview#product-price-selection) are provided, the selected Prices are added to the response. A failed response can return a [DuplicatePriceScope](ctp:api:type:DuplicatePriceScopeError), [DuplicateVariantValues](ctp:api:type:DuplicateVariantValuesError), [DuplicateAttributeValue](ctp:api:type:DuplicateAttributeValueError), or [DuplicateAttributeValues](ctp:api:type:DuplicateAttributeValuesError) error. body: @@ -166,7 +166,7 @@ post: example: !include ../examples/product.example.json delete: description: |- - If [Price selection](ctp:api:type:ProductPriceSelection) query parameters are provided, the selected Prices are added to the response. + If [Product price selection query parameters](/../api/pricing-and-discounts-overview#product-price-selection) are provided, the selected Prices are added to the response. Produces the [ProductDeleted](/projects/messages#product-deleted) Message. securedBy: [oauth_2_0: { scopes: ['manage_products:{projectKey}'] }] is: diff --git a/api-specs/api/resources/standalone-prices.raml b/api-specs/api/resources/standalone-prices.raml index e9aca8d33e..6deec7de01 100644 --- a/api-specs/api/resources/standalone-prices.raml +++ b/api-specs/api/resources/standalone-prices.raml @@ -26,7 +26,10 @@ head: type: QueryPredicate[] post: description: | - Produces the [StandalonePriceCreated](ctp:api:type:StandalonePriceCreatedMessage) Message. + Creating a Standalone Price produces the [StandalonePriceCreated](ctp:api:type:StandalonePriceCreatedMessage) Message. + + - If the Standalone Price has the same price scope as an existing Standalone Price, a [DuplicateStandalonePriceScope](ctp:api:type:DuplicateStandalonePriceScopeError) error is returned. + - If the Standalone Price has overlapping validity periods within the same price scope, a [OverlappingStandalonePriceValidity](ctp:api:type:OverlappingStandalonePriceValidityError) error is returned. A Price without validity period does not conflict with a Price defined for a time period. securedBy: [oauth_2_0: { scopes: ['manage_standalone_prices:{projectKey}'] }] body: application/json: diff --git a/api-specs/api/ruleset.xml b/api-specs/api/ruleset.xml index 05b9e91688..9c44860f9f 100644 --- a/api-specs/api/ruleset.xml +++ b/api-specs/api/ruleset.xml @@ -77,6 +77,7 @@ + diff --git a/api-specs/api/traits/price-selecting.raml b/api-specs/api/traits/price-selecting.raml index 4fed195f65..063f2554af 100644 --- a/api-specs/api/traits/price-selecting.raml +++ b/api-specs/api/traits/price-selecting.raml @@ -1,28 +1,22 @@ #%RAML 1.0 Trait - queryParameters: priceCurrency: type: CurrencyCode required: false description: | - The currency used for [Price selection](/projects/products#price-selection). + The currency used for [Product price selection](/../api/pricing-and-discounts-overview#product-price-selection). priceCountry: type: CountryCode required: false description: | - The country used for [Price selection](/projects/products#price-selection). Can only be used **in conjunction with** the `priceCurrency` parameter. + The country used for [Product price selection](/../api/pricing-and-discounts-overview#product-price-selection). Can only be used **in conjunction with** the `priceCurrency` parameter. priceCustomerGroup: type: string required: false description: | - `id` of an existing [CustomerGroup](ctp:api:type:CustomerGroup) used for [Price selection](ctp:api:type:ProductPriceSelection). Can only be used **in conjunction with** the `priceCurrency` parameter. + `id` of an existing [CustomerGroup](ctp:api:type:CustomerGroup) used for [Product price selection](/../api/pricing-and-discounts-overview#product-price-selection). Can only be used **in conjunction with** the `priceCurrency` parameter. priceChannel: type: string required: false description: | - `id` of an existing [Channel](ctp:api:type:Channel) used for [Price selection](ctp:api:type:ProductPriceSelection). Can only be used **in conjunction with** the `priceCurrency` parameter. - localeProjection: - type: Locale[] - required: false - description: | - Used for [locale-based projection](ctp:api:type:ProductProjectionLocales). + `id` of an existing [Channel](ctp:api:type:Channel) used for [Product price selection](/../api/pricing-and-discounts-overview#product-price-selection). Can only be used **in conjunction with** the `priceCurrency` parameter. diff --git a/api-specs/api/types/annotations.raml b/api-specs/api/types/annotations.raml index 11816d73d1..ded97bfa6e 100644 --- a/api-specs/api/types/annotations.raml +++ b/api-specs/api/types/annotations.raml @@ -102,3 +102,6 @@ enumGroups: //: description: | Specifies the group for the enum value given by the key. +expandable: + type: boolean + allowedTargets: TypeDeclaration diff --git a/api-specs/api/types/associate-role/AssociateRoleKeyReference.raml b/api-specs/api/types/associate-role/AssociateRoleKeyReference.raml index f93e7205cf..483db644c4 100644 --- a/api-specs/api/types/associate-role/AssociateRoleKeyReference.raml +++ b/api-specs/api/types/associate-role/AssociateRoleKeyReference.raml @@ -4,7 +4,7 @@ displayName: AssociateRoleKeyReference type: KeyReference discriminatorValue: associate-role description: | - [Reference](ctp:api:type:Reference) to an [AssociateRole](ctp:api:type:AssociateRole) by its key. + [KeyReference](ctp:api:type:KeyReference) to an [AssociateRole](ctp:api:type:AssociateRole). properties: key: type: string diff --git a/api-specs/api/types/business-unit/Associate.raml b/api-specs/api/types/business-unit/Associate.raml index 444065b138..c31d37bf68 100644 --- a/api-specs/api/types/business-unit/Associate.raml +++ b/api-specs/api/types/business-unit/Associate.raml @@ -1,6 +1,8 @@ #%RAML 1.0 DataType (package): BusinessUnit displayName: Associate +type: object +(expandable): true properties: associateRoleAssignments: type: AssociateRoleAssignment[] diff --git a/api-specs/api/types/business-unit/AssociateRoleAssignment.raml b/api-specs/api/types/business-unit/AssociateRoleAssignment.raml index e7341d339f..60925727ca 100644 --- a/api-specs/api/types/business-unit/AssociateRoleAssignment.raml +++ b/api-specs/api/types/business-unit/AssociateRoleAssignment.raml @@ -1,6 +1,7 @@ #%RAML 1.0 DataType (package): BusinessUnit displayName: AssociateRoleAssignment +type: object properties: associateRole: type: AssociateRoleKeyReference diff --git a/api-specs/api/types/business-unit/BusinessUnit.raml b/api-specs/api/types/business-unit/BusinessUnit.raml index c181fdf270..f101aaf66f 100644 --- a/api-specs/api/types/business-unit/BusinessUnit.raml +++ b/api-specs/api/types/business-unit/BusinessUnit.raml @@ -114,3 +114,8 @@ properties: type: BusinessUnitKeyReference description: | Top-level unit of the Business Unit. The top-level unit is of `unitType` `Company`. + approvalRuleMode: + type: BusinessUnitApprovalRuleMode + description: | + Determines whether the Business Unit can inherit Approval Rules from a parent. + Always `Explicit` for [Companies](ctp:api:type:BusinessUnitType) and defaults to `ExplicitAndFromParent` for [Divisions](ctp:api:type:BusinessUnitType). diff --git a/api-specs/api/types/business-unit/BusinessUnitApprovalRuleMode.raml b/api-specs/api/types/business-unit/BusinessUnitApprovalRuleMode.raml new file mode 100644 index 0000000000..5fdc2148c1 --- /dev/null +++ b/api-specs/api/types/business-unit/BusinessUnitApprovalRuleMode.raml @@ -0,0 +1,14 @@ +#%RAML 1.0 DataType +(package): BusinessUnit +displayName: BusinessUnitApprovalRuleMode +type: string +description: | + Determines whether a Business Unit can inherit [Approval Rules](/projects/approval-rules) from a parent. Only Business Units of type `Division` can use `ExplicitAndFromParent`. +enum: + - Explicit + - ExplicitAndFromParent +(enumDescriptions): + Explicit: | + Approval Rules of a Business Unit must be explicitly assigned. The Business Unit cannot inherit Approval Rules from a parent. + ExplicitAndFromParent: | + Approval Rules of a Business Unit are inherited from a parent and can also be explicitly assigned. diff --git a/api-specs/api/types/business-unit/BusinessUnitDraft.raml b/api-specs/api/types/business-unit/BusinessUnitDraft.raml index ce310f12e6..c1ee9cb22e 100644 --- a/api-specs/api/types/business-unit/BusinessUnitDraft.raml +++ b/api-specs/api/types/business-unit/BusinessUnitDraft.raml @@ -52,6 +52,12 @@ properties: type: AssociateDraft[] description: | List of members that are part of the Business Unit in specific [roles](ctp:api:type:AssociateRole). + approvalRuleMode?: + type: BusinessUnitApprovalRuleMode + description: | + Determines whether the Business Unit can inherit Approval Rules from a parent. + For [Companies](ctp:api:type:BusinessUnitType), the value of this field is always `Explicit`. + For [Divisions](ctp:api:type:BusinessUnitType), the default value is `ExplicitAndFromParent`. addresses?: type: BaseAddress[] description: | diff --git a/api-specs/api/types/business-unit/BusinessUnitKeyReference.raml b/api-specs/api/types/business-unit/BusinessUnitKeyReference.raml index 63603a55d6..c059351a86 100644 --- a/api-specs/api/types/business-unit/BusinessUnitKeyReference.raml +++ b/api-specs/api/types/business-unit/BusinessUnitKeyReference.raml @@ -4,7 +4,7 @@ displayName: BusinessUnitKeyReference type: KeyReference discriminatorValue: business-unit description: | - [Reference](ctp:api:type:Reference) to a [BusinessUnit](ctp:api:type:BusinessUnit) by its key. + [KeyReference](ctp:api:type:KeyReference) to a [BusinessUnit](ctp:api:type:BusinessUnit). properties: key: type: string diff --git a/api-specs/api/types/business-unit/Company.raml b/api-specs/api/types/business-unit/Company.raml index c196461575..c43bcdbc97 100644 --- a/api-specs/api/types/business-unit/Company.raml +++ b/api-specs/api/types/business-unit/Company.raml @@ -10,8 +10,13 @@ properties: storeMode: type: BusinessUnitStoreMode description: | - Is always `Explicit` since a Company cannot have a parent Business Unit that Stores can be inherited from. + The value of this field is always `Explicit` because a Company cannot have a parent Business Unit that Stores can be inherited from. associateMode: type: BusinessUnitAssociateMode description: | - Is always `Explicit` since a Company cannot have a parent Business Unit that Associates can be inherited from. + The value of this field is always `Explicit` because a Company cannot have a parent Business Unit that Associates can be inherited from. + approvalRuleMode: + type: BusinessUnitApprovalRuleMode + default: Explicit + description: | + The value of this field is always `Explicit` because a Company cannot have a parent Business Unit that Approval Rules can be inherited from. diff --git a/api-specs/api/types/business-unit/Division.raml b/api-specs/api/types/business-unit/Division.raml index 86fea9b468..72278de7e7 100644 --- a/api-specs/api/types/business-unit/Division.raml +++ b/api-specs/api/types/business-unit/Division.raml @@ -21,3 +21,8 @@ properties: default: ExplicitAndFromParent description: | Determines whether the Division can inherit Associates from a parent. + approvalRuleMode: + type: BusinessUnitApprovalRuleMode + default: ExplicitAndFromParent + description: | + Determines whether a Business Unit can inherit Approval Rules from a parent. diff --git a/api-specs/api/types/business-unit/DivisionDraft.raml b/api-specs/api/types/business-unit/DivisionDraft.raml index 5de3cb30dd..aeb54f8079 100644 --- a/api-specs/api/types/business-unit/DivisionDraft.raml +++ b/api-specs/api/types/business-unit/DivisionDraft.raml @@ -22,3 +22,8 @@ properties: default: ExplicitAndFromParent description: | Determines whether the Division can inherit Associates from a parent. + approvalRuleMode?: + type: BusinessUnitApprovalRuleMode + default: ExplicitAndFromParent + description: | + Determines whether the Division can inherit Approval Rules from a parent. diff --git a/api-specs/api/types/business-unit/InheritedAssociate.raml b/api-specs/api/types/business-unit/InheritedAssociate.raml index f3ed1aad67..dbf706282f 100644 --- a/api-specs/api/types/business-unit/InheritedAssociate.raml +++ b/api-specs/api/types/business-unit/InheritedAssociate.raml @@ -1,6 +1,8 @@ #%RAML 1.0 DataType (package): BusinessUnit displayName: InheritedAssociate +type: object +(expandable): true properties: associateRoleAssignments: type: InheritedAssociateRoleAssignment[] diff --git a/api-specs/api/types/business-unit/InheritedAssociateRoleAssignment.raml b/api-specs/api/types/business-unit/InheritedAssociateRoleAssignment.raml index 4cb5daf2fd..4a35f82175 100644 --- a/api-specs/api/types/business-unit/InheritedAssociateRoleAssignment.raml +++ b/api-specs/api/types/business-unit/InheritedAssociateRoleAssignment.raml @@ -1,6 +1,7 @@ #%RAML 1.0 DataType (package): BusinessUnit displayName: InheritedAssociateRoleAssignment +type: object properties: associateRole: type: AssociateRoleKeyReference diff --git a/api-specs/api/types/business-unit/updates/BusinessUnitChangeApprovalRuleModeAction.raml b/api-specs/api/types/business-unit/updates/BusinessUnitChangeApprovalRuleModeAction.raml new file mode 100644 index 0000000000..4eb7fbb2a9 --- /dev/null +++ b/api-specs/api/types/business-unit/updates/BusinessUnitChangeApprovalRuleModeAction.raml @@ -0,0 +1,17 @@ +#%RAML 1.0 DataType +(package): BusinessUnit +type: BusinessUnitUpdateAction +displayName: BusinessUnitChangeApprovalRuleModeAction +discriminatorValue: changeApprovalRuleMode +example: !include ../../../examples/BusinessUnit/BusinessUnitChangeApprovalRuleModeAction.json +description: | + Updates [Approval Rules](/projects/approval-rules) inheritance behavior between Business Units. + + Only Business Units of type `Division` can be changed to `ExplicitAndFromParent`. + + This update action generates a [BusinessUnitApprovalRuleModeChanged](ctp:api:type:BusinessUnitApprovalRuleModeChangedMessage) Message. +properties: + approvalRuleMode: + type: BusinessUnitApprovalRuleMode + description: | + The new value for `approvalRuleMode`. diff --git a/api-specs/api/types/cart/Cart.raml b/api-specs/api/types/cart/Cart.raml index e8bcfa3f0e..2f71f31c54 100644 --- a/api-specs/api/types/cart/Cart.raml +++ b/api-specs/api/types/cart/Cart.raml @@ -32,7 +32,7 @@ properties: customerGroup?: type: CustomerGroupReference description: | - [Reference](ctp:api:type:Reference) to the Customer Group of the Customer that the Cart belongs to. Used for [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + [Reference](ctp:api:type:Reference) to the Customer Group of the Customer that the Cart belongs to. Used for [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). anonymousId?: type: string description: | @@ -170,7 +170,7 @@ properties: country?: type: CountryCode description: | - Used for [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + Used for [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). locale?: type: Locale description: | diff --git a/api-specs/api/types/cart/CartDraft.raml b/api-specs/api/types/cart/CartDraft.raml index f3f66fd321..968e25aa88 100644 --- a/api-specs/api/types/cart/CartDraft.raml +++ b/api-specs/api/types/cart/CartDraft.raml @@ -25,7 +25,7 @@ properties: customerGroup?: type: CustomerGroupResourceIdentifier description: | - [ResourceIdentifier](ctp:api:type:ResourceIdentifier) to the Customer Group of the Customer that the Cart belongs to. Used for [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + [ResourceIdentifier](ctp:api:type:ResourceIdentifier) to the Customer Group of the Customer that the Cart belongs to. Used for [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). It is automatically set if the Customer referenced in `customerId` belongs to a Customer Group. It can also be set explicitly when no `customerId` is present. @@ -123,7 +123,7 @@ properties: country?: type: CountryCode description: | - Used for [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + Used for [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). If used for [Create Cart in Store](ctp:api:endpoint:/{projectKey}/in-store/carts:POST), the provided country must be one of the [Store's](ctp:api:type:Store) `countries`. locale?: type: Locale diff --git a/api-specs/api/types/cart/CartState.raml b/api-specs/api/types/cart/CartState.raml index 7c494a193a..27de1389c2 100644 --- a/api-specs/api/types/cart/CartState.raml +++ b/api-specs/api/types/cart/CartState.raml @@ -11,7 +11,7 @@ enum: - Frozen (enumDescriptions): Active: | - The default state where a Cart can be updated and ordered. + The default state where a Cart can be updated and ordered. A [Customer](ctp:api:type:Customer) can have more than one active Cart. Merged: | An anonymous Cart was merged into a Customer's Cart on [sign-in](ctp:api:endpoint:/{projectKey}/login:POST), and no further operations are allowed on the Cart. Ordered: | diff --git a/api-specs/api/types/cart/CustomLineItem.raml b/api-specs/api/types/cart/CustomLineItem.raml index 453692707a..95072e3b9f 100644 --- a/api-specs/api/types/cart/CustomLineItem.raml +++ b/api-specs/api/types/cart/CustomLineItem.raml @@ -2,6 +2,7 @@ (package): Cart displayName: CustomLineItem type: object +(expandable): true description: | A generic item that can be added to the Cart but is not bound to a Product that can be used for discounts (negative money), vouchers, complex cart rules, additional services, or fees. You control the lifecycle of this item. diff --git a/api-specs/api/types/cart/CustomLineItemPriceMode.raml b/api-specs/api/types/cart/CustomLineItemPriceMode.raml index 534db6fa56..3d48d5634a 100644 --- a/api-specs/api/types/cart/CustomLineItemPriceMode.raml +++ b/api-specs/api/types/cart/CustomLineItemPriceMode.raml @@ -13,4 +13,4 @@ enum: This is the default mode for backwards compatibility. External: | - Deactivates application of Cart Discounts for the Custom Line Item despite a matching [CartDiscountCustomLineItemsTarget](ctp:api:type:CartDiscountCustomLineItemsTarget). + Deactivates application of Cart Discounts for the Custom Line Item, despite a matching [CartDiscountCustomLineItemsTarget](ctp:api:type:CartDiscountCustomLineItemsTarget) and [MultiBuyCustomLineItemsTarget](ctp:api:type:MultiBuyCustomLineItemsTarget). diff --git a/api-specs/api/types/cart/DirectDiscountDraft.raml b/api-specs/api/types/cart/DirectDiscountDraft.raml index d4e809bb56..2c992718ca 100644 --- a/api-specs/api/types/cart/DirectDiscountDraft.raml +++ b/api-specs/api/types/cart/DirectDiscountDraft.raml @@ -6,11 +6,7 @@ example: !include ../../examples/Cart/CartDirectDiscountDraft.json description: | Represents a [CartDiscount](ctp:api:type:CartDiscount) that can only be associated with a single Cart or Order. - Direct Discounts are always active and valid, and have the default `Stacking` [StackingMode](ctp:api:type:StackingMode). - They apply in the order in which they are listed in the `directDiscounts` array of [Carts](ctp:api:type:Cart) or [Orders](ctp:api:type:Order), and do not have a sorting order like Cart Discounts. - - If a Direct Discount is present, any matching Cart Discounts in the Project are ignored. - Additionally, a Cart or Order supports either Discount Codes or Direct Discounts at the same time. + For an introduction to Direct Discounts and to understand how they work in Composable Commerce, see the [Direct Discounts overview](/pricing-and-discounts-overview#direct-discounts). properties: value: type: CartDiscountValueDraft diff --git a/api-specs/api/types/cart/DiscountCodeInfo.raml b/api-specs/api/types/cart/DiscountCodeInfo.raml index 2e2b17c05a..7f94cb959f 100644 --- a/api-specs/api/types/cart/DiscountCodeInfo.raml +++ b/api-specs/api/types/cart/DiscountCodeInfo.raml @@ -1,6 +1,7 @@ #%RAML 1.0 DataType (package): Cart displayName: DiscountCodeInfo +(expandable): true type: object properties: discountCode: diff --git a/api-specs/api/types/cart/DiscountedTotalPricePortion.raml b/api-specs/api/types/cart/DiscountedTotalPricePortion.raml index fa5e287bc9..d1a3511293 100644 --- a/api-specs/api/types/cart/DiscountedTotalPricePortion.raml +++ b/api-specs/api/types/cart/DiscountedTotalPricePortion.raml @@ -2,6 +2,7 @@ (package): Cart displayName: DiscountedTotalPricePortion type: object +(expandable): true properties: discount: type: CartDiscountReference diff --git a/api-specs/api/types/cart/ExternalTaxRateDraft.raml b/api-specs/api/types/cart/ExternalTaxRateDraft.raml index 381873d4db..88d10543b6 100644 --- a/api-specs/api/types/cart/ExternalTaxRateDraft.raml +++ b/api-specs/api/types/cart/ExternalTaxRateDraft.raml @@ -35,4 +35,5 @@ properties: subRates?: type: SubRate[] description: | - For countries (such as the US) where the total tax is a combination of multiple taxes (such as state and local taxes). The total of all subrates must equal the TaxRate `amount`. + Used when the total tax is a combination of multiple taxes (for example, local, state/provincial, and/or federal taxes). The total of all subrates must equal the TaxRate `amount`. + These subrates are used to calculate the `taxPortions` field of a [Cart](ctp:api:type:Cart) or [Order](ctp:api:type:Order) and the `taxedPrice` field of [LineItems](ctp:api:type:LineItem), [CustomLineItems](ctp:api:type:CustomLineItem), and [ShippingInfos](ctp:api:type:ShippingInfo). diff --git a/api-specs/api/types/cart/LineItem.raml b/api-specs/api/types/cart/LineItem.raml index 1602ae63db..a12d042d31 100644 --- a/api-specs/api/types/cart/LineItem.raml +++ b/api-specs/api/types/cart/LineItem.raml @@ -2,6 +2,7 @@ (package): Cart displayName: LineItem type: object +(expandable): true description: | The representation of a [Line Item](/../api/carts-orders-overview#line-items) in a [Cart](ctp:api:type:Cart) or in an [Order](ctp:api:type:Order). properties: @@ -97,7 +98,7 @@ properties: distributionChannel?: type: ChannelReference description: | - Used to [select](ctp:api:type:LineItemPriceSelection) a Product Price. The referenced Channel has the `ProductDistribution` [ChannelRoleEnum](ctp:api:type:ChannelRoleEnum). + Used to [select](/../api/pricing-and-discounts-overview#line-item-price-selection) a Product Price. The referenced Channel has the `ProductDistribution` [ChannelRoleEnum](ctp:api:type:ChannelRoleEnum). priceMode: type: LineItemPriceMode description: | diff --git a/api-specs/api/types/cart/LineItemDraft.raml b/api-specs/api/types/cart/LineItemDraft.raml index 62435a743e..b0d6d78400 100644 --- a/api-specs/api/types/cart/LineItemDraft.raml +++ b/api-specs/api/types/cart/LineItemDraft.raml @@ -42,7 +42,7 @@ properties: distributionChannel?: type: ChannelResourceIdentifier description: | - Used to [select](ctp:api:type:LineItemPriceSelection) a Product Price. + Used to [select](/../api/pricing-and-discounts-overview#line-item-price-selection) a Product Price. The referenced Channel must have the `ProductDistribution` [ChannelRoleEnum](ctp:api:type:ChannelRoleEnum). If the Cart is bound to a [Store](ctp:api:type:Store) with `distributionChannels` set, @@ -63,7 +63,7 @@ properties: externalTaxRate?: type: ExternalTaxRateDraft description: | - Sets the external Tax Rate for the Line Item, if the Cart has the `External` [TaxMode](ctp:api:type:TaxMode) and `Single` [ShippingMode](ctp:api:type:ShippingMode). + Sets the external Tax Rate for the Line Item, if the Cart has the `External` [TaxMode](ctp:api:type:TaxMode) and `Single` [ShippingMode](ctp:api:type:ShippingMode). If the Cart has `Multiple` [ShippingMode](ctp:api:type:ShippingMode), the Tax Rate is accepted but ignored. perMethodExternalTaxRate?: type: MethodExternalTaxRateDraft[] description: | diff --git a/api-specs/api/types/cart/LineItemPriceMode.raml b/api-specs/api/types/cart/LineItemPriceMode.raml index 47ffcfee00..3b2e1ad5c6 100644 --- a/api-specs/api/types/cart/LineItemPriceMode.raml +++ b/api-specs/api/types/cart/LineItemPriceMode.raml @@ -10,7 +10,7 @@ enum: - ExternalTotal (enumDescriptions): Platform: | - The [price is selected](ctp:api:type:LineItemPriceSelection) from the Product Variant. + The price is [selected](/../api/pricing-and-discounts-overview#line-item-price-selection) from the Product Variant. This is the default mode. ExternalPrice: | The Line Item price is set externally. @@ -18,7 +18,7 @@ enum: All update actions that change the quantity of a Line Item with this price mode require the `externalPrice` field to be given. ExternalTotal: | The Line Item price with the total is set externally. - Cart Discounts are deactivated for Line Items with this price mode. + Cart Discounts are deactivated for Line Items with this price mode, despite a matching [CartDiscountLineItemsTarget](ctp:api:type:CartDiscountLineItemsTarget) or [MultiBuyLineItemsTarget](ctp:api:type:MultiBuyLineItemsTarget). Although a Line Item with this price mode has both `price` and `totalPrice` set externally, only `totalPrice` is used to calculate the total price of a Cart. All update actions that change the quantity of a Line Item with this price mode can set the new price with the `externalTotal` field. If the `externalTotal` field is not given in the update actions, the external price is unset and the price mode is set to `Platform`. diff --git a/api-specs/api/types/cart/ShippingInfo.raml b/api-specs/api/types/cart/ShippingInfo.raml index ce0407735f..0efe6a7821 100644 --- a/api-specs/api/types/cart/ShippingInfo.raml +++ b/api-specs/api/types/cart/ShippingInfo.raml @@ -2,6 +2,7 @@ (package): Cart displayName: ShippingInfo type: object +(expandable): true properties: shippingMethodName: type: string diff --git a/api-specs/api/types/cart/ShippingMethodState.raml b/api-specs/api/types/cart/ShippingMethodState.raml index 73f2ea2f41..0757eac194 100644 --- a/api-specs/api/types/cart/ShippingMethodState.raml +++ b/api-specs/api/types/cart/ShippingMethodState.raml @@ -3,7 +3,7 @@ displayName: ShippingMethodState type: string description: | - Determines whether a [ShippingMethod](ctp:api:type:ShippingMethod) is allowed for a Cart. + Determines whether the selected [ShippingMethod](ctp:api:type:ShippingMethod) is allowed for the Cart. For more information, see [Predicates](/shipping-delivery-overview#predicates). enum: - DoesNotMatchCart - MatchesCart diff --git a/api-specs/api/types/cart/TaxMode.raml b/api-specs/api/types/cart/TaxMode.raml index 36abf4d37c..8332ca67bb 100644 --- a/api-specs/api/types/cart/TaxMode.raml +++ b/api-specs/api/types/cart/TaxMode.raml @@ -11,24 +11,33 @@ enum: - Disabled (enumDescriptions): Platform: | - Tax Rates are selected automatically from the [TaxCategories](ctp:api:type:TaxCategory) based on the [Cart](ctp:api:type:Cart) `shippingAddress`. + - Tax Rates are selected automatically from the [TaxCategories](ctp:api:type:TaxCategory) based on the [Cart](ctp:api:type:Cart) `shippingAddress`. This is the default tax mode for a new Cart. - `totalNet`, `totalGross`, and `taxPortions` fields are calculated based on the `taxRoundingMode`. + - The `totalNet`, `totalGross`, and `taxPortions` fields are calculated based on the `taxRoundingMode`. External: | - Tax Rates are set externally per [ExternalTaxRateDraft](ctp:api:type:ExternalTaxRateDraft). + - Tax Rates are set externally with [ExternalTaxRateDraft](ctp:api:type:ExternalTaxRateDraft). A Cart can be ordered only if all Line Items, Custom Line Items, and the Shipping Method have an external Tax Rate set. - `totalNet`, `totalGross`, and `taxPortions` fields are calculated based on the `taxRoundingMode`. + - The `totalNet`, `totalGross`, and `taxPortions` fields are calculated based on the `taxRoundingMode`. ExternalAmount: | - Tax amounts, Tax Rates, and tax portions are set externally per [ExternalTaxAmountDraft](ctp:api:type:ExternalTaxAmountDraft). + - Tax amounts, Tax Rates, and tax portions are set externally with [ExternalTaxAmountDraft](ctp:api:type:ExternalTaxAmountDraft). A Cart can be ordered only if the Cart and all Line Items, Custom Line Items, and the Shipping Method have an external tax amount and rate set. - Price-specific update actions on Carts require external recalculation of the total gross price. - Hence, the `externalTaxAmount` is removed in these cases and must be reset with [Set LineItem TaxAmount](ctp:api:type:CartSetLineItemTaxAmountAction), [Set CustomLineItem TaxAmount](ctp:api:type:CartSetCustomLineItemTaxAmountAction), or [Set ShippingMethod TaxAmount](ctp:api:type:CartSetShippingMethodTaxAmountAction) update actions. - Also the Cart `taxedPrice` field must be explicitly set via [Set Cart Total Tax](ctp:api:type:CartSetCartTotalTaxAction). - Since the API currently does not offer an update action for setting the `taxedShippingPrice` field of a Cart with `ExternalAmount` tax mode, it will always be empty. - Disabled: | - No taxes are added to the Cart. + - The Cart `taxedPrice` field must be set using [Set Cart Total Tax](ctp:api:type:CartSetCartTotalTaxAction). The Cart `taxedShippingPrice` field is always empty in this tax mode. + + - Price-affecting update actions on Carts require external recalculation of the total gross price. In these cases, `taxedPrice` and `taxRate` are removed and must be set again. The order in which the individual update actions are issued is important: + 1. Issue the price-affecting update action(s). + 2. Update the tax amounts using [Set LineItem TaxAmount](ctp:api:type:CartSetLineItemTaxAmountAction), [Set CustomLineItem TaxAmount](ctp:api:type:CartSetCustomLineItemTaxAmountAction), or [Set ShippingMethod TaxAmount](ctp:api:type:CartSetShippingMethodTaxAmountAction). + + - If the update action changes the Line Item price, for Line Items with `Platform` [LineItemPriceMode](ctp:type:LineItemPriceMode), you must issue [Set LineItem TaxAmount](ctp:api:type:CartSetLineItemTaxAmountAction) in a _separate_ request. + + - If the update action removes the externally set tax amount for the Shipping Method, you must issue [Set ShippingMethod TaxAmount](ctp:api:type:CartSetShippingMethodTaxAmountAction) in a _separate_ request. - Note that this tax mode cannot be set on the [My Carts](/../api/projects/me-carts) API. + 3. Update the `taxedPrice` on Cart using [Set Cart Total Tax](ctp:api:type:CartSetCartTotalTaxAction). + + - Tax-inclusive pricing should be avoided when using TaxMode `ExternalAmount` because `taxedItemPrice.totalNet` is automatically set by the platform to the Line Item's `totalPrice`. + + Disabled: | + - No taxes are added to the Cart. + - This tax mode cannot be set on the [My Carts](/../api/projects/me-carts) API. diff --git a/api-specs/api/types/cart/updates/CartAddLineItemAction.raml b/api-specs/api/types/cart/updates/CartAddLineItemAction.raml index 6a28ef57fd..3fcf117a45 100644 --- a/api-specs/api/types/cart/updates/CartAddLineItemAction.raml +++ b/api-specs/api/types/cart/updates/CartAddLineItemAction.raml @@ -8,7 +8,7 @@ description: | If the Cart contains a [LineItem](ctp:api:type:LineItem) for a Product Variant with the same [LineItemMode](ctp:api:type:LineItemMode), [Custom Fields](/../api/projects/custom-fields), supply and distribution channel, then only the quantity of the existing Line Item is increased. If [LineItem](ctp:api:type:LineItem) `shippingDetails` is set, it is merged. All addresses will be present afterwards and, for address keys present in both shipping details, the quantity will be summed up. A new Line Item is added when the `externalPrice` or `externalTotalPrice` is set in this update action. - The [LineItem](ctp:api:type:LineItem) price is set as described in [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + The [LineItem](ctp:api:type:LineItem) price is set as described in [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). If the Tax Rate is not set, a [MissingTaxRateForCountry](ctp:api:type:MissingTaxRateForCountryError) error is returned. @@ -57,7 +57,7 @@ properties: distributionChannel?: type: ChannelResourceIdentifier description: | - Used to [select](ctp:api:type:LineItemPriceSelection) a Product Price. + Used to [select](/../api/pricing-and-discounts-overview#line-item-price-selection) a Product Price. The Channel must have the `ProductDistribution` [ChannelRoleEnum](ctp:api:type:ChannelRoleEnum). If the Cart is bound to a [Store](ctp:api:type:Store) with `distributionChannels` set, the Channel must match one of the Store's distribution channels. supplyChannel?: @@ -76,7 +76,7 @@ properties: externalTaxRate?: type: ExternalTaxRateDraft description: | - External Tax Rate for the Line Item, if the Cart has the `External` [TaxMode](ctp:api:type:TaxMode) and `Single` [ShippingMode](ctp:api:type:ShippingMode). + Sets the external Tax Rate for the Line Item, if the Cart has the `External` [TaxMode](ctp:api:type:TaxMode) and `Single` [ShippingMode](ctp:api:type:ShippingMode). If the Cart has `Multiple` [ShippingMode](ctp:api:type:ShippingMode), the Tax Rate is accepted but ignored. perMethodExternalTaxRate?: type: MethodExternalTaxRateDraft[] description: | diff --git a/api-specs/api/types/cart/updates/CartChangeLineItemQuantityAction.raml b/api-specs/api/types/cart/updates/CartChangeLineItemQuantityAction.raml index a0e84b5589..bcda95f376 100644 --- a/api-specs/api/types/cart/updates/CartChangeLineItemQuantityAction.raml +++ b/api-specs/api/types/cart/updates/CartChangeLineItemQuantityAction.raml @@ -15,7 +15,7 @@ description: | use this update action in combination with the [Set LineItem ShippingDetails](ctp:api:type:CartSetLineItemShippingDetailsAction) update action in a single Cart update command. - The [LineItem](ctp:api:type:LineItem) price is set as described in [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + The [LineItem](ctp:api:type:LineItem) price is set as described in [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). properties: lineItemId?: type: string @@ -39,7 +39,7 @@ properties: Required when the Line Item uses `ExternalPrice` [LineItemPriceMode](ctp:api:type:LineItemPriceMode). Sets the [LineItem](ctp:api:type:LineItem) `price` to the given value when changing the quantity of a Line Item. - The LineItem price is updated as described in LineItem Price selection. + The LineItem price is updated as described in Line Item price selection. externalTotalPrice?: type: ExternalLineItemTotalPrice description: | diff --git a/api-specs/api/types/cart/updates/CartRemoveLineItemAction.raml b/api-specs/api/types/cart/updates/CartRemoveLineItemAction.raml index f52860afeb..253aabac9b 100644 --- a/api-specs/api/types/cart/updates/CartRemoveLineItemAction.raml +++ b/api-specs/api/types/cart/updates/CartRemoveLineItemAction.raml @@ -5,7 +5,7 @@ displayName: CartRemoveLineItemAction discriminatorValue: removeLineItem example: !include ../../../examples/Cart/CartRemoveLineItemAction.json description: | - The [LineItem](ctp:api:type:LineItem) price is updated as described in [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + The [LineItem](ctp:api:type:LineItem) price is updated as described in [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). properties: lineItemId?: type: string diff --git a/api-specs/api/types/cart/updates/CartSetCartTotalTaxAction.raml b/api-specs/api/types/cart/updates/CartSetCartTotalTaxAction.raml index c81f08a3f7..710146db0c 100644 --- a/api-specs/api/types/cart/updates/CartSetCartTotalTaxAction.raml +++ b/api-specs/api/types/cart/updates/CartSetCartTotalTaxAction.raml @@ -5,7 +5,8 @@ displayName: CartSetCartTotalTaxAction discriminatorValue: setCartTotalTax example: !include ../../../examples/Cart/CartSetCartTotalTaxAction.json description: | - This update action results in the `taxedPrice` field being added to the Cart when the `ExternalAmount` [TaxMode](ctp:api:type:TaxMode) is used. + Can be used if the Cart has the `ExternalAmount` [TaxMode](ctp:api:type:TaxMode). This update action adds the `taxedPrice` field to the Cart and must be used after any price-affecting change occurs within the Cart. + properties: externalTotalGross: type: Money diff --git a/api-specs/api/types/cart/updates/CartSetLineItemDistributionChannelAction.raml b/api-specs/api/types/cart/updates/CartSetLineItemDistributionChannelAction.raml index 8e8d8479f6..47c8805569 100644 --- a/api-specs/api/types/cart/updates/CartSetLineItemDistributionChannelAction.raml +++ b/api-specs/api/types/cart/updates/CartSetLineItemDistributionChannelAction.raml @@ -5,7 +5,7 @@ displayName: CartSetLineItemDistributionChannelAction discriminatorValue: setLineItemDistributionChannel example: !include ../../../examples/Cart/CartSetLineItemDistributionChannelAction.json description: | - Setting a distribution channel for a [LineItem](ctp:api:type:LineItem) can lead to an updated `price` as described in [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + Setting a distribution channel for a [LineItem](ctp:api:type:LineItem) can lead to an updated `price` as described in [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). properties: lineItemId?: type: string diff --git a/api-specs/api/types/cart/updates/CartSetLineItemTaxAmountAction.raml b/api-specs/api/types/cart/updates/CartSetLineItemTaxAmountAction.raml index d4b6515d84..69fb8e5075 100644 --- a/api-specs/api/types/cart/updates/CartSetLineItemTaxAmountAction.raml +++ b/api-specs/api/types/cart/updates/CartSetLineItemTaxAmountAction.raml @@ -5,7 +5,8 @@ displayName: CartSetLineItemTaxAmountAction discriminatorValue: setLineItemTaxAmount example: !include ../../../examples/Cart/CartSetLineItemTaxAmountAction.json description: | - Can be used if the Cart has the `ExternalAmount` [TaxMode](ctp:api:type:TaxMode). + Can be used if the Cart has the `ExternalAmount` [TaxMode](ctp:api:type:TaxMode). This update action sets the `taxedPrice` and `taxRate` on a Line Item and must be used after any price-affecting change occurs. + properties: lineItemId?: type: string diff --git a/api-specs/api/types/cart/updates/CartSetShippingAddressAction.raml b/api-specs/api/types/cart/updates/CartSetShippingAddressAction.raml index 70ec192e7c..976d005159 100644 --- a/api-specs/api/types/cart/updates/CartSetShippingAddressAction.raml +++ b/api-specs/api/types/cart/updates/CartSetShippingAddressAction.raml @@ -7,7 +7,7 @@ example: !include ../../../examples/Cart/CartSetShippingAddressAction.json description: | Setting the shipping address also sets the [TaxRate](ctp:api:type:TaxRate) of Line Items and calculates the [TaxedPrice](ctp:api:type:TaxedPrice). - If a matching price cannot be found for the given shipping address during [Line Item Price selection](ctp:api:type:LineItemPriceSelection), + If a matching price cannot be found for the given shipping address during [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection), a [MissingTaxRateForCountry](ctp:api:type:MissingTaxRateForCountryError) error is returned. If you want to allow shipping to states inside a country that are not explicitly covered by a TaxRate, diff --git a/api-specs/api/types/channel/ChannelRoleEnum.raml b/api-specs/api/types/channel/ChannelRoleEnum.raml index af27245401..e7976ea8a6 100644 --- a/api-specs/api/types/channel/ChannelRoleEnum.raml +++ b/api-specs/api/types/channel/ChannelRoleEnum.raml @@ -15,7 +15,7 @@ enum: Channel can be used to track inventory entries (for example, Channels with this role can be treated as warehouses). ProductDistribution: | Channel can be used to expose Products to a specific distribution Channel. - The Channel can be used by a Cart to [select](ctp:api:type:LineItemPriceSelection) a Product Price. + The Channel can be used by a Cart to [select](/../api/pricing-and-discounts-overview#line-item-price-selection) a Product Price. OrderExport: | Channel can be used to track order export activities. OrderImport: | diff --git a/api-specs/api/types/common/BaseResource.raml b/api-specs/api/types/common/BaseResource.raml index 8327310ad7..79b9352edc 100644 --- a/api-specs/api/types/common/BaseResource.raml +++ b/api-specs/api/types/common/BaseResource.raml @@ -2,6 +2,7 @@ (package): Common displayName: BaseResource type: object +(expandable): true (abstract): true (ignoreValidators): [PolymorphicSubtypesRule] properties: diff --git a/api-specs/api/types/common/CentPrecisionMoney.raml b/api-specs/api/types/common/CentPrecisionMoney.raml index 54f3924abe..e383ee6ca5 100644 --- a/api-specs/api/types/common/CentPrecisionMoney.raml +++ b/api-specs/api/types/common/CentPrecisionMoney.raml @@ -3,8 +3,7 @@ displayName: CentPrecisionMoney type: TypedMoney discriminatorValue: centPrecision -description: | - Object that stores cent amounts in a specific currency. +description: Object that stores money in cent amounts of a specific currency. example: !include ../../examples/Common/CentPrecisionMoney.json properties: fractionDigits: diff --git a/api-specs/api/types/common/ClientLogging.raml b/api-specs/api/types/common/ClientLogging.raml index f06d8d09d6..04d5dfebbd 100644 --- a/api-specs/api/types/common/ClientLogging.raml +++ b/api-specs/api/types/common/ClientLogging.raml @@ -2,6 +2,7 @@ (package): Common displayName: ClientLogging type: object +(expandable): true description: | These objects represent information about which [API Client](/../api/projects/api-clients) created or modified a resource. For more information, see [Client Logging](/../api/general-concepts#client-logging). (ignoreValidators): [PolymorphicSubtypesRule] diff --git a/api-specs/api/types/common/DiscountedPrice.raml b/api-specs/api/types/common/DiscountedPrice.raml index 2d6874712d..e26e699851 100644 --- a/api-specs/api/types/common/DiscountedPrice.raml +++ b/api-specs/api/types/common/DiscountedPrice.raml @@ -2,6 +2,7 @@ (package): Common displayName: DiscountedPrice type: object +(expandable): true properties: value: type: TypedMoney diff --git a/api-specs/api/types/common/HighPrecisionMoney.raml b/api-specs/api/types/common/HighPrecisionMoney.raml index d5cc902e17..1a16a77ee8 100644 --- a/api-specs/api/types/common/HighPrecisionMoney.raml +++ b/api-specs/api/types/common/HighPrecisionMoney.raml @@ -3,7 +3,7 @@ displayName: HighPrecisionMoney type: TypedMoney discriminatorValue: highPrecision -description: Money object that stores an amount of a fraction of the smallest indivisible unit of the specified currency. +description: Object that stores money as a fraction of the smallest indivisible unit of a specific currency. example: !include ../../examples/Common/HighPrecisionMoney.json properties: preciseAmount: diff --git a/api-specs/api/types/common/HighPrecisionMoneyDraft.raml b/api-specs/api/types/common/HighPrecisionMoneyDraft.raml index 9cd0053403..aff2bff3a4 100644 --- a/api-specs/api/types/common/HighPrecisionMoneyDraft.raml +++ b/api-specs/api/types/common/HighPrecisionMoneyDraft.raml @@ -3,7 +3,7 @@ displayName: HighPrecisionMoneyDraft type: TypedMoneyDraft discriminatorValue: highPrecision -description: Money draft object to store an amount of a fraction of the smallest indivisible unit of the specified currency. +description: Draft object to store money as a fraction of the smallest indivisible unit for a specific currency. example: !include ../../examples/Common/HighPrecisionMoneyDraft.json properties: fractionDigits: diff --git a/api-specs/api/types/common/Money.raml b/api-specs/api/types/common/Money.raml index 074a7fd6b7..94c6e8f5c4 100644 --- a/api-specs/api/types/common/Money.raml +++ b/api-specs/api/types/common/Money.raml @@ -2,8 +2,7 @@ (package): Common displayName: Money type: object -description: | - Draft type that stores amounts only in cent precision for the specified currency. +description: Draft object to store money in cent amounts for a specific currency. example: !include ../../examples/Common/Money.json (ignoreValidators): [PolymorphicSubtypesRule] properties: diff --git a/api-specs/api/types/common/Price.raml b/api-specs/api/types/common/Price.raml index c99f75f719..cf93b14e99 100644 --- a/api-specs/api/types/common/Price.raml +++ b/api-specs/api/types/common/Price.raml @@ -5,6 +5,7 @@ description: |- The representation for prices embedded in [LineItems](ctp:api:type:LineItem) and in [ProductVariants](ctp:api:type:ProductVariant) when the [ProductPriceMode](ctp:api:type:ProductPriceModeEnum) is `Embedded`. For the `Standalone` ProductPriceMode refer to [StandalonePrice](ctp:api:type:StandalonePrice). type: object +(expandable): true properties: id: type: string @@ -45,7 +46,7 @@ properties: type: DiscountedPrice description: | Is set if a [ProductDiscount](ctp:api:type:ProductDiscount) has been applied. - If set, the API uses the DiscountedPrice value for the [Line Item Price selection](ctp:api:type:LineItemPriceSelection). + If set, the API uses the DiscountedPrice value for the [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). When a [relative discount](ctp:api:type:ProductDiscountValueRelative) has been applied and the fraction part of the DiscountedPrice `value` is 0.5, the `value` is rounded in favor of the customer with [half-down rounding](https://en.wikipedia.org/wiki/Rounding#Round_half_down). tiers?: type: PriceTier[] diff --git a/api-specs/api/types/common/QueryPrice.raml b/api-specs/api/types/common/QueryPrice.raml index eac66a78f2..b009b3e076 100644 --- a/api-specs/api/types/common/QueryPrice.raml +++ b/api-specs/api/types/common/QueryPrice.raml @@ -2,6 +2,7 @@ (package): Common displayName: QueryPrice type: object +(expandable): true properties: id?: type: string diff --git a/api-specs/api/types/common/Reference.raml b/api-specs/api/types/common/Reference.raml index 2f680c592f..baacff3349 100644 --- a/api-specs/api/types/common/Reference.raml +++ b/api-specs/api/types/common/Reference.raml @@ -2,6 +2,7 @@ (package): Common displayName: Reference type: object +(expandable): true discriminator: typeId description: | A Reference represents a loose reference to another resource in the same Project identified by its `id`. The `typeId` indicates the type of the referenced resource. Each resource type has its corresponding Reference type, like [ChannelReference](ctp:api:type:ChannelReference). A referenced resource can be embedded through [Reference Expansion](/general-concepts#reference-expansion). The expanded reference is the value of an additional `obj` field then. diff --git a/api-specs/api/types/common/ReferenceTypeId.raml b/api-specs/api/types/common/ReferenceTypeId.raml index 22c9199a48..39b83a837f 100644 --- a/api-specs/api/types/common/ReferenceTypeId.raml +++ b/api-specs/api/types/common/ReferenceTypeId.raml @@ -93,7 +93,7 @@ enum: product-discount: | References a [ProductDiscount](ctp:api:type:ProductDiscount). product-price: | - References an [Embedded Price](/projects/products#embedded-price). + References an [Embedded Price](ctp:api:type:Price). product-selection: | References a [ProductSelection](ctp:api:type:ProductSelection). product-tailoring: | diff --git a/api-specs/api/types/common/ScopedPrice.raml b/api-specs/api/types/common/ScopedPrice.raml index bad452fdf8..5c1f635dcf 100644 --- a/api-specs/api/types/common/ScopedPrice.raml +++ b/api-specs/api/types/common/ScopedPrice.raml @@ -2,9 +2,10 @@ (package): Common displayName: ScopedPrice type: object +(expandable): true description: | Scoped Price is contained in a [ProductVariant](ctp:api:type:ProductVariant) which is returned in response to a - [Product Projection Search](ctp:api:type:ProductProjectionSearchFilterScopedPrice) request when [Scoped Price Search](ctp:api:type:ScopedPriceSearch) is used. + [Product Projection Search](ctp:api:type:ProductProjectionSearchFilterScopedPrice) request when [Scoped Price Search](/../api/pricing-and-discounts-overview#scoped-price-search) is used. properties: id: type: string diff --git a/api-specs/api/types/customer-search/CustomerIndexingProgress.raml b/api-specs/api/types/customer-search/CustomerIndexingProgress.raml new file mode 100644 index 0000000000..a529fdb0fc --- /dev/null +++ b/api-specs/api/types/customer-search/CustomerIndexingProgress.raml @@ -0,0 +1,18 @@ +#%RAML 1.0 DataType +(package): CustomerSearch +type: object +(beta): true +displayName: CustomerIndexingProgress +properties: + indexed: + type: number + format: int32 + description: The number of Customers successfully indexed. + failed: + type: number + format: int32 + description: The number of Customers that failed to be indexed. + estimatedTotal: + type: number + format: int32 + description: The estimated total number of Customers to be indexed. diff --git a/api-specs/api/types/customer-search/CustomerIndexingStatus.raml b/api-specs/api/types/customer-search/CustomerIndexingStatus.raml new file mode 100644 index 0000000000..7eed68ce17 --- /dev/null +++ b/api-specs/api/types/customer-search/CustomerIndexingStatus.raml @@ -0,0 +1,17 @@ +#%RAML 1.0 DataType +(package): Project +type: string +(beta): true +displayName: CustomerIndexingStatus +description: | + The current indexing status of Customer Search. +(enumDescriptions): + Scheduled: Indexing is scheduled. + Indexing: Indexing is in progress. + Ready: Indexing is complete and the [Search Customers](/../api/projects/customer-search#search-customers) endpoint returns up-to-date results. + Failed: Indexing failed due to an internal error. +enum: + - Scheduled + - Indexing + - Ready + - Failed diff --git a/api-specs/api/types/customer-search/CustomerPagedSearchResponse.raml b/api-specs/api/types/customer-search/CustomerPagedSearchResponse.raml new file mode 100644 index 0000000000..cf19ce3e93 --- /dev/null +++ b/api-specs/api/types/customer-search/CustomerPagedSearchResponse.raml @@ -0,0 +1,30 @@ +#%RAML 1.0 DataType +(package): CustomerSearch +displayName: CustomerPagedSearchResponse +example: !include ../../examples/CustomerSearch/CustomerPagedSearchResponse.json +type: object +(beta): true +properties: + total: + type: number + format: int64 + minimum: 0 + description: Total number of results matching the query. + limit: + type: number + format: int32 + minimum: 0 + maximum: 100 + description: | + Number of [results requested](/../api/general-concepts#limit). + offset: + type: number + format: int32 + minimum: 0 + maximum: 9900 + description: | + Number of [elements skipped](/../api/general-concepts#offset). + results: + type: CustomerSearchResult[] + description: | + Search result containing the Customers matching the search query. diff --git a/api-specs/api/types/customer-search/CustomerSearchIndexingStatusResponse.raml b/api-specs/api/types/customer-search/CustomerSearchIndexingStatusResponse.raml new file mode 100644 index 0000000000..6271f4f101 --- /dev/null +++ b/api-specs/api/types/customer-search/CustomerSearchIndexingStatusResponse.raml @@ -0,0 +1,24 @@ +#%RAML 1.0 DataType +(package): CustomerSearch +displayName: CustomerSearchIndexingStatusResponse +type: object +(beta): true +example: !include ../../examples/CustomerSearch/CustomerSearchIndexingStatusResponse.json +properties: + status: + type: CustomerIndexingStatus + description: Current status of indexing the Customer Search. + states?: + type: CustomerIndexingProgress + description: Progress of indexing. Only available when indexing is in progress. + startedAt?: + type: datetime + description: Date and time (UTC) when the last indexing started. + lastModifiedAt?: + type: datetime + description: Time when the status was last modified. + retryCount?: + type: number + format: int32 + description: | + Indicates how many times the system tried to start indexing after failed attempts. The counter is set to null after an indexing finished successfully. diff --git a/api-specs/api/types/customer-search/CustomerSearchRequest.raml b/api-specs/api/types/customer-search/CustomerSearchRequest.raml new file mode 100644 index 0000000000..7db27488c3 --- /dev/null +++ b/api-specs/api/types/customer-search/CustomerSearchRequest.raml @@ -0,0 +1,25 @@ +#%RAML 1.0 DataType +(package): CustomerSearch +type: object +(beta): true +example: !include ../../examples/CustomerSearch/CustomerSearchRequest.json +displayName: CustomerSearchRequest +properties: + query?: + type: SearchQuery + description: The Customer search query. + sort?: + type: SearchSorting[] + description: Controls how results to your query are sorted. If not provided, the results are sorted by relevance in descending order. + limit?: + type: number + format: int32 + default: 20 + maximum: 100 + description: The maximum number of search results to be returned. + offset?: + type: number + format: int32 + default: 0 + maximum: 9900 + description: The number of search results to be skipped in the response for pagination. diff --git a/api-specs/api/types/customer-search/CustomerSearchResult.raml b/api-specs/api/types/customer-search/CustomerSearchResult.raml new file mode 100644 index 0000000000..e7577de131 --- /dev/null +++ b/api-specs/api/types/customer-search/CustomerSearchResult.raml @@ -0,0 +1,15 @@ +#%RAML 1.0 DataType +(package): CustomerSearch +displayName: CustomerSearchResult +type: object +(beta): true +properties: + id: + (identifier): true + type: string + description: | + `id` of the [Customer](ctp:api:type:Customer) matching the search query. + relevance: + type: number + description: | + How closely this customer matches the search query. diff --git a/api-specs/api/types/customer/updates/CustomerSetDefaultShippingAddressAction.raml b/api-specs/api/types/customer/updates/CustomerSetDefaultShippingAddressAction.raml index 769a00573f..896b6c1234 100644 --- a/api-specs/api/types/customer/updates/CustomerSetDefaultShippingAddressAction.raml +++ b/api-specs/api/types/customer/updates/CustomerSetDefaultShippingAddressAction.raml @@ -8,7 +8,6 @@ description: | Sets the default shipping address from `addresses`. The action adds the `id` of the specified address to the `shippingAddressIds` if not contained already. Either `addressId` or `addressKey` is required. - If the Tax Category of the Cart [ShippingInfo](ctp:api:type:ShippingInfo) is missing the TaxRate matching country and state given in the `shippingAddress` of that Cart, a [MissingTaxRateForCountry](ctp:api:type:MissingTaxRateForCountryError) error is returned. properties: addressId?: type: string diff --git a/api-specs/api/types/discount-code/DiscountCodeDraft.raml b/api-specs/api/types/discount-code/DiscountCodeDraft.raml index a807cd0041..ee77202a95 100644 --- a/api-specs/api/types/discount-code/DiscountCodeDraft.raml +++ b/api-specs/api/types/discount-code/DiscountCodeDraft.raml @@ -43,11 +43,15 @@ properties: format: int64 description: | Number of times the DiscountCode can be applied. + + If not set, the DiscountCode can be applied any number of times. maxApplicationsPerCustomer?: type: number format: int64 description: | Number of times the DiscountCode can be applied per Customer. + + If not set, the DiscountCode can be applied any number of times. custom?: type: CustomFieldsDraft description: | diff --git a/api-specs/api/types/discount-code/updates/DiscountCodeSetMaxApplicationsAction.raml b/api-specs/api/types/discount-code/updates/DiscountCodeSetMaxApplicationsAction.raml index 150b1b4d13..79fff44caf 100644 --- a/api-specs/api/types/discount-code/updates/DiscountCodeSetMaxApplicationsAction.raml +++ b/api-specs/api/types/discount-code/updates/DiscountCodeSetMaxApplicationsAction.raml @@ -9,4 +9,6 @@ properties: type: number format: int64 description: | - Value to set. If empty, any existing value will be removed. + Value to set. + + If empty, any existing value will be removed and the DiscountCode can be applied any number of times. diff --git a/api-specs/api/types/discount-code/updates/DiscountCodeSetMaxApplicationsPerCustomerAction.raml b/api-specs/api/types/discount-code/updates/DiscountCodeSetMaxApplicationsPerCustomerAction.raml index 182bffa362..9f73fe42bb 100644 --- a/api-specs/api/types/discount-code/updates/DiscountCodeSetMaxApplicationsPerCustomerAction.raml +++ b/api-specs/api/types/discount-code/updates/DiscountCodeSetMaxApplicationsPerCustomerAction.raml @@ -9,4 +9,6 @@ properties: type: number format: int64 description: | - Value to set. If empty, any existing value will be removed. + Value to set. + + If empty, any existing value will be removed and the DiscountCode can be applied any number of times. diff --git a/api-specs/api/types/error/GeneralError.raml b/api-specs/api/types/error/GeneralError.raml index aea0ccfa65..ceec8332ce 100644 --- a/api-specs/api/types/error/GeneralError.raml +++ b/api-specs/api/types/error/GeneralError.raml @@ -6,7 +6,7 @@ discriminatorValue: General description: | Returned when a server-side problem occurs before or after data persistence. In some cases, the requested action may successfully complete after the error is returned. Therefore, it is recommended to verify the status of the requested resource after receiving a 500 error. - If you encounter this error, report it using the [Support Portal](https://support.commercetools.com). + If you encounter this error, report it to the [Composable Commerce support team](https://support.commercetools.com). properties: code: type: string diff --git a/api-specs/api/types/error/MissingTaxRateForCountryError.raml b/api-specs/api/types/error/MissingTaxRateForCountryError.raml index 046b85a464..6182250c2d 100644 --- a/api-specs/api/types/error/MissingTaxRateForCountryError.raml +++ b/api-specs/api/types/error/MissingTaxRateForCountryError.raml @@ -8,7 +8,7 @@ description: | The error is returned as a failed response to: - - [Set Default Shipping Address](ctp:api:type:CustomerSetDefaultShippingAddressAction), [Add LineItem](ctp:api:type:CartAddLineItemAction), [Add CustomLineItem](ctp:api:type:CartAddCustomLineItemAction), [Set Shipping Address](ctp:api:type:CartSetShippingAddressAction), [Add LineItem](ctp:api:type:MyCartAddLineItemAction), [Add LineItem](ctp:api:type:StagedOrderAddLineItemAction), and [Add CustomLineItem](ctp:api:type:StagedOrderAddCustomLineItemAction) update actions + - [Add LineItem](ctp:api:type:CartAddLineItemAction), [Add CustomLineItem](ctp:api:type:CartAddCustomLineItemAction), [Set Shipping Address](ctp:api:type:CartSetShippingAddressAction), [Add LineItem](ctp:api:type:MyCartAddLineItemAction), [Add LineItem](ctp:api:type:StagedOrderAddLineItemAction), and [Add CustomLineItem](ctp:api:type:StagedOrderAddCustomLineItemAction) update actions - [Create Order from Cart](ctp:api:endpoint:/{projectKey}/orders:POST) and [Create Order in Store from Cart](ctp:api:endpoint:/{projectKey}/in-store/orders:POST) requests. properties: code: diff --git a/api-specs/api/types/error/PendingOperationError.raml b/api-specs/api/types/error/PendingOperationError.raml index fa18db1a78..6a77bd0ecd 100644 --- a/api-specs/api/types/error/PendingOperationError.raml +++ b/api-specs/api/types/error/PendingOperationError.raml @@ -7,7 +7,7 @@ description: | Returned when a previous conflicting operation is still pending and needs to finish before the request can succeed. The client application should retry the request with exponential backoff up to a point where further delay is unacceptable. - If the error persists, report it using the [Support Portal](https://support.commercetools.com). + If the error persists, report it to the [Composable Commerce support team](https://support.commercetools.com). properties: code: type: string diff --git a/api-specs/api/types/error/graphql/GraphQLGeneralError.raml b/api-specs/api/types/error/graphql/GraphQLGeneralError.raml index d4b788638d..f42c03a3fc 100644 --- a/api-specs/api/types/error/graphql/GraphQLGeneralError.raml +++ b/api-specs/api/types/error/graphql/GraphQLGeneralError.raml @@ -6,7 +6,7 @@ discriminatorValue: General description: | Returned when a server-side problem occurs before or after data persistence. In some cases, the requested action may successfully complete after the error is returned. Therefore, it is recommended to verify the status of the requested resource after receiving a 500 error. - If you encounter this error, report it using the [Support Portal](https://support.commercetools.com). + If you encounter this error, report it to the [Composable Commerce support team](https://support.commercetools.com). properties: code: type: string diff --git a/api-specs/api/types/error/graphql/GraphQLMissingTaxRateForCountryError.raml b/api-specs/api/types/error/graphql/GraphQLMissingTaxRateForCountryError.raml index 41959c3420..28435a5141 100644 --- a/api-specs/api/types/error/graphql/GraphQLMissingTaxRateForCountryError.raml +++ b/api-specs/api/types/error/graphql/GraphQLMissingTaxRateForCountryError.raml @@ -8,7 +8,7 @@ description: | The error is returned as a failed response to: - - [Set Default Shipping Address](ctp:api:type:CustomerSetDefaultShippingAddressAction), [Add LineItem](ctp:api:type:CartAddLineItemAction), [Add CustomLineItem](ctp:api:type:CartAddCustomLineItemAction), [Set Shipping Address](ctp:api:type:CartSetShippingAddressAction), [Add LineItem](ctp:api:type:MyCartAddLineItemAction), [Add LineItem](ctp:api:type:StagedOrderAddLineItemAction), and [Add CustomLineItem](ctp:api:type:StagedOrderAddCustomLineItemAction) update actions + - [Add LineItem](ctp:api:type:CartAddLineItemAction), [Add CustomLineItem](ctp:api:type:CartAddCustomLineItemAction), [Set Shipping Address](ctp:api:type:CartSetShippingAddressAction), [Add LineItem](ctp:api:type:MyCartAddLineItemAction), [Add LineItem](ctp:api:type:StagedOrderAddLineItemAction), and [Add CustomLineItem](ctp:api:type:StagedOrderAddCustomLineItemAction) update actions - [Create Order from Cart](ctp:api:endpoint:/{projectKey}/orders:POST) and [Create Order in Store from Cart](ctp:api:endpoint:/{projectKey}/in-store/orders:POST) requests. properties: code: diff --git a/api-specs/api/types/error/graphql/GraphQLPendingOperationError.raml b/api-specs/api/types/error/graphql/GraphQLPendingOperationError.raml index 75fb33e4c1..539fb14a33 100644 --- a/api-specs/api/types/error/graphql/GraphQLPendingOperationError.raml +++ b/api-specs/api/types/error/graphql/GraphQLPendingOperationError.raml @@ -7,7 +7,7 @@ description: | Returned when a previous conflicting operation is still pending and needs to finish before the request can succeed. The client application should retry the request with exponential backoff up to a point where further delay is unacceptable. - If the error persists, report it using the [Support Portal](https://support.commercetools.com). + If the error persists, report it to the [Composable Commerce support team](https://support.commercetools.com). properties: code: type: string diff --git a/api-specs/api/types/extension/ExtensionDraft.raml b/api-specs/api/types/extension/ExtensionDraft.raml index ff0c05a81c..661fd32400 100644 --- a/api-specs/api/types/extension/ExtensionDraft.raml +++ b/api-specs/api/types/extension/ExtensionDraft.raml @@ -26,5 +26,5 @@ properties: The maximum value is 10000 ms (10 seconds) for `payment` Extensions and 2000 ms (2 seconds) for all other Extensions. This limit can be increased per Project after we review the performance impact. - Please contact our support via the [Support Portal](https://support.commercetools.com) and provide the Region, Project key, and use case. + Please contact the [Composable Commerce support team](https://support.commercetools.com) and provide the Region, Project key, and use case. default: 2000 diff --git a/api-specs/api/types/extension/updates/ExtensionSetTimeoutInMsAction.raml b/api-specs/api/types/extension/updates/ExtensionSetTimeoutInMsAction.raml index 835bee69db..8473f68529 100644 --- a/api-specs/api/types/extension/updates/ExtensionSetTimeoutInMsAction.raml +++ b/api-specs/api/types/extension/updates/ExtensionSetTimeoutInMsAction.raml @@ -12,5 +12,5 @@ properties: The maximum value is 10000 ms (10 seconds) for `payment` Extensions and 2000 ms (2 seconds) for all other Extensions. This limit can be increased per Project after we review the performance impact. - Please contact our support via the [Support Portal](https://support.commercetools.com/) and provide the Region, Project key, and use case. + Please contact the [Composable Commerce support team](https://support.commercetools.com/) and provide the Region, Project key, and use case. default: 2000 diff --git a/api-specs/api/types/me/MyCartDraft.raml b/api-specs/api/types/me/MyCartDraft.raml index b659dbbf6b..5f54082869 100644 --- a/api-specs/api/types/me/MyCartDraft.raml +++ b/api-specs/api/types/me/MyCartDraft.raml @@ -70,7 +70,7 @@ properties: country?: type: CountryCode description: | - Used for [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + Used for [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). If used for [Create Cart in Store](ctp:api:endpoint:/{projectKey}/in-store/me/carts:POST), the provided country must be one of the [Store's](ctp:api:type:Store) `countries`. locale?: type: Locale diff --git a/api-specs/api/types/me/MyLineItemDraft.raml b/api-specs/api/types/me/MyLineItemDraft.raml index c4297a003e..76813104fa 100644 --- a/api-specs/api/types/me/MyLineItemDraft.raml +++ b/api-specs/api/types/me/MyLineItemDraft.raml @@ -47,7 +47,7 @@ properties: distributionChannel?: type: ChannelResourceIdentifier description: | - Used to [select](ctp:api:type:LineItemPriceSelection) a Product Price. + Used to [select](/../api/pricing-and-discounts-overview#line-item-price-selection) a Product Price. The Channel must have the `ProductDistribution` [ChannelRoleEnum](ctp:api:type:ChannelRoleEnum). If the Cart is bound to a [Store](ctp:api:type:Store) with `distributionChannels` set, diff --git a/api-specs/api/types/me/MyPayment.raml b/api-specs/api/types/me/MyPayment.raml index cbb8878d1a..e8eff949ad 100644 --- a/api-specs/api/types/me/MyPayment.raml +++ b/api-specs/api/types/me/MyPayment.raml @@ -2,6 +2,7 @@ (package): Me type: object displayName: MyPayment +(expandable): true (updateType): MyPaymentUpdate (actionType): MyPaymentUpdateAction properties: diff --git a/api-specs/api/types/me/updates/MyCartAddLineItemAction.raml b/api-specs/api/types/me/updates/MyCartAddLineItemAction.raml index 9f0a4fbc87..629950030d 100644 --- a/api-specs/api/types/me/updates/MyCartAddLineItemAction.raml +++ b/api-specs/api/types/me/updates/MyCartAddLineItemAction.raml @@ -3,11 +3,11 @@ type: MyCartUpdateAction displayName: MyCartAddLineItemAction discriminatorValue: addLineItem -example: !include ../../../examples/Cart/CartAddLineItemAction.json +example: !include ../../../examples/Cart/MyCartAddLineItemAction.json description: | If the Cart contains a [LineItem](ctp:api:type:LineItem) for a Product Variant with the same [LineItemMode](ctp:api:type:LineItemMode), [Custom Fields](/../api/projects/custom-fields), supply and distribution channel, then only the quantity of the existing Line Item is increased. If [LineItem](ctp:api:type:LineItem) `shippingDetails` is set, it is merged. All addresses will be present afterwards and, for address keys present in both shipping details, the quantity will be summed up. - The [LineItem](ctp:api:type:LineItem) price is set as described in [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + The [LineItem](ctp:api:type:LineItem) price is set as described in [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). If the Tax Rate is not set, a [MissingTaxRateForCountry](ctp:api:type:MissingTaxRateForCountryError) error is returned. @@ -57,7 +57,7 @@ properties: distributionChannel?: type: ChannelResourceIdentifier description: | - Used to [select](ctp:api:type:LineItemPriceSelection) a Product Price. + Used to [select](/../api/pricing-and-discounts-overview#line-item-price-selection) a Product Price. The Channel must have the `ProductDistribution` [ChannelRoleEnum](ctp:api:type:ChannelRoleEnum). If the Cart is bound to a [Store](ctp:api:type:Store) with `distributionChannels` set, the Channel must match one of the Store's distribution channels. supplyChannel?: diff --git a/api-specs/api/types/me/updates/MyCartRemoveLineItemAction.raml b/api-specs/api/types/me/updates/MyCartRemoveLineItemAction.raml index afceaa1afb..65e6055ae4 100644 --- a/api-specs/api/types/me/updates/MyCartRemoveLineItemAction.raml +++ b/api-specs/api/types/me/updates/MyCartRemoveLineItemAction.raml @@ -5,7 +5,7 @@ displayName: MyCartRemoveLineItemAction discriminatorValue: removeLineItem example: !include ../../../examples/Cart/CartRemoveLineItemAction.json description: | - The [LineItem](ctp:api:type:LineItem) price is updated as described in [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + The [LineItem](ctp:api:type:LineItem) price is updated as described in [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). properties: lineItemId?: type: string diff --git a/api-specs/api/types/me/updates/MyCartSetLineItemDistributionChannelAction.raml b/api-specs/api/types/me/updates/MyCartSetLineItemDistributionChannelAction.raml index 086b953eb9..f02657afac 100644 --- a/api-specs/api/types/me/updates/MyCartSetLineItemDistributionChannelAction.raml +++ b/api-specs/api/types/me/updates/MyCartSetLineItemDistributionChannelAction.raml @@ -5,7 +5,7 @@ displayName: MyCartSetLineItemDistributionChannelAction discriminatorValue: setLineItemDistributionChannel example: !include ../../../examples/Cart/CartSetLineItemDistributionChannelAction.json description: | - Setting a distribution channel for a [LineItem](ctp:api:type:LineItem) can lead to an updated `price` as described in [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + Setting a distribution channel for a [LineItem](ctp:api:type:LineItem) can lead to an updated `price` as described in [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). properties: lineItemId?: type: string diff --git a/api-specs/api/types/me/updates/MyCartSetShippingAddressAction.raml b/api-specs/api/types/me/updates/MyCartSetShippingAddressAction.raml index cb1f2d38fb..d028f77cea 100644 --- a/api-specs/api/types/me/updates/MyCartSetShippingAddressAction.raml +++ b/api-specs/api/types/me/updates/MyCartSetShippingAddressAction.raml @@ -7,7 +7,7 @@ example: !include ../../../examples/Cart/CartSetShippingAddressAction.json description: | Setting the shipping address also sets the [TaxRate](ctp:api:type:TaxRate) of Line Items and calculates the [TaxedPrice](ctp:api:type:TaxedPrice). - If a matching price cannot be found for the given shipping address during [Line Item Price selection](ctp:api:type:LineItemPriceSelection), + If a matching price cannot be found for the given shipping address during [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection), a [MissingTaxRateForCountry](ctp:api:type:MissingTaxRateForCountryError) error is returned. If you want to allow shipping to states inside a country that are not explicitly covered by a TaxRate, diff --git a/api-specs/api/types/message/BusinessUnitApprovalRuleModeChangedMessage.raml b/api-specs/api/types/message/BusinessUnitApprovalRuleModeChangedMessage.raml new file mode 100644 index 0000000000..0ecc73f76b --- /dev/null +++ b/api-specs/api/types/message/BusinessUnitApprovalRuleModeChangedMessage.raml @@ -0,0 +1,16 @@ +#%RAML 1.0 DataType +(package): Message +type: Message +displayName: BusinessUnitApprovalRuleModeChangedMessage +discriminatorValue: BusinessUnitApprovalRuleModeChanged +description: | + Generated after a successful [Change Approval Rule Mode](ctp:api:type:BusinessUnitChangeApprovalRuleModeAction) update action. +properties: + approvalRuleMode: + type: BusinessUnitApprovalRuleMode + description: | + [BusinessUnitApprovalRuleMode](ctp:api:type:BusinessUnitApprovalRuleMode) of the Business Unit after the [Change Approval Rule Mode](ctp:api:type:BusinessUnitChangeApprovalRuleModeAction) update action. + oldApprovalRuleMode?: + type: BusinessUnitApprovalRuleMode + description: | + [BusinessUnitApprovalRuleMode](ctp:api:type:BusinessUnitApprovalRuleMode) of the Business Unit before the [Change Approval Rule Mode](ctp:api:type:BusinessUnitChangeApprovalRuleModeAction) update action. diff --git a/api-specs/api/types/message/OrderLineItemDiscountSetMessage.raml b/api-specs/api/types/message/OrderLineItemDiscountSetMessage.raml index 6e0bb9e1ea..1e69914d11 100644 --- a/api-specs/api/types/message/OrderLineItemDiscountSetMessage.raml +++ b/api-specs/api/types/message/OrderLineItemDiscountSetMessage.raml @@ -19,7 +19,7 @@ properties: description: | Array of [DiscountedLineItemPriceForQuantity](ctp:api:type:DiscountedLineItemPriceForQuantity) after the Discount recalculation. totalPrice: - type: Money + type: CentPrecisionMoney description: | Total Price of the [Line Item](ctp:api:type:LineItem) after the Discount recalculation. taxedPrice?: diff --git a/api-specs/api/types/message/ProductPriceAddedMessage.raml b/api-specs/api/types/message/ProductPriceAddedMessage.raml index f496b55d65..f8bca5b020 100644 --- a/api-specs/api/types/message/ProductPriceAddedMessage.raml +++ b/api-specs/api/types/message/ProductPriceAddedMessage.raml @@ -14,7 +14,7 @@ properties: price: type: Price description: | - The [Embedded Price](/projects/products#embedded-price) that was added to the [ProductVariant](ctp:api:type:ProductVariant). + The Embedded Price that was added to the [ProductVariant](ctp:api:type:ProductVariant). staged: type: boolean description: | diff --git a/api-specs/api/types/message/ProductPriceChangedMessage.raml b/api-specs/api/types/message/ProductPriceChangedMessage.raml index 49d65aae85..ba79df3411 100644 --- a/api-specs/api/types/message/ProductPriceChangedMessage.raml +++ b/api-specs/api/types/message/ProductPriceChangedMessage.raml @@ -14,11 +14,11 @@ properties: oldPrice: type: Price description: | - The current [Embedded Price](/projects/products#embedded-price) before the [Change Embedded Price](ctp:api:type:ProductChangePriceAction) update action. + The current Embedded Price before the [Change Embedded Price](ctp:api:type:ProductChangePriceAction) update action. newPrice: type: Price description: | - The [Embedded Price](/projects/products#embedded-price) after the [Change Embedded Price](ctp:api:type:ProductChangePriceAction) update action. + The Embedded Price after the [Change Embedded Price](ctp:api:type:ProductChangePriceAction) update action. staged: type: boolean description: | @@ -26,4 +26,4 @@ properties: oldStagedPrice?: type: Price description: | - The staged [Embedded Price](/projects/products#embedded-price) before the [Change Embedded Price](ctp:api:type:ProductChangePriceAction) update action. + The staged Embedded Price before the [Change Embedded Price](ctp:api:type:ProductChangePriceAction) update action. diff --git a/api-specs/api/types/message/ProductPriceCustomFieldAddedMessage.raml b/api-specs/api/types/message/ProductPriceCustomFieldAddedMessage.raml new file mode 100644 index 0000000000..5c276eaa0f --- /dev/null +++ b/api-specs/api/types/message/ProductPriceCustomFieldAddedMessage.raml @@ -0,0 +1,29 @@ +#%RAML 1.0 DataType +(package): Message +type: Message +displayName: ProductPriceCustomFieldAddedMessage +discriminatorValue: ProductPriceCustomFieldAdded +description: | + Generated after adding a Custom Field to a Price using the [Set Price CustomField](ctp:api:type:ProductSetProductPriceCustomFieldAction) update action. +properties: + priceId: + type: string + description: | + Unique identifier of the [Price](ctp:api:type:Price) to which the Custom Field was added. + variantId: + type: number + format: int64 + description: | + Unique identifier of the [ProductVariant](ctp:api:type:ProductVariant) to which the Price belongs. + staged: + type: boolean + description: | + Whether the update was only applied to the staged [Product Projection](ctp:api:type:ProductProjection). + name: + type: string + description: | + Name of the Custom Field that was added. + value: + type: CustomFieldValue + description: | + The added [CustomFieldValue](ctp:api:type:CustomFieldValue) based on the [FieldType](ctp:api:type:FieldType). diff --git a/api-specs/api/types/message/ProductPriceCustomFieldChangedMessage.raml b/api-specs/api/types/message/ProductPriceCustomFieldChangedMessage.raml new file mode 100644 index 0000000000..6eaa32f72f --- /dev/null +++ b/api-specs/api/types/message/ProductPriceCustomFieldChangedMessage.raml @@ -0,0 +1,29 @@ +#%RAML 1.0 DataType +(package): Message +type: Message +displayName: ProductPriceCustomFieldChangedMessage +discriminatorValue: ProductPriceCustomFieldChanged +description: | + Generated after changing an existing Custom Field on a Price using the [Set Price CustomField](ctp:api:type:ProductSetProductPriceCustomFieldAction) update action. +properties: + priceId: + type: string + description: | + Unique identifier of the [Price](ctp:api:type:Price) of which the Custom Field was changed. + variantId: + type: number + format: int64 + description: | + Unique identifier of the [ProductVariant](ctp:api:type:ProductVariant) to which the Price belongs. + staged: + type: boolean + description: | + Whether the update was only applied to the staged [Product Projection](ctp:api:type:ProductProjection). + name: + type: string + description: | + Name of the Custom Field that was changed. + value: + type: CustomFieldValue + description: | + [CustomFieldValue](ctp:api:type:CustomFieldValue) based on the [FieldType](ctp:api:type:FieldType) after the [Set Price CustomField](ctp:api:type:ProductSetProductPriceCustomFieldAction) update action. diff --git a/api-specs/api/types/message/ProductPriceCustomFieldRemovedMessage.raml b/api-specs/api/types/message/ProductPriceCustomFieldRemovedMessage.raml new file mode 100644 index 0000000000..e13fddf0cd --- /dev/null +++ b/api-specs/api/types/message/ProductPriceCustomFieldRemovedMessage.raml @@ -0,0 +1,25 @@ +#%RAML 1.0 DataType +(package): Message +type: Message +displayName: ProductPriceCustomFieldRemovedMessage +discriminatorValue: ProductPriceCustomFieldRemoved +description: | + Generated after removing a Custom Field from a Price using the [Set Price CustomField](ctp:api:type:ProductSetProductPriceCustomFieldAction) update action. +properties: + priceId: + type: string + description: | + Unique identifier of the [Price](ctp:api:type:Price) from which the Custom Field was removed. + variantId: + type: number + format: int64 + description: | + Unique identifier of the [ProductVariant](ctp:api:type:ProductVariant) to which the Price belongs. + staged: + type: boolean + description: | + Whether the update was only applied to the staged [Product Projection](ctp:api:type:ProductProjection). + name: + type: string + description: | + Name of the Custom Field that was removed. diff --git a/api-specs/api/types/message/ProductPriceCustomFieldsRemovedMessage.raml b/api-specs/api/types/message/ProductPriceCustomFieldsRemovedMessage.raml new file mode 100644 index 0000000000..010e9414df --- /dev/null +++ b/api-specs/api/types/message/ProductPriceCustomFieldsRemovedMessage.raml @@ -0,0 +1,21 @@ +#%RAML 1.0 DataType +(package): Message +type: Message +displayName: ProductPriceCustomFieldsRemovedMessage +discriminatorValue: ProductPriceCustomFieldsRemoved +description: | + Generated after removing a Custom Type from a Price using the [Set Price Custom Type](ctp:api:type:ProductSetProductPriceCustomTypeAction) update action. +properties: + priceId: + type: string + description: | + Unique identifier of the [Price](ctp:api:type:Price) from which the Custom Type was removed. + variantId: + type: number + format: int64 + description: | + Unique identifier of the [ProductVariant](ctp:api:type:ProductVariant) to which the Price belongs. + staged: + type: boolean + description: | + Whether the update was only applied to the staged [Product Projection](ctp:api:type:ProductProjection). diff --git a/api-specs/api/types/message/ProductPriceCustomFieldsSetMessage.raml b/api-specs/api/types/message/ProductPriceCustomFieldsSetMessage.raml new file mode 100644 index 0000000000..edb0f1e6db --- /dev/null +++ b/api-specs/api/types/message/ProductPriceCustomFieldsSetMessage.raml @@ -0,0 +1,29 @@ +#%RAML 1.0 DataType +(package): Message +type: Message +displayName: ProductPriceCustomFieldsSetMessage +discriminatorValue: ProductPriceCustomFieldsSet +description: | + Generated after a successful [Set Price Custom Type](ctp:api:type:ProductSetProductPriceCustomTypeAction) update action. +properties: + priceId: + type: string + description: | + Unique identifier of the [Price](ctp:api:type:Price) on which the Custom Type was set. + variantId: + type: number + format: int64 + description: | + Unique identifier of the [ProductVariant](ctp:api:type:ProductVariant) to which the Price belongs. + staged: + type: boolean + description: | + Whether the update was only applied to the staged [Product Projection](ctp:api:type:ProductProjection). + customField: + type: CustomFields + description: | + Custom Fields that were set. + oldTypeId?: + type: string + description: | + `id` of the previous [Custom Type](ctp:api:type:Type). Absent if there was no previous Custom Type present. diff --git a/api-specs/api/types/message/ProductPriceDiscountsSetUpdatedPrice.raml b/api-specs/api/types/message/ProductPriceDiscountsSetUpdatedPrice.raml index dc66c7a695..5fd8d1a737 100644 --- a/api-specs/api/types/message/ProductPriceDiscountsSetUpdatedPrice.raml +++ b/api-specs/api/types/message/ProductPriceDiscountsSetUpdatedPrice.raml @@ -3,7 +3,7 @@ type: object displayName: ProductPriceDiscountsSetUpdatedPrice description: | - Details about a [Embedded Price](/projects/products#embedded-price) that was updated due to a Discount. Specific to [Product Price Discounts Set](ctp:api:type:ProductPriceDiscountsSetMessage) Message. + Details about an [Embedded Price](ctp:api:type:Price) that was updated due to a Discount. Specific to [Product Price Discounts Set](ctp:api:type:ProductPriceDiscountsSetMessage) Message. properties: variantId: type: integer diff --git a/api-specs/api/types/message/ProductPriceRemovedMessage.raml b/api-specs/api/types/message/ProductPriceRemovedMessage.raml index 61a30ef54a..fa0a3e9651 100644 --- a/api-specs/api/types/message/ProductPriceRemovedMessage.raml +++ b/api-specs/api/types/message/ProductPriceRemovedMessage.raml @@ -14,7 +14,7 @@ properties: price: type: Price description: | - The [Embedded Price](/projects/products#embedded-price) that was removed from the [ProductVariant](ctp:api:type:ProductVariant). + The Embedded Price that was removed from the [ProductVariant](ctp:api:type:ProductVariant). staged: type: boolean description: | diff --git a/api-specs/api/types/message/ProductTailoringCreatedMessage.raml b/api-specs/api/types/message/ProductTailoringCreatedMessage.raml index 9af229ac74..b4999bbb76 100644 --- a/api-specs/api/types/message/ProductTailoringCreatedMessage.raml +++ b/api-specs/api/types/message/ProductTailoringCreatedMessage.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Message type: Message -(beta): true displayName: ProductTailoringCreatedMessage discriminatorValue: ProductTailoringCreated description: | @@ -36,6 +35,22 @@ properties: type: LocalizedString description: | The slug of the [Product Tailoring](ctp:api:type:ProductTailoring) at the time of creation. + metaTitle?: + type: LocalizedString + description: | + The metaTitle of the [Product Tailoring](ctp:api:type:ProductTailoring) at the time of creation. + metaDescription?: + type: LocalizedString + description: | + The metaDescription of the [Product Tailoring](ctp:api:type:ProductTailoring) at the time of creation. + metaKeywords?: + type: LocalizedString + description: | + The metaKeywords of the [Product Tailoring](ctp:api:type:ProductTailoring) at the time of creation. + variants?: + type: ProductVariantTailoring[] + description: | + The variants of the [Product Tailoring](ctp:api:type:ProductTailoring) at the time of creation. published: type: boolean description: | diff --git a/api-specs/api/types/message/ProductTailoringDeletedMessage.raml b/api-specs/api/types/message/ProductTailoringDeletedMessage.raml index 0e8fe07d7a..3b5d2ba23a 100644 --- a/api-specs/api/types/message/ProductTailoringDeletedMessage.raml +++ b/api-specs/api/types/message/ProductTailoringDeletedMessage.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Message type: Message -(beta): true displayName: ProductTailoringDeletedMessage discriminatorValue: ProductTailoringDeleted description: | diff --git a/api-specs/api/types/message/ProductTailoringDescriptionSetMessage.raml b/api-specs/api/types/message/ProductTailoringDescriptionSetMessage.raml index 8275706e4c..bf1e37f622 100644 --- a/api-specs/api/types/message/ProductTailoringDescriptionSetMessage.raml +++ b/api-specs/api/types/message/ProductTailoringDescriptionSetMessage.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Message type: Message -(beta): true displayName: ProductTailoringDescriptionSetMessage discriminatorValue: ProductTailoringDescriptionSet description: | diff --git a/api-specs/api/types/message/ProductTailoringImageAddedMessage.raml b/api-specs/api/types/message/ProductTailoringImageAddedMessage.raml new file mode 100644 index 0000000000..2444f6b996 --- /dev/null +++ b/api-specs/api/types/message/ProductTailoringImageAddedMessage.raml @@ -0,0 +1,31 @@ +#%RAML 1.0 DataType +(package): Message +type: Message +(beta): true +displayName: ProductTailoringImageAddedMessage +discriminatorValue: ProductTailoringImageAdded +description: | + Generated after a successful [Add External Image](ctp:api:type:ProductTailoringAddExternalImageAction) update action + or after a successful [Upload Product Tailoring image](/projects/product-tailoring#upload-product-tailoring-image) request. +properties: + store: + type: StoreKeyReference + description: | + The Store to which the Product Tailoring belongs. + productKey?: + type: string + description: | + `key` of the tailored Product. + product: + type: ProductReference + description: | + Reference to the tailored Product. + variantId: + type: number + format: int64 + description: | + `id` of the tailored [ProductVariant](ctp:api:type:ProductVariant). + image: + type: Image + description: | + [Image](ctp:api:type:Image) that was added. diff --git a/api-specs/api/types/message/ProductTailoringImagesSetMessage.raml b/api-specs/api/types/message/ProductTailoringImagesSetMessage.raml new file mode 100644 index 0000000000..34be4fd94f --- /dev/null +++ b/api-specs/api/types/message/ProductTailoringImagesSetMessage.raml @@ -0,0 +1,36 @@ +#%RAML 1.0 DataType +(package): Message +type: Message +(beta): true +displayName: ProductTailoringImagesSetMessage +discriminatorValue: ProductTailoringImagesSet +description: | + Generated after a successful [Set Images](ctp:api:type:ProductTailoringSetExternalImagesAction) update action. +properties: + store: + type: StoreKeyReference + description: | + The Store to which the Product Tailoring belongs. + productKey?: + type: string + description: | + `key` of the tailored Product. + product: + type: ProductReference + description: | + Reference to the Product the Product Tailoring belongs to. + variantId: + type: number + format: int64 + description: | + `id` of the tailored Product Variant. + oldImages?: + type: array + items: Image + description: | + [Images](ctp:api:type:Image) on the tailored [Product Variant](ctp:api:type:ProductVariantTailoring) before the [Set Images](ctp:api:type:ProductTailoringSetExternalImagesAction) update action. + images?: + type: array + items: Image + description: | + [Images](ctp:api:type:Image) on the tailored [Product Variant](ctp:api:type:ProductVariantTailoring) after the [Set Images](ctp:api:type:ProductTailoringSetExternalImagesAction) update action. diff --git a/api-specs/api/types/message/ProductTailoringNameSetMessage.raml b/api-specs/api/types/message/ProductTailoringNameSetMessage.raml index a5ecb49983..4c8acc1d76 100644 --- a/api-specs/api/types/message/ProductTailoringNameSetMessage.raml +++ b/api-specs/api/types/message/ProductTailoringNameSetMessage.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Message type: Message -(beta): true displayName: ProductTailoringNameSetMessage discriminatorValue: ProductTailoringNameSet description: | diff --git a/api-specs/api/types/message/ProductTailoringPublishedMessage.raml b/api-specs/api/types/message/ProductTailoringPublishedMessage.raml index b3e7384f41..da4770b961 100644 --- a/api-specs/api/types/message/ProductTailoringPublishedMessage.raml +++ b/api-specs/api/types/message/ProductTailoringPublishedMessage.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Message type: Message -(beta): true displayName: ProductTailoringPublishedMessage discriminatorValue: ProductTailoringPublished description: | diff --git a/api-specs/api/types/message/ProductTailoringSlugSetMessage.raml b/api-specs/api/types/message/ProductTailoringSlugSetMessage.raml index 3598da411a..0fb899f1ae 100644 --- a/api-specs/api/types/message/ProductTailoringSlugSetMessage.raml +++ b/api-specs/api/types/message/ProductTailoringSlugSetMessage.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Message type: Message -(beta): true displayName: ProductTailoringSlugSetMessage discriminatorValue: ProductTailoringSlugSet description: | diff --git a/api-specs/api/types/message/ProductTailoringUnpublishedMessage.raml b/api-specs/api/types/message/ProductTailoringUnpublishedMessage.raml index 64f329a221..8f08bb4870 100644 --- a/api-specs/api/types/message/ProductTailoringUnpublishedMessage.raml +++ b/api-specs/api/types/message/ProductTailoringUnpublishedMessage.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Message type: Message -(beta): true displayName: ProductTailoringUnpublishedMessage discriminatorValue: ProductTailoringUnpublished description: | diff --git a/api-specs/api/types/message/ProductVariantTailoringAddedMessage.raml b/api-specs/api/types/message/ProductVariantTailoringAddedMessage.raml new file mode 100644 index 0000000000..e4d3d16aca --- /dev/null +++ b/api-specs/api/types/message/ProductVariantTailoringAddedMessage.raml @@ -0,0 +1,30 @@ +#%RAML 1.0 DataType +(package): Message +type: Message +(beta): true +displayName: ProductVariantTailoringAddedMessage +discriminatorValue: ProductVariantTailoringAdded +description: | + Generated after a successful [Add ProductVariant Tailoring](ctp:api:type:ProductTailoringAddVariantAction) update action. +properties: + store: + type: StoreKeyReference + description: | + The Store to which the Product Tailoring belongs. + productKey?: + type: string + description: | + `key` of the tailored Product. + product: + type: ProductReference + description: | + Reference to the tailored Product. + variantId: + type: integer + format: int64 + description: | + `id` of the [ProductVariant](ctp:api:type:ProductVariant) added to the Tailoring. + variant: + type: ProductVariantTailoring + description: | + The [ProductVariantTailoring](ctp:api:type:ProductVariantTailoring) that was added to the ProductTailoring. diff --git a/api-specs/api/types/message/ProductVariantTailoringRemovedMessage.raml b/api-specs/api/types/message/ProductVariantTailoringRemovedMessage.raml new file mode 100644 index 0000000000..1e8df183f5 --- /dev/null +++ b/api-specs/api/types/message/ProductVariantTailoringRemovedMessage.raml @@ -0,0 +1,30 @@ +#%RAML 1.0 DataType +(package): Message +type: Message +(beta): true +displayName: ProductVariantTailoringRemovedMessage +discriminatorValue: ProductVariantTailoringRemoved +description: | + Generated after a successful [Remove ProductVariant Tailoring](ctp:api:type:ProductTailoringRemoveVariantAction) update action. +properties: + store: + type: StoreKeyReference + description: | + The Store to which the Product Tailoring belongs. + productKey?: + type: string + description: | + `key` of the tailored Product. + product: + type: ProductReference + description: | + Reference to the Product the Product Tailoring belongs to. + variantId: + type: integer + format: int64 + description: | + `id` of the [ProductVariant](ctp:api:type:ProductVariant) removed from the Tailoring. + variant: + type: ProductVariantTailoring + description: | + The [ProductVariantTailoring](ctp:api:type:ProductVariantTailoring) that was removed from the ProductTailoring. diff --git a/api-specs/api/types/message/StandalonePriceValueChangedMessage.raml b/api-specs/api/types/message/StandalonePriceValueChangedMessage.raml index 24f9869c40..0892ed707a 100644 --- a/api-specs/api/types/message/StandalonePriceValueChangedMessage.raml +++ b/api-specs/api/types/message/StandalonePriceValueChangedMessage.raml @@ -7,7 +7,7 @@ description: | Generated after a successful [Change Value](ctp:api:type:StandalonePriceChangeValueAction) update action. properties: value: - type: Money + type: TypedMoney description: | The new value of the updated [StandalonePrice](ctp:api:type:StandalonePrice). staged: @@ -16,7 +16,7 @@ properties: description: | Whether the new value was applied to the current or the staged representation of the StandalonePrice. Staged changes are stored on the [StagedStandalonePrice](ctp:api:type:StagedStandalonePrice). oldValue?: - type: Money + type: TypedMoney description: | The old value of the updated [StandalonePrice](ctp:api:type:StandalonePrice). Present on Messages created after 3 February 2023. Optional for backwards compatibility. diff --git a/api-specs/api/types/message/payload/BusinessUnitApprovalRuleModeChangedMessagePayload.raml b/api-specs/api/types/message/payload/BusinessUnitApprovalRuleModeChangedMessagePayload.raml new file mode 100644 index 0000000000..753da95d8c --- /dev/null +++ b/api-specs/api/types/message/payload/BusinessUnitApprovalRuleModeChangedMessagePayload.raml @@ -0,0 +1,16 @@ +#%RAML 1.0 DataType +(package): Message +type: MessagePayload +displayName: BusinessUnitApprovalRuleModeChangedMessagePayload +discriminatorValue: BusinessUnitApprovalRuleModeChanged +description: | + Generated after a successful [Change Approval Rule Mode](ctp:api:type:BusinessUnitChangeApprovalRuleModeAction) update action. +properties: + approvalRuleMode: + type: BusinessUnitApprovalRuleMode + description: | + [BusinessUnitApprovalRuleMode](ctp:api:type:BusinessUnitApprovalRuleMode) of the Business Unit after the [Change Approval Rule Mode](ctp:api:type:BusinessUnitChangeApprovalRuleModeAction) update action. + oldApprovalRuleMode?: + type: BusinessUnitApprovalRuleMode + description: | + [BusinessUnitApprovalRuleMode](ctp:api:type:BusinessUnitApprovalRuleMode) of the Business Unit before the [Change Approval Rule Mode](ctp:api:type:BusinessUnitChangeApprovalRuleModeAction) update action. diff --git a/api-specs/api/types/message/payload/OrderLineItemDiscountSetMessagePayload.raml b/api-specs/api/types/message/payload/OrderLineItemDiscountSetMessagePayload.raml index 2ea5724347..ab83df9d37 100644 --- a/api-specs/api/types/message/payload/OrderLineItemDiscountSetMessagePayload.raml +++ b/api-specs/api/types/message/payload/OrderLineItemDiscountSetMessagePayload.raml @@ -19,7 +19,7 @@ properties: description: | Array of [DiscountedLineItemPriceForQuantity](ctp:api:type:DiscountedLineItemPriceForQuantity) after the Discount recalculation. totalPrice: - type: Money + type: CentPrecisionMoney description: | Total Price of the [Line Item](ctp:api:type:LineItem) after the Discount recalculation. taxedPrice?: diff --git a/api-specs/api/types/message/payload/ProductPriceAddedMessagePayload.raml b/api-specs/api/types/message/payload/ProductPriceAddedMessagePayload.raml index 7b18fe3d52..80f3dfd58d 100644 --- a/api-specs/api/types/message/payload/ProductPriceAddedMessagePayload.raml +++ b/api-specs/api/types/message/payload/ProductPriceAddedMessagePayload.raml @@ -14,7 +14,7 @@ properties: price: type: Price description: | - The [Embedded Price](/projects/products#embedded-price) that was added to the [ProductVariant](ctp:api:type:ProductVariant). + The Embedded Price that was added to the [ProductVariant](ctp:api:type:ProductVariant). staged: type: boolean description: | diff --git a/api-specs/api/types/message/payload/ProductPriceChangedMessagePayload.raml b/api-specs/api/types/message/payload/ProductPriceChangedMessagePayload.raml index 4e6c800dcc..0d375f811c 100644 --- a/api-specs/api/types/message/payload/ProductPriceChangedMessagePayload.raml +++ b/api-specs/api/types/message/payload/ProductPriceChangedMessagePayload.raml @@ -14,11 +14,11 @@ properties: oldPrice: type: Price description: | - The current [Embedded Price](/projects/products#embedded-price) before the [Change Embedded Price](ctp:api:type:ProductChangePriceAction) update action. + The current Embedded Price before the [Change Embedded Price](ctp:api:type:ProductChangePriceAction) update action. newPrice: type: Price description: | - The [Embedded Price](/projects/products#embedded-price) after the [Change Embedded Price](ctp:api:type:ProductChangePriceAction) update action. + The Embedded Price after the [Change Embedded Price](ctp:api:type:ProductChangePriceAction) update action. staged: type: boolean description: | @@ -26,4 +26,4 @@ properties: oldStagedPrice?: type: Price description: | - The staged [Embedded Price](/projects/products#embedded-price) before the [Change Embedded Price](ctp:api:type:ProductChangePriceAction) update action. + The staged Embedded Price before the [Change Embedded Price](ctp:api:type:ProductChangePriceAction) update action. diff --git a/api-specs/api/types/message/payload/ProductPriceCustomFieldAddedMessagePayload.raml b/api-specs/api/types/message/payload/ProductPriceCustomFieldAddedMessagePayload.raml new file mode 100644 index 0000000000..ea2f61c47e --- /dev/null +++ b/api-specs/api/types/message/payload/ProductPriceCustomFieldAddedMessagePayload.raml @@ -0,0 +1,29 @@ +#%RAML 1.0 DataType +(package): Message +type: MessagePayload +displayName: ProductPriceCustomFieldAddedMessagePayload +discriminatorValue: ProductPriceCustomFieldAdded +description: | + Generated after adding a Custom Field to a Price using the [Set Price CustomField](ctp:api:type:ProductSetProductPriceCustomFieldAction) update action. +properties: + priceId: + type: string + description: | + Unique identifier of the [Price](ctp:api:type:Price) to which the Custom Field was added. + variantId: + type: number + format: int64 + description: | + Unique identifier of the [ProductVariant](ctp:api:type:ProductVariant) to which the Price belongs. + staged: + type: boolean + description: | + Whether the update was only applied to the staged [Product Projection](ctp:api:type:ProductProjection). + name: + type: string + description: | + Name of the Custom Field that was added. + value: + type: CustomFieldValue + description: | + The added [CustomFieldValue](ctp:api:type:CustomFieldValue) based on the [FieldType](ctp:api:type:FieldType). diff --git a/api-specs/api/types/message/payload/ProductPriceCustomFieldChangedMessagePayload.raml b/api-specs/api/types/message/payload/ProductPriceCustomFieldChangedMessagePayload.raml new file mode 100644 index 0000000000..ab3c9ecb05 --- /dev/null +++ b/api-specs/api/types/message/payload/ProductPriceCustomFieldChangedMessagePayload.raml @@ -0,0 +1,29 @@ +#%RAML 1.0 DataType +(package): Message +type: MessagePayload +displayName: ProductPriceCustomFieldChangedMessagePayload +discriminatorValue: ProductPriceCustomFieldChanged +description: | + Generated after changing an existing Custom Field on a Price using the [Set Price CustomField](ctp:api:type:ProductSetProductPriceCustomFieldAction) update action. +properties: + priceId: + type: string + description: | + Unique identifier of the [Price](ctp:api:type:Price) of which the Custom Field was changed. + variantId: + type: number + format: int64 + description: | + Unique identifier of the [ProductVariant](ctp:api:type:ProductVariant) to which the Price belongs. + staged: + type: boolean + description: | + Whether the update was only applied to the staged [Product Projection](ctp:api:type:ProductProjection). + name: + type: string + description: | + Name of the Custom Field that was changed. + value: + type: CustomFieldValue + description: | + [CustomFieldValue](ctp:api:type:CustomFieldValue) based on the [FieldType](ctp:api:type:FieldType) after the [Set Price CustomField](ctp:api:type:ProductSetProductPriceCustomFieldAction) update action. diff --git a/api-specs/api/types/message/payload/ProductPriceCustomFieldRemovedMessagePayload.raml b/api-specs/api/types/message/payload/ProductPriceCustomFieldRemovedMessagePayload.raml new file mode 100644 index 0000000000..4df31668bd --- /dev/null +++ b/api-specs/api/types/message/payload/ProductPriceCustomFieldRemovedMessagePayload.raml @@ -0,0 +1,25 @@ +#%RAML 1.0 DataType +(package): Message +type: MessagePayload +displayName: ProductPriceCustomFieldRemovedMessagePayload +discriminatorValue: ProductPriceCustomFieldRemoved +description: | + Generated after removing a Custom Field from a Price using the [Set Price CustomField](ctp:api:type:ProductSetProductPriceCustomFieldAction) update action. +properties: + priceId: + type: string + description: | + Unique identifier of the [Price](ctp:api:type:Price) from which the Custom Field was removed. + variantId: + type: number + format: int64 + description: | + Unique identifier of the [ProductVariant](ctp:api:type:ProductVariant) to which the Price belongs. + staged: + type: boolean + description: | + Whether the update was only applied to the staged [Product Projection](ctp:api:type:ProductProjection). + name: + type: string + description: | + Name of the Custom Field that was removed. diff --git a/api-specs/api/types/message/payload/ProductPriceCustomFieldsRemovedMessagePayload.raml b/api-specs/api/types/message/payload/ProductPriceCustomFieldsRemovedMessagePayload.raml new file mode 100644 index 0000000000..4d8452e569 --- /dev/null +++ b/api-specs/api/types/message/payload/ProductPriceCustomFieldsRemovedMessagePayload.raml @@ -0,0 +1,21 @@ +#%RAML 1.0 DataType +(package): Message +type: MessagePayload +displayName: ProductPriceCustomFieldsRemovedMessagePayload +discriminatorValue: ProductPriceCustomFieldsRemoved +description: | + Generated after removing a Custom Type from a Price using the [Set Price Custom Type](ctp:api:type:ProductSetProductPriceCustomTypeAction) update action. +properties: + priceId: + type: string + description: | + Unique identifier of the [Price](ctp:api:type:Price) from which the Custom Type was removed. + variantId: + type: number + format: int64 + description: | + Unique identifier of the [ProductVariant](ctp:api:type:ProductVariant) to which the Price belongs. + staged: + type: boolean + description: | + Whether the update was only applied to the staged [Product Projection](ctp:api:type:ProductProjection). diff --git a/api-specs/api/types/message/payload/ProductPriceCustomFieldsSetMessagePayload.raml b/api-specs/api/types/message/payload/ProductPriceCustomFieldsSetMessagePayload.raml new file mode 100644 index 0000000000..c7b2e2bc4e --- /dev/null +++ b/api-specs/api/types/message/payload/ProductPriceCustomFieldsSetMessagePayload.raml @@ -0,0 +1,29 @@ +#%RAML 1.0 DataType +(package): Message +type: MessagePayload +displayName: ProductPriceCustomFieldsSetMessagePayload +discriminatorValue: ProductPriceCustomFieldsSet +description: | + Generated after a successful [Set Price Custom Type](ctp:api:type:ProductSetProductPriceCustomTypeAction) update action. +properties: + priceId: + type: string + description: | + Unique identifier of the [Price](ctp:api:type:Price) on which the Custom Type was set. + variantId: + type: number + format: int64 + description: | + Unique identifier of the [ProductVariant](ctp:api:type:ProductVariant) to which the Price belongs. + staged: + type: boolean + description: | + Whether the update was only applied to the staged [Product Projection](ctp:api:type:ProductProjection). + customField: + type: CustomFields + description: | + Custom Fields that were set. + oldTypeId?: + type: string + description: | + `id` of the previous [Custom Type](ctp:api:type:Type). Absent if there was no previous Custom Type present. diff --git a/api-specs/api/types/message/payload/ProductPriceRemovedMessagePayload.raml b/api-specs/api/types/message/payload/ProductPriceRemovedMessagePayload.raml index a5b8f74454..800abeb98c 100644 --- a/api-specs/api/types/message/payload/ProductPriceRemovedMessagePayload.raml +++ b/api-specs/api/types/message/payload/ProductPriceRemovedMessagePayload.raml @@ -14,7 +14,7 @@ properties: price: type: Price description: | - The [Embedded Price](/projects/products#embedded-price) that was removed from the [ProductVariant](ctp:api:type:ProductVariant). + The Embedded Price that was removed from the [ProductVariant](ctp:api:type:ProductVariant). staged: type: boolean description: | diff --git a/api-specs/api/types/message/payload/ProductTailoringCreatedMessagePayload.raml b/api-specs/api/types/message/payload/ProductTailoringCreatedMessagePayload.raml index 422f5531d7..23a4592ef5 100644 --- a/api-specs/api/types/message/payload/ProductTailoringCreatedMessagePayload.raml +++ b/api-specs/api/types/message/payload/ProductTailoringCreatedMessagePayload.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Message type: MessagePayload -(beta): true displayName: ProductTailoringCreatedMessagePayload discriminatorValue: ProductTailoringCreated description: | @@ -36,6 +35,22 @@ properties: type: LocalizedString description: | The slug of the [Product Tailoring](ctp:api:type:ProductTailoring) at the time of creation. + metaTitle?: + type: LocalizedString + description: | + The metaTitle of the [Product Tailoring](ctp:api:type:ProductTailoring) at the time of creation. + metaDescription?: + type: LocalizedString + description: | + The metaDescription of the [Product Tailoring](ctp:api:type:ProductTailoring) at the time of creation. + metaKeywords?: + type: LocalizedString + description: | + The metaKeywords of the [Product Tailoring](ctp:api:type:ProductTailoring) at the time of creation. + variants?: + type: ProductVariantTailoring[] + description: | + The variants of the [Product Tailoring](ctp:api:type:ProductTailoring) at the time of creation. published: type: boolean description: | diff --git a/api-specs/api/types/message/payload/ProductTailoringDeletedMessagePayload.raml b/api-specs/api/types/message/payload/ProductTailoringDeletedMessagePayload.raml index e91ec8b559..738c843561 100644 --- a/api-specs/api/types/message/payload/ProductTailoringDeletedMessagePayload.raml +++ b/api-specs/api/types/message/payload/ProductTailoringDeletedMessagePayload.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Message type: MessagePayload -(beta): true displayName: ProductTailoringDeletedMessagePayload discriminatorValue: ProductTailoringDeleted description: | diff --git a/api-specs/api/types/message/payload/ProductTailoringDescriptionSetMessagePayload.raml b/api-specs/api/types/message/payload/ProductTailoringDescriptionSetMessagePayload.raml index 1c687ad7e4..7ae337c367 100644 --- a/api-specs/api/types/message/payload/ProductTailoringDescriptionSetMessagePayload.raml +++ b/api-specs/api/types/message/payload/ProductTailoringDescriptionSetMessagePayload.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Message type: MessagePayload -(beta): true displayName: ProductTailoringDescriptionSetMessagePayload discriminatorValue: ProductTailoringDescriptionSet description: | diff --git a/api-specs/api/types/message/payload/ProductTailoringImageAddedMessagePayload.raml b/api-specs/api/types/message/payload/ProductTailoringImageAddedMessagePayload.raml new file mode 100644 index 0000000000..b6440f0e4e --- /dev/null +++ b/api-specs/api/types/message/payload/ProductTailoringImageAddedMessagePayload.raml @@ -0,0 +1,31 @@ +#%RAML 1.0 DataType +(package): Message +type: MessagePayload +(beta): true +displayName: ProductTailoringImageAddedMessagePayload +discriminatorValue: ProductTailoringImageAdded +description: | + Generated after a successful [Add External Image](ctp:api:type:ProductTailoringAddExternalImageAction) update action + or after a successful [Upload Product Tailoring image](/projects/product-tailoring#upload-product-tailoring-image) request. +properties: + store: + type: StoreKeyReference + description: | + The Store to which the Product Tailoring belongs. + productKey?: + type: string + description: | + `key` of the tailored Product. + product: + type: ProductReference + description: | + Reference to the tailored Product. + variantId: + type: number + format: int64 + description: | + `id` of the tailored [ProductVariant](ctp:api:type:ProductVariant). + image: + type: Image + description: | + [Image](ctp:api:type:Image) that was added. diff --git a/api-specs/api/types/message/payload/ProductTailoringImagesSetMessagePayload.raml b/api-specs/api/types/message/payload/ProductTailoringImagesSetMessagePayload.raml new file mode 100644 index 0000000000..379f67a6dd --- /dev/null +++ b/api-specs/api/types/message/payload/ProductTailoringImagesSetMessagePayload.raml @@ -0,0 +1,36 @@ +#%RAML 1.0 DataType +(package): Message +type: MessagePayload +(beta): true +displayName: ProductTailoringImagesSetMessagePayload +discriminatorValue: ProductTailoringImagesSet +description: | + Generated after a successful [Set Images](ctp:api:type:ProductTailoringSetExternalImagesAction) update action. +properties: + store: + type: StoreKeyReference + description: | + The Store to which the Product Tailoring belongs. + productKey?: + type: string + description: | + `key` of the tailored Product. + product: + type: ProductReference + description: | + Reference to the Product the Product Tailoring belongs to. + variantId: + type: number + format: int64 + description: | + `id` of the tailored Product Variant. + oldImages?: + type: array + items: Image + description: | + [Images](ctp:api:type:Image) on the tailored [Product Variant](ctp:api:type:ProductVariantTailoring) before the [Set Images](ctp:api:type:ProductTailoringSetExternalImagesAction) update action. + images?: + type: array + items: Image + description: | + [Images](ctp:api:type:Image) on the tailored [Product Variant](ctp:api:type:ProductVariantTailoring) after the [Set Images](ctp:api:type:ProductTailoringSetExternalImagesAction) update action. diff --git a/api-specs/api/types/message/payload/ProductTailoringNameSetMessagePayload.raml b/api-specs/api/types/message/payload/ProductTailoringNameSetMessagePayload.raml index 41c96a65cf..58c41e93dd 100644 --- a/api-specs/api/types/message/payload/ProductTailoringNameSetMessagePayload.raml +++ b/api-specs/api/types/message/payload/ProductTailoringNameSetMessagePayload.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Message type: MessagePayload -(beta): true displayName: ProductTailoringNameSetMessagePayload discriminatorValue: ProductTailoringNameSet description: | diff --git a/api-specs/api/types/message/payload/ProductTailoringPublishedMessagePayload.raml b/api-specs/api/types/message/payload/ProductTailoringPublishedMessagePayload.raml index b8bdabee88..7c30104292 100644 --- a/api-specs/api/types/message/payload/ProductTailoringPublishedMessagePayload.raml +++ b/api-specs/api/types/message/payload/ProductTailoringPublishedMessagePayload.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Message type: MessagePayload -(beta): true displayName: ProductTailoringPublishedMessagePayload discriminatorValue: ProductTailoringPublished description: | diff --git a/api-specs/api/types/message/payload/ProductTailoringSlugSetMessagePayload.raml b/api-specs/api/types/message/payload/ProductTailoringSlugSetMessagePayload.raml index 6194539f87..9892970547 100644 --- a/api-specs/api/types/message/payload/ProductTailoringSlugSetMessagePayload.raml +++ b/api-specs/api/types/message/payload/ProductTailoringSlugSetMessagePayload.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Message type: MessagePayload -(beta): true displayName: ProductTailoringSlugSetMessagePayload discriminatorValue: ProductTailoringSlugSet description: | diff --git a/api-specs/api/types/message/payload/ProductTailoringUnpublishedMessagePayload.raml b/api-specs/api/types/message/payload/ProductTailoringUnpublishedMessagePayload.raml index 6df3de2b22..59a8ca8f80 100644 --- a/api-specs/api/types/message/payload/ProductTailoringUnpublishedMessagePayload.raml +++ b/api-specs/api/types/message/payload/ProductTailoringUnpublishedMessagePayload.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Message type: MessagePayload -(beta): true displayName: ProductTailoringUnpublishedMessagePayload discriminatorValue: ProductTailoringUnpublished description: | diff --git a/api-specs/api/types/message/payload/ProductVariantTailoringAddedMessagePayload.raml b/api-specs/api/types/message/payload/ProductVariantTailoringAddedMessagePayload.raml new file mode 100644 index 0000000000..8eec80dcb9 --- /dev/null +++ b/api-specs/api/types/message/payload/ProductVariantTailoringAddedMessagePayload.raml @@ -0,0 +1,30 @@ +#%RAML 1.0 DataType +(package): Message +type: MessagePayload +(beta): true +displayName: ProductVariantTailoringAddedMessagePayload +discriminatorValue: ProductVariantTailoringAdded +description: | + Generated after a successful [Add ProductVariant Tailoring](ctp:api:type:ProductTailoringAddVariantAction) update action. +properties: + store: + type: StoreKeyReference + description: | + The Store to which the Product Tailoring belongs. + productKey?: + type: string + description: | + `key` of the tailored Product. + product: + type: ProductReference + description: | + Reference to the tailored Product. + variantId: + type: integer + format: int64 + description: | + `id` of the [ProductVariant](ctp:api:type:ProductVariant) added to the Tailoring. + variant: + type: ProductVariantTailoring + description: | + The [ProductVariantTailoring](ctp:api:type:ProductVariantTailoring) that was added to the ProductTailoring. diff --git a/api-specs/api/types/message/payload/ProductVariantTailoringRemovedMessagePayload.raml b/api-specs/api/types/message/payload/ProductVariantTailoringRemovedMessagePayload.raml new file mode 100644 index 0000000000..21dec99df6 --- /dev/null +++ b/api-specs/api/types/message/payload/ProductVariantTailoringRemovedMessagePayload.raml @@ -0,0 +1,30 @@ +#%RAML 1.0 DataType +(package): Message +type: MessagePayload +(beta): true +displayName: ProductVariantTailoringRemovedMessagePayload +discriminatorValue: ProductVariantTailoringRemoved +description: | + Generated after a successful [Remove ProductVariant Tailoring](ctp:api:type:ProductTailoringRemoveVariantAction) update action. +properties: + store: + type: StoreKeyReference + description: | + The Store to which the Product Tailoring belongs. + productKey?: + type: string + description: | + `key` of the tailored Product. + product: + type: ProductReference + description: | + Reference to the Product the Product Tailoring belongs to. + variantId: + type: integer + format: int64 + description: | + `id` of the [ProductVariant](ctp:api:type:ProductVariant) removed from the Tailoring. + variant: + type: ProductVariantTailoring + description: | + The [ProductVariantTailoring](ctp:api:type:ProductVariantTailoring) that was removed from the ProductTailoring. diff --git a/api-specs/api/types/message/payload/StandalonePriceValueChangedMessagePayload.raml b/api-specs/api/types/message/payload/StandalonePriceValueChangedMessagePayload.raml index 3fa381f01e..15f9b7675c 100644 --- a/api-specs/api/types/message/payload/StandalonePriceValueChangedMessagePayload.raml +++ b/api-specs/api/types/message/payload/StandalonePriceValueChangedMessagePayload.raml @@ -7,7 +7,7 @@ description: | Generated after a successful [Change Value](ctp:api:type:StandalonePriceChangeValueAction) update action. properties: value: - type: Money + type: TypedMoney description: | The new value of the updated [StandalonePrice](ctp:api:type:StandalonePrice). staged: @@ -16,7 +16,7 @@ properties: description: | Whether the new value was applied to the current or the staged representation of the StandalonePrice. Staged changes are stored on the [StagedStandalonePrice](ctp:api:type:StagedStandalonePrice). oldValue?: - type: Money + type: TypedMoney description: | The old value of the updated [StandalonePrice](ctp:api:type:StandalonePrice). Present on Messages created after 3 February 2023. Optional for backwards compatibility. diff --git a/api-specs/api/types/order-edit/updates/StagedOrderAddLineItemAction.raml b/api-specs/api/types/order-edit/updates/StagedOrderAddLineItemAction.raml index a322d804f1..7432469ac4 100644 --- a/api-specs/api/types/order-edit/updates/StagedOrderAddLineItemAction.raml +++ b/api-specs/api/types/order-edit/updates/StagedOrderAddLineItemAction.raml @@ -8,7 +8,7 @@ description: | If the Cart contains a [LineItem](ctp:api:type:LineItem) for a Product Variant with the same [LineItemMode](ctp:api:type:LineItemMode), [Custom Fields](/../api/projects/custom-fields), supply and distribution channel, then only the quantity of the existing Line Item is increased. If [LineItem](ctp:api:type:LineItem) `shippingDetails` is set, it is merged. All addresses will be present afterwards and, for address keys present in both shipping details, the quantity will be summed up. A new Line Item is added when the `externalPrice` or `externalTotalPrice` is set in this update action. - The [LineItem](ctp:api:type:LineItem) price is set as described in [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + The [LineItem](ctp:api:type:LineItem) price is set as described in [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). If the Tax Rate is not set, a [MissingTaxRateForCountry](ctp:api:type:MissingTaxRateForCountryError) error is returned. @@ -57,7 +57,7 @@ properties: distributionChannel?: type: ChannelResourceIdentifier description: | - Used to [select](/../api/carts-orders-overview#line-item-price-selection) a Product Price. + Used to [select](/../api/pricing-and-discounts-overview#line-item-price-selection) a Product Price. The Channel must have the `ProductDistribution` [ChannelRoleEnum](ctp:api:type:ChannelRoleEnum). If the Cart is bound to a [Store](ctp:api:type:Store) with `distributionChannels` set, the Channel must match one of the Store's distribution channels. supplyChannel?: @@ -76,7 +76,7 @@ properties: externalTaxRate?: type: ExternalTaxRateDraft description: | - External Tax Rate for the Line Item, if the Cart has the `External` [TaxMode](ctp:api:type:TaxMode). + Sets the external Tax Rate for the Line Item, if the Cart has the `External` [TaxMode](ctp:api:type:TaxMode). If the Cart has `Multiple` [ShippingMode](ctp:api:type:ShippingMode), the Tax Rate is accepted but ignored. inventoryMode?: type: InventoryMode description: | diff --git a/api-specs/api/types/order-edit/updates/StagedOrderChangeLineItemQuantityAction.raml b/api-specs/api/types/order-edit/updates/StagedOrderChangeLineItemQuantityAction.raml index 4917d0deb5..c3fa4f9b1e 100644 --- a/api-specs/api/types/order-edit/updates/StagedOrderChangeLineItemQuantityAction.raml +++ b/api-specs/api/types/order-edit/updates/StagedOrderChangeLineItemQuantityAction.raml @@ -9,7 +9,7 @@ description: | To change the Line Item quantity and shipping details together, use this update action in combination with the [Set LineItem ShippingDetails](ctp:api:type:StagedOrderSetLineItemShippingDetailsAction) update action in a single Order update command. - The [LineItem](ctp:api:type:LineItem) price is updated as described in [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + The [LineItem](ctp:api:type:LineItem) price is updated as described in [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). properties: lineItemId?: type: string @@ -32,7 +32,7 @@ properties: Required when the Line Item uses `ExternalPrice` [LineItemPriceMode](ctp:api:type:LineItemPriceMode). Sets the [LineItem](ctp:api:type:LineItem) `price` to the given value when changing the quantity of a Line Item. - The [LineItem](ctp:api:type:LineItem) price is updated as described in [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + The [LineItem](ctp:api:type:LineItem) price is updated as described in [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). externalTotalPrice?: type: ExternalLineItemTotalPrice description: | diff --git a/api-specs/api/types/order-edit/updates/StagedOrderRemoveLineItemAction.raml b/api-specs/api/types/order-edit/updates/StagedOrderRemoveLineItemAction.raml index a11447a47a..2338de8055 100644 --- a/api-specs/api/types/order-edit/updates/StagedOrderRemoveLineItemAction.raml +++ b/api-specs/api/types/order-edit/updates/StagedOrderRemoveLineItemAction.raml @@ -5,7 +5,7 @@ type: StagedOrderUpdateAction displayName: StagedOrderRemoveLineItemAction discriminatorValue: removeLineItem description: | - The [LineItem](ctp:api:type:LineItem) price is updated as described in [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + The [LineItem](ctp:api:type:LineItem) price is updated as described in [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). properties: lineItemId?: type: string diff --git a/api-specs/api/types/order-edit/updates/StagedOrderSetLineItemDistributionChannelAction.raml b/api-specs/api/types/order-edit/updates/StagedOrderSetLineItemDistributionChannelAction.raml index 6e380702a2..3d34889540 100644 --- a/api-specs/api/types/order-edit/updates/StagedOrderSetLineItemDistributionChannelAction.raml +++ b/api-specs/api/types/order-edit/updates/StagedOrderSetLineItemDistributionChannelAction.raml @@ -5,7 +5,7 @@ type: StagedOrderUpdateAction displayName: StagedOrderSetLineItemDistributionChannelAction discriminatorValue: setLineItemDistributionChannel description: | - Setting a distribution channel for a [LineItem](ctp:api:type:LineItem) can lead to an updated `price` as described in [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + Setting a distribution channel for a [LineItem](ctp:api:type:LineItem) can lead to an updated `price` as described in [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). Produces the [OrderLineItemDistributionChannelSet](ctp:api:type:OrderLineItemDistributionChannelSetMessage) Message. properties: diff --git a/api-specs/api/types/order-edit/updates/StagedOrderSetLineItemTaxAmountAction.raml b/api-specs/api/types/order-edit/updates/StagedOrderSetLineItemTaxAmountAction.raml index f402f4afa8..a5b262e1e0 100644 --- a/api-specs/api/types/order-edit/updates/StagedOrderSetLineItemTaxAmountAction.raml +++ b/api-specs/api/types/order-edit/updates/StagedOrderSetLineItemTaxAmountAction.raml @@ -5,7 +5,8 @@ type: StagedOrderUpdateAction displayName: StagedOrderSetLineItemTaxAmountAction discriminatorValue: setLineItemTaxAmount description: | - Can be used if the Cart has the `ExternalAmount` [TaxMode](ctp:api:type:TaxMode). + Can be used if the Cart has the `ExternalAmount` [TaxMode](ctp:api:type:TaxMode). This update action sets the `taxedPrice` and `taxRate` on a Line Item and must be used after any price-affecting change occurs. + properties: lineItemId?: type: string diff --git a/api-specs/api/types/order/ItemState.raml b/api-specs/api/types/order/ItemState.raml index bd7e372b20..ee0c7411e7 100644 --- a/api-specs/api/types/order/ItemState.raml +++ b/api-specs/api/types/order/ItemState.raml @@ -2,6 +2,7 @@ (package): Order displayName: ItemState type: object +(expandable): true properties: quantity: type: number diff --git a/api-specs/api/types/order/LineItemImportDraft.raml b/api-specs/api/types/order/LineItemImportDraft.raml index 11e4680dab..547b4de70f 100644 --- a/api-specs/api/types/order/LineItemImportDraft.raml +++ b/api-specs/api/types/order/LineItemImportDraft.raml @@ -41,7 +41,7 @@ properties: distributionChannel?: type: ChannelResourceIdentifier description: |- - The Channel used to [select a Price](ctp:api:type:LineItemPriceSelection). + The Channel used to [select a Price](/../api/pricing-and-discounts-overview#line-item-price-selection). This Channel must have the `ProductDistribution` role. supplyChannel?: type: ChannelResourceIdentifier diff --git a/api-specs/api/types/order/Order.raml b/api-specs/api/types/order/Order.raml index 9a1d0e4b74..873ecf56d1 100644 --- a/api-specs/api/types/order/Order.raml +++ b/api-specs/api/types/order/Order.raml @@ -37,7 +37,7 @@ properties: type: CustomerGroupReference description: |- [Reference](ctp:api:type:Reference) to the Customer Group of the Customer that the Order belongs to. - Used for [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + Used for [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). anonymousId?: type: string description: | @@ -166,7 +166,7 @@ properties: country?: type: CountryCode description: |- - Used for [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + Used for [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). locale?: type: Locale description: | diff --git a/api-specs/api/types/order/PaymentInfo.raml b/api-specs/api/types/order/PaymentInfo.raml index 3a16b6602e..93977a481e 100644 --- a/api-specs/api/types/order/PaymentInfo.raml +++ b/api-specs/api/types/order/PaymentInfo.raml @@ -2,6 +2,7 @@ (package): Order displayName: PaymentInfo type: object +(expandable): true properties: payments: type: PaymentReference[] diff --git a/api-specs/api/types/order/SyncInfo.raml b/api-specs/api/types/order/SyncInfo.raml index c4dac9c566..a2033d1dc7 100644 --- a/api-specs/api/types/order/SyncInfo.raml +++ b/api-specs/api/types/order/SyncInfo.raml @@ -2,6 +2,7 @@ (package): Order displayName: SyncInfo type: object +(expandable): true description: | Contains synchronization activity information of the Order (like export or import). properties: diff --git a/api-specs/api/types/payment/PaymentStatus.raml b/api-specs/api/types/payment/PaymentStatus.raml index ab3e1edb58..46351e97fa 100644 --- a/api-specs/api/types/payment/PaymentStatus.raml +++ b/api-specs/api/types/payment/PaymentStatus.raml @@ -1,6 +1,7 @@ #%RAML 1.0 DataType (package): Payment type: object +(expandable): true displayName: PaymentStatus properties: interfaceCode?: diff --git a/api-specs/api/types/product-search/ProductPagedSearchResponse.raml b/api-specs/api/types/product-search/ProductPagedSearchResponse.raml index c447dab798..91d883177e 100644 --- a/api-specs/api/types/product-search/ProductPagedSearchResponse.raml +++ b/api-specs/api/types/product-search/ProductPagedSearchResponse.raml @@ -2,7 +2,6 @@ (package): ProductSearch displayName: ProductPagedSearchResponse type: object -(beta): true properties: total: type: number @@ -25,6 +24,7 @@ properties: Number of [results requested](/../api/general-concepts#limit). facets: type: ProductSearchFacetResult[] + (beta): true description: | Results for [facets](/../api/projects/product-search#facets) when requested. results: diff --git a/api-specs/api/types/product-search/ProductSearchErrorResponse.raml b/api-specs/api/types/product-search/ProductSearchErrorResponse.raml index e3af94da2e..def30932ad 100644 --- a/api-specs/api/types/product-search/ProductSearchErrorResponse.raml +++ b/api-specs/api/types/product-search/ProductSearchErrorResponse.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): ProductSearch type: ErrorResponse -(beta): true displayName: ProductSearchErrorResponse properties: statusCode: diff --git a/api-specs/api/types/product-search/ProductSearchMatchingVariantEntry.raml b/api-specs/api/types/product-search/ProductSearchMatchingVariantEntry.raml index e87b764f0e..ab6eece7f9 100644 --- a/api-specs/api/types/product-search/ProductSearchMatchingVariantEntry.raml +++ b/api-specs/api/types/product-search/ProductSearchMatchingVariantEntry.raml @@ -2,7 +2,6 @@ (package): ProductSearch displayName: ProductSearchMatchingVariantEntry type: object -(beta): true properties: id: type: number diff --git a/api-specs/api/types/product-search/ProductSearchMatchingVariants.raml b/api-specs/api/types/product-search/ProductSearchMatchingVariants.raml index 8def25fb07..bd9ad22800 100644 --- a/api-specs/api/types/product-search/ProductSearchMatchingVariants.raml +++ b/api-specs/api/types/product-search/ProductSearchMatchingVariants.raml @@ -2,7 +2,6 @@ (package): ProductSearch displayName: ProductSearchMatchingVariants type: object -(beta): true properties: allMatched: type: boolean diff --git a/api-specs/api/types/product-search/ProductSearchProjectionParams.raml b/api-specs/api/types/product-search/ProductSearchProjectionParams.raml index 1408908fa7..b986083838 100644 --- a/api-specs/api/types/product-search/ProductSearchProjectionParams.raml +++ b/api-specs/api/types/product-search/ProductSearchProjectionParams.raml @@ -16,19 +16,19 @@ properties: priceCurrency?: type: CurrencyCode description: | - The currency used for [Price selection](/projects/products#price-selection). + The currency used for [Product price selection](/../api/pricing-and-discounts-overview#product-price-selection). priceCountry?: type: CountryCode description: | - The country used for [Price selection](/projects/products#price-selection). Can only be used **in conjunction with** the `priceCurrency` parameter. + The country used for [Product price selection](/../api/pricing-and-discounts-overview#product-price-selection). Can only be used **in conjunction with** the `priceCurrency` parameter. priceCustomerGroup?: type: string description: | - `id` of an existing [CustomerGroup](ctp:api:type:CustomerGroup) used for [Price selection](ctp:api:type:ProductPriceSelection). Can only be used **in conjunction with** the `priceCurrency` parameter. + `id` of an existing [CustomerGroup](ctp:api:type:CustomerGroup) used for [Product price selection](/../api/pricing-and-discounts-overview#product-price-selection). Can only be used **in conjunction with** the `priceCurrency` parameter. priceChannel?: type: string description: | - `id` of an existing [Channel](ctp:api:type:Channel) used for [Price selection](ctp:api:type:ProductPriceSelection). Can only be used **in conjunction with** the `priceCurrency` parameter. + `id` of an existing [Channel](ctp:api:type:Channel) used for [Product price selection](/../api/pricing-and-discounts-overview#product-price-selection). Can only be used **in conjunction with** the `priceCurrency` parameter. localeProjection?: type: Locale[] description: | @@ -40,4 +40,4 @@ properties: If the Store has defined some languages, countries, distribution or supply Channels, they are used for projections based on [locale](ctp:api:type:ProductProjectionLocales), [price](ctp:api:type:ProductProjectionPrices), and [inventory](ctp:api:type:ProductProjectionInventoryEntries). - If the Store has defined [Product Selections](ctp:api:type:ProductSelection), they have no effect on the results of this query. + If the Store has defined [Product Selections](ctp:api:type:ProductSelection) or [Product Tailoring](ctp:api:type:ProductTailoring), they have no effect on the results of this query. diff --git a/api-specs/api/types/product-search/ProductSearchRequest.raml b/api-specs/api/types/product-search/ProductSearchRequest.raml index f66cc79ad2..172a3783f0 100644 --- a/api-specs/api/types/product-search/ProductSearchRequest.raml +++ b/api-specs/api/types/product-search/ProductSearchRequest.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): ProductSearch type: object -(beta): true displayName: ProductSearchRequest example: !include ../../examples/ProductSearch/product-search-request.example.json properties: @@ -30,12 +29,14 @@ properties: description: The search can return Products where not all Product Variants match the search criteria. If `true`, the response will include a field called `matchingVariants` that contains the `sku` of Product Variants that match the search query. If the query does not specify any variant-level criteria, `matchingVariants` will be null signifying that all Product Variants are a match. productProjectionParameters?: type: ProductSearchProjectionParams + (beta): true description: | Set this field to `{}` to get the [ProductProjection](ctp:api:type:ProductProjection) included in the [ProductSearchResult](ctp:api:type:ProductSearchResult). Include query parameters for controlling [Reference Expansion](/../api/general-concepts#reference-expansion) or [projections](/../api/projects/productProjections#projection-dimensions) according to your needs. If not set, the result does not include the Product Projection. facets?: type: ProductSearchFacetExpression[] + (beta): true description: | Set this field to request [facets](/../api/projects/product-search#facets). postFilter?: diff --git a/api-specs/api/types/product-search/ProductSearchResult.raml b/api-specs/api/types/product-search/ProductSearchResult.raml index f255bb8f1e..186c5dba90 100644 --- a/api-specs/api/types/product-search/ProductSearchResult.raml +++ b/api-specs/api/types/product-search/ProductSearchResult.raml @@ -2,7 +2,6 @@ (package): ProductSearch displayName: ProductSearchResult type: object -(beta): true properties: id: (identifier): true @@ -10,6 +9,7 @@ properties: description: Unique identifier of the Product. productProjection?: type: ProductProjection + (beta): true description: Contains Product Projection data for Products matching the `projection` field in the Search Products request. matchingVariants?: type: ProductSearchMatchingVariants diff --git a/api-specs/api/types/product-selection/AssignedProductReference.raml b/api-specs/api/types/product-selection/AssignedProductReference.raml index d0b461e27b..4c83a09cc4 100644 --- a/api-specs/api/types/product-selection/AssignedProductReference.raml +++ b/api-specs/api/types/product-selection/AssignedProductReference.raml @@ -1,6 +1,7 @@ #%RAML 1.0 DataType (package): ProductSelection type: object +(expandable): true displayName: AssignedProductReference properties: product: diff --git a/api-specs/api/types/product-selection/AssignedProductSelection.raml b/api-specs/api/types/product-selection/AssignedProductSelection.raml index 74d82f0405..781bb679e6 100644 --- a/api-specs/api/types/product-selection/AssignedProductSelection.raml +++ b/api-specs/api/types/product-selection/AssignedProductSelection.raml @@ -2,6 +2,7 @@ (package): ProductSelection type: object displayName: AssignedProductSelection +(expandable): true properties: productSelection: type: ProductSelectionReference diff --git a/api-specs/api/types/product-selection/ProductSelectionAssignment.raml b/api-specs/api/types/product-selection/ProductSelectionAssignment.raml index 878cc8cf02..e327e5cb88 100644 --- a/api-specs/api/types/product-selection/ProductSelectionAssignment.raml +++ b/api-specs/api/types/product-selection/ProductSelectionAssignment.raml @@ -1,6 +1,7 @@ #%RAML 1.0 DataType (package): ProductSelection type: object +(expandable): true displayName: ProductSelectionAssignment description: |- diff --git a/api-specs/api/types/product-selection/ProductSelectionProductPagedQueryResponse.raml b/api-specs/api/types/product-selection/ProductSelectionProductPagedQueryResponse.raml index a6a323b95b..37c6fcce78 100644 --- a/api-specs/api/types/product-selection/ProductSelectionProductPagedQueryResponse.raml +++ b/api-specs/api/types/product-selection/ProductSelectionProductPagedQueryResponse.raml @@ -2,6 +2,7 @@ (package): ProductSelection displayName: ProductSelectionProductPagedQueryResponse type: object +(expandable): true description: | [PagedQueryResult](/general-concepts#pagedqueryresult) containing an array of [AssignedProductReference](ctp:api:type:AssignedProductReference). properties: diff --git a/api-specs/api/types/product-tailoring/ProductTailoring.raml b/api-specs/api/types/product-tailoring/ProductTailoring.raml index 6968a870a8..0f50a2f476 100644 --- a/api-specs/api/types/product-tailoring/ProductTailoring.raml +++ b/api-specs/api/types/product-tailoring/ProductTailoring.raml @@ -2,7 +2,6 @@ (package): ProductTailoring displayName: ProductTailoring type: BaseResource -(beta): true (updateType): ProductTailoringUpdate description: | A single ProductTailoring representation contains the _current_ and the _staged_ representation of its product data tailored per Store. diff --git a/api-specs/api/types/product-tailoring/ProductTailoringData.raml b/api-specs/api/types/product-tailoring/ProductTailoringData.raml index ec9e5db182..a6baf545e0 100644 --- a/api-specs/api/types/product-tailoring/ProductTailoringData.raml +++ b/api-specs/api/types/product-tailoring/ProductTailoringData.raml @@ -2,7 +2,6 @@ (package): ProductTailoring displayName: ProductTailoringData type: object -(beta): true description: | Contains all the tailored data of a Product. properties: @@ -31,3 +30,8 @@ properties: description: | User-defined identifier used in a deep-link URL for the ProductTailoring. Matches the pattern `[a-zA-Z0-9_\\-]{2,256}`. + variants?: + type: ProductVariantTailoring[] + (beta): true + description: | + Tailored Variants of the Product. diff --git a/api-specs/api/types/product-tailoring/ProductTailoringDraft.raml b/api-specs/api/types/product-tailoring/ProductTailoringDraft.raml index 1b0829d035..199c37777b 100644 --- a/api-specs/api/types/product-tailoring/ProductTailoringDraft.raml +++ b/api-specs/api/types/product-tailoring/ProductTailoringDraft.raml @@ -2,7 +2,6 @@ (package): ProductTailoring displayName: ProductTailoringDraft type: object -(beta): true description: | Contains all the tailored data of a Product. properties: @@ -48,3 +47,8 @@ properties: description: | If `true`, the ProductTailoring is published immediately. default: false + variants?: + type: ProductVariantTailoringDraft[] + (beta): true + description: | + Tailored Variants of the Product. diff --git a/api-specs/api/types/product-tailoring/ProductTailoringInStoreDraft.raml b/api-specs/api/types/product-tailoring/ProductTailoringInStoreDraft.raml index 9dce8469ce..ab338ef995 100644 --- a/api-specs/api/types/product-tailoring/ProductTailoringInStoreDraft.raml +++ b/api-specs/api/types/product-tailoring/ProductTailoringInStoreDraft.raml @@ -2,7 +2,6 @@ (package): ProductTailoring displayName: ProductTailoringInStoreDraft type: object -(beta): true description: | Contains all the tailored data of a Product for a specific Store. properties: @@ -44,3 +43,8 @@ properties: description: | If `true`, the ProductTailoring is published immediately. default: false + variants?: + type: ProductVariantTailoringDraft[] + (beta): true + description: | + Tailored Variants of the Product. diff --git a/api-specs/api/types/product-tailoring/ProductTailoringPagedQueryResponse.raml b/api-specs/api/types/product-tailoring/ProductTailoringPagedQueryResponse.raml index 91e886cd9f..8fc3ba9d72 100644 --- a/api-specs/api/types/product-tailoring/ProductTailoringPagedQueryResponse.raml +++ b/api-specs/api/types/product-tailoring/ProductTailoringPagedQueryResponse.raml @@ -2,7 +2,6 @@ (package): ProductTailoring displayName: ProductTailoringPagedQueryResponse type: object -(beta): true example: !include ../../examples/product-tailoring-list.example.json description: | [PagedQueryResult](/../api/general-concepts#pagedqueryresult) with results containing an array of [ProductTailoring](ctp:api:type:ProductTailoring). diff --git a/api-specs/api/types/product-tailoring/ProductTailoringReference.raml b/api-specs/api/types/product-tailoring/ProductTailoringReference.raml index 51e1d31086..31332eed55 100644 --- a/api-specs/api/types/product-tailoring/ProductTailoringReference.raml +++ b/api-specs/api/types/product-tailoring/ProductTailoringReference.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): ProductTailoring type: Reference -(beta): true displayName: ProductTailoringReference discriminatorValue: product-tailoring description: | diff --git a/api-specs/api/types/product-tailoring/ProductTailoringResourceIdentifier.raml b/api-specs/api/types/product-tailoring/ProductTailoringResourceIdentifier.raml index 403b5fff40..70388a3ec5 100644 --- a/api-specs/api/types/product-tailoring/ProductTailoringResourceIdentifier.raml +++ b/api-specs/api/types/product-tailoring/ProductTailoringResourceIdentifier.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): ProductTailoring type: ResourceIdentifier -(beta): true displayName: ProductTailoringResourceIdentifier discriminatorValue: product-tailoring description: | diff --git a/api-specs/api/types/product-tailoring/ProductTailoringUpdate.raml b/api-specs/api/types/product-tailoring/ProductTailoringUpdate.raml index 4fa11a1107..6355483e42 100644 --- a/api-specs/api/types/product-tailoring/ProductTailoringUpdate.raml +++ b/api-specs/api/types/product-tailoring/ProductTailoringUpdate.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Cart type: object -(beta): true displayName: ProductTailoringUpdate properties: version: diff --git a/api-specs/api/types/product-tailoring/ProductTailoringUpdateAction.raml b/api-specs/api/types/product-tailoring/ProductTailoringUpdateAction.raml index 2b02c1a5b1..aba0458aa5 100644 --- a/api-specs/api/types/product-tailoring/ProductTailoringUpdateAction.raml +++ b/api-specs/api/types/product-tailoring/ProductTailoringUpdateAction.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): ProductTailoring type: object -(beta): true displayName: ProductTailoringUpdateAction discriminator: action properties: diff --git a/api-specs/api/types/product-tailoring/ProductVariantTailoring.raml b/api-specs/api/types/product-tailoring/ProductVariantTailoring.raml new file mode 100644 index 0000000000..b100a20890 --- /dev/null +++ b/api-specs/api/types/product-tailoring/ProductVariantTailoring.raml @@ -0,0 +1,23 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +displayName: ProductVariantTailoring +type: object +(beta): true +description: | + The tailoring of a [ProductVariant](ctp:api:type:ProductVariant). +properties: + id: + type: number + format: int64 + description: | + The `id` of the tailored [ProductVariant](ctp:api:type:ProductVariant). + images?: + type: Image[] + description: | + Images of the tailored Product Variant. + If present, these images will override the images of the corresponding [ProductVariant](ctp:api:type:ProductVariant) in total. + assets?: + type: Asset[] + description: | + Media assets of the tailored Product Variant. + If present, these assets will override the assets of the corresponding [ProductVariant](ctp:api:type:ProductVariant) in total. diff --git a/api-specs/api/types/product-tailoring/ProductVariantTailoringDraft.raml b/api-specs/api/types/product-tailoring/ProductVariantTailoringDraft.raml new file mode 100644 index 0000000000..1ebd97d346 --- /dev/null +++ b/api-specs/api/types/product-tailoring/ProductVariantTailoringDraft.raml @@ -0,0 +1,25 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +displayName: ProductVariantTailoringDraft +type: object +(beta): true +description: | + Either `id` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. +properties: + id?: + type: number + format: int64 + description: | + The `id` of the [ProductVariant](ctp:api:type:ProductVariant) to be tailored. + sku?: + type: string + description: | + The `sku` of the [ProductVariant](ctp:api:type:ProductVariant) to be tailored. + images?: + type: Image[] + description: | + Images of the tailored Product Variant. + assets?: + type: Asset[] + description: | + Media assets of the tailored Product Variant. diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringAddAssetAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringAddAssetAction.raml new file mode 100644 index 0000000000..da76adbe9e --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringAddAssetAction.raml @@ -0,0 +1,33 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringAddAssetAction +discriminatorValue: addAsset +description: | + Either `variantId` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. +example: !include ../../../examples/ProductTailoring/ProductTailoringAddAssetAction.json +properties: + variantId?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + staged?: + type: boolean + description: | + If `true`, only the staged `assets` are updated. If `false`, both the current and staged `assets` are updated. + default: true + asset: + type: AssetDraft + description: | + Value to append. + position?: + type: number + format: int32 + description: | + Position in `assets` where the Asset should be put. When specified, the value must be between `0` and the total number of Assets minus `1`. diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringAddExternalImageAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringAddExternalImageAction.raml new file mode 100644 index 0000000000..b431b74bd4 --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringAddExternalImageAction.raml @@ -0,0 +1,28 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringAddExternalImageAction +discriminatorValue: addExternalImage +description: | + Either `variantId` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. Produces the [ProductTailoringImageAdded](/projects/messages#product-tailoring-image-added) Message. +example: !include ../../../examples/ProductTailoring/ProductTailoringAddExternalImageAction.json +properties: + variantId?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + image: + type: Image + description: | + Value to add to `images`. + staged?: + type: boolean + description: | + If `true`, only the staged `images` is updated. If `false`, both the current and staged `images` is updated. + default: true diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringAddVariantAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringAddVariantAction.raml new file mode 100644 index 0000000000..7fc8960b2f --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringAddVariantAction.raml @@ -0,0 +1,33 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringAddVariantAction +discriminatorValue: addVariant +example: !include ../../../examples/ProductTailoring/ProductTailoringAddVariantAction.json +description: | + Either `id` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. + Produces the [ProductVariantTailoringAdded](ctp:api:type:ProductVariantTailoringAddedMessage) Message. +properties: + id?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + images?: + type: Image[] + description: | + Images for the Product Variant Tailoring. + assets?: + type: AssetDraft[] + description: | + Media assets for the Product Variant Tailoring. + staged?: + type: boolean + description: | + If `true` the new Product Variant Tailoring is only staged. If `false` the new Product Variant Tailoring is both current and staged. + default: true diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringChangeAssetNameAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringChangeAssetNameAction.raml new file mode 100644 index 0000000000..53ca158e92 --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringChangeAssetNameAction.raml @@ -0,0 +1,37 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringChangeAssetNameAction +discriminatorValue: changeAssetName +description: | + Either `variantId` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. + The Asset to update must be specified using either `assetId` or `assetKey`. +example: !include ../../../examples/ProductTailoring/ProductTailoringChangeAssetNameAction.json +properties: + variantId?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + staged?: + type: boolean + description: | + If `true`, only the staged Asset is updated. If `false`, both the current and staged Asset is updated. + default: true + assetId?: + type: string + description: | + The `id` of the Asset to update. + assetKey?: + type: string + description: | + The `key` of the Asset to update. + name: + type: LocalizedString + description: | + New value to set. Must not be empty. diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringChangeAssetOrderAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringChangeAssetOrderAction.raml new file mode 100644 index 0000000000..6364549359 --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringChangeAssetOrderAction.raml @@ -0,0 +1,28 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringChangeAssetOrderAction +discriminatorValue: changeAssetOrder +description: | + Either `variantId` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. +example: !include ../../../examples/ProductTailoring/ProductTailoringChangeAssetOrderAction.json +properties: + variantId?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + staged?: + type: boolean + description: | + If `true`, only the staged `assets` is updated. If `false`, both the current and staged `assets` are updated. + default: true + assetOrder: + type: string[] + description: | + All existing Asset `id`s of the ProductTailoringVariant in the desired new order. diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringMoveImageToPositionAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringMoveImageToPositionAction.raml new file mode 100644 index 0000000000..209163649e --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringMoveImageToPositionAction.raml @@ -0,0 +1,33 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringMoveImageToPositionAction +discriminatorValue: moveImageToPosition +description: | + Either `variantId` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. +example: !include ../../../examples/ProductTailoring/ProductTailoringMoveImageToPositionAction.json +properties: + variantId?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + imageUrl: + type: string + description: | + The URL of the image to update. + position: + type: number + format: int64 + description: | + Position in `images` where the image should be moved. Must be between `0` and the total number of images minus `1`. + staged?: + type: boolean + description: | + If `true`, only the staged `images` is updated. If `false`, both the current and staged `images` is updated. + default: true diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringPublishAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringPublishAction.raml index 1f54459883..c5abe258b7 100644 --- a/api-specs/api/types/product-tailoring/updates/ProductTailoringPublishAction.raml +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringPublishAction.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): ProductTailoring type: ProductTailoringUpdateAction -(beta): true displayName: ProductTailoringPublishAction discriminatorValue: publish example: !include ../../../examples/ProductTailoring/ProductTailoringPublishAction.json diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringRemoveAssetAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringRemoveAssetAction.raml new file mode 100644 index 0000000000..e4150a11c8 --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringRemoveAssetAction.raml @@ -0,0 +1,33 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringRemoveAssetAction +discriminatorValue: removeAsset +description: | + Either `variantId` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. + The Asset to remove must be specified using either `assetId` or `assetKey`. +example: !include ../../../examples/ProductTailoring/ProductTailoringRemoveAssetAction.json +properties: + variantId?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + staged?: + type: boolean + description: | + If `true`, only the staged Asset is removed. If `false`, both the current and staged Asset is removed. + default: true + assetId?: + type: string + description: | + The `id` of the Asset to remove. + assetKey?: + type: string + description: | + The `key` of the Asset to remove. diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringRemoveImageAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringRemoveImageAction.raml new file mode 100644 index 0000000000..e358202186 --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringRemoveImageAction.raml @@ -0,0 +1,28 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringRemoveImageAction +discriminatorValue: removeImage +description: | + Either `variantId` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. +example: !include ../../../examples/ProductTailoring/ProductTailoringRemoveImageAction.json +properties: + variantId?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + imageUrl: + type: string + description: | + The URL of the image to remove. + staged?: + type: boolean + description: | + If `true`, only the staged image is removed. If `false`, both the current and staged image is removed. + default: true diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringRemoveVariantAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringRemoveVariantAction.raml new file mode 100644 index 0000000000..5153d3dd4a --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringRemoveVariantAction.raml @@ -0,0 +1,25 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringRemoveVariantAction +discriminatorValue: removeVariant +description: | + Either `id` or `sku` is required. + Produces the [ProductVariantTailoringDeleted](ctp:api:type:ProductVariantTailoringRemovedMessage) Message. +example: !include ../../../examples/ProductTailoring/ProductTailoringRemoveVariantAction.json +properties: + id?: + type: number + format: int64 + description: | + The `id` of the ProductVariant to remove from the Tailoring. + sku?: + type: string + description: | + The `sku` of the ProductVariant to remove from the Tailoring. + staged?: + type: boolean + description: | + If `true`, only the staged Product Variant Tailoring is removed. If `false`, both the current and staged Product Variant Tailoring is removed. + default: true diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetCustomFieldAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetCustomFieldAction.raml new file mode 100644 index 0000000000..f97bff7e06 --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetCustomFieldAction.raml @@ -0,0 +1,43 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringSetAssetCustomFieldAction +discriminatorValue: setAssetCustomField +description: | + Either `variantId` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. + The [Asset](ctp:api:type:Asset) to update must be specified using either `assetId` or `assetKey`. +example: !include ../../../examples/ProductTailoring/ProductTailoringSetAssetCustomFieldAction.json +properties: + variantId?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + staged?: + type: boolean + description: | + If `true`, only the staged Asset is updated. If `false`, both the current and staged Asset is updated. + default: true + assetId?: + type: string + description: | + The `id` of the Asset to update. + assetKey?: + type: string + description: | + The `key` of the Asset to update. + name: + type: string + description: | + Name of the [Custom Field](/../api/projects/custom-fields). + value?: + type: CustomFieldValue + description: | + If `value` is absent or `null`, this field will be removed if it exists. + Removing a field that does not exist returns an [InvalidOperation](ctp:api:type:InvalidOperationError) error. + If `value` is provided, it is set for the field defined by `name`. diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetCustomTypeAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetCustomTypeAction.raml new file mode 100644 index 0000000000..c9e23bdcb6 --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetCustomTypeAction.raml @@ -0,0 +1,42 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringSetAssetCustomTypeAction +discriminatorValue: setAssetCustomType +description: | + Either `variantId` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. + The [Asset](ctp:api:type:Asset) to update must be specified using either `assetId` or `assetKey`. +example: !include ../../../examples/ProductTailoring/ProductTailoringSetAssetCustomTypeAction.json +properties: + variantId?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + staged?: + type: boolean + description: | + If `true`, only the staged Asset is updated. If `false`, both the current and staged Asset is updated. + default: true + assetId?: + type: string + description: | + The `id` of the Asset to update. + assetKey?: + type: string + description: | + The `key` of the Asset to update. + type?: + type: TypeResourceIdentifier + description: | + Defines the [Type](ctp:api:type:Type) that extends the Asset with [Custom Fields](/../api/projects/custom-fields). + If absent, any existing Type and Custom Fields are removed from the Asset. + fields?: + type: FieldContainer + description: | + Sets the [Custom Fields](/../api/projects/custom-fields) fields for the Asset. diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetDescriptionAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetDescriptionAction.raml new file mode 100644 index 0000000000..45c0fedcb9 --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetDescriptionAction.raml @@ -0,0 +1,37 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringSetAssetDescriptionAction +discriminatorValue: setAssetDescription +description: | + Either `variantId` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. + The [Asset](ctp:api:type:Asset) to update must be specified using either `assetId` or `assetKey`. +example: !include ../../../examples/ProductTailoring/ProductTailoringSetAssetDescriptionAction.json +properties: + variantId?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + staged?: + type: boolean + description: | + If `true`, only the staged Asset is updated. If `false`, both the current and staged Asset is updated. + default: true + assetId?: + type: string + description: | + The `id` of the Asset to update. + assetKey?: + type: string + description: | + The `key` of the Asset to update. + description?: + type: LocalizedString + description: | + Value to set. If empty, any existing value will be removed. diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetKeyAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetKeyAction.raml new file mode 100644 index 0000000000..14907aa91b --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetKeyAction.raml @@ -0,0 +1,35 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringSetAssetKeyAction +discriminatorValue: setAssetKey +description: | + Either `variantId` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. +example: !include ../../../examples/ProductTailoring/ProductTailoringSetAssetKeyAction.json +properties: + variantId?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + staged?: + type: boolean + description: | + If `true`, only the staged Asset is updated. If `false`, both the current and staged Asset is updated. + default: true + assetId: + type: string + description: | + The `id` of the Asset to update. + assetKey?: + type: string + pattern: ^[A-Za-z0-9_-]+$ + minLength: 2 + maxLength: 256 + description: | + Value to set. If empty, any existing value will be removed. diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetSourcesAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetSourcesAction.raml new file mode 100644 index 0000000000..780a951842 --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetSourcesAction.raml @@ -0,0 +1,38 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringSetAssetSourcesAction +discriminatorValue: setAssetSources +description: | + Either `variantId` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. + The [Asset](ctp:api:type:Asset) to update must be specified using either `assetId` or `assetKey`. +example: !include ../../../examples/ProductTailoring/ProductTailoringSetAssetSourcesAction.json +properties: + variantId?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + staged?: + type: boolean + description: | + If `true`, only the staged Asset is updated. If `false` both the current and staged Asset is updated. + default: true + assetId?: + type: string + description: | + The `id` of the Asset to update. + assetKey?: + type: string + description: | + The `key` of the Asset to update. + sources: + type: AssetSource[] + minItems: 1 + description: | + Value to set. diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetTagsAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetTagsAction.raml new file mode 100644 index 0000000000..d174bfe678 --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetAssetTagsAction.raml @@ -0,0 +1,37 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringSetAssetTagsAction +discriminatorValue: setAssetTags +description: | + Either `variantId` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. + The Asset to update must be specified using either `assetId` or `assetKey`. +example: !include ../../../examples/ProductTailoring/ProductTailoringSetAssetTagsAction.json +properties: + variantId?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + staged?: + type: boolean + description: | + If `true`, only the staged Asset is updated. If `false`, both the current and staged Asset is updated. + default: true + assetId?: + type: string + description: | + The `id` of the Asset to update. + assetKey?: + type: string + description: | + The `key` of the Asset to update. + tags?: + type: string[] + description: | + Keywords for categorizing and organizing Assets. diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetDescriptionAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetDescriptionAction.raml index d0d935dd65..f93e097a92 100644 --- a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetDescriptionAction.raml +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetDescriptionAction.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): ProductTailoring type: ProductTailoringUpdateAction -(beta): true displayName: ProductTailoringSetDescriptionAction discriminatorValue: setDescription example: !include ../../../examples/ProductTailoring/ProductTailoringSetDescriptionAction.json diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetExternalImagesAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetExternalImagesAction.raml new file mode 100644 index 0000000000..24d159db25 --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetExternalImagesAction.raml @@ -0,0 +1,29 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringSetExternalImagesAction +discriminatorValue: setImages +description: | + Either `variantId` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. Produces the [ProductTailoringImagesSet](/projects/messages#product-tailoring-images-set) Message. +example: !include ../../../examples/ProductTailoring/ProductTailoringSetExternalImagesAction.json +properties: + variantId?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + images: + type: array + items: Image + description: | + Value to set to `images`. + staged?: + type: boolean + description: | + If `true`, only the staged `images` is updated. If `false`, both the current and staged `images` is updated. + default: true diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetImageLabelAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetImageLabelAction.raml new file mode 100644 index 0000000000..a7bcb8ffe5 --- /dev/null +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetImageLabelAction.raml @@ -0,0 +1,32 @@ +#%RAML 1.0 DataType +(package): ProductTailoring +type: ProductTailoringUpdateAction +(beta): true +displayName: ProductTailoringSetImageLabelAction +discriminatorValue: setImageLabel +description: | + Either `variantId` or `sku` is required to reference a [ProductVariant](ctp:api:type:ProductVariant) that exists. +example: !include ../../../examples/ProductTailoring/ProductTailoringSetImageLabelAction.json +properties: + sku?: + type: string + description: | + The `sku` of the tailored ProductVariant to update. + variantId?: + type: number + format: int64 + description: | + The `id` of the tailored ProductVariant to update. + imageUrl: + type: string + description: | + The URL of the image to set the label. + label?: + type: string + description: | + Value to set. If empty, any existing value will be removed. + staged?: + type: boolean + description: | + If `true`, only the staged image is updated. If `false`, both the current and staged image is updated. + default: true diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaAttributesAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaAttributesAction.raml index df4844c23e..241ad53087 100644 --- a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaAttributesAction.raml +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaAttributesAction.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): ProductTailoring type: ProductTailoringUpdateAction -(beta): true displayName: ProductTailoringSetMetaAttributesAction discriminatorValue: setMetaAttributes example: !include ../../../examples/ProductTailoring/ProductTailoringSetMetaAttributesAction.json diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaDescriptionAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaDescriptionAction.raml index 0a5be2438b..5022b04a8e 100644 --- a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaDescriptionAction.raml +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaDescriptionAction.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): ProductTailoring type: ProductTailoringUpdateAction -(beta): true displayName: ProductTailoringSetMetaDescriptionAction discriminatorValue: setMetaDescription example: !include ../../../examples/ProductTailoring/ProductTailoringSetMetaDescriptionAction.json diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaKeywordsAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaKeywordsAction.raml index de8d489f7a..72b9de8bed 100644 --- a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaKeywordsAction.raml +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaKeywordsAction.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): ProductTailoring type: ProductTailoringUpdateAction -(beta): true displayName: ProductTailoringSetMetaKeywordsAction discriminatorValue: setMetaKeywords example: !include ../../../examples/ProductTailoring/ProductTailoringSetMetaKeywordsAction.json diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaTitleAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaTitleAction.raml index 74c3a3fe5a..b04a91230b 100644 --- a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaTitleAction.raml +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetMetaTitleAction.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): ProductTailoring type: ProductTailoringUpdateAction -(beta): true displayName: ProductTailoringSetMetaTitleAction discriminatorValue: setMetaTitle example: !include ../../../examples/ProductTailoring/ProductTailoringSetMetaTitleAction.json diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetNameAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetNameAction.raml index 4e27ba300d..4f83e2c2b3 100644 --- a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetNameAction.raml +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetNameAction.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): ProductTailoring type: ProductTailoringUpdateAction -(beta): true displayName: ProductTailoringSetNameAction discriminatorValue: setName example: !include ../../../examples/ProductTailoring/ProductTailoringSetNameAction.json diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetSlugAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetSlugAction.raml index fdcf89d010..98435d9945 100644 --- a/api-specs/api/types/product-tailoring/updates/ProductTailoringSetSlugAction.raml +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringSetSlugAction.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): ProductTailoring type: ProductTailoringUpdateAction -(beta): true displayName: ProductTailoringSetSlugAction discriminatorValue: setSlug example: !include ../../../examples/ProductTailoring/ProductTailoringSetSlugAction.json diff --git a/api-specs/api/types/product-tailoring/updates/ProductTailoringUnpublishAction.raml b/api-specs/api/types/product-tailoring/updates/ProductTailoringUnpublishAction.raml index 1ed574b8a8..75983ff007 100644 --- a/api-specs/api/types/product-tailoring/updates/ProductTailoringUnpublishAction.raml +++ b/api-specs/api/types/product-tailoring/updates/ProductTailoringUnpublishAction.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): ProductTailoring type: ProductTailoringUpdateAction -(beta): true displayName: ProductTailoringUnpublishAction discriminatorValue: unpublish example: !include ../../../examples/ProductTailoring/ProductTailoringUnpublishAction.json diff --git a/api-specs/api/types/product-type/AttributeNestedType.raml b/api-specs/api/types/product-type/AttributeNestedType.raml index 1f22442cea..2111350dcc 100644 --- a/api-specs/api/types/product-type/AttributeNestedType.raml +++ b/api-specs/api/types/product-type/AttributeNestedType.raml @@ -1,6 +1,7 @@ #%RAML 1.0 DataType (package): ProductType type: AttributeType +(expandable): true displayName: AttributeNestedType discriminatorValue: nested description: | diff --git a/api-specs/api/types/product/Attribute.raml b/api-specs/api/types/product/Attribute.raml index 3e9e4f375c..257256b62b 100644 --- a/api-specs/api/types/product/Attribute.raml +++ b/api-specs/api/types/product/Attribute.raml @@ -1,6 +1,7 @@ #%RAML 1.0 DataType (package): Product type: object +(expandable): true displayName: Attribute properties: name: @@ -10,6 +11,7 @@ properties: description: | Name of the Attribute. value: + (expandable): true # type: AttributeValue | AttributeValue[] type: any # type: diff --git a/api-specs/api/types/product/ProductData.raml b/api-specs/api/types/product/ProductData.raml index 05606dcd27..9a94fd5cdc 100644 --- a/api-specs/api/types/product/ProductData.raml +++ b/api-specs/api/types/product/ProductData.raml @@ -2,6 +2,7 @@ (package): Product displayName: ProductData type: object +(expandable): true description: | Contains all the data of a Product and its Product Variants. properties: diff --git a/api-specs/api/types/product/ProductPriceModeEnum.raml b/api-specs/api/types/product/ProductPriceModeEnum.raml index 4d1b9eb706..e67c224d2c 100644 --- a/api-specs/api/types/product/ProductPriceModeEnum.raml +++ b/api-specs/api/types/product/ProductPriceModeEnum.raml @@ -4,7 +4,8 @@ displayName: ProductPriceModeEnum type: string description: | - This mode determines the type of Prices used for [Product Price Selection](ctp:api:type:ProductPriceSelection) and for [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + This mode determines the type of Prices used for [price selection](/../api/pricing-and-discounts-overview#price-selection) by Line Items and Products. + For more information about the difference between the Prices, see [Pricing](/../api/pricing-and-discounts-overview). (enumDescriptions): Embedded: Composable Commerce uses the [Embedded Prices](ctp:api:type:Price) located inside the `prices` field in [ProductVariant](ctp:api:type:ProductVariant). Standalone: Composable Commerce uses [StandalonePrices](ctp:api:type:StandalonePrice), which are associated with the [ProductVariant](ctp:api:type:ProductVariant) through the `sku` field. diff --git a/api-specs/api/types/product/ProductVariant.raml b/api-specs/api/types/product/ProductVariant.raml index 938c3141d4..1789fc5ab7 100644 --- a/api-specs/api/types/product/ProductVariant.raml +++ b/api-specs/api/types/product/ProductVariant.raml @@ -2,6 +2,7 @@ (package): Product displayName: ProductVariant type: object +(expandable): true description: | A concrete sellable good for which inventory can be tracked. Product Variants are generally mapped to specific SKUs. properties: @@ -32,7 +33,7 @@ properties: price?: type: Price description: | - Only available when [Price selection](#price-selection) is used. + Only available when [price selection](/../api/pricing-and-discounts-overview#price-selection) is used. Cannot be used in a [Query Predicate](ctp:api:type:QueryPredicate). images?: type: Image[] @@ -57,10 +58,10 @@ properties: type: ScopedPrice description: | Only available in response to a [Product Projection Search](ctp:api:type:ProductProjectionSearch) request - with [price selection](ctp:api:type:ProductPriceSelection). + with [Product price selection](/../api/pricing-and-discounts-overview#product-price-selection). Can be used to sort, [filter](ctp:api:type:ProductProjectionSearchFilterScopedPrice), and facet. scopedPriceDiscounted?: type: boolean description: | Only available in response to a [Product Projection Search](ctp:api:type:ProductProjectionSearchFilterScopedPrice) request - with [price selection](ctp:api:type:ProductPriceSelection). + with [Product price selection](/../api/pricing-and-discounts-overview#product-price-selection). diff --git a/api-specs/api/types/product/ProductVariantAvailability.raml b/api-specs/api/types/product/ProductVariantAvailability.raml index bd21f8e678..04c6ebff08 100644 --- a/api-specs/api/types/product/ProductVariantAvailability.raml +++ b/api-specs/api/types/product/ProductVariantAvailability.raml @@ -9,7 +9,7 @@ properties: type: ProductVariantChannelAvailabilityMap description: | For each [InventoryEntry](ctp:api:type:InventoryEntry) with a supply Channel, an entry is added to `channels`. - isOnStock: + isOnStock?: type: boolean description: | Indicates whether a Product Variant is in stock. diff --git a/api-specs/api/types/product/updates/ProductSetPriceKeyAction.raml b/api-specs/api/types/product/updates/ProductSetPriceKeyAction.raml index 2375764839..3863cf37f3 100644 --- a/api-specs/api/types/product/updates/ProductSetPriceKeyAction.raml +++ b/api-specs/api/types/product/updates/ProductSetPriceKeyAction.raml @@ -5,7 +5,7 @@ displayName: ProductSetPriceKeyAction discriminatorValue: setPriceKey example: !include ../../../examples/Product/ProductSetPriceKeyAction.json description: | - Sets the key of an [Embedded Price](/projects/products#embedded-price). Produces the [ProductPriceKeySet](ctp:api:type:ProductPriceKeySetMessage) Message. + Sets the key of an [Embedded Price](ctp:api:type:Price). Produces the [ProductPriceKeySet](ctp:api:type:ProductPriceKeySetMessage) Message. properties: priceId: type: string @@ -14,7 +14,7 @@ properties: staged?: type: boolean description: | - If `true`, only the staged [Embedded Price](/projects/products#embedded-price) is updated. If `false`, both the current and staged Embedded Price are updated. + If `true`, only the staged [Embedded Price](ctp:api:type:Price) is updated. If `false`, both the current and staged Embedded Price are updated. default: true key?: type: string diff --git a/api-specs/api/types/product/updates/ProductUnpublishAction.raml b/api-specs/api/types/product/updates/ProductUnpublishAction.raml index 06e7c3f5d5..4d5c373694 100644 --- a/api-specs/api/types/product/updates/ProductUnpublishAction.raml +++ b/api-specs/api/types/product/updates/ProductUnpublishAction.raml @@ -7,4 +7,7 @@ example: !include ../../../examples/Product/ProductUnpublishAction.json description: | Removes the current [projection](/../api/projects/productProjections#current--staged) of the Product. The staged projection is unaffected. To retrieve unpublished Products, the `staged` parameter must be set to `false` when [querying](ctp:api:endpoint:/{projectKey}/product-projections:GET)/[searching](/projects/products-search#product-projection-search) Product Projections. Produces the [ProductUnpublished](ctp:api:type:ProductUnpublishedMessage) Message. - Unpublished Products cannot be added to a Cart. However, if a Cart contains Line Items for Products that were added before the Product was unpublished, the Cart is unaffected and can still be used to create an Order. To prevent this, in addition to unpublishing the Product you should remove the Prices from the Product using [Remove Price](ctp:api:type:ProductRemovePriceAction) for Embedded Prices or [Delete StandalonePrice](/projects/standalone-prices#delete-standaloneprice) for Standalone Prices. + When a Product is unpublished, any associated Line Items already present in a Cart remain unaffected and can still be ordered. To prevent this, do the following: + + - If the Product uses Embedded Prices, [remove the Embedded Prices](ctp:api:type:ProductRemovePriceAction) from the unpublished Product. + - If the Product uses Standalone Prices, [inactivate](ctp:api:type:StandalonePriceChangeActiveAction) or [delete](/projects/standalone-prices#delete-standaloneprice) the Standalone Prices. diff --git a/api-specs/api/types/project/CartClassificationType.raml b/api-specs/api/types/project/CartClassificationType.raml index e08bf2137a..a8a5c86996 100644 --- a/api-specs/api/types/project/CartClassificationType.raml +++ b/api-specs/api/types/project/CartClassificationType.raml @@ -5,7 +5,7 @@ type: ShippingRateInputType example: !include ../../examples/Project/ProjectShippingRateInputTypeCartClassification.json discriminatorValue: CartClassification description: | - Used when the ShippingRate maps to an abstract Cart categorization expressed by strings (for example, `Light`, `Medium`, or `Heavy`). + The [ShippingRate](ctp:api:type:ShippingRate) maps to an abstract Cart categorization expressed by strings (for example, `Light`, `Medium`, or `Heavy`). Only keys defined in the `values` array can be used to create a tier or to set a value of the `shippingRateInput` on the [Cart](ctp:api:type:Cart). Keys must be unique. properties: diff --git a/api-specs/api/types/project/CartScoreType.raml b/api-specs/api/types/project/CartScoreType.raml index 868ad70d3f..bb3bafff23 100644 --- a/api-specs/api/types/project/CartScoreType.raml +++ b/api-specs/api/types/project/CartScoreType.raml @@ -4,4 +4,4 @@ displayName: CartScoreType type: ShippingRateInputType discriminatorValue: CartScore description: | - Used when the ShippingRate maps to an abstract Cart categorization expressed by integers (such as shipping scores or weight ranges). + The [ShippingRate](ctp:api:type:ShippingRate) maps to an abstract [Cart](ctp:api:type:Cart) categorization expressed by integers (such as shipping scores or weight ranges). diff --git a/api-specs/api/types/project/CartValueType.raml b/api-specs/api/types/project/CartValueType.raml index 0e2f021741..a003660aa1 100644 --- a/api-specs/api/types/project/CartValueType.raml +++ b/api-specs/api/types/project/CartValueType.raml @@ -4,6 +4,6 @@ displayName: CartValueType type: ShippingRateInputType discriminatorValue: CartValue description: | - Used when the ShippingRate maps to the sum of [LineItem](ctp:api:type:LineItem) Prices. - The value of the Cart is used to select a tier. + The [ShippingRate](ctp:api:type:ShippingRate) maps to the value of the Cart and is used to select a tier. + The value of the [Cart](ctp:api:type:Cart) is the sum of all Line Item totals and Custom Line Item totals (via the `totalPrice` field) after any Product Discounts and Cart Discounts have been applied. If chosen, it is not possible to set a value for the `shippingRateInput` on the [Cart](ctp:api:type:Cart). diff --git a/api-specs/api/types/project/CustomerSearchStatus.raml b/api-specs/api/types/project/CustomerSearchStatus.raml new file mode 100644 index 0000000000..a0260abecf --- /dev/null +++ b/api-specs/api/types/project/CustomerSearchStatus.raml @@ -0,0 +1,14 @@ +#%RAML 1.0 DataType +(package): Project +type: string +(beta): true +displayName: CustomerSearchStatus +description: | + Specifies the status of the [Customer Search](/../api/projects/customer-search) index. + You can change the status using the [Change Customer Search Status](ctp:api:type:ProjectChangeCustomerSearchStatusAction) update action. +(enumDescriptions): + Activated: indicates that the [Customer Search](/../api/projects/customer-search#search-customers) endpoint is fully operational. + Deactivated: indicates that the Customer Search enpoint is currently not active. +enum: + - Activated + - Deactivated diff --git a/api-specs/api/types/project/updates/ProjectChangeCustomerSearchStatusAction.raml b/api-specs/api/types/project/updates/ProjectChangeCustomerSearchStatusAction.raml new file mode 100644 index 0000000000..e1ee2d2086 --- /dev/null +++ b/api-specs/api/types/project/updates/ProjectChangeCustomerSearchStatusAction.raml @@ -0,0 +1,11 @@ +#%RAML 1.0 DataType +(package): Project +type: ProjectUpdateAction +(beta): true +displayName: ProjectChangeCustomerSearchStatusAction +discriminatorValue: changeCustomerSearchStatus +example: !include ../../../examples/Project/ProjectChangeCustomerSearchStatusAction.json +properties: + status: + type: CustomerSearchStatus + description: Activates or deactivates the [Customer Search](/../api/projects/customer-search) feature. Activation will trigger building a search index for the Customers in the Project. diff --git a/api-specs/api/types/search/SearchAndExpression.raml b/api-specs/api/types/search/SearchAndExpression.raml index 91e0841ddf..4c2acb9fd2 100644 --- a/api-specs/api/types/search/SearchAndExpression.raml +++ b/api-specs/api/types/search/SearchAndExpression.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchCompoundExpression -(beta): true displayName: SearchAndExpression properties: and: diff --git a/api-specs/api/types/search/SearchAnyValue.raml b/api-specs/api/types/search/SearchAnyValue.raml index 7cdfb614cc..718b68061b 100644 --- a/api-specs/api/types/search/SearchAnyValue.raml +++ b/api-specs/api/types/search/SearchAnyValue.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpressionValue -(beta): true displayName: SearchAnyValue properties: value: diff --git a/api-specs/api/types/search/SearchCompoundExpression.raml b/api-specs/api/types/search/SearchCompoundExpression.raml index 643a2dbd51..41338e25c9 100644 --- a/api-specs/api/types/search/SearchCompoundExpression.raml +++ b/api-specs/api/types/search/SearchCompoundExpression.raml @@ -1,6 +1,5 @@ #%RAML 1.0 DataType (package): Search type: SearchQuery -(beta): true displayName: SearchCompoundExpression (ignoreValidators): [PolymorphicSubtypesRule] diff --git a/api-specs/api/types/search/SearchDateRangeExpression.raml b/api-specs/api/types/search/SearchDateRangeExpression.raml index bd5797c24a..66f31cd681 100644 --- a/api-specs/api/types/search/SearchDateRangeExpression.raml +++ b/api-specs/api/types/search/SearchDateRangeExpression.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpression -(beta): true displayName: SearchDateRangeExpression properties: range: diff --git a/api-specs/api/types/search/SearchDateRangeValue.raml b/api-specs/api/types/search/SearchDateRangeValue.raml index 934f3b87d8..2a9b21c94a 100644 --- a/api-specs/api/types/search/SearchDateRangeValue.raml +++ b/api-specs/api/types/search/SearchDateRangeValue.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpressionValue -(beta): true displayName: SearchDateRangeValue properties: gte?: diff --git a/api-specs/api/types/search/SearchDateTimeRangeExpression.raml b/api-specs/api/types/search/SearchDateTimeRangeExpression.raml index d4bd97ecd6..536f80b3e9 100644 --- a/api-specs/api/types/search/SearchDateTimeRangeExpression.raml +++ b/api-specs/api/types/search/SearchDateTimeRangeExpression.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpression -(beta): true displayName: SearchDateTimeRangeExpression properties: range: diff --git a/api-specs/api/types/search/SearchDateTimeRangeValue.raml b/api-specs/api/types/search/SearchDateTimeRangeValue.raml index 20b5e0dee8..9e2a98680e 100644 --- a/api-specs/api/types/search/SearchDateTimeRangeValue.raml +++ b/api-specs/api/types/search/SearchDateTimeRangeValue.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpressionValue -(beta): true displayName: SearchDateTimeRangeValue properties: gte?: diff --git a/api-specs/api/types/search/SearchExactExpression.raml b/api-specs/api/types/search/SearchExactExpression.raml index 5149efa7f3..2740075c95 100644 --- a/api-specs/api/types/search/SearchExactExpression.raml +++ b/api-specs/api/types/search/SearchExactExpression.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpression -(beta): true displayName: SearchExactExpression properties: exact: diff --git a/api-specs/api/types/search/SearchExistsExpression.raml b/api-specs/api/types/search/SearchExistsExpression.raml index 89c7f2ef51..d99799d4a9 100644 --- a/api-specs/api/types/search/SearchExistsExpression.raml +++ b/api-specs/api/types/search/SearchExistsExpression.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpression -(beta): true displayName: SearchExistsExpression properties: exists: diff --git a/api-specs/api/types/search/SearchExistsValue.raml b/api-specs/api/types/search/SearchExistsValue.raml index 0071d2216b..cd9e82efdd 100644 --- a/api-specs/api/types/search/SearchExistsValue.raml +++ b/api-specs/api/types/search/SearchExistsValue.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpressionValue -(beta): true displayName: SearchExistsValue properties: language?: diff --git a/api-specs/api/types/search/SearchFieldType.raml b/api-specs/api/types/search/SearchFieldType.raml index 3055f32145..2972178444 100644 --- a/api-specs/api/types/search/SearchFieldType.raml +++ b/api-specs/api/types/search/SearchFieldType.raml @@ -3,7 +3,6 @@ displayName: SearchFieldType description: Possible values for the `fieldType` property on [query expressions](/../api/search-query-language#query-expressions) indicating the data type of the `field`. type: string -(beta): true enum: - boolean - text diff --git a/api-specs/api/types/search/SearchFilterExpression.raml b/api-specs/api/types/search/SearchFilterExpression.raml index 5fa03289a0..40c947b84b 100644 --- a/api-specs/api/types/search/SearchFilterExpression.raml +++ b/api-specs/api/types/search/SearchFilterExpression.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchCompoundExpression -(beta): true displayName: SearchFilterExpression properties: filter: diff --git a/api-specs/api/types/search/SearchFullTextExpression.raml b/api-specs/api/types/search/SearchFullTextExpression.raml index f3bad3360c..5279f4f499 100644 --- a/api-specs/api/types/search/SearchFullTextExpression.raml +++ b/api-specs/api/types/search/SearchFullTextExpression.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpression -(beta): true displayName: SearchFullTextExpression properties: fullText: diff --git a/api-specs/api/types/search/SearchFullTextPrefixExpression.raml b/api-specs/api/types/search/SearchFullTextPrefixExpression.raml index c6ba2a60f3..cfb46abeb4 100644 --- a/api-specs/api/types/search/SearchFullTextPrefixExpression.raml +++ b/api-specs/api/types/search/SearchFullTextPrefixExpression.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpression -(beta): true displayName: SearchFullTextPrefixExpression properties: fullTextPrefix: diff --git a/api-specs/api/types/search/SearchFullTextPrefixValue.raml b/api-specs/api/types/search/SearchFullTextPrefixValue.raml index 9abd7905df..ea30e47be3 100644 --- a/api-specs/api/types/search/SearchFullTextPrefixValue.raml +++ b/api-specs/api/types/search/SearchFullTextPrefixValue.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpressionValue -(beta): true displayName: SearchFullPrefixTextValue properties: value: diff --git a/api-specs/api/types/search/SearchFullTextValue.raml b/api-specs/api/types/search/SearchFullTextValue.raml index 2be55f7c0b..13c19281a9 100644 --- a/api-specs/api/types/search/SearchFullTextValue.raml +++ b/api-specs/api/types/search/SearchFullTextValue.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpressionValue -(beta): true displayName: SearchFullTextValue properties: value: diff --git a/api-specs/api/types/search/SearchLongRangeExpression.raml b/api-specs/api/types/search/SearchLongRangeExpression.raml index f52d994e77..6734c3827a 100644 --- a/api-specs/api/types/search/SearchLongRangeExpression.raml +++ b/api-specs/api/types/search/SearchLongRangeExpression.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpression -(beta): true displayName: SearchLongRangeExpression properties: range: diff --git a/api-specs/api/types/search/SearchLongRangeValue.raml b/api-specs/api/types/search/SearchLongRangeValue.raml index d8ca375163..d65c2b1196 100644 --- a/api-specs/api/types/search/SearchLongRangeValue.raml +++ b/api-specs/api/types/search/SearchLongRangeValue.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpressionValue -(beta): true displayName: SearchLongRangeValue properties: gte?: diff --git a/api-specs/api/types/search/SearchMatchType.raml b/api-specs/api/types/search/SearchMatchType.raml index 27b539b690..29631b4cce 100644 --- a/api-specs/api/types/search/SearchMatchType.raml +++ b/api-specs/api/types/search/SearchMatchType.raml @@ -2,7 +2,6 @@ (package): Search displayName: SearchMatchType type: string -(beta): true enum: - any - all diff --git a/api-specs/api/types/search/SearchMatchingVariant.raml b/api-specs/api/types/search/SearchMatchingVariant.raml index 26aea76c73..0f5afb39c9 100644 --- a/api-specs/api/types/search/SearchMatchingVariant.raml +++ b/api-specs/api/types/search/SearchMatchingVariant.raml @@ -2,7 +2,6 @@ (package): Search displayName: SearchMatchingVariant type: object -(beta): true properties: id: type: number diff --git a/api-specs/api/types/search/SearchNotExpression.raml b/api-specs/api/types/search/SearchNotExpression.raml index d39738d628..04fde88540 100644 --- a/api-specs/api/types/search/SearchNotExpression.raml +++ b/api-specs/api/types/search/SearchNotExpression.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchCompoundExpression -(beta): true displayName: SearchNotExpression properties: not: diff --git a/api-specs/api/types/search/SearchNumberRangeExpression.raml b/api-specs/api/types/search/SearchNumberRangeExpression.raml index 18f7082178..1f3821b3ea 100644 --- a/api-specs/api/types/search/SearchNumberRangeExpression.raml +++ b/api-specs/api/types/search/SearchNumberRangeExpression.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpression -(beta): true displayName: SearchNumberRangeExpression properties: range: diff --git a/api-specs/api/types/search/SearchNumberRangeValue.raml b/api-specs/api/types/search/SearchNumberRangeValue.raml index 5bbcdbb839..bb33d993be 100644 --- a/api-specs/api/types/search/SearchNumberRangeValue.raml +++ b/api-specs/api/types/search/SearchNumberRangeValue.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpressionValue -(beta): true displayName: SearchNumberRangeValue properties: gte?: diff --git a/api-specs/api/types/search/SearchOrExpression.raml b/api-specs/api/types/search/SearchOrExpression.raml index 6fe39b43a2..f930eb3e61 100644 --- a/api-specs/api/types/search/SearchOrExpression.raml +++ b/api-specs/api/types/search/SearchOrExpression.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchCompoundExpression -(beta): true displayName: SearchOrExpression properties: or: diff --git a/api-specs/api/types/search/SearchPrefixExpression.raml b/api-specs/api/types/search/SearchPrefixExpression.raml index 85a5c58d6a..450e46cf8c 100644 --- a/api-specs/api/types/search/SearchPrefixExpression.raml +++ b/api-specs/api/types/search/SearchPrefixExpression.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpression -(beta): true displayName: SearchPrefixExpression properties: prefix: diff --git a/api-specs/api/types/search/SearchQuery.raml b/api-specs/api/types/search/SearchQuery.raml index 41c39166ec..585184bb8d 100644 --- a/api-specs/api/types/search/SearchQuery.raml +++ b/api-specs/api/types/search/SearchQuery.raml @@ -1,6 +1,5 @@ #%RAML 1.0 DataType (package): Search type: object -(beta): true displayName: SearchQuery (ignoreValidators): [PolymorphicSubtypesRule] diff --git a/api-specs/api/types/search/SearchQueryExpression.raml b/api-specs/api/types/search/SearchQueryExpression.raml index 5b8018d57b..a21a788068 100644 --- a/api-specs/api/types/search/SearchQueryExpression.raml +++ b/api-specs/api/types/search/SearchQueryExpression.raml @@ -1,6 +1,5 @@ #%RAML 1.0 DataType (package): Search type: SearchQuery -(beta): true displayName: SearchQueryExpression (ignoreValidators): [PolymorphicSubtypesRule] diff --git a/api-specs/api/types/search/SearchQueryExpressionValue.raml b/api-specs/api/types/search/SearchQueryExpressionValue.raml index fff35d97c1..d5e159ad86 100644 --- a/api-specs/api/types/search/SearchQueryExpressionValue.raml +++ b/api-specs/api/types/search/SearchQueryExpressionValue.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: object -(beta): true displayName: SearchQueryExpressionValue (ignoreValidators): [PolymorphicSubtypesRule] properties: diff --git a/api-specs/api/types/search/SearchSortMode.raml b/api-specs/api/types/search/SearchSortMode.raml index 19a5cc7001..00fd89da6b 100644 --- a/api-specs/api/types/search/SearchSortMode.raml +++ b/api-specs/api/types/search/SearchSortMode.raml @@ -2,7 +2,6 @@ (package): Search displayName: SearchSortMode type: string -(beta): true description: | For set-type fields, only a single value of the set is taken into account for sorting. The sort mode determines whether the minimum or maximum value, or a calculated statistical value should be used as sorting value. diff --git a/api-specs/api/types/search/SearchSortOrder.raml b/api-specs/api/types/search/SearchSortOrder.raml index 91253cfda0..56a422a3c2 100644 --- a/api-specs/api/types/search/SearchSortOrder.raml +++ b/api-specs/api/types/search/SearchSortOrder.raml @@ -2,7 +2,6 @@ (package): Search displayName: SearchSortOrder type: string -(beta): true enum: - asc - desc diff --git a/api-specs/api/types/search/SearchSorting.raml b/api-specs/api/types/search/SearchSorting.raml index bb747f7034..ef22260bd3 100644 --- a/api-specs/api/types/search/SearchSorting.raml +++ b/api-specs/api/types/search/SearchSorting.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: object -(beta): true displayName: SearchSorting description: | Sorting parameters provided with a Search request. diff --git a/api-specs/api/types/search/SearchTimeRangeExpression.raml b/api-specs/api/types/search/SearchTimeRangeExpression.raml index 4cda57fa86..61d412c7bf 100644 --- a/api-specs/api/types/search/SearchTimeRangeExpression.raml +++ b/api-specs/api/types/search/SearchTimeRangeExpression.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpression -(beta): true displayName: SearchTimeRangeExpression properties: range: diff --git a/api-specs/api/types/search/SearchTimeRangeValue.raml b/api-specs/api/types/search/SearchTimeRangeValue.raml index 30663f3bcb..f16d26b57a 100644 --- a/api-specs/api/types/search/SearchTimeRangeValue.raml +++ b/api-specs/api/types/search/SearchTimeRangeValue.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpressionValue -(beta): true displayName: SearchTimeRangeValue properties: gte?: diff --git a/api-specs/api/types/search/SearchWildCardExpression.raml b/api-specs/api/types/search/SearchWildCardExpression.raml index 19242ab271..4061bf0307 100644 --- a/api-specs/api/types/search/SearchWildCardExpression.raml +++ b/api-specs/api/types/search/SearchWildCardExpression.raml @@ -1,7 +1,6 @@ #%RAML 1.0 DataType (package): Search type: SearchQueryExpression -(beta): true displayName: SearchWildCardExpression properties: wildcard: diff --git a/api-specs/api/types/shipping-method/CartClassificationTier.raml b/api-specs/api/types/shipping-method/CartClassificationTier.raml index 7219792db2..6893325b72 100644 --- a/api-specs/api/types/shipping-method/CartClassificationTier.raml +++ b/api-specs/api/types/shipping-method/CartClassificationTier.raml @@ -3,7 +3,7 @@ displayName: CartClassificationTier type: ShippingRatePriceTier description: | - Used when the ShippingRate maps to an abstract Cart categorization expressed by strings (for example, `Light`, `Medium`, or `Heavy`). + The [ShippingRate](ctp:api:type:ShippingRate) maps to an abstract Cart categorization expressed by strings (for example, `Light`, `Medium`, or `Heavy`). example: !include ../../examples/ShippingMethod/CartClassificationTier.json discriminatorValue: CartClassification properties: diff --git a/api-specs/api/types/shipping-method/CartScoreTier.raml b/api-specs/api/types/shipping-method/CartScoreTier.raml index 76573c0cd1..4182905033 100644 --- a/api-specs/api/types/shipping-method/CartScoreTier.raml +++ b/api-specs/api/types/shipping-method/CartScoreTier.raml @@ -3,7 +3,7 @@ displayName: CartScoreTier type: ShippingRatePriceTier description: | - Used when the ShippingRate maps to an abstract Cart categorization expressed by integers (such as shipping scores or weight ranges). + The [ShippingRate](ctp:api:type:ShippingRate) maps to an abstract Cart categorization expressed by integers (such as shipping scores or weight ranges). Either `price` or `priceFunction` is required. examples: price: !include ../../examples/ShippingMethod/CartScoreTierPrice.json diff --git a/api-specs/api/types/shipping-method/CartValueTier.raml b/api-specs/api/types/shipping-method/CartValueTier.raml index 47edca6456..11bc7c7a95 100644 --- a/api-specs/api/types/shipping-method/CartValueTier.raml +++ b/api-specs/api/types/shipping-method/CartValueTier.raml @@ -3,8 +3,9 @@ displayName: CartValueTier type: ShippingRatePriceTier description: | - Used when the ShippingRate maps to the sum of [LineItem](ctp:api:type:LineItem) Prices. - The value of the Cart is used to select a tier. + + The [ShippingRate](ctp:api:type:ShippingRate) maps to the value of the Cart and is used to select a tier. + The value of the [Cart](ctp:api:type:Cart) is the sum of all Line Item totals and Custom Line Item totals (via the `totalPrice` field) after any Product Discounts and Cart Discounts have been applied. If chosen, it is not possible to set a value for the `shippingRateInput` on the [Cart](ctp:api:type:Cart). Tiers contain the `centAmount` (a value of `100` in the currency `USD` corresponds to `$ 1.00`), and start at `1`.' example: !include ../../examples/ShippingMethod/CartValueTier.json diff --git a/api-specs/api/types/shipping-method/ShippingRate.raml b/api-specs/api/types/shipping-method/ShippingRate.raml index dfa4c8b9ad..ba0b7d45ee 100644 --- a/api-specs/api/types/shipping-method/ShippingRate.raml +++ b/api-specs/api/types/shipping-method/ShippingRate.raml @@ -4,10 +4,10 @@ displayName: ShippingRate type: object properties: price: - type: TypedMoney + type: CentPrecisionMoney description: Currency amount of the ShippingRate. freeAbove?: - type: TypedMoney + type: CentPrecisionMoney description: |- [Free shipping](/../api/shipping-delivery-overview#free-shipping) is applied if the sum of the (Custom) Line Item Prices reaches the specified value. isMatching?: diff --git a/api-specs/api/types/shipping-method/ZoneRate.raml b/api-specs/api/types/shipping-method/ZoneRate.raml index d08c2eff50..84cddb8612 100644 --- a/api-specs/api/types/shipping-method/ZoneRate.raml +++ b/api-specs/api/types/shipping-method/ZoneRate.raml @@ -4,6 +4,7 @@ displayName: ZoneRate description: | Defines shipping rates in different currencies for a specific [Zone](ctp:api:type:Zone). type: object +(expandable): true properties: zone: type: ZoneReference diff --git a/api-specs/api/types/shopping-list/ShoppingListLineItem.raml b/api-specs/api/types/shopping-list/ShoppingListLineItem.raml index b5d0b846f2..2c76b8187a 100644 --- a/api-specs/api/types/shopping-list/ShoppingListLineItem.raml +++ b/api-specs/api/types/shopping-list/ShoppingListLineItem.raml @@ -1,6 +1,7 @@ #%RAML 1.0 DataType (package): ShoppingList type: object +(expandable): true displayName: ShoppingListLineItem example: !include ../../examples/ShoppingList/ShoppingListLineItem.json description: | diff --git a/api-specs/api/types/shopping-list/TextLineItem.raml b/api-specs/api/types/shopping-list/TextLineItem.raml index bd9ea3c88f..eee4ff9859 100644 --- a/api-specs/api/types/shopping-list/TextLineItem.raml +++ b/api-specs/api/types/shopping-list/TextLineItem.raml @@ -1,6 +1,7 @@ #%RAML 1.0 DataType (package): ShoppingList type: object +(expandable): true displayName: TextLineItem example: !include ../../examples/ShoppingList/TextLineItem.json description: | diff --git a/api-specs/api/types/staged-quote/StagedQuote.raml b/api-specs/api/types/staged-quote/StagedQuote.raml index 09cc999d4b..816c4092e3 100644 --- a/api-specs/api/types/staged-quote/StagedQuote.raml +++ b/api-specs/api/types/staged-quote/StagedQuote.raml @@ -74,3 +74,7 @@ properties: type: BusinessUnitKeyReference description: | The [BusinessUnit](ctp:api:type:BusinessUnit) for the Staged Quote. + store?: + type: StoreKeyReference + description: | + The Store to which the [Buyer](/../api/quotes-overview#buyer) belongs. diff --git a/api-specs/api/types/standalone-price/StandalonePrice.raml b/api-specs/api/types/standalone-price/StandalonePrice.raml index 5e3c255d48..5c6d2d9061 100644 --- a/api-specs/api/types/standalone-price/StandalonePrice.raml +++ b/api-specs/api/types/standalone-price/StandalonePrice.raml @@ -76,7 +76,7 @@ properties: discounted?: type: DiscountedPrice description: | - Set if a matching [ProductDiscount](ctp:api:type:ProductDiscount) exists. If set, the API uses the `discounted` value for the [LineItem Price selection](ctp:api:type:LineItemPriceSelection). + Set if a matching [ProductDiscount](ctp:api:type:ProductDiscount) exists. If set, the API uses the `discounted` value for the [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection). When a [relative discount](/../api/projects/productDiscounts#productdiscountvaluerelative) is applied and the fraction part of the `discounted` price is 0.5, the discounted price is rounded in favor of the customer with the [half down rounding](https://en.wikipedia.org/wiki/Rounding#Round_half_down). custom?: type: CustomFields @@ -90,5 +90,5 @@ properties: type: boolean default: true description: | - If set to `true`, the StandalonePrice is considered during [price selection](ctp:api:type:ProductPriceSelection). - If set to `false`, the StandalonePrice is not considered during [price selection](ctp:api:type:ProductPriceSelection). + If set to `true`, the StandalonePrice is considered during [Product price selection](/../api/pricing-and-discounts-overview#product-price-selection). + If set to `false`, the StandalonePrice is not considered during [Product price selection](/../api/pricing-and-discounts-overview#product-price-selection) and any associated Line Items in a Cart cannot be ordered. diff --git a/api-specs/api/types/standalone-price/StandalonePriceDraft.raml b/api-specs/api/types/standalone-price/StandalonePriceDraft.raml index d97a592b9e..8d288c133a 100644 --- a/api-specs/api/types/standalone-price/StandalonePriceDraft.raml +++ b/api-specs/api/types/standalone-price/StandalonePriceDraft.raml @@ -2,10 +2,6 @@ (package): StandalonePrice displayName: StandalonePriceDraft type: object -description: |- - Standalone Prices are defined with a scope consisting of `currency` and optionally `country`, `customerGroup`, and `channel` and/or a validity period (`validFrom` and/or `validTo`). For more information see [price selection](/../api/projects/products#price-selection). - - Creating a Standalone Price for an SKU which has a Standalone Price with exactly the same price scope, or with overlapping validity periods within the same price scope returns the [DuplicateStandalonePriceScope](ctp:api:type:DuplicateStandalonePriceScopeError) and [OverlappingStandalonePriceValidity](ctp:api:type:OverlappingStandalonePriceValidityError) errors, respectively. A Price without validity period does not conflict with a Price defined for a time period. properties: key?: type: string @@ -65,4 +61,4 @@ properties: type: boolean default: true description: | - Set to `false`, if the StandalonePrice should not be considered during [price selection](ctp:api:type:ProductPriceSelection). + Set to `false`, if the StandalonePrice should not be considered during [Product price selection](/../api/pricing-and-discounts-overview#product-price-selection). diff --git a/api-specs/api/types/standalone-price/StandalonePricePagedQueryResponse.raml b/api-specs/api/types/standalone-price/StandalonePricePagedQueryResponse.raml index 803f186277..8d130faa15 100644 --- a/api-specs/api/types/standalone-price/StandalonePricePagedQueryResponse.raml +++ b/api-specs/api/types/standalone-price/StandalonePricePagedQueryResponse.raml @@ -2,6 +2,8 @@ (package): StandalonePrice displayName: StandalonePricePagedQueryResponse type: object +description: | + [PagedQueryResult](/general-concepts#pagedqueryresult) with `results` containing an array of [StandalonePrice](ctp:api:type:StandalonePrice). properties: limit: type: number diff --git a/api-specs/api/types/store/ProductSelectionSetting.raml b/api-specs/api/types/store/ProductSelectionSetting.raml index 47b079a207..705fb579e5 100644 --- a/api-specs/api/types/store/ProductSelectionSetting.raml +++ b/api-specs/api/types/store/ProductSelectionSetting.raml @@ -1,6 +1,7 @@ #%RAML 1.0 DataType (package): Store type: object +(expandable): true displayName: ProductSelectionSetting properties: productSelection: diff --git a/api-specs/api/types/store/StoreKeyReference.raml b/api-specs/api/types/store/StoreKeyReference.raml index 905e3ffd04..ae5f57fb62 100644 --- a/api-specs/api/types/store/StoreKeyReference.raml +++ b/api-specs/api/types/store/StoreKeyReference.raml @@ -4,7 +4,7 @@ type: KeyReference displayName: StoreKeyReference discriminatorValue: store description: | - [Reference](ctp:api:type:Reference) to a [Store](ctp:api:type:Store) by its key. + [KeyReference](ctp:api:type:KeyReference) to a [Store](ctp:api:type:Store). properties: key: type: string diff --git a/api-specs/api/types/subscription/ChangeSubscriptionResourceTypeId.raml b/api-specs/api/types/subscription/ChangeSubscriptionResourceTypeId.raml index a5f5d74696..5ff7c18809 100644 --- a/api-specs/api/types/subscription/ChangeSubscriptionResourceTypeId.raml +++ b/api-specs/api/types/subscription/ChangeSubscriptionResourceTypeId.raml @@ -8,6 +8,7 @@ enum: - approval-flow - approval-rule - associate-role + - attribute-group - business-unit - cart - cart-discount @@ -26,8 +27,8 @@ enum: - payment - product - product-discount - - product-price - product-selection + - product-tailoring - product-type - quote - quote-request @@ -49,6 +50,8 @@ enum: Changes related to [ApprovalRules](ctp:api:type:ApprovalRule). associate-role: | Changes related to [AssociateRoles](ctp:api:type:AssociateRole). + attribute-group: | + Changes related to [AttributeGroups](ctp:api:type:AttributeGroup). business-unit: | Changes to [BusinessUnits](ctp:api:type:BusinessUnit). cart: | @@ -85,10 +88,10 @@ enum: Changes to [Products](ctp:api:type:Product). product-discount: | Changes to [ProductDiscount](ctp:api:type:ProductDiscount). - product-price: | - Changes to [EmbeddedPrices](ctp:api:type:Price). product-selection: | Changes to [ProductSelections](ctp:api:type:ProductSelection). + product-tailoring: | + Changes to [ProductTailorings](ctp:api:type:ProductTailoring). product-type: | Changes to [ProductTypes](ctp:api:type:ProductType). quote: | diff --git a/api-specs/api/types/subscription/SubscriptionHealthStatus.raml b/api-specs/api/types/subscription/SubscriptionHealthStatus.raml index 6f27951ee0..eb2ca0462c 100644 --- a/api-specs/api/types/subscription/SubscriptionHealthStatus.raml +++ b/api-specs/api/types/subscription/SubscriptionHealthStatus.raml @@ -9,7 +9,7 @@ type: string ConfigurationError: Messages cannot be delivered with the current configuration. Common causes are deleting the Destination queue, deleting access credentials, or removing the necessary permissions. The configuration can be fixed by re-creating the configuration on the Destination side, or by setting a new configuration with the [Change Destination](/../api/projects/subscriptions#change-destination) update action. If the configuration is fixed, undelivered messages will be delivered and the `status` will change to [Healthy](ctp:api:type:SubscriptionHealthStatus). `ConfigurationError` is automatically turned into `ConfigurationErrorDeliveryStopped` after some time. For more information, see [Delivery Guarantees](#delivery-guarantees). ConfigurationErrorDeliveryStopped: Does not deliver messages with the current configuration and the delivery of the messages is no longer attempted. If the configuration is fixed, undelivered messages are not retained and will not be delivered. The `status` will change to [Healthy](ctp:api:type:SubscriptionHealthStatus) as soon as new messages can be delivered. TemporaryError: Does not deliver messages temporarily due to reasons other than a configuration error. For example, the Destination has a temporary outage. - ManuallySuspended: Does not deliver messages with the current configuration and the delivery of the messages is no longer attempted. Undelivered messages are not retained and will not be delivered. The `status` will not automatically change to [Healthy](ctp:api:type:SubscriptionHealthStatus). To return your subscriptions to a [Healthy](ctp:api:type:SubscriptionHealthStatus) status, please contact our [support team](https://commercetools.atlassian.net/servicedesk/customer/portal/22). + ManuallySuspended: Does not deliver messages with the current configuration and the delivery of the messages is no longer attempted. Undelivered messages are not retained and will not be delivered. The `status` will not automatically change to [Healthy](ctp:api:type:SubscriptionHealthStatus). To return your subscriptions to a [Healthy](ctp:api:type:SubscriptionHealthStatus) status, contact the [Composable Commerce support team](https://support.commercetools.com/). enum: - Healthy diff --git a/api-specs/api/types/tax-category/TaxRate.raml b/api-specs/api/types/tax-category/TaxRate.raml index 58835b7dd3..e194d7169a 100644 --- a/api-specs/api/types/tax-category/TaxRate.raml +++ b/api-specs/api/types/tax-category/TaxRate.raml @@ -41,4 +41,5 @@ properties: subRates?: type: SubRate[] description: | - Used to calculate the [taxPortions](/../api/projects/carts#taxedprice) field in a Cart or Order. It is useful if the total tax of a country (such as the US) is a combination of multiple taxes (such as state and local taxes). The total of all subrates equals the TaxRate `amount`. + Used when the total tax is a combination of multiple taxes (for example, local, state/provincial, and/or federal taxes). The total of all subrates must equal the TaxRate `amount`. + These subrates are used to calculate the `taxPortions` field of a [Cart](ctp:api:type:Cart) or [Order](ctp:api:type:Order) and the `taxedPrice` field of [LineItems](ctp:api:type:LineItem), [CustomLineItems](ctp:api:type:CustomLineItem), and [ShippingInfos](ctp:api:type:ShippingInfo). diff --git a/api-specs/api/types/tax-category/TaxRateDraft.raml b/api-specs/api/types/tax-category/TaxRateDraft.raml index 5aa1f8edc4..fffb525b34 100644 --- a/api-specs/api/types/tax-category/TaxRateDraft.raml +++ b/api-specs/api/types/tax-category/TaxRateDraft.raml @@ -29,7 +29,9 @@ properties: subRates?: type: SubRate[] description: | - Used to calculate the `taxPortions` field in a [Cart or Order](/../api/projects/carts#taxedprice) or [(Custom) Line Items](/../api/projects/carts#taxeditemprice). It is useful if the total tax of a country (such as the US) is a combination of multiple taxes (such as state and local taxes). The total of all subrates must equal the TaxRate `amount`. + Used when the total tax is a combination of multiple taxes (for example, local, state/provincial, and/or federal taxes). The total of all subrates must equal the TaxRate `amount`. + These subrates are used to calculate the `taxPortions` field of a [Cart](ctp:api:type:Cart) or [Order](ctp:api:type:Order) and the `taxedPrice` field of [LineItems](ctp:api:type:LineItem), [CustomLineItems](ctp:api:type:CustomLineItem), and [ShippingInfos](ctp:api:type:ShippingInfo). + key?: type: string description: | diff --git a/api-specs/api/types/type/CustomFieldValue.raml b/api-specs/api/types/type/CustomFieldValue.raml index 81b9156ef9..b7f648a4d4 100644 --- a/api-specs/api/types/type/CustomFieldValue.raml +++ b/api-specs/api/types/type/CustomFieldValue.raml @@ -2,6 +2,7 @@ (package): Type # This is a union type that we cannot support in SDKs due to lack of discriminator fields type: any +(expandable): true displayName: CustomFieldValue description: |- The value of a Custom Field. diff --git a/api-specs/api/types/type/CustomFields.raml b/api-specs/api/types/type/CustomFields.raml index 926285f694..178bc860da 100644 --- a/api-specs/api/types/type/CustomFields.raml +++ b/api-specs/api/types/type/CustomFields.raml @@ -2,6 +2,7 @@ (package): Type displayName: CustomFields type: object +(expandable): true description: | Serves as value of the `custom` field on a resource or data type customized with a [Type](ctp:api:type:Type). properties: diff --git a/api-specs/api/types/type/FieldContainer.raml b/api-specs/api/types/type/FieldContainer.raml index a204451df7..4ef8eccd2f 100644 --- a/api-specs/api/types/type/FieldContainer.raml +++ b/api-specs/api/types/type/FieldContainer.raml @@ -2,6 +2,7 @@ (package): Type displayName: FieldContainer type: object +(expandable): true (asMap): key: string value: any @@ -9,6 +10,7 @@ example: !include ../../examples/Type/FieldContainer.json properties: # field naming constraint: https://docs.commercetools.com/api/projects/types#fielddefinition /^[a-zA-Z0-9_-]{2,36}$/: + (expandable): true type: CustomFieldValue description: | JSON object with keys matching the names of Custom Fields (that is, `name`s in the [FieldDefinitions](ctp:api:type:FieldDefinition)) and values given by [CustomFieldValue](ctp:api:type:CustomFieldValue). diff --git a/api-specs/api/types/type/ResourceTypeId.raml b/api-specs/api/types/type/ResourceTypeId.raml index 788e7a1548..9adff3c82e 100644 --- a/api-specs/api/types/type/ResourceTypeId.raml +++ b/api-specs/api/types/type/ResourceTypeId.raml @@ -83,7 +83,7 @@ enum: payment-interface-interaction: | [InterfaceInteraction](ctp:api:type:PaymentAddInterfaceInteractionAction) on [Payment](ctp:api:type:Payment) product-price: | - [Embedded Price](/projects/products#embedded-price) on [ProductVariant](ctp:api:type:ProductVariant) + [Embedded Price](ctp:api:type:Price) on [ProductVariant](ctp:api:type:ProductVariant) product-selection: | [ProductSelection](ctp:api:type:ProductSelection) quote: | diff --git a/api-specs/api/types/type/updates/TypeChangeLabelAction.raml b/api-specs/api/types/type/updates/TypeChangeLabelAction.raml index defa6916d7..72f90fe4c3 100644 --- a/api-specs/api/types/type/updates/TypeChangeLabelAction.raml +++ b/api-specs/api/types/type/updates/TypeChangeLabelAction.raml @@ -11,3 +11,6 @@ properties: Name of the [Field Definition](ctp:api:type:FieldDefinition) to update. label: type: LocalizedString + description: | + New value to set. + Must not be empty. diff --git a/api-specs/api/types/types.raml b/api-specs/api/types/types.raml index 4df4d7dbe7..47ff18bc71 100644 --- a/api-specs/api/types/types.raml +++ b/api-specs/api/types/types.raml @@ -75,6 +75,7 @@ AssociateRoleAssignmentDraft: !include business-unit/AssociateRoleAssignmentDraf AssociateRoleDeprecated: !include business-unit/AssociateRoleDeprecated.raml AssociateRoleInheritanceMode: !include business-unit/AssociateRoleInheritanceMode.raml BusinessUnit: !include business-unit/BusinessUnit.raml +BusinessUnitApprovalRuleMode: !include business-unit/BusinessUnitApprovalRuleMode.raml BusinessUnitAssociateMode: !include business-unit/BusinessUnitAssociateMode.raml BusinessUnitDraft: !include business-unit/BusinessUnitDraft.raml BusinessUnitKeyReference: !include business-unit/BusinessUnitKeyReference.raml @@ -98,6 +99,7 @@ BusinessUnitAddBillingAddressIdAction: !include business-unit/updates/BusinessUn BusinessUnitAddShippingAddressIdAction: !include business-unit/updates/BusinessUnitAddShippingAddressIdAction.raml BusinessUnitAddStoreAction: !include business-unit/updates/BusinessUnitAddStoreAction.raml BusinessUnitChangeAddressAction: !include business-unit/updates/BusinessUnitChangeAddressAction.raml +BusinessUnitChangeApprovalRuleModeAction: !include business-unit/updates/BusinessUnitChangeApprovalRuleModeAction.raml BusinessUnitChangeAssociateAction: !include business-unit/updates/BusinessUnitChangeAssociateAction.raml BusinessUnitChangeAssociateModeAction: !include business-unit/updates/BusinessUnitChangeAssociateModeAction.raml BusinessUnitChangeNameAction: !include business-unit/updates/BusinessUnitChangeNameAction.raml @@ -403,6 +405,12 @@ CustomerGroupChangeNameAction: !include customer-group/updates/CustomerGroupChan CustomerGroupSetCustomFieldAction: !include customer-group/updates/CustomerGroupSetCustomFieldAction.raml CustomerGroupSetCustomTypeAction: !include customer-group/updates/CustomerGroupSetCustomTypeAction.raml CustomerGroupSetKeyAction: !include customer-group/updates/CustomerGroupSetKeyAction.raml +CustomerIndexingProgress: !include customer-search/CustomerIndexingProgress.raml +CustomerIndexingStatus: !include customer-search/CustomerIndexingStatus.raml +CustomerPagedSearchResponse: !include customer-search/CustomerPagedSearchResponse.raml +CustomerSearchIndexingStatusResponse: !include customer-search/CustomerSearchIndexingStatusResponse.raml +CustomerSearchRequest: !include customer-search/CustomerSearchRequest.raml +CustomerSearchResult: !include customer-search/CustomerSearchResult.raml AnonymousCartSignInMode: !include customer/AnonymousCartSignInMode.raml AuthenticationMode: !include customer/AuthenticationMode.raml Customer: !include customer/Customer.raml @@ -838,6 +846,7 @@ BusinessUnitAddressCustomFieldRemovedMessage: !include message/BusinessUnitAddre BusinessUnitAddressCustomTypeRemovedMessage: !include message/BusinessUnitAddressCustomTypeRemovedMessage.raml BusinessUnitAddressCustomTypeSetMessage: !include message/BusinessUnitAddressCustomTypeSetMessage.raml BusinessUnitAddressRemovedMessage: !include message/BusinessUnitAddressRemovedMessage.raml +BusinessUnitApprovalRuleModeChangedMessage: !include message/BusinessUnitApprovalRuleModeChangedMessage.raml BusinessUnitAssociateAddedMessage: !include message/BusinessUnitAssociateAddedMessage.raml BusinessUnitAssociateChangedMessage: !include message/BusinessUnitAssociateChangedMessage.raml BusinessUnitAssociateModeChangedMessage: !include message/BusinessUnitAssociateModeChangedMessage.raml @@ -972,6 +981,11 @@ ProductDeletedMessage: !include message/ProductDeletedMessage.raml ProductImageAddedMessage: !include message/ProductImageAddedMessage.raml ProductPriceAddedMessage: !include message/ProductPriceAddedMessage.raml ProductPriceChangedMessage: !include message/ProductPriceChangedMessage.raml +ProductPriceCustomFieldAddedMessage: !include message/ProductPriceCustomFieldAddedMessage.raml +ProductPriceCustomFieldChangedMessage: !include message/ProductPriceCustomFieldChangedMessage.raml +ProductPriceCustomFieldRemovedMessage: !include message/ProductPriceCustomFieldRemovedMessage.raml +ProductPriceCustomFieldsRemovedMessage: !include message/ProductPriceCustomFieldsRemovedMessage.raml +ProductPriceCustomFieldsSetMessage: !include message/ProductPriceCustomFieldsSetMessage.raml ProductPriceDiscountsSetMessage: !include message/ProductPriceDiscountsSetMessage.raml ProductPriceDiscountsSetUpdatedPrice: !include message/ProductPriceDiscountsSetUpdatedPrice.raml ProductPriceExternalDiscountSetMessage: !include message/ProductPriceExternalDiscountSetMessage.raml @@ -994,6 +1008,8 @@ ProductStateTransitionMessage: !include message/ProductStateTransitionMessage.ra ProductTailoringCreatedMessage: !include message/ProductTailoringCreatedMessage.raml ProductTailoringDeletedMessage: !include message/ProductTailoringDeletedMessage.raml ProductTailoringDescriptionSetMessage: !include message/ProductTailoringDescriptionSetMessage.raml +ProductTailoringImageAddedMessage: !include message/ProductTailoringImageAddedMessage.raml +ProductTailoringImagesSetMessage: !include message/ProductTailoringImagesSetMessage.raml ProductTailoringNameSetMessage: !include message/ProductTailoringNameSetMessage.raml ProductTailoringPublishedMessage: !include message/ProductTailoringPublishedMessage.raml ProductTailoringSlugSetMessage: !include message/ProductTailoringSlugSetMessage.raml @@ -1001,6 +1017,8 @@ ProductTailoringUnpublishedMessage: !include message/ProductTailoringUnpublished ProductUnpublishedMessage: !include message/ProductUnpublishedMessage.raml ProductVariantAddedMessage: !include message/ProductVariantAddedMessage.raml ProductVariantDeletedMessage: !include message/ProductVariantDeletedMessage.raml +ProductVariantTailoringAddedMessage: !include message/ProductVariantTailoringAddedMessage.raml +ProductVariantTailoringRemovedMessage: !include message/ProductVariantTailoringRemovedMessage.raml QuoteCreatedMessage: !include message/QuoteCreatedMessage.raml QuoteCustomerChangedMessage: !include message/QuoteCustomerChangedMessage.raml QuoteDeletedMessage: !include message/QuoteDeletedMessage.raml @@ -1080,6 +1098,8 @@ BusinessUnitAddressCustomTypeRemovedMessagePayload: !include message/payload/Bus # yamllint disable-line rule:line-length BusinessUnitAddressCustomTypeSetMessagePayload: !include message/payload/BusinessUnitAddressCustomTypeSetMessagePayload.raml BusinessUnitAddressRemovedMessagePayload: !include message/payload/BusinessUnitAddressRemovedMessagePayload.raml +# yamllint disable-line rule:line-length +BusinessUnitApprovalRuleModeChangedMessagePayload: !include message/payload/BusinessUnitApprovalRuleModeChangedMessagePayload.raml BusinessUnitAssociateAddedMessagePayload: !include message/payload/BusinessUnitAssociateAddedMessagePayload.raml BusinessUnitAssociateChangedMessagePayload: !include message/payload/BusinessUnitAssociateChangedMessagePayload.raml # yamllint disable-line rule:line-length @@ -1226,6 +1246,12 @@ ProductDeletedMessagePayload: !include message/payload/ProductDeletedMessagePayl ProductImageAddedMessagePayload: !include message/payload/ProductImageAddedMessagePayload.raml ProductPriceAddedMessagePayload: !include message/payload/ProductPriceAddedMessagePayload.raml ProductPriceChangedMessagePayload: !include message/payload/ProductPriceChangedMessagePayload.raml +ProductPriceCustomFieldAddedMessagePayload: !include message/payload/ProductPriceCustomFieldAddedMessagePayload.raml +ProductPriceCustomFieldChangedMessagePayload: !include message/payload/ProductPriceCustomFieldChangedMessagePayload.raml +ProductPriceCustomFieldRemovedMessagePayload: !include message/payload/ProductPriceCustomFieldRemovedMessagePayload.raml +# yamllint disable-line rule:line-length +ProductPriceCustomFieldsRemovedMessagePayload: !include message/payload/ProductPriceCustomFieldsRemovedMessagePayload.raml +ProductPriceCustomFieldsSetMessagePayload: !include message/payload/ProductPriceCustomFieldsSetMessagePayload.raml ProductPriceDiscountsSetMessagePayload: !include message/payload/ProductPriceDiscountsSetMessagePayload.raml # yamllint disable-line rule:line-length ProductPriceExternalDiscountSetMessagePayload: !include message/payload/ProductPriceExternalDiscountSetMessagePayload.raml @@ -1251,6 +1277,8 @@ ProductStateTransitionMessagePayload: !include message/payload/ProductStateTrans ProductTailoringCreatedMessagePayload: !include message/payload/ProductTailoringCreatedMessagePayload.raml ProductTailoringDeletedMessagePayload: !include message/payload/ProductTailoringDeletedMessagePayload.raml ProductTailoringDescriptionSetMessagePayload: !include message/payload/ProductTailoringDescriptionSetMessagePayload.raml +ProductTailoringImageAddedMessagePayload: !include message/payload/ProductTailoringImageAddedMessagePayload.raml +ProductTailoringImagesSetMessagePayload: !include message/payload/ProductTailoringImagesSetMessagePayload.raml ProductTailoringNameSetMessagePayload: !include message/payload/ProductTailoringNameSetMessagePayload.raml ProductTailoringPublishedMessagePayload: !include message/payload/ProductTailoringPublishedMessagePayload.raml ProductTailoringSlugSetMessagePayload: !include message/payload/ProductTailoringSlugSetMessagePayload.raml @@ -1258,6 +1286,8 @@ ProductTailoringUnpublishedMessagePayload: !include message/payload/ProductTailo ProductUnpublishedMessagePayload: !include message/payload/ProductUnpublishedMessagePayload.raml ProductVariantAddedMessagePayload: !include message/payload/ProductVariantAddedMessagePayload.raml ProductVariantDeletedMessagePayload: !include message/payload/ProductVariantDeletedMessagePayload.raml +ProductVariantTailoringAddedMessagePayload: !include message/payload/ProductVariantTailoringAddedMessagePayload.raml +ProductVariantTailoringRemovedMessagePayload: !include message/payload/ProductVariantTailoringRemovedMessagePayload.raml QuoteCreatedMessagePayload: !include message/payload/QuoteCreatedMessagePayload.raml QuoteCustomerChangedMessagePayload: !include message/payload/QuoteCustomerChangedMessagePayload.raml QuoteDeletedMessagePayload: !include message/payload/QuoteDeletedMessagePayload.raml @@ -1698,8 +1728,31 @@ ProductTailoringReference: !include product-tailoring/ProductTailoringReference. ProductTailoringResourceIdentifier: !include product-tailoring/ProductTailoringResourceIdentifier.raml ProductTailoringUpdate: !include product-tailoring/ProductTailoringUpdate.raml ProductTailoringUpdateAction: !include product-tailoring/ProductTailoringUpdateAction.raml +ProductVariantTailoring: !include product-tailoring/ProductVariantTailoring.raml +ProductVariantTailoringDraft: !include product-tailoring/ProductVariantTailoringDraft.raml +ProductTailoringAddAssetAction: !include product-tailoring/updates/ProductTailoringAddAssetAction.raml +ProductTailoringAddExternalImageAction: !include product-tailoring/updates/ProductTailoringAddExternalImageAction.raml +ProductTailoringAddVariantAction: !include product-tailoring/updates/ProductTailoringAddVariantAction.raml +ProductTailoringChangeAssetNameAction: !include product-tailoring/updates/ProductTailoringChangeAssetNameAction.raml +ProductTailoringChangeAssetOrderAction: !include product-tailoring/updates/ProductTailoringChangeAssetOrderAction.raml +# yamllint disable-line rule:line-length +ProductTailoringMoveImageToPositionAction: !include product-tailoring/updates/ProductTailoringMoveImageToPositionAction.raml ProductTailoringPublishAction: !include product-tailoring/updates/ProductTailoringPublishAction.raml +ProductTailoringRemoveAssetAction: !include product-tailoring/updates/ProductTailoringRemoveAssetAction.raml +ProductTailoringRemoveImageAction: !include product-tailoring/updates/ProductTailoringRemoveImageAction.raml +ProductTailoringRemoveVariantAction: !include product-tailoring/updates/ProductTailoringRemoveVariantAction.raml +# yamllint disable-line rule:line-length +ProductTailoringSetAssetCustomFieldAction: !include product-tailoring/updates/ProductTailoringSetAssetCustomFieldAction.raml +# yamllint disable-line rule:line-length +ProductTailoringSetAssetCustomTypeAction: !include product-tailoring/updates/ProductTailoringSetAssetCustomTypeAction.raml +# yamllint disable-line rule:line-length +ProductTailoringSetAssetDescriptionAction: !include product-tailoring/updates/ProductTailoringSetAssetDescriptionAction.raml +ProductTailoringSetAssetKeyAction: !include product-tailoring/updates/ProductTailoringSetAssetKeyAction.raml +ProductTailoringSetAssetSourcesAction: !include product-tailoring/updates/ProductTailoringSetAssetSourcesAction.raml +ProductTailoringSetAssetTagsAction: !include product-tailoring/updates/ProductTailoringSetAssetTagsAction.raml ProductTailoringSetDescriptionAction: !include product-tailoring/updates/ProductTailoringSetDescriptionAction.raml +ProductTailoringSetExternalImagesAction: !include product-tailoring/updates/ProductTailoringSetExternalImagesAction.raml +ProductTailoringSetImageLabelAction: !include product-tailoring/updates/ProductTailoringSetImageLabelAction.raml ProductTailoringSetMetaAttributesAction: !include product-tailoring/updates/ProductTailoringSetMetaAttributesAction.raml # yamllint disable-line rule:line-length ProductTailoringSetMetaDescriptionAction: !include product-tailoring/updates/ProductTailoringSetMetaDescriptionAction.raml @@ -1857,6 +1910,7 @@ CartClassificationType: !include project/CartClassificationType.raml CartScoreType: !include project/CartScoreType.raml CartValueType: !include project/CartValueType.raml CartsConfiguration: !include project/CartsConfiguration.raml +CustomerSearchStatus: !include project/CustomerSearchStatus.raml ExternalOAuth: !include project/ExternalOAuth.raml OrderSearchStatus: !include project/OrderSearchStatus.raml ProductSearchIndexingMode: !include project/ProductSearchIndexingMode.raml @@ -1876,6 +1930,7 @@ ProjectChangeCountriesAction: !include project/updates/ProjectChangeCountriesAct # yamllint disable-line rule:line-length ProjectChangeCountryTaxRateFallbackEnabledAction: !include project/updates/ProjectChangeCountryTaxRateFallbackEnabledAction.raml ProjectChangeCurrenciesAction: !include project/updates/ProjectChangeCurrenciesAction.raml +ProjectChangeCustomerSearchStatusAction: !include project/updates/ProjectChangeCustomerSearchStatusAction.raml ProjectChangeLanguagesAction: !include project/updates/ProjectChangeLanguagesAction.raml ProjectChangeMessagesConfigurationAction: !include project/updates/ProjectChangeMessagesConfigurationAction.raml ProjectChangeMessagesEnabledAction: !include project/updates/ProjectChangeMessagesEnabledAction.raml