Product Creation
Product Creation builds Shopify products out of your MYOB Exo stock items, so Exo stays the place a product is defined and Shopify is where it is sold.
It runs in two stages. InSyncer first stages a preview of each product it wants to create, then creates it in Shopify only once you push it.
How it works
Section titled “How it works”- InSyncer reads your stock items from Exo.
- Items that qualify are staged as previews — title, vendor, description, option names, variants, metafields. Nothing exists in Shopify yet.
- You review the staged list in the Product Creation tab and push the ones you want.
- Pushed products are recorded against their Exo item, so the same product is never created twice.
If a push fails, the preview keeps the error against it rather than silently disappearing, so a failed product stays visible in the list.
Choosing which items get created
Section titled “Choosing which items get created”| Setting | What it controls |
|---|---|
product_creation_trigger_attribute |
The Exo stock item extrafield that flags an item for creation |
product_creation_trigger_attribute_value |
The value that extrafield must hold to trigger it — commonly Y |
product_creation_sku_must_not_exist |
Set to no to skip creation when the SKU already exists in Shopify |
Using a trigger extrafield is the safest way to run this. It means a product appears in the staging list because someone in Exo ticked it for the web, not because it happened to be in the catalogue.
One product or many variants
Section titled “One product or many variants”product_creation_type decides the shape of what gets built:
single_variant— each Exo stock item becomes its own Shopify product.multi_variant— several Exo stock items are grouped into one Shopify product, each becoming a variant.
In multi-variant mode, product_creation_group_attribute names the Exo extrafield that does the grouping. Every stock item sharing a value in that field lands on the same Shopify product. In practice the same extrafield is often used for both the grouping and the product title, so the group and the name of the product agree.
Shopify allows a maximum of three variant options per product. Group your items so that no product needs a fourth.
What lands on the product
Section titled “What lands on the product”| Shopify field | Source |
|---|---|
| Title | The Exo extrafield named in product_creation_map_product_title_from_extrafield |
| Description | product_creation.html_source_field — either the Exo web description or the item notes |
| Product status | product_creation_default_status — ACTIVE or DRAFT |
| Images | Attached from the Exo item image when product_creation_attach_images is on |
| SKU | The Exo stock code |
| Barcode | barcode_sync_source — barcode1, barcode2, or barcode3, when barcode_sync_enabled is on |
| Weight | The extrafield in weight_sync_extrafield_key, in the unit set by weight_sync_unit |
| Variant metafields | Mapped in variant.metafield_sync_mapping, from either a stock item field or an extrafield |
| Inventory policy | product_creation_inventory_policy — DENY to stop overselling, CONTINUE to allow it |
Price and inventory are set as part of creation. You do not need to wait for the next scheduled sync for a new product to be sellable.
Created products have track quantity switched on and are assigned to all of your Shopify locations.
To control tracking per stock item instead, create a checkbox extrafield in Exo, switch on track_quantity_sync_enabled, and name that field in track_quantity_sync_extrafield_key. Tracking then follows the tick in Exo.
Ordering variant options
Section titled “Ordering variant options”Left alone, option values sort in whatever order they arrive, which puts 10mm before 2mm and reads badly on the storefront.
product_creation_option_values_order fixes that. It is a JSON object keyed by the Exo extrafield behind each option, holding that option’s values in the order you want them shown:
{ "X_SIZE": ["Small", "Medium", "Large", "XL"], "X_DIAMETER": ["0.3mm", "0.5mm", "0.7mm", "1.0mm", "2.0mm"]}Any value not in the list falls in after the ones that are. On a large catalogue this setting holds every option value you sell, so the settings page for it can take a moment to load.
Keeping products in step afterwards
Section titled “Keeping products in step afterwards”Creation is a one-off. Whether a product keeps following Exo after that is ongoing_product_sync_enabled, and ongoing_product_sync_config decides field by field what it is allowed to touch:
{ "title": true, "description_html": true, "vendor": true, "product_type": false, "seo_title": false, "seo_description": false, "metafields": true, "reorder_options": true, "showonweb_status": "DRAFT", "inactive_status": "ARCHIVED"}- Fields set to
trueare rewritten from Exo on every run. showonweb_statusis the Shopify status a product moves to when its Exo item is no longer flagged for the web.inactive_statusis the status it moves to when the Exo item goes inactive — usuallyDRAFTif you want it back easily,ARCHIVEDif you do not.
deactivate_products_enabled is the blunter version of the same idea: when it is on, a Shopify product is deactivated automatically once its Exo item is inactive.