Shipit DocumentationShipit Documentation
Home
API
Webhooks
Shipit Delivery Checkout
Shipit Return and Exchange
Shopify Delivery Checkout
  • English
  • Suomi
  • Svenska
  • Eesti
  • Dansk
  • Norsk
Home
API
Webhooks
Shipit Delivery Checkout
Shipit Return and Exchange
Shopify Delivery Checkout
  • English
  • Suomi
  • Svenska
  • Eesti
  • Dansk
  • Norsk
  • Shipit Delivery Checkout

    • Shipit Delivery Checkout
  • Getting Started

    • What is Delivery Checkout?
    • How It All Fits Together
    • Your First Shipping Option
    • Testing Your Checkout Setup
  • Core Concepts

    • Checkout Setups
    • Shipping Options
    • Rules
    • Pricing
    • Presentation Settings
    • Pickup Points
    • Parcels
    • Fulfillment Settings
    • Translations
    • A/B Experiments
  • Reference

    • Checkout Setup Field Reference
    • Shipping Option Field Reference
    • Parcel Preset Field Reference
    • Rule Condition Reference
    • Rule Action Reference
  • Examples

    • Show free shipping when the order total is over €100
    • Charge more for heavier orders
    • Offer cash on delivery for a specific country
    • Stop showing express delivery after 2pm and on weekends
    • Route orders to the right warehouse
    • Show a free shipping badge during weekend sales
    • Add a pickup point shipping option
    • Show different shipping options to B2B and B2C customers
    • Bulk-import shipping options from a CSV file
    • Discount shipping for loyalty members
    • Show different carriers per destination country
    • Restrict same-day delivery to a specific postcode area
    • A/B test two checkout messaging variants
    • Offer a return shipment option at checkout
    • Hide parcel lockers when an order is too heavy
  • Glossary

    • Glossary

What you'll build

A shipping option that lets customers pay cash when their parcel is delivered, visible only to customers in the countries where your carrier actually supports cash collection. Customers outside those countries will not see the option at all — no confusing unavailable states, just a clean checkout.

Before you start

  • You are using a checkout provider that supports COD: Qliro, Walley, or Kustom. Shopify's native checkout does not support cash on delivery through Shipit — if you use Shopify Checkout, this option is not available.
  • Your carrier offers a COD service in the target country. Confirm this in the Shipit Catalog before proceeding.
  • You have an existing delivery checkout configuration for the target market.

Step 1 — Create a shipping option for COD

Navigate to Delivery Checkout → Shipping Options and click Add Shipping Option.

FieldValue
NamePay on delivery
DescriptionPay cash when your order arrives
Service codehome-delivery-cod
Base priceYour carrier's COD rate (carriers typically charge a handling fee)
CurrencyTarget market currency

Select the COD-capable carrier service from the Shipit Catalog. Services that support cash collection are marked in the catalog — if the service does not list COD capability, the carrier will not accept the collection instruction.

Step 2 — Enable cash on delivery

The is_cod flag has no toggle in the shipping option form. It must be set via the Shipit API or enabled in bulk by your Shipit account manager when configuring a COD carrier service. Once set, the flag is preserved through all subsequent form saves and does not need to be re-applied.

Tip: If you are unsure whether your carrier service has the COD flag enabled, contact Shipit support. A method without the flag will not pass the collection instruction to the carrier even if the rule allows it to appear in checkout.

Step 3 — Restrict by destination country

Add a rule that hides the option for customers outside your supported market.

Rule fieldValue
Condition typedestination_country
OperatornotSameAs
ValueDE (replace with your target country ISO code)
Action typedisable_method
Conditions matchall
Priority10
Is activetrue

Tip: To support COD in multiple countries, add one condition per country code, set the operator to notIn, and list the supported country codes. Set Conditions match to all so the option hides only when the destination is outside all supported countries.

How it works

At checkout, Shipit evaluates the destination country from the customer's delivery address. If the country does not match your supported market, the disable_method rule fires and the COD option is removed from the list of options returned to the checkout provider. Customers in the supported country see it normally and can select it like any other delivery method.

When the customer completes their order, Shipit creates a shipment with the COD flag set. The carrier picks up the parcel from your warehouse, delivers it to the customer, collects payment (cash or card depending on the carrier), and remits the collected amount to you minus any handling fees per your carrier contract.

Trade-offs to consider

FactorCash on Delivery
Customer reachExtends to customers without payment cards or who distrust online payments
Fraud riskHigher — customers may refuse delivery; you bear return shipping cost
Handling feeCarriers typically charge €1–4 per COD parcel
Remittance delayCarrier remits collected funds on a schedule (weekly/monthly)
Failed deliveryIf customer is absent or refuses, the parcel returns to you unfulfilled

Warning: COD is not a Shipit-level payment method. Shipit passes the collection instruction to the carrier — the actual collection, fraud risk, and remittance are governed entirely by your carrier contract. Review your contract terms before enabling COD for high-value orders.

Testing it

  1. In a test checkout session, set the delivery address to your target country. Confirm the "Pay on delivery" option appears.
  2. Change the delivery address to a different country. Confirm the option disappears.
  3. Complete a test order using your carrier's sandbox environment and verify the COD flag appears on the generated label data.

If the option does not hide correctly, confirm the country code in your rule matches the ISO 3166-1 alpha-2 format your checkout provider sends (e.g., DE not Germany).

Last Updated: 6/13/26, 7:25 AM
Contributors: Brian Faust
Prev
Charge more for heavier orders
Next
Stop showing express delivery after 2pm and on weekends