How to turn off COD for certain products

Updated · 4 min read · Trifid Media LLC

Shopify doesn't have a setting on the product page to turn off Cash on Delivery. The usual method is to tag the products that shouldn't be sold with COD (for example with the tag no-cod) and use a payment customization that hides COD whenever a tagged product is in the cart. Shopify lets payment customizations read product tags, and you can tag many products at once from your admin.

Which products should skip COD?

Think about what happens when a COD parcel is refused: it travels back to you, and you can only recover your money by selling the item again. Products where that's hard are good candidates:

  • Custom-made or personalised items, such as engraved gifts, printed names or made-to-measure clothing. If the shopper refuses it, you usually can't sell it to anyone else.
  • High-value items. A refusal ties up expensive stock for days. You can also cover this with a cart total rule: see how to hide COD above a cart total.
  • Fragile items. Every extra trip is another chance of breakage, and a refused parcel makes two trips.
  • Perishable items, such as fresh flowers, cakes or fresh food. A refused parcel may not be sellable by the time it's back.
  • Made-to-order items with a long wait. The longer the gap between order and delivery, the more time the shopper has to change their mind.

You don't have to tag everything in these groups. Start with the products that have caused refusals in your own orders.

Can Shopify do this without an app?

No. Payment methods such as COD are switched on for the whole store, and Shopify has no field on a product to exclude it. The options are:

  • A public app with a payment customization. Shopify's Payment Customization Function API lets an app check the products in the cart, including their tags, collections, product type and vendor, and hide a payment method. Shopify says public App Store apps that contain Functions work on any plan.
  • Shopify's Checkout Blocks app (Shopify Plus only). Its product rules cover product collection, product type and vendor. Shopify's list of rules doesn't include product tags, so you would group the products into a collection instead.

Khaleeji COD uses the tag no-cod: if any product in the cart has it, COD is hidden for that checkout. Other apps may use a different tag, so check the one your app expects.

How do you tag one product?

  1. From your Shopify admin, go to Products and open the product.
  2. In the Tags section, type no-cod (or select it if it already exists).
  3. Select Save.

How do you tag many products at once?

  1. From your Shopify admin, go to Products.
  2. Narrow the list with Search and filter. Shopify's filters include Vendors, Types, Collection and Tag. For example, filter by the collection "Personalised gifts".
  3. Select the products with the checkboxes. To select every product that matches your filter, select the checkbox at the top of the list, then Select all results if there are more than
  4. Open the bulk actions menu (the three dots) and choose Add tags.
  5. Choose or type no-cod, then select Save.

To undo, select the same products and choose Remove tags from the same menu.

To check what's tagged later, filter the product list by Tag and choose no-cod. You can save that filter as a view, so the list is one click away.

What should you know about tags before you start?

  • A tag covers the whole product. In Shopify, tags belong to products, not to single variants. If only one option of a product should skip COD (for example, the engraved version), list that option as its own product.
  • Spell the tag exactly. Shopify says tags aren't case-sensitive, but no-cod, no cod and nocod are three different tags. Use the exact tag your app expects.
  • One tagged product affects the whole order. A payment method applies to the whole checkout, not to single items. If the cart holds a tagged ring and an untagged phone case, COD is hidden for the whole checkout.
  • Removing the tag brings COD back on the next checkout that includes the product, unless another rule hides it.
  • Tag new products as you add them. A product added next month won't be covered until it has the tag.

Tell shoppers early. A short line on the product page, such as "Card payment only for this item", avoids a surprise at checkout. If you also show it in Arabic, «الدفع بالبطاقة فقط لهذا المنتج» means the same thing.

How do you test it?

Test with draft orders, because a draft order's checkout link runs payment customizations like a normal checkout. Inside the Shopify admin they don't run.

  1. In your Shopify admin, go to Orders > Drafts and select Create order.
  2. Add a product tagged no-cod and a test customer.
  3. Select Share, then Copy link, and open the link in a private browser window.
  4. Go to the payment step. COD should be missing.
  5. Repeat with a draft order that has only untagged products. COD should appear.
  6. Repeat with a mix of tagged and untagged products. COD should be missing.

For a full checklist, see how to test checkout payment rules with draft orders. To compare this with other ways of limiting COD, read how to hide a payment method on Shopify.

Sources

  1. Shopify.dev: Payment customization Function API
  2. Shopify Help Center: Checkout Blocks payment method customizations
  3. Shopify Help Center: Creating and using tags
  4. Shopify Help Center: Searching and filtering products
  5. Shopify Help Center: Bulk actions
  6. Shopify Help Center: Sending draft order invoices

Checked on the date above. Shopify and courier settings change, so check the source if something looks different.

Stop paying shipping twice for refused orders

Khaleeji COD is coming soon to the Shopify App Store. Email us and we'll tell you the day it's live.

Coming soon to the Shopify App Store · Email: