Migrate from 2024-07 or 2024-10 to 2025-07

This guide helps migrate integrations from (2024-07 or 2024-10) to version 2025-07 of the Commerce API.

  • Set the as-store-id header using store.id from GET /stores on 2025-07.
  • Replace source_id with id where applicable.
  • Orders: stop using items.*.fulfillable_quantity; apply field renames.
  • Fulfillment: remove ship_to_location; apply field and parameter renames.
  • Stores: enforce id constraints when creating; update parameter rename.
  • Apply field constraints (values, formats, lengths) listed below.

The Base URL for the API has been updated. You must update the version in the URL path for all your API requests.

  • as-store-id: Get store.id via GET /stores (2025-07) and pass it as the value of the as-store-id header.
  • For fetching resources created by the API earlier than 2025-04, use the source_id retrieved from the earlier API as the id when calling the 2025-07 API.
  • POST /orders
  • GET /orders
  • PATCH /orders/{order_id}
PathApplies To
order.items.*.fulfillable_quantityRequest & Response
Path (Before)Path (After)Applies To
source_ididRequest & Response
order.items.*.source_idorder.items.*.idRequest & Response
items.*.source_product_iditems.*.product_idRequest & Response
items.*.source_variant_iditems.*.product_variant_idRequest & Response
customer.source_idcustomer.idRequest & Response
source_ids (GET /orders)idsGET /orders query
  • POST /products
  • GET /products/{product_id}
  • PATCH /products/{product_id}
Path (Before)Path (After)Applies To
source_ididRequest & Response
variants.*.source_idvariants.*.idRequest & Response
  • POST /fulfillments
  • GET /fulfillments
  • GET /fulfillments/{fulfillment_id}
  • PATCH /fulfillments/{fulfillment_id}
Path (Before)Path (After)Applies To
source_ididRequest & Response
source_order_idorder_idRequest & Response
line_items.*.source_idline_items.*.idRequest & Response
line_items.*.source_product_variant_idline_items.*.product_variant_idRequest & Response
source_ids (GET /fulfillments)idsGET /fulfillments query
source_order_id (GET /fulfillments)order_idGET /fulfillments query
PathApplies To
ship_to_locationRequest & Response
  • POST /stores
  • GET /stores
  • GET /stores/{store_id}
  • PATCH /stores/{store_id}
Path (Before)Path (After)Applies To
source_id (POST /stores request)idRequest body
source_ids (GET /stores query)idsGET /stores query
RuleApplies To
Store id must not start with prefix app-POST /stores
Store id must be unique within the organizationPOST /stores
FieldTypeBeforeAfter
order_totalNumberNo specific limitationAccepting values >= 0 only.
shipping_totalNumberNo specific limitationAccepting values >= 0 only.
tax_totalNumberNo specific limitationAccepting values >= 0 only.
discount_totalNumberNo specific limitationAccepting values >= 0 only.
subtotalNumberNo specific limitationAccepting values >= 0 only.
items.*.quantityNumberAccepting values < 0 or > 0Accepting values > 0 only.
items.*.unit_weight.valueNumberNo specific limitationAccepting values >= 0 only.
items.*.unit_price.amountNumberNo specific limitationAccepting values >= 0 only.
items.*.discountNumberNo specific limitationAccepting values >= 0 only.
items.*.taxNumberNo specific limitationAccepting values >= 0 only.
items.*.returnable_quantityNumberNo specific limitationAccepting values >= 0 only.
customer.emails[].*StringNo specific limitationMax string length: 256 ; Must be a valid email address following RFC5322.
shipping_address.emailStringMax string length: 254Max string length: 256 ; Must be a valid email address following RFC5322.
billing_address.emailStringMax string length: 254Max string length: 256 ; Must be a valid email address following RFC5322.
FieldTypeBeforeAfter
variants.*.available_quantityNumberNo specific limitationAccepting values >= 0 only.
variants.*.priceNumberNo specific limitationAccepting values >= 0 only.
variants.*.compare_at_priceNumberNo specific limitationAccepting values >= 0 only.
variants.*.weight.valueNumberNo specific limitationAccepting values >= 0 only.
FieldTypeBeforeAfter
support_emailStringMax string length: 254Max string length: 256 ; Must be a valid email address following RFC5322.
owner_emailStringMax string length: 254Max string length: 256 ; Must be a valid email address following RFC5322.