← back to Shopify Sample Shipping
TK-11333: create bulk designer test order #33048 (12 samples, shipping fees incur)
d4101cadc673a62bb997ee1380186d6daa4b54f8 · 2026-09-09 15:12:48 -0700 · Steve Abrams
Interior-designer contrast to #33047: 12 samples $51.00 > $30 band -> UPS Ground
$20.53 shipping charged, total $76.51, with explanatory note on the order. Real
unpaid order. Teardown script now tears down both #33047 + #33048; ledgered.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
M cancel-test-order.mjsA order-designer-bulk.mjsA verification/order-designer-bulk-result.json
Diff
commit d4101cadc673a62bb997ee1380186d6daa4b54f8
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed Sep 9 15:12:48 2026 -0700
TK-11333: create bulk designer test order #33048 (12 samples, shipping fees incur)
Interior-designer contrast to #33047: 12 samples $51.00 > $30 band -> UPS Ground
$20.53 shipping charged, total $76.51, with explanatory note on the order. Real
unpaid order. Teardown script now tears down both #33047 + #33048; ledgered.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
cancel-test-order.mjs | 23 ++++----
order-designer-bulk.mjs | 37 ++++++++++++
verification/order-designer-bulk-result.json | 86 ++++++++++++++++++++++++++++
3 files changed, 136 insertions(+), 10 deletions(-)
diff --git a/cancel-test-order.mjs b/cancel-test-order.mjs
index ac3902d..c214825 100644
--- a/cancel-test-order.mjs
+++ b/cancel-test-order.mjs
@@ -1,11 +1,14 @@
-// One-command UNDO for the TK-11333 test order #33047: cancel (refund n/a, unpaid), then delete.
+// One-command UNDO for the TK-11333 test orders: cancel (unpaid) then delete the record.
import {query} from './query.mjs';
-const ORDER='gid://shopify/Order/6141633069107'; // #33047
-// Cancel first (safe for unpaid/unfulfilled)
-const c=`mutation($id:ID!){orderCancel(orderId:$id,reason:OTHER,refund:false,restock:true,notifyCustomer:false,staffNote:"TK-11333 test order teardown"){userErrors{field message}}}`;
-const cr=await query(c,{id:ORDER});
-console.log('cancel userErrors:',JSON.stringify(cr.orderCancel?.userErrors||cr));
-// Then delete the record entirely
-const d=`mutation($id:ID!){orderDelete(orderId:$id){deletedId userErrors{field message}}}`;
-const dr=await query(d,{id:ORDER});
-console.log('delete:',JSON.stringify(dr.orderDelete));
+const ORDERS=[
+ 'gid://shopify/Order/6141633069107', // #33047 free-shipping proof
+ 'gid://shopify/Order/6141644046387', // #33048 bulk designer, fees incur
+];
+for(const id of ORDERS){
+ const c=`mutation($id:ID!){orderCancel(orderId:$id,reason:OTHER,refund:false,restock:true,notifyCustomer:false,staffNote:"TK-11333 test order teardown"){userErrors{field message}}}`;
+ const cr=await query(c,{id});
+ console.log(id,'cancel:',JSON.stringify(cr.orderCancel?.userErrors||cr));
+ const d=`mutation($id:ID!){orderDelete(orderId:$id){deletedId userErrors{field message}}}`;
+ const dr=await query(d,{id});
+ console.log(id,'delete:',JSON.stringify(dr.orderDelete));
+}
diff --git a/order-designer-bulk.mjs b/order-designer-bulk.mjs
new file mode 100644
index 0000000..d7808f9
--- /dev/null
+++ b/order-designer-bulk.mjs
@@ -0,0 +1,37 @@
+import {query} from './query.mjs';
+import fs from 'node:fs';
+const S=['gid://shopify/ProductVariant/44090076954675','gid://shopify/ProductVariant/44086096756787','gid://shopify/ProductVariant/44044973408307'];
+// 12 samples = $51.00 (> $30 free band -> shipping fees incur)
+const lineItems=[{variantId:S[0],quantity:4},{variantId:S[1],quantity:4},{variantId:S[2],quantity:4}];
+const addr={address1:'15442 Ventura Blvd',city:'Sherman Oaks',provinceCode:'CA',countryCode:'US',zip:'91403',firstName:'Interior',lastName:'Designer'};
+// 1) Confirm free is NOT offered and grab the real cheapest paid rate
+const rq=`query($items:[DraftOrderLineItemInput!]!){draftOrderAvailableDeliveryOptions(input:{lineItems:$items,shippingAddress:{address1:"15442 Ventura Blvd",city:"Sherman Oaks",provinceCode:"CA",countryCode:US,zip:"91403"}}){availableShippingRates{title price{amount currencyCode}}}}`;
+const rates=(await query(rq,{items:lineItems})).draftOrderAvailableDeliveryOptions.availableShippingRates;
+const free=rates.some(x=>parseFloat(x.price.amount)===0);
+const cheapest=rates.filter(x=>parseFloat(x.price.amount)>0).sort((a,b)=>parseFloat(a.price.amount)-parseFloat(b.price.amount))[0];
+console.log(`free offered? ${free} | cheapest paid = ${cheapest.title} $${cheapest.price.amount}`);
+if(free){console.log('ABORT: free shipping IS offered — would not demonstrate fees incurring.');process.exit(1);}
+// 2) Create draft with the real paid shipping line + note
+const input={
+ email:'steve@designerwallcoverings.com',
+ tags:['TK-11333-TEST'],
+ note:'Interior designer order — 12 samples ($51.00) is above the free-shipping threshold ($30), so shipping fees incur (per TK-11333 policy).',
+ shippingAddress:addr,
+ lineItems,
+ shippingLine:{title:cheapest.title,price:cheapest.price.amount}
+};
+const c=`mutation($input:DraftOrderInput!){draftOrderCreate(input:$input){draftOrder{id name subtotalPrice totalShippingPrice totalPrice note2 shippingLine{title price}} 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('\n=== DRAFT ===',d.name,'| subtotal $'+d.subtotalPrice,'| shipping $'+d.totalShippingPrice,'| total $'+d.totalPrice,'| ship:',d.shippingLine?.title,'$'+d.shippingLine?.price);
+console.log('note:',d.note2);
+// 3) Complete unpaid
+const cm=`mutation($id:ID!){draftOrderComplete(id:$id,paymentPending:true){draftOrder{order{id name displayFinancialStatus note 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('\n=== ORDER (unpaid) ===',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);
+console.log('note:',o.note);
+fs.writeFileSync(new URL('./verification/order-designer-bulk-result.json',import.meta.url),JSON.stringify({rates,draft:d,order:o,createdAt:new Date().toISOString()},null,2)+'\n');
diff --git a/verification/order-designer-bulk-result.json b/verification/order-designer-bulk-result.json
new file mode 100644
index 0000000..14f8ce1
--- /dev/null
+++ b/verification/order-designer-bulk-result.json
@@ -0,0 +1,86 @@
+{
+ "rates": [
+ {
+ "title": "UPS® Ground",
+ "price": {
+ "amount": "20.53",
+ "currencyCode": "USD"
+ }
+ },
+ {
+ "title": "FedEx 2Day®",
+ "price": {
+ "amount": "47.05",
+ "currencyCode": "USD"
+ }
+ },
+ {
+ "title": "FedEx Priority Overnight®",
+ "price": {
+ "amount": "70.53",
+ "currencyCode": "USD"
+ }
+ },
+ {
+ "title": "FedEx 2Day® (with One Rate)",
+ "price": {
+ "amount": "96.9",
+ "currencyCode": "USD"
+ }
+ },
+ {
+ "title": "FedEx Express Saver® (with One Rate)",
+ "price": {
+ "amount": "96.9",
+ "currencyCode": "USD"
+ }
+ },
+ {
+ "title": "FedEx Standard Overnight® (with One Rate)",
+ "price": {
+ "amount": "96.9",
+ "currencyCode": "USD"
+ }
+ },
+ {
+ "title": "FedEx Priority Overnight® (with One Rate)",
+ "price": {
+ "amount": "109.65",
+ "currencyCode": "USD"
+ }
+ }
+ ],
+ "draft": {
+ "id": "gid://shopify/DraftOrder/1001508012083",
+ "name": "#D3498",
+ "subtotalPrice": "51.00",
+ "totalShippingPrice": "20.53",
+ "totalPrice": "76.51",
+ "note2": "Interior designer order — 12 samples ($51.00) is above the free-shipping threshold ($30), so shipping fees incur (per TK-11333 policy).",
+ "shippingLine": {
+ "title": "UPS® Ground",
+ "price": "20.53"
+ }
+ },
+ "order": {
+ "id": "gid://shopify/Order/6141644046387",
+ "name": "#33048",
+ "displayFinancialStatus": "PENDING",
+ "note": "Interior designer order — 12 samples ($51.00) is above the free-shipping threshold ($30), so shipping fees incur (per TK-11333 policy).",
+ "totalShippingPriceSet": {
+ "shopMoney": {
+ "amount": "20.53"
+ }
+ },
+ "totalPriceSet": {
+ "shopMoney": {
+ "amount": "76.51"
+ }
+ },
+ "shippingLine": {
+ "title": "UPS® Ground",
+ "price": "20.53"
+ }
+ },
+ "createdAt": "2026-09-09T22:12:06.245Z"
+}
← 05b3443 TK-11333: interior-designer shipping scenarios (read-only)
·
back to Shopify Sample Shipping
·
TK-11333: raise free band to $45 (10 samples free) + 8-disti f124f7e →