Shopify V2

Shopify ETL connector for data replication

While we get the Shopify OAuth App ready to use on Daton, we request you create a Private Custom App and Generate a New Access Token from your Shopify Store.

If you are facing any issues with the Shopify OAuth flow, please click here to Generate a New Shopify Access Token.

Table mapping between V1 and V2

  • One of the major difference in V2 is that all tables that were dependent on parent will now be a separate table instead of a record column in parent table. For eg. fulfillment_orders is a dependent table on parents and it was available as a record in V1 but in V2 it will be a separate table.

  • Some additional tables such as fulfillment_events, gift_cards, disputes have been added in V2 connector.

    Note - gift_cards table is available only for Shopify Plus users and you need to reach out to your merchant success manager to get the scopes

V1
V2

orders

orders transactions refunds fulfillment_orders fulfillment_events

checkouts

abandoned_checkouts

customers

customers custome_address

products

products product_metafields

tender_transactions

tender_transactions

policies

policies

countries

countries

smart_collections

smart_collections

custom_collections

custom_collections

collects

collects

locations

locations

events

events

price_rules

price_rules

shop

shop

carrier_services

carrier_services

inventory

inventory_levels inventory_items

payouts

payouts

transactions

balance_transactions

-

disputes

-

gift_cards

-

users

Snapshot

Features

Details

Release Status

Released

Table Selection

Yes

Column Selection

Yes

Edit Integration

Yes

Replication Type Selection

No

Authentication Parameters

Shopify Shopname Shopify Access Token

Replication Type

Key Based Incremental

Replication Key

Date

Suggested Replication Frequency

1hr

Tables/APIs Supported

orders

transactions

refunds

fulfillment_orders

fulfillment_events

tender_transactions

customers

customer_address

events

products

payouts

balance_transactions

smart_collections

custom_collections

collects

abandoned_checkouts

policies

countries

shops

locations

inventory_levels

inventory_items

gift_cards

carrier_services

price_rules

disputes

order_customerjourneysummary

product_sessiondata

users

Integrate Shopify with Daton

  1. Sign in to your existing Daton account.

  2. Search for Shopify in the list of Connectors and click on the 'Configure' button.

  3. Provide the necessary Integration Name, Replication Frequency, and Replication Start Date data and click on the 'Authenticate' button. Please Note, the Integration Name would be used in creating tables for the integration and cannot be changed later.

  4. Provide your Shopify 'Shop Name' and the generated 'Access Token' and click on 'Next.' (Click here to read how to generate an Access Token in Shopify.)

  5. Post successful authentication, you will be prompted to choose from the list of available tables. Add the required Tables and click on 'Next.'

  6. Select all the fields you require for each table and Submit the integration.

  7. Once submitted, you will be prompted to select the destination for your Shop. Select your favorite destination and click on 'Confirm.'

    You will now receive a popup saying 'Integration Successful.'

    Congrats! Your Shop has been integrated with Daton.

Workflow

  1. Integrations would be in the Pending state initially and will be moved to the Active state as soon as the first job loads data successfully onto the configured warehouse.

  2. Users would be able to edit/pause/re-activate/delete integration anytime

  3. Users can view job status and process logs from the integration details page by clicking on the integration name from the active list

Table level scope

TableName
Scope Required

orders

read_orders

transactions

read_orders, read_shopify_payments_payouts

refunds

read_orders

fulfillment_orders

read_merchant_managed_fulfillment_orders/read_assigned_fulfillment_orders

fulfillment_events

read_orders

tender_transactions

read_orders

draft_orders

read_draft_orders

customers

read_customers

customer_address

read_customers

events

-

products

read_products

payouts

read_shopify_payments_payouts

balance_transactions

read_shopify_payments_payouts

collects

read_products

custom_collections

read_products

smart_collections

read_products

abandoned_checkouts

read_orders

policies

-

countries

-

shop

-

locations

read_locations

inventory_levels

read_inventory

inventory_items

read_inventory

gift_cards

read_gift_cards (Reach out to Shopify Merchant Success Manager)

users

read_users (Reach out to Shopify Merchant Success Manager)

carrier_services

read_shipping

price_rules

read_price_rules

disputes

read_shopify_payments_payouts

order_customerjourneysummary

read_orders, read_marketplace_orders, read_all_orders(if you need data for orders placed before 2 months)

product_sessiondata

Shopify Data

orders

Purpose: An order is a customer's completed request to purchase one or more products from a shop. An order is created when a customer completes the checkout process, during which time they provide an email address or phone number, billing address and payment information. This Retrieves a list of orders.

Source API Documentation: https://shopify.dev/docs/api/admin-rest/2023-04/resources/order#get-orders?status=any

