---
title: "Update an item"
method: PATCH
path: "/v1/baskets/{basketId}/items/{itemKey}"
tags: ["baskets"]
---

# Update an item

`PATCH /v1/baskets/{basketId}/items/{itemKey}`

Updates the quantity of a basket item or other properties such as the custom data or the promotion id.
To update the item you will need to use the item key which can be found when fetching the Basket.

You can't update the variant id of a given basket item, for this operation you would need to do a delete and then an add operation.

The response will show the updated content of the basket.

## Path parameters

- `basketId` string, required
- `itemKey` string, required

## Query parameters

- `campaignKey` string
- `includeItemsWithoutProductData` boolean
- `skipAvailabilityCheck` boolean
- `with` string[]
- `shopId` string, required

## Headers

- `X-Order-Custom-Data` string
- `X-Customer-Token` string

## Request body

- UpdateBasketItemBody
  - `quantity` integer, required — The updated quantity for the basket item.
  - `promotionId` string, nullable — Updates the promotion id of the item. If the 'promotionId' property is not sent in the request no update is performed on the field. if the value is null then any previous applied promotion will be removed from the item.
  - `customData` BasketItemCustomData — Custom Data allows to store additional data on each basket item. The information is persisted during the order flow and will be accessible after Scayle's Checkout process on each order item.
    - `pricePromotionKey` string — A price promotion key which will be used for this item during the Checkout process.
  - `displayData` BasketItemDisplayData — Display Data allows to show additional information next to each item during the SCAYLE Checkout process. The properties will remain attached to the basket item during the checkout and order process.
    - `meta` DisplayDataValue
      - `key` string — A key identifying which data is displayed here. The value is not shown in the Scayle Checkout.
      - `label` string — The label explaining the value which will be displayed in the Scayle Checkout for the Basket Item.
      - `value` string — The value which will be displayed in the Scayle Checkout for the Basket Item.
    - `name` DisplayDataValue
      - `key` string — A key identifying which data is displayed here. The value is not shown in the Scayle Checkout.
      - `label` string — The label explaining the value which will be displayed in the Scayle Checkout for the Basket Item.
      - `value` string — The value which will be displayed in the Scayle Checkout for the Basket Item.
    - `identifier` DisplayDataValue
      - `key` string — A key identifying which data is displayed here. The value is not shown in the Scayle Checkout.
      - `label` string — The label explaining the value which will be displayed in the Scayle Checkout for the Basket Item.
      - `value` string — The value which will be displayed in the Scayle Checkout for the Basket Item.
    - `attribute-1` DisplayDataValue
      - `key` string — A key identifying which data is displayed here. The value is not shown in the Scayle Checkout.
      - `label` string — The label explaining the value which will be displayed in the Scayle Checkout for the Basket Item.
      - `value` string — The value which will be displayed in the Scayle Checkout for the Basket Item.
    - `attribute-2` DisplayDataValue
      - `key` string — A key identifying which data is displayed here. The value is not shown in the Scayle Checkout.
      - `label` string — The label explaining the value which will be displayed in the Scayle Checkout for the Basket Item.
      - `value` string — The value which will be displayed in the Scayle Checkout for the Basket Item.
    - `attribute-3` DisplayDataValue
      - `key` string — A key identifying which data is displayed here. The value is not shown in the Scayle Checkout.
      - `label` string — The label explaining the value which will be displayed in the Scayle Checkout for the Basket Item.
      - `value` string — The value which will be displayed in the Scayle Checkout for the Basket Item.
  - `itemGroup` ItemGroup — An item group allows to define multiple basket items into a unit.
    - `id` string — A unique identifier for the item group which should be used for all basket items of the item group. Any string based identifier can be chosen and it only has to be unique within the current basket.
    - `isMainItem` boolean — Whether or not the current item is the main item within the item group. This property can be used for display purposes to only show the main item within the Checkout.
    - `isRequired` boolean — Whether or not the item is required to be present for the item group. When you delete an item from your basket which is required for the item group, all other items assigned to the item group will also be deleted.

