Product Sync
Brother POS provides two-way product synchronization with WooCommerce. Products created or updated in your WooCommerce store are pulled into Brother POS, and products pushed from Brother POS appear in your online store.

How Product Sync Works
Product sync operates in two distinct phases:
1. Initial Import
The first sync after connecting WooCommerce performs a full import of your entire catalog:
- All WooCommerce product categories are synced first.
- Every published product is imported with its full details.
- Variable products and their variations are imported as parent-child relationships.
- Cannabis attributes are extracted from product metadata.
- Images are downloaded and associated with each product.
The initial import is automatically marked as complete once products have been successfully created. After that, Brother POS switches to incremental sync.
2. Incremental Sync
After the initial import, Brother POS performs periodic sync at the interval you configured (default: every 5 minutes):
- New products added to WooCommerce are created in Brother POS.
- Updated products have their cannabis attributes refreshed.
- Stock levels are updated for products with managed stock.
- A change detection system identifies discrepancies and an auto-corrector resolves them.
What Gets Synced
Product Fields
| WooCommerce Field | Brother POS Field | Notes |
|---|---|---|
| Name | Name | Only updated during initial import for existing products |
| SKU | SKU / Barcode | SKU is used for barcode scanning. Auto-generated as WOO-{id} if blank. |
| Regular / Sale Price | Price | Sale price takes priority if set |
| Description | Description | HTML tags are stripped automatically |
| Status (publish/draft) | Active | Published = Active, Draft = Inactive |
| Stock Quantity | Current Stock | Only when "Manage Stock" is enabled in WooCommerce |
| Weight | Weight Value | Converted to grams based on your configured weight unit |
| Images | Primary Image / Gallery | First image becomes primary; all images stored as gallery |
| Categories | Categories | Multi-category support with primary category detection |
Cannabis-Specific Fields
Brother POS extracts cannabis data from WooCommerce product metadata and attributes:
| Data Source | Fields Extracted |
|---|---|
| Product metadata | THC content and unit |
| Product metadata | CBD content and unit |
| Product metadata | Strain type (Indica, Sativa, Hybrid) |
| Product metadata | Brand name |
| Product metadata | Effects profile |
| Product metadata | Flavour profile |
| Product attributes | Fallback extraction from WooCommerce attributes (THC %, CBD %, Strain Type) |
| Product metadata | Terpene associations |
| Product metadata | Flavor associations |
| Product metadata | Medical benefit associations |
Brother POS checks product meta first (more reliable), then falls back to product attributes. If your WooCommerce store uses a cannabis plugin that stores data in custom meta fields, Brother POS will pick it up automatically.
Category Sync
Categories are synced before products to ensure proper categorization:
- WooCommerce categories are matched to Brother POS categories by name.
- If a matching category does not exist in Brother POS, it is created automatically.
- Parent-child category hierarchies are preserved.
- Products can belong to multiple categories (many-to-many relationship).
- Brother POS selects the most specific (deepest) non-marketing category as the primary category.
Marketing categories like "Staff Picks", "ON SALE", and "Mix & Match" are recognized and deprioritized when selecting the primary category.
Product Format Mapping
Brother POS automatically maps your WooCommerce category names to product formats:
| Category Name Contains | Product Format |
|---|---|
| flower, bud, strain | flower |
| pre-roll, joint | pre_roll |
| edible, gummy, chocolate | edible |
| oil, extract, concentrate | oil |
| vape, cartridge | vape |
| topical, cream, balm | topical |
| accessory, tool, pipe | accessory |
Variable Products and Variations
WooCommerce variable products are fully supported:
- The parent product is imported first with its base attributes.
- Each variation is imported as a child product linked to the parent.
- Variation names are built from their attributes (e.g., "3.5g - Premium").
- If a variation has no SKU in WooCommerce, Brother POS auto-generates one as
WOO-{parent_id}-{variation_id}. - Variations inherit their parent's categories automatically.
- Variations without their own images inherit the parent product's images.
Stock for Variable Products
- Individual variation stock levels are synced from WooCommerce.
- The parent product's stock is calculated as the sum of all variation stock levels.
- If the parent has no price set, Brother POS calculates a weighted average price from in-stock variations.
Tiered and Quantity Pricing
Brother POS supports two types of advanced pricing from WooCommerce:
Weight-Based Tiered Pricing
For weight-based products (typically cannabis flower), tiered pricing data is extracted from the weight_pricing metadata:
- Quality tier assignment (AA, AAA, AAAA, AAAA+)
- Price-per-gram tiers
- Tiered pricing matrices
Unit-Based Quantity Pricing
For unit-based products, quantity pricing is extracted from the _quantity_pricing_data meta field. Brother POS validates the pricing structure to ensure all quantities and prices are positive numbers.
Pushing Products to WooCommerce
Brother POS can push products back to WooCommerce:
- Navigate to Admin > Products and open a product.
- If the product has a WooCommerce product ID, changes can be pushed.
- The WooCommerce Product Push job handles sending updates.
- Fields pushed include name, price, description, stock, and status.
Some fields are only synced in one direction. Cannabis attributes (THC, CBD, strain type, terpenes, effects) always sync from WooCommerce to Brother POS, even during regular sync cycles. This ensures your online store remains the source of truth for cannabis product data.
Change Detection and Auto-Correction
Brother POS includes a built-in change detection system that:
- Detects discrepancies between WooCommerce and Brother POS product data.
- Logs detected changes for review.
- Auto-corrects certain discrepancies based on your configuration.
This ensures data consistency over time, even if manual edits are made on either side.
Monitoring Sync Status
Every product imported from WooCommerce has a sync status:
| Status | Meaning |
|---|---|
synced | Product is up to date |
pending | Product has changes waiting to sync |
error | Last sync attempt failed |
You can view sync status and recent sync logs on the Health Monitor page.
Common Questions
What happens if I delete a product in WooCommerce?
The product is not automatically deleted in Brother POS. A separate Product Deletion Job handles cleanup based on your configuration. By default, deleted WooCommerce products are deactivated (not deleted) in Brother POS to preserve sales history.
Can I edit synced products in Brother POS?
Yes. After the initial import, Brother POS does not overwrite product names, prices, or SKUs during regular sync. Cannabis attributes (THC, CBD, strain type) continue to sync from WooCommerce.
What if a product has no SKU in WooCommerce?
Brother POS generates a unique SKU using the pattern WOO-{woocommerce_id}. For variations without SKUs, the pattern is WOO-{parent_id}-{variation_id}.
Why are some products missing after import?
Check the Health Monitor for failed records. Common causes include validation errors (missing required fields), duplicate SKUs, or products without categories.
What's Next?
- Order Sync -- Learn how WooCommerce orders are imported for fulfillment.
- Inventory Sync -- Understand how stock pushes keep your online store accurate.
- Freebie Sync -- Sync freebie campaigns to your WooCommerce store.
- Health Monitor -- Monitor sync health and troubleshoot errors.