# Connect Shopify

> Connect a Shopify store to COD Order Calls - one-click Connect with Shopify where it is offered, or a custom app with read_orders and write_orders - then register webhooks, test, and see what is written back to each order.

Source: https://edesy.in/docs/order-calls/connect-your-store/connect-shopify

Connect your Shopify store in the Order Calls portal at [orders.edesy.in](https://orders.edesy.in) under **Stores**. Use **Connect with Shopify** if your portal shows it: approve the app and the token and webhooks are set up for you. Otherwise create a custom app in your Shopify admin with `read_orders` and `write_orders`, paste its Admin API token and API secret key, and press **Register webhooks automatically**. This is a direct connection, not a Shopify App Store app.

## Option 1: Connect with Shopify (one-click)

1. In **Stores**, pick **Shopify**. A **One-click** badge shows when this option is available.
2. Enter your `*.myshopify.com` address (not your custom domain) and press **Connect with Shopify**.
3. Approve the install on your store. You come back to the portal with "Connected to Shopify", the access token saved and the order webhooks registered.
4. Press **Test connection**. It replies with your shop's name.

## Option 2: Custom app token

Use this when the one-click option is not shown, or if you prefer to manage the app yourself.

1. In Shopify admin, open **Settings → Apps → Develop apps** and create an app.
2. Give it the Admin API scopes `read_orders` and `write_orders`, then install it.
3. In the app's **API credentials**, copy the **Admin API access token** (`shpat_...`) and the **API secret key**.
4. In Order Calls, add a Shopify store and fill in:

| Field | Required | What to enter |
|---|---|---|
| Shop domain | Yes | `your-store.myshopify.com` |
| Store name (spoken in the call) | No | The name customers hear, for example your brand |
| Admin API access token | Yes | The `shpat_...` token |
| Webhook signing secret | Yes | The app's API secret key |
| Extra tag on confirmation | No | An extra tag added next to `COD-Confirmed`, for example `Verified` |

5. Press **Register webhooks automatically**. We subscribe `orders/create`, `orders/cancelled`, `orders/paid` and `app/uninstalled`. A webhook that already exists counts as registered, so it is safe to press again.
6. Press **Test connection**.

## Which orders get a call

Every new order reaches us through `orders/create`. Your [call rule](https://edesy.in/docs/order-calls/call-rules/conditions) decides which are called; the default calls cash-on-delivery orders that are not already confirmed. An order counts as COD when its payment gateway is "Cash on Delivery (COD)". The phone number is read from the shipping address, then the billing address, then the order and customer.

`orders/cancelled` and `orders/paid` stop any pending call for that order, so a customer who cancels or pays online is not called.

## What is written back to the order

| Result | What happens on Shopify |
|---|---|
| Customer presses 1 | The order is tagged `COD-Confirmed` (plus your extra tag, if set) |
| Customer presses 2 | The order is cancelled with restock. No refund is issued and the customer is not emailed |
| No key pressed | Tag `COD-No-Answer` (default outcome action) |
| Not reachable after every attempt | Tag `COD-Unreachable` (default outcome action) |

The tag labels and the actions per outcome can be changed in the call rule. See [Outcome Actions](https://edesy.in/docs/order-calls/call-rules/outcome-actions). Filter on these tags in Shopify admin to release confirmed orders to fulfilment.

## If you uninstall the app

When the app is removed from your store, the connection is paused and its token is dropped. Pending calls wait: they resume if you reconnect, and otherwise expire without being billed.

## Next steps

- [Set up a call rule](https://edesy.in/docs/order-calls/call-rules/conditions)
- [Edit the Hindi or English script](https://edesy.in/docs/order-calls/scripts/hindi-and-english-scripts)
- [Pricing](https://edesy.in/docs/order-calls/getting-started/pricing): Rs 3 per confirmed order, 25 orders free
- Product page: [Shopify COD confirmation calls](https://edesy.in/cod-order-confirmation/shopify)
