Shopify
Setup Shopify with DinMo's ingestion capabilities.
Sync overview
We use hard deletes to remove records from the following tables:
ABANDONED_CHECKOUT_DISCOUNT_CODEABANDONED_CHECKOUT_LINEABANDONED_CHECKOUT_SHIPPING_LINEABANDONED_CHECKOUT_URL_TAGCOLLECTION_METAFIELDCUSTOMER_ADDRESSCUSTOMER_METAFIELDCUSTOMER_TAGCUSTOMER_TAX_EXEMPTIONDISCOUNT_ALLOCATIONDISCOUNT_APPLICATIONDRAFT_ORDER_LINEDRAFT_ORDER_LINE_TAX_LINEDRAFT_ORDER_METAFIELDDRAFT_ORDER_NOTE_ATTRIBUTEDRAFT_ORDER_TAGFULFILLMENT_ORDERFULFILLMENT_ORDER_FULFILLMENT_HOLDFULFILLMENT_ORDER_LINE_ITEMMEDIA_ERRORMEDIA_FILE_ERRORMEDIA_SOURCEMEDIA_WARNINGORDER_DISCOUNT_CODEORDER_LINEORDER_METAFIELDORDER_NOTE_ATTRIBUTEORDER_RISK_ASSESSMENTORDER_SHIPPING_LINEORDER_SHIPPING_TAX_LINEORDER_TAGORDER_URL_TAGPRICE_RULE_ENT_COLLECTIONPRICE_RULE_ENT_COUNTRYPRICE_RULE_ENT_PRODUCTPRICE_RULE_ENT_VARIANTPRICE_RULE_PREREQ_COLLECTIONPRICE_RULE_PREREQ_CUSTOMERPRICE_RULE_PREREQ_CUSTOMER_SEGMENTPRICE_RULE_PREREQ_PRODUCTPRICE_RULE_PREREQ_VARIANTPRODUCT_IMAGEPRODUCT_IMAGE_METAFIELDPRODUCT_MEDIAPRODUCT_MEDIA_METAFIELDPRODUCT_METAFIELDPRODUCT_TAGPRODUCT_VARIANTPRODUCT_VARIANT_MEDIAPRODUCT_VARIANT_METAFIELDRETURNRETURN_LINE_ITEMRETURN_SHIPPING_FEETAX_LINE
Incremental sync
We cannot track incremental updates for the following tables because the necessary parameters are not available in Shopify's API:
APPCATALOGCUSTOMER_SAVED_SEARCHCUSTOMER_SEGMENTSPRODUCT_PUBLICATIONDISCOUNT_AUTOMATIC_APPDISCOUNT_AUTOMATIC_BASICDISCOUNT_AUTOMATIC_BXGYDISCOUNT_AUTOMATIC_FREE_SHIPPINGDISCOUNT_CODE_APPDISCOUNT_CODE_BASICDISCOUNT_CODE_BXGYDISCOUNT_CODE_FREE_SHIPPINGDISCOUNT_CUSTOMER_BUYS_COLLECTIONDISCOUNT_CUSTOMER_BUYS_PRODUCTDISCOUNT_CUSTOMER_BUYS_PRODUCT_VARIANTDISCOUNT_CUSTOMER_GETS_COLLECTIONDISCOUNT_CUSTOMER_GETS_PRODUCTDISCOUNT_CUSTOMER_GETS_PRODUCT_VARIANTDISCOUNT_CUSTOMER_SEGMENT_SELECTIONDISCOUNT_CUSTOMER_SELECTIONDISCOUNT_DESTINATION_SELECTION_COUNTRYDISCOUNT_REDEEM_CODEDISCOUNT_SHAREABLE_URLDISPUTEGIFT_CARDLOCATIONMETAFIELD (SHOP)PAYOUTPUBLICATIONSHOPUSER
As a result, we sync data for the above tables once a day. However, you can sync the latest data by syncing each table manually. See our table re-sync documentation for more information. We sync metafields with the owner resource as shop once a day, and sync other resource metafields incrementally based on their parent endpoint.
We sync the following tables daily if the sync takes less than 30 minutes. Otherwise, we sync them weekly on Saturdays.
DISCOUNT_AUTOMATIC_APPDISCOUNT_AUTOMATIC_BASICDISCOUNT_AUTOMATIC_BXGYDISCOUNT_AUTOMATIC_FREE_SHIPPINGDISCOUNT_CODE_APPDISCOUNT_CODE_BASICDISCOUNT_CODE_BXGYDISCOUNT_CODE_FREE_SHIPPINGDISCOUNT_CUSTOMER_BUYS_COLLECTIONDISCOUNT_CUSTOMER_BUYS_PRODUCTDISCOUNT_CUSTOMER_BUYS_PRODUCT_VARIANTDISCOUNT_CUSTOMER_GETS_COLLECTIONDISCOUNT_CUSTOMER_GETS_PRODUCTDISCOUNT_CUSTOMER_GETS_PRODUCT_VARIANTDISCOUNT_CUSTOMER_SEGMENT_SELECTIONDISCOUNT_CUSTOMER_SELECTIONDISCOUNT_DESTINATION_SELECTION_COUNTRYDISCOUNT_REDEEM_CODEDISCOUNT_SHAREABLE_URL
Historical sync time frame
You can configure the historical sync time frame when setting up your connection to speed up both the initial sync and subsequent re-syncs. Historical sync time frame limits the amount of data synced for the following tables:
ABANDONED_APPLIED_DISCOUNTABANDONED_CHECKOUTABANDONED_CHECKOUT_DISCOUNT_CODEABANDONED_CHECKOUT_LINEABANDONED_CHECKOUT_SHIPPING_LINEABANDONED_CHECKOUT_TAX_LINEABANDONED_CHECKOUT_URL_TAGAPPLIED_GIFT_CARDCUSTOMER_VISITDISCOUNT_ALLOCATIONDISCOUNT_APPLICATIONDRAFT_ORDERDRAFT_ORDER_LINEDRAFT_ORDER_LINE_TAX_LINEDRAFT_ORDER_NOTE_ATTRIBUTEDRAFT_ORDER_TAGFULFILLMENTFULFILLMENT_EVENTFULFILLMENT_ORDERFULFILLMENT_ORDER_FULFILLMENT_HOLDFULFILLMENT_ORDER_LINE_ITEMFULFILLMENT_ORDER_LINEORDERORDER_ADJUSTMENTORDER_DISCOUNT_CODEORDER_LINEORDER_LINE_REFUNDORDER_NOTE_ATTRIBUTEORDER_RISKORDER_RISK_ASSESSMENTORDER_RISK_FACTORDER_RISK_SUMMARYORDER_SHIPPING_LINEORDER_SHIPPING_TAX_LINEORDER_TAGORDER_URL_TAGREFUNDRETURNRETURN_LINE_ITEMRETURN_SHIPPING_FEETAX_LINETENDER_TRANSACTIONTRANSACTION
We apply the selected start date only to these tables, as they contain data that you are less likely to reference later. For example, you still may want to refer to a product collection created two years ago, so we don't apply the start date to the COLLECTION table. However, you are unlikely to refer to an order created 10 years ago, which is why we apply the start date to the ORDER table.
You can modify the historical sync time frame at any time.
If you set it to an earlier date, we perform a full historical re-sync during the next scheduled sync, retrieving data starting from that new date.
If you set it to a later date, we don’t delete any existing data. Instead, we apply the new time frame only to subsequent re-syncs.
Sync limitations
If an update to a child object does not trigger an update in its parent object, we do not capture the update until the parent object is updated. For example:
If the
productVariantMetafieldobject is updated, we do not capture the update until its parent object,product, is updated.If the
damagedinventory quantity is updated, theupdatedAttimestamp of its parent object,product, remains unchanged, and we do not capture the update. However, if theavailableinventory quantity is updated, theupdatedAttimestamp of its parent object,product, is updated, and we capture the update.
Schema information
This schema applies to all DinMo accounts created on or after August 1, 2025.
Interactive Shopify Schema ERD
Metafields
DinMo supports Shopify's Metafield resource. We support the metafields of the following tables:
COLLECTIONCUSTOMERDRAFT_ORDERORDERPRODUCTPRODUCT_IMAGEPRODUCT_VARIANTSHOP
To sync your Shopify account's metafields to your destination, you must sync the METAFIELD table. Also, sync all applicable metafields of any resources for which you have configured metafields. For example, the COLLECTION_METAFIELD or CUSTOMER_METAFIELD table.
All the metafields data for the resources you have selected will appear in the METAFIELD table in your destination following the next incremental sync. The owner column indicates the resource the metafields data refers to.
Web pixels data
Our connector supports syncing web pixels event data. We sync all the standard Shopify web pixels events that are sent by the Shopify web pixels and sync them in the following tables:
ALERT_DISPLAYED_EVENTCART_ATTRIBUTE_EVENTCART_LINE_EVENTCART_VIEWED_EVENTCHECKOUT_ATTRIBUTES_EVENTCHECKOUT_DELIVERY_OPTION_EVENTCHECKOUT_DISCOUNT_APPLICATION_EVENTCHECKOUT_EVENTCHECKOUT_LINE_ITEM_DISCOUNT_ALLOCATION_EVENTCHECKOUT_LINE_ITEM_EVENTCHECKOUT_LINE_ITEM_PROPERTY_EVENTCHECKOUT_TRANSACTION_EVENTCOLLECTION_VIEWED_EVENTCOLLECTION_VIEWED_PRODUCT_VARIANT_EVENTPAGE_VIEWED_EVENTPRODUCT_ADDED_TO_CART_EVENTPRODUCT_REMOVED_FROM_CART_EVENTPRODUCT_VIEWED_EVENTSEARCH_RESULT_PRODUCT_VARIANT_EVENTSEARCH_SUBMITTED_EVENTUI_EXTENSION_ERRORED_EVENT
We use the CHECKOUT_EVENT table and its child tables to store data from the following Shopify checkout-related events:
checkout_address_info_submitted_eventcheckout_completed_eventcheckout_contact_info_submitted_eventcheckout_shipping_info_submitted_eventcheckout_started_eventpayment_info_submitted_event
You can choose what records to sync into the CHECKOUT_EVENT and its child tables by selecting or deselecting the corresponding event names in the connector schema dashboard.
Syncing empty tables and columns
The Shopify connection doesn't support the creation of empty tables and columns in your destination.
We create a table in the destination only if we can retrieve the table data from the source. If Shopify doesn’t return data for the source table, we don’t create the table in your destination.
Shopify API access scopes
DinMo requires the following authenticated access scopes for Shopify's Admin API:
read_all_ordersread_assigned_fulfillment_ordersread_customersread_discountsread_draft_ordersread_filesread_fulfillmentsread_inventoryread_localesread_locationsread_merchant_managed_fulfillment_ordersread_ordersread_price_rulesread_product_listingsread_productsread_publicationsread_returnsread_shippingread_shopify_payments_accountsread_shopify_payments_disputesread_shopify_payments_payoutsread_third_party_fulfillment_ordersread_customer_eventswrite_pixels
Last updated