[object Object]

← back to Shopify Sample Shipping

TK-11333: dedicated-profile re-pilot WORKS + 300-variant pilot passes + rollback tool

0498d46654d93eb20620fb611ae9175418c2cdde · 2026-09-09 15:35:12 -0700 · Steve Abrams

Re-pilot proved the dedicated sample profile returns a free rate (earlier zero-rates
was propagation timing). Set sample-profile free rate to $0-$45. 300-variant pilot:
6 samples FREE, 12 samples charged, MIXED sample+roll NOT free (real product keeps
paid shipping) — exactly the 'samples-only free' rule. Pilot rolled back clean.
Built migration-rollback.mjs (dissociate all + restore General band). Full 96k
migration + General-band removal NOT run — awaiting Steve go (step 4).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit 0498d46654d93eb20620fb611ae9175418c2cdde
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Sep 9 15:35:12 2026 -0700

    TK-11333: dedicated-profile re-pilot WORKS + 300-variant pilot passes + rollback tool
    
    Re-pilot proved the dedicated sample profile returns a free rate (earlier zero-rates
    was propagation timing). Set sample-profile free rate to $0-$45. 300-variant pilot:
    6 samples FREE, 12 samples charged, MIXED sample+roll NOT free (real product keeps
    paid shipping) — exactly the 'samples-only free' rule. Pilot rolled back clean.
    Built migration-rollback.mjs (dissociate all + restore General band). Full 96k
    migration + General-band removal NOT run — awaiting Steve go (step 4).
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
 migration-rollback.mjs           | 22 ++++++++++++++++++++
 pilot-bigger.mjs                 | 43 ++++++++++++++++++++++++++++++++++++++++
 repilot-sample-profile.mjs       | 22 ++++++++++++++++++++
 verification/pilot-variants.json |  1 +
 4 files changed, 88 insertions(+)

