23 June 2023
CartsOrdersGraphQL
We introduced the 
lineItemKey field on update actions referencing Line Items on Carts, Orders, and Order Edits. The lineItemId field is now optional on the affected update actions. This ensures a consistent experience when working with external identifiers across different entity types in Composable Commerce.Changes:
- [API] Added 
lineItemKeyand madelineItemIdoptional on the following update actions on Carts:- Remove LineItem, Change LineItem Quantity, Set LineItem TaxRate, Set LineItem TaxAmount, Set LineItem Price, Set LineItem TotalPrice, Set LineItem DistributionChannel, Set LineItem SupplyChannel, Set LineItem ShippingDetails, Apply DeltaToLineItemShippingDetailsTargets, Set LineItem Custom Type, Set LineItem CustomField, and Set LineItem InventoryMode.
 
 - [API] Added 
lineItemKeyand madelineItemIdoptional on the following update actions on My Carts: - [API] Added 
lineItemKeyand madelineItemIdoptional on the following update actions on Orders: - [API] Added 
lineItemKeyand madelineItemIdoptional on the following update actions on Order Edits: - [GraphQL API] Changed the 
SetCartLineItemTaxAmounttype:SetCartLineItemTaxAmount.lineItemIdinput field type changed fromString!toString- Input field 
lineItemKeywas added toSetCartLineItemTaxAmounttype 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemCustomTypetype:- Input field 
lineItemKeywas added toSetStagedOrderLineItemCustomTypetype SetStagedOrderLineItemCustomType.lineItemIdinput field type changed fromString!toString
 - Input field 
 - [GraphQL API] Changed the 
SetCartLineItemCustomFieldtype:- Input field 
lineItemKeywas added toSetCartLineItemCustomFieldtype SetCartLineItemCustomField.lineItemIdinput field type changed fromString!toString
 - Input field 
 - [GraphQL API] Changed the 
ChangeStagedOrderLineItemQuantitytype:- Input field 
lineItemKeywas added toChangeStagedOrderLineItemQuantitytype ChangeStagedOrderLineItemQuantity.lineItemIdinput field type changed fromString!toString
 - Input field 
 - [GraphQL API] Changed the 
SetCartLineItemShippingDetailstype:SetCartLineItemShippingDetails.lineItemIdinput field type changed fromString!toString- Input field 
lineItemKeywas added toSetCartLineItemShippingDetailstype 
 - [GraphQL API] Changed the 
SetCartLineItemTotalPricetype:SetCartLineItemTotalPrice.lineItemIdinput field type changed fromString!toString- Input field 
lineItemKeywas added toSetCartLineItemTotalPricetype 
 - [GraphQL API] Changed the 
SetCartLineItemTaxRatetype:- Input field 
lineItemKeywas added toSetCartLineItemTaxRatetype SetCartLineItemTaxRate.lineItemIdinput field type changed fromString!toString
 - Input field 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemShippingDetailstype:SetStagedOrderLineItemShippingDetails.lineItemIdinput field type changed fromString!toString- Input field 
lineItemKeywas added toSetStagedOrderLineItemShippingDetailstype 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemCustomFieldtype:- Input field 
lineItemKeywas added toSetStagedOrderLineItemCustomFieldtype SetStagedOrderLineItemCustomField.lineItemIdinput field type changed fromString!toString
 - Input field 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemCustomFieldOutputtype:SetStagedOrderLineItemCustomFieldOutput.lineItemIdfield type changed fromString!toString- Added the 
lineItemKeyfield to theSetStagedOrderLineItemCustomFieldOutputtype. 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemTotalPriceOutputtype:- Added the 
lineItemKeyfield to theSetStagedOrderLineItemTotalPriceOutputtype. SetStagedOrderLineItemTotalPriceOutput.lineItemIdfield type changed fromString!toString
 - Added the 
 - [GraphQL API] Changed the 
SetCartLineItemCustomTypetype:SetCartLineItemCustomType.lineItemIdinput field type changed fromString!toString- Input field 
lineItemKeywas added toSetCartLineItemCustomTypetype 
 - [GraphQL API] Changed the 
SetCartLineItemDistributionChanneltype:- Input field 
lineItemKeywas added toSetCartLineItemDistributionChanneltype SetCartLineItemDistributionChannel.lineItemIdinput field type changed fromString!toString
 - Input field 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemTaxAmounttype:- Input field 
