Inventory & Stock
Track stock per variant, sync levels with Square or WooCommerce, and prevent overselling on releases.
OnCloudWine tracks inventory per variant. When a release is built, the system checks projected demand against current stock and warns you if the release would oversell.
Where stock is tracked
Stock lives on each variant of a product. There are three sources of truth depending on the variant's origin:
| Source | Source of truth |
|---|---|
| LOCAL | Stock is managed in OnCloudWine. Adjust manually or via stock-movement APIs. |
| SQUARE | Square is the source of truth. OnCloudWine syncs current levels via SYNC_SQUARE_STOCK background job. |
| WOOCOMMERCE | WooCommerce is the source of truth. OnCloudWine syncs via SYNC_WOOCOMMERCE_STOCK. |
Viewing stock
Each product detail page shows a stock summary in the meta panel. The products list also has a Stock column for at-a-glance triage.
2022 Cabernet Sauvignon
Cabernet Sauvignon · Source: Square
- Total stock
- 147 bottles across 2 variants
- Reserved
- 64 bottles (Spring 2026 release, PENDING)
- Available
- 83 bottles
- Last sync
- 2 minutes ago (auto)
Stock states
For each variant:
| State | Definition |
|---|---|
| On hand | Total physical inventory per the source system. |
| Reserved | Allocated to a PENDING release that has not yet shipped. |
| Available | On hand minus reserved. The number new releases can draw from. |
| Out of stock | Available is zero. Releases attempting to assign this variant get a warning. |
Manual adjustments (LOCAL variants)
For local products you can adjust stock directly:
Open the product detail page
Click any product from the Products list.
Find the variant
The Variants tab lists each one with its current stock level.
Click Adjust stock
Enter the new quantity and a reason (audit count, breakage, returned, etc.).
Save
The adjustment is recorded in the activity log with the reason and the user who made it.
Syncing from Square
When Square is your source of truth, OnCloudWine pulls levels automatically on a schedule. To force an immediate sync:
Settings → Integrations → Square
Confirm the integration is active.
Click Sync stock
Triggers
SYNC_SQUARE_STOCKimmediately. Progress visible in Activity Logs.Confirm levels
The variant rows update with the new on-hand counts when the job completes (typically under a minute).
Syncing from WooCommerce
Same pattern with SYNC_WOOCOMMERCE_STOCK. Configure the polling cadence
under Settings → Integrations → WooCommerce. Most stores set it to every
5–15 minutes during release weeks and hourly otherwise.
Reservation timing
Stock is reserved when a release transitions to PENDING. It's released back to "available" when:
- A fulfillment ships (the bottle has actually left)
- A release is cancelled
- A modification removes a product from a contact
This means the moment you promote a release, your Available drops by the
release's projected demand — preventing a second release from
double-allocating the same bottle.
Overselling warnings
If a release as-built would consume more stock than is available, the review step flags it:
"Spring 2026 Reds needs 132 bottles of 2022 Cabernet but only 100 are available." You can reduce the audience, swap variants, or adjust stock before promoting.
Stock and the packing list
The Packing List shows the total quantity needed per variant — useful for warehouse pre-pull. If your stock is split across multiple Square locations, the location-mapping feature on the release lets you direct each fulfillment to the correct fulfillment site.