← back to Designer Wallcoverings
auto-save: 2026-06-30T06:59:02 (6 files) — pending-approval/boost-filter-consolidation-2026-06-25 shopify/scripts/cadence/data/cadence-cursor.json shopify/scripts/cadence/data/cadence-plan-am-2026-06-30.json shopify/scripts/cadence/data/upload-restore-2026-06-30.jsonl vendor-scrapers/china-seas-refresh
fc112db408ccada61163344d4951e1438bdd6708 · 2026-06-30 06:59:07 -0700 · Steve Abrams
Files touched
A DW-Programming/ImportNewSkufromURL/_elitis-recrawl.mjsM shopify/scripts/cadence/data/cadence-cursor.jsonM shopify/scripts/cadence/data/cadence-plan-am-2026-06-30.jsonM shopify/scripts/cadence/data/upload-restore-2026-06-30.jsonl
Diff
commit fc112db408ccada61163344d4951e1438bdd6708
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Tue Jun 30 06:59:07 2026 -0700
auto-save: 2026-06-30T06:59:02 (6 files) — pending-approval/boost-filter-consolidation-2026-06-25 shopify/scripts/cadence/data/cadence-cursor.json shopify/scripts/cadence/data/cadence-plan-am-2026-06-30.json shopify/scripts/cadence/data/upload-restore-2026-06-30.jsonl vendor-scrapers/china-seas-refresh
---
.../ImportNewSkufromURL/_elitis-recrawl.mjs | 75 ++++++++
shopify/scripts/cadence/data/cadence-cursor.json | 2 +-
.../cadence/data/cadence-plan-am-2026-06-30.json | 204 ++++++++++-----------
.../cadence/data/upload-restore-2026-06-30.jsonl | 18 ++
4 files changed, 196 insertions(+), 103 deletions(-)
diff --git a/DW-Programming/ImportNewSkufromURL/_elitis-recrawl.mjs b/DW-Programming/ImportNewSkufromURL/_elitis-recrawl.mjs
new file mode 100644
index 00000000..69dd978d
--- /dev/null
+++ b/DW-Programming/ImportNewSkufromURL/_elitis-recrawl.mjs
@@ -0,0 +1,75 @@
+import https from 'https';
+import pg from 'pg';
+const pool = new pg.Pool({ host: '/tmp', database: 'dw_unified', max: 6 });
+const UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120 Safari/537.36';
+const LOG = '/tmp/elitis-recrawl.log';
+import fs from 'fs';
+const log = (m) => { fs.appendFileSync(LOG, m + '\n'); };
+
+function get(url){ return new Promise((res)=>{ const req=https.get(url,{headers:{'User-Agent':UA},timeout:20000},r=>{
+ if(r.statusCode>=300&&r.statusCode<400&&r.headers.location){ r.resume(); return res(get(r.headers.location)); }
+ if(r.statusCode!==200){ r.resume(); return res(null); }
+ let d=''; r.on('data',c=>d+=c); r.on('end',()=>res(d)); });
+ req.on('timeout',()=>{req.destroy();res(null)}); req.on('error',()=>res(null)); }); }
+
+const nx = (h,k)=>{ const m=h.match(new RegExp('[,{]'+k+':"((?:[^"\\\\]|\\\\.)*)"')); return m?m[1].replace(/\\u([0-9a-f]{4})/gi,(_,c)=>String.fromCharCode(parseInt(c,16))).replace(/\\"/g,'"').replace(/\\\//g,'/').trim():null; };
+
+function extract(html){
+ const o={ sku:null,name:null,description:null,image:null,all_images:[],specs:{} };
+ const m=html.match(/<script[^>]*application\/ld\+json[^>]*>([\s\S]*?)<\/script>/i);
+ if(m){ try{ const j=JSON.parse(m[1].trim()); o.sku=(j.sku||'').replace(/_/g,'-')||null; o.name=(j.name||'').trim()||null; o.description=(j.description||'').trim()||null; o.image=j.image||null; }catch(e){} }
+ const comp=nx(html,'composition'), laize=nx(html,'laize'), poids=nx(html,'poids'), raccord=nx(html,'raccord'), nonfeu=nx(html,'nonfeu'), plus=nx(html,'plusProduit');
+ let wm=(laize||o.description||'').match(/width[^(]*\(([^)]+)\)/i); const width=wm?wm[1].trim():null;
+ let lm=(laize||o.description||'').match(/length[^(]*\(([^)]+)\)/i); const length=lm?lm[1].trim():null;
+ let im=(width||'').match(/([\d.]+)\s*"/); const width_in=im?parseFloat(im[1]):null;
+ o.specs={ composition:comp, roll:laize, weight:poids, repeat:raccord, fire_rating:nonfeu, features:plus, width, roll_length:length };
+ Object.keys(o.specs).forEach(k=>{ if(!o.specs[k]) delete o.specs[k]; });
+ o.all_images=[...new Set([...html.matchAll(/https:\/\/backoffice\.elitis\.fr\/media\/[^"'\s)]+\.(?:jpg|jpeg|png|webp)/gi)].map(x=>x[0]))].slice(0,12);
+ if(!o.image&&o.all_images[0])o.image=o.all_images[0];
+ o._cols={ composition:comp, fire:nonfeu, material:comp, width, roll_length:length, repeat:raccord, features:plus, width_in };
+ return o;
+}
+
+const { rows } = await pool.query("select mfr_sku, product_url from elitis_catalog where product_url ilike 'http%' order by mfr_sku");
+fs.writeFileSync(LOG, `START ${rows.length} urls\n`);
+let done=0, ok=0, withSpec=0, fail=0;
+const CONC=6; let idx=0;
+async function worker(){
+ while(idx<rows.length){
+ const r=rows[idx++];
+ const html=await get(r.product_url);
+ done++;
+ if(!html){ fail++; if(done%50===0) log(`progress ${done}/${rows.length} ok=${ok} spec=${withSpec} fail=${fail}`); continue; }
+ const e=extract(html);
+ const hasSpec=Object.keys(e.specs).length>0;
+ if(hasSpec) withSpec++;
+ try{
+ await pool.query(
+ `update elitis_catalog set
+ specs = case when $2::jsonb <> '{}'::jsonb then $2::jsonb else specs end,
+ composition = coalesce(nullif($3,''), composition),
+ fire_rating = coalesce(nullif($4,''), fire_rating),
+ fire_rating_us = coalesce(nullif($4,''), fire_rating_us),
+ material = coalesce(nullif($5,''), material),
+ width = coalesce(nullif($6,''), width),
+ roll_length = coalesce(nullif($7,''), roll_length),
+ pattern_repeat = coalesce(nullif($8,''), pattern_repeat),
+ features = coalesce(nullif($9,''), features),
+ image_url = coalesce(nullif($10,''), image_url),
+ all_images = case when $11<>'[]' then $11 else all_images end,
+ width_inches = coalesce($12, width_inches),
+ crawled_at = now(), updated_at = now()
+ where mfr_sku = $1`,
+ [r.mfr_sku, JSON.stringify(e.specs), e._cols.composition, e._cols.fire, e._cols.material,
+ e._cols.width, e._cols.roll_length, e._cols.repeat, e._cols.features, e.image,
+ JSON.stringify(e.all_images), e._cols.width_in]
+ );
+ ok++;
+ }catch(err){ fail++; if(fail<=5) log(`DBERR ${r.mfr_sku}: ${err.message.slice(0,60)}`); }
+ if(done%50===0) log(`progress ${done}/${rows.length} ok=${ok} spec=${withSpec} fail=${fail}`);
+ }
+}
+await Promise.all(Array.from({length:CONC},()=>worker()));
+log(`DONE total=${done} updated=${ok} withSpecs=${withSpec} fail=${fail}`);
+await pool.end();
+process.exit(0);
diff --git a/shopify/scripts/cadence/data/cadence-cursor.json b/shopify/scripts/cadence/data/cadence-cursor.json
index d1584339..57265495 100644
--- a/shopify/scripts/cadence/data/cadence-cursor.json
+++ b/shopify/scripts/cadence/data/cadence-cursor.json
@@ -1,5 +1,5 @@
{
- "idx": 6,
+ "idx": 12,
"lastSlot": "am",
"lastRun": "2026-06-30"
}
\ No newline at end of file
diff --git a/shopify/scripts/cadence/data/cadence-plan-am-2026-06-30.json b/shopify/scripts/cadence/data/cadence-plan-am-2026-06-30.json
index 28b75a66..64683783 100644
--- a/shopify/scripts/cadence/data/cadence-plan-am-2026-06-30.json
+++ b/shopify/scripts/cadence/data/cadence-plan-am-2026-06-30.json
@@ -1,182 +1,182 @@
[
{
- "vendor": "Romo",
- "dw_sku": "DWRM-240167",
- "cost": 1364,
- "retail": 2468.78,
+ "vendor": "Schumacher",
+ "dw_sku": "DWLK-806550",
+ "cost": 32,
+ "retail": 57.92,
"sample": "4.25",
"sampleOnly": false,
- "title": "Bakbak, Indigo Wallcoverings | Romo",
+ "title": "Thistle, Lavender Wallcoverings | Schumacher",
"willActivate": true
},
{
- "vendor": "Romo",
- "dw_sku": "DWRM-240187",
- "cost": 490.6,
- "retail": 887.96,
+ "vendor": "Schumacher",
+ "dw_sku": "DWLK-806560",
+ "cost": 32,
+ "retail": 57.92,
"sample": "4.25",
"sampleOnly": false,
- "title": "Suru, Typhoon Wallcoverings | Romo",
+ "title": "Thistle, Mustard Wallcoverings | Schumacher",
"willActivate": true
},
{
- "vendor": "Romo",
- "dw_sku": "DWRM-240194",
- "cost": 451,
- "retail": 816.29,
+ "vendor": "Schumacher",
+ "dw_sku": "DWLK-806570",
+ "cost": 398,
+ "retail": 720.36,
"sample": "4.25",
"sampleOnly": false,
- "title": "Palm, Harvest Wallcoverings | Romo",
+ "title": "Orissa Sisal Panel, Sky Wallcoverings | Schumacher",
"willActivate": true
},
{
- "vendor": "Thibaut",
- "dw_sku": "DWTT-73590",
- "cost": 430.2,
- "retail": 778.64,
+ "vendor": "Anna French",
+ "dw_sku": "DWAT-65118",
+ "cost": 62.96,
+ "retail": 113.95,
"sample": "4.25",
"sampleOnly": false,
- "title": "Whitcombe Park Mural, Natural Wallcoverings | Thibaut",
+ "title": "Deauville Linen, White Wallcoverings | Anna French",
"willActivate": true
},
{
- "vendor": "Thibaut",
- "dw_sku": "DWTT-73591",
- "cost": 60.3,
- "retail": 109.14,
+ "vendor": "Anna French",
+ "dw_sku": "DWAT-65119",
+ "cost": 68.27,
+ "retail": 123.57,
"sample": "4.25",
"sampleOnly": false,
- "title": "Antilles Toile, Brown Wallcoverings | Thibaut",
+ "title": "Deauville Linen, Flax Wallcoverings | Anna French",
"willActivate": true
},
{
- "vendor": "Thibaut",
- "dw_sku": "DWTT-73592",
- "cost": 60.3,
- "retail": 109.14,
+ "vendor": "Anna French",
+ "dw_sku": "DWAT-65120",
+ "cost": 64.16,
+ "retail": 116.13,
"sample": "4.25",
"sampleOnly": false,
- "title": "Antilles Toile, Ivory Wallcoverings | Thibaut",
+ "title": "Deauville Linen, Soft Blue Wallcoverings | Anna French",
"willActivate": true
},
{
- "vendor": "Designtex",
- "dw_sku": "DWDX-220453",
- "cost": 56,
- "retail": 101.36,
+ "vendor": "Quadrille",
+ "dw_sku": "DWQC-600135",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Unwind, Linen Wallcoverings | Designtex",
+ "sampleOnly": true,
+ "title": "Chantilly Stripe, Black on Tint Wallcoverings | Quadrille",
"willActivate": true
},
{
- "vendor": "Designtex",
- "dw_sku": "DWDX-220454",
- "cost": 49,
- "retail": 88.69,
+ "vendor": "Quadrille",
+ "dw_sku": "DWQC-600136",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Blur, Sandstorm Wallcoverings | Designtex",
+ "sampleOnly": true,
+ "title": "Chantilly Stripe, Soft Teal on Tint Wallcoverings | Quadrille",
"willActivate": true
},
{
- "vendor": "Designtex",
- "dw_sku": "DWDX-220455",
- "cost": 49,
- "retail": 88.69,
+ "vendor": "Quadrille",
+ "dw_sku": "DWQC-600137",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Blur, Flurry Wallcoverings | Designtex",
+ "sampleOnly": true,
+ "title": "Chantilly Stripe, Camel on Tint Wallcoverings | Quadrille",
"willActivate": true
},
{
- "vendor": "Newwall",
- "dw_sku": "DWXW-1005249",
- "cost": 297.6,
- "retail": 538.64,
+ "vendor": "Alan Campbell",
+ "dw_sku": "DWAK-700136",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Jellyfish Black, Black Wallcoverings | Newwall",
+ "sampleOnly": true,
+ "title": "Multi Salmon Green Gold on Tint Wallcoverings | Alan Campbell",
"willActivate": true
},
{
- "vendor": "Newwall",
- "dw_sku": "DWXW-1005250",
- "cost": 276,
- "retail": 499.55,
+ "vendor": "Alan Campbell",
+ "dw_sku": "DWAK-700137",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "London Deco Grey, Deco Grey Wallcoverings | Newwall",
+ "sampleOnly": true,
+ "title": "Navy Blue Red on White Wallcoverings | Alan Campbell",
"willActivate": true
},
{
- "vendor": "Newwall",
- "dw_sku": "DWXW-1005251",
- "cost": 276,
- "retail": 499.55,
+ "vendor": "Alan Campbell",
+ "dw_sku": "DWAK-700138",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "London Deco Sage, Deco Sage Wallcoverings | Newwall",
+ "sampleOnly": true,
+ "title": "Multi Lilac/Plum/Gold on Tint Wallcoverings | Alan Campbell",
"willActivate": true
},
{
- "vendor": "Brewster & York",
- "dw_sku": "DWBR-170810",
- "cost": 90,
- "retail": 162.9,
+ "vendor": "Home Couture",
+ "dw_sku": "DWHJ-900134",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Maxwell, Grey Wallcoverings | Malibu Wallcovering",
+ "sampleOnly": true,
+ "title": "Turquoise Tobacco on Cream Linen Wallcoverings | Home Couture",
"willActivate": true
},
{
- "vendor": "Brewster & York",
- "dw_sku": "DWBR-170811",
- "cost": 45,
- "retail": 81.45,
+ "vendor": "Home Couture",
+ "dw_sku": "DWHJ-900135",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Maxwell, Blue Wallcoverings | Malibu Wallcovering",
+ "sampleOnly": true,
+ "title": "Lilac Purple on Cream Wallcoverings | Home Couture",
"willActivate": true
},
{
- "vendor": "Brewster & York",
- "dw_sku": "DWBR-170812",
- "cost": 45,
- "retail": 81.45,
+ "vendor": "Home Couture",
+ "dw_sku": "DWHJ-900136",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Maxwell, Black Wallcoverings | Malibu Wallcovering",
+ "sampleOnly": true,
+ "title": "Wine Blue on Cream Wallcoverings | Home Couture",
"willActivate": true
},
{
- "vendor": "Kravet",
- "dw_sku": "DWKK-102850",
- "cost": 69.9,
- "retail": 104.85,
+ "vendor": "Suncloth",
+ "dw_sku": "DWUX-800137",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Recoup, Burnt Sienna Wallcoverings | Kravet",
+ "sampleOnly": true,
+ "title": "French Green Windsor Blue on White Wallcoverings | Suncloth",
"willActivate": true
},
{
- "vendor": "Kravet",
- "dw_sku": "DWKK-102851",
- "cost": 69.9,
- "retail": 104.85,
+ "vendor": "Suncloth",
+ "dw_sku": "DWUX-800138",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Recoup, Olive Green Wallcoverings | Kravet",
+ "sampleOnly": true,
+ "title": "French Green Sky on White Wallcoverings | Suncloth",
"willActivate": true
},
{
- "vendor": "Kravet",
- "dw_sku": "DWKK-102852",
- "cost": 69.9,
- "retail": 104.85,
+ "vendor": "Suncloth",
+ "dw_sku": "DWUX-800139",
+ "cost": 0,
+ "retail": 0,
"sample": "4.25",
- "sampleOnly": false,
- "title": "Recoup, Mustard Wallcoverings | Kravet",
+ "sampleOnly": true,
+ "title": "Magenta Orange on White Wallcoverings | Suncloth",
"willActivate": true
}
]
\ No newline at end of file
diff --git a/shopify/scripts/cadence/data/upload-restore-2026-06-30.jsonl b/shopify/scripts/cadence/data/upload-restore-2026-06-30.jsonl
index 6fd2badc..30e9f109 100644
--- a/shopify/scripts/cadence/data/upload-restore-2026-06-30.jsonl
+++ b/shopify/scripts/cadence/data/upload-restore-2026-06-30.jsonl
@@ -194,3 +194,21 @@
{"table":"kravet_catalog","mfr_sku":"36569.24.0","dw_sku":"DWKK-102850","shopify_product_id":"7871018893363","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T12-40-00-152Z","ts":"2026-06-30T12:40:54.056Z"}
{"table":"kravet_catalog","mfr_sku":"36569.3.0","dw_sku":"DWKK-102851","shopify_product_id":"7871018926131","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T12-40-00-152Z","ts":"2026-06-30T12:40:57.590Z"}
{"table":"kravet_catalog","mfr_sku":"36569.4.0","dw_sku":"DWKK-102852","shopify_product_id":"7871018958899","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T12-40-00-152Z","ts":"2026-06-30T12:41:01.000Z"}
+{"table":"schumacher_catalog","mfr_sku":"5011431","dw_sku":"DWLK-806550","shopify_product_id":"7871092129843","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:40:08.955Z"}
+{"table":"schumacher_catalog","mfr_sku":"5011432","dw_sku":"DWLK-806560","shopify_product_id":"7871092293683","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:40:12.584Z"}
+{"table":"schumacher_catalog","mfr_sku":"5011440","dw_sku":"DWLK-806570","shopify_product_id":"7871092424755","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:40:15.993Z"}
+{"table":"anna_french_catalog","mfr_sku":"AT16146","dw_sku":"DWAT-65118","shopify_product_id":"7871092555827","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:40:19.641Z"}
+{"table":"anna_french_catalog","mfr_sku":"AT16148","dw_sku":"DWAT-65119","shopify_product_id":"7871092686899","action":"created","activated":true,"published":true,"sampleOnly":false,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:40:23.143Z"}
+{"table":"anna_french_catalog","mfr_sku":"AT16149","dw_sku":"DWAT-65120","shopify_product_id":"6948072325171","action":"linked-existing","activated":false,"batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:40:23.902Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"306700F-09","dw_sku":"DWQC-600135","shopify_product_id":"7871092850739","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:40:27.546Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"306700F-02","dw_sku":"DWQC-600136","shopify_product_id":"7871092949043","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:40:31.033Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"306700F-01","dw_sku":"DWQC-600137","shopify_product_id":"7871093080115","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:40:34.637Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"AC103-15","dw_sku":"DWAK-700136","shopify_product_id":"7871093211187","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:40:38.272Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"AC103-20","dw_sku":"DWAK-700137","shopify_product_id":"7871093342259","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:40:41.726Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"AC103-17","dw_sku":"DWAK-700138","shopify_product_id":"7871093440563","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:40:45.729Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"HC1490C-07","dw_sku":"DWHJ-900134","shopify_product_id":"7871093506099","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:40:49.235Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"HC1490C-10","dw_sku":"DWHJ-900135","shopify_product_id":"7871093637171","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:40:52.596Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"HC1490C-11","dw_sku":"DWHJ-900136","shopify_product_id":"7871093768243","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:40:57.414Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"8090-09WSUN","dw_sku":"DWUX-800137","shopify_product_id":"7871093997619","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:41:00.942Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"6640SUN-01","dw_sku":"DWUX-800138","shopify_product_id":"7871094128691","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:41:04.335Z"}
+{"table":"quadrille_house_catalog","mfr_sku":"6640SUN-04","dw_sku":"DWUX-800139","shopify_product_id":"7871094292531","action":"created","activated":true,"published":true,"sampleOnly":true,"status":"ACTIVE","batch_id":"upload-am-2026-06-30T13-40-03-456Z","ts":"2026-06-30T13:41:07.555Z"}
← fc41898a auto-save: 2026-06-30T05:58:45 (5 files) — pending-approval/
·
back to Designer Wallcoverings
·
Lily+Sangetsu read-only dedup pass: 0 true dups, 12,806 net- e92745b3 →