Introduced Product Tailoring of images and assets in beta
We introduced Product Tailoring of images and assets in public beta. You can now customize product images and assets for specific brands or countries, modeled with Stores, to enhance your product offering in different markets.
Changes:
[API] Added ProductVariantTailoring and ProductVariantTailoringDraft to the Product Tailoring API.
[API] Added
variants
field to ProductTailoringData, ProductTailoringDraft, and ProductTailoringInStoreDraft.[API] Added Upload Product Tailoring Image endpoint to the Product Tailoring API.
[API] Added Add Variant, Remove Variant, Add External Image, Move Image To Position, Remove Image, Set Images, Set Image Label, Add Asset, Remove Asset, Set Asset Key, Change Asset Order, Change Asset Name, Set Asset Description, Set Asset Tags, Set Asset Sources, Set Asset Custom Type, and Set Asset CustomField update actions to the Product Tailoring API.
[API] Added ProductVariantTailoringAdded, ProductVariantTailoringRemoved, ProductTailoringImageAdded, and ProductTailoringImagesSet Messages.
[GraphQL API] Added the
variants
field to theProductTailoringCreated
, theHasProductTailoringData
, and theProductTailoringData
type.[GraphQL API] Added input field
variants
toProductTailoringDraft
type.
- [GraphQL API] Added input fields
addVariant
,addAsset
,addExternalImage
,changeAssetName
,changeAssetOrder
,moveImageToPosition
,removeAsset
,removeImage
,removeVariant
,setAssetCustomField
,setAssetCustomType
,setAssetDescription
,setAssetKey
,setAssetSources
,setAssetTags
,setImages
, andsetImageLabel
to theProductTailoringUpdateAction
type. - [GraphQL API] Added the following types to the GraphQL schema:
AddProductTailoringAsset
,AddProductTailoringExternalImage
,AddProductVariantTailoring
,ChangeProductTailoringAssetName
,ChangeProductTailoringAssetOrder
,MoveProductTailoringImageToPosition
,ProductTailoringImageAdded
,ProductTailoringImagesSet
,ProductVariantTailoring
,ProductVariantTailoringAdded
,ProductVariantTailoringInput
,ProductVariantTailoringRemoved
,RemoveProductTailoringAsset
,RemoveProductTailoringImage
,RemoveProductVariantTailoring
,SetProductTailoringAssetCustomField
,SetProductTailoringAssetCustomType
,SetProductTailoringAssetDescription
,SetProductTailoringAssetKey
,SetProductTailoringAssetSources
,SetProductTailoringAssetTags
,SetProductTailoringImageLabel
,SetProductTailoringImages
,VariantTailoring
.
The following changes were introduced in terms of GraphQL SDL:
extend type ProductTailoringCreated {"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"variants: [ProductVariantTailoring!]!}extend interface HasProductTailoringData {"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"variants: [ProductVariantTailoring!]!}extend type ProductTailoringData {"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"variants: [ProductVariantTailoring!]!}extend input ProductTailoringDraft {"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"variants: [ProductVariantTailoringInput!] = []}extend input ProductTailoringUpdateAction {addAsset: AddProductTailoringAssetaddExternalImage: AddProductTailoringExternalImage"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"addVariant: AddProductVariantTailoringchangeAssetName: ChangeProductTailoringAssetNamechangeAssetOrder: ChangeProductTailoringAssetOrder"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"moveImageToPosition: MoveProductTailoringImageToPositionremoveAsset: RemoveProductTailoringAssetremoveImage: RemoveProductTailoringImage"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"removeVariant: RemoveProductVariantTailoringsetAssetCustomField: SetProductTailoringAssetCustomFieldsetAssetCustomType: SetProductTailoringAssetCustomTypesetAssetDescription: SetProductTailoringAssetDescriptionsetAssetKey: SetProductTailoringAssetKeysetAssetSources: SetProductTailoringAssetSourcessetAssetTags: SetProductTailoringAssetTagssetImageLabel: SetProductTailoringImageLabelsetImages: SetProductTailoringImages}input AddProductTailoringAsset {variantId: Intsku: Stringstaged: Boolean = trueposition: Intasset: AssetDraftInput!}input AddProductTailoringExternalImage {variantId: Intsku: Stringimage: ImageInput!staged: Boolean = true}"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"input AddProductVariantTailoring {id: Intsku: Stringimages: [ImageInput!] = []assets: [AssetDraftInput!] = []staged: Boolean = true}input ChangeProductTailoringAssetName {variantId: Intsku: Stringstaged: Boolean = truename: [LocalizedStringItemInputType!]!assetKey: StringassetId: String}input ChangeProductTailoringAssetOrder {variantId: Intsku: Stringstaged: Boolean = trueassetOrder: [String!]!}"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"input MoveProductTailoringImageToPosition {variantId: Intsku: StringimageUrl: String!position: Int!staged: Boolean = true}"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"type ProductTailoringImageAdded implements MessagePayload {variantId: Int!storeRef: KeyReference!productRef: Reference!productKey: Stringimage: Image!type: String!}"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"type ProductTailoringImagesSet implements MessagePayload {variantId: Int!storeRef: KeyReference!productRef: Reference!productKey: StringoldImages: [Image!]!images: [Image!]!type: String!}"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"type ProductVariantTailoring {id: Int!images: [Image!]!assets: [Asset!]!}"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"type ProductVariantTailoringAdded implements MessagePayload {variantId: Int!storeRef: KeyReference!productRef: Reference!productKey: Stringvariant: VariantTailoring!type: String!}"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"input ProductVariantTailoringInput {id: Intsku: Stringimages: [ImageInput!] = []assets: [AssetDraftInput!] = []}"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"type ProductVariantTailoringRemoved implements MessagePayload {variantId: Int!storeRef: KeyReference!productRef: Reference!productKey: Stringvariant: VariantTailoring!type: String!}input RemoveProductTailoringAsset {variantId: Intsku: Stringstaged: Boolean = trueassetKey: StringassetId: String}input RemoveProductTailoringImage {variantId: Intsku: StringimageUrl: String!staged: Boolean = true}"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"input RemoveProductVariantTailoring {id: Intsku: Stringstaged: Boolean = true}input SetProductTailoringAssetCustomField {variantId: Intsku: Stringstaged: Boolean = truevalue: Stringname: String!assetKey: StringassetId: String}input SetProductTailoringAssetCustomType {variantId: Intsku: Stringstaged: Boolean = truetypeId: StringtypeKey: Stringtype: ResourceIdentifierInputfields: [CustomFieldInput!]assetKey: StringassetId: String}input SetProductTailoringAssetDescription {variantId: Intsku: Stringstaged: Boolean = truedescription: [LocalizedStringItemInputType!]assetKey: StringassetId: String}input SetProductTailoringAssetKey {variantId: Intsku: Stringstaged: Boolean = trueassetKey: StringassetId: String!}input SetProductTailoringAssetSources {variantId: Intsku: Stringstaged: Boolean = truesources: [AssetSourceInput!] = []assetKey: StringassetId: String}input SetProductTailoringAssetTags {variantId: Intsku: Stringstaged: Boolean = truetags: [String!] = []assetKey: StringassetId: String}input SetProductTailoringImageLabel {variantId: Intsku: StringimageUrl: String!label: Stringstaged: Boolean = true}input SetProductTailoringImages {variantId: Intsku: Stringimages: [ImageInput!]!staged: Boolean = true}"BETA: This feature can be subject to change and should be used carefully in production. https://docs.commercetools.com/api/contract#public-beta"type VariantTailoring {images: [Image!]!assets: [Asset!]!}