How to hide Klarna, Afterpay and COD for pre-orders on Shopify
Short answer: Hide buy-now-pay-later and cash on delivery when the cart contains pre-order products. In Checkpost, choose “Hide pay-later methods for pre-orders” from Templates, adjust the values, test it, then save and enable the rule.
The problem
Pay-later providers and cash on delivery don't fit pre-orders that ship weeks later: payment plans start before the goods exist, and COD buyers forget what they ordered. Stores selling drops and pre-orders often want card payment upfront.
How to set it up
- Install Checkpost from the Shopify App Store.
- Open Templates and choose Hide pay-later methods for pre-orders.
- Tag pre-order products "preorder" and list the methods to hide.
- Use Try this rule to test a sample cart, then click Save rule.
The rule
Hide payment methods containing "Klarna" or "Afterpay" or "Cash on Delivery" when all of these conditions is true:
- Cart contains products tagged preorder
Shoppers see no message: the methods are changed before checkout shows them.
Rule definition (JSON)
{
"name": "No pay-later on pre-orders",
"action": {
"kind": "hide_payment",
"methods": [
"Klarna",
"Afterpay",
"Cash on Delivery"
],
"match": "contains"
},
"match": "all",
"conditions": [
{
"kind": "cart_contains",
"filter": {
"productTags": [
"preorder"
]
}
}
]
}Where this rule works
This changes matching payment methods that Shopify exposes to the customization. Payment rules do not have the same express-checkout coverage as cart validation. Shopify limits wallet customization and credit-card customization on non-Plus US/Canada stores. See Shopify's payment compatibility and verify your COD/manual method in a development store. Geographic payment rules currently use the first delivery group's address.
Tips
- Tag every pre-order product "preorder" (or change the tag in the rule).
- List the provider names exactly as checkout shows them; "contains" matching covers variations like "Klarna - Pay later".
FAQ
Does it hide the methods for the whole cart?
Yes. Payment methods apply to the whole order, so one pre-order item in the cart hides them.
Can I select products by collection instead of tag?
Payment rules select products by tag. Tag the collection's products (bulk editing or Shopify Flow makes this quick).
Related rules
Hide cash on delivery over $500
Hide the Cash on Delivery payment method when the cart subtotal is over 500, so big orders are paid upfront.
Hide cash on delivery for first orders
Only returning customers can pay cash on delivery: hide it for guests and customers without a previous order.
Show bank transfer first for wholesale
Move the bank transfer payment method to the top of the list for customers tagged wholesale.
Cash on delivery in domestic country only
Hide Cash on Delivery when the shipping country is outside India, while leaving prepaid methods available. Replace IN with your supported country.