diff --git a/migration-rollback.mjs b/migration-rollback.mjs
new file mode 100644
index 0000000..7a50a04
--- /dev/null
+++ b/migration-rollback.mjs
@@ -0,0 +1,22 @@
+import {query} from './query.mjs';
+import fs from 'node:fs';
+const SAMPLE_PROFILE='gid://shopify/DeliveryProfile/96764067891';
+const GENERAL='gid://shopify/DeliveryProfile/29033627699';
+const mut=`mutation($id:ID!,$profile:DeliveryProfileInput!){deliveryProfileUpdate(id:$id,profile:$profile){userErrors{field message}}}`;
+const chunk=(a,n)=>{const o=[];for(let i=0;i<a.length;i+=n)o.push(a.slice(i,i+n));return o;};
+// 1) pull all variant ids currently on the sample profile (page)
+let cursor=null, ids=[];
+while(true){const d=await query(`query($id:ID!,$c:String){deliveryProfile(id:$id){profileItems(first:250,after:$c){pageInfo{hasNextPage endCursor} nodes{variants(first:100){nodes{id}}}}}}`,{id:SAMPLE_PROFILE,c:cursor});
+  const pi=d.deliveryProfile.profileItems; for(const n of pi.nodes) for(const v of n.variants.nodes) ids.push(v.id);
+  if(!pi.pageInfo.hasNextPage)break; cursor=pi.pageInfo.endCursor;}
+console.log('sample-profile variants to dissociate:',ids.length);
+for(const c of chunk(ids,100)){const r=await query(mut,{id:SAMPLE_PROFILE,profile:{variantsToDissociate:c}});if(r.deliveryProfileUpdate.userErrors.length)console.log('err',JSON.stringify(r.deliveryProfileUpdate.userErrors));}
+// 2) restore the General free band from snapshot (if present) else re-add $0-$45
+let cap='45'; try{cap=JSON.parse(fs.readFileSync('verification/migration-general-band-snapshot.json')).cap||cap;}catch{}
+const g=(await query(`query($id:ID!){deliveryProfile(id:$id){profileLocationGroups{locationGroup{id}locationGroupZones(first:20){nodes{zone{id name}methodDefinitions(first:30){nodes{id name methodConditions{id}}}}}}}}`,{id:GENERAL})).deliveryProfile;
+let m,lg,zone;for(const gr of g.profileLocationGroups)for(const z of gr.locationGroupZones.nodes){if(z.zone.name!=='Domestic')continue;for(const md of z.methodDefinitions.nodes)if(md.name==='Free Shipping (No Tracking)'){m=md;lg=gr.locationGroup.id;zone=z.zone.id;}}
+if(m){if(m.methodConditions.length)await query(mut,{id:GENERAL,profile:{conditionsToDelete:m.methodConditions.map(c=>c.id)}});
+  await query(mut,{id:GENERAL,profile:{locationGroupsToUpdate:[{id:lg,zonesToUpdate:[{id:zone,methodDefinitionsToUpdate:[{id:m.id,priceConditionsToCreate:[{operator:'GREATER_THAN_OR_EQUAL_TO',criteria:{amount:'0',currencyCode:'USD'}},{operator:'LESS_THAN_OR_EQUAL_TO',criteria:{amount:cap,currencyCode:'USD'}}]}]}]}]}});
+  console.log('restored General free band $0-$'+cap);}
+else console.log('NOTE: General has no Free Shipping (No Tracking) method to restore (was removed) — re-add manually if needed');
+console.log('ROLLBACK COMPLETE');
diff --git a/pilot-bigger.mjs b/pilot-bigger.mjs
new file mode 100644
index 0000000..5ef7854
--- /dev/null
+++ b/pilot-bigger.mjs
@@ -0,0 +1,43 @@
+import {query} from './query.mjs';
+import fs from 'node:fs';
+const SAMPLE_PROFILE='gid://shopify/DeliveryProfile/96764067891';
+const ROLL='gid://shopify/ProductVariant/40348093055027'; // real product (stays on General)
+const mut=`mutation($id:ID!,$profile:DeliveryProfileInput!){deliveryProfileUpdate(id:$id,profile:$profile){profile{id} userErrors{field message}}}`;
+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}}}}`;
+const rates=async items=>{try{return (await query(rq,{items})).draftOrderAvailableDeliveryOptions.availableShippingRates;}catch(e){return [];}};
+const free=r=>r.some(x=>parseFloat(x.price.amount)===0);
+const sleep=ms=>new Promise(r=>setTimeout(r,ms));
+const chunk=(a,n)=>{const o=[];for(let i=0;i<a.length;i+=n)o.push(a.slice(i,i+n));return o;};
+
+// STEP 1: set sample-profile free rate to $0-$45 (>=0 & <=45). Delete existing free conditions then add.
+const pr=(await query(`query($id:ID!){deliveryProfile(id:$id){profileLocationGroups{locationGroup{id}locationGroupZones(first:20){nodes{zone{id name}methodDefinitions(first:30){nodes{id name methodConditions{id}}}}}}}}`,{id:SAMPLE_PROFILE})).deliveryProfile;
+let fm,flg,fzone;for(const g of pr.profileLocationGroups)for(const z of g.locationGroupZones.nodes){if(z.zone.name!=='Domestic')continue;for(const md of z.methodDefinitions.nodes)if(md.name==='Free Shipping (No Tracking)'){fm=md;flg=g.locationGroup.id;fzone=z.zone.id;}}
+if(fm.methodConditions.length) await query(mut,{id:SAMPLE_PROFILE,profile:{conditionsToDelete:fm.methodConditions.map(c=>c.id)}});
+await query(mut,{id:SAMPLE_PROFILE,profile:{locationGroupsToUpdate:[{id:flg,zonesToUpdate:[{id:fzone,methodDefinitionsToUpdate:[{id:fm.id,priceConditionsToCreate:[{operator:'GREATER_THAN_OR_EQUAL_TO',criteria:{amount:'0',currencyCode:'USD'}},{operator:'LESS_THAN_OR_EQUAL_TO',criteria:{amount:'45',currencyCode:'USD'}}]}]}]}]}});
+console.log('STEP1: sample-profile free rate set to $0-$45');
+
+// STEP 2: gather ~300 distinct sample variant ids
+let cursor=null, samples=[];
+const pq=`query($c:String){products(first:100,after:$c,query:"status:active"){pageInfo{hasNextPage endCursor} nodes{variants(first:5){nodes{id title price}}}}}`;
+while(samples.length<300){const d=await query(pq,{c:cursor});for(const p of d.products.nodes){const sv=p.variants.nodes.find(v=>/^sample$/i.test(v.title)&&parseFloat(v.price)>0);if(sv)samples.push(sv.id);if(samples.length>=300)break;}if(!d.products.pageInfo.hasNextPage)break;cursor=d.products.pageInfo.endCursor;}
+console.log('STEP2: gathered',samples.length,'distinct sample variants');
+fs.writeFileSync('verification/pilot-variants.json',JSON.stringify(samples)+'\n');
+
+// STEP 3: assign (chunks of 100)
+for(const c of chunk(samples,100)){const a=await query(mut,{id:SAMPLE_PROFILE,profile:{variantsToAssociate:c}});if(a.deliveryProfileUpdate.userErrors.length)console.log('assoc err',JSON.stringify(a.deliveryProfileUpdate.userErrors));}
+console.log('STEP3: assigned',samples.length,'-> sample profile. waiting for propagation...');
+await sleep(20000);
+
+// STEP 4: verify
+const s6=samples.slice(0,3).map(v=>({variantId:v,quantity:2}));      // 6 samples
+const s12=samples.slice(0,4).map((v,i)=>({variantId:v,quantity:i<4?3:0})).filter(x=>x.quantity); // 12 samples
+const mixed=[{variantId:samples[0],quantity:1},{variantId:ROLL,quantity:1}]; // sample + real roll
+const r6=await rates(s6), r12=await rates(s12), rmix=await rates(mixed);
+console.log('\n=== PILOT VERIFICATION (300 samples on dedicated profile) ===');
+console.log(`  6 pilot samples ($25.50): ${free(r6)?'FREE ✅':'no free ❌'}`);
+console.log(`  12 pilot samples ($51):   ${free(r12)?'FREE ❌(should be charged)':'charged ✅ (>10 samples)'}`);
+console.log(`  MIXED (1 sample + 1 real roll): ${free(rmix)?'FREE ❌ (real product would ride free!)':'no free ✅ (real product keeps paid shipping)'}  [${rmix.map(r=>r.title+' $'+r.price.amount).join(' | ')}]`);
+
+// STEP 5: ROLLBACK the pilot (dissociate all back to General) — pilot only
+for(const c of chunk(samples,100)){await query(mut,{id:SAMPLE_PROFILE,profile:{variantsToDissociate:c}});}
+console.log('\nSTEP5: rolled back — all',samples.length,'pilot variants dissociated to General (clean state).');
diff --git a/repilot-sample-profile.mjs b/repilot-sample-profile.mjs
new file mode 100644
index 0000000..98a55bd
--- /dev/null
+++ b/repilot-sample-profile.mjs
@@ -0,0 +1,22 @@
+import {query} from './query.mjs';
+const SAMPLE_PROFILE='gid://shopify/DeliveryProfile/96764067891';
+const S=['gid://shopify/ProductVariant/44090076954675','gid://shopify/ProductVariant/44086096756787','gid://shopify/ProductVariant/44044973408307'];
+const mut=`mutation($id:ID!,$profile:DeliveryProfileInput!){deliveryProfileUpdate(id:$id,profile:$profile){profile{id} userErrors{field message}}}`;
+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}}}}`;
+const items=S.map(v=>({variantId:v,quantity:2}));
+const sleep=ms=>new Promise(r=>setTimeout(r,ms));
+console.log('associating 3 sample variants to the dedicated sample profile...');
+const a=await query(mut,{id:SAMPLE_PROFILE,profile:{variantsToAssociate:S}});
+if(a.deliveryProfileUpdate.userErrors.length){console.log('ASSOCIATE ERR',JSON.stringify(a.deliveryProfileUpdate.userErrors));process.exit(1);}
+let ok=false, rates=[];
+for(let i=1;i<=6;i++){
+  await sleep(15000);
+  try{ rates=(await query(rq,{items})).draftOrderAvailableDeliveryOptions.availableShippingRates; }catch(e){ rates=[]; }
+  const free=rates.some(x=>parseFloat(x.price.amount)===0);
+  console.log(`  t+${i*15}s: ${rates.length} rate(s)${free?' incl FREE ✅':''} -> [${rates.map(r=>r.title+' $'+r.price.amount).join(' | ')||'NONE'}]`);
+  if(rates.length>0){ ok=true; if(free) break; }
+}
+console.log('\nROLLBACK: dissociating the 3 pilot variants back to General...');
+const d=await query(mut,{id:SAMPLE_PROFILE,profile:{variantsToDissociate:S}});
+console.log('dissociate errors:',JSON.stringify(d.deliveryProfileUpdate.userErrors));
+console.log('\nPILOT RESULT:', ok? (rates.some(x=>+x.price.amount===0)?'WORKS — dedicated profile returns a FREE sample rate':'returns rates but no free tier'):'STILL BROKEN — zero rates from the dedicated profile');
diff --git a/verification/pilot-variants.json b/verification/pilot-variants.json
new file mode 100644
index 0000000..1962fe8
--- /dev/null
+++ b/verification/pilot-variants.json
@@ -0,0 +1 @@
+["gid://shopify/ProductVariant/44453260984371","gid://shopify/ProductVariant/13898031333488","gid://shopify/ProductVariant/13898031825008","gid://shopify/ProductVariant/13898034708592","gid://shopify/ProductVariant/13898039722096","gid://shopify/ProductVariant/13898045128816","gid://shopify/ProductVariant/13898055221360","gid://shopify/ProductVariant/44453982994483","gid://shopify/ProductVariant/44454003638323","gid://shopify/ProductVariant/44453996625971","gid://shopify/ProductVariant/44453997936691","gid://shopify/ProductVariant/44453997871155","gid://shopify/ProductVariant/44453996560435","gid://shopify/ProductVariant/44453996593203","gid://shopify/ProductVariant/44453997805619","gid://shopify/ProductVariant/44454003605555","gid://shopify/ProductVariant/13898172629104","gid://shopify/ProductVariant/13898176626800","gid://shopify/ProductVariant/13898190028912","gid://shopify/ProductVariant/13898193174640","gid://shopify/ProductVariant/44453996494899","gid://shopify/ProductVariant/44453996527667","gid://shopify/ProductVariant/13898256253040","gid://shopify/ProductVariant/13898279190640","gid://shopify/ProductVariant/13898292330608","gid://shopify/ProductVariant/44454003310643","gid://shopify/ProductVariant/13898322411632","gid://shopify/ProductVariant/44454268272691","gid://shopify/ProductVariant/44454268239923","gid://shopify/ProductVariant/44454260178995","gid://shopify/ProductVariant/13898356686960","gid://shopify/ProductVariant/13898361176176","gid://shopify/ProductVariant/13898363535472","gid://shopify/ProductVariant/13898364354672","gid://shopify/ProductVariant/13898369695856","gid://shopify/ProductVariant/13898376478832","gid://shopify/ProductVariant/13898452893808","gid://shopify/ProductVariant/13898465902704","gid://shopify/ProductVariant/13898468393072","gid://shopify/ProductVariant/13898482090096","gid://shopify/ProductVariant/13898718347376","gid://shopify/ProductVariant/13898726506608","gid://shopify/ProductVariant/13898726735984","gid://shopify/ProductVariant/13898729652336","gid://shopify/ProductVariant/13898733781104","gid://shopify/ProductVariant/13898738925680","gid://shopify/ProductVariant/13898740170864","gid://shopify/ProductVariant/44814173962291","gid://shopify/ProductVariant/44814174027827","gid://shopify/ProductVariant/44453993742387","gid://shopify/ProductVariant/13898974003312","gid://shopify/ProductVariant/13898977575024","gid://shopify/ProductVariant/13898989109360","gid://shopify/ProductVariant/13899015225456","gid://shopify/ProductVariant/13899119951984","gid://shopify/ProductVariant/13899169693808","gid://shopify/ProductVariant/13899244109936","gid://shopify/ProductVariant/44453992988723","gid://shopify/ProductVariant/13899280711792","gid://shopify/ProductVariant/13899285921904","gid://shopify/ProductVariant/13899289198704","gid://shopify/ProductVariant/13899295293552","gid://shopify/ProductVariant/13899334582384","gid://shopify/ProductVariant/44454152503347","gid://shopify/ProductVariant/44454152699955","gid://shopify/ProductVariant/44454152896563","gid://shopify/ProductVariant/13899948359792","gid://shopify/ProductVariant/13899949244528","gid://shopify/ProductVariant/13899950293104","gid://shopify/ProductVariant/13899953799280","gid://shopify/ProductVariant/13899959107696","gid://shopify/ProductVariant/13899959959664","gid://shopify/ProductVariant/13899961008240","gid://shopify/ProductVariant/13899963629680","gid://shopify/ProductVariant/13899965825136","gid://shopify/ProductVariant/13899968217200","gid://shopify/ProductVariant/13900019597424","gid://shopify/ProductVariant/13900020547696","gid://shopify/ProductVariant/13900021661808","gid://shopify/ProductVariant/13900022513776","gid://shopify/ProductVariant/13900029657200","gid://shopify/ProductVariant/13900030869616","gid://shopify/ProductVariant/13900032966768","gid://shopify/ProductVariant/13900035063920","gid://shopify/ProductVariant/13900037292144","gid://shopify/ProductVariant/13900041224304","gid://shopify/ProductVariant/13900046336112","gid://shopify/ProductVariant/13900051251312","gid://shopify/ProductVariant/13900052332656","gid://shopify/ProductVariant/13900057837680","gid://shopify/ProductVariant/13900251791472","gid://shopify/ProductVariant/13900252184688","gid://shopify/ProductVariant/13900252577904","gid://shopify/ProductVariant/13900253331568","gid://shopify/ProductVariant/13900256968816","gid://shopify/ProductVariant/13900257755248","gid://shopify/ProductVariant/13900259000432","gid://shopify/ProductVariant/13900260540528","gid://shopify/ProductVariant/13900264276080","gid://shopify/ProductVariant/13900264505456","gid://shopify/ProductVariant/13900266471536","gid://shopify/ProductVariant/13900269355120","gid://shopify/ProductVariant/13900271485040","gid://shopify/ProductVariant/13900272992368","gid://shopify/ProductVariant/13900274335856","gid://shopify/ProductVariant/13900277547120","gid://shopify/ProductVariant/13900280987760","gid://shopify/ProductVariant/13900284657776","gid://shopify/ProductVariant/13900285083760","gid://shopify/ProductVariant/13900285411440","gid://shopify/ProductVariant/13900287770736","gid://shopify/ProductVariant/13900288983152","gid://shopify/ProductVariant/13900293767280","gid://shopify/ProductVariant/13900296487024","gid://shopify/ProductVariant/13900298125424","gid://shopify/ProductVariant/13900298715248","gid://shopify/ProductVariant/13900299141232","gid://shopify/ProductVariant/13900301762672","gid://shopify/ProductVariant/13900305203312","gid://shopify/ProductVariant/13900307431536","gid://shopify/ProductVariant/13900307693680","gid://shopify/ProductVariant/13900404555888","gid://shopify/ProductVariant/13900405080176","gid://shopify/ProductVariant/13900405670000","gid://shopify/ProductVariant/13900406095984","gid://shopify/ProductVariant/13900410224752","gid://shopify/ProductVariant/13900413829232","gid://shopify/ProductVariant/13900414484592","gid://shopify/ProductVariant/13900414746736","gid://shopify/ProductVariant/13900416221296","gid://shopify/ProductVariant/13900417499248","gid://shopify/ProductVariant/13900421988464","gid://shopify/ProductVariant/13900422250608","gid://shopify/ProductVariant/13900422709360","gid://shopify/ProductVariant/13900423004272","gid://shopify/ProductVariant/13900425429104","gid://shopify/ProductVariant/13900430016624","gid://shopify/ProductVariant/13900430573680","gid://shopify/ProductVariant/13900431261808","gid://shopify/ProductVariant/13900432212080","gid://shopify/ProductVariant/13900432801904","gid://shopify/ProductVariant/13900438962288","gid://shopify/ProductVariant/13900440010864","gid://shopify/ProductVariant/13900440305776","gid://shopify/ProductVariant/13900440535152","gid://shopify/ProductVariant/13900440764528","gid://shopify/ProductVariant/13900442239088","gid://shopify/ProductVariant/13900443648112","gid://shopify/ProductVariant/13900444008560","gid://shopify/ProductVariant/13900444565616","gid://shopify/ProductVariant/13900448530544","gid://shopify/ProductVariant/13900473729136","gid://shopify/ProductVariant/13900474024048","gid://shopify/ProductVariant/13900474286192","gid://shopify/ProductVariant/13900474744944","gid://shopify/ProductVariant/13900475105392","gid://shopify/ProductVariant/13900481265776","gid://shopify/ProductVariant/13900481593456","gid://shopify/ProductVariant/13900483330160","gid://shopify/ProductVariant/13900483821680","gid://shopify/ProductVariant/13900484149360","gid://shopify/ProductVariant/13900485951600","gid://shopify/ProductVariant/13900491063408","gid://shopify/ProductVariant/13900491325552","gid://shopify/ProductVariant/13900491784304","gid://shopify/ProductVariant/13900492210288","gid://shopify/ProductVariant/13900492472432","gid://shopify/ProductVariant/13900495454320","gid://shopify/ProductVariant/13900495683696","gid://shopify/ProductVariant/13900496896112","gid://shopify/ProductVariant/13900499779696","gid://shopify/ProductVariant/13900500107376","gid://shopify/ProductVariant/13900500271216","gid://shopify/ProductVariant/13900502401136","gid://shopify/ProductVariant/13900504891504","gid://shopify/ProductVariant/13900505415792","gid://shopify/ProductVariant/13900505710704","gid://shopify/ProductVariant/13900508594288","gid://shopify/ProductVariant/13900508856432","gid://shopify/ProductVariant/13900509315184","gid://shopify/ProductVariant/13900626264176","gid://shopify/ProductVariant/13900626428016","gid://shopify/ProductVariant/13900626886768","gid://shopify/ProductVariant/13900632522864","gid://shopify/ProductVariant/13900632752240","gid://shopify/ProductVariant/13900633997424","gid://shopify/ProductVariant/13900637503600","gid://shopify/ProductVariant/13900641173616","gid://shopify/ProductVariant/13900641632368","gid://shopify/ProductVariant/13900642123888","gid://shopify/ProductVariant/13900642910320","gid://shopify/ProductVariant/13900644974704","gid://shopify/ProductVariant/13900651954288","gid://shopify/ProductVariant/13900654248048","gid://shopify/ProductVariant/13900655329392","gid://shopify/ProductVariant/13900658114672","gid://shopify/ProductVariant/13900658573424","gid://shopify/ProductVariant/13900750389360","gid://shopify/ProductVariant/13900755566704","gid://shopify/ProductVariant/13900760252528","gid://shopify/ProductVariant/13900760481904","gid://shopify/ProductVariant/13900761628784","gid://shopify/ProductVariant/13900766118000","gid://shopify/ProductVariant/13900769853552","gid://shopify/ProductVariant/13900770181232","gid://shopify/ProductVariant/13900770738288","gid://shopify/ProductVariant/13900771360880","gid://shopify/ProductVariant/13900771524720","gid://shopify/ProductVariant/13900771983472","gid://shopify/ProductVariant/13900779061360","gid://shopify/ProductVariant/13900779257968","gid://shopify/ProductVariant/13900779782256","gid://shopify/ProductVariant/13900780175472","gid://shopify/ProductVariant/13900784992368","gid://shopify/ProductVariant/13900824608880","gid://shopify/ProductVariant/13900824871024","gid://shopify/ProductVariant/13900825165936","gid://shopify/ProductVariant/13900825493616","gid://shopify/ProductVariant/13900831621232","gid://shopify/ProductVariant/13900832145520","gid://shopify/ProductVariant/13900835684464","gid://shopify/ProductVariant/13900836110448","gid://shopify/ProductVariant/13900836339824","gid://shopify/ProductVariant/13900842664048","gid://shopify/ProductVariant/13900843876464","gid://shopify/ProductVariant/13900844269680","gid://shopify/ProductVariant/13900844793968","gid://shopify/ProductVariant/13900844990576","gid://shopify/ProductVariant/13900847874160","gid://shopify/ProductVariant/13900850397296","gid://shopify/ProductVariant/13900853608560","gid://shopify/ProductVariant/13900854952048","gid://shopify/ProductVariant/13900859375728","gid://shopify/ProductVariant/13900864225392","gid://shopify/ProductVariant/13900866355312","gid://shopify/ProductVariant/13900866650224","gid://shopify/ProductVariant/13900912754800","gid://shopify/ProductVariant/13900913508464","gid://shopify/ProductVariant/13900914360432","gid://shopify/ProductVariant/13900916818032","gid://shopify/ProductVariant/13900920520816","gid://shopify/ProductVariant/13900921405552","gid://shopify/ProductVariant/13900922388592","gid://shopify/ProductVariant/13900925796464","gid://shopify/ProductVariant/13900926713968","gid://shopify/ProductVariant/13900927107184","gid://shopify/ProductVariant/13900927598704","gid://shopify/ProductVariant/13900934283376","gid://shopify/ProductVariant/13900934873200","gid://shopify/ProductVariant/13900935364720","gid://shopify/ProductVariant/13900935561328","gid://shopify/ProductVariant/13900937527408","gid://shopify/ProductVariant/13900939067504","gid://shopify/ProductVariant/13900953911408","gid://shopify/ProductVariant/13900954140784","gid://shopify/ProductVariant/13900954239088","gid://shopify/ProductVariant/13900954501232","gid://shopify/ProductVariant/13901013909616","gid://shopify/ProductVariant/13901014892656","gid://shopify/ProductVariant/13901025443952","gid://shopify/ProductVariant/13901025640560","gid://shopify/ProductVariant/13901029343344","gid://shopify/ProductVariant/13901032652912","gid://shopify/ProductVariant/13901136593008","gid://shopify/ProductVariant/13901142327408","gid://shopify/ProductVariant/13901143441520","gid://shopify/ProductVariant/13901143998576","gid://shopify/ProductVariant/13901148356720","gid://shopify/ProductVariant/13901151436912","gid://shopify/ProductVariant/13901151830128","gid://shopify/ProductVariant/13901153534064","gid://shopify/ProductVariant/13901155565680","gid://shopify/ProductVariant/13901157793904","gid://shopify/ProductVariant/13901160382576","gid://shopify/ProductVariant/13901165133936","gid://shopify/ProductVariant/13901166870640","gid://shopify/ProductVariant/13901167198320","gid://shopify/ProductVariant/13901167984752","gid://shopify/ProductVariant/13901169361008","gid://shopify/ProductVariant/13901274284144","gid://shopify/ProductVariant/13901323468912","gid://shopify/ProductVariant/13901346242672","gid://shopify/ProductVariant/13901370097776","gid://shopify/ProductVariant/13901374423152","gid://shopify/ProductVariant/13901375930480","gid://shopify/ProductVariant/44453993840691","gid://shopify/ProductVariant/44453993873459","gid://shopify/ProductVariant/44453993906227","gid://shopify/ProductVariant/44453993938995","gid://shopify/ProductVariant/44453993971763","gid://shopify/ProductVariant/44453994004531","gid://shopify/ProductVariant/44453994037299","gid://shopify/ProductVariant/44453994070067","gid://shopify/ProductVariant/44453994102835","gid://shopify/ProductVariant/44453994135603","gid://shopify/ProductVariant/44453994168371","gid://shopify/ProductVariant/44453994233907","gid://shopify/ProductVariant/44453994266675","gid://shopify/ProductVariant/44453994299443","gid://shopify/ProductVariant/44453994332211"]

← f0f218b TK-11333: stage cart-page shipping notice (live-theme write  ·  back to Shopify Sample Shipping  ·  TK-11333: stage full samples-only migration (96,321 variants 0612150 →