← back to Shopify Sample Shipping

order-8-distinct.mjs

26 lines

import {query} from './query.mjs';
import fs from 'node:fs';
const found=JSON.parse(fs.readFileSync(new URL('./verification/test-8-distinct.json',import.meta.url))).found;
const lineItems=found.map(f=>({variantId:f.id,quantity:1})); // 8 DISTINCT samples = $34
const input={
  email:'steve@designerwallcoverings.com',
  tags:['TK-11333-TEST'],
  note:'Interior designer test — 8 DIFFERENT samples ($34.00). Under the raised $45 free-shipping band, this is FREE (only orders over 10 samples / >$45 incur shipping).',
  shippingAddress:{address1:'15442 Ventura Blvd',city:'Sherman Oaks',provinceCode:'CA',countryCode:'US',zip:'91403',firstName:'Interior',lastName:'Designer'},
  lineItems,
  shippingLine:{title:'Free Shipping (No Tracking)',price:'0.00'}
};
const c=`mutation($input:DraftOrderInput!){draftOrderCreate(input:$input){draftOrder{id name subtotalPrice totalShippingPrice totalPrice shippingLine{title price} lineItems(first:15){nodes{title}}} userErrors{field message}}}`;
const cr=await query(c,{input});
if(cr.draftOrderCreate.userErrors.length){console.log('CREATE ERR',JSON.stringify(cr.draftOrderCreate.userErrors));process.exit(1);}
const d=cr.draftOrderCreate.draftOrder;
console.log('DRAFT',d.name,'| subtotal $'+d.subtotalPrice,'| shipping $'+d.totalShippingPrice,'| total $'+d.totalPrice);
console.log('items:',d.lineItems.nodes.map(x=>x.title).join(' | '));
const cm=`mutation($id:ID!){draftOrderComplete(id:$id,paymentPending:true){draftOrder{order{id name displayFinancialStatus totalShippingPriceSet{shopMoney{amount}} totalPriceSet{shopMoney{amount}} shippingLine{title price}}} userErrors{field message}}}`;
const cmr=await query(cm,{id:d.id});
if(cmr.draftOrderComplete.userErrors.length){console.log('COMPLETE ERR',JSON.stringify(cmr.draftOrderComplete.userErrors));process.exit(1);}
const o=cmr.draftOrderComplete.draftOrder.order;
console.log('\nORDER',o.name,'|',o.displayFinancialStatus,'| shipping $'+o.totalShippingPriceSet.shopMoney.amount,'| total $'+o.totalPriceSet.shopMoney.amount,'| ship:',o.shippingLine?.title,'$'+o.shippingLine?.price);
console.log('order id:',o.id);
fs.writeFileSync(new URL('./verification/order-8-distinct-result.json',import.meta.url),JSON.stringify({order:o},null,2)+'\n');