> ## Documentation Index
> Fetch the complete documentation index at: https://www.adorabl.info/llms.txt
> Use this file to discover all available pages before exploring further.

# Connect Shopify

> Connect a Shopify site, configure order defaults, and resolve sync exceptions.

Connect Shopify to bring products, locations, customers, and orders into adorabl. When you ship a Shopify order in adorabl, the updated warehouse quantity is sent back to Shopify.

## Before you connect

Complete these setup items first:

* Add the [warehouses](https://www.adorabl.info/products/warehouses.md) that correspond to your Shopify locations.
* Create a customer record for guest checkouts.
* Create the customer group you want new Shopify customers to use.
* Configure the system accounts, item GL defaults, standard costs, and any required employee dimension shown under **Financial posting readiness**.

## Connect your Shopify site

**1. Open Shopify setup**

1. Open **Settings**.
2. Select **Commerce**.
3. Click **Shopify**.

**2. Authorize the connection**

On the **Setup** tab, click **Connect Shopify** and complete the authorization flow.

When the connection succeeds, the card shows **Connected**. Use **Manage connection** when you need to review or renew access.

**3. Set order and customer defaults**

Choose:

* **Default customer group for Shopify orders** — applied when a Shopify order creates a new customer.
* **Guest / anonymous customer** — receives guest checkouts while each order keeps its own address snapshot.

Review **Shopify locations** and **SKU / product links**. Incomplete mappings link directly to the **Exceptions** tab. Hover the info icon on any row for guidance.

**4. Check initial data readiness**

**Initial data readiness** shows one row each for **Products**, **Warehouses**, and **Orders**:

| Status | Meaning |
| - | - |
| **Imported** | The records are in adorabl |
| **Ready to import** | Shopify has finished syncing; click the row action to import now |
| **Syncing** | The connection is still preparing this data — check back shortly |
| **Not checked yet** | adorabl has not polled this resource yet |
| **Stuck** | The import did not complete; use the row action to recover it |

adorabl rechecks readiness every few minutes and recovers missed imports on its own. Use the row actions when you do not want to wait.

**5. Confirm posting readiness**

Resolve each item under **Financial posting readiness**. Shopify orders may import before this checklist is complete, but invoicing or shipment posting can fail until the required accounts, item costs, and dimensions are configured.

## Resolve sync exceptions

adorabl pauses an affected order when it cannot confidently match a Shopify value.

**1. Open the queue**

Click the **Exceptions** tab. The badge shows the number of decisions waiting for you.

**2. Confirm a location or product match**

Select the matching adorabl warehouse or item, then save the mapping.

A mapping applies to other pending orders with the same Shopify value. adorabl releases affected orders after the decision is saved.

**3. Retry or dismiss other exceptions**

Not every exception is a mapping. The queue also holds payments, inbound shipments, outbound shipments, and order updates that could not be applied.

* **Retry** re-runs the failed step after you fix the cause — for example, after a warehouse map is confirmed or an item gets its GL defaults. The row shows its retry count and any error detail.
* **Dismiss** clears an order-update exception you do not want to apply.

Shopify order edits that change only customer or address details apply on their own. Edits that change totals, currency, or lines create one pending exception for your review.

**4. Review resolved decisions**

Open **Resolved** to see prior mapping decisions. Eligible decisions can be undone for seven days.

Products without a Shopify SKU are created as separate numbered items. adorabl reuses the same item when that Shopify product syncs again.

## Change a confirmed mapping

Use **Field mappings** when a confirmed SKU, warehouse, or guest-customer mapping points at the wrong adorabl record.

**1. Open Field mappings**

On the Shopify **Setup** tab, click **Field mappings** under **Order and customer configuration**. The page lists confirmed mappings by **Type** — **SKU / product**, **Warehouse**, and **Customer** — with the **Shopify value**, **adorabl target**, **Status**, and when it was last **Updated**.

**2. Change one mapping**

Click **Change** on a row, search for the new target, and save. The change is recorded as a decision and later orders use the new target.

**3. Remap several at once**

On the **SKU / product** or **Warehouse** tab, select rows and click **Remap selected**. Pick one target and confirm. Rows update one at a time; a row that fails stays selected with its error so you can retry it. Selections cannot mix types, and the guest customer is changed one record at a time.

Unconfirmed values still arrive in the **Exceptions** queue. Ship Via, tax zone, and payment gateway mappings show **Not yet available**.

## Review activity and sync now

Open **Activity** to see imported orders, the share that needed no decision, open exceptions, and recent automatic or user activity.

Each row names what happened in plain terms — **Order imported**, **Order updated**, **Product updated**, **Shipment created**, **Mapping decision** — and a **Summary** column that links to the adorabl record. An order row shows the customer and total and opens the sales order; a product row shows the SKU and opens the item; a shipment row shows the tracking number. Rows that did not process show a status badge with the failure reason, so you can see at a glance whether a sync problem is yours or Shopify's.

Click **Sync now** to import the latest available products, locations, and orders. Repeated syncs update existing records instead of creating duplicates.

## What happens after setup

* Shopify orders appear in **Commerce → Sales Orders** with the Shopify order number in the **Shopify - Web order number** (or **Shopify - POS order number**) header field.
* Web orders use the **Shopify Web** channel and go through pick, pack, and label purchase in-house.
* Point-of-sale orders use **Shopify POS**. Because the customer already walked out with the goods, adorabl records the pickup from your store warehouse on import, creates the invoice, and applies the register payment — a POS sale never waits in the fulfillment queue. adorabl recognizes a POS sale from the source and app markers Shopify sends with the order; orders without those markers import as **Shopify Web**.
* Buy online, pick up in store is not a register sale. Those orders stay **unfulfilled** and follow the in-house pick path, even when the ship method is the store location. Use **Fulfill remaining** when you hand the order to the customer. See [Sales orders & fulfillment](https://www.adorabl.info/commerce/sales-orders-and-fulfillment.md).
* Product and location mappings control which item and warehouse each order uses.
* Guest checkouts use the customer you selected while preserving the order's delivery address.
* Local shipments send the updated warehouse quantity and shipment back to Shopify. The fulfillment ships from the warehouse linked to the Shopify location you confirmed.
* Inbound Shopify shipment updates do not create duplicate inventory updates.
* adorabl also polls Shopify for order and product changes every few minutes, so a missed update is picked up without a manual sync.

## Troubleshooting

> **An order is waiting for a decision**
>
> Open **Exceptions** and confirm the requested warehouse or item mapping. Saving one mapping can release multiple orders that share the same source value.

> **A Shopify location is incomplete**
>
> Create the matching [warehouse](https://www.adorabl.info/products/warehouses.md), then return to **Exceptions** and map the Shopify location to it.

> **Shipment or invoice posting fails**
>
> Open **Setup** and review **Financial posting readiness**. Configure any missing system account, item GL default, standard cost, or required employee dimension.

> **Recent Shopify records are missing**
>
> Open **Activity** and click **Sync now**. Review **Exceptions** after the sync for records that need a mapping decision.

> **A POS sale is stuck with a pickup exception**
>
> The automatic pickup could not post — usually an item on the sale is not yet mapped or a posting account is missing under **Financial posting readiness**. Fix the cause, then retry the exception. adorabl records the pickup and invoices the sale.

> **Initial data readiness shows Stuck or Not checked yet**
>
> adorabl rechecks every few minutes. If a row stays **Stuck**, use its row action to recover the import. **Not checked yet** clears on the next check.

> **A shipment exception says the shipping group has no capacity**
>
> The fulfillment's warehouse is not linked to a Shopify location. Confirm the warehouse mapping under **Exceptions** (or change it under **Field mappings**), then **Retry** the exception.

> **A confirmed mapping points at the wrong item or warehouse**
>
> Open **Field mappings** from the **Setup** tab and click **Change** on the row. See [Change a confirmed mapping](#change-a-confirmed-mapping).

## Related guides

> **[Sales channels](https://www.adorabl.info/commerce/sales-channels.md)**
>
> Set the fulfillment and shipping defaults applied to new orders.

> **[Sales orders & fulfillment](https://www.adorabl.info/commerce/sales-orders-and-fulfillment.md)**
>
> Process imported orders through fulfillment and invoicing.

> **[Items](https://www.adorabl.info/products/items.md)**
>
> Complete item costs and GL defaults used during posting.

> **[Warehouses](https://www.adorabl.info/products/warehouses.md)**
>
> Create the locations used for Shopify inventory.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.