← back to Dw Unbuyable Recovery Pilot
tk11124-dwve-velvet/verifyall.mjs
19 lines
import fs from 'node:fs';
import { gql } from '../../designerwallcoverings/scripts/lib/shopify.mjs';
const T = [['DWVE-429560','6621005643827'],['DWVE-429660','6621005676595'],['DWVE-429760','6621005709363'],['DWVE-429960','6621005774899'],['DWVE-430160','6621005873203'],['DWVE-430260','6621005905971'],['DWVE-430360','6621005938739'],['DWVE-430460','6621005971507'],['DWVE-430560','6621006004275'],['DWVE-430660','6621006069811'],['DWVE-430860','6621006135347'],['DWVE-430960','6621006200883'],['DWVE-431060','6621006233651'],['DWVE-431160','6621006266419'],['DWVE-431260','6621006299187'],['DWVE-431360','6621006331955'],['DWVE-431560','6621006397491'],['DWVE-431660','6621006463027']];
const Q=`query($id:ID!){product(id:$id){status unit:metafield(namespace:"global",key:"unit_of_measure"){value} variants(first:10){nodes{sku price inventoryPolicy selectedOptions{value} inventoryItem{tracked inventoryLevels(first:2){nodes{quantities(names:["available"]){quantity}}}}}}}}`;
let allpass=0; const rows=[];
for(const [sku,id] of T){
const p=(await gql(Q,{id:`gid://shopify/Product/${id}`})).product;
const vs=p.variants.nodes;
const s=vs.find(v=>parseFloat(v.price)<=4.30);
const y=vs.find(v=>v.sku===`${sku}-Yard`);
const buyable = y && parseFloat(y.price)===359 && y.inventoryPolicy==='CONTINUE' && (y.inventoryItem?.inventoryLevels?.nodes?.[0]?.quantities?.[0]?.quantity===2026 || y.inventoryPolicy==='CONTINUE');
const pass = p.status==='ACTIVE' && s && parseFloat(s.price)===4.25 && buyable && p.unit?.value==='Sold per Yard';
if(pass) allpass++;
rows.push({sku, status:p.status, unit:p.unit?.value, sample:s?('$'+s.price):'MISSING', yard:y?('$'+y.price+' '+y.inventoryPolicy):'MISSING', pass});
}
console.log('FINAL VERIFY — '+allpass+'/18 fully pass\n');
for(const r of rows) console.log(` ${r.pass?'PASS':'FAIL'} ${r.sku} ${r.status} sample=${r.sample} yard=${r.yard} unit="${r.unit}"`);
fs.writeFileSync('out/verify-final.json', JSON.stringify(rows,null,2));