# Product FAQs

#### How does product sync from Vinoshipper work?

Once your Vinoshipper account is connected, CrushSuite imports your full product catalog to Shopify. Each Vinoshipper product becomes a Shopify product, with the compliance data (ABV, volume, varietal, vintage) mapped automatically.

After the initial import, updates flow continuously:

* **Inventory** syncs from Vinoshipper to Shopify (Vinoshipper is the source of truth).
* **Price changes** made in Vinoshipper sync to Shopify.
* **New products** added to Vinoshipper will appear in Shopify on the next sync.

You should manage your product catalog in Vinoshipper, not Shopify. Changes you make directly in Shopify (to price, inventory, or compliance data) can be overwritten the next time CrushSuite syncs.

<a href="/pages/hFexLU29Okc20uIIOdp9" class="button secondary">How Product Sync Works</a>

***

#### Why do my SKUs need to match between Shopify and Vinoshipper?

SKUs are how CrushSuite matches a Shopify product to its Vinoshipper counterpart when an order comes through. If a customer buys a product in Shopify and the SKU does not match anything in Vinoshipper, the order cannot sync.

This is the single most common cause of order sync failures. Whenever we see "Order could not be created" notifications, the first thing we check is whether the SKUs match.

A few rules:

* Every wine product in Shopify should have a SKU that exactly matches its Vinoshipper counterpart.
* SKUs are case-sensitive. "ABC-123" and "abc-123" are treated as different.
* If you need to change a SKU, change it in Vinoshipper first. The update will sync to Shopify.

See the Matching SKUs guide for a walkthrough on auditing your catalog for mismatches.

<a href="/pages/FahoUlr6fDAIDftZVTsz" class="button secondary">Mapping Product Compliance Data</a>

***

#### What happens if I have a non-wine product on my store?

Non-wine products are fully supported. You can sell merchandise, gift cards, accessories, food, and anything else alongside your wine without any issues.

CrushSuite's compliance checks only apply to products tagged with alcohol data (ABV and volume). Products without that data are treated as regular Shopify products and ship anywhere with no restrictions.

One thing to be aware of: right now, our pre-checkout compliance check runs on any cart that contains at least one alcohol product. If a customer has both a wine and a t-shirt in their cart, the compliance check applies to the wine and the t-shirt goes along for the ride. We are working on refining this so non-alcohol products can move independently, but for now it behaves as described.

<a href="/pages/2PiXdPrVNejWuu3dVSh3" class="button secondary">Alcohol vs. Non-Alcohol Products</a>

***

#### How does inventory work for bundles or multi-pack products?

Bundle inventory is managed on the Vinoshipper side. Here is how it works:

When you create a bundle product in Vinoshipper (for example, a 3-bottle gift pack containing a Cabernet, a Merlot, and a Chardonnay), the bundle itself is a product but its inventory is tracked by its component products.

When a customer buys the bundle, the inventory of each component product decreases by one. The bundle product itself does not have its own independent stock count. This prevents double-counting and ensures your inventory stays accurate regardless of whether a customer buys a bottle individually or as part of a bundle.

If you set up bundles in Vinoshipper, they will sync to Shopify as regular products and you can sell them normally at checkout.

***

#### Can I sync only a subset of products from Vinoshipper?

Not directly, but there is a workaround.

CrushSuite syncs every product in your Vinoshipper catalog to Shopify. If you want certain products to be hidden from customers on a specific Shopify store, the way to do it is to mark those products as "draft" in Shopify. Draft products still exist but are not visible to customers.

This matters most for multi-brand operators running two Shopify stores on one Vinoshipper account. The cleaner long-term solution is to split into two Vinoshipper accounts, one per brand.

***

#### How do I add compliance data (ABV, volume, vintage) to a product?

If the product came from Vinoshipper, the compliance data is already there. You can see and edit it from the Vinoshipper side, and changes will sync to Shopify.

If you are using CrushSuite with self-compliance (no Vinoshipper), you enter the compliance data directly in CrushSuite when you create or edit the product.

Never edit compliance data directly in Shopify. Those fields will be overwritten on the next sync, and you can end up with a product that behaves unpredictably at checkout.

***

#### Why do I have duplicate products in Shopify?

Two common causes:

1. **Products with the same SKU were synced at different times.** If CrushSuite synced a product, then you manually created a Shopify product with the same SKU, you can end up with two entries. Fix: delete the manually-created one. The synced one is the authoritative record.
2. **You created a product in Shopify before setting up Vinoshipper, then synced.** The Vinoshipper sync adds a new product rather than merging with the existing one. Fix: merge the Shopify-only product with its Vinoshipper counterpart, or delete the Shopify-only version once the Vinoshipper sync is complete.

If you are seeing this at scale (many duplicates), contact us and we will help you clean up.

<a href="/pages/Jve7wXvYddRHOPm5secm" class="button secondary">Merging Products & Creating Variants</a>

***

#### Why are my Recharge orders behaving differently than regular orders?

Recharge orders come through Shopify with a subscription tag that identifies them as recurring. For the most part, CrushSuite treats them like any other order, but we have seen some edge cases with:

* **Shipping method not populating** on Recharge orders. The customer-selected shipping method does not always pass cleanly from Recharge into Shopify, which means our downstream sync to Vinoshipper can show up with "shipping" but no method selected.
* **Compliance fee calculation.** If Recharge generates a replacement or retry order, the compliance fee may not recalculate correctly.

If you are running Recharge and seeing unexpected behavior on recurring orders, let us know. This is a known area of edge cases and we can investigate specific orders if you send us the order numbers.

Our upcoming CrushSuite Clubs product is designed to replace Recharge for wine clubs, with native integration that eliminates these edge cases. If that is on your roadmap, let us know and we will add you to the early access list.

***

#### How do I handle products that aren't available in certain states?

CrushSuite supports per-product state availability. If a specific wine is not allowed in certain states (for example, due to label restrictions or a state-specific registration), you can configure availability for that product individually.

From the CrushSuite app, go to the product and look for the state availability settings. You can toggle individual states on or off. Customers in blocked states will see the product as unavailable at checkout.

State availability is product-specific. If you want to block a state across your entire catalog, that is a shipping rule rather than a product rule. Use the state shipping configuration for that.

<a href="/pages/VB2l9dY4QCTi6JmGj2wr" class="button secondary">Setting Product Availability by State</a>

***

#### How do I remove or archive a product?

If the product came from Vinoshipper, archive or delete it in Vinoshipper first. The change will sync to Shopify automatically.

If you delete a Vinoshipper product directly in Shopify without archiving it in Vinoshipper first, it will reappear on the next sync. Always start on the Vinoshipper side.

For non-Vinoshipper products (merch, gift cards, accessories), archive or delete them directly in Shopify. CrushSuite does not touch those.


---

# 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/faqs/product-faqs.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.
