API terms compliance
As part of complying with Shopify's API terms you agree to sync certain data to the merchant store.
Anchor to Customer requirementsCustomer requirements
The following table lists the types of customer updates you need to sync with Shopify. These requirements only apply to data collected or updated by your app, and only for customers that originate from the merchant's online store or Shopify POS. Sensitive personal information (as defined in the API terms) is excluded from the scope of data listed below.
Via the REST Admin API Customer resource: | Via the GraphQL Admin API Customer object: | Via the GraphQL Storefront API Customer object: |
---|---|---|
email_marketing_consent | firstName | acceptsMarketing |
state | lastName | firstName |
opt_in_level | phone | lastName |
consent_updated_at | phone | |
sms_marketing_consent | taxExempt | |
state | addresses | customerAddress |
opt_in_level | ||
consent_updated_at | ||
accepts_marketing | ||
accepts_marketing_updated_at | ||
first_name | ||
last_name | ||
addresses | ||
default_address | ||
phone | ||
currency | ||
tax_exempt |
Anchor to Order requirementsOrder requirements
There are two types of orders you must sync with Shopify:
-
Orders created from a Shopify checkout (such as from the online store or Shopify POS)
-
Orders created from a merchant's product listing on a third-party platform
- For example, if a merchant has Product A stored in Shopify and an order with Product A is created on a third-party platform, you need to sync that order with Shopify
These requirements only apply to data collected or updated by your app, and sensitive personal information (as defined in the API terms) is excluded.
Anchor to Orders from a Shopify checkoutOrders from a Shopify checkout
For orders originating from a Shopify checkout, the following table lists the types of order updates you need to sync with Shopify, along with the corresponding mutations to use. There may be cases where you can't update some orders due to Shopify restrictions. In such cases, try to sync the data. However, if Shopify blocks you, then you don't need to sync.
Type of update | Mutations to use |
---|---|
Line items or quantities | |
Discounts | |
Shipping fees | |
Customer email or shipping address | |
Refunds | |
Returns and exchanges | |
Cancellation | |
Fulfillment information and status |
|
Fulfillment tracking | |
Fulfillment services |
Anchor to Orders from a product listing on a third-party platformOrders from a product listing on a third-party platform
You'll need to import orders created from a Shopify product listing on a third-party platform using the orderCreate mutation. Include all data fields on the order, except where Shopify doesn't have the input fields to receive the data.
If you update these orders later, sync the changes with Shopify according to the requirements for orders from a Shopify checkout.