← back to Dw Signup Fulfillment
verification/tk10836/verify-paid-order-profiles.js
30 lines
#!/usr/bin/env node
// TK-10836: do the PAID comped sample orders share Kelly's delivery profile?
// (Previous attempt used a shipping_line: query filter that Shopify silently ignored.)
const fs=require('fs'),os=require('os');
for (const line of fs.readFileSync(os.homedir()+'/Projects/secrets-manager/.env','utf8').split('\n')) {
const m=line.match(/^\s*([A-Z0-9_]+)\s*=\s*(.*)$/); if(!m) continue;
let v=m[2].trim().replace(/^['"]|['"]$/g,''); if(!process.env[m[1]]) process.env[m[1]]=v;
}
const STORE=process.env.SHOPIFY_STORE_DOMAIN||'designer-laboratory-sandbox.myshopify.com';
const TOKEN=process.env.SHOPIFY_FULL_ACCESS_TOKEN, API='2024-10';
async function gql(q,v={}){const r=await fetch(`https://${STORE}/admin/api/${API}/graphql.json`,{method:'POST',
headers:{'X-Shopify-Access-Token':TOKEN,'Content-Type':'application/json'},body:JSON.stringify({query:q,variables:v})});
const j=await r.json(); if(j.errors)console.error('ERR',JSON.stringify(j.errors).slice(0,300)); return j.data;}
const NAMES=['#33033','#33020','#33019','#33018','#33014','#33013','#33011','#33008','#32999','#33024','#33028','#32987'];
(async()=>{
const seen={};
for(const nm of NAMES){
const d=await gql(`query($q:String!){ orders(first:1, query:$q){ nodes{ name createdAt
totalShippingPriceSet{shopMoney{amount}} shippingLine{title} shippingAddress{provinceCode}
customer{ createdAt numberOfOrders tags }
lineItems(first:8){ nodes{ variant{ sku deliveryProfile{name} product{createdAt} } } } } } }`,{q:`name:${nm}`});
const o=d?.orders?.nodes?.[0]; if(!o){console.log(`${nm} not found`);continue;}
const profs=[...new Set(o.lineItems.nodes.map(l=>l.variant?.deliveryProfile?.name||'(unknown)'))];
for(const p of profs) seen[p]=(seen[p]||0)+1;
console.log(`${o.name} ${o.createdAt.slice(0,10)} ${o.shippingAddress?.provinceCode} $${o.totalShippingPriceSet.shopMoney.amount} "${o.shippingLine?.title}"`);
console.log(` profiles: ${profs.join(' | ')} | customer created ${o.customer?.createdAt?.slice(0,10)} orders=${o.customer?.numberOfOrders} tags=[${(o.customer?.tags||[]).join(',')}]`);
}
console.log('\nPROFILE TALLY across paid comped orders:', JSON.stringify(seen));
})();