lineItemKeywas added toSetStagedOrderLineItemTaxAmounttype SetStagedOrderLineItemTaxAmount.lineItemIdinput field type changed fromString!toString
 - Input field 
 - [GraphQL API] Changed the 
ApplyCartDeltaToLineItemShippingDetailsTargetstype:ApplyCartDeltaToLineItemShippingDetailsTargets.lineItemIdinput field type changed fromString!toString- Input field 
lineItemKeywas added toApplyCartDeltaToLineItemShippingDetailsTargetstype 
 - [GraphQL API] Changed the 
RemoveStagedOrderLineItemtype:RemoveStagedOrderLineItem.lineItemIdinput field type changed fromString!toString- Input field 
lineItemKeywas added toRemoveStagedOrderLineItemtype 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemTaxRateOutputtype:- Added the 
lineItemKeyfield to theSetStagedOrderLineItemTaxRateOutputtype. SetStagedOrderLineItemTaxRateOutput.lineItemIdfield type changed fromString!toString
 - Added the 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemPricetype:SetStagedOrderLineItemPrice.lineItemIdinput field type changed fromString!toString- Input field 
lineItemKeywas added toSetStagedOrderLineItemPricetype 
 - [GraphQL API] Changed the 
SetOrderLineItemCustomFieldtype:- Input field 
lineItemKeywas added toSetOrderLineItemCustomFieldtype SetOrderLineItemCustomField.lineItemIdinput field type changed fromString!toString
 - Input field 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemDistributionChanneltype:- Input field 
lineItemKeywas added toSetStagedOrderLineItemDistributionChanneltype SetStagedOrderLineItemDistributionChannel.lineItemIdinput field type changed fromString!toString
 - Input field 
 - [GraphQL API] Changed the 
SetCartLineItemSupplyChanneltype:SetCartLineItemSupplyChannel.lineItemIdinput field type changed fromString!toString- Input field 
lineItemKeywas added toSetCartLineItemSupplyChanneltype 
 - [GraphQL API] Changed the 
ChangeStagedOrderLineItemQuantityOutputtype:- Added the 
lineItemKeyfield to theChangeStagedOrderLineItemQuantityOutputtype. ChangeStagedOrderLineItemQuantityOutput.lineItemIdfield type changed fromString!toString
 - Added the 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemTaxAmountOutputtype:SetStagedOrderLineItemTaxAmountOutput.lineItemIdfield type changed fromString!toString- Added the 
lineItemKeyfield to theSetStagedOrderLineItemTaxAmountOutputtype. 
 - [GraphQL API] Changed the 
SetCartLineItemInventoryModetype:SetCartLineItemInventoryMode.lineItemIdinput field type changed fromString!toString- Input field 
lineItemKeywas added toSetCartLineItemInventoryModetype 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemPriceOutputtype:- Added the 
lineItemKeyfield to theSetStagedOrderLineItemPriceOutputtype. SetStagedOrderLineItemPriceOutput.lineItemIdfield type changed fromString!toString
 - Added the 
 - [GraphQL API] Changed the 
RemoveStagedOrderLineItemOutputtype:- Added the 
lineItemKeyfield to theRemoveStagedOrderLineItemOutputtype. RemoveStagedOrderLineItemOutput.lineItemIdfield type changed fromString!toString
 - Added the 
 - [GraphQL API] Changed the 
ChangeCartLineItemQuantitytype:ChangeCartLineItemQuantity.lineItemIdinput field type changed fromString!toString- Input field 
lineItemKeywas added toChangeCartLineItemQuantitytype 
 - [GraphQL API] Changed the 
SetOrderLineItemShippingDetailstype:- Input field 
lineItemKeywas added toSetOrderLineItemShippingDetailstype SetOrderLineItemShippingDetails.lineItemIdinput field type changed fromString!toString
 - Input field 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemCustomTypeOutputtype:- Added the 
lineItemKeyfield to theSetStagedOrderLineItemCustomTypeOutputtype. SetStagedOrderLineItemCustomTypeOutput.lineItemIdfield type changed fromString!toString
 - Added the 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemDistributionChannelOutputtype:- Added the 
lineItemKeyfield to theSetStagedOrderLineItemDistributionChannelOutputtype. SetStagedOrderLineItemDistributionChannelOutput.lineItemIdfield type changed fromString!toString
 - Added the 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemShippingDetailsOutputtype:SetStagedOrderLineItemShippingDetailsOutput.lineItemIdfield type changed fromString!toString- Added the 
lineItemKeyfield to theSetStagedOrderLineItemShippingDetailsOutputtype. 
 - [GraphQL API] Changed the 
