Push (WooCommerce → UnoPim)
The push side of the connector — what travels from WooCommerce back to UnoPim, what triggers it, and what you'll see appear in UnoPim afterwards.
What gets pushed
Five entity types are pushed back to UnoPim:
| Entity | What triggers a push | Where it lands in UnoPim |
|---|---|---|
| Product | Saving a product in WooCommerce | Created or updated under its UnoPim code |
| Category | Saving a product category in WooCommerce | Created or updated as a UnoPim category |
| Attribute | Adding a new product attribute (pa_* taxonomy) | Created as an UnoPim attribute |
| Attribute option | Adding a term to a product attribute (e.g. a new colour) | Added as an option under that attribute |
| Image | The featured image or gallery on a pushed product | Uploaded to UnoPim's media library and linked to the product |
Push is for catalogue data only. Stock changes, orders, customers, and prices that exist only in WooCommerce do not push.
Triggers
| Trigger | Where you do it |
|---|---|
| Save a WC product | Edit the product → Update |
| Save a WC category | Edit the category in Products → Categories |
| Add a WC attribute or term | Products → Attributes |
| Bulk push | Sync page → Push All Products / Categories / Attributes |
| Scheduled | Scheduled Jobs |
| Delete (optional) | Trash or permanently delete a product or term, if you've enabled write-back deletes in General Settings |
When a push gets skipped
Even when the trigger fires, a push won't go out if any of these apply:
| Reason | What to do |
|---|---|
| Push is toggled off for the channel | Open Channels & Stores and toggle Push on. |
| The product was just pulled from UnoPim moments ago | The connector waits a short cooldown to avoid bouncing the same change back. Wait, or lower the Debounce seconds value. |
| The product has no family set and no Default family is configured | Pick a Default family on the Core Fields tab. |
| The mapping produced no values | Open Attribute Mapping and confirm at least one field is mapped for the active channel and locale. |
When a push is skipped, the Logs page records why, with an info row.
Family resolution
Every UnoPim product belongs to a family. The connector decides which family to use in this order:
- The product's existing family (if it was pulled from UnoPim, this is already set).
- The Default family you configured on the Core Fields tab.
If neither is set, the push is skipped with a "missing family" error. The product still saves in WooCommerce — only the push to UnoPim is held back. Setting a Default family fixes this for every product at once.
What the push actually contains
A push for one product carries:
- The product code (UnoPim's identifier).
- The family.
- The product type (
productfor simple,configurablefor variable). - The category assignments.
- The tag assignments.
- The associations (upsells, cross-sells, grouped products).
- All mapped attribute values, scoped correctly per locale, channel, or currency.
- The per-channel active/inactive status.
Each value is sent in the right scope automatically:
| Attribute type | What's sent |
|---|---|
| Plain | One value, used everywhere |
| Localized | One value per active locale |
| Scoped to a channel | One value per active channel |
| Localized + scoped | One value per (channel, locale) combination |
| Currency-bound (prices) | One value per active currency |
You don't have to think about scope yourself — the connector reads each attribute's settings and wraps the value correctly.
Variable products
If the WooCommerce product is variable:
- The parent is sent as a configurable product, declaring which attributes are the variant axes.
- Each variation is sent as its own simple product, linked to the parent.
- Variant images push alongside their variation.
Attribute and option push
When you add or change a product attribute in WooCommerce, the connector mirrors it back:
| What you do in WooCommerce | What happens in UnoPim |
|---|---|
| Create a new attribute (e.g. "Material") | A matching attribute is created in UnoPim |
| Add a term to an attribute (e.g. "Cotton") | A matching option is added under that UnoPim attribute |
| Rename a term | The matching UnoPim option is renamed |
| Delete a term | If write-back deletes are on, the option is deleted in UnoPim too |
Image push
When a product is pushed, its featured image and gallery images upload to UnoPim and get linked to that product. Images are uploaded in the background, so a slow image upload doesn't hold up the rest of the push. If an image fails, the rest of the product still goes through, and the image is retried on the next push.
Bulk push
Click Push All Products (or Categories, or Attributes) on the Sync page to send everything in one go. The connector batches the work — typically 50 items at a time — so it doesn't slow your site down. Every gate above still applies: bulk push respects the channel toggle, debounce, and Default family rules just like an individual save.
Delete handling
Off by default. If you turn on Write-back deletes in General Settings:
- Trashing a product in WooCommerce records the intent but doesn't delete in UnoPim yet (since trash is reversible).
- Permanently deleting a product (or a term) deletes it in UnoPim as well.
With it off, deletes only affect WooCommerce; UnoPim continues to think the entity exists.
Common patterns
Push to one channel only
You have multiple channels enabled in the connector but want products to land in a single UnoPim channel.
- Open Channels & Stores, toggle Push off for every channel except the one you want.
Don't push a particular product type
If, say, you don't want subscription products to push to UnoPim, the connector supports skipping specific products if your developer wants to extend it.
Send extra fields you haven't mapped
By default, the connector only pushes fields you've explicitly mapped. If you want every WooCommerce field with a value to go across, the connector also supports a "send unmapped fields" mode if your developer wants to extend it. Note that UnoPim must have matching attribute codes for those fields, or it will reject the push.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Push log shows "missing family" | Product has no family and no Default family is set | Set a Default family on the Core Fields tab. |
| HTTP 422 with "attribute not in family" | Mapping points at an attribute that isn't part of the family in UnoPim | Edit the family in UnoPim to include the attribute, or remove that attribute from the mapping. |
| Push runs on save but UnoPim isn't updated | Debounce window still open from a recent pull | Wait a minute, or lower Debounce seconds to 0 in Channels & Stores. |
| Bulk push appears to do nothing | Background queue stalled | Check the Logs page for recent activity. If everything is quiet, see the cron note in Troubleshooting. |
| Image push fails | Connection blip during upload | Will retry on the next push. If it keeps failing, your developer can extend HTTP timeouts. |
| Same product alternates pull/push | Debounce is set to 0 | Set Debounce seconds to 60 or higher in Channels & Stores. |
Tips
If push isn't behaving the way you expect, the Logs page is the fastest way to find out why — every push, skip, and error gets a row with the exact reason.
