← back to Dw Signup Fulfillment
verification/tk10836/verify-kelly-checkout-breakdown.js
43 lines
'use strict';
// Decisive: on Kelly's own 3-sample cart, was the $24.95 total SHIPPING or ITEMS?
const config = require('../../lib/config');
const shop = config.SHOP_DOMAIN, token = config.SHOPIFY_FULFILLMENT_TOKEN;
const Q = `
query($id: ID!) {
node(id: $id) {
... on AbandonedCheckout {
id createdAt abandonedCheckoutUrl
customer { email }
subtotalPriceSet { shopMoney { amount } }
totalPriceSet { shopMoney { amount } }
totalTaxSet { shopMoney { amount } }
totalDiscountSet { shopMoney { amount } }
shippingAddress { city provinceCode countryCodeV2 }
lineItems(first: 20) { nodes { title quantity
} }
}
}
}`;
(async () => {
for (const id of ['gid://shopify/AbandonedCheckout/34015098110003','gid://shopify/AbandonedCheckout/34017552728115']) {
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: { id } }) });
const j = await r.json();
if (j.errors) { console.error(JSON.stringify(j.errors)); continue; }
const n = j.data.node;
const items = Number(n.subtotalPriceSet.shopMoney.amount);
const total = Number(n.totalPriceSet.shopMoney.amount);
const tax = Number(n.totalTaxSet ? n.totalTaxSet.shopMoney.amount : 0);
console.log(`\n=== ${n.id.split('/').pop()} ${n.createdAt} ${n.customer && n.customer.email} ===`);
console.log(` items subtotal : $${items.toFixed(2)}`);
console.log(` discounts : $${Number(n.totalDiscountSet?n.totalDiscountSet.shopMoney.amount:0).toFixed(2)}`);
console.log(` tax : $${tax.toFixed(2)}`);
console.log(` TOTAL : $${total.toFixed(2)}`);
console.log(` => implied shipping (total - items - tax): $${(total - items - tax).toFixed(2)}`);
console.log(` dest: ${n.shippingAddress ? n.shippingAddress.city+', '+n.shippingAddress.provinceCode+'/'+n.shippingAddress.countryCodeV2 : '(none set)'}`);
for (const li of n.lineItems.nodes) console.log(` - ${li.title} x${li.quantity} orig $${""} -> $${""}`);
}
})().catch(e => { console.error('ERR', e.message); process.exit(1); });