{% liquid
# Add $3 per distinct vendor present (useful for split-ship approximations).
# Example: 2 vendors in cart -> $6 fee. Optionally cap at a max.
# --- editable settings ---
assign service_name = "Per-Vendor Shipping"
assign service_code = "PER_VENDOR"
assign currency = "USD"
assign description = "Adds a fee per distinct vendor"
assign base_price = 0 # cents base
assign per_vendor_fee = 300 # cents
assign max_vendor_fee = 1500 # cents cap (set to a big number to effectively disable)
# --- logic ---
assign seen = "" # we'll store tokens like |VENDOR|
assign vendor_count = 0
for item in shopify_rate_check.items
assign token = "|" | append: item.vendor | append: "|"
unless seen contains token
assign seen = seen | append: token
assign vendor_count = vendor_count | plus: 1
endunless
endfor
assign calc_fee = per_vendor_fee | times: vendor_count
assign calc_fee = calc_fee | at_most: max_vendor_fee
assign shipping_price = base_price | plus: calc_fee
assign rate = rate | merge: "currency", currency
assign rate = rate | merge: "service_name", service_name
assign rate = rate | merge: "service_code", service_code
assign rate = rate | merge: "total_price", shipping_price
assign rate = rate | merge: "description", description
assign rates = rates | array_append: rate
%}
{
"rates": {{ rates | array_wrap | json }}
}Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article