← back to Dig Concept Finish

verify_rolls.mjs

16 lines

import fs from 'fs';
const DOMAIN='designer-laboratory-sandbox.myshopify.com';
const URL=`https://${DOMAIN}/admin/api/2024-10/graphql.json`;
const env=fs.readFileSync('/Users/macstudio3/Projects/Designer-Wallcoverings/.env','utf8');
const TOK=(env.match(/^SHOPIFY_ADMIN_TOKEN=(.+)$/m)||[])[1].trim();
const g=async(q,v)=>{const r=await fetch(URL,{method:'POST',headers:{'Content-Type':'application/json','X-Shopify-Access-Token':TOK},body:JSON.stringify({query:q,variables:v})});return (await r.json()).data;};
const red=s=>s&&s.includes('@gpt')?'@gpt(REDACTED)':s;
// B product single-variant?
const b=await g(`query($id:ID!){product(id:$id){handle status variants(first:50){nodes{id price sku selectedOptions{name value}}}}}`,{id:'gid://shopify/Product/7582548066355'});
console.log('B product variants:',b.product.variants.nodes.length,'| status',b.product.status);
b.product.variants.nodes.forEach(v=>console.log('  ',v.id.split('/').pop(),'$'+v.price,'sku='+red(v.sku),JSON.stringify(v.selectedOptions.map(o=>o.value))));
// A-sibling roll variants (the wallcoverings-1 product) - confirm rolls untouched (still their $179-$668 + @gpt skus)
const a=await g(`query($id:ID!){product(id:$id){handle status variants(first:60){nodes{id price sku selectedOptions{name value}}}}}`,{id:'gid://shopify/Product/7664622272563'});
console.log('\nA product (wallcoverings-1) ALL variants — rolls must be unchanged:');
a.product.variants.nodes.forEach(v=>{const size=(v.selectedOptions.find(o=>o.name==='Size')||{}).value;console.log('  ',v.id.split('/').pop(),'$'+v.price,'Size="'+size+'"','sku='+red(v.sku));});