Replication: Key Based Incremental

Replication Key: updated_at_min, updated_at_max

Fields

Name
Data Type

id

NUMERIC

admin_graphql_api_id

STRING

browser_ip

STRING

buyer_accepts_marketing

BOOLEAN

cart_token

STRING

checkout_id

NUMERIC

checkout_token

STRING

client_details

RECORD

confirmed

BOOLEAN

contact_email

STRING

created_at

TIMESTAMP

currency

STRING

current_subtotal_price

STRING

current_subtotal_price_set

RECORD

current_total_discounts

STRING

current_total_discounts_set

RECORD

current_total_price

STRING

current_total_price_set

RECORD

current_total_tax

STRING

current_total_tax_set

RECORD

discount_codes

RECORD

email

STRING

financial_status

STRING

gateway

STRING

landing_site

STRING

landing_site_ref

STRING

name

STRING

note_attributes

RECORD

number

NUMERIC

order_number

NUMERIC

order_status_url

STRING

payment_gateway_names

STRING

phone

STRING

presentment_currency

STRING

processed_at

TIMESTAMP

processing_method

STRING

reference

STRING

referring_site

STRING

source_identifier

STRING

source_name

STRING

subtotal_price

STRING

subtotal_price_set

RECORD

tags

STRING

tax_lines

RECORD

taxes_included

BOOLEAN

test

BOOLEAN

token

STRING

total_discounts

STRING

total_discounts_set

RECORD

total_line_items_price

STRING

total_line_items_price_set

RECORD

total_outstanding

STRING

total_price

STRING

total_price_set

RECORD

total_price_usd

STRING

total_shipping_price_set

RECORD

total_tax

STRING

total_tax_set

RECORD

total_tip_received

STRING

total_weight

NUMERIC

updated_at

TIMESTAMP

billing_address

RECORD

customer

RECORD

discount_applications

RECORD

fulfillments

RECORD

line_items

RECORD

payment_details

RECORD

refunds

RECORD

shipping_address

RECORD

shipping_lines

RECORD

transactions

Purpose: Transactions are created for every order that results in an exchange of money. This table retrieves a list of transactions.

Source API Documentation: https://shopify.dev/docs/api/admin-rest/2023-04/resources/transaction#get-orders-order-id-transactions

Replication: Key Based Incremental

Replication Key: updated_at_min, updated_at_max

Fields

Name
Data Type

id

NUMERIC

order_id

NUMERIC

kind

STRING

gateway

STRING

status

STRING

created_at

TIMESTAMP

test

BOOLEAN

authorization

STRING

parent_id

NUMERIC

processed_at

TIMESTAMP

source_name

STRING

amount

STRING

currency

STRING

payment_id

STRING

total_unsettled_set

RECORD

admin_graphql_api_id

STRING

refunds

Purpose: The Refund resource has two major components:

  • Transaction records of money returned to the customer

  • The line items included in the refund, along with restocking instructions

This table retrieves a list of refunds for an order

Source API Documentation: https://shopify.dev/docs/api/admin-rest/2023-04/resources/refund#get-orders-order-id-refunds

Replication: Key Based Incremental

Replication Key: updated_at_min, updated_at_max

Fields

Name
Data Type

id

NUMERIC

order_id

NUMERIC

created_at

TIMESTAMP

note

STRING

user_id

NUMERIC

processed_at

TIMESTAMP

restock

BOOLEAN

admin_graphql_api_id

STRING

refund_line_items

RECORD

transactions

RECORD

fulfillment_orders

Purpose: The FulfillmentOrder resource represents either an item or a group of items in an order that are to be fulfilled from the same location. There can be more than one fulfillment order for an order at a given location.This table retrieves a list of fulfillment orders for a specific order.

Source API Documentation: https://shopify.dev/docs/api/admin-rest/2023-04/resources/fulfillmentorder#get-orders-order-id-fulfillment-orders

Replication: Key Based Incremental

Replication Key: updated_at_min, updated_at_max

Fields

Name
Data Type

id

NUMERIC

order_id

NUMERIC

status

STRING

created_at

TIMESTAMP

service

STRING

updated_at

TIMESTAMP

tracking_company

STRING

location_id

NUMERIC

line_items

RECORD

tracking_number

STRING

tracking_numbers

STRING

tracking_url

STRING

tracking_urls

STRING

receipt

RECORD

name

STRING

admin_graphql_api_id

STRING

fulfillment_events

Purpose: This table retrieves a list of fulfillment events for a specific fulfillment

Source API Documentation: https://shopify.dev/docs/api/admin-rest/2023-04/resources/fulfillmentevent#get-orders-order-id-fulfillments-fulfillment-id-events