## Response `200`

The Basket Item was successfully updated.

- Basket
  - `key` string — A unique key identifying the basket.
  - `items` BasketItem[]
    - `key` string — A unique key for the basket item which can be used for updating or deleting it.
    - `packageId` integer — The package in which the basket item will be send. Corresponds to a package id in the `packages` list of a `Basket`.
    - `quantity` integer — The quantity of the item.
    - `availableQuantity` integer — The total available quantity for the variant which can be added to the basket.
    - `status` 'available' | 'unavailable' — The status of the basket item, either it is 'available' which means in stock or it's unavailable meaning it's out of stock.
    - `variant` Variant
      - `id` integer, required
      - `advancedAttributes` object
      - `appliedPricePromotionKey` string
      - `attributes` object
      - `lowestPriorPrice` LowestPriorPrice — Information about the lowest price in the past 30 days.
        - `withTax` integer, nullable, required — The lowest price including tax.
        - `relativeDifferenceToPrice` number, float, nullable, required — The relative difference from the lowest prior price to the current price. If the value is positive, it means that the current price is higher than the lowest prior price. If the value is negative, it means that the current price is lower than the lowest prior price.
      - `price` Price, required
        - `appliedReductions` AppliedReduction[], required
          - `amount` AppliedReductionAmount, required
            - `absoluteWithTax` integer
            - `relative` number
          - `category` 'sale' | 'campaign' | 'promotion', required
          - `type` string, required
        - `currencyCode` string, required — The currency of the price.
        - `reference` object
          - `size` integer — Size of the reference (100m, 100ml), but in this field fill in only the value without the unit of measurement.
          - `unit` string — The size of reference unit (KG, ml, L, etc.) without the value
          - `withoutTax` integer — Reference price excluding the taxes.
          - `withTax` integer — Item price including taxes. The price is calculated including taxes and all applicable reductions such as discounts for sale and campaigns (should a campaign key be provided on the request).
        - `tax` Tax, required
          - `vat` Vat
            - `amount` number
            - `rate` number
        - `withoutTax` integer, required
        - `withTax` integer, required
        - `recommendedRetailPrice` integer, required
      - `productId` integer, required
      - `referenceKey` string, required
      - `firstLiveAt` string, required — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
      - `stock` Stock, required
        - `supplierId` integer, required
        - `warehouseId` integer, nullable, required
        - `quantity` integer, required
        - `isSellableWithoutStock` boolean, required
        - `expectedAvailabilityAt` string, nullable, required
      - `customData` object, required
      - `merchant` Merchant
        - `id` integer, required
        - `key` string, required
        - `name` string, required
        - `legal` object
          - `legaName` string
          - `parentCompanyLegalName` string
          - `streetWithNumber` string
          - `zip` string
          - `city` string
          - `country` string
          - `telephone` string
          - `email` string
          - `registryCourtCity` string
          - `registerNumber` string
          - `parentCompanyRegistryCourtCity` string
          - `parentCompanyRegisterNumber` string
          - `managingDirectors` string
          - `representative` string
          - `shippingMerchantName` string
          - `registryCourtType` string
          - `parentCompanyRegistryCourtType` string
          - `vatId` string
      - `createdAt` string, required — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
      - `updatedAt` string, required — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
    - `product` Product
      - `id` integer, required
      - `advancedAttributes` object
      - `attributes` object
      - `baseCategories` BaseCategory[]
        - `categoryId` integer, required — Unique identifier of the category
        - `categoryName` string, required — Name of the category
        - `categoryParentId` integer, required — Parent ID of the category
        - `categoryPath` string, required — Category path as text
      - `categories` array[]
        - ProductCategory[]
          - `categoryId` integer
          - `categoryHidden` boolean
          - `categoryName` string
          - `categoryProperties` object
            - `is_inheritable` integer
            - `name` string
            - `value` string
          - `shopLevelCustomData` object
            - `appCatName` object
            - `appCatLocalizedConfig` object
          - `countryLevelCustomData` object
            - `appCatCountryName` string
            - `appCatCountryScore` number
            - `appCatCountryBubbleUp` boolean
            - `appCatCountrySampleName` string
            - `appCatCountrySampleConfig` object
            - `appCatCountryLocalizedConfig` object
          - `categoryUrl` string
          - `categorySlug` string
      - `definingAttributes` DefiningAttribute
        - `id` integer, required
        - `label` string, required
      - `images` Image[], required
        - `attributes` object
        - `hash` string
      - `customData` ResponseCustomData, required
      - `isActive` boolean, required — Identifies whether a product is active or not
      - `isNew` boolean, required — Identifies whether a product is new or not
      - `isSoldOut` boolean, required — Identifies if a product is still available to sell
      - `masterKey` string, required — Identifies the master product which this product belongs
      - `firstLiveAt` string, required — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
      - `priceRange` PriceRange
        - `max` Price, required
          - `appliedReductions` AppliedReduction[], required
            - `amount` AppliedReductionAmount, required
              - …
            - `category` 'sale' | 'campaign' | 'promotion', required
            - `type` string, required
          - `currencyCode` string, required — The currency of the price.
          - `reference` object
            - `size` integer — Size of the reference (100m, 100ml), but in this field fill in only the value without the unit of measurement.
            - `unit` string — The size of reference unit (KG, ml, L, etc.) without the value
            - `withoutTax` integer — Reference price excluding the taxes.
            - `withTax` integer — Item price including taxes. The price is calculated including taxes and all applicable reductions such as discounts for sale and campaigns (should a campaign key be provided on the request).
          - `tax` Tax, required
            - `vat` Vat
              - …
          - `withoutTax` integer, required
          - `withTax` integer, required
          - `recommendedRetailPrice` integer, required
        - `min` Price, required
          - `appliedReductions` AppliedReduction[], required
            - `amount` AppliedReductionAmount, required
              - …
            - `category` 'sale' | 'campaign' | 'promotion', required
            - `type` string, required
          - `currencyCode` string, required — The currency of the price.
          - `reference` object
            - `size` integer — Size of the reference (100m, 100ml), but in this field fill in only the value without the unit of measurement.
            - `unit` string — The size of reference unit (KG, ml, L, etc.) without the value
            - `withoutTax` integer — Reference price excluding the taxes.
            - `withTax` integer — Item price including taxes. The price is calculated including taxes and all applicable reductions such as discounts for sale and campaigns (should a campaign key be provided on the request).
          - `tax` Tax, required
            - `vat` Vat
              - …
          - `withoutTax` integer, required
          - `withTax` integer, required
          - `recommendedRetailPrice` integer, required
      - `reductionRange` ReductionRange
        - `max` Price
          - `appliedReductions` AppliedReduction[], required
            - `amount` AppliedReductionAmount, required
              - …
            - `category` 'sale' | 'campaign' | 'promotion', required
            - `type` string, required
          - `currencyCode` string, required — The currency of the price.
          - `reference` object
            - `size` integer — Size of the reference (100m, 100ml), but in this field fill in only the value without the unit of measurement.
            - `unit` string — The size of reference unit (KG, ml, L, etc.) without the value
            - `withoutTax` integer — Reference price excluding the taxes.
            - `withTax` integer — Item price including taxes. The price is calculated including taxes and all applicable reductions such as discounts for sale and campaigns (should a campaign key be provided on the request).
          - `tax` Tax, required
            - `vat` Vat
              - …
          - `withoutTax` integer, required
          - `withTax` integer, required
          - `recommendedRetailPrice` integer, required
        - `min` Price
          - `appliedReductions` AppliedReduction[], required
            - `amount` AppliedReductionAmount, required
              - …
            - `category` 'sale' | 'campaign' | 'promotion', required
            - `type` string, required
          - `currencyCode` string, required — The currency of the price.
          - `reference` object
            - `size` integer — Size of the reference (100m, 100ml), but in this field fill in only the value without the unit of measurement.
            - `unit` string — The size of reference unit (KG, ml, L, etc.) without the value
            - `withoutTax` integer — Reference price excluding the taxes.
            - `withTax` integer — Item price including taxes. The price is calculated including taxes and all applicable reductions such as discounts for sale and campaigns (should a campaign key be provided on the request).
          - `tax` Tax, required
            - `vat` Vat
              - …
          - `withoutTax` integer, required
          - `withTax` integer, required
          - `recommendedRetailPrice` integer, required
      - `lowestPriorPrice` LowestPriorPrice — Information about the lowest price in the past 30 days.
        - `withTax` integer, nullable, required — The lowest price including tax.
        - `relativeDifferenceToPrice` number, float, nullable, required — The relative difference from the lowest prior price to the current price. If the value is positive, it means that the current price is higher than the lowest prior price. If the value is negative, it means that the current price is lower than the lowest prior price.
      - `referenceKey` string, required
      - `searchCategoryIds` integer[]
      - `siblings` Product[] — list of Products
      - `variants` Variant[]
        - `id` integer, required
        - `advancedAttributes` object
        - `appliedPricePromotionKey` string
        - `attributes` object
        - `lowestPriorPrice` LowestPriorPrice — Information about the lowest price in the past 30 days.
          - `withTax` integer, nullable, required — The lowest price including tax.
          - `relativeDifferenceToPrice` number, float, nullable, required — The relative difference from the lowest prior price to the current price. If the value is positive, it means that the current price is higher than the lowest prior price. If the value is negative, it means that the current price is lower than the lowest prior price.
        - `price` Price, required
          - `appliedReductions` AppliedReduction[], required
            - `amount` AppliedReductionAmount, required
              - …
            - `category` 'sale' | 'campaign' | 'promotion', required
            - `type` string, required
          - `currencyCode` string, required — The currency of the price.
          - `reference` object
            - `size` integer — Size of the reference (100m, 100ml), but in this field fill in only the value without the unit of measurement.
            - `unit` string — The size of reference unit (KG, ml, L, etc.) without the value
            - `withoutTax` integer — Reference price excluding the taxes.
            - `withTax` integer — Item price including taxes. The price is calculated including taxes and all applicable reductions such as discounts for sale and campaigns (should a campaign key be provided on the request).
          - `tax` Tax, required
            - `vat` Vat
              - …
          - `withoutTax` integer, required
          - `withTax` integer, required
          - `recommendedRetailPrice` integer, required
        - `productId` integer, required
        - `referenceKey` string, required
        - `firstLiveAt` string, required — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
        - `stock` Stock, required
          - `supplierId` integer, required
          - `warehouseId` integer, nullable, required
          - `quantity` integer, required
          - `isSellableWithoutStock` boolean, required
          - `expectedAvailabilityAt` string, nullable, required
        - `customData` object, required
        - `merchant` Merchant
          - `id` integer, required
          - `key` string, required
          - `name` string, required
          - `legal` object
            - `legaName` string
            - `parentCompanyLegalName` string
            - `streetWithNumber` string
            - `zip` string
            - `city` string
            - `country` string
            - `telephone` string
            - `email` string
            - `registryCourtCity` string
            - `registerNumber` string
            - `parentCompanyRegistryCourtCity` string
            - `parentCompanyRegisterNumber` string
            - `managingDirectors` string
            - `representative` string
            - `shippingMerchantName` string
            - `registryCourtType` string
            - `parentCompanyRegistryCourtType` string
            - `vatId` string
        - `createdAt` string, required — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
        - `updatedAt` string, required — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
      - `createdAt` string, required — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
      - `updatedAt` string, required — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
      - `indexedAt` string, required — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
    - `price` BasketItemPrice
      - `total` Price
        - `appliedReductions` AppliedReduction[], required
          - `amount` AppliedReductionAmount, required
            - `absoluteWithTax` integer
            - `relative` number
          - `category` 'sale' | 'campaign' | 'promotion', required
          - `type` string, required
        - `currencyCode` string, required — The currency of the price.
        - `reference` object
          - `size` integer — Size of the reference (100m, 100ml), but in this field fill in only the value without the unit of measurement.
          - `unit` string — The size of reference unit (KG, ml, L, etc.) without the value
          - `withoutTax` integer — Reference price excluding the taxes.
          - `withTax` integer — Item price including taxes. The price is calculated including taxes and all applicable reductions such as discounts for sale and campaigns (should a campaign key be provided on the request).
        - `tax` Tax, required
          - `vat` Vat
            - `amount` number
            - `rate` number
        - `withoutTax` integer, required
        - `withTax` integer, required
        - `recommendedRetailPrice` integer, required
      - `unit` Price
        - `appliedReductions` AppliedReduction[], required
          - `amount` AppliedReductionAmount, required
            - `absoluteWithTax` integer
            - `relative` number
          - `category` 'sale' | 'campaign' | 'promotion', required
          - `type` string, required
        - `currencyCode` string, required — The currency of the price.
        - `reference` object
          - `size` integer — Size of the reference (100m, 100ml), but in this field fill in only the value without the unit of measurement.
          - `unit` string — The size of reference unit (KG, ml, L, etc.) without the value
          - `withoutTax` integer — Reference price excluding the taxes.
          - `withTax` integer — Item price including taxes. The price is calculated including taxes and all applicable reductions such as discounts for sale and campaigns (should a campaign key be provided on the request).
        - `tax` Tax, required
          - `vat` Vat
            - `amount` number
            - `rate` number
        - `withoutTax` integer, required
        - `withTax` integer, required
        - `recommendedRetailPrice` integer, required
    - `lowestPriorPrice` LowestPriorPrice — Information about the lowest price in the past 30 days.
      - `withTax` integer, nullable, required — The lowest price including tax.
      - `relativeDifferenceToPrice` number, float, nullable, required — The relative difference from the lowest prior price to the current price. If the value is positive, it means that the current price is higher than the lowest prior price. If the value is negative, it means that the current price is lower than the lowest prior price.
    - `promotionId` string — The promotion which will be applied to the item.
    - `itemGroup` ItemGroup — An item group allows to define multiple basket items into a unit.
      - `id` string — A unique identifier for the item group which should be used for all basket items of the item group. Any string based identifier can be chosen and it only has to be unique within the current basket.
      - `isMainItem` boolean — Whether or not the current item is the main item within the item group. This property can be used for display purposes to only show the main item within the Checkout.
      - `isRequired` boolean — Whether or not the item is required to be present for the item group. When you delete an item from your basket which is required for the item group, all other items assigned to the item group will also be deleted.
    - `customData` BasketItemCustomData — Custom Data allows to store additional data on each basket item. The information is persisted during the order flow and will be accessible after Scayle's Checkout process on each order item.
      - `pricePromotionKey` string — A price promotion key which will be used for this item during the Checkout process.
    - `displayData` BasketItemDisplayData — Display Data allows to show additional information next to each item during the SCAYLE Checkout process. The properties will remain attached to the basket item during the checkout and order process.
      - `meta` DisplayDataValue
        - `key` string — A key identifying which data is displayed here. The value is not shown in the Scayle Checkout.
        - `label` string — The label explaining the value which will be displayed in the Scayle Checkout for the Basket Item.
        - `value` string — The value which will be displayed in the Scayle Checkout for the Basket Item.
      - `name` DisplayDataValue
        - `key` string — A key identifying which data is displayed here. The value is not shown in the Scayle Checkout.
        - `label` string — The label explaining the value which will be displayed in the Scayle Checkout for the Basket Item.
        - `value` string — The value which will be displayed in the Scayle Checkout for the Basket Item.
      - `identifier` DisplayDataValue
        - `key` string — A key identifying which data is displayed here. The value is not shown in the Scayle Checkout.
        - `label` string — The label explaining the value which will be displayed in the Scayle Checkout for the Basket Item.
        - `value` string — The value which will be displayed in the Scayle Checkout for the Basket Item.
      - `attribute-1` DisplayDataValue
        - `key` string — A key identifying which data is displayed here. The value is not shown in the Scayle Checkout.
        - `label` string — The label explaining the value which will be displayed in the Scayle Checkout for the Basket Item.
        - `value` string — The value which will be displayed in the Scayle Checkout for the Basket Item.
      - `attribute-2` DisplayDataValue
        - `key` string — A key identifying which data is displayed here. The value is not shown in the Scayle Checkout.
        - `label` string — The label explaining the value which will be displayed in the Scayle Checkout for the Basket Item.
        - `value` string — The value which will be displayed in the Scayle Checkout for the Basket Item.
      - `attribute-3` DisplayDataValue
        - `key` string — A key identifying which data is displayed here. The value is not shown in the Scayle Checkout.
        - `label` string — The label explaining the value which will be displayed in the Scayle Checkout for the Basket Item.
        - `value` string — The value which will be displayed in the Scayle Checkout for the Basket Item.
    - `deliveryForecast` DeliveryForecast
      - `deliverable` Deliverable
        - `key` string
        - `quantity` integer
      - `subsequentDelivery` SubsequentDelivery
        - `key` string
        - `quantity` integer
    - `promotion` BasketItemPromotion
      - `id` string — The unique identifier of the promotion
      - `name` string — Promotion name
      - `schedule` object — Promotion's initial and end date, formatted according to RFC 3339.
        - `from` string — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
        - `to` string — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
      - `isActive` boolean — Promotion's status
      - `effect` union
        - AutomaticDiscountEffect — Promotion's effect
          - `type` 'buy_x_get_y' | 'automatic_discount'
          - `additionalData` object
            - `type` 'absolute' | 'relative' — The type is either `absolute` or `relative`.
            - `value` number, float — The value is either a relative percentage or an absolute reduction in cents, determined by the additionalData.type field. If the type is relative, the value should be expressed as a percentage; if the type is absolute, the value will be in cents.
        - BuyXGetYEffect — Promotion's effect
          - `type` 'buy_x_get_y' | 'automatic_discount'
          - `additionalData` object
            - `eligibleItemsQuantity` integer
            - `maxCount` integer
            - `maxCountType` 'per_eligible_items_quantity' | 'per_eligible_uniq_items'
            - `variantIds` integer[]
      - `conditions` Condition[] — Promotion's conditions
        - `level` string
        - `key` string
        - `condition` string
      - `customData` object — Promotion's custom data
      - `priority` number — The priority of the promotion compared to other promotions. This can be used to decide which promotion to apply if there is a conflict between two.
      - `tiers` Tier[]
        - `id` integer
        - `name` string
        - `MOV` integer
        - `effect` object
          - `additionalData` object
            - `type` string
            - `value` number, float
      - `isValid` boolean
      - `failedConditions` object[]
        - `key` string
        - `level` string
  - `cost` Price
    - `appliedReductions` AppliedReduction[], required
      - `amount` AppliedReductionAmount, required
        - `absoluteWithTax` integer
        - `relative` number
      - `category` 'sale' | 'campaign' | 'promotion', required
      - `type` string, required
    - `currencyCode` string, required — The currency of the price.
    - `reference` object
      - `size` integer — Size of the reference (100m, 100ml), but in this field fill in only the value without the unit of measurement.
      - `unit` string — The size of reference unit (KG, ml, L, etc.) without the value
      - `withoutTax` integer — Reference price excluding the taxes.
      - `withTax` integer — Item price including taxes. The price is calculated including taxes and all applicable reductions such as discounts for sale and campaigns (should a campaign key be provided on the request).
    - `tax` Tax, required
      - `vat` Vat
        - `amount` number
        - `rate` number
    - `withoutTax` integer, required
    - `withTax` integer, required
    - `recommendedRetailPrice` integer, required
  - `packages` Package[]
    - `id` integer
    - `carrierKey` string — The carrier key which will deliver the package
    - `deliveryDate` DeliveryDate — The estimated delivery date for the package
      - `min` string
      - `max` string
  - `applicablePromotions` ApplicablePromotion[]
    - `itemId` string, nullable — The Basket Item ID to which the promotion should be applied. This can be null in case of a `bux_x_get_y` effect where the free item is not in the basket yet.
    - `promotion` Promotion
      - `id` string — The unique identifier of the promotion
      - `name` string — Promotion name
      - `schedule` object — Promotion's initial and end date, formatted according to RFC 3339.
        - `from` string — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
        - `to` string — Date string, formatted according to RFC 3339, e.g. 2018-06-01T14:56:08+02:00
      - `isActive` boolean — Promotion's status
      - `effect` union
        - AutomaticDiscountEffect — Promotion's effect
          - `type` 'buy_x_get_y' | 'automatic_discount'
          - `additionalData` object
            - `type` 'absolute' | 'relative' — The type is either `absolute` or `relative`.
            - `value` number, float — The value is either a relative percentage or an absolute reduction in cents, determined by the additionalData.type field. If the type is relative, the value should be expressed as a percentage; if the type is absolute, the value will be in cents.
        - BuyXGetYEffect — Promotion's effect
          - `type` 'buy_x_get_y' | 'automatic_discount'
          - `additionalData` object
            - `eligibleItemsQuantity` integer
            - `maxCount` integer
            - `maxCountType` 'per_eligible_items_quantity' | 'per_eligible_uniq_items'
            - `variantIds` integer[]
      - `conditions` Condition[] — Promotion's conditions
        - `level` string
        - `key` string
        - `condition` string
      - `customData` object — Promotion's custom data
      - `priority` number — The priority of the promotion compared to other promotions. This can be used to decide which promotion to apply if there is a conflict between two.
      - `tiers` Tier[]
        - `id` integer
        - `name` string
        - `MOV` integer
        - `effect` object
          - `additionalData` object
            - `type` string
            - `value` number, float

## Other responses

- `206` — The Basket Item was updated however with a reduced quantity.
- `400` — Required parameter is missing or invalid.
- `401` — Authentication failed.
- `404` — The Basket Item doesn't exist for the referenced Basket.
- `408` — Basket is currently locked due to another request, please retry.
- `424` — The API Request failed due to an underlying dependency error.

## Changes

> 3 revisions in range; 1 could not be searched.

- **2023-08-06** `302b7c443b51` — 11 breaking, 23 warning, 9 info
  - the request property `promotionId` became not nullable
  - removed the media type `application/json` for the response with the status `206`
  - the response property `cost/appliedReductions` became optional for the status `200`
  - the response property `cost/appliedReductions/items/amount` became optional for the status `200`
  - …39 more

[Change history](https://skmtc.dev/scayle/apis/storefront-api-documentation/changes/v1/baskets/:basketId/items/:itemKey/patch.md)

---

[API](https://skmtc.dev/scayle/apis/storefront-api-documentation.md) · [All operations](https://skmtc.dev/scayle/apis/storefront-api-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/scayle/storefront-api-documentation/revisions/8cfa924ae703/schema)
