SAM
Menu

Feature

One SAM catalogue. Two storefronts, perfectly in sync.

Defyn SAM is the connector layer between your Stories Art and Money tenant and your online store. Artists, artworks, editions, products, variations, discounts and stock flow one way; orders, donations and gift vouchers flow the other. Every record carries an audit trail so you always know what synced, when, and whether it succeeded.

Works on Shopify and WordPress / WooCommerce.

The pain

What happens without a proper sync layer.

Art centres without dedicated SAM integration tend to live with one of three workarounds. None of them scale.

  • Manual double-entry: a coordinator updates SAM, then logs into WordPress / Shopify and re-types the same record. Time-expensive and drifts the moment anyone forgets a step.
  • CSV export-import on a schedule: works until SAM adds a new field, IDs change, or someone edits the file before re-importing. Brittle and silent on failure.
  • Custom one-off scripts: works initially, but the centre depends on the developer's availability for every schema change and bug fix.
What it does

A connector that runs continuously and writes both ways.

Defyn SAM watches SAM via its V3 API and pushes changes to the storefront on the schedule you choose. Storefront events (sales, donations, gift vouchers) post back to SAM the moment they happen.

  • Inbound: every SAM entity type is synced — categories, artists, artworks, editions, products, variations, discounts. Each carries a sam_id so the plugin can tell its own records from your manual ones.
  • Outbound: every storefront order builds a SAM /store/sales payload with line items, buyer details, taxes and shipping. Donations and gift vouchers flow via the same path. Failures retry automatically.
  • Bidirectional reconciliation: on every sync, the plugin compares SAM's current state with your storefront and reports created / updated / unchanged / failed counts. Stale items (removed from SAM) can be cleaned up automatically or left for manual review.
How it works

Five sync paths, all observable from one dashboard.

  1. 01

    Categories

    SAM's full category tree pulls into a private sam_cat taxonomy. The category mapping screen lets you route SAM categories into shopper-friendly display buckets.

  2. 02

    Artists & profiles

    Artist records sync as a dedicated Artist post type (WP) or Metaobject (Shopify) with biographies, language groups, photographs and any custom profile types you've configured in SAM.

  3. 03

    Artworks, editions & products

    Each one-of-a-kind artwork, limited edition print run, and stock product syncs with full metadata: title, description, dimensions, pricing, photographs, GST flag, edition number, artist link.

  4. 04

    Stock & discounts

    Stock changes arrive via authenticated webhook within seconds; scheduled syncs catch anything the webhook missed. Discount campaigns mirror as WooCommerce coupons / Shopify discount codes so customers can use them at checkout.

  5. 05

    Orders, donations, gift vouchers

    Every storefront sale builds a SAM /store/sales payload. Donations and gift vouchers flow via the same endpoint with the right SAM category mapping. Failures retry with exponential backoff via Action Scheduler (WP) or Inngest (Shopify).

Where it kicks in

The everyday reality this changes.

Scenario: An artist drops a new painting at the centre. Coordinator photographs it and enters the record in SAM.

Result: Within the next scheduled sync, the artwork is live on the storefront with all metadata, photographs and pricing. The coordinator never opens WordPress / Shopify admin.

Scenario: A customer buys a one-of-a-kind piece at 3am on a Saturday.

Result: The order pushes to SAM as a sales record within seconds. Stock for that piece is decremented (already at zero since it was one-of-a-kind). The next sync confirms the product disappears from the storefront. No oversold pieces.

Scenario: SAM runs a 10% NAIDOC discount campaign for two weeks.

Result: The discount mirrors as a WC coupon / Shopify discount code via the next sync. Customers apply the code at checkout. The discount is carried back in the order payload so SAM's books reflect the correct receipt.

Questions

Frequently asked.

What's the maximum sync frequency?

Schedules from 1 hour to manual-only are supported. Stock changes don't wait for the schedule — they arrive via SAM webhook within seconds of the change in SAM. So even on a daily catalogue sync, stock stays current.

What if I want to keep a product in my shop that's not in SAM?

Manually-created products live alongside synced ones. The plugin tags everything it syncs with a sam_id post meta, and only manages records with that meta. Anything you created by hand is untouched.

What happens if SAM is unreachable when an order comes in?

The order is queued via Action Scheduler (WP) or Inngest (Shopify) and retried with exponential backoff. The customer experience is unaffected — they get their order confirmation immediately. The push to SAM completes when SAM comes back.

Is the sync one-way only for some entity types?

Categories, artists, artworks, editions, products, variations and discounts are inbound (SAM → store). Orders, donations and gift vouchers are outbound (store → SAM). Stock flows inbound via webhook + scheduled sync. The pattern matches where each record's source of truth lives.

Can I trigger a manual sync any time?

Yes. The Sync Dashboard has buttons for full and partial syncs — Categories, Artists, Artworks, Editions, Products, Discounts, or Sync All. Useful for testing or after bulk edits in SAM.

See it in your tenant.

Want a 15-minute screenshare against your actual SAM data? Send us a quick note or call — we’ll line up a walkthrough at a time that suits.