Replication: Key Based Incremental

Replication Key: updated_at_min, updated_at_max

Fields

Name
Data Type

id

NUMERIC

fulfillment_id

NUMERIC

status

STRING

message

STRING

happened_at

TIMESTAMP

city

STRING

province

STRING

country

STRING

zip

STRING

address1

STRING

latitude

STRING

longitude

STRING

shop_id

NUMERIC

created_at

TIMESTAMP

updated_at

TIMESTAMP

estimated_delivery_at

TIMESTAMP

order_id

NUMERIC

admin_graphql_api_id

STRING

tender_transactions

Purpose: Each tender transaction represents money passing between the merchant and a customer. A tender transaction with a positive amount represents a transaction where the customer paid money to the merchant. A negative amount represents a transaction where the merchant refunded money back to the customer. Tender transactions represent transactions that modify the shop's balance.

Source API Documentation: https://shopify.dev/docs/api/admin-rest/2023-04/resources/tendertransaction#get-tender-transactions

Replication: Key Based Incremental

Replication Key: processed_at_min, processed_at_max

Fields

Name
Data Type

id

NUMERIC

order_id

NUMERIC

amount

STRING

currency

STRING

test

BOOLEAN

processed_at

TIMESTAMP

remote_reference

STRING

payment_method

STRING

customers

Purpose: The Customer resource stores information about a shop's customers, such as their contact details, their order history, and whether they've agreed to receive email marketing. This table retrieves a list of customers

Source API Documentation: https://shopify.dev/docs/api/admin-rest/2023-04/resources/customer#get-customers?ids=207119551,1073339465

Replication: Key Based Incremental

Replication Key: updated_at_min, updated_at_max

Fields

Name
Data Type

id

NUMERIC

email

STRING

accepts_marketing

BOOLEAN

created_at

TIMESTAMP

updated_at

TIMESTAMP

first_name

STRING

last_name

STRING

orders_count

NUMERIC

state

STRING

total_spent

STRING

verified_email

BOOLEAN

tax_exempt

BOOLEAN

tags

STRING

currency

STRING

phone

STRING

addresses

RECORD

accepts_marketing_updated_at

TIMESTAMP

admin_graphql_api_id

STRING

default_address

RECORD

customer_address

Purpose: This table retrieves the list of address stored for all the customers

Source API Documentation: https://shopify.dev/docs/api/admin-rest/2023-04/resources/customer-address#get-customers-customer-id-addresses?limit=1

Replication: Key Based Incremental

Replication Key: updated_at_min, updated_at_max

Fields

Name
Data Type

id

NUMERIC

customer_id

NUMERIC

address1

STRING

address2

STRING

city

STRING

province

STRING

country

STRING

zip

STRING

phone

STRING

name

STRING

province_code

STRING

country_code

STRING

country_name

STRING

default

BOOLEAN

events

Purpose: Events are generated by some Shopify resources when certain actions are completed, such as the creation of an article, the fulfillment of an order, or the addition of a product. This table retrieves the list of events

Source API Documentation: https://shopify.dev/docs/api/admin-rest/2023-04/resources/event#get-events

Replication: Key Based Incremental

Replication Key: updated_at_min, updated_at_max

Fields

products

Purpose: This table retrieves the list of products in the given shopify store

Source API Documentation: https://shopify.dev/docs/api/admin-rest/2023-04/resources/product#get-products?ids=632910392,921728736

Replication: Key Based Incremental

Replication Key: updated_at_min, updated_at_max

Fields

Name
Data Type

id

NUMERIC

subject_id

NUMERIC

created_at

TIMESTAMP

subject_type

STRING

verb

STRING

arguments

STRING

message

STRING

author

STRING

description

STRING

path

STRING

payouts

Purpose: Payouts represent the movement of money between a Shopify Payments account balance and a connected bank account. This table retrieves the list of all payouts

Source API Documentation: https://shopify.dev/docs/api/admin-rest/2023-04/resources/payouts

Replication: Full Replication

Replication Key: N/A

Fields

Name
Data Type

id

NUMERIC

status

STRING

date

DATE

currency

STRING

amount

STRING

summary

RECORD

balance_transactions

Purpose: Balance Transactions make up the canonical "statement of account", or ledger for a Shopify Payments account. Every single movement of money in or out of the account is recorded here.

Source API Documentation: https://shopify.dev/docs/api/admin-rest/2023-04/resources/transactions

Replication: Full Replication

Replication Key: N/A

Fields

Name
Data Type

id

NUMERIC

type

STRING

test

BOOLEAN

payout_id

NUMERIC

payout_status

STRING

currency

STRING

amount

STRING

fee

STRING

net

STRING