> For the complete documentation index, see [llms.txt](https://docs.pyck.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pyck.cloud/shopify-app/setup.md).

# Setup

Installing the Shopify app and connecting your first pyck tenant

Audience: Logistics Manager

Setting up is one step: connect one pyck tenant. Everything else on this page is optional and can wait.

## 1. Install the app

Install the pyck app into your Shopify store the way you install any Shopify app. Shopify will ask you to approve the permissions it needs — reading and writing products, customers, orders, draft orders, inventory and fulfilments, and reading locations.

After the install, the app opens on its **Setup** page, which greets you with "Welcome to pyck". It shows four steps, but only the first one is needed to finish setup. Until you finish it, nothing syncs.

## 2. Connect your first tenant

The Setup page asks for one pyck tenant. There are two ways to give it one.

### Sign in to pyck

Choose **Sign in to pyck**. You sign in to pyck in a new tab, come back, pick which of your pyck tenants this store belongs to and choose **Connect** with that tenant's name. A second tab opens to confirm. The app creates the credentials for you.

The app connects to pyck's production system unless you choose otherwise. To use a test or demo system instead, open **Connecting to a test or demo system?** first and pick it under **pyck system**.

This is the easier route and the one to use when your pyck system offers it.

### Paste an API key

If your pyck system has no sign-in registered, the app asks for an API key straight away. If it has one but the sign-in is not cooperating, choose **Have an API key instead?**. You then give the app two things:

* the pyck system, chosen under **Connecting to a test or demo system?**. If yours is self-hosted, choose **Other address…** and enter its full GraphQL address under **Address**.
* your pyck **API key**

Then choose **Connect with this key**.

Either way you end up with the same thing: one connection.

## 3. Setup is now complete

The connection you just made is called **production**. It is your live warehouse: the only connection that fulfils orders and the only one allowed to change your Shopify stock.

The name `production` is permanent. Routing labels point at that exact text, so it cannot be renamed later.

The moment it is saved:

* Setup is complete and the app's menu changes to **Home**, **Stock sync**, **Activity** and **Settings**.
* **Products, customers and orders are all switched on** and start flowing to pyck as they change in Shopify.

You can turn any of the three off under **Settings**, in the **Sync scope** card. Products and orders sync as you would expect; customers sync their profiles and also record the route labels their orders later inherit.

Product variants without a SKU are never sent. pyck finds stock by SKU, so a variant without one has nothing to match against.

## 4. Bring your existing catalogue over

New and changed records flow automatically, but records that already existed before you installed the app have never been sent. To send them once, choose **Sync now** on the **Home** page, or **Send everything now** in its **Set up pyck** checklist.

This walks your whole store and sends everything currently switched on. **Activity** then lists what did not land. To see every attempt, including the successful ones, choose **Record every attempt** there.

If your pyck tenant uses schemas of its own, set up the [data mapping](/shopify-app/data-mapping.md) before you send everything: the first send writes into whatever mapping is active.

Run this once after setup. After that, ordinary changes keep pyck up to date on their own.

## What is optional from here

Nothing below is required, and none of it is switched on by default.

| If you want to                                                                       | Go to                                                            |
| ------------------------------------------------------------------------------------ | ---------------------------------------------------------------- |
| Fill fields of your own pyck schemas from Shopify, or keep them under pyck's control | [What a sync overwrites in pyck](/shopify-app/data-mapping.md)   |
| Sync to more than one pyck tenant, or steer specific records at one tenant           | [Sending data to several pyck tenants](/shopify-app/routing.md)  |
| Let pyck own your Shopify stock counts                                               | [Warehouse stock](/shopify-app/stock.md)                         |
| Check a connection is healthy                                                        | **Settings**, then **Check connection** on the connection's card |

Deleting your last connection reopens setup, and syncing stops until you connect one again.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.pyck.cloud/shopify-app/setup.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
