# How Product Sync Works

### The Sync Pipeline

When Vinoshipper is connected, product data flows through a three-step pipeline:

**Vinoshipper → CrushSuite → Shopify**

Vinoshipper is the **source of truth** for your wine products. CrushSuite reads product data from Vinoshipper, maps compliance fields, and pushes the product catalog to your Shopify store. This means:

* **Add new products in Vinoshipper** — they'll appear in Shopify after the next sync
* **Update product details in Vinoshipper** — changes propagate to Shopify through CrushSuite
* **Archive products in Vinoshipper** — they'll be archived in Shopify after sync

{% hint style="warning" %}
**Always make product changes in Vinoshipper first.** If you change product names, SKUs, pricing, or inventory directly in Shopify, those changes may be overwritten on the next sync. Vinoshipper is the source of truth for all core product data.
{% endhint %}

***

### What Syncs Automatically

| Data                                             | Direction                | Frequency                            |
| ------------------------------------------------ | ------------------------ | ------------------------------------ |
| Product name and SKU                             | Vinoshipper → Shopify    | Every 24 hours + manual sync         |
| Pricing                                          | Vinoshipper → Shopify    | Every 24 hours + manual sync         |
| Compliance data (ABV, volume, varietal, vintage) | Vinoshipper → Shopify    | Every 24 hours + manual sync         |
| Inventory / stock levels                         | Bidirectional            | Every 24 hours + after each purchase |
| Product status (active/archived)                 | Vinoshipper → Shopify    | Every 24 hours + manual sync         |
| State availability rules                         | Vinoshipper → CrushSuite | Every 24 hours + manual sync         |

***

### What You Can Safely Edit in Shopify

Some product fields are safe to edit directly in Shopify because they don't exist in Vinoshipper and won't be overwritten:

* **Product images** — upload and arrange photos in Shopify
* **Product descriptions** — CrushSuite does not overwrite descriptions you write in Shopify
* **SEO listing** — page title, meta description, URL handle
* **Tags** — organize products into collections
* **Product type and vendor** — Shopify-specific catalog fields

***

### What NOT to Edit in Shopify

These fields are managed by Vinoshipper and will be overwritten on the next sync:

* Product name
* Product SKU
* Product pricing
* Product metadata (ABV, volume, etc.)
* Product status (active/draft/archived)
* Inventory quantities

***

### How to Trigger a Manual Sync

If you've made changes in Vinoshipper and don't want to wait for the daily automatic sync:

1. Open the **CrushSuite app** in your Shopify Admin.
2. Navigate to **Products** (or **Integrations**, depending on your version).
3. Click the **Sync** button at the top of the page.

The sync runs immediately and updates all product data from Vinoshipper.

<figure><img src="/files/QyuOQqWe8XzWagnqZUAZ" alt=""><figcaption></figcaption></figure>

***

### For Self-Compliance Users

If you're not connected to Vinoshipper, there's no automatic sync pipeline. You manage products directly:

* **Add products** through Shopify's standard product creation flow
* **Enter compliance data** (ABV, volume, varietal, vintage) in CrushSuite's product detail page — see Mapping Product Compliance Data
* **Manage inventory** through Shopify's built-in inventory tools

***

### Sync Frequency Summary

| Trigger                        | What Syncs                                        |
| ------------------------------ | ------------------------------------------------- |
| **Every 24 hours (automatic)** | Full product catalog, compliance rules, inventory |
| **After each purchase**        | Inventory levels                                  |
| **Manual sync button**         | Full product catalog, compliance rules, inventory |


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://crushsuite.gitbook.io/docs/compliance/managing-products/how-product-sync-works.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
