Skip to content

Commit

Permalink
docs: initial docs for source-shopify-native
Browse files Browse the repository at this point in the history
Alex-Bair committed Jan 16, 2025

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent 08d7906 commit 9ef0fbe
Showing 2 changed files with 90 additions and 0 deletions.
3 changes: 3 additions & 0 deletions site/docs/reference/Connectors/capture-connectors/README.md
Original file line number Diff line number Diff line change
@@ -149,6 +149,9 @@ All Estuary connectors capture data in real time, as it appears in the source sy
- Shopify
- [Configuration](./shopify.md)
- Package - ghcr.io/estuary/source-shopify:dev
- Shopify (GraphQL)
- [Configuration](./shopify-native.md)
- Package - ghcr.io/estuary/source-shopify-native.dev
- Snowflake
- [Configuration](./snowflake.md)
- Package - ghcr.io/estuary/source-snowflake:dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@

# Shopify (GraphQL)

This connector captures data from [Shopify's GraphQL Admin API](https://shopify.dev/docs/api/admin-graphql) into Flow collections.

It is available for use in the Flow web application. For local development or open-source workflows, [`ghcr.io/estuary/source-shopify-native:dev`](https://ghcr.io/estuary/source-shopify-native:dev) provides the latest version of the connector as a Docker image. You can also follow the link in your browser to see past image versions.

## Supported data resources

The following data resources are supported through the Shopify API:

* [Products](https://shopify.dev/docs/api/admin-graphql/2025-01/queries/products)

By default, each resource is mapped to a Flow collection through a separate binding.

## Prerequisites

* Store ID of your Shopify account. This is the prefix of your admin URL. For example, `https://{store_id}.myshopify.com/admin`

You can authenticate your account either via OAuth or with a Shopify [access token](https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/generate-app-access-tokens-admin).

### Access Token Permissions

If authenticating with an access token, ensure the following permissions are granted:
* `read_checkouts`
* `read_customers`
* `read_fulfillments`
* `read_inventory`
* `read_locales`
* `read_locations`
* `read_orders`
* `read_products`
* `read_publications`

### Bulk Query Operation Limitations

This connector submits and process the results of [bulk query operations](https://shopify.dev/docs/api/admin-graphql/2025-01/mutations/bulkoperationrunquery) to capture data. Shopify only allows a [single bulk query operation to run at a given time](https://shopify.dev/docs/api/usage/bulk-operations/queries#limitations).To ensure the connector can successfully submit bulk queries, ensure no other applications are submitting bulk query operations for your Shopify store.

## Configuration

You configure connectors either in the Flow web app, or by directly editing the catalog specification file.
See [connectors](../../../concepts/connectors.md#using-connectors) to learn more about using connectors. The values and specification sample below provide configuration details specific to the Shopify source connector.

### Properties

#### Endpoint

The properties in the table below reflect manual authentication using the CLI. In the Flow web app,
you'll sign in directly and won't need the access token.

| Property | Title | Description | Type | Required/Default |
|---|---|---|---|---|
| **`/store`** | Store ID | Your Shopify Store ID. Use the prefix of your admin URL e.g. `https://{store_id}.myshopify.com/admin`. | string | Required |
| `/start_date` | Start date | UTC date and time in the format 2025-01-16T00:00:00Z. Any data before this date will not be replicated. | string | 30 days before the present date |
| **`/credentials/access_token`** | Access Token | Shopify access token. | string | Required |
| **`/credentials/credentials_title`** | Credentials | Name of the credentials set | string | Required |
| `/advanced/window_size` | Window size | Window size in days for incrementals streams. Typically left as the default unless more frequent checkpoints are desired. | integer | 30 |

#### Bindings

| Property | Title | Description | Type | Required/Default |
|---|---|---|---|---|
| **`/name`** | Data resource | Name of the data resource. | string | Required |
| `/interval` | Interval | Interval between data syncs | string | |


### Sample

```yaml
captures:
${PREFIX}/${CAPTURE_NAME}:
endpoint:
connector:
image: ghcr.io/estuary/source-shopify-native:dev
config:
advanced:
window_size: 30
credentials:
credentials_title: Private App Credentials
access_token: <secret>
start_date: "2025-01-16T12:00:00Z"
store: <store ID>
bindings:
- resource:
name: products
target: ${PREFIX}/products
```

0 comments on commit 9ef0fbe

Please sign in to comment.