When multiple shipping addresses are set for a Line Item, use the Remove LineItem and Add LineItem update action to change the shipping details. Since it is not possible for the API to infer how the overall change in the Line Item quantity should be distributed over the sub-quantities, the shippingDetails field is kept in its current state to avoid data loss.

To change the Line Item quantity and shipping details together,
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 [Line Item price selection](/../api/pricing-and-discounts-overview#line-item-price-selection).
interface CartChangeLineItemQuantityAction {
    action: "changeLineItemQuantity";
    externalPrice?: _Money;
    externalTotalPrice?: ExternalLineItemTotalPrice;
    lineItemId?: string;
    lineItemKey?: string;
    quantity: number;
}

Properties

action: "changeLineItemQuantity"
externalPrice?: _Money

Required when the Line Item uses ExternalPrice LineItemPriceMode. Sets the LineItem price to the given value when changing the quantity of a Line Item.

The LineItem price is updated as described in Line Item price selection.
externalTotalPrice?: ExternalLineItemTotalPrice

Sets the LineItem price and totalPrice to the given value when changing the quantity of a Line Item with the ExternalTotal LineItemPriceMode. If externalTotalPrice is not given and the priceMode is ExternalTotal, the external price is unset and the priceMode is set to Platform.

lineItemId?: string

id of the LineItem to update. Either lineItemId or lineItemKey is required.

lineItemKey?: string

key of the LineItem to update. Either lineItemId or lineItemKey is required.

quantity: number

New value to set.

If `0`, the Line Item is removed from the Cart.