← back to Shopify Sample Shipping
live-rate-state.mjs
18 lines
import {query} from './query.mjs';
const PROFILE='gid://shopify/DeliveryProfile/29033627699';
const rq=`query($id:ID!){deliveryProfile(id:$id){name profileLocationGroups{locationGroupZones(first:30){nodes{zone{name}
methodDefinitions(first:40){nodes{name active rateProvider{__typename
... on DeliveryRateDefinition{price{amount currencyCode}}
... on DeliveryParticipant{carrierService{name}}}
methodConditions{operator field conditionCriteria{__typename ... on MoneyV2{amount currencyCode} ... on Weight{value unit}}}}}}}}}}`;
const d=await query(rq,{id:PROFILE});
for(const g of d.deliveryProfile.profileLocationGroups)for(const z of g.locationGroupZones.nodes){
console.log(`\n### ZONE: ${z.zone.name}`);
for(const md of z.methodDefinitions.nodes){
const rp=md.rateProvider;
const price=rp?.price?`$${rp.price.amount}`:(rp?.carrierService?`carrier:${rp.carrierService.name}`:rp?.__typename);
const conds=md.methodConditions.map(c=>{const cr=c.conditionCriteria;const v=cr?.amount!==undefined?`$${cr.amount}`:(cr?.value!==undefined?`${cr.value}${cr.unit}`:'?');return `${c.field} ${c.operator} ${v}`;}).join(' AND ')||'(no condition)';
console.log(` • ${md.name} [${md.active?'active':'INACTIVE'}] ${price} {${conds}}`);
}
}