# Data Overview

Coupler.io's Shopify source pulls structured e-commerce data directly from your Shopify store via the GraphQL API. You select one data entity per data flow and choose which columns to include (for order-related entities).

## What data is available?

Entities are organized into two groups.

#### Basics

| Entity        | Description                                                             | Typical use case                             |
| ------------- | ----------------------------------------------------------------------- | -------------------------------------------- |
| **Orders**    | Order-level data — totals, status, customer info, payment gateway, tags | Daily sales reports, revenue dashboards      |
| **Products**  | Product catalog — title, vendor, status, published/updated dates        | Product management, catalog sync             |
| **Inventory** | SKU-level stock quantities across locations                             | Inventory tracking, reorder alerts           |
| **Customers** | Customer records — name, email, total spent, last order info            | Customer lists, marketing segments, CRM sync |

#### Order & product breakdowns

| Entity                                 | Description                                                                  | Typical use case                            |
| -------------------------------------- | ---------------------------------------------------------------------------- | ------------------------------------------- |
| **Products with variants**             | Products split by variant — one row per variant with price, SKU, inventory   | Variant-level pricing, SKU analysis         |
| **Orders with line items**             | Orders split by line item — one row per product in each order                | Product sales analysis, SKU-level reporting |
| **Order fulfillments with line items** | Orders with fulfillment details — tracking info, delivery dates, line items  | Shipping and logistics tracking             |
| **Orders with shipping lines**         | Orders with shipping method details — carrier, cost, delivery category       | Shipping cost analysis                      |
| **Orders refunds transactions**        | Orders with refund and transaction details — refund amounts, gateway, status | Refund analysis, financial reconciliation   |

## Column selection

For all order-related entities (Orders, Orders with line items, Order fulfillments, Orders with shipping lines, Orders refunds transactions), you can choose exactly which columns to include. Columns are organized into groups:

| Column group                      | Available in                | Examples                                                                           |
| --------------------------------- | --------------------------- | ---------------------------------------------------------------------------------- |
| **Order**                         | All order entities          | Order name, Created at, Financial status, Fulfillment status, Tags, Discount codes |
| **Customer**                      | All order entities          | Customer name, Amount spent                                                        |
| **Billing address**               | All order entities          | Country                                                                            |
| **Customer journey**              | All order entities          | Customer order index, Days to conversion                                           |
| **Order totals in shop currency** | All order entities          | Current order total, Net payment, Discounts, Tax, Shipping, Duties                 |
| **Line items**                    | Orders with line items      | SKU, Quantity, Line item name                                                      |
| **Line items totals**             | Orders with line items      | Discounted total, Original total, Unit price                                       |
| **Fulfillment**                   | Order fulfillments          | Fulfillment name, Status, Created/Delivered/In-transit dates, Tracking info        |
| **Fulfillment line item**         | Order fulfillments          | Line item name, SKU, Quantity, Unfulfilled quantity                                |
| **Shipping line**                 | Orders with shipping lines  | Code, Title, Source, Delivery category                                             |
| **Shipping line totals**          | Orders with shipping lines  | Original price, Discounted price                                                   |
| **Refund**                        | Orders refunds transactions | Refund created at, Note, Total refund amount                                       |
| **Refund transaction**            | Orders refunds transactions | Account number, Gateway, Status, Amount                                            |

{% hint style="info" %}
The **Store name**, **Entity ID** (e.g., Order ID), and **Updated At** columns are always included regardless of your column selection.
{% endhint %}

## Filtering parameters

| Parameter                  | Purpose                                                   | Available for                                                                           |
| -------------------------- | --------------------------------------------------------- | --------------------------------------------------------------------------------------- |
| **Created after / before** | Filter by record creation date                            | All entities except Inventory                                                           |
| **Changed after / before** | Filter by last update date                                | All entities                                                                            |
| **Filter after ID**        | Export records with ID greater than a value               | All entities except Inventory                                                           |
| **Status**                 | Filter orders by status (Any, Open, Closed, Cancelled)    | Order entities                                                                          |
| **Financial status**       | Filter by payment status (Paid, Pending, Refunded, etc.)  | Orders, Orders with line items, Orders with shipping lines, Order fulfillments          |
| **Fulfillment status**     | Filter by fulfillment (Shipped, Unshipped, Partial, etc.) | Orders, Orders with line items, Orders with shipping lines, Orders refunds transactions |
| **Product status**         | Filter by product status (Active, Archived, Draft)        | Products, Products with variants                                                        |

## Common data combinations

| Goal                       | Entity                             | Configuration                                          |
| -------------------------- | ---------------------------------- | ------------------------------------------------------ |
| Daily sales dashboard      | Orders                             | Created after = last 30 days, Financial status = Paid  |
| Product-level sales report | Orders with line items             | Select SKU, Quantity, and Line item totals columns     |
| Refund analysis            | Orders refunds transactions        | Financial status = Refunded or Partially refunded      |
| Inventory snapshot         | Inventory                          | Changed after = yesterday for recent changes           |
| Shipping performance       | Order fulfillments with line items | Select Fulfillment status, Delivered at, In transit at |
| Customer lifetime value    | Customers                          | Default columns include Total spent and Last order     |

## Use cases by role

{% tabs %}
{% tab title="E-commerce / Sales" %}
Track daily revenue, average order value, and top-selling products. Use Orders with line items to build SKU-level sales reports. Combine with advertising data (Facebook Ads, Google Ads) to calculate true ROAS by matching order revenue to ad spend.
{% endtab %}

{% tab title="Operations / Logistics" %}
Monitor fulfillment status and shipping timelines using Order fulfillments with line items. Track inventory levels across locations with the Inventory entity. Set up daily refreshes to catch stock-outs early.
{% endtab %}

{% tab title="Finance" %}
Reconcile order totals, refunds, and net payments using Orders refunds transactions. Export to BigQuery or Google Sheets for month-end close. Use date filters to scope each run to the relevant period.
{% endtab %}

{% tab title="Marketing" %}
Build customer segments using the Customers entity — filter by total spent, order count, or recency. Use the Customer journey columns (Days to conversion, Customer order index) to analyze first-time vs. repeat buyer behavior.
{% endtab %}
{% endtabs %}

## Platform-specific notes

* **GraphQL vs. REST** — The current Shopify source uses Shopify's GraphQL API. Legacy sources (REST-based) are deprecated and labeled "Shopify (legacy)" in the UI. Some column names differ between versions — see the [migration article](https://help.coupler.io/article/589-meet-the-new-shopify-graphql-source) if you're switching.
* **Column selection** — Only available for order-related entities. Products, Inventory, and Customers always return all available columns.
* **Customer journey data** — New in v4. Includes Customer order index (is this their 1st, 2nd, 5th order?) and Days to conversion. Available in all order entities.
* **Shopify reports and analytics are not available** — Coupler.io pulls raw entity data from Shopify, not Shopify's built-in reports or analytics dashboards. Metrics like conversion rate, sessions, and traffic sources are not accessible via the Shopify API.
* **Metafields** — Standard product and variant fields are included. Custom metafields (e.g., wholesale price, custom attributes) are not currently available as separate columns in the export.
* **Date filter timezone** — Date filters use your browser's timezone, not Shopify's store timezone. If they differ, orders near the day boundary may appear in unexpected date ranges.
* **Test orders** — By default, test orders created by Shopify's Bogus Gateway are included in exports. Filter them out using the "Is Test Order?" column in your destination or transformations.
