← 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); });