Product Sync
Use this page to understand how your products get onto your WooCommerce website, and how to keep a product or a whole category off it.
Quick steps
To keep one product off your website (it still sells at the register):
- Open the product's edit page.
- Tick Don't sync to WooCommerce and save.
To keep a whole category off your website:
- Go to the Categories page.
- Switch off WooCommerce Sync for that category and confirm.
- On the plugin's API Setup tab in WordPress, click Sync all products from BrotherPOS now so products already on the website are set to draft.
To push your whole catalog again (plugin mode): click Sync all products from BrotherPOS now on the plugin's API Setup tab.
After the first import, make product changes in Brother POS. They go out to your website on their own.
Common questions
Can I edit products in WooCommerce? It's best not to. On Plugin push / pull, WooCommerce edits are sent back and change your Brother POS product. On Legacy pull, they're ignored.
A product I deactivated is still for sale online. Update the plugin to version 1.7.21 or newer. The next pull sets it to draft.
Images time out during a big import. On the plugin's API Setup tab, set Image handling to Link to BrotherPOS image URLs (recommended for slow hosts).
More detail: how product sync works
Brother POS keeps your WooCommerce store's products in step with your POS catalog. You can bring an existing WooCommerce catalog into Brother POS once, and after that Brother POS is the master copy — product changes you make in Brother POS go out to your website.
- Plugin push / pull (the default for new connections): the Brother POS plugin pulls the catalog out of Brother POS and writes each product into WooCommerce itself. No API keys or firewall exceptions are needed. See Catalog Pull below and Plugin Sync.
- Legacy pull: Brother POS connects to WooCommerce with API keys, and sends product changes to WooCommerce itself.
How Product Sync Works
1. Initial Import (optional)
If your products already live in WooCommerce, the initial import copies them into Brother POS:
- WooCommerce product categories are brought in first.
- Every product is imported with its details, including variable products and their variations.
- Cannabis details are read from the product's data.
- Product image links are saved with each product.
When the import finishes, it is marked complete.
2. After the Import
Once the initial import is complete, Brother POS stops pulling products from WooCommerce. Brother POS is now the master copy:
- Edit products in Brother POS, not in WooCommerce.
- Changes you make in Brother POS go out to WooCommerce — through the plugin's catalog pull in plugin mode, or as automatic updates in legacy mode.
- On Legacy pull, changes made directly in WooCommerce are not copied back into Brother POS, even if the plugin is installed.
- On Plugin push / pull, edits made directly in WooCommerce are sent back and change the Brother POS product, and trashing a linked product in WooCommerce deactivates it in Brother POS. See Plugin Sync.
- Online orders come into Brother POS in both modes.
More detail: what the initial import brings in (fields, categories, variations, pricing)
What the Initial Import Brings In
Product Fields
| WooCommerce | Brother POS | Notes |
|---|---|---|
| Name | Name | |
| SKU | SKU | If the WooCommerce SKU is blank, one is made up from the WooCommerce product number, e.g. WOO-123. The SKU is also used as the barcode when the product has none. |
| Regular / Sale Price | Price | The sale price is used when one is set |
| Description | Description | Formatting is stripped, leaving plain text |
| Status | Available for sale | Published products are active; any other status is inactive |
| Stock Quantity | Current Stock | Only when Manage stock is turned on for that product in WooCommerce |
| Weight | Weight | Converted to grams using the weight unit in your WooCommerce connection settings |
| Images | Product images | |
| Categories | Categories | Every category is assigned |
Cannabis Details
When your WooCommerce products carry cannabis information, the import picks up THC and CBD content, strain type, brand, and terpene, effect, flavour and medical benefit tags where it can find them.
Categories
- Categories are brought in before products, keeping their parent and child structure.
- An existing Brother POS category with the same name (under the same parent) is reused; otherwise a new one is created.
- A product keeps all of its WooCommerce categories.
- To decide what kind of product it is, Brother POS picks the most specific category, skipping marketing categories such as "Staff Picks", "ON SALE" and "Mix & Match". If that category sits under another one, the name of the category above it is used.
Product Format
The product's format is set from that category name. The rows are checked from the top, and the first match wins:
| Category Name Contains | Product Format |
|---|---|
| beverage, drink, soda, sparkling, tea, shot | Edible |
| flower, bud, strain, gas, greenhouse | Flower |
| pre-roll, joint | Pre-roll |
| edible, gummy, chocolate, cookie | Edible |
| concentrate, shatter, wax, hash, resin, rosin, diamond, kief | Concentrate |
| oil, extract, tincture | Oil |
| vape, cartridge, pen | Vape |
| topical, cream, balm | Topical |
| accessory, tool, pipe, paper | Accessory |
A category that matches none of these is treated as flower. The format changes how a product counts toward the daily purchase limit, so check it after the import — especially for anything that landed as Flower by default.
Variable Products and Variations
- The parent product is imported first.
- Each variation is imported as a variation of that parent.
- Variation names are built from their attributes (for example "3.5g - Premium").
- A variation with no SKU gets one made from the parent and variation numbers, e.g.
WOO-123-456. - Variations take their parent's categories.
The parent's stock is the total of its variations' stock. If the parent has no price of its own, Brother POS gives it an average of its in-stock variations' prices, weighted by stock.
Tiered and Quantity Pricing
When the WooCommerce product was set up with the Brother POS plugin's pricing:
- Weight pricing — the pricing template (AA, AAA, AAAA, AAAA+), per-gram price and tier prices come across.
- Quantity pricing — quantity price breaks for unit products come across, as long as every quantity and price is a positive number.
More detail: catalog pull in plugin mode, and image handling
Catalog Pull (Plugin Mode)
In plugin mode, the plugin writes your Brother POS catalog into WooCommerce.
- In batches, then only changes. A full sync pulls the catalog 100 products at a time. After that, only products changed since the last pull are sent.
- Matched by SKU. Products are found or created by SKU, so running a sync again doesn't create duplicates. If an import is interrupted, click Sync all products from BrotherPOS now in the plugin to run it again safely.
- Publish or draft is automatic. Active products are published. If your store hides out-of-stock products from WooCommerce, an out-of-stock product is drafted and published again once it is back in stock.
- Deactivated products are drafted (plugin version 1.7.21 or newer). When you deactivate or delete a product, or it stops being sent for one of the reasons under Products That Aren't Sent, the next pull sets its WooCommerce copy to draft. Nothing is deleted in WooCommerce, and a product your website never had is skipped. Make the product active again and a later pull publishes it again. The first pull after updating the plugin also drafts products that were deactivated before the update.
Category Images
A category's icon in Brother POS is sent along as the WooCommerce category image.
Weight Buttons and $0 Tiers
For weight-priced products, Brother POS sends the weights to offer (for example 1g, 3.5g, 7g, 14g, 28g), so WooCommerce doesn't show weights you don't sell.
A weight priced at $0 — a placeholder or a size you don't offer — is left out. If a weight-priced product has no flat price, its smallest priced weight is used as its price, so the listing never shows $0.00.
Keeping a Category Off Your Website
On the Categories page, each category has a WooCommerce Sync switch. A product whose categories are all switched off (for example mushrooms or nicotine) isn't sent to WooCommerce. A product in at least one category that is switched on, or with no category at all, is still sent.
Switching a category off doesn't change its products, so the regular pull doesn't notice. To draft the products your website already has from that category, click Sync all products from BrotherPOS now in the plugin.
Products That Aren't Sent
- Products with Don't sync to WooCommerce ticked.
- Combos with choice slots, build-your-own platters and buckets. Someone at the counter has to choose part of what the customer gets, so they can't be sold online. Fixed bundles and regular products are sent as normal. See Bundles and Combos.
- Inactive and deleted products.
With plugin version 1.7.21 or newer, any of these that your website already has is set to draft on the next pull.
Image Handling: Upload vs. Link
In the plugin's catalog sync settings, Image handling has two choices:
| Choice | What happens | Best for |
|---|---|---|
| Upload copies into WordPress (media library) (default) | Images are downloaded into your WordPress media library. | Hosts with plenty of resources. |
| Link to BrotherPOS image URLs | Images are shown straight from Brother POS, with no download or thumbnail creation. | Slower hosts, where importing a full catalog of images would time out. |
On budget hosting, downloading hundreds of images can stall the import. Switch Image handling to the link option so the whole catalog imports in one pass.
More detail: sending product changes in legacy mode
Sending Product Changes in Legacy Mode
In legacy mode, when you save a product in Brother POS and a field WooCommerce cares about has changed — such as name, SKU, barcode, price, description, stock, availability, brand, cannabis details, weight pricing or images — the change is queued and sent to WooCommerce automatically.
This happens only when sending products to WooCommerce is turned on in your connection settings (it is on by default) and the initial import is complete. Products with Don't sync to WooCommerce ticked are never sent. Neither are combos with choice slots, build-your-own platters or buckets, whether you save them one at a time or they go out with the rest of the catalog. One that is already listed on WooCommerce stays listed in legacy mode; remove it in WooCommerce yourself.
Sale Prices
A product's Sale Discount (the temporary markdown on the product page) is sent as its WooCommerce sale price, and changing it sends the product again. If the sale has an end date, WooCommerce is told when it ends, so the website goes back to the regular price at that time on its own. When you end a sale yourself (set Discount Type back to No Sale and save), the sale price is cleared on the website too, so a finished sale doesn't linger online.
Weight Prices
Changing the price of a weight option on a weight-priced product (for example the 3.5g or 7g price) sends the product to WooCommerce, so the website's weight prices stay in step.
A product priced by weight tier, with no price of its own, is listed on WooCommerce at the price of its smallest weight that has a price, rather than at $0.
Categories With WooCommerce Sync Off
On the Categories page, switching a category's WooCommerce Sync off in legacy mode takes that category's products off your website straight away — they are deleted from WooCommerce, and the confirmation message says how many were removed. A product that is also in a category still switched on stays on your website. After that, a product whose categories are all switched off isn't sent when you save it or when it sells, and its stock isn't pushed.
In plugin mode the plugin pulls the catalog itself, so the regular scheduled sending of products and stock is switched off, and saving a product doesn't send it either. That also avoids a wave of failures after a WordPress site rebuild, when the old WooCommerce product numbers no longer exist.
Some Hosts Block Updates and Deletes
Some hosts block the kinds of requests used to update and delete products, even though adding products works. When that happens, Brother POS automatically retries in a way those hosts accept. You don't need to do anything.
Deleting Products
When Brother POS removes a product from WooCommerce, the product is deleted permanently rather than moved to the trash. That frees up the SKU immediately, so the product can be recreated cleanly later.
More detail: change detection, monitoring and more questions
Change Detection
On the WooCommerce connection page, you can run a check that compares your products with what's in WooCommerce — name, SKU, regular price and, where Brother POS manages it, stock. Any differences are logged, and the check then repeats every hour.
The check compares the regular price, so a product that is on sale isn't flagged just because the website shows its sale price. A product priced by weight tier is compared with the price Brother POS sends for it (its smallest weight that has a price), so it isn't flagged just because its own price is $0. A product with no price to compare isn't checked for price. Stock is compared as the whole number sent to WooCommerce, so 0.5 g here and 1 on the website is a match.
If automatic correction is turned on (it is off by default), products that don't match are sent to WooCommerce again, so the Brother POS values win.
Monitoring Sync
The Health Monitor shows recent sync activity — how many syncs ran, how many succeeded or failed, and a log of recent syncs. You can also click Test Connection or Force Sync from there.
More Questions
Can I edit products in WooCommerce after the import?
It's best not to. It depends on the Sync direction in your WooCommerce settings. On Legacy pull, Brother POS ignores those changes, even if the plugin is installed. On Plugin push / pull, the edit is sent back and changes the Brother POS product's name, description, price, stock and whether it is active. Either way, make product changes in Brother POS.
What happens if I delete a product in WooCommerce?
On Plugin push / pull, trashing or deleting a product in WooCommerce deactivates the matching Brother POS product, once the two are linked. On Legacy pull, Brother POS doesn't take product changes from WooCommerce after the initial import, so the product stays in Brother POS. Deactivate or delete it there yourself.
What if a product has no SKU in WooCommerce?
The import makes one from the WooCommerce product number, e.g. WOO-123. A variation without a SKU gets one from the parent and variation numbers, e.g. WOO-123-456.
Why are some products missing after import?
A product that fails to save — for example because its SKU is already used by another product — is skipped. Check the Health Monitor for failed records.
What's Next?
- Plugin Sync (Firewall-Proof) — How the plugin pulls your catalog without API keys.
- 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.