# Shopify

Shopify is an e-commerce platform. You can use Shopify as a data source when landing or replicating data with the new Shopify connector in Qlik Talend Cloud.

Shopify integration replicates data using the [Shopify GraphQL Admin API](https://shopify.dev/docs/api/admin-graphql).

See the [Schema](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#Schema) section for a list of objects available for replication.

## Preparing for authentication

To access your data, you need to authenticate the connection with your account credentials.

Information noteMake sure that the account you use has read access to the tables you want to fetch.

To set up your Shopify account, you need:

* Your Shopify store short name (the part before `.myshopify.com`).
* A Shopify app in the Shopify Dev Dashboard with a client ID and client secret.
* The app and target store in the same Shopify organization. The client credentials grant is only available for apps in your organization's Dev Dashboard installed in stores that you own. Apps distributed through the Shopify App Store or created from the store admin cannot be used with this connector.
* The app installed on the target store (installation is per store).

To create the app and retrieve your credentials:

1. Log into your [Shopify Dev Dashboard](https://accounts.shopify.com/lookup?rid=642f670f-b1dd-4f14-aaba-b48058790157&verify=1786106416-xVbUfcTXVzZO%2BU9yQ3Ww%2BwmvIwYsBqJDm3a7VxtTOhQ%3D).
2. Create a custom app for your organization.
3. Configure the app's access scopes to grant read access to the resources you intend to replicate.
4. Install the app on the store that you want to replicate.
5. Navigate to Settings, and copy-paste your client ID and client secret into a secured file.

### Access scopes to grant

Grant read access for each resource you intend to replicate. Metafields are covered by the scope of the resource they are attached to.

All tables are offered for selection regardless of which scopes have been granted, so the list you see when setting up a task does not tell you what the app can actually read. Scopes are enforced when the task runs. Grant the scopes for the tables you intend to select before running a task.

| Grant this scope | To replicate these tables |
| --- | --- |
| `read_orders` | `orders`, `order_refunds`, `order_shipping_lines`, `transactions`, `abandoned_checkouts`, `metafields_orders` |
| `read_products` | `products`, `product_variants`, `collections`, `metafields_products`, `metafields_collections` |
| `read_customers` | `customers`, `metafields_customers` |
| `read_inventory` | `inventory_items`, `inventory_levels` |
| `read_locations` | `locations`, `inventory_levels` |
| `read_assigned_fulfillment_orders`, `read_merchant_managed_fulfillment_orders`, `read_third_party_fulfillment_orders` | `fulfillment_orders` |

The `events` table returns activity log entries for store resources rather than one resource type of its own. Grant the scopes for the resources whose events you want to see.

Two scopes deserve particular attention:

* `read_all_orders`: by default, `read_orders` only exposes orders created in the last 60 days. To replicate older order history, request `read_all_orders` from Shopify. This is a restricted scope that Shopify grants on request, not one you can simply select. Without it, a start date earlier than 60 days ago returns no data before the 60-day boundary.
* `read_users`: the `author` field on the `events` table requires this scope, which Shopify makes available on Shopify Plus plans only. Where it is not granted, `events` replicates without that one field and the rest of the table is unaffected.

## Creating the connection

For more information, see [Connecting to SaaS applications](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Landing/connecting-web-applications.htm).

1. Fill in the required connection properties.

2. Provide a name for the connection in Connection name.

3. Select Open connection metadata to define metadata for the connection when it has been created.

4. Click Create.

Connection settings

| Setting | Description |
| --- | --- |
| Data gateway | Select a Data Movement gateway if required by your use case.<br><br>Information note<br><br>This field is not available with the Qlik Talend Cloud Starter subscription, as it does not support Data Movement gateway. If you have another subscription tier and do not want to use Data Movement gateway, select None.<br><br>For information on the benefits of Data Movement gateway and use cases that require it, see [Qlik Data Gateway - Data Movement](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Gateways/replication-gateway.htm). |
| Start Date | Enter the date, in the format `MM/DD/YYYY`, from which the data must be replicated from your source to your target. |
| Shopify Shop | Shopify store short name (the part before `.myshopify.com`). |
| Client ID | Client ID. |
| Client Secret | Client secret. |

## Limitations and considerations

* **Deletes are not captured.** The connector replicates inserts and updates only. A record deleted in Shopify remains in the destination. Use a periodic full reload if you need deletes reflected.
* **Order history older than 60 days needs an extra scope.** See `read_all_orders` in the access scopes section above.
* **Only one replication task per store and app can run at a time.** The `orders` table uses Shopify's bulk operations API, which allows only one bulk query per store per app at a time. If a second task starts against the same store while the first is still running, the connector waits and backs off for up to roughly ten minutes before failing. Schedule tasks so they do not overlap, or use a separate Shopify app per task.
* **Large order backfills can take a long time.** A bulk operation is submitted per date window and Shopify processes it asynchronously. Reducing Date Window Size produces more, smaller operations, which usually finishes sooner on a large store.
* **Start Date applies to the initial sync only.** Once a table has a stored bookmark, later syncs resume from it. Changing Start Date does not retroactively re-replicate data.
* **Incremental runs can re-deliver boundary records.** Each incremental run filters from the previous run's high-water mark inclusive, so records whose timestamp exactly equals it are replicated again. Records are keyed on `id`, so this resolves to an upsert in the destination rather than a duplicate.
* **Rate limits are handled automatically.** Shopify applies per-store API limits and returns `HTTP 429 Too Many Requests` when they are exceeded. The connector waits and retries. Server errors and timeouts are retried separately, up to 5 attempts, with exponential backoff.
* **Access tokens are refreshed automatically.** Shopify access tokens expire after 24 hours. The connector requests a new one as needed. The client ID and client secret do not expire, but if the secret is rotated in the Dev Dashboard the new value must be saved to the connection.
* **Selecting a table the app cannot read fails the task.** Because every table is offered regardless of scope, it is possible to select one the app has not been granted access to. The task then fails when it reaches that table. The `fulfillment_orders` table is handled differently: the connector skips it, replicates the remaining selected tables, and reports that the connection needs to be re-authorized with the fulfillment order scopes.
* **Adding a scope later requires reinstalling the app.** If you grant a new scope after installation, apply it to the app in the Dev Dashboard and reinstall the app on the store before rerunning the task.

## Schema

Information note

Schemas and naming conventions can change from version to version. It is recommended to verify your version before continuing.

Depending on your destination, table and column names may not appear as they are outlined below.

Every table carries three additional columns identifying the store the record came from: `_sdc_shop_id`, `_sdc_shop_name`, and `_sdc_shop_myshopify_domain`.

Two tables use `createdAt` as the replication key rather than `updatedAt`: `locations` (because the Shopify locations query does not support filtering on `updatedAt`, so a modified location is not picked up by an incremental run) and `transactions` (because transactions are read through their parent order, not as a top-level resource).

### abandoned\_checkouts

The `abandoned_checkouts` table contains info about abandoned checkouts. Shopify considers a checkout to be abandoned when a customer has entered billing and shipping details, but hasn’t completed the purchase.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updatedAt |
| **Useful links** | [abandoned_checkouts schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/abandoned_checkouts.json "Opens in new tab: Shopify API method")<br><br>[Shopify API method](https://shopify.dev/docs/api/admin-graphql/latest/queries/abandonedCheckouts "Opens in new tab: Shopify API method") |

abandoned\_checkouts table foreign keys

| Join abandoned\_checkouts with | on |
| --- | --- |
| [customers](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#customers) | ```<br>abandoned_checkouts.customer.id = customers.id<br>```<br><br>```<br>abandoned_checkouts.customers.lastOrder.id = customers.lastOrder.id<br>``` |
| [order_refunds](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#order-refunds) | ```<br>abandoned_checkouts.customers.lastOrder.id = order_refunds.order.id<br>```<br><br>```<br>abandoned_checkouts.lineItems.product.id = order_refunds.refundLineItems.lineItem.product.id<br>``` |
| [orders](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#orders) | ```<br>abandoned_checkouts.customers.lastOrder.id = orders.id<br>```<br><br>```<br>abandoned_checkouts.lineItems.product.id = orders.lineItems.product.id<br>``` |
| [transactions](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#transactions) | ```<br>abandoned_checkouts.customers.lastOrder.id = transactions.order.id<br>``` |
| [products](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#products) | ```<br>abandoned_checkouts.lineItems.product.id = products.id<br>``` |

abandoned\_checkouts table schema

| **note**<br><br><br>STRING |
| --- |
| **completedAt**<br><br><br>STRING |
| **billing\_address**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>phone: STRING</li><li>country: STRING</li><li>firstName: STRING</li><li>name: STRING</li><li>latitude: STRING</li><li>zip: STRING</li><li>lastName: STRING</li><li>province: STRING</li><li>address2: STRING</li><li>address1: STRING</li><li>countryCodeV2: STRING</li><li>city: STRING</li><li>company: STRING</li><li>provinceCode: STRING</li><li>longitude: STRING</li><li>coordinatesValidated: BOOLEAN</li><li>formattedArea: STRING</li><li>id: STRING</li><li>timeZone: STRING</li><li>validationResultSummary: STRING</li></ul> |
| **discountCodes**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **createdAt**<br><br><br>STRING |
| **updatedAt**<br><br><br>STRING |
| **taxLines**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>priceSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>title: STRING</li><li>rate: NUMBER</li><li>source: STRING</li><li>channelLiable: BOOLEAN</li><li>ratePercentage: NUMBER</li></ul> |
| **totalLineItemsPriceSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **id**<br><br><br>STRING |
| **name**<br><br><br>STRING |
| **totalTaxSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **shippingAddress**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>phone: STRING</li><li>country: STRING</li><li>firstName: STRING</li><li>name: STRING</li><li>latitude: STRING</li><li>zip: STRING</li><li>lastName: STRING</li><li>province: STRING</li><li>address2: STRING</li><li>address1: STRING</li><li>countryCodeV2: STRING</li><li>city: STRING</li><li>company: STRING</li><li>provinceCode: STRING</li><li>longitude: STRING</li><li>coordinatesValidated: BOOLEAN</li><li>formattedArea: STRING</li><li>id: STRING</li><li>timeZone: STRING</li><li>validationResultSummary: STRING</li></ul> |
| **abandonedCheckoutUrl**<br><br><br>STRING |
| **totalDiscountSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **taxesIncluded**<br><br><br>BOOLEAN |
| **totalDutiesSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **totalPriceSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **lineItems**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>quantity: INTEGER</li><li>sku: STRING</li><li>title: STRING</li><li>variantTitle: STRING</li><li>variant: OBJECT, which is also a nested data structure.											<ul><li>title: STRING</li><li>id: STRING</li></ul></li><li>discountedTotalPriceSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>components: ARRAY, which is also a nested data structure.											<ul><li>id: STRING</li><li>quantity: INTEGER</li><li>title: STRING</li><li>variantTitle: STRING</li></ul></li><li>customAttributes: ARRAY, which is also a nested data structure.											<ul><li>key: STRING</li><li>value: STRING</li></ul></li><li>product: OBJECT, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li><li>discountedUnitPriceSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>discountedUnitPriceWithCodeDiscount: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>originalTotalPriceSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>originalUnitPriceSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li></ul> |
| **subtotalPriceSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **customer**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>lastOrder: OBJECT, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li></ul> |

### collections

The `collections` table contains info about collections.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updatedAt |
| **Useful links** | [collections schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/collections.json "Opens in new tab: Shopify API method")<br><br>[Shopify API method](https://shopify.dev/docs/api/admin-graphql/latest/queries/collections "Opens in new tab: Shopify API method") |

collections table schema

| **id**<br><br><br>STRING |
| --- |
| **title**<br><br><br>STRING |
| **handle**<br><br><br>STRING |
| **collectionType**<br><br><br>STRING |
| **updatedAt**<br><br><br>STRING |
| **productsCount**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>count: INTEGER																							</li><li>precision: STRING																							</li></ul> |
| **sortOrder**<br><br><br>STRING |
| **ruleSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>appliedDisjunctively: BOOLEAN</li><li>rules: ARRAY, which is also a nested data structure.											<ul><li>column: STRING</li><li>condition: STRING</li><li>relation: STRING</li></ul></li></ul> |
| **seo**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>description: STRING</li><li>title: STRING</li></ul> |
| **feedback**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>summary: STRING</li></ul> |
| **products**<br><br><br>ARRAY<br><br>This is a nested data structure. |

### customers

The `customers` table contains info about the shop’s customers. This includes their contact details, order history, and email marketing preferences.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updatedAt |
| **Useful links** | [Shopify documentation](https://shopify.dev/docs/api/admin-graphql/latest/queries/customers "Opens in new tab: Shopify API method")<br><br>[customers schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/customers.json "Opens in new tab: Shopify API method") |

customers table foreign keys

| Join custom\_collections with | on |
| --- | --- |
| [abandoned_checkouts](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#abandoned-checkouts) | ```<br>customers.id = abandoned_checkouts.customers.id<br>```<br><br>```<br>customers.lastOrder.id = abandoned_checkouts.customers.lastOrder.id<br>``` |
| [order_refunds](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#order-refunds) | ```<br>customers.lastOrder.id = order_refunds.order.id<br>``` |
| [orders](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#orders) | ```<br>customers.lastOrder.id = orders.id<br>``` |
| [transactions](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#transactions) | ```<br>customers.lastOrder.id = transactions.order.id<br>``` |

customers table schema

| **email**<br><br><br>STRING |
| --- |
| **multipassIdentifier**<br><br><br>STRING |
| **defaultAddress**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>city: STRING</li><li>address1: STRING</li><li>zip: STRING</li><li>id: STRING</li><li>province: STRING</li><li>phone: STRING</li><li>country: STRING</li><li>firstName: STRING</li><li>lastName: STRING</li><li>countryCodeV2: STRING</li><li>name: STRING</li><li>provinceCode: STRING</li><li>address2: STRING</li><li>company: STRING</li><li>timeZone: STRING</li><li>validationResultSummary: STRING</li><li>latitude: STRING</li><li>longitude: STRING</li><li>coordinatesValidated: BOOLEAN</li><li>formattedArea: STRING</li></ul> |
| **numberOfOrders**<br><br><br>STRING |
| **state**<br><br><br>STRING |
| **verifiedEmail**<br><br><br>BOOLEAN |
| **firstName**<br><br><br>STRING |
| **updatedAt**<br><br><br>STRING |
| **note**<br><br><br>STRING |
| **phone**<br><br><br>STRING |
| **addresses**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>city: STRING</li><li>address1: STRING</li><li>zip: STRING</li><li>id: STRING</li><li>province: STRING</li><li>phone: STRING</li><li>country: STRING</li><li>firstName: STRING</li><li>lastName: STRING</li><li>countryCodeV2: STRING</li><li>name: STRING</li><li>provinceCode: STRING</li><li>address2: STRING</li><li>company: STRING</li><li>timeZone: STRING</li><li>validationResultSummary: STRING</li><li>latitude: STRING</li><li>longitude: STRING</li><li>coordinatesValidated: BOOLEAN</li><li>formattedArea: STRING</li></ul> |
| **lastName**<br><br><br>STRING |
| **tags**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **taxExempt**<br><br><br>BOOLEAN |
| **id**<br><br><br>STRING |
| **createdAt**<br><br><br>STRING |
| **taxExemptions**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **emailMarketingConsent**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>consentUpdatedAt: STRING</li><li>marketingOptInLevel: STRING</li><li>marketingState: STRING</li></ul> |
| **smsMarketingConsent**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>consentCollectedFrom: STRING</li><li>consentUpdatedAt: STRING</li><li>marketingOptInLevel: STRING</li><li>marketingState: STRING</li></ul> |
| **validEmailAddress**<br><br><br>BOOLEAN |
| **productSubscriberStatus**<br><br><br>STRING |
| **amountSpent**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul> |
| **dataSaleOptOut**<br><br><br>BOOLEAN |
| **displayName**<br><br><br>STRING |
| **locale**<br><br><br>STRING |
| **lifetimeDuration**<br><br><br>STRING |
| **lastOrder**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |

### events

The `events` table contains info about events in the shop.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | createdAt |
| **Useful links** | [Shopify documentation](https://shopify.dev/docs/api/admin-graphql/latest/queries/event)<br><br>[events schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/events.json "Opens in new tab: Shopify API method") |

events table schema

| **id**<br><br><br>STRING |
| --- |
| **createdAt**<br><br><br>STRING |
| **action**<br><br><br>STRING |
| **appTitle**<br><br><br>STRING |
| **attributeToApp**<br><br><br>BOOLEAN |
| **attributeToUser**<br><br><br>BOOLEAN |
| **criticalAlert**<br><br><br>BOOLEAN |
| **message**<br><br><br>STRING |
| **subjectId**<br><br><br>STRING |
| **subjectType**<br><br><br>STRING |
| **additionalContent**<br><br><br>STRING |
| **additionalData**<br><br><br>STRING |
| **arguments**<br><br>ARRAY<br><br>This is a nested data structure. |
| **hasAdditionalContent**<br><br><br>BOOLEAN |
| **secondaryMessage**<br><br><br>STRING |
| **attachments**<br><br>ARRAY<br><br>This is a nested data structure. |
| **author**<br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |
| **canDelete**<br><br><br>BOOLEAN |
| **canEdit**<br><br><br>BOOLEAN |
| **edited**<br><br><br>BOOLEAN |
| **rawMessage**<br><br><br>STRING |

### fulfillment\_orders

The `fulfillment_orders` table contains datails about fulfillment orders.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [Shopify documentation](https://shopify.dev/docs/api/admin-graphql/latest/queries/fulfillmentorders)<br><br>[fulfillment_orders schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/fulfillment_orders.json "Opens in new tab: Shopify API method") |

fulfillment\_orders table schema

| **id**<br><br><br>STRING |
| --- |
| **orderId**<br><br><br>STRING |
| **updatedAt**<br><br><br>STRING |
| **supportedActions**<br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>action: STRING</li><li>externalUrl: STRING</li></ul> |
| **status**<br><br><br>STRING |
| **requestStatus**<br><br><br>STRING |
| **orderProcessedAt**<br><br><br>STRING |
| **orderName**<br><br><br>STRING |
| **channelId**<br><br><br>STRING |
| **fulfillAt**<br><br><br>STRING |
| **fulfillBy**<br><br><br>STRING |
| **createdAt**<br><br><br>STRING |
| **destination**<br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>address1: STRING</li><li>address2: STRING</li><li>city: STRING</li><li>province: STRING</li><li>zip: STRING</li><li>countryCode: STRING</li><li>company: STRING</li><li>email: STRING</li><li>firstName: STRING</li><li>lastName: STRING</li><li>phone: STRING</li><li>id: STRING</li><li>location: OBJECT, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li></ul> |
| **fulfillmentHolds**<br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>displayReason: STRING</li><li>handle: STRING</li><li>reason: STRING</li><li>reasonNotes: STRING</li><li>id: STRING</li><li>heldByRequestingApp: BOOLEAN</li></ul> |
| **internationalDuties**<br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>methodType: STRING</li><li>presentedName: STRING</li><li>serviceCode: STRING</li><li>sourceReference: STRING</li><li>minDeliveryDateTime: STRING</li><li>maxDeliveryDateTime: STRING</li><li>brandedPromise: OBJECT, which is also a nested data structure.											<ul><li>handle: STRING</li><li>name: STRING</li></ul></li><li>additionalInformation: OBJECT, which is also a nested data structure.											<ul><li>instructions: STRING</li><li>phone: STRING</li></ul></li></ul> |
| **deliveryMethod**<br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>methodType: STRING</li><li>presentedName: STRING</li><li>serviceCode: STRING</li><li>sourceReference: STRING</li><li>minDeliveryDateTime: STRING</li><li>maxDeliveryDateTime: STRING</li><li>brandedPromise: OBJECT, which is also a nested data structure.											<ul><li>handle: STRING</li><li>name: STRING</li></ul></li><li>additionalInformation: OBJECT, which is also a nested data structure.											<ul><li>instructions: STRING</li><li>phone: STRING</li></ul></li></ul> |
| **assignedLocation**<br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>address1: STRING</li><li>address2: STRING</li><li>city: STRING</li><li>province: STRING</li><li>zip: STRING</li><li>countryCode: STRING</li><li>name: STRING</li><li>phone: STRING</li><li>location: OBJECT, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li></ul> |
| **merchantRequests**<br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>kind: STRING</li><li>message: STRING</li><li>requestOptions: OBJECT, which is also a nested data structure.</li><li>responseData: OBJECT, which is also a nested data structure.</li><li>sentAt: STRING</li><li>fulfillmentOrder: OBJECT, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li></ul> |
| **locationsForMove**<br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>message: STRING</li><li>movable: BOOLEAN</li><li>unavailableLineItemsCount: OBJECT, which is also a nested data structure.											<ul><li>count: INTEGER</li><li>precision: STRING</li></ul></li><li>availableLineItemsCount: OBJECT, which is also a nested data structure.											<ul><li>count: INTEGER</li><li>precision: STRING</li></ul></li><li>location: OBJECT, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li><li>availableLineItems: ARRAY, which is also a nested data structure.</li><li>unavailableLineItems: ARRAY, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li></ul> |
| **fulfillmentOrdersForMerge**<br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |
| **fulfillments**<br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>name: STRING</li><li>status: STRING</li><li>displayStatus: STRING</li><li>requiresShipping: BOOLEAN</li><li>totalQuantity: INTEGER</li><li>createdAt: STRING</li><li>updatedAt: STRING</li><li>inTransitAt: STRING</li><li>deliveredAt: STRING</li><li>estimatedDeliveryAt: STRING</li><li>originAddress: OBJECT, which is also a nested data structure.											<ul><li>address1: STRING</li><li>address2: STRING</li><li>city: STRING</li><li>provinceCode: STRING</li><li>zip: STRING</li><li>countryCode: STRING</li></ul></li><li>trackingInfo: ARRAY, which is also a nested data structure.											<ul><li>company: STRING</li><li>number: STRING</li><li>url: STRING</li></ul></li><li>service: OBJECT, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li><li>location: OBJECT, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li><li>fulfillmentOrders: ARRAY, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li><li>fulfillmentLineItems: ARRAY, which is also a nested data structure.											<ul><li>id: STRING</li><li>quantity: NUMBER</li><li>originalTotalSet: OBJECT, which is also a nested data structure.													<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.															<ul><li>currencyCode: STRING</li><li>amount: NUMBER</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.															<ul><li>currencyCode: STRING</li><li>amount: NUMBER</li></ul></li></ul></li><li>discountedTotalSet: OBJECT, which is also a nested data structure.													<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.															<ul><li>currencyCode: STRING</li><li>amount: NUMBER</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.															<ul><li>currencyCode: STRING</li><li>amount: NUMBER</li></ul></li></ul></li><li>lineItem: OBJECT, which is also a nested data structure.													<ul><li>id: STRING</li></ul></li></ul></li><li>legacyResourceId: STRING</li><li>order: OBJECT, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li><li>events: ARRAY, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li></ul> |
| **legacyResourceId**<br><br><br>STRING |
| **order**<br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |
| **events**<br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |

### inventory\_items

The `inventory_items` table contains info about items in a shop.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updatedAt |
| **Useful links** | [Shopify documentation](https://shopify.dev/docs/api/admin-graphql/latest/queries/inventoryitems)<br><br>[inventory_items schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/inventory_items.json "Opens in new tab: Shopify API method") |

inventory\_items table schema

| **id**<br><br><br>STRING |
| --- |
| **sku**<br><br><br>STRING |
| **createdAt**<br><br><br>STRING |
| **updatedAt**<br><br><br>STRING |
| **requiresShipping**<br><br><br>BOOLEAN |
| **unitCost**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>amount: STRING</li></ul> |
| **countryCodeOfOrigin**<br><br><br>STRING |
| **provinceCodeOfOrigin**<br><br><br>STRING |
| **harmonizedSystemCode**<br><br><br>STRING |
| **tracked**<br><br><br>BOOLEAN |
| **countryHarmonizedSystemCodes**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>countryCode: STRING</li><li>harmonizedSystemCode: STRING</li></ul> |

### inventory\_levels

The `inventory_levels` table contains info about quantities of an inventory item for a location.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Keys** | id |
| **Replication Key** | updatedAt |
| **Useful links** | [Shopify documentation](https://shopify.dev/docs/api/admin-graphql/latest/queries/inventorylevel)<br><br>[inventory_levels schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/inventory_levels.json "Opens in new tab: Shopify API method") |

inventory\_levels table schema

| **id**<br><br><br>STRING |
| --- |
| **canDeactivate**<br><br><br>BOOLEAN |
| **createdAt**<br><br><br>STRING |
| **updatedAt**<br><br><br>STRING |
| **deactivationAlert**<br><br><br>STRING |
| **item**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>variant: OBJECT, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li></ul> |
| **location**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |
| **quantities**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>name: STRING</li><li>quantity: INTEGER</li><li>updatedAt: STRING</li></ul> |

### locations

The `locations` table contains info about locations.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | createdAt |
| **Useful links** | [Shopify documentation](https://shopify.dev/docs/api/admin-graphql/latest/queries/locations)<br><br>[locations schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/locations.json "Opens in new tab: Shopify API method") |

locations table schema

| **id**<br><br><br>STRING |
| --- |
| **name**<br><br><br>STRING |
| **updatedAt**<br><br><br>STRING |
| **createdAt**<br><br><br>STRING |
| **isActive**<br><br><br>BOOLEAN |
| **addressVerified**<br><br><br>BOOLEAN |
| **deactivatable**<br><br><br>BOOLEAN |
| **deactivatedAt**<br><br><br>STRING |
| **deletable**<br><br><br>BOOLEAN |
| **fulfillsOnlineOrders**<br><br><br>BOOLEAN |
| **hasActiveInventory**<br><br><br>BOOLEAN |
| **hasUnfulfilledOrders**<br><br><br>BOOLEAN |
| **isFulfillmentService**<br><br><br>BOOLEAN |
| **legacyResourceId**<br><br><br>STRING |
| **shipsInventory**<br><br><br>BOOLEAN |
| **address**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>countryCode: STRING</li><li>address1: STRING</li><li>city: STRING</li><li>address2: STRING</li><li>provinceCode: STRING</li><li>zip: STRING</li><li>province: STRING</li><li>phone: STRING</li><li>country: STRING</li><li>formatted: ARRAY, which is also a nested data structure.</li><li>latitude: STRING</li><li>longitude: STRING</li></ul> |
| **localPickupSettingsV2**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>instructions: STRING</li><li>pickupTime: STRING</li></ul> |

### metafields\_collections

The `metafields_collections` table contains info about metafields for collections.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updatedAt |
| **Useful links** | [Shopify API method](https://shopify.dev/docs/api/admin-graphql/latest/objects/metafield "Opens in new tab: Shopify API method")<br><br>[metafields_collections schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/metafields_collections.json "Opens in new tab: Shopify API method") |

metafields\_collections table schema

| **owner**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |
| --- |
| **ownerType**<br><br><br>STRING |
| **value\_type**<br><br><br>STRING |
| **key**<br><br><br>STRING |
| **createdAt**<br><br><br>STRING |
| **id**<br><br><br>STRING |
| **namespace**<br><br><br>STRING |
| **description**<br><br><br>STRING |
| **value**<br><br><br>INTEGER, OBJECT, STRING<br><br>This is a nested data structure. |
| **updatedAt**<br><br><br>STRING |
| **type**<br><br><br>STRING |

### metafields\_customers

The `metafields_customers` table contains info about metafields for customers.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updatedAt |
| **Useful links** | [Shopify API method](https://shopify.dev/docs/api/admin-graphql/latest/objects/metafield "Opens in new tab: Shopify API method")<br><br>[metafields_customers schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/metafields_customers.json "Opens in new tab: Shopify API method") |

metafields\_customers table schema

| **owner**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |
| --- |
| **ownerType**<br><br><br>STRING |
| **value\_type**<br><br><br>STRING |
| **key**<br><br><br>STRING |
| **createdAt**<br><br><br>STRING |
| **id**<br><br><br>STRING |
| **namespace**<br><br><br>STRING |
| **description**<br><br><br>STRING |
| **value**<br><br><br>INTEGER, OBJECT, STRING<br><br>This is a nested data structure. |
| **updatedAt**<br><br><br>STRING |
| **type**<br><br><br>STRING |

### metafields\_orders

The `metafields_orders` table contains info about metafields for orders.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updatedAt |
| **Useful links** | [Shopify API method](https://shopify.dev/docs/api/admin-graphql/latest/objects/metafield "Opens in new tab: Shopify API method")<br><br>[metafields_orders schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/metafields_orders.json "Opens in new tab: Shopify API method") |

metafields\_orders table schema

| **owner**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |
| --- |
| **ownerType**<br><br><br>STRING |
| **value\_type**<br><br><br>STRING |
| **key**<br><br><br>STRING |
| **createdAt**<br><br><br>STRING |
| **id**<br><br><br>STRING |
| **namespace**<br><br><br>STRING |
| **description**<br><br><br>STRING |
| **value**<br><br><br>INTEGER, OBJECT, STRING<br><br>This is a nested data structure. |
| **updatedAt**<br><br><br>STRING |
| **type**<br><br><br>STRING |

### metafields\_products

The `metafields_products` table contains info about metafields for products.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updatedAt |
| **Useful links** | [Shopify API method](https://shopify.dev/docs/api/admin-graphql/latest/objects/metafield "Opens in new tab: Shopify API method")<br><br>[metafields_products schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/metafields_products.json "Opens in new tab: Shopify API method") |

metafields\_products table schema

| **owner**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |
| --- |
| **ownerType**<br><br><br>STRING |
| **value\_type**<br><br><br>STRING |
| **key**<br><br><br>STRING |
| **createdAt**<br><br><br>STRING |
| **id**<br><br><br>STRING |
| **namespace**<br><br><br>STRING |
| **description**<br><br><br>STRING |
| **updatedAt**<br><br><br>STRING |
| **value**<br><br><br>INTEGER, OBJECT, STRING<br><br>This is a nested data structure. |
| **type**<br><br><br>STRING |

### order\_refunds

The `order_refunds` table contains info about refunds associated with orders.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | createdAt |
| **Useful links** | [Shopify API method](https://shopify.dev/Content/admin-api/rest/reference/orders/refund?api[version]=2019-07 "Opens in new tab: Shopify API method")<br><br>[order_refunds schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/order_refunds.json "Opens in new tab: Shopify API method") |

order\_refunds table foreign keys

| Join order\_refunds with | on |
| --- | --- |
| [abandoned_checkouts](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#abandoned-checkouts) | ```<br>order_refunds.order.id = abandoned_checkouts.customers.lastOrder.id<br>```<br><br>```<br>order_refunds.refundLineItems.lineItem.product.id = abandoned_checkouts.lineItems.product.id<br>``` |
| [customers](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#customers) | ```<br>order_refunds.order.id = customers.lastOrder.id<br>``` |
| [orders](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#orders) | ```<br>order_refunds.order.id = orders.id<br>```<br><br>```<br>order_refunds.refundLineItems.lineItem.product.id = orders.lineItems.product.id<br>``` |
| [transactions](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#transactions) | ```<br>order_refunds.order.id = transactions.order.id<br>``` |
| [products](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#products) | ```<br>order_refunds.refundLineItems.lineItem.product.id = products.id<br>``` |

order\_refunds table schema

| **id**<br><br><br>STRING |
| --- |
| **createdAt**<br><br><br>STRING |
| **legacyResourceId**<br><br><br>STRING |
| **note**<br><br><br>STRING |
| **order**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |
| **refundLineItems**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>quantity: INTEGER</li><li>priceSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>restockType: STRING</li><li>restocked: BOOLEAN</li><li>location: OBJECT, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li><li>subtotalSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>totalTaxSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>lineItem: OBJECT, which is also a nested data structure.											<ul><li>id: STRING</li><li>vendor: STRING</li><li>quantity: INTEGER</li><li>title: STRING</li><li>requiresShipping: BOOLEAN</li><li>originalTotalSet: OBJECT, which is also a nested data structure.													<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>taxLines: ARRAY, which is also a nested data structure.													<ul><li>priceSet: OBJECT, which is also a nested data structure.															<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.																	<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.																	<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>rate: NUMBER</li><li>title: STRING</li><li>source: STRING</li><li>channelLiable: BOOLEAN</li></ul></li><li>taxable: BOOLEAN</li><li>isGiftCard: BOOLEAN</li><li>name: STRING</li><li>discountedTotalSet: OBJECT, which is also a nested data structure.													<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>sku: STRING</li><li>product: OBJECT, which is also a nested data structure.													<ul><li>id: STRING</li></ul></li><li>discountAllocations: ARRAY, which is also a nested data structure.													<ul><li>allocatedAmountSet: OBJECT, which is also a nested data structure.															<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.																	<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.																	<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>discountApplication: OBJECT, which is also a nested data structure.															<ul><li>index: INTEGER</li><li>targetType: STRING</li><li>targetSelection: STRING</li><li>allocationMethod: STRING</li><li>value: OBJECT, which is also a nested data structure.																	<ul><li>__typename: STRING</li><li>amount: NUMBER</li><li>currencyCode: STRING</li><li>percentage: NUMBER</li></ul></li></ul></li></ul></li><li>customAttributes: ARRAY, which is also a nested data structure.													<ul><li>key: STRING</li><li>value: STRING</li></ul></li><li>totalDiscountSet: OBJECT, which is also a nested data structure.													<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>duties: ARRAY, which is also a nested data structure.													<ul><li>harmonizedSystemCode: STRING</li><li>id: STRING</li><li>taxLines: ARRAY, which is also a nested data structure.															<ul><li>rate: NUMBER</li><li>source: STRING</li><li>title: STRING</li><li>channelLiable: BOOLEAN</li><li>priceSet: OBJECT, which is also a nested data structure.																	<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.																			<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.																			<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li></ul></li><li>countryCodeOfOrigin: STRING</li></ul></li><li>discountedUnitPriceSet: OBJECT, which is also a nested data structure.													<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li></ul></li></ul> |
| **orderAdjustments**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>amountSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>id: STRING</li><li>reason: STRING</li><li>taxAmountSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li></ul> |
| **updatedAt**<br><br><br>STRING |

### order\_shipping\_lines

The `order_shipping_lines` table contains the shipping details that the customer chose for their order.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Useful links** | [Shopify API method](https://shopify.dev/docs/api/admin-graphql/latest/objects/ShippingLine "Opens in new tab: Shopify API method")<br><br>[order_shipping_lines schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/order_shipping_lines.json "Opens in new tab: Shopify API method") |

order\_shipping\_lines table schema

| **carrierIdentifier**<br><br><br>STRING |
| --- |
| **code**<br><br><br>STRING |
| **orderId**<br><br><br>STRING |
| **currentDiscountedPriceSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **custom**<br><br><br>BOOLEAN |
| **deliveryCategory**<br><br><br>STRING |
| **discountAllocations**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>allocatedAmountSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>discountApplication: OBJECT, which is also a nested data structure.											<ul><li>__typename: STRING</li><li>allocationMethod: STRING</li><li>index: INTEGER</li><li>targetSelection: STRING</li><li>targetType: STRING</li><li>title: STRING</li><li>code: STRING</li><li>description: STRING</li><li>value: OBJECT, which is also a nested data structure.													<ul><li>__typename: STRING</li><li>amount: STRING</li><li>currencyCode: STRING</li><li>percentage: NUMBER</li></ul></li></ul></li></ul> |
| **discountedPriceSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **id**<br><br><br>STRING |
| **isRemoved**<br><br><br>BOOLEAN |
| **originalPriceSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **phone**<br><br><br>STRING |
| **shippingRateHandle**<br><br><br>STRING |
| **source**<br><br><br>STRING |
| **taxLines**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>channelLiable: BOOLEAN</li><li>priceSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>rate: NUMBER</li><li>ratePercentage: STRING</li><li>source: STRING</li><li>title: STRING</li></ul> |
| **title**<br><br><br>STRING |
| **updatedAt**<br><br><br>STRING |

### orders

The `orders` table contains info about a shop’s completed orders.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updatedAt |
| **Useful links** | [Shopify documentation](https://shopify.dev/docs/api/admin-graphql/latest/queries/orders)<br><br>[orders schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/orders.json "Opens in new tab: Shopify API method") |

orders table foreign keys

| Join orders with | on |
| --- | --- |
| [abandoned_checkouts](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#abandoned-checkouts) | ```<br>orders.id = abandoned_checkouts.customers.lastOrder.id<br>```<br><br>```<br>orders.lineItems.product.id = abandoned_checkouts.lineItems.product.id<br>``` |
| [customers](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#customers) | ```<br>orders.id = customers.lastOrder.id<br>``` |
| [order_refunds](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#order-refunds) | ```<br>orders.id = order_refunds.order.id<br>```<br><br>```<br>orders.lineItems.product.id = order_refunds.refundLineItems.lineItem.product.id<br>``` |
| [transactions](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#transactions) | ```<br>orders.id = transactions.order.id<br>``` |
| [products](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#products) | ```<br>orders.lineItems.product.id = products.id<br>``` |

orders table schema

| **additionalFees**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>name: STRING</li><li>price: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>taxLines: ARRAY, which is also a nested data structure.											<ul><li>channelLiable: BOOLEAN</li><li>priceSet: OBJECT, which is also a nested data structure.													<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>rate: NUMBER</li><li>ratePercentage: NUMBER</li><li>source: STRING</li><li>title: STRING</li></ul></li></ul> |
| --- |
| **app**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>name: STRING</li><li>icon: OBJECT, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li></ul> |
| **billingAddress**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>address1: STRING</li><li>address2: STRING</li><li>city: STRING</li><li>company: STRING</li><li>coordinatesValidated: BOOLEAN</li><li>country: STRING</li><li>countryCodeV2: STRING</li><li>firstName: STRING</li><li>formattedArea: STRING</li><li>id: STRING</li><li>lastName: STRING</li><li>latitude: NUMBER</li><li>longitude: NUMBER</li><li>name: STRING</li><li>phone: STRING</li><li>province: STRING</li><li>provinceCode: STRING</li><li>timeZone: STRING</li><li>validationResultSummary: STRING</li><li>zip: STRING</li></ul> |
| **billingAddressMatchesShippingAddress**<br><br><br>BOOLEAN |
| **canMarkAsPaid**<br><br><br>BOOLEAN |
| **canNotifyCustomer**<br><br><br>BOOLEAN |
| **cancelReason**<br><br><br>STRING |
| **cancellation**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>staffNote: STRING</li></ul> |
| **cancelledAt**<br><br><br>STRING |
| **capturable**<br><br><br>BOOLEAN |
| **cartDiscountAmountSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **channelInformation**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>channelId: STRING</li></ul> |
| **clientIp**<br><br><br>STRING |
| **closed**<br><br><br>BOOLEAN |
| **closedAt**<br><br><br>STRING |
| **confirmationNumber**<br><br><br>STRING |
| **confirmed**<br><br><br>BOOLEAN |
| **createdAt**<br><br><br>STRING |
| **currencyCode**<br><br><br>STRING |
| **currentCartDiscountAmountSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **currentShippingPriceSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **currentSubtotalLineItemsQuantity**<br><br><br>INTEGER |
| **currentSubtotalPriceSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **currentTotalAdditionalFeesSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **currentTotalDiscountsSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **currentTotalDutiesSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **currentTotalPriceSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **currentTotalTaxSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **currentTotalWeight**<br><br><br>NUMBER |
| **customer**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>email: STRING</li><li>firstName: STRING</li><li>lastName: STRING</li><li>state: STRING</li><li>verifiedEmail: BOOLEAN</li><li>lastOrder: OBJECT, which is also a nested data structure.											<ul><li>id: STRING</li></ul></li><li>updatedAt: STRING</li><li>createdAt: STRING</li><li>note: STRING</li><li>multipassIdentifier: STRING</li><li>tags: STRING</li><li>taxExempt: STRING</li><li>taxExemptions: STRING</li><li>defaultAddress: OBJECT, which is also a nested data structure.											<ul><li>address1: STRING</li><li>address2: STRING</li><li>city: STRING</li><li>countryCodeV2: STRING</li><li>province: STRING</li><li>zip: STRING</li><li>id: STRING</li><li>country: STRING</li><li>lastName: STRING</li><li>phone: STRING</li><li>firstName: STRING</li><li>name: STRING</li><li>provinceCode: STRING</li><li>company: STRING</li></ul></li><li>addresses: ARRAY, which is also a nested data structure.											<ul><li>address1: STRING</li><li>address2: STRING</li><li>city: STRING</li><li>countryCodeV2: STRING</li><li>province: STRING</li><li>zip: STRING</li><li>id: STRING</li><li>country: STRING</li><li>lastName: STRING</li><li>phone: STRING</li><li>firstName: STRING</li><li>name: STRING</li><li>provinceCode: STRING</li><li>company: STRING</li></ul></li></ul> |
| **customerJourneySummary**<br><br><br>OBJECT<br><br>This is a nested data structure. |
| **merchantOfRecordApp**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |
| **customerAcceptsMarketing**<br><br><br>BOOLEAN |
| **customerLocale**<br><br><br>STRING |
| **discountCodes**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **discountCode**<br><br><br>STRING |
| **displayFinancialStatus**<br><br><br>STRING |
| **displayFulfillmentStatus**<br><br><br>STRING |
| **disputes**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>initiatedAs: STRING</li><li>status: STRING</li></ul> |
| **dutiesIncluded**<br><br><br>BOOLEAN |
| **email**<br><br><br>STRING |
| **estimatedTaxes**<br><br><br>BOOLEAN |
| **fulfillable**<br><br><br>BOOLEAN |
| **fullyPaid**<br><br><br>BOOLEAN |
| **hasTimelineComment**<br><br><br>BOOLEAN |
| **fulfillmentsCount**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>count: INTEGER</li><li>precisions: STRING</li></ul> |
| **id**<br><br><br>STRING |
| **legacyResourceId**<br><br><br>STRING |
| **merchantBusinessEntity**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>address: OBJECT, which is also a nested data structure.											<ul><li>address1: STRING</li><li>address2: STRING</li><li>city: STRING</li><li>countryCode: STRING</li><li>province: STRING</li><li>zip: STRING</li></ul></li><li>companyName: STRING</li><li>displayName: STRING</li><li>id: STRING</li><li>primary: BOOLEAN</li></ul> |
| **name**<br><br><br>STRING |
| **note**<br><br><br>STRING |
| **netPaymentSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **originalTotalAdditionalFeesSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **originalTotalDutiesSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **originalTotalPriceSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **paymentGatewayNames**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **phone**<br><br><br>STRING |
| **poNumber**<br><br><br>STRING |
| **presentmentCurrencyCode**<br><br><br>STRING |
| **processedAt**<br><br><br>STRING |
| **refundable**<br><br><br>BOOLEAN |
| **refundDiscrepancySet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **registeredSourceUrl**<br><br><br>STRING |
| **requiresShipping**<br><br><br>STRING |
| **restockable**<br><br><br>STRING |
| **returnStatus**<br><br><br>STRING |
| **shippingAddress**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>address1: STRING</li><li>address2: STRING</li><li>city: STRING</li><li>company: STRING</li><li>coordinatesValidated: BOOLEAN</li><li>country: STRING</li><li>countryCodeV2: STRING</li><li>firstName: STRING</li><li>formattedArea: STRING</li><li>id: STRING</li><li>lastName: STRING</li><li>latitude: NUMBER</li><li>longitude: NUMBER</li><li>name: STRING</li><li>phone: STRING</li><li>province: STRING</li><li>provinceCode: STRING</li><li>timeZone: STRING</li><li>validationResultSummary: STRING</li><li>zip: STRING</li></ul> |
| **shopifyProtect**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>eligibility: OBJECT, which is also a nested data structure.											<ul><li>status: STRING</li></ul></li><li>status: STRING</li></ul> |
| **sourceIdentifier**<br><br><br>STRING |
| **sourceName**<br><br><br>STRING |
| **statusPageUrl**<br><br><br>STRING |
| **subtotalLineItemsQuantity**<br><br><br>INTEGER |
| **subtotalPriceSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **tags**<br><br><br>ARRAY<br><br>This is a nested data structure. |
| **taxExempt**<br><br><br>BOOLEAN |
| **taxLines**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>channelLiable: BOOLEAN</li><li>priceSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>rate: NUMBER</li><li>ratePercentage: NUMBER</li><li>source: STRING</li><li>title: STRING</li></ul> |
| **taxesIncluded**<br><br><br>BOOLEAN |
| **test**<br><br><br>BOOLEAN |
| **totalCapturableSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **totalCashRoundingAdjustment**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><ul><li>paymentSet: OBJECT, which is also a nested data structure.												<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.														<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.														<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>refundSet: OBJECT, which is also a nested data structure.												<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.														<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.														<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li></ul></ul> |
| **totalDiscountsSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **totalOutstandingSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **totalPriceSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **totalReceivedSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **totalRefundedSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **totalRefundedShippingSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **totalShippingPriceSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **totalTaxSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **totalTipReceivedSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **totalWeight**<br><br><br>NUMBER |
| **transactionsCount**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>count: INTEGER																					</li><li>precision: STRING																					</li></ul> |
| **unpaid**<br><br><br>BOOLEAN |
| **updatedAt**<br><br><br>STRING |
| **fulfillments**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>name: STRING</li><li>status: STRING</li><li>totalQuantity: NUMBER</li><li>updatedAt: STRING</li><li>deliveredAt: STRING</li><li>estimatedDeliveryAt: STRING</li><li>requiresShipping: BOOLEAN</li><li>inTransitAt: STRING</li><li>trackingInfo: ARRAY, which is also a nested data structure.											<ul><li>number: STRING</li><li>company: STRING</li><li>url: STRING</li></ul></li><li>service: OBJECT, which is also a nested data structure.											<ul><li>serviceName: STRING</li><li>id: STRING</li><li>handle: STRING</li><li>trackingSupport: BOOLEAN</li><li>type: STRING</li><li>permitsSkuSharing: BOOLEAN</li><li>inventoryManagement: BOOLEAN</li></ul></li></ul> |
| **lineItems**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>vendor: STRING</li><li>quantity: NUMBER</li><li>title: STRING</li><li>requiresShipping: BOOLEAN</li><li>originalTotalSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>taxLines: ARRAY, which is also a nested data structure.											<ul><li>priceSet: OBJECT, which is also a nested data structure.													<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>rate: NUMBER</li><li>title: STRING</li><li>source: STRING</li><li>channelLiable: BOOLEAN</li></ul></li><li>taxable: BOOLEAN</li><li>isGiftCard: BOOLEAN</li><li>name: STRING</li><li>discountedTotalSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>sku: STRING</li><li>product: OBJECT, which is also a nested data structure.											<ul><li>id: STRING																									</li></ul></li><li>discountAllocations: ARRAY, which is also a nested data structure.											<ul><li>allocatedAmountSet: OBJECT, which is also a nested data structure.													<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>discountApplication: OBJECT, which is also a nested data structure.													<ul><li>index: INTEGER</li><li>title: STRING</li><li>targetType: STRING</li><li>targetSelection: STRING</li><li>allocationMethod: STRING</li><li>value: OBJECT, which is also a nested data structure.															<ul><li>__typename: STRING</li><li>amount: NUMBER</li><li>currencyCode: STRING</li><li>percentage: NUMBER</li></ul></li></ul></li></ul></li><li>customAttributes: ARRAY, which is also a nested data structure.											<ul><li>key: STRING</li><li>value: STRING</li></ul></li><li>totalDiscountSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>duties: ARRAY, which is also a nested data structure.											<ul><li>harmonizedSystemCode: STRING</li><li>id: STRING</li><li>taxLines: ARRAY, which is also a nested data structure.													<ul><li>rate: NUMBER</li><li>source: STRING</li><li>title: STRING</li><li>channelLiable: BOOLEAN</li><li>priceSet: OBJECT, which is also a nested data structure.															<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.																	<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.																	<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li></ul></li><li>countryCodeOfOrigin: STRING</li></ul></li><li>discountedUnitPriceSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>originalUnitPriceSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>unfulfilledDiscountedTotalSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>unfulfilledOriginalTotalSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>variant: OBJECT, which is also a nested data structure.											<ul><li>id: STRING																									</li></ul></li></ul> |
| **shippingLine**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>carrierIdentifier: STRING</li><li>code: STRING</li><li>currentDiscountedPriceSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>custom: BOOLEAN</li><li>deliveryCategory: STRING</li><li>discountAllocations: ARRAY, which is also a nested data structure.											<ul><li>allocatedAmountSet: OBJECT, which is also a nested data structure.													<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>discountApplication: OBJECT, which is also a nested data structure.													<ul><li>__typename: STRING</li><li>allocationMethod: STRING</li><li>index: INTEGER</li><li>targetSelection: STRING</li><li>targetType: STRING</li><li>title: STRING</li><li>code: STRING</li><li>description: STRING</li><li>value: OBJECT, which is also a nested data structure.															<ul><li>__typename: STRING</li><li>amount: STRING</li><li>currencyCode: STRING</li><li>percentage: NUMBER</li></ul></li></ul></li></ul></li><li>discountedPriceSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>id: STRING</li><li>isRemoved: BOOLEAN</li><li>originalPriceSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>phone: STRING</li><li>shippingRateHandle: STRING</li><li>source: STRING</li><li>taxLines: ARRAY, which is also a nested data structure.											<ul><li>channelLiable: BOOLEAN</li><li>priceSet: OBJECT, which is also a nested data structure.													<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.															<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li><li>rate: NUMBER</li><li>ratePercentage: STRING</li><li>source: STRING</li><li>title: STRING</li></ul></li><li>title: STRING</li><li>finiiiii</li></ul> |

### product\_variants

The `product_variants` table contains info about variants that can be added to a product to represent one version of a product with several options.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updatedAt |
| **Useful links** | [Shopify documentation](https://shopify.dev/docs/api/admin-graphql/latest/queries/productvariants)<br><br>[product_variants schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/product_variants.json "Opens in new tab: Shopify API method") |

product\_variants table schema

| **id**<br><br><br>STRING |
| --- |
| **createdAt**<br><br><br>STRING |
| **barcode**<br><br><br>STRING |
| **availableForSale**<br><br><br>BOOLEAN |
| **compareAtPrice**<br><br><br>STRING |
| **displayName**<br><br><br>STRING |
| **image**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>altText: STRING</li><li>height: INTEGER</li><li>id: STRING</li><li>url: STRING</li><li>width: INTEGER</li></ul> |
| **inventoryPolicy**<br><br><br>STRING |
| **inventoryQuantity**<br><br><br>INTEGER |
| **position**<br><br><br>INTEGER |
| **price**<br><br><br>STRING |
| **requiresComponents**<br><br><br>BOOLEAN |
| **sellableOnlineQuantity**<br><br><br>INTEGER |
| **sku**<br><br><br>STRING |
| **taxCode**<br><br><br>STRING |
| **taxable**<br><br><br>BOOLEAN |
| **title**<br><br><br>STRING |
| **updatedAt**<br><br><br>STRING |
| **product**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |
| **inventoryItem**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>measurement: OBJECT, which is also a nested data structure.											<ul><li>weight: OBJECT, which is also a nested data structure.													<ul><li>unit: STRING</li><li>value: STRING</li></ul></li></ul></li></ul> |

### products

The `products` table contains info about a shop’s products.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | updatedAt |
| **Useful links** | [Shopify documentation](https://shopify.dev/docs/api/admin-graphql/latest/queries/products)<br><br>[products schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/products.json "Opens in new tab: Shopify API method") |

products table foreign keys

| Join products with | on |
| --- | --- |
| [abandoned_checkouts](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#abandoned-checkouts) | ```<br>products.id = abandoned_checkouts.lineItems.product.id<br>``` |
| [order_refunds](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#order-refunds) | ```<br>products.id = order_refunds.refundLineItems.lineItem.product.id<br>``` |
| [orders](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#orders) | ```<br>products.id = orders.lineItems.product.id<br>``` |

products table schema

| **status**<br><br><br>STRING |
| --- |
| **publishedAt**<br><br><br>STRING |
| **createdAt**<br><br><br>STRING |
| **vendor**<br><br><br>STRING |
| **updatedAt**<br><br><br>STRING |
| **productType**<br><br><br>STRING |
| **tags**<br><br><br>STRING |
| **options**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>name: STRING</li><li>values: ARRAY, which is also a nested data structure.</li><li>id: STRING</li><li>position: INTEGER</li></ul> |
| **handle**<br><br><br>STRING |
| **templateSuffix**<br><br><br>STRING |
| **title**<br><br><br>STRING |
| **id**<br><br><br>STRING |
| **giftCardTemplateSuffix**<br><br><br>STRING |
| **hasOnlyDefaultVariant**<br><br><br>STRING |
| **hasOutOfStockVariants**<br><br><br>BOOLEAN |
| **hasVariantsThatRequiresComponents**<br><br><br>BOOLEAN |
| **isGiftCard**<br><br><br>BOOLEAN |
| **description**<br><br><br>STRING |
| **descriptionHtml**<br><br><br>STRING |
| **category**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li></ul> |
| **featuredMedia**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>mediaContentType: STRING</li><li>status: STRING</li></ul> |
| **requiresSellingPlan**<br><br><br>BOOLEAN |
| **totalInventory**<br><br><br>INTEGER |
| **tracksInventory**<br><br><br>BOOLEAN |
| **media**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>alt: STRING</li><li>status: STRING</li><li>mediaContentType: STRING</li><li>embedUrl: STRING</li><li>mimeType: STRING</li><li>filename: STRING</li><li>image: OBJECT, which is also a nested data structure.											<ul><li>id: STRING</li><li>url: STRING</li><li>width: STRING</li><li>height: STRING</li></ul></li><li>sources: ARRAY, which is also a nested data structure.											<ul><li>url: STRING</li><li>format: STRING</li><li>mimeType: STRING</li><li>fileSize: STRING</li></ul></li><li>mediaWarnings: ARRAY, which is also a nested data structure.											<ul><li>code: STRING</li><li>message: STRING</li></ul></li><li>mediaErrors: ARRAY, which is also a nested data structure.											<ul><li>code: STRING</li><li>details: STRING</li><li>message: STRING</li></ul></li></ul> |

### transactions

The `transactions` table contains info about transactions.

| **Replication Method** | CDC |
| --- | --- |
| **Primary Key** | id |
| **Replication Key** | createdAt |
| **Useful links** | [Shopify API method](https://shopify.dev/Content/admin-api/rest/reference/orders/transaction?api[version]=2019-07 "Opens in new tab: Shopify API method")<br><br>[transactions schema on GitHub](https://github.com/singer-io/tap-shopify/blob/master/tap_shopify/schemas/transactions.json "Opens in new tab: Shopify API method") |

transactions table foreign keys

| Join transactions with | on |
| --- | --- |
| [abandoned_checkouts](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#abandoned-checkouts) | ```<br>transactions.order.id = abandoned_checkouts.customers.lastOrder.id<br>``` |
| [customers](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#customers) | ```<br>transactions.order.id = customers.lastOrder.id<br>``` |
| [order_refunds](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#order-refunds) | ```<br>transactions.order.id = order_refunds.order.id<br>``` |
| [orders](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/WebApplications/Connecting-Shopify-v2.htm#orders) | ```<br>transactions.order.id = orders.id<br>``` |

transactions table schema

| **accountNumber**<br><br><br>STRING |
| --- |
| **amountRoundingSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **amountSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **authorizationCode**<br><br><br>STRING |
| **authorizationExpiresAt**<br><br><br>STRING |
| **createdAt**<br><br><br>STRING |
| **errorCode**<br><br><br>STRING |
| **formattedGateway**<br><br><br>STRING |
| **gateway**<br><br><br>STRING |
| **id**<br><br><br>STRING |
| **kind**<br><br><br>STRING |
| **manualPaymentGateway**<br><br><br>BOOLEAN |
| **maximumRefundableV2**<br><br><br>OBJECT<br><br>This is a nested data structure. |
| **multiCapturable**<br><br><br>BOOLEAN |
| **order**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>id: STRING																					</li></ul> |
| **parentTransaction**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>accountNumber: STRING</li><li>createdAt: STRING</li><li>id: STRING</li><li>status: STRING</li><li>paymentId: STRING</li><li>processedAt: STRING</li><li>amountSet: OBJECT, which is also a nested data structure.											<ul><li>presentmentMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.													<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul></li></ul> |
| **paymentId**<br><br><br>STRING |
| **processedAt**<br><br><br>STRING |
| **receiptJson**<br><br><br>STRING |
| **settlementCurrency**<br><br><br>STRING |
| **settlementCurrencyRate**<br><br><br>STRING |
| **shopifyPaymentsSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>extendedAuthorizationSet: OBJECT, which is also a nested data structure.											<ul><li>extendedAuthorizationExpiresAt: STRING</li><li>standardAuthorizationExpiresAt: STRING</li></ul></li><li>refundSet: OBJECT, which is also a nested data structure.											<ul><li>acquirerReferenceNumber: STRING</li></ul></li></ul> |
| **status**<br><br><br>STRING |
| **test**<br><br><br>BOOLEAN |
| **totalUnsettledSet**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>presentmentMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>shopMoney: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **fees**<br><br><br>ARRAY<br><br>This is a nested data structure:<br><br><ul><li>id: STRING</li><li>rate: NUMBER</li><li>rateName: STRING</li><li>taxAmount: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>type: STRING</li><li>flatFeeName: STRING</li><li>amount: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li><li>flatFee: OBJECT, which is also a nested data structure.											<ul><li>amount: STRING</li><li>currencyCode: STRING</li></ul></li></ul> |
| **manuallyCapturable**<br><br><br>BOOLEAN |
| **paymentDetails**<br><br><br>OBJECT<br><br>This is a nested data structure:<br><br><ul><li>avsResultCode: STRING</li><li>bin: STRING</li><li>company: STRING</li><li>cvvResultCode: STRING</li><li>expirationMonth: INTEGER</li><li>expirationYear: INTEGER</li><li>name: STRING</li><li>number: STRING</li><li>paymentMethodName: STRING</li><li>wallet: STRING</li><li>paymentDescriptor: STRING</li></ul> |