← back to Designer Wallcoverings
auto-save: 2026-06-24T09:56:09 (5 files) — shopify/scripts/cadence/data/cadence-cursor.json shopify/scripts/cadence/data/cadence-plan-am-2026-06-24.json shopify/scripts/cadence/data/upload-restore-2026-06-24.jsonl vendor-scrapers/china-seas-refresh pending-approval/burst_twil_naturals.py
34951aa43a179f58fa14f68a5b0e8b4581691aec · 2026-06-24 09:56:16 -0700 · Steve Abrams
Files touched
A pending-approval/burst_twil_naturals.pyM shopify/scripts/cadence/data/cadence-cursor.jsonM shopify/scripts/cadence/data/cadence-plan-am-2026-06-24.jsonM shopify/scripts/cadence/data/upload-restore-2026-06-24.jsonl
Diff
commit 34951aa43a179f58fa14f68a5b0e8b4581691aec
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed Jun 24 09:56:16 2026 -0700
auto-save: 2026-06-24T09:56:09 (5 files) — shopify/scripts/cadence/data/cadence-cursor.json shopify/scripts/cadence/data/cadence-plan-am-2026-06-24.json shopify/scripts/cadence/data/upload-restore-2026-06-24.jsonl vendor-scrapers/china-seas-refresh pending-approval/burst_twil_naturals.py
---
pending-approval/burst_twil_naturals.py | 146 +++++++++++++++
shopify/scripts/cadence/data/cadence-cursor.json | 2 +-
.../cadence/data/cadence-plan-am-2026-06-24.json | 208 +++++++++++----------
.../cadence/data/upload-restore-2026-06-24.jsonl | 18 ++
4 files changed, 274 insertions(+), 100 deletions(-)
diff --git a/pending-approval/burst_twil_naturals.py b/pending-approval/burst_twil_naturals.py
new file mode 100644
index 00000000..5990d359
--- /dev/null
+++ b/pending-approval/burst_twil_naturals.py
@@ -0,0 +1,146 @@
+#!/usr/bin/env python3
+"""
+burst_twil_naturals.py — raw burst-create the 42 NEW Fentucci/TWIL grasscloth
+products on Shopify (Steve-authorized override of cadence-only, 2026-06-24).
+
+Each product: DRAFT status (activation gate — no publish without confirmed cost/
+full specs), Sample + Roll variants, image(s), description, and FULL metafields.
+Idempotent: skips any dw_sku that already exists. Dedup already done upstream
+(only genuinely-new patterns are in /tmp/burst_records.json).
+
+ DRY (default): bash/python preview, no writes.
+ CONFIRM=1 python3 burst_twil_naturals.py -> creates live (draft) products.
+"""
+import os, sys, json, time, urllib.request, urllib.parse
+
+SHOP="designer-laboratory-sandbox.myshopify.com"; API="2024-10"
+DATA="/tmp/burst_records.json"
+SAMPLE_PRICE="4.25"
+DRY = os.environ.get("CONFIRM","0") != "1"
+
+TOKEN=os.environ.get("SHOPIFY_ADMIN_TOKEN","")
+if not TOKEN:
+ for line in open(os.path.expanduser("~/Projects/secrets-manager/.env")):
+ if line.startswith("SHOPIFY_ADMIN_TOKEN="):
+ TOKEN=line.strip().split("=",1)[1]; break
+assert TOKEN, "no SHOPIFY_ADMIN_TOKEN"
+BASE=f"https://{SHOP}/admin/api/{API}"
+H={"X-Shopify-Access-Token":TOKEN,"Content-Type":"application/json"}
+
+def api(method, path, payload=None):
+ data=json.dumps(payload).encode() if payload is not None else None
+ req=urllib.request.Request(BASE+path, data=data, headers=H, method=method)
+ with urllib.request.urlopen(req, timeout=40) as r:
+ return r.status, json.loads(r.read().decode())
+
+def graphql(query, variables=None):
+ payload={"query":query,"variables":variables or {}}
+ st,res=api("POST","/graphql.json",payload)
+ return res
+
+_PUBS=None
+def all_publication_ids():
+ global _PUBS
+ if _PUBS is None:
+ res=graphql("{ publications(first:50){edges{node{id name}}} }")
+ _PUBS=[e["node"]["id"] for e in res.get("data",{}).get("publications",{}).get("edges",[])]
+ return _PUBS
+
+def publish_all_channels(product_id):
+ gid=f"gid://shopify/Product/{product_id}"
+ pubs=[{"publicationId":p} for p in all_publication_ids()]
+ q="""mutation pub($id:ID!,$input:[PublicationInput!]!){ publishablePublish(id:$id, input:$input){ userErrors{message} } }"""
+ res=graphql(q, {"id":gid,"input":pubs})
+ errs=res.get("data",{}).get("publishablePublish",{}).get("userErrors",[])
+ return len(pubs), errs
+
+def title_case(s): return " ".join(w[:1].upper()+w[1:].lower() if w else w for w in (s or "").split())
+
+def sku_exists(dw_sku):
+ try:
+ st,res=api("GET", f"/products.json?fields=id&limit=1&handle={urllib.parse.quote(handle_for(dw_sku))}")
+ return False # handle-based check is weak; rely on registry/dedup upstream
+ except Exception:
+ return False
+
+def handle_for(rec):
+ p=title_case(rec["pattern"]).lower().replace(" ","-"); c=(rec["color"] or "").lower().replace(" ","-")
+ return f"{p}{('-'+c) if c else ''}-grasscloth-wallcovering-fentucci"
+
+def metafields(rec):
+ mf=[]
+ def add(ns,key,val):
+ if val not in (None,"",): mf.append({"namespace":ns,"key":key,"value":str(val),"type":"single_line_text_field"})
+ add("global","width", rec.get("width") or "36 Inches")
+ add("global","length", rec.get("length") or "8 Yards")
+ add("global","unit_of_measure","Priced Per Single Roll")
+ add("global","Content","Natural Grasscloth")
+ add("global","repeat","Random Match")
+ add("global","Color-Way", title_case(rec.get("color")) if rec.get("color") else None)
+ add("global","Brand","Fentucci")
+ add("global","Collection","TWIL Naturals")
+ add("custom","color", title_case(rec.get("color")) if rec.get("color") else None)
+ add("custom","real_color_name", title_case(rec.get("color")) if rec.get("color") else None)
+ add("custom","manufacturer_sku", rec.get("mfr_sku"))
+ add("custom","pattern_name", title_case(rec.get("pattern")))
+ add("dwc","manufacturer_sku", rec.get("mfr_sku"))
+ add("dwc","pattern_name", title_case(rec.get("pattern")))
+ add("dwc","color", title_case(rec.get("color")) if rec.get("color") else None)
+ add("dwc","brand","Fentucci")
+ return mf
+
+INVENTORY=2026 # Steve: inventory 2026 for both variants
+
+def build(rec):
+ pat=title_case(rec["pattern"]) or (rec.get("mfr_sku") or "").strip() # never blank: fall back to MFR SKU
+ col=title_case(rec["color"]) if rec.get("color") else ""
+ title=f"{pat}{(' '+col) if col else ''} Grasscloth Wallcovering | Fentucci".replace("Wallpaper","Wallcovering")
+ imgs=[{"src":u} for u in [rec.get("img1"),rec.get("img2")] if u]
+ price=rec.get("price") or None # column O "DW Price" = sell price per single roll
+ inv=dict(inventory_management="shopify", inventory_quantity=INVENTORY)
+ variants=[{"option1":"Sample","sku":f"{rec['dw_sku']}-Sample","price":SAMPLE_PRICE, **inv}]
+ roll={"option1":"Roll","sku":rec["dw_sku"], **inv}
+ if price: roll["price"]=price
+ variants.append(roll)
+ # ACTIVE only if it has a sell price; unpriced stay draft (can't sell unpriced)
+ status="active" if price else "draft"
+ tags=["Grasscloth","Natural Wallcovering","Fentucci","TWIL Naturals", f"color:{col}" if col else "", "display_variant", "Needs-Cost" if not price else ""]
+ return {"product":{
+ "title":title,"body_html":rec.get("description") or "",
+ "vendor":"Fentucci","product_type":"Wallcovering","status":status,
+ "published_scope":"global",
+ "tags":", ".join(t for t in tags if t),
+ "options":[{"name":"Title"}],
+ "images":imgs,"variants":variants,"metafields":metafields(rec),
+ }}
+
+def main():
+ recs=json.load(open(DATA))
+ print(f"{len(recs)} TWIL grasscloth products | mode: {'DRY-RUN' if DRY else 'LIVE CREATE (draft)'}")
+ created=0; skipped=0
+ for rec in recs:
+ payload=build(rec)
+ p=payload["product"]
+ if DRY:
+ print(f" [dry] {rec['dw_sku']:14} {p['title'][:44]:44} | {p['status']:6} {len(p['variants'])}v inv{INVENTORY} {len(p['metafields'])}mf price={rec.get('price') or 'NONE'}")
+ continue
+ try:
+ st,res=api("POST","/products.json",payload)
+ pid=res.get("product",{}).get("id")
+ msg=f" created {rec['dw_sku']} -> {pid} ({p['status']})"
+ if p["status"]=="active":
+ n,errs=publish_all_channels(pid)
+ msg+=f" | published to {n} channels" + (f" ERR:{errs}" if errs else "")
+ print(msg); created+=1
+ time.sleep(0.6)
+ except Exception as e:
+ body=getattr(e,'read',lambda:b'')() if hasattr(e,'read') else b''
+ print(f" ERROR {rec['dw_sku']}: {e} {body[:200]}")
+ if DRY:
+ active=sum(1 for r in recs if r.get('price')); draft=len(recs)-active
+ print(f"\nDRY-RUN — would create {active} ACTIVE (all channels, inv {INVENTORY}) + {draft} DRAFT (no sheet price). Re-run with CONFIRM=1.")
+ else:
+ print(f"\nDONE — created {created} products. Active ones published to all sales channels with inventory {INVENTORY}.")
+
+if __name__=="__main__":
+ main()
diff --git a/shopify/scripts/cadence/data/cadence-cursor.json b/shopify/scripts/cadence/data/cadence-cursor.json
index 2efc43f7..0099425f 100644
--- a/shopify/scripts/cadence/data/cadence-cursor.json
+++ b/shopify/scripts/cadence/data/cadence-cursor.json
@@ -1,5 +1,5 @@
{
- "idx": 4,
+ "idx": 10,
"lastSlot": "am",
"lastRun": "2026-06-24"
}
\ No newline at end of file
diff --git a/shopify/scripts/cadence/data/cadence-plan-am-2026-06-24.json b/shopify/scripts/cadence/data/cadence-plan-am-2026-06-24.json
index 41ab3963..217221bc 100644
--- a/shopify/scripts/cadence/data/cadence-plan-am-2026-06-24.json
+++ b/shopify/scripts/cadence/data/cadence-plan-am-2026-06-24.json
@@ -1,172 +1,182 @@
[
{
- "vendor": "Plains",
- "dw_sku": "DWYP-1000003",
- "cost": 0,
- "retail": 0,
+ "vendor": "Newwall",
+ "dw_sku": "DWXW-1005026",
+ "cost": 156,
+ "retail": 282.35,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Bahama Cloth II, Salmon Wallcoverings | Plains",
+ "sampleOnly": false,
+ "title": "Huipil Wine, Wine Wallcoverings | Newwall",
"willActivate": true
},
{
- "vendor": "Plains",
- "dw_sku": "DWYP-1000004",
- "cost": 0,
- "retail": 0,
+ "vendor": "Newwall",
+ "dw_sku": "DWXW-1005027",
+ "cost": 156,
+ "retail": 282.35,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Bahama Cloth II, Lavender Wallcoverings | Plains",
+ "sampleOnly": false,
+ "title": "Sumba Cream, Cream Wallcoverings | Newwall",
"willActivate": true
},
{
- "vendor": "Plains",
- "dw_sku": "DWYP-1000005",
- "cost": 0,
- "retail": 0,
+ "vendor": "Newwall",
+ "dw_sku": "DWXW-1005028",
+ "cost": 156,
+ "retail": 282.35,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Bahama Cloth II, Pacific Blue Wallcoverings | Plains",
+ "sampleOnly": false,
+ "title": "Sumba White, White Wallcoverings | Newwall",
"willActivate": true
},
{
- "vendor": "Grasscloth",
- "dw_sku": "DWRA-1300003",
- "cost": 0,
- "retail": 0,
+ "vendor": "Brewster & York",
+ "dw_sku": "DWBR-170679",
+ "cost": 35,
+ "retail": 63.35,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Enchanted Bamboo, One Color Black on Cream Grasscloth Wallcoverings | Grasscloth",
- "willActivate": false
+ "sampleOnly": false,
+ "title": "Charlise, Blue Wallcoverings | Brewster & York",
+ "willActivate": true
},
{
- "vendor": "Grasscloth",
- "dw_sku": "DWRA-1300004",
- "cost": 0,
- "retail": 0,
+ "vendor": "Brewster & York",
+ "dw_sku": "DWBR-170680",
+ "cost": 69.99,
+ "retail": 126.68,
"sample": "4.25",
- "sampleOnly": true,
- "title": "Enchanted Bamboo, One Color Black on Hay Grasscloth Wallcoverings | Grasscloth",
- "willActivate": false
+ "sampleOnly": false,
+ "title": "Desiree, White Wallcoverings | Brewster & York",
+ "willActivate": true
},
{
- "vendor": "Romo",
- "dw_sku": "DWRM-240054",
- "cost": 408.1035,
- "retail": 738.65,
+ "vendor": "Brewster & York",
+ "dw_sku": "DWBR-170681",
+ "cost": 90,
+ "retail": 162.9,
"sample": "4.25",
"sampleOnly": false,
- "title": "Kami, Pearl Wallcoverings | Romo",
+ "title": "Anna, Dark Blue Wallcoverings | Brewster & York",
"willActivate": true
},
{
- "vendor": "Romo",
- "dw_sku": "DWRM-240055",
- "cost": 408.1035,
- "retail": 738.65,
+ "vendor": "Kravet",
+ "dw_sku": "DWKK-102052",
+ "cost": 59.95,
+ "retail": 89.93,
"sample": "4.25",
"sampleOnly": false,
- "title": "Kami, Powder Wallcoverings | Romo",
+ "title": "Kravet Smart, Beige Wallcoverings | Kravet",
"willActivate": true
},
{
- "vendor": "Romo",
- "dw_sku": "DWRM-240059",
- "cost": 408.1035,
- "retail": 738.65,
+ "vendor": "Kravet",
+ "dw_sku": "DWKK-102053",
+ "cost": 59.95,
+ "retail": 89.93,
"sample": "4.25",
"sampleOnly": false,
- "title": "Kami, Caspian Wallcoverings | Romo",
+ "title": "Kravet Smart, Off-White Wallcoverings | Kravet",
"willActivate": true
},
{
- "vendor": "Thibaut",
- "dw_sku": "DWTT-73420",
- "cost": 62.1,
- "retail": 112.4,
+ "vendor": "Kravet",
+ "dw_sku": "DWKK-102054",
+ "cost": 59.95,
+ "retail": 89.93,
"sample": "4.25",
"sampleOnly": false,
- "title": "Onda, Metallic Gold on Cream Wallcoverings | Thibaut",
+ "title": "Kravet Smart, Beige Wallcoverings | Kravet",
"willActivate": true
},
{
- "vendor": "Thibaut",
- "dw_sku": "DWTT-73421",
- "cost": 56.7,
- "retail": 102.62,
+ "vendor": "Schumacher",
+ "dw_sku": "DWLK-805260",
+ "cost": 68,
+ "retail": 123.08,
"sample": "4.25",
"sampleOnly": false,
- "title": "Burmese, Denim Blue Wallcoverings | Thibaut",
+ "title": "Del Tesoro, Purple & Coral Wallcoverings | Schumacher",
"willActivate": true
},
{
- "vendor": "Thibaut",
- "dw_sku": "DWTT-73422",
- "cost": 56.7,
- "retail": 102.62,
+ "vendor": "Schumacher",
+ "dw_sku": "DWLK-805270",
+ "cost": 68,
+ "retail": 123.08,
"sample": "4.25",
"sampleOnly": false,
- "title": "Burmese, Metallic on Beige Wallcoverings | Thibaut",
+ "title": "Les Fougeres, Document Wallcoverings | Schumacher",
"willActivate": true
},
{
- "vendor": "Zoffany",
- "dw_sku": "DWZF-187029",
- "cost": 281,
- "retail": 508.6,
+ "vendor": "Schumacher",
+ "dw_sku": "DWLK-805280",
+ "cost": 68,
+ "retail": 123.08,
"sample": "4.25",
"sampleOnly": false,
- "title": "Abstract 1928, Taupe Wallcoverings | Zoffany",
+ "title": "Les Fougeres, Spring Wallcoverings | Schumacher",
"willActivate": true
},
{
- "vendor": "Zoffany",
- "dw_sku": "DWZF-187032",
- "cost": 177,
- "retail": 320.36,
+ "vendor": "Quadrille",
+ "dw_sku": "DWQC-600012",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Watered Silk, Platinum Grey Wallcoverings | Zoffany",
+ "sampleOnly": true,
+ "title": "Rajah Paisley, Multi Greens on Linen Wallcoverings | Quadrille",
"willActivate": true
},
{
- "vendor": "Zoffany",
- "dw_sku": "DWZF-187034",
- "cost": 140,
- "retail": 253.39,
+ "vendor": "Quadrille",
+ "dw_sku": "DWQC-600013",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Persian Tulip, Blue Stone Wallcoverings | Zoffany",
+ "sampleOnly": true,
+ "title": "Rajah Paisley, Multi New Blue on Linen Wallcoverings | Quadrille",
"willActivate": true
},
{
- "vendor": "Designtex",
- "dw_sku": "DWDX-220321",
- "cost": 22,
- "retail": 39.82,
+ "vendor": "Quadrille",
+ "dw_sku": "DWQC-600014",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Thatch, Zebra Wallcoverings | Designtex",
- "willActivate": false
+ "sampleOnly": true,
+ "title": "Rajah Paisley, Multi Lavender / Rouge on Linen Wallcoverings | Quadrille",
+ "willActivate": true
},
{
- "vendor": "Designtex",
- "dw_sku": "DWDX-220322",
- "cost": 22,
- "retail": 39.82,
+ "vendor": "Alan Campbell",
+ "dw_sku": "DWAK-700006",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Thatch, Nighttime Wallcoverings | Designtex",
+ "sampleOnly": true,
+ "title": "Inca Gold on Tint Wallcoverings | Alan Campbell",
"willActivate": true
},
{
- "vendor": "Designtex",
- "dw_sku": "DWDX-220323",
- "cost": 22,
- "retail": 39.82,
+ "vendor": "Alan Campbell",
+ "dw_sku": "DWAK-700007",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Thatch, Sand Wallcoverings | Designtex",
- "willActivate": false
+ "sampleOnly": true,
+ "title": "Jungle Green on Tint Wallcoverings | Alan Campbell",
+ "willActivate": true
+ },
+ {
+ "vendor": "Alan Campbell",
+ "dw_sku": "DWAK-700008",
+ "cost": 0,
+ "retail": 0,
+ "sample": "4.25",
+ "sampleOnly": true,
+ "title": "French Blue on Tint Wallcoverings | Alan Campbell",
+ "willActivate": true
}
]
\ No newline at end of file
diff --git a/shopify/scripts/cadence/data/upload-restore-2026-06-24.jsonl b/shopify/scripts/cadence/data/upload-restore-2026-06-24.jsonl
index eed02425..c304db35 100644
--- a/shopify/scripts/cadence/data/upload-restore-2026-06-24.jsonl
+++ b/shopify/scripts/cadence/data/upload-restore-2026-06-24.jsonl
@@ -111,3 +111,21 @@
{"table":"designtex_catalog","mfr_sku":"8290152","dw_sku":"DWDX-220321","shopify_product_id":"7867403337779","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-am-2026-06-24T15-40-01-197Z","ts":"2026-06-24T15:40:58.335Z"}
{"table":"designtex_catalog","mfr_sku":"8290153","dw_sku":"DWDX-220322","shopify_product_id":"7867403403315","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T15-40-01-197Z","ts":"2026-06-24T15:41:01.992Z"}
{"table":"designtex_catalog","mfr_sku":"8290251","dw_sku":"DWDX-220323","shopify_product_id":"7867403436083","action":"created","activated":false,"published":false,"sampleOnly":false,"status":"DRAFT","batch_id":"upload-am-2026-06-24T15-40-01-197Z","ts":"2026-06-24T15:41:04.486Z"}
+{"table":"newwall_catalog","mfr_sku":"A00821","dw_sku":"DWXW-1005026","shopify_product_id":"7867412873267","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:40:07.781Z"}
+{"table":"newwall_catalog","mfr_sku":"A00822","dw_sku":"DWXW-1005027","shopify_product_id":"7867412906035","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:40:12.053Z"}
+{"table":"newwall_catalog","mfr_sku":"A00823","dw_sku":"DWXW-1005028","shopify_product_id":"7867412971571","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:40:17.187Z"}
+{"table":"brewster_catalog","mfr_sku":"2657-22252","dw_sku":"DWBR-170679","shopify_product_id":"7867413004339","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:40:21.341Z"}
+{"table":"brewster_catalog","mfr_sku":"2657-22259","dw_sku":"DWBR-170680","shopify_product_id":"7867413037107","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:40:25.331Z"}
+{"table":"brewster_catalog","mfr_sku":"2999-55032","dw_sku":"DWBR-170681","shopify_product_id":"7867413135411","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:40:29.656Z"}
+{"table":"kravet_catalog","mfr_sku":"35361.1.0","dw_sku":"DWKK-102052","shopify_product_id":"7424886014003","action":"linked-existing","activated":false,"batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:40:30.672Z"}
+{"table":"kravet_catalog","mfr_sku":"35361.101.0","dw_sku":"DWKK-102053","shopify_product_id":"7424886112307","action":"linked-existing","activated":false,"batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:40:31.469Z"}
+{"table":"kravet_catalog","mfr_sku":"35361.111.0","dw_sku":"DWKK-102054","shopify_product_id":"7424886177843","action":"linked-existing","activated":false,"batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:40:32.276Z"}
+{"table":"schumacher_catalog","mfr_sku":"5010652","dw_sku":"DWLK-805260","shopify_product_id":"7867413200947","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:40:36.515Z"}
+{"table":"schumacher_catalog","mfr_sku":"5010660","dw_sku":"DWLK-805270","shopify_product_id":"7867413233715","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:40:40.566Z"}
+{"table":"schumacher_catalog","mfr_sku":"5010661","dw_sku":"DWLK-805280","shopify_product_id":"7867413266483","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:40:44.563Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"304290F-07","dw_sku":"DWQC-600012","shopify_product_id":"7867413299251","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:40:48.226Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"304290F-03","dw_sku":"DWQC-600013","shopify_product_id":"7867413332019","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:40:52.649Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"304290F-05","dw_sku":"DWQC-600014","shopify_product_id":"7867413364787","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:40:56.535Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"AC850-12","dw_sku":"DWAK-700006","shopify_product_id":"7867413430323","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:41:00.598Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"AC850-06","dw_sku":"DWAK-700007","shopify_product_id":"7867413463091","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:41:04.940Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"AC850-05","dw_sku":"DWAK-700008","shopify_product_id":"7867413495859","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-24T16-40-00-144Z","ts":"2026-06-24T16:41:08.479Z"}
← 784bf419 auto-save: 2026-06-24T08:55:52 (4 files) — shopify/scripts/c
·
back to Designer Wallcoverings
·
cadence: tag new ACTIVE products 'New Arrival' inline so fee f41456c0 →