Skip to content

Sync catalogue from shop

Module · Stable

Mirror the connected shop’s categories and attributes onto the workspace catalogue as facets — what each product fits, and how it is filed.

Reads every published product in the connected shop and writes its categories (and optionally its attributes) onto the matching catalogue row as namespaced facets. A shop files a part under the machine it fits, and that is the fact this carries across — it appears nowhere in a product’s title, so no name search can find it. Products are matched on the shop’s product id, never the SKU (plenty of real products have no SKU); a first run adopts existing rows by an exact, unambiguous SKU match and stamps the id onto them. Everything written lives in the shop’s own layer: hand-authored facets are a separate layer that a sync never reads or touches, so this is safe to re-run at any time and a person’s correction always survives it. It never writes the fitment facet and never decides that a shop term means a machine — most shops file machine ranges and merchandising terms in one flat list with nothing to tell them apart, so which terms name a machine is a judgement a person makes. Product names, prices and descriptions are written on create only — after that the catalogue row belongs to the workspace.

On a schedule, so the catalogue keeps up as the shop’s ranges change. Once, to seed a catalogue from a shop that already has one. And after reorganising the shop, to pull the new filing across. Read the removed and missing_upstream counts afterwards: those are the shop retracting something, which nothing resolves automatically and which is how fitment quietly disappears if nobody looks.

Not to answer a question — it writes. To read what a product fits, read the catalogue. Not to keep product names or prices in step with the shop either: it fills those on create and then leaves them alone, deliberately, so a curated description is never overwritten by a mirror run. And not as the only source of fitment — it carries what the shop happens to say, and the gaps are exactly what a person fills in the catalogue’s own layer. Above all it is not a fitment source: it records which terms a product is filed under, never that a term names a machine the product fits.

Configured per use: limit, create_missing, adopt_by_sku, include_attributes.

  • ok
  • products_seen
  • created
  • adopted
  • matched
  • tags_added
  • tags_removed
  • missing_upstream
  • retracted
  • namespaces
  • fitment_writes_refused
  • error

the woocommerce integration


Auto-generated from the skill registry (load_skills()). Do not edit by hand.