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.
When to use
Section titled “When to use”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.
When not to use
Section titled “When not to use”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.
Inputs
Section titled “Inputs”Configured per use: limit, create_missing, adopt_by_sku, include_attributes.
Outputs
Section titled “Outputs”okproducts_seencreatedadoptedmatchedtags_addedtags_removedmissing_upstreamretractednamespacesfitment_writes_refusederror
Requires
Section titled “Requires”the woocommerce integration
Auto-generated from the skill registry (load_skills()). Do not edit by hand.