← back to Dw Signup Fulfillment

verification/tk10836/verify-3free-shipping-crosstab.js

58 lines

'use strict';
// DECISIVE TEST: when 3FREE is applied to a sample-only cart, is the $0.00
// "Free Shipping (No Tracking)" method still obtainable? Cody's hole #1 claims no.
const config = require('../../lib/config');
const shop = config.SHOP_DOMAIN, token = config.SHOPIFY_FULFILLMENT_TOKEN;
const Q = `
query($q: String!, $cursor: String) {
  orders(first: 100, query: $q, sortKey: CREATED_AT, reverse: true, after: $cursor) {
    pageInfo { hasNextPage endCursor }
    nodes {
      name createdAt discountCodes
      subtotalPriceSet { shopMoney { amount } }
      totalShippingPriceSet { shopMoney { amount } }
      shippingLine { title }
      shippingAddress { provinceCode countryCodeV2 }
      lineItems(first: 30) { nodes { quantity originalUnitPriceSet { shopMoney { amount } } } }
    }
  }
}`;
async function page(q, cursor) {
  const r = await fetch(`https://${shop}/admin/api/2024-10/graphql.json`, {
    method: 'POST', headers: { 'X-Shopify-Access-Token': token, 'Content-Type': 'application/json' },
    body: JSON.stringify({ query: Q, variables: { q, cursor } }) });
  const j = await r.json();
  if (j.errors) throw new Error(JSON.stringify(j.errors));
  return j.data.orders;
}
(async () => {
  let all = [], cursor = null;
  for (let i = 0; i < 12; i++) {
    const p = await page('created_at:>2025-01-01', cursor);
    all = all.concat(p.nodes);
    if (!p.pageInfo.hasNextPage) break;
    cursor = p.pageInfo.endCursor;
  }
  const sampleOnly = all.filter(o => {
    const li = o.lineItems.nodes;
    return li.length > 0 && li.every(x => Number(x.originalUnitPriceSet.shopMoney.amount) <= 5);
  });
  const with3 = sampleOnly.filter(o => (o.discountCodes || []).some(c => String(c).toUpperCase() === '3FREE'));
  const without = sampleOnly.filter(o => !(o.discountCodes || []).some(c => String(c).toUpperCase() === '3FREE'));
  const freeShip = o => Number(o.totalShippingPriceSet.shopMoney.amount) === 0;
  console.log(`scanned orders: ${all.length}   sample-only: ${sampleOnly.length}`);
  console.log(`\nsample-only WITH 3FREE:    n=${with3.length}   shipped $0.00: ${with3.filter(freeShip).length}`);
  console.log(`sample-only WITHOUT 3FREE: n=${without.length}   shipped $0.00: ${without.filter(freeShip).length}`);
  console.log('\n--- EVERY sample-only order that has 3FREE applied ---');
  console.log('order | codes | sub | shipTitle | ship | state');
  for (const o of with3) {
    console.log([o.name, (o.discountCodes||[]).join(','), o.subtotalPriceSet.shopMoney.amount,
      (o.shippingLine && o.shippingLine.title) || '(none)',
      o.totalShippingPriceSet.shopMoney.amount,
      o.shippingAddress ? `${o.shippingAddress.provinceCode||'?'}/${o.shippingAddress.countryCodeV2}` : '?'].join(' | '));
  }
  const falsifier = with3.filter(freeShip);
  console.log(`\n>>> FALSIFIER (3FREE applied AND $0.00 shipping): ${falsifier.length} order(s)`);
  for (const o of falsifier) console.log('    ', o.name, o.createdAt, (o.shippingLine&&o.shippingLine.title));
})().catch(e => { console.error('ERR', e.message); process.exit(1); });