SetOrderLineItemCustomTypetype:- Input field 
lineItemKeywas added toSetOrderLineItemCustomTypetype SetOrderLineItemCustomType.lineItemIdinput field type changed fromString!toString
 - Input field 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemTotalPricetype:SetStagedOrderLineItemTotalPrice.lineItemIdinput field type changed fromString!toString- Input field 
lineItemKeywas added toSetStagedOrderLineItemTotalPricetype 
 - [GraphQL API] Changed the 
SetCartLineItemPricetype:SetCartLineItemPrice.lineItemIdinput field type changed fromString!toString- Input field 
lineItemKeywas added toSetCartLineItemPricetype 
 - [GraphQL API] Changed the 
SetStagedOrderLineItemTaxRatetype:SetStagedOrderLineItemTaxRate.lineItemIdinput field type changed fromString!toString- Input field 
lineItemKeywas added toSetStagedOrderLineItemTaxRatetype 
 - [GraphQL API] Changed the 
RemoveCartLineItemtype:- Input field 
lineItemKeywas added toRemoveCartLineItemtype RemoveCartLineItem.lineItemIdinput field type changed fromString!toString
 - Input field 
 
The following changes were introduced in terms of GraphQL SDL:
extend type SetStagedOrderLineItemTaxRateOutput {
  lineItemKey: String
}
extend type SetStagedOrderLineItemPriceOutput {
  lineItemKey: String
}
extend type RemoveStagedOrderLineItemOutput {
  lineItemKey: String
}
extend type SetStagedOrderLineItemCustomTypeOutput {
  lineItemKey: String
}
extend type SetStagedOrderLineItemCustomFieldOutput {
  lineItemKey: String
}
extend type SetStagedOrderLineItemTotalPriceOutput {
  lineItemKey: String
}
extend type ChangeStagedOrderLineItemQuantityOutput {
  lineItemKey: String
}
extend type SetStagedOrderLineItemTaxAmountOutput {
  lineItemKey: String
}
extend type SetStagedOrderLineItemDistributionChannelOutput {
  lineItemKey: String
}
extend type SetStagedOrderLineItemShippingDetailsOutput {
  lineItemKey: String
}
extend input RemoveStagedOrderLineItem {
  lineItemKey: String
}
extend input SetCartLineItemTaxAmount {
  lineItemKey: String
}
extend input SetStagedOrderLineItemCustomType {
  lineItemKey: String
}
extend input SetCartLineItemInventoryMode {
  lineItemKey: String
}
extend input SetCartLineItemCustomField {
  lineItemKey: String
}
extend input ChangeCartLineItemQuantity {
  lineItemKey: String
}
extend input SetOrderLineItemShippingDetails {
  lineItemKey: String
}
extend input ChangeStagedOrderLineItemQuantity {
  lineItemKey: String
}
extend input SetCartLineItemShippingDetails {
  lineItemKey: String
}
extend input SetCartLineItemTotalPrice {
  lineItemKey: String
}
extend input SetCartLineItemTaxRate {
  lineItemKey: String
}
extend input SetStagedOrderLineItemShippingDetails {
  lineItemKey: String
}
extend input SetStagedOrderLineItemCustomField {
  lineItemKey: String
}
extend input SetCartLineItemCustomType {
  lineItemKey: String
}
extend input SetCartLineItemDistributionChannel {
  lineItemKey: String
}
extend input SetCartShippingMethodTaxRate {
  shippingKey: String
}
extend input SetStagedOrderLineItemTaxAmount {
  lineItemKey: String
}
extend input ApplyCartDeltaToLineItemShippingDetailsTargets {
  lineItemKey: String
}
extend input SetStagedOrderLineItemPrice {
  lineItemKey: String
}
extend input SetOrderLineItemCustomField {
  lineItemKey: String
}
extend input SetStagedOrderLineItemDistributionChannel {
  lineItemKey: String
}
extend input SetCartLineItemSupplyChannel {
  lineItemKey: String
}
extend input SetOrderLineItemCustomType {
  lineItemKey: String
}
extend input SetStagedOrderLineItemTotalPrice {
  lineItemKey: String
}
extend input SetCartLineItemPrice {
  lineItemKey: String
}
extend input SetCartShippingMethodTaxAmount {
  shippingKey: String
}
extend input SetStagedOrderLineItemTaxRate {
  lineItemKey: String
}
extend input RemoveCartLineItem {
  lineItemKey: String
}