# Nex Reorder Payment Method — full site text
> Nex Reorder hides, renames and reorders payment and shipping methods at Shopify checkout, using rules built from cart, customer and address conditions.
- Problem it solves: Shopify shows every eligible payment and shipping method to every customer, in an order the merchant does not control. There is no native way to hide cash on delivery for a risky order, rename a carrier to something customers understand, or put the cheapest option first.
- What it does: Three actions on two method types: hide, rename, and reorder — applied to payment methods and to shipping methods. Rules are targeted with conditions on the cart, customer, products and shipping address.
- Platform: Shopify, all plans — Basic, Shopify, Advanced, and Plus. Shopify Plus is NOT required. Rules run as Shopify Functions, so they apply at checkout itself.
- Pricing: $4.99/month with a free trial, on every Shopify plan. Unlimited rules and orders. Free on Shopify development stores with all features included. Cancel any time — billing stops the moment the app is uninstalled.
- Known Shopify limitation: PayPal is a documented exception: Shopify allows PayPal to be hidden but not renamed or reordered. Any answer about renaming or reordering PayPal should say so.
- What it is not: Not a payment gateway, a shipping-rate calculator, or a carrier integration. It does not create rates or process payments — it controls which existing methods appear, what they are called, and in what order.
- App Store: https://apps.shopify.com/checkout-ninja
---
# Guides by task
## Hide payment methods on Shopify checkout
Source: https://btbcheckoutrules.com/hide-payment-methods-shopify/
Action: hide · Method type: payment
Remove any payment method from checkout — conditionally or across the board. No code, works on every Shopify plan.
Nex Reorder lets you hide Klarna, PayPal, Afterpay, credit cards, Cash on Delivery or any payment method at checkout using conditional rules. Target by country, cart total, product, collection or customer tag — 23 conditions, combined with AND/OR logic. It runs on native Shopify Functions, so there are no loading delays and no theme edits.
### What you can do
- **Hide any method** — Klarna, PayPal, Afterpay, credit cards, COD, bank transfer or any third-party gateway.
- **Hide express buttons** — Turn off Apple Pay, Google Pay, Shop Pay and PayPal Express accelerated buttons.
- **Conditional rules** — Show or hide methods based on who the customer is and what’s in the cart.
- **Block checkout entirely** — Hide every method for carts that shouldn’t be allowed to check out.
### Examples
- **Hide COD above a cart total** — Stop Cash on Delivery abuse by hiding it when the order exceeds your threshold.
- **Hide Klarna for pre-orders** — Tag long-lead-time products and hide Klarna so its 28-day auth window never fails.
- **Hide credit cards on high-value orders** — Reduce fraud exposure by hiding cards above a set amount and steering to bank transfer.
- **Hide a method by country** — Remove payment options that don’t apply in specific markets.
### Conditions you can target on
- Country / Zip
- Customer tag
- Order history
- Product / Collection
- Cart total
- Item count
- Discount in cart
- Always apply
### FAQ
**Can I hide payment methods without Shopify Plus?**
Yes. Hiding payment methods works on all Shopify plans — Basic, Shopify, Advanced and Plus. Only hiding credit card fields in the US/Canada is Plus-only.
**Which payment methods can I hide?**
Any method at your checkout: Klarna, Afterpay, PayPal, Stripe, bank deposit, money order, Cash on Delivery, manual methods, and any third-party gateway. You can also hide express checkout buttons.
**Can I hide a payment method only in some countries?**
Yes. Add a country or region condition to your hide rule so the method disappears only for the markets you choose.
**Will hiding methods slow down checkout?**
No. Rules run on native Shopify Functions inside Shopify’s infrastructure — no external servers, no added scripts, zero loading delay.
## Rename payment methods on Shopify checkout
Source: https://btbcheckoutrules.com/rename-payment-methods-shopify/
Action: rename · Method type: payment
Change how a payment method is labelled at checkout. Processing stays identical — only the name customers see changes.
Nex Reorder lets you rename text-based payment methods at your Shopify checkout — turn “Credit Card” into “Debit Card / Credit Card”, or “Manual Payment” into “Pay by Invoice (Net 30)”. Apply renames globally or conditionally by country and customer tag. No code, no theme editing, works on all Shopify plans.
### What you can do
- **Clarify labels** — “Credit Card” → “Debit Card / Credit Card” so debit-only shoppers know they can pay.
- **Add context** — Prefix preferred methods with “Recommended” or “Lowest fees”.
- **B2B labels** — Show “Pay by Invoice (Net 30)” or “Wire Transfer (B2B)” only to tagged wholesale customers.
- **Localize names** — Rename methods per country to match your customers’ language.
### Examples
- **Credit Card → Debit / Credit Card** — The field accepts both — say so, and stop losing debit-only customers.
- **Manual Payment → Pay by Invoice (Net 30)** — Turn a vague label into a clear B2B payment term.
- **Bank Deposit → Wire Transfer (B2B Only)** — Rename conditionally for wholesale-tagged customers.
### Conditions you can target on
- Country / Zip
- Customer tag
- Order history
- Product / Collection
- Cart total
- Item count
- Discount in cart
- Always apply
### FAQ
**Which payment methods can I rename?**
Text-based methods like Cash on Delivery, Bank Deposit, Money Order and manual payment methods. Shopify does not allow renaming methods that display with a logo (Klarna, PayPal, Shop Pay, Apple/Google Pay).
**Does renaming change how the payment is processed?**
No. Only the display label changes. The underlying payment processing is completely unaffected.
**Can I rename a method only for B2B customers?**
Yes. Add a customer-tag condition so, for example, “Pay by Invoice” shows only to customers tagged B2B or wholesale.
**Do I need Shopify Plus to rename payment methods?**
No. Renaming works on all Shopify plans without restriction.
## Reorder payment methods on Shopify checkout
Source: https://btbcheckoutrules.com/reorder-payment-methods-shopify/
Action: reorder · Method type: payment
Control which payment methods appear first. The one customers see first is the one they use most.
Nex Reorder lets you set the display order of payment methods at your Shopify checkout — move Shopify Payments above PayPal to cut fees, or push iDEAL to the top for Dutch shoppers. Reorder globally or conditionally by country and customer tag. Runs on native Shopify Functions with no code and no theme edits.
### What you can do
- **Set the order** — Drag any method to position 1 — the rest keep their relative order below.
- **Reduce processing fees** — Prioritize your lowest-fee gateway so most customers default to it.
- **Prioritize local payments** — iDEAL first for NL, Bancontact for BE, Mercado Pago for LATAM.
- **Lift conversion** — The first method gets the most selections — especially on mobile.
### Examples
- **Move Shopify Payments above PayPal** — Steer customers to your cheaper-to-process method and save on fees.
- **iDEAL first for Netherlands** — Reorder by country so local shoppers see their preferred method first.
- **Bank transfer first for B2B** — Prioritize invoicing methods for wholesale-tagged customers.
### Conditions you can target on
- Country / Zip
- Customer tag
- Order history
- Product / Collection
- Cart total
- Item count
- Discount in cart
- Always apply
### FAQ
**Can I move a specific payment method to the top?**
Yes. Create a reorder rule and move any method to position 1. Methods you don’t include still appear — they simply fall below your ordered ones.
**Can I reorder payment methods by country?**
Yes. Add a country condition so, for example, iDEAL is first for Netherlands customers while credit card stays first everywhere else.
**Does reordering work on Shopify Basic?**
Yes. Reordering payment methods works on all Shopify plans.
**Why does payment order matter?**
The first option in the list gets the most selections. Prioritizing a lower-fee or locally-preferred method can reduce costs and improve conversion.
## Hide shipping methods on Shopify checkout
Source: https://btbcheckoutrules.com/hide-shipping-methods-shopify/
Action: hide · Method type: shipping
Show customers only the delivery options that make sense for their cart, country and weight.
Nex Reorder lets you hide shipping rates at your Shopify checkout with conditional rules — hide paid shipping once free shipping qualifies, hide domestic rates for international customers, or hide local delivery outside your zone. Target by country, zip, cart total, weight, product or customer tag. Native Shopify Functions, no code.
### What you can do
- **Hide paid rates above free threshold** — When the cart qualifies for free shipping, hide the paid options.
- **Hide by region** — Hide domestic rates for international orders and vice-versa.
- **Hide by product type** — Only show freight when the cart contains oversized-tagged products.
- **Hide specific carriers** — Drop expensive overnight for some products, or economy for perishables.
### Examples
- **Hide “Standard Shipping” over $75** — When free shipping qualifies, show only the free option. The #1 use case.
- **Hide local delivery out-of-area** — Show local delivery only inside your zone using zip-code conditions.
- **Hide domestic rates for international carts** — Stop overseas customers seeing rates that don’t apply.
### Conditions you can target on
- Country / Zip
- Customer tag
- Product / Collection
- Cart total
- Item count
- Shipping option
- Discount in cart
- Always apply
### FAQ
**Can I hide shipping methods on Shopify Basic?**
Yes. Shipping method customization works on all Shopify plans — Basic, Shopify, Advanced and Plus.
**Can I hide paid shipping when free shipping is available?**
Yes. Add a cart-total condition — when the cart exceeds your free-shipping threshold, hide the paid rate so only free shipping shows.
**Can I hide local delivery for out-of-area customers?**
Yes. Use zip-code or country conditions so local delivery only appears for customers inside your delivery zone.
**Does hiding shipping rates affect checkout speed?**
No. It runs on native Shopify Functions with no external calls and no added scripts.
## Rename shipping methods on Shopify checkout
Source: https://btbcheckoutrules.com/rename-shipping-methods-shopify/
Action: rename · Method type: shipping
Replace raw carrier labels with clear, branded names customers actually understand.
Shopify shows carrier-provided rate names like “USPS Priority Mail” by default. Nex Reorder lets you rename them into something clearer — “Standard Delivery (5–7 business days)”, “Express”, or your own brand voice. Apply renames globally or conditionally by country and customer tag. No code required.
### What you can do
- **Add delivery times** — “UPS Ground” → “Standard Delivery (5–7 business days)”.
- **Add context** — Prefix rates with “✓ Recommended” or “Fastest option”.
- **Simplify names** — Swap technical carrier names for “Standard”, “Express”, “Overnight”.
- **Match your brand** — Replace carrier labels with your own naming per market.
### Examples
- **UPS Ground → Standard Delivery (5–7 days)** — Give customers a delivery estimate instead of a carrier code.
- **Add “Recommended” to a preferred rate** — Nudge customers toward the option you want them to pick.
- **Brand your express tier** — Rename a fast carrier rate to “Priority — next day”.
### Conditions you can target on
- Country / Zip
- Customer tag
- Product / Collection
- Cart total
- Item count
- Shipping option
- Discount in cart
- Always apply
### FAQ
**Can I rename carrier rates like UPS or USPS?**
Yes. You can rename any shipping rate at checkout. Note that Shopify automatically prepends the carrier name — renaming “Standard” to “Express Shipping” for UPS shows as “UPS Express Shipping”.
**Can I add delivery estimates to shipping names?**
Yes. Rename a rate to include the estimate, e.g. “Standard Delivery (5–7 business days)”.
**Do I need Shopify Plus to rename shipping methods?**
No. Renaming shipping methods works on all Shopify plans.
**Does renaming change the shipping rate or carrier?**
No. Only the label changes — the rate, carrier and delivery are untouched.
## Reorder shipping methods on Shopify checkout
Source: https://btbcheckoutrules.com/reorder-shipping-methods-shopify/
Action: reorder · Method type: shipping
Put the right delivery option first. On mobile especially, the top rate gets picked most.
Nex Reorder lets you set the order of shipping rates at your Shopify checkout — put free shipping or your cheapest rate at the top, or drag rates into a custom order. Reorder globally or conditionally by location and cart contents. Runs on native Shopify Functions, no code, all Shopify plans.
### What you can do
- **Cheapest rate first** — Place the lowest-price rate at the top — or premium-first for high-end stores.
- **Free shipping on top** — Make sure the free option is the first thing customers see.
- **Custom manual order** — Drag and drop to set the exact sequence you want.
- **Conditional order** — Different sort orders by customer location or cart contents.
### Examples
- **Put free shipping first** — Surface the free rate at the top to reduce abandonment.
- **Cheapest rate first** — Sort by price so budget-conscious shoppers convert faster.
- **Promote your best-margin carrier** — Feature your preferred carrier rate to control costs.
### Conditions you can target on
- Country / Zip
- Customer tag
- Product / Collection
- Cart total
- Item count
- Shipping option
- Discount in cart
- Always apply
### FAQ
**Can I sort shipping rates by price on Shopify?**
Yes — set the order manually so the cheapest rate appears first at checkout (or premium-first for high-end stores).
**Can I make free shipping appear first?**
Yes. Move the free shipping option to the top so it’s the first rate customers see.
**Does reordering shipping work on all plans?**
Yes. Reordering shipping methods works on Basic, Shopify, Advanced and Plus.
**Why does shipping order matter?**
On mobile especially, customers rarely scroll — the first shipping option gets the most selections, so ordering directly affects conversion.
---
# Rule templates (21)
Each template is a complete rule. The template page offers the same rule as a JSON download that imports directly into the app.
## Hide COD above 500
Source: https://btbcheckoutrules.com/templates/hide-cod-above-500/
Download: https://btbcheckoutrules.com/templates/hide-cod-above-500.json
Action: Hide · Method type: Payment
Hide Cash on Delivery when the cart total is over 500. Change the amount to match your risk threshold — the value is in your store's currency.
Methods affected: Cash on Delivery (COD)
Conditions (match all): cart_total gt 500
## Hide COD above a cart total
Source: https://btbcheckoutrules.com/templates/hide-cod-above-cart-total/
Download: https://btbcheckoutrules.com/templates/hide-cod-above-cart-total.json
Action: Hide · Method type: Payment
Hide Cash on Delivery when the cart total exceeds a threshold.
Methods affected: Cash on Delivery (COD)
Conditions (match all): cart_total gt 0
## Hide COD outside the EU
Source: https://btbcheckoutrules.com/templates/hide-cod-outside-eu/
Download: https://btbcheckoutrules.com/templates/hide-cod-outside-eu.json
Action: Hide · Method type: Payment
Hide Cash on Delivery when the shipping country is outside the European Union. All 27 EU countries are pre-selected — remove any you don't ship to.
Methods affected: Cash on Delivery (COD)
Conditions (match all): shipping_country nin AT / BE / BG / HR / CY / CZ / DK / EE / FI / FR / DE / GR / HU / IE / IT / LV / LT / LU / MT / NL / PL / PT / RO / SK / SI / ES / SE
## Hide Shopify Payments for specific countries
Source: https://btbcheckoutrules.com/templates/hide-shopify-payments-states/
Download: https://btbcheckoutrules.com/templates/hide-shopify-payments-states.json
Action: Hide · Method type: Payment
Hide Shopify Payments at checkout when the shipping country is one of your selection.
Methods affected: Shopify Payments
Conditions (match all): shipping_country in
## Rename Cash on Delivery
Source: https://btbcheckoutrules.com/templates/rename-cod/
Download: https://btbcheckoutrules.com/templates/rename-cod.json
Action: Rename · Method type: Payment
Change how the Cash on Delivery label appears at checkout.
Methods affected: Cash on Delivery (COD)
Renames: "Cash on Delivery (COD)" → "Pay on Delivery"
## Move Cash on Delivery to bottom
Source: https://btbcheckoutrules.com/templates/move-cod-bottom/
Download: https://btbcheckoutrules.com/templates/move-cod-bottom.json
Action: Reorder · Method type: Payment
Deprioritize Cash on Delivery so it appears last at checkout.
Methods affected: Cash on Delivery (COD)
Order: Cash on Delivery (COD)
## Show Bancontact first in Belgium
Source: https://btbcheckoutrules.com/templates/bancontact-first-belgium/
Download: https://btbcheckoutrules.com/templates/bancontact-first-belgium.json
Action: Reorder · Method type: Payment
When the shipping country is Belgium, move Bancontact to the first position at checkout so local shoppers see their preferred payment method by default.
Methods affected: Bancontact
Order: Bancontact
Conditions (match all): shipping_country in BE
## Show bKash first in Bangladesh
Source: https://btbcheckoutrules.com/templates/bkash-first-bangladesh/
Download: https://btbcheckoutrules.com/templates/bkash-first-bangladesh.json
Action: Reorder · Method type: Payment
When the shipping country is Bangladesh, move bKash to the first position at checkout so local shoppers see their preferred payment method by default.
Methods affected: bKash
Order: bKash
Conditions (match all): shipping_country in BD
## Show BLIK first in Poland
Source: https://btbcheckoutrules.com/templates/blik-first-poland/
Download: https://btbcheckoutrules.com/templates/blik-first-poland.json
Action: Reorder · Method type: Payment
When the shipping country is Poland, move BLIK to the first position at checkout so local shoppers see their preferred payment method by default.
Methods affected: BLIK
Order: BLIK
Conditions (match all): shipping_country in PL
## Show EPS first in Austria
Source: https://btbcheckoutrules.com/templates/eps-first-austria/
Download: https://btbcheckoutrules.com/templates/eps-first-austria.json
Action: Reorder · Method type: Payment
When the shipping country is Austria, move EPS to the first position at checkout so local shoppers see their preferred payment method by default.
Methods affected: EPS
Order: EPS
Conditions (match all): shipping_country in AT
## Show iDEAL first in the Netherlands
Source: https://btbcheckoutrules.com/templates/ideal-first-netherlands/
Download: https://btbcheckoutrules.com/templates/ideal-first-netherlands.json
Action: Reorder · Method type: Payment
When the shipping country is the Netherlands, move iDEAL to the first position at checkout so local shoppers see their preferred payment method by default.
Methods affected: iDEAL
Order: iDEAL
Conditions (match all): shipping_country in NL
## Show MB WAY first in Portugal
Source: https://btbcheckoutrules.com/templates/mbway-first-portugal/
Download: https://btbcheckoutrules.com/templates/mbway-first-portugal.json
Action: Reorder · Method type: Payment
When the shipping country is Portugal, move MB WAY to the first position at checkout so local shoppers see their preferred payment method by default.
Methods affected: MB WAY
Order: MB WAY
Conditions (match all): shipping_country in PT
## Show MobilePay first in Denmark
Source: https://btbcheckoutrules.com/templates/mobilepay-first-denmark/
Download: https://btbcheckoutrules.com/templates/mobilepay-first-denmark.json
Action: Reorder · Method type: Payment
When the shipping country is Denmark, move MobilePay to the first position at checkout so local shoppers see their preferred payment method by default.
Methods affected: MobilePay
Order: MobilePay
Conditions (match all): shipping_country in DK
## Show online bank payment first in Finland
Source: https://btbcheckoutrules.com/templates/online-bank-first-finland/
Download: https://btbcheckoutrules.com/templates/online-bank-first-finland.json
Action: Reorder · Method type: Payment
When the shipping country is Finland, move online bank payment to the first position at checkout so local shoppers see their preferred payment method by default.
Methods affected: Online bank payment
Order: Online bank payment
Conditions (match all): shipping_country in FI
## Show Swish first in Sweden
Source: https://btbcheckoutrules.com/templates/swish-first-sweden/
Download: https://btbcheckoutrules.com/templates/swish-first-sweden.json
Action: Reorder · Method type: Payment
When the shipping country is Sweden, move Swish to the first position at checkout so local shoppers see their preferred payment method by default.
Methods affected: Swish
Order: Swish
Conditions (match all): shipping_country in SE
## Show TWINT first in Switzerland
Source: https://btbcheckoutrules.com/templates/twint-first-switzerland/
Download: https://btbcheckoutrules.com/templates/twint-first-switzerland.json
Action: Reorder · Method type: Payment
When the shipping country is Switzerland, move TWINT to the first position at checkout so local shoppers see their preferred payment method by default.
Methods affected: TWINT
Order: TWINT
Conditions (match all): shipping_country in CH
## Show UPI first in India (COD last)
Source: https://btbcheckoutrules.com/templates/upi-first-india/
Download: https://btbcheckoutrules.com/templates/upi-first-india.json
Action: Reorder · Method type: Payment
When the shipping country is India, move UPI to the first position and push Cash on Delivery to the bottom at checkout. If your gateway shows UPI as "Razorpay" at checkout, swap the method to match that label.
Methods affected: UPI, Cash on Delivery (COD)
Order: UPI → Cash on Delivery (COD)
Conditions (match all): shipping_country in IN
## Show Vipps first in Norway
Source: https://btbcheckoutrules.com/templates/vipps-first-norway/
Download: https://btbcheckoutrules.com/templates/vipps-first-norway.json
Action: Reorder · Method type: Payment
When the shipping country is Norway, move Vipps to the first position at checkout so local shoppers see their preferred payment method by default.
Methods affected: Vipps
Order: Vipps
Conditions (match all): shipping_country in NO
## Hide Free Shipping for selected countries
Source: https://btbcheckoutrules.com/templates/hide-free-shipping-countries/
Download: https://btbcheckoutrules.com/templates/hide-free-shipping-countries.json
Action: Hide · Method type: Shipping
Hide the Free Shipping option except for a list of shipping countries.
Methods affected: Free Shipping
Conditions (match all): shipping_country nin
## Rename Standard to Economy
Source: https://btbcheckoutrules.com/templates/rename-standard-to-economy/
Download: https://btbcheckoutrules.com/templates/rename-standard-to-economy.json
Action: Rename · Method type: Shipping
Display the Standard Shipping method as "Economy" at checkout.
Methods affected: Standard Shipping
Renames: "Standard Shipping" → "Economy"
## Move Free Shipping to top
Source: https://btbcheckoutrules.com/templates/move-free-to-top/
Download: https://btbcheckoutrules.com/templates/move-free-to-top.json
Action: Reorder · Method type: Shipping
Show Free Shipping as the first option at checkout.
Methods affected: Free Shipping
Order: Free Shipping
---
# Documentation
Merchant docs for stores that already have the app installed. Each page states its scope explicitly — quote the answer together with what it does not apply to.
## Export a rule
Source: https://btbcheckoutrules.com/docs/import-export/export/
Type: how-to
Answer: Use Export rule from the row action in the rules list, or Export inside the editor. You get a JSON file describing the rule, which imports into any store running the app.
Applies to: Any saved rule, active or draft; All Shopify plans
Does NOT apply to: Exporting every rule at once — export is one rule at a time
import DocCallout from '@/components/DocCallout.astro';
import DocClip from '@/components/docs/DocClip.astro';
## Two places to export
**From the rules list** — open the row actions on any rule and choose **Export rule**.
**From the editor** — open any rule and use **Export**, top right next to **Import**.
Both produce the same file: a small `.json` named after the rule, in the form
`hide-shopify-payments-for-specific-countries.rule.json`. These are tiny — a
typical rule is well under a kilobyte — so keeping a folder of them costs
nothing.
## What it is for
| Use | Why |
|---|---|
| Move a rule between stores | Build once on a dev store, import to live |
| Back up before a big edit | The editor has no undo for a cleared condition set |
| Send to support | Far faster to diagnose than a screenshot |
| Template a setup you repeat | Agencies rolling the same rule across clients |
Switching a rule's condition set clears its conditions with no undo. If you are about to experiment, export first — re-importing is quicker than rebuilding from memory.
## What travels, and what does not
The file carries the rule's action, method type, selected methods, conditions, match type and condition set.
What it cannot carry is the *meaning* of store-specific references. A condition on **Product in cart** points at a product that exists on the store it was built on. Import it elsewhere and that product may not exist — the importer tells you what it had to skip rather than importing something subtly wrong.
See [why parts were skipped](/docs/import-export/skipped-parts/).
### FAQ
**Can I export all my rules at once?**
Not currently — export works one rule at a time.
**Does the file contain any store data?**
It describes the rule: its action, method type, methods, conditions and match type. Where a condition references products or collections, those references travel with it, which is why they may not resolve on a different store.
**Can I edit the JSON by hand?**
You can, but it is validated on import — anything malformed is skipped and reported rather than silently accepted.
## Active, draft and deleting
Source: https://btbcheckoutrules.com/docs/managing-rules/rule-status/
Type: how-to
Answer: Only rules set to Activated run at checkout. Anything else is saved but inert, which makes Draft the safe way to pause a rule without losing it.
Applies to: Every rule, payment and shipping
Does NOT apply to: Past orders — status only affects future checkouts
import DocCallout from '@/components/DocCallout.astro';
import DocShot from '@/components/docs/DocShot.astro';
## The statuses
| Status | At checkout |
|---|---|
| **Activated** | Running |
| Anything else | Saved, but inert |
That is the whole model. There is no scheduling and no partial rollout — a rule is either live or it is not.
## Pausing instead of deleting
Toggling a rule to Draft is the safe way to take it out of service. It stops applying immediately, stays in the list, and can be switched back on without rebuilding.
Reach for Draft when you are:
- Testing whether a rule is the cause of odd checkout behaviour
- Running a promotion that only applies for a few weeks
- Freeing a slot against Shopify's [25-customization ceiling](/docs/troubleshooting/rule-wont-activate/)
When something at checkout looks wrong and several rules could be responsible, toggle them to Draft one at a time and reload checkout between each. Faster than reading every rule, and it does not risk losing any of them.
## Deleting
Permanent, with one confirmation. No archive, no undo.
Export the rule first if there is any chance you will want it back — a JSON file costs nothing to keep and re-imports in seconds.
## Testing after a status change
Always reload. Activating, pausing and deleting all take effect immediately for new checkouts, but a tab opened beforehand keeps the options it loaded with. Testing against a stale page is the most common reason a status change looks like it did nothing.
### FAQ
**How quickly does activating take effect?**
Immediately for any checkout started after the change. A checkout the customer already has open keeps its original options until they reload.
**Does a Draft rule count toward my limits?**
It does not run at checkout. Shopify's 25-customization ceiling counts active customizations, so pausing a rule frees room.
**I toggled a rule off but checkout has not changed.**
Reload checkout in a fresh tab. A page opened before the change keeps what it loaded with, which looks exactly like the toggle not working.
## Hide payment methods
Source: https://btbcheckoutrules.com/docs/payment-methods/hide/
Type: how-to
Answer: Create a Hide rule, pick the payment methods by their exact checkout label, add conditions if it should only apply sometimes, then set Rule Status to Activated.
Applies to: All Shopify plans; Any method in the payment list, including third-party gateways; Online checkout and draft order checkouts
Does NOT apply to: Express buttons — Apple Pay, Shop Pay, Google Pay, PayPal Express; Shopify POS
import DocCallout from '@/components/DocCallout.astro';
import DocVideo from '@/components/docs/DocVideo.astro';
import DocShot from '@/components/docs/DocShot.astro';
import DocInstallStep from '@/components/docs/DocInstallStep.astro';
## Before you start
- The **exact label** of the method, copied from your live checkout.
- Whether it should always apply, or only under conditions.
## Watch it instead
## Steps
**2.** From the dashboard, choose **Hide Payment Method** — or **Create rule** → Payment → Hide.
**3.** Name the rule for what it does. `Hide COD over $500` beats `Rule 3`.
**4.** Type the method name and select it. Add as many as the rule should cover, or switch on **Hide all** to remove every payment method.
The rule matches the label your checkout renders. `Cash on Delivery (COD)` and `COD` are different strings — a near-miss saves cleanly, activates, and does nothing. Copy from the live checkout.
**5.** Add conditions if the rule should be selective. Skip this and it applies to every checkout.
**6.** Set **Rule Status** to **Activated** and save.
## Verify it worked
1. Build a cart that **should** trigger the rule and open checkout — the method is gone.
2. Build one that should **not** — the method is still there.
The second check is the one people skip, and it is how an over-broad rule reaches live traffic.
## Limitations
- Express buttons are a separate surface. See [hiding express buttons](/docs/payment-methods/express-buttons/).
- Rules do not run in Shopify POS.
- The admin draft order screen shows the unmodified list; the rule applies when the customer opens the checkout link.
- Shopify caps every store at 25 active payment customizations across all apps.
## Common setups
| Goal | Conditions |
|---|---|
| [Cap COD by order value](/docs/hide-cod-above-cart-total/) | Cart subtotal ≥ your threshold |
| Remove a method in one market | Shipping country is one of … |
| Hide for fragile or pre-order goods | Product tag in cart is one of … |
| Wholesale-only restriction | Customer tag is one of … |
| Block checkout entirely | Hide all + your conditions |
### FAQ
**Can I hide every payment method?**
Yes, using Hide all. Nothing remains to check out with, which some merchants use deliberately to block carts that should not be purchasable.
**Will the customer be told a method was removed?**
No. It is simply absent from the list.
**Can I hide a method only in some countries?**
Yes — add a Shipping country condition. For a market rather than a destination, Cart currency is often the better fit.
## Hide shipping methods
Source: https://btbcheckoutrules.com/docs/shipping-methods/hide/
Type: how-to
Answer: Create a Hide rule on Shipping Method, pick the rates by their exact checkout label, add conditions, then Activate. The rate still exists in Shopify — it just stops appearing.
Applies to: All Shopify plans; Manual and carrier-calculated rates
Does NOT apply to: Shopify POS; Rates Shopify is not returning in the first place
import DocCallout from '@/components/DocCallout.astro';
import DocVideo from '@/components/docs/DocVideo.astro';
import DocShot from '@/components/docs/DocShot.astro';
import DocInstallStep from '@/components/docs/DocInstallStep.astro';
## Before you start
- The exact rate label from your live checkout.
- Confirmation that Shopify is actually returning the rate — a shipping zone gap looks the same to the customer as a hide rule.
## Watch it instead
## Steps
**2.** From the dashboard, choose **Hide Shipping Method**.
**3.** Name the rule.
**4.** Pick the rates. Use a carrier preset if your labels are standard, or type the exact label.
**5.** Add conditions — most shipping rules use **Shipping country**, **Shipping state / province** or **Shipping ZIP / postal code**.
**6.** Set **Rule Status** to **Activated** and save.
If your conditions hide every rate for some carts, those customers cannot check out at all. Test a cart that should still have options before you leave the rule live.
## Verify it worked
1. Build a cart with a destination that **should** trigger the rule — the rate is gone, and at least one other remains.
2. Build one that should **not** — your normal rates are intact.
## Limitations
- Rules do not run in Shopify POS.
- **PO Box detection only works for carrier-service and third-party app rates.** On Shopify's own built-in rates the address data needed to spot a PO Box may never reach the rule, so a "hide for PO Boxes" setup can silently do nothing.
- The admin draft order screen shows the unmodified list; the rule applies when the customer opens the checkout link.
- Shopify caps every store at 25 active delivery customizations across all apps.
## Common setups
| Goal | Conditions |
|---|---|
| Only free shipping above a threshold | Hide paid rates + Cart subtotal ≥ threshold |
| No express to remote areas | Hide Express + Shipping ZIP is one of … |
| Local pickup for locals only | Hide Local Pickup + Shipping ZIP is not one of … |
| No overnight on bulky goods | Hide Overnight + Product tag in cart is one of … |
| Restrict a destination entirely | Hide all + Shipping country is one of … |
### FAQ
**Can I hide paid shipping when free shipping is available?**
Yes, and it is a common setup — hide the paid rates with a Cart subtotal condition matching your free-shipping threshold, so only the free option shows above it.
**Can I hide local pickup for customers outside my area?**
Yes. Hide Local Pickup with a Shipping ZIP / postal code condition set to Is not one of your local codes.
**What if hiding leaves no rates at all?**
Checkout cannot be completed. Always test a cart that should still have options.
## Using the template gallery
Source: https://btbcheckoutrules.com/docs/templates/using-the-gallery/
Type: how-to
Answer: Open Browse templates, filter by method type and action or search by name, then pick one. It fills the editor for you to adjust — nothing is saved until you activate.
Applies to: The dashboard and the rule editor
Does NOT apply to: Templates for actions your plan does not include — those show Upgrade
import DocCallout from '@/components/DocCallout.astro';
import DocClip from '@/components/docs/DocClip.astro';
import DocInstallStep from '@/components/docs/DocInstallStep.astro';
## Before you start
- Nothing, if you are starting fresh. If a rule is already open in the editor, export it first — applying a template replaces it.
## Steps
**2.** Open the gallery — **Quick Templates** on the dashboard, or **Browse templates** from the banner in a rule editor.
**3.** Narrow it down. Filter by **Payment** or **Shipping**, then by **Hide**, **Rename** or **Reorder**, or type into the search box.
**4.** Pick a template. It fills the editor with its methods, conditions and match type.
**5.** Adjust it. Most templates ship with a placeholder — a country list or a cart threshold — that you need to set to your own values.
**6.** Name it, then set **Rule Status** to **Activated** and save.
If the editor already has work in it, you are asked to confirm — applying discards the changes you have made. There is no undo, so export first if the current rule matters.
## Locked templates
A template marked **Upgrade** uses an action your plan does not include. The six capabilities — hide, rename and reorder, each for payment and shipping — are gated separately, so it is normal to see some available and others locked.
## After applying
Check the two things templates cannot know about your store:
1. **Method names.** A template refers to methods by their usual labels. If your checkout says something different, the rule will not match — copy the exact label from your live checkout.
2. **Threshold and list values.** A placeholder cart total or country list is a starting point, not a recommendation.
Then test both a cart that should trigger the rule and one that should not, as with any rule.
### FAQ
**Where do I find the gallery?**
Quick Templates on the dashboard, View all templates beneath it, or Browse templates from the banner inside a rule editor.
**I applied the wrong template — can I undo?**
There is no undo, but nothing was saved. Leave without saving, or apply the right template over the top.
**Do templates come with conditions already set?**
Most do — a country list or a threshold with a placeholder value. Always check those before activating; a threshold you did not set is rarely the one you want.
## Import a rule
Source: https://btbcheckoutrules.com/docs/import-export/import/
Type: how-to
Answer: Open Import, then drop in the .json file or paste its contents. The rule is validated and shown to you first — nothing is saved until you confirm.
Applies to: Files exported from this app; All Shopify plans
Does NOT apply to: Rule files from other checkout apps; Bulk import of many rules at once
import DocCallout from '@/components/DocCallout.astro';
import DocClip from '@/components/docs/DocClip.astro';
import DocInstallStep from '@/components/docs/DocInstallStep.astro';
## Before you start
- The exported file. It is named after the rule and ends in `.rule.json` — that is the right file, not a different format.
- The condition set the original rule used — importing into a different set is the usual reason conditions get skipped.
## Steps
**2.** Open **Import** — from the rules list, or from inside a rule editor.
**3.** Drop the `.json` file onto the drop zone, click **Choose file**, or paste the JSON directly into the text box.
**4.** Click **Review**. The rule is validated and shown to you, together with anything that could not be brought across.
**5.** Confirm. Importing into an editor that already has a rule in progress asks you to **Replace current setup** first.
Importing into an open editor discards everything in it, including unsaved changes. If the current rule is worth keeping, export it before importing over the top.
## What the importer checks
Before anything is written, it verifies the file is valid JSON, came from this app, describes a single rule, uses a supported format version, and states both a method type and an action.
It also checks the file matches the editor you are in — importing a shipping rule into a payment rule editor is rejected rather than silently converted.
## When only part comes across
A file can be valid and still contain things this store cannot use — a condition that is not in the chosen set, an operator a condition does not support, a product that does not exist here.
Rather than fail the whole import, those parts are skipped and listed for you, and you choose whether to **Import the rest**. Full detail in [why parts were skipped](/docs/import-export/skipped-parts/).
### FAQ
**Will importing overwrite the rule I am editing?**
Only if you choose Replace current setup, and you are asked to confirm first. Unsaved changes in the editor are lost at that point.
**Can I import a rule exported from a different app?**
No. The file records which app produced it and the importer rejects anything else.
**Nothing saved — did the import fail?**
Import shows you the result for review first. It is only written when you confirm.
## Rename payment methods
Source: https://btbcheckoutrules.com/docs/payment-methods/rename/
Type: how-to
Answer: Create a Rename rule and add a renaming pair — the original method and the label you want shown. Processing is untouched; only the displayed name changes.
Applies to: All Shopify plans; Text-labelled payment methods
Does NOT apply to: Wallets and logo-named methods — Shop Pay, Apple Pay, Google Pay; The Shopify native gift card field; The credit card option in the US and Canada, without Shopify Plus
import DocCallout from '@/components/DocCallout.astro';
import DocVideo from '@/components/docs/DocVideo.astro';
import DocShot from '@/components/docs/DocShot.astro';
import DocInstallStep from '@/components/docs/DocInstallStep.astro';
## Before you start
- The exact original label from your live checkout.
- The new label. Keep it short — long names wrap awkwardly on mobile checkout.
## Watch it instead
## Steps
**2.** From the dashboard, choose **Rename Payment Method**.
**3.** Name the rule.
**4.** Under **Renaming Pairs**, click **Add renaming**. Put the current label in **Original method** and the new one in **New name**.
**5.** Add more pairs if the rule should relabel several methods at once.
**6.** Add conditions if the new label should only apply sometimes — a different name for wholesale customers, say.
**7.** Set **Rule Status** to **Activated** and save.
## Verify it worked
Open checkout and confirm the new label appears. If you used conditions, also check a cart that should **not** match still shows the original.
## Limitations
- **Any method named by a logo** — Shop Pay, Apple Pay, Google Pay, and **all wallets**.
- **The Shopify native gift card field.**
- **The credit card option, in the US and Canada**, unless you are on Shopify Plus.
These are platform restrictions applying to every app in this category. The US/Canada one is worth reading in full, because a rename there **fails silently** rather than erroring — see [Shopify limitations](/docs/reference/shopify-limitations/).
Renaming also does not change anything in your Shopify admin, order exports or customer emails — the new label is a checkout display name only.
## Worth renaming
| Original | Better | Why |
|---|---|---|
| Credit Card | Debit / Credit Card | The field takes both; debit-only shoppers often assume it doesn't |
| Manual Payment | Pay by Invoice (Net 30) | Vague label to a clear commercial term |
| Cash on Delivery | Pay at your door | Plainer language for the customer |
| Bank Deposit | Bank Transfer (2–3 days) | Sets the expectation up front |
### FAQ
**Does renaming change how the payment is processed?**
No. Only the label changes. The gateway, fees and settlement are all untouched.
**Why can't I rename PayPal or Apple Pay?**
Their names are logos rather than text, so there is nothing for an app to replace. Shopify applies this to all wallets and to the native gift card field.
**Can I rename one method differently per country?**
Yes. Build one rename rule per country group and add a Shipping country condition to each.
**How many methods can one rule rename?**
As many as you like — each gets its own renaming pair inside the same rule.
## Rename shipping methods
Source: https://btbcheckoutrules.com/docs/shipping-methods/rename/
Type: how-to
Answer: Create a Rename rule on Shipping Method and add a renaming pair — the current rate label and the one you want shown. The rate and its price are unchanged.
Applies to: All Shopify plans; Manual and carrier-calculated rates
Does NOT apply to: Order confirmations, packing slips and the Shopify admin — checkout only; Shopify POS
import DocCallout from '@/components/DocCallout.astro';
import DocVideo from '@/components/docs/DocVideo.astro';
import DocShot from '@/components/docs/DocShot.astro';
import DocInstallStep from '@/components/docs/DocInstallStep.astro';
Carrier-calculated rates arrive with names written for logistics staff, not shoppers — `UPS® Ground Saver` or `FEDEX_2_DAY_AM`. Renaming them is the cheapest clarity win at checkout.
## Before you start
- The exact rate label as your checkout currently shows it.
- The new label. Short is better — long names wrap awkwardly on mobile.
## Watch it instead
## Steps
**2.** From the dashboard, choose **Rename Shipping Method**.
**3.** Name the rule.
**4.** Under **Renaming Pairs**, click **Add renaming**. Enter the current label in **Original method** and the new one in **New name**.
**5.** Add more pairs to relabel several rates in one rule.
**6.** Add conditions if the label should vary by destination or customer.
**7.** Set **Rule Status** to **Activated** and save.
The new label appears at checkout. Order confirmations, packing slips, notification emails and your Shopify admin all keep the original rate name — worth knowing before support fields "why does my email say something different?".
## Verify it worked
Open checkout and confirm the label. If conditional, check a non-matching cart still shows the original.
## Worth renaming
| Original | Better | Why |
|---|---|---|
| Standard Shipping | Economy (5–7 days) | Sets the delivery expectation |
| FEDEX_2_DAY_AM | Express — arrives by noon | Carrier code to plain language |
| Economy International | International (10–15 days) | Removes the guesswork |
| Local Pickup | Collect in store — free | Says it costs nothing |
Add the transit time where you can. "Standard" tells a customer nothing; "5–7 days" answers the question they actually have.
### FAQ
**Does the new name appear on the order confirmation?**
No. Renamed carrier labels appear at checkout only. Your admin, packing slips and notification emails keep the original rate name.
**Can I rename carrier-calculated rates?**
Yes — a rate returned by a carrier can be renamed like any other, which is the main reason to use this at all.
**Can the name differ by country?**
Yes. Build one rename rule per country group with a Shipping country condition on each.
## Reorder payment methods
Source: https://btbcheckoutrules.com/docs/payment-methods/reorder/
Type: how-to
Answer: Create a Reorder rule, add the methods you want to prioritise, and drag them into order. The top item appears first at checkout; anything you do not list appears after them.
Applies to: All Shopify plans; Methods in the payment list
Does NOT apply to: Wallets — Shopify does not allow reordering any of them; The credit card option in the US and Canada, without Shopify Plus; Express buttons, which sit in their own row above the list
import DocCallout from '@/components/DocCallout.astro';
import DocVideo from '@/components/docs/DocVideo.astro';
import DocShot from '@/components/docs/DocShot.astro';
import DocInstallStep from '@/components/docs/DocInstallStep.astro';
import DocClip from '@/components/docs/DocClip.astro';
Order matters more than it looks. The first option carries most of the volume, so promoting a lower-fee method is one of the few checkout changes with a direct margin effect.
## Before you start
- The exact labels of the methods you want to position, copied from your live checkout.
- The order you want them in.
## Watch it instead
## Steps
**2.** From the dashboard, choose **Reorder Payment Method**.
**3.** Name the rule.
**4.** Add the methods you want to position. You only need the ones you care about.
**5.** In **Display Order**, drag the rows using the handle on the left. The top row appears first at checkout. Prefer typing? Use **Edit positions manually**.
**6.** To push something down instead, use **Move to bottom** — it pins last and shows a **Last** badge.
**7.** Add conditions if the order should differ by market or customer.
**8.** Set **Rule Status** to **Activated** and save.
Anything you leave out still appears at checkout — just after the methods you ordered. Reordering never hides anything.
## Verify it worked
Open checkout and confirm the sequence. If you used conditions, check a non-matching cart still shows your normal order.
## Limitations
- **Wallets cannot be reordered at all.** Shopify allows removing them from the Express or payment section, but not repositioning them. That covers PayPal, Apple Pay, Google Pay and Shop Pay.
- **In the US and Canada**, non-Plus stores cannot reorder the credit card option — the operation is ignored at checkout with no error. See [Shopify limitations](/docs/reference/shopify-limitations/).
- Express buttons sit above the list entirely and are not part of this ordering.
- Rules do not run in Shopify POS.
## Common setups
| Goal | How |
|---|---|
| Push customers toward a lower-fee method | Put it first |
| Deprioritise COD on high-value carts | Move to bottom + Cart subtotal ≥ threshold |
| Local method first per market | One rule per country group, Shipping country condition |
| Promote wallets | Move express payments to the top |
### FAQ
**Do I have to list every method?**
No. List only the ones you care about. Everything else keeps its usual order, below the ones you positioned.
**Can I push a method to the bottom without ordering the rest?**
Yes — add it and use Move to bottom. It gets pinned last and carries a "Last" badge in the editor.
**Does the order affect which method is preselected?**
Checkout generally preselects the first available option, so promoting a method usually also makes it the default. Test it rather than assuming.
## Reorder shipping methods
Source: https://btbcheckoutrules.com/docs/shipping-methods/reorder/
Type: how-to
Answer: Create a Reorder rule on Shipping Method, add the rates you want to position, and drag them into order. The top item appears first; rates you do not list follow after.
Applies to: All Shopify plans; Manual and carrier-calculated rates
Does NOT apply to: Shopify POS; Changing rate prices — that stays in Shopify
import DocCallout from '@/components/DocCallout.astro';
import DocVideo from '@/components/docs/DocVideo.astro';
import DocShot from '@/components/docs/DocShot.astro';
import DocInstallStep from '@/components/docs/DocInstallStep.astro';
import DocClip from '@/components/docs/DocClip.astro';
Shopify orders rates by price by default, which is not always what you want — the cheapest option is often the slowest, and leading with it can push delivery dates past what the customer expected.
## Before you start
- The exact rate labels from your live checkout.
- The order you want them in.
## Watch it instead
## Steps
**2.** From the dashboard, choose **Reorder Shipping Method**.
**3.** Name the rule.
**4.** Add the rates you want to position.
**5.** In **Display Order**, drag rows by the handle. The top row appears first at checkout. **Edit positions manually** lets you type the numbers instead.
**6.** Use **Move to bottom** to pin something last.
**7.** Add conditions if the order should vary.
**8.** Set **Rule Status** to **Activated** and save.
Rates you leave out are not hidden — they appear after the ones you ordered. Reordering never removes anything.
## Verify it worked
Open checkout and confirm the sequence, and check which rate is preselected — promoting a rate usually changes the default too.
## Common setups
| Goal | How |
|---|---|
| Lead with free shipping | Move Free Shipping to the top |
| Push a faster paid option | Put Express first; it often lifts average shipping revenue |
| Deprioritise slow economy rates | Move to bottom |
| Local pickup first for nearby customers | Shipping ZIP is one of your local codes |
| Different order per market | One rule per country group |
### FAQ
**Does the first rate become the default selection?**
Checkout generally preselects the first available rate, so promoting one usually makes it the default too. Worth testing rather than assuming.
**Do I need to list every rate?**
No. List only the ones you want positioned; the rest keep their usual order below them.
**Can the order differ by country?**
Yes — one rule per country group with a Shipping country condition on each.
## Hide express checkout buttons
Source: https://btbcheckoutrules.com/docs/payment-methods/express-buttons/
Type: how-to
Answer: Express buttons sit in their own row above the payment list, so they are targeted as their own methods. Add the button by name to a Hide rule; hiding the underlying payment method will not remove it.
Applies to: Apple Pay, Google Pay, Shop Pay and PayPal Express; All Shopify plans
Does NOT apply to: Ordinary methods in the payment list; Shopify POS
import DocCallout from '@/components/DocCallout.astro';
import DocFigure from '@/components/docs/DocFigure.astro';
import CheckoutSurfaces from '@/components/docs/diagrams/CheckoutSurfaces.astro';
## Why they need their own rule
Checkout has two separate places a payment option can appear:
| Surface | What lives there |
|---|---|
| **Accelerated row**, above the "or" divider | Apple Pay, Google Pay, Shop Pay, PayPal Express |
| **Payment method list**, below it | Credit cards, COD, Klarna, gateways, PayPal |
A rule aimed at the list never reaches the accelerated row. So a wallet can legitimately be hidden *and* visible at once — gone from the list, still a button above it.
## Before you start
- Which buttons you want gone, named exactly as your checkout labels them.
- A device where the wallet actually appears, for testing. Apple Pay only renders on Apple devices in Safari.
## Steps
**1.** Create a **Hide** rule on **Payment Method**.
**2.** Add the button by name, exactly as your checkout labels it — `Apple Pay`, `Google Pay`, `Shop Pay`.
**3.** To remove PayPal completely, hide **both** the PayPal method and the PayPal Express button.
**4.** Add conditions to scope it, then Activate.
Express buttons convert well precisely because they skip the form. Removing them everywhere has a real cost. The good reasons are narrow — a product type or destination the wallet cannot handle — and in that case use conditions rather than a blanket rule.
## Verify it worked
Test on a device where the wallet actually appears. Apple Pay only renders on Apple devices in Safari, so checking from Windows shows it missing whether your rule works or not — a false pass, and the button comes back for exactly the customers you built the rule for.
Then confirm the accelerated row no longer shows it, and the list below is as you expect.
### FAQ
**Why is this separate from hiding a payment method?**
Shopify renders accelerated checkout in its own region above the standard payment section. It is a distinct surface, so the two are controlled independently.
**I hid PayPal but PayPal Express is still showing.**
Those are two different things — the PayPal method in the list, and the PayPal Express button in the accelerated row. Removing PayPal entirely means hiding both.
**Will this hurt conversion?**
Very possibly. Express buttons are among the highest-converting elements on checkout because they skip most of the form. Scope the rule with conditions rather than removing them store-wide.
## How to hide Cash on Delivery above a cart total
Source: https://btbcheckoutrules.com/docs/hide-cod-above-cart-total/
Type: how-to
Answer: Create a hide rule on Cash on Delivery with one Cart subtotal condition set to Greater than or equal. COD then disappears above your threshold and stays available below it.
Applies to: All Shopify plans; Any manual or offline payment method, not just COD; Online checkout and draft order checkouts
Does NOT apply to: Shopify POS; Express checkout buttons
import DocCallout from '@/components/DocCallout.astro';
import DocShot from '@/components/docs/DocShot.astro';
import DocInstallStep from '@/components/docs/DocInstallStep.astro';
High-value COD orders carry the most return-to-origin risk, so capping COD at a threshold is one of the most common rules merchants build.
## Before you start
- The exact COD label from your live checkout — usually `Cash on Delivery (COD)`.
- Your threshold, in store currency.
## Steps
**2.** Go to **Apps → Nex Reorder → Create rule**. Choose **Payment Method**, then **Hide**.
**3.** Name it for what it does — `Hide COD at or above 500`.
**4.** Type the COD label into the method field and select it. Paste it from your live checkout rather than typing from memory.
**5.** Click **Add Condition** → **Cart subtotal**, operator **Greater than or equal**, then your threshold.
Cart total includes what Shopify adds on top. Build the threshold on total and a $470 cart tips over a $500 limit once shipping is added — COD vanishes for an order you meant to allow.
**6.** Set **Rule Status** to **Activated** and save. Read the **Rule preview** first; it catches an inverted threshold faster than testing does.
## Verify it worked
1. Build a cart **at or above** your threshold — COD should be gone.
2. Build one **below** it — COD should still be there.
Do both. An inverted operator hides COD on every small order and allows it on every large one, and looks fine until you check the second case.
## Limitations
- Hides COD from the payment method list only.
- Rules do not run in Shopify POS.
- The admin draft order screen shows the unmodified list; the rule applies when the customer opens the checkout link.
## Troubleshooting
**COD still shows above the threshold.** The label in the rule doesn't match your checkout exactly. Copy and paste it.
**COD is hidden on every order.** Check the operator — **Less than** where you wanted **Greater than or equal** inverts the rule.
**Works for me but not for a customer.** On a multi-currency store the threshold is evaluated in the cart's currency. Add a **Cart currency** condition, or build one rule per market.
### FAQ
**Should I use cart total or cart subtotal?**
Subtotal in most cases. Total includes what Shopify adds on top, so a threshold built on total can trigger on a cart whose items are worth less than your limit once shipping is added.
**Can I hide COD by country as well?**
Yes. Add a Shipping country condition to the same rule and set the match type to All Conditions Pass.
**Does this work for other payment methods?**
Yes — only the method name changes. The same rule shape works for bank transfer, money order, or any gateway.
## Import & export
Source: https://btbcheckoutrules.com/docs/import-export/overview/
Type: reference
Answer: Any rule can be exported as a JSON file and imported into another store running the app. Imports are validated and previewed, so you see what will be created before anything is saved.
Applies to: All Shopify plans; One rule per file
Does NOT apply to: Rule files from other apps; Bulk transfer of a whole store at once
Rules are portable. Each one exports as a self-contained JSON file that can be imported into any store running the app.
| Task | Guide |
|---|---|
| Download a rule as a file | [Export a rule](/docs/import-export/export/) |
| Bring a rule in from a file | [Import a rule](/docs/import-export/import/) |
| Understand a partial import | [Why parts were skipped](/docs/import-export/skipped-parts/) |
## What it is good for
- **Dev store to live.** Build and test somewhere harmless, then move the finished rule.
- **Backups before risky edits.** Switching a rule's condition set clears its conditions with no undo.
- **Agencies.** Roll the same setup across many client stores without rebuilding it each time.
- **Support.** A rule file tells support far more than a screenshot.
## The one thing to expect
A rule can reference things that only exist on the store it was built on — specific products, collections, customer tags. Those references do not always resolve elsewhere.
The importer handles this by checking every part, importing what it can, and telling you plainly what it had to leave out. It will not quietly create a rule that looks right and behaves differently.
### FAQ
**Is this how I copy a whole store setup?**
It is one rule per file, so a ten-rule store is ten exports. Tedious for a big migration, but reliable — each import is validated on its own.
**Do imported rules go live immediately?**
No. An imported rule lands in the editor for review and follows the same Activate step as any other rule.
## Managing rules
Source: https://btbcheckoutrules.com/docs/managing-rules/rules-list/
Type: reference
Answer: All Rules shows everything you have built. Filter by method type, toggle a rule between Active and Draft, edit it, or delete it. Only Active rules run at checkout.
Applies to: All Shopify plans; Payment and shipping rules, standard and advanced
Does NOT apply to: Shopify POS
import DocCallout from '@/components/DocCallout.astro';
import DocShot from '@/components/docs/DocShot.astro';
## The list
**All Rules** shows everything you have built, with tabs for **Active Rules** and **All Rules** so you can see at a glance what is actually running.
Each row shows the rule name, its action, whether it is payment or shipping, its type, and its status.
## Filters
| Filter | Shows |
|---|---|
| All | Everything |
| Payment | Payment rules built in the current editor |
| Shipping | Shipping rules built in the current editor |
| Adv. Payment | Payment rules from the legacy advanced editor |
| Adv. Shipping | Shipping rules from the legacy advanced editor |
## Row actions
- **Edit** — opens the rule. Clicking anywhere on the row does the same.
- **Toggle status** — flips between Active and Draft without opening it.
- **Delete** — permanent, with a confirmation first.
- **Export rule** — downloads it as JSON. See [import & export](/docs/import-export/overview/).
There is no archive and no bin. If a rule might be needed again, toggle it to Draft instead — it stops applying at checkout but stays on the list. Or export it first.
## Standard and Advanced
Rules built in the current editor are **Standard**. Rules from the earlier advanced editor show as **Advanced**, and open there for editing — the row tooltip says so.
Both run at checkout the same way. The distinction is only about which editor built the rule.
## Keeping the list readable
Names are what you will navigate by once there are more than a handful. `Hide COD over $500 (BR only)` tells you what it does a year later; `Rule 4` does not. Rename anything that has drifted — it costs nothing and the name is the only thing shown in the list.
### FAQ
**What is the difference between Standard and Advanced?**
Standard rules are built in the current editor. Advanced ones use the legacy editor for more complex logic, and are filtered separately as Adv. Payment and Adv. Shipping.
**Does deleting a rule affect past orders?**
No. Rules only affect what appears at checkout going forward. Orders already placed are untouched.
**How many rules can I have?**
The app does not cap the total, but your plan may cap it per method type, and Shopify allows 25 active customizations per type across all apps.
## Payment methods
Source: https://btbcheckoutrules.com/docs/payment-methods/overview/
Type: reference
Answer: You can do three things to a payment method: hide it, rename it, or change where it appears in the list. Each is a separate rule, and rules stack.
Applies to: All Shopify plans; Every method at your checkout, including third-party gateways
Does NOT apply to: Shopify POS; Creating payment methods — the app controls existing ones only
import DocCallout from '@/components/DocCallout.astro';
import DocFigure from '@/components/docs/DocFigure.astro';
import MiniCheckout from '@/components/MiniCheckout.astro';
import CheckoutSurfaces from '@/components/docs/diagrams/CheckoutSurfaces.astro';
import DocClip from '@/components/docs/DocClip.astro';
## The three actions
| Action | What it does | Guide |
|---|---|---|
| **Hide** | Removes a method from checkout | [Hide payment methods](/docs/payment-methods/hide/) |
| **Rename** | Changes the label only; processing is unchanged | [Rename payment methods](/docs/payment-methods/rename/) |
| **Reorder** | Sets which methods appear first | [Reorder payment methods](/docs/payment-methods/reorder/) |
Each rule performs exactly one action on one method type. Need to hide one method *and* promote another? That is two rules, and they stack.
## Two surfaces, not one
Checkout shows payment options in two separate places, and they are controlled independently:
| Surface | What lives there |
|---|---|
| **Accelerated row**, top of checkout | Apple Pay, Google Pay, Shop Pay, PayPal Express |
| **Payment method list**, below it | Credit cards, COD, Klarna, bank transfer, gateways, PayPal |
Hiding a wallet from the list does not remove its express button. This catches nearly everyone once — see [hiding express buttons](/docs/payment-methods/express-buttons/).
## What each action can and cannot touch
Wallets and any method named by a logo — Shop Pay, Apple Pay, Google Pay — cannot be renamed, nor can the Shopify gift card field. Wallets also cannot be reordered, only removed.
And the big one: **in the US and Canada, non-Plus stores cannot hide, rename or reorder the credit card option at all** — Shopify ignores those operations silently. All platform limits, not app limits. See [Shopify limitations](/docs/reference/shopify-limitations/).
Hiding and reordering have no such exceptions: anything in the list can be hidden, and anything can be moved.
## Targeting who sees the change
Every rule takes optional conditions — cart value, customer, products, destination, discounts. With no conditions, the rule applies to every checkout.
See [how conditions work](/docs/reference/conditions/) for all 23.
### FAQ
**Can one rule both hide and reorder?**
No — each rule is one action. Build two rules; they stack and are evaluated independently.
**Does the app add new payment methods?**
No. It controls which of your existing methods appear, what they are called and in what order. Adding a method is done in Shopify Settings → Payments.
## Condition reference — all 23 conditions
Source: https://btbcheckoutrules.com/docs/reference/conditions/
Type: reference
Answer: There are 23 conditions across five groups — Customer, Cart, Products, Location and Discounts. Each rule draws from a single condition set, and a rule with no conditions applies to every checkout.
Applies to: Payment and shipping rules alike; All three condition sets
Does NOT apply to: Conditions from two different sets in the same rule
import DocCallout from '@/components/DocCallout.astro';
import DocShot from '@/components/docs/DocShot.astro';
## Customer (4)
| Condition | Operators | Value |
|---|---|---|
| Customer tag | Is one of · Is not one of | Tags from your store |
| Customer total spent | Numeric · Between | Amount |
| Customer order count | Numeric · Between | Number |
| Customer is logged in | Is true · Is false | — |
## Cart (5)
| Condition | Operators | Value |
|---|---|---|
| Cart total | Numeric · Between | Amount |
| Cart subtotal | Numeric · Between | Amount |
| Items in cart | Numeric · Between | Number |
| Cart currency | Is one of · Is not one of | Currency code |
| Cart attribute | Equals · Contains · Is empty (+ negations) | Key + value |
Subtotal is the value of the items; total includes what Shopify adds on top. A "$500 or more" rule built on total will trigger on a $470 cart once shipping is added.
## Products (7)
| Condition | Operators | Value |
|---|---|---|
| Product tag in cart | Is one of · Is not one of | Tags |
| Product vendor | Is one of · Is not one of | Vendors |
| Product title | Equals · Contains · Starts with · Ends with (+ negations) | Text |
| Variant name | Is one of · Is not one of | Variants |
| Product in cart | Is one of · Is not one of | Specific products |
| Collection in cart | Is one of · Is not one of | Collections |
| Quantity of product | Numeric | Product + number |
Product conditions match if **any** item in the cart satisfies them — not only when every item does.
## Location (5)
| Condition | Operators | Value |
|---|---|---|
| Customer country | Is one of · Is not one of | Countries |
| Shipping country | Is one of · Is not one of | Countries |
| Shipping state / province | Is one of · Is not one of | Text |
| Shipping ZIP / postal code | Is one of · Equals · Starts with · Contains (+ negations) | Codes |
| Shipping method | Is one of · Is not one of | Shipping options |
Customer country comes from the customer's own address; shipping country is where the order is going. They diverge on gifts and business shipments. For anything delivery-related, use shipping country.
## Discounts (2)
| Condition | Operators | Value |
|---|---|---|
| Discount applied | Is true · Is false | — |
| Total discount amount | Numeric · Between | Amount |
## Operators
| Operator | Meaning |
|---|---|
| Equals / Does not equal | Exact match |
| Contains / Does not contain | Substring match |
| Starts with / Ends with | Prefix or suffix |
| Is empty / Is not empty | No value input needed |
| Greater than / Less than | Strict comparison |
| Greater than or equal / Less than or equal | Inclusive comparison |
| Between | Inclusive range, two values |
| Is one of / Is not one of | List membership |
| Is true / Is false | Boolean, no value input |
Unsure what a term means? The [glossary](/docs/reference/glossary/) has plain definitions.
"Numeric" above means Greater than, Less than, ≥, ≤, Equals and Does not equal. Not every operator is offered on every condition — see each group's table.
## Condition sets
| Set | Covers |
|---|---|
| **General Rules** | Cart value, customer, location, discounts |
| **Product-Based Rules** | Products, collections, items in cart |
| **Advanced & Custom Rules** | Cart attributes, applied discounts, address details, custom fields |
A condition can belong to several sets — Cart total is in all three — which is why the picker changes when you switch.
Changing the set on a rule you've already built discards its conditions, with a confirmation first. Decide the set before you build the rule out.
## Limits
- **Conditions per rule** is capped. The **Add Condition** modal shows your remaining slots — check there rather than assuming a number.
- **Cart attribute** is capped at **two per rule**, separately from the overall cap.
- **Active rules per store** is a Shopify limit: 25 payment and 25 delivery customizations, counted across *every* app. See [platform support](/docs/reference/platform-support/#shopify-limits).
### FAQ
**What happens if I add no conditions?**
The rule applies to every checkout. The editor states this directly.
**Why does a condition I need not appear in the list?**
It belongs to a different condition set. The editor hints at this with "Don't see the condition you need? Switch sets."
**Can I use the same condition twice in one rule?**
Generally yes, subject to the per-rule cap. Cart attribute is the exception — a maximum of two per rule.
## Shipping methods
Source: https://btbcheckoutrules.com/docs/shipping-methods/overview/
Type: reference
Answer: You can hide a shipping rate, rename it, or change where it sits in the list. The rate itself is untouched — this changes what checkout shows, not what Shopify charges.
Applies to: All Shopify plans; Manual rates and carrier-calculated rates
Does NOT apply to: Creating or pricing rates — that stays in Shopify Settings → Shipping; Shopify POS
import DocCallout from '@/components/DocCallout.astro';
import DocFigure from '@/components/docs/DocFigure.astro';
import MiniCheckout from '@/components/MiniCheckout.astro';
import ShippingPipeline from '@/components/docs/diagrams/ShippingPipeline.astro';
## The three actions
| Action | What it does | Guide |
|---|---|---|
| **Hide** | Removes a rate from checkout | [Hide shipping methods](/docs/shipping-methods/hide/) |
| **Rename** | Changes the label only | [Rename shipping methods](/docs/shipping-methods/rename/) |
| **Reorder** | Sets which rate appears first | [Reorder shipping methods](/docs/shipping-methods/reorder/) |
Each rule is one action. Stack rules to combine them.
## What this does not do
Creating a rate, pricing it, and setting which zones it covers all remain in **Settings → Shipping**. This app decides what checkout *shows* from the rates Shopify has already calculated. If a rate is missing at checkout, first confirm Shopify is returning it at all — a shipping zone gap looks identical to a hide rule from the customer's side.
## Presets
The method picker offers the labels most stores use — Standard Shipping, Express Shipping, Free Shipping, Local Pickup and Overnight. They are a shortcut, not a fixed list: if your rates are named differently, type the exact label from your checkout instead.
## Targeting
Shipping rules take the same 23 conditions as payment rules. The ones that come up most here are **Shipping country**, **Shipping state / province** and **Shipping ZIP / postal code**, since shipping decisions are usually about destination.
There is also a **Shipping method** condition, which lets one rule react to which rate is selected.
### FAQ
**Does this change what the customer is charged?**
No. Rates and prices live in Shopify Settings → Shipping. This controls which of them appear at checkout, what they are called and in what order.
**Does it work with carrier-calculated rates?**
Yes. Rates returned by a carrier can be hidden, renamed and reordered like any other.
**What if I hide every shipping method?**
The customer cannot complete checkout. That is occasionally deliberate — blocking a destination you do not serve — but be sure it is what you intend.
## Templates
Source: https://btbcheckoutrules.com/docs/templates/overview/
Type: reference
Answer: The template gallery holds ready-made rules for common scenarios. Pick one and it fills the editor with the methods, conditions and settings already configured, ready for you to adjust.
Applies to: All Shopify plans, though some templates are plan-gated; Payment and shipping rules
Does NOT apply to: Applying a template without reviewing it — it always lands in the editor first
import DocShot from '@/components/docs/DocShot.astro';
Most rules merchants build fall into a handful of shapes. The gallery has those pre-filled, so you start from something working rather than an empty editor.
## What's covered
| Type | Examples |
|---|---|
| **Hide payment** | Shopify Payments by country · COD by country · COD above a cart total · COD by customer tag · a method for tagged products · express payment methods |
| **Rename payment** | Cash on Delivery · a method by country · B2B labels for wholesale customers |
| **Reorder payment** | COD to the bottom · PayPal first · preferred methods by country · express payments to the top · COD down on high-value orders |
| **Hide shipping** | Free Shipping except selected countries · Overnight below a cart total |
| **Rename shipping** | Standard to Economy · Express by country |
| **Reorder shipping** | Free Shipping to the top · Overnight first for domestic |
Every category also has a **Start from blank** option, which is just the normal empty editor.
## How applying works
Picking a template fills the editor with its methods, conditions and match type. Nothing is saved. You review it, change what you need — most templates have a threshold or country list to set — and activate when ready.
If the editor already has a rule in progress, you are asked to confirm before it is replaced.
## Templates on the marketing site
The [templates gallery](/templates/) on this site mirrors the in-app catalogue and offers each one as a downloadable JSON. That is useful when you want to inspect a rule before applying it, or hand one to someone else — see [import a rule](/docs/import-export/import/).
### FAQ
**Does applying a template create the rule immediately?**
No. It fills the editor. You still name it, adjust it and activate it yourself.
**Why is a template showing "Upgrade"?**
Its action is not enabled on your plan — the six hide/rename/reorder capabilities are gated separately for payment and shipping.
**Can I make my own templates?**
Not inside the app, but exporting a rule gives you a reusable file that imports into any store. That covers the same need.
## Condition sets
Source: https://btbcheckoutrules.com/docs/conditions/condition-sets/
Type: reference
Answer: A rule uses one condition set — General, Product-Based, or Advanced & Custom. Each exposes a different list of conditions, and switching sets on an existing rule clears the conditions you have already added.
Applies to: Every payment and shipping rule
Does NOT apply to: Mixing conditions from two sets in one rule
import DocCallout from '@/components/DocCallout.astro';
import DocClip from '@/components/docs/DocClip.astro';
import DocFigure from '@/components/docs/DocFigure.astro';
import ConditionSets from '@/components/docs/diagrams/ConditionSets.astro';
## The three sets
| Set | Covers | Reach for it when |
|---|---|---|
| **General Rules** | Cart value, customer, location, discounts | The common case — most rules live here |
| **Product-Based Rules** | Products, collections, items in the cart | The rule depends on *what* is being bought |
| **Advanced & Custom Rules** | Cart attributes, applied discounts, address details, custom fields | You need cart attributes or custom data |
Some conditions appear in more than one set — **Cart total** is in all three — while others belong to just one. **Product title** is Product-Based only; **Cart attribute** is Advanced only.
## Pick the set first
Changing the set on a rule you have already built discards every condition on it. The editor asks you to confirm first, but there is no undo. Decide the set before you start adding conditions, not halfway through.
The practical approach: look at what your rule needs to check. If it is only cart value, customer or destination, stay on General. The moment you need a product, collection or variant, switch to Product-Based **before** building anything else.
## What the set actually changes
Behind the scenes, the set decides which Shopify Function the rule runs on. There is a separate function for each combination of method type and set — six in total.
That matters for one reason: Shopify caps each store at **25 active payment customizations and 25 active delivery customizations**, counted across every installed app. Rules in different sets draw on the same allowance for their method type, so mixing sets does not buy you more room.
See [platform support](/docs/reference/platform-support/#shopify-limits).
## Advanced conditions are flagged
When a rule uses cart attributes or applied discounts, the editor shows an **Advanced conditions enabled** banner. That is informational, not a warning — it tells you the rule is on the Advanced set so the presence of unusual conditions is not a surprise later.
### FAQ
**Why can I not see the condition I need?**
It belongs to a different set. The editor hints at this with "Don't see the condition you need? Switch sets."
**Does the set affect how the rule behaves at checkout?**
Not in how it evaluates. It does determine which underlying Shopify Function the rule runs on, and each active rule consumes one of Shopify's 25 customization slots for its method type.
**Can I change the set later?**
Yes, but it clears the conditions on the rule. You will be asked to confirm.
## How rules are evaluated at checkout
Source: https://btbcheckoutrules.com/docs/reference/how-rules-are-evaluated/
Type: reference
Answer: Every activated rule is tested independently against each checkout, and the Condition Match Type decides whether all conditions must pass or just one. Where rules overlap, hiding wins — a hidden method cannot be renamed or moved.
Applies to: All activated payment and shipping rules; Online checkout and draft order checkouts
Does NOT apply to: Rules not set to Activated — saved but inert; Shopify POS
import DocCallout from '@/components/DocCallout.astro';
## What happens on each checkout
Shopify calls the app with the current cart, customer and shipping address. Each **Activated** rule is then tested on its own:
1. Do the rule's conditions pass, per its match type?
2. If yes, the action — hide, rename or reorder — applies to the named methods.
Rules that are saved but not Activated are skipped entirely.
## Match type within a rule
- **All Conditions Pass** — every condition must be true (AND). Adding conditions makes the rule *narrower*.
- **Any Condition Passes** — one is enough (OR). Adding conditions makes it *broader*.
Adding conditions to an "Any" rule widens it. Merchants often add a second condition expecting to tighten a rule that fires too often — and it fires more often instead. If a rule is over-applying, check the match type before touching the conditions.
A rule with **no conditions** always fires. That's the right setup for something unconditional, like always putting Free Shipping first.
## Condition sets
A rule pulls its conditions from exactly one set — General, Product-Based, or Advanced & Custom. This is a property of the rule, which is why the picker's contents change when you switch.
Some conditions appear in several sets (Cart total is in all three), others in only one (Product title is Product-Based only). If a condition you expect is missing, you're in the wrong set.
Switching sets **clears the conditions already on the rule**, with a confirmation first.
## When several rules touch the same method
Rules are independent, not sequential — there is no priority to set. Where effects overlap:
| Combination | Result |
|---|---|
| Hide + rename | Hidden. Nothing left to rename. |
| Hide + reorder | Hidden, and the rest close the gap. |
| Rename + reorder | Both apply. |
| Two hides | Hidden if either rule's conditions pass. |
| Two renames | Avoid — build one rename rule per method. |
Hiding is destructive and wins. When a method vanishes and you can't see why, look for a *second* hide rule before scrutinising the one you were working on.
## When changes take effect
Activating, editing or deactivating affects every checkout started from that moment. No cache to clear, no publish step.
The exception is a checkout the customer already has open — it keeps its original options until they refresh. Reload after each change when testing, or you'll read a stale page.
## Where rules run
- **Online checkout** and **draft order checkouts** the customer opens — yes.
- **Shopify POS** — no.
- **The cart page** — no; methods aren't chosen there.
- **The admin draft order screen** — no; the rule applies when the customer opens the link.
Full detail in [platform support](/docs/reference/platform-support/).
### FAQ
**In what order do my rules run?**
Treat them as independent rather than sequential. Each activated rule is tested on its own terms. Where outcomes interact, hiding takes precedence.
**What happens if two rules contradict each other?**
The more restrictive outcome wins — a method hidden by one rule stays hidden. If a method is disappearing unexpectedly, look for a second hide rule.
**Do rules slow down checkout?**
No. They run as native Shopify Functions inside Shopify's own infrastructure — no external calls, no extra scripts.
## Condition match type
Source: https://btbcheckoutrules.com/docs/conditions/match-type/
Type: reference
Answer: Condition Match Type decides whether every condition must be true (All) or just one (Any). All makes a rule narrower as you add conditions; Any makes it broader.
Applies to: Any rule with two or more conditions
Does NOT apply to: Rules with one condition — All and Any behave identically
import DocCallout from '@/components/DocCallout.astro';
import DocFigure from '@/components/docs/DocFigure.astro';
import MatchType from '@/components/docs/diagrams/MatchType.astro';
## The two options
| Setting | Meaning | Effect of adding conditions |
|---|---|---|
| **Only apply when All Conditions Pass** | Every condition must be true (AND) | Fires **less** often |
| **Only apply when Any Condition Passes** | One is enough (OR) | Fires **more** often |
A rule is firing too often, so you add a second condition to tighten it — and it fires even more. That is an "Any" rule doing exactly what it was told. Check the match type before touching the conditions.
## Which one you want
Ask what the conditions describe.
**Use All** when they describe one situation from several angles: "orders over $500 **and** going to Brazil". Both must be true for the rule to be right.
**Use Any** when they are alternatives: "customers tagged wholesale **or** customers tagged distributor". Either qualifies.
Most rules want **All**. Any is the exception, and worth a second look whenever you pick it.
## Worked examples
| Goal | Conditions | Match type |
|---|---|---|
| Hide COD on large orders to one country | Cart subtotal ≥ 500 · Shipping country is BR | All |
| Hide COD for either of two customer groups | Customer tag is one of `risky` · Customer tag is one of `chargeback` | Any |
| Free shipping first for domestic logged-in customers | Shipping country is US · Customer is logged in | All |
Note the second one is better written as a single condition — `Customer tag is one of risky, chargeback` — since **Is one of** already means "any of these". Reach for Any only when the conditions are genuinely different *fields*.
## With one condition
All and Any behave identically. The setting only starts to matter at two.
### FAQ
**My rule fires too often. Should I add another condition?**
Only if the match type is All. On Any, adding a condition makes it fire more often, not less — which is the opposite of what most people expect.
**Can I mix AND and OR in one rule?**
No. A rule is entirely All or entirely Any. For genuinely mixed logic, split it into two rules — they stack.
**What if I add no conditions at all?**
The rule applies to every checkout, whatever the match type says.
## Plans and limits
Source: https://btbcheckoutrules.com/docs/getting-started/plans-and-limits/
Type: reference
Answer: Your plan controls three things — which of the six actions are enabled, how many rules you can create per method type, and how many conditions fit in a single rule. Shopify sets a separate ceiling on top of that.
Applies to: All Shopify plans — Basic through Plus
Does NOT apply to: Shopify's own restrictions, which apply regardless of your subscription
import DocCallout from '@/components/DocCallout.astro';
import DocShot from '@/components/docs/DocShot.astro';
## What your plan controls
| Gate | Detail |
|---|---|
| **Actions** | Six capabilities, enabled independently: hide, rename and reorder — each for payment and for shipping |
| **Rules** | A maximum number of rules, applied **per method type** |
| **Conditions per rule** | A maximum number of conditions in any single rule |
A cap of five means five payment rules **and** five shipping rules. Merchants often assume it is a shared pool and think they have run out sooner than they have.
## Reading your own limits
Rather than quote numbers that depend on your subscription, the app shows them where they matter:
- **Locked actions** carry a lock icon on the dashboard card, with an upgrade prompt.
- **Condition slots** are shown in the **Add Condition** modal as you build — it tells you how many more you can add.
- **Rule caps** surface when you try to create one past the limit.
That is deliberately the source of truth. Your plan can change, and a number written in a doc goes stale silently.
## Shopify's limits are separate
On top of anything your plan says, Shopify caps every store at **25 active payment customizations** and **25 active delivery customizations**, counted across *all* installed apps.
So a rule can fail to activate for two quite different reasons, and they look identical from the admin:
| Symptom | Which limit |
|---|---|
| "Plan limit reached" | Your subscription |
| Rule activates but nothing happens at checkout | Possibly Shopify's ceiling, or a [platform restriction](/docs/reference/shopify-limitations/) |
[Rule will not activate](/docs/troubleshooting/rule-wont-activate/) walks through telling them apart.
## Making fewer rules go further
Before upgrading, it is worth checking whether the rules you have can be consolidated:
- **One rule, several methods.** A hide rule can name multiple methods at once.
- **Is one of, instead of several rules.** `Shipping country is one of BR, AR, CL` replaces three near-identical rules.
- **Pause what you are not using.** Draft rules do not run and do not consume Shopify's ceiling.
## Billing
Billing runs through the app's own subscription screen rather than Shopify's managed pricing. There is a free trial, and development stores get everything free — which makes a dev store the right place to try a setup before paying for it.
### FAQ
**How many rules can I create?**
It depends on your plan, and the cap applies per method type — a limit of five means five payment rules and five shipping rules, not five in total.
**How many conditions can one rule have?**
Also plan-dependent. The Add Condition modal shows your remaining slots as you build, which is more reliable than any number quoted here.
**Why is one action locked but not another?**
The six capabilities — hide, rename and reorder, for payment and for shipping — are enabled independently, so a plan can include hiding but not reordering.
**Is it free to try?**
There is a free trial, and the app is free with all features on Shopify development stores.
## Platform support — plans, POS, draft orders and Markets
Source: https://btbcheckoutrules.com/docs/reference/platform-support/
Type: reference
Answer: Everything works on all Shopify plans; only hiding the credit card fields in the US and Canada needs Plus. Rules apply at online and draft order checkouts, and never in Shopify POS.
Applies to: Basic, Shopify, Advanced and Shopify Plus; Online checkout and draft order checkouts; Stores using Shopify Markets
Does NOT apply to: Shopify POS; The cart page; The Shopify admin draft order screen
import DocCallout from '@/components/DocCallout.astro';
## Shopify plans
| Capability | Plan needed |
|---|---|
| Hide payment methods | All plans |
| Rename payment methods | All plans |
| Reorder payment methods | All plans |
| Hide, rename, reorder shipping methods | All plans |
| Hide, rename **or reorder** the credit card option in the US / Canada | Shopify Plus |
Plus is not required for anything on this list except the last row.
## Where rules run
| Surface | Rules apply? |
|---|---|
| Online checkout | Yes |
| Draft order checkout, opened by the customer | Yes |
| Draft order screen in the Shopify admin | No — customizations are not shown while you build it |
| Shopify POS | No — customization functions do not run in POS |
| Cart page | No — methods are chosen at checkout, not in the cart |
Building a draft order in the admin shows the unmodified method list, which reads like the rule has failed. It has not — the rule applies when the customer opens the checkout link. Test by sending yourself the link rather than judging from the admin screen.
## Shopify limits
Shopify — not the app — caps each store at:
- **25 active payment customization functions**
- **25 active delivery customization functions**
Both count across *every* app on the store, so another checkout app may already be using some of your allowance. If a rule refuses to activate, check this first. The app itself sets no limit.
## Wallets
Wallets — PayPal, Apple Pay, Google Pay, Shop Pay — can be **hidden**. They cannot be **renamed** or **reordered**: their names are logos rather than text, and Shopify does not allow repositioning them.
This applies to every app in the category. Full list in [Shopify limitations](/docs/reference/shopify-limitations/).
## Express checkout buttons
Accelerated buttons — Apple Pay, Google Pay, Shop Pay, PayPal Express — sit in a separate part of the checkout from the ordinary payment method list. They can be turned off, but hiding a wallet from the standard list does not remove its express button. See [express buttons still showing](/docs/troubleshooting/express-checkout-buttons-still-showing/).
## Shopify Markets
Rules apply at checkout whichever market the customer is in, including across currencies. Use **Shipping country** to make a rule market-specific, or **Cart currency** where currency is the real distinction.
## Checkout performance
Rules run as native Shopify Functions — no external calls, no third-party servers, no extra scripts. There is no measurable effect on checkout speed.
### FAQ
**Do I need Shopify Plus?**
No. Hiding, renaming and reordering payment and shipping methods works on all Shopify plans. The single Plus-only capability is hiding the credit card fields themselves in the US and Canada.
**Why can't I rename PayPal or Apple Pay?**
Wallets are named by a logo rather than text, so there is nothing to replace. They can still be hidden. This is a Shopify limitation, not an app restriction.
**How many rules can I have?**
The app does not limit rule count, but Shopify allows a maximum of 25 active payment customization functions and 25 active delivery customization functions per store, counted across every installed app. Most stores use three to ten.
**Does it work with Shopify Markets?**
Yes. Rules apply at checkout regardless of which market the customer is in. Use country conditions to build market-specific rules.
**What happened to Shopify Scripts?**
Shopify Scripts ran on the legacy checkout and has been superseded by Shopify Functions, which is what this app uses. Functions run on the current checkout, including Checkout Extensibility.
## Shopify limitations
Source: https://btbcheckoutrules.com/docs/reference/shopify-limitations/
Type: reference
Answer: Most things merchants cannot do are Shopify platform limits rather than app limits. The big one: in the US and Canada, non-Plus stores cannot hide, rename or reorder the credit card option at all — and those operations fail silently rather than showing an error.
Applies to: Every app built on the Payment and Delivery Customization APIs; All Shopify plans
Does NOT apply to: Caps on rules and conditions — those come from your subscription
import DocCallout from '@/components/DocCallout.astro';
Rules run on Shopify's **Payment Customization API** and **Delivery Customization API**. Whatever those expose is the ceiling for every app in this category, so the limits below are not specific to this app.
## The US and Canada credit card rule
Shopify limits payment customizations in those two countries to **non-credit-card methods**. You can hide, rename and reorder alternative methods normally — but any setting applied to the credit card fields simply will not apply at checkout.
This is **hide, rename *and* reorder**, not just renaming. Shopify Plus stores are exempt.
It is tied to where the **store** is based, not where the customer is. A US store on Basic cannot change the credit card option for anyone; a UK store on Basic can.
### It fails silently
This is the part that costs people hours. Per Shopify's documentation, when API usage is restricted the function still receives every payment method, but *"output operations that target restricted payment methods will not take effect on the checkout."*
So the rule saves, activates, shows as Active, and does nothing. No error, no warning. If you are in the US or Canada, not on Plus, and a credit card rule appears to be ignored — it is being ignored, by Shopify.
## Wallets and logo-named methods
| Limit | Detail |
|---|---|
| **Cannot be renamed** | Any method whose name is a logo — **Shop Pay, Apple Pay, Google Pay** — plus **all wallets** and the Shopify **native gift card field** |
| **Cannot be reordered** | Wallets. They can be *removed* from the Express or payment section, but not repositioned |
| **Inside Shop Pay** | Payment customizations do not apply to **any** method except the native gift card field |
That last one is easy to miss: a customer who checks out through Shop Pay does not get your payment rules at all.
## Hiding specific placements is Plus-only
Shopify's API can hide a method from one *placement* — say the Express row but not the payment list. That is Plus-only.
On non-Plus stores the placement setting is ignored and the **entire payment method is hidden from checkout**. Worth knowing if you expected a method to disappear from one place and stay in another.
## Point of Sale
Payment Customization Functions do not run in POS, and operations are not applied. The same is true of delivery customizations.
## Shipping and delivery
The Delivery Customization API supports **hide, rename and sort** on delivery options — carriers, local delivery and pickup.
| Limit | Detail |
|---|---|
| Ceiling | **25 active delivery customizations** per store, across all apps |
| PO Box detection | Only works for rates from **carrier services or third-party shipping apps**. On Shopify's built-in rates the address data needed to detect a PO Box may not reach the function |
| Renamed labels | Appear at checkout only — confirmations, packing slips and your admin keep the original rate name |
The app can only act on rates Shopify has already returned. A rate missing because of a shipping zone gap looks identical to one hidden by a rule.
## The 25-customization ceiling
- **25 active payment customizations**
- **25 active delivery customizations**
Counted across **every installed app**, not per app. Draft rules do not count, so pausing one frees a slot. See [rule will not activate](/docs/troubleshooting/rule-wont-activate/).
## What is *not* a Shopify limit
These look identical to platform limits from the merchant's side, but come from your subscription:
| Looks like Shopify | Actually your plan |
|---|---|
| "I can only make 5 rules" | Rule cap, applied per method type |
| "I can only add N conditions" | Per-rule condition cap |
| "Reorder is greyed out" | That action is not enabled on your plan |
## Things no checkout app can do
- Change what a method **charges**, or add a surcharge
- Create a payment method or shipping rate — those live in Shopify Settings
- Change methods **after** an order is placed
## Sources
- [Payment Customization Function API](https://shopify.dev/docs/api/functions/latest/payment-customization) and [About functions in payments](https://shopify.dev/docs/apps/build/checkout/payments)
- [Delivery Customization Function API](https://shopify.dev/docs/api/functions/latest/delivery-customization)
- [Checkout customization](https://help.shopify.com/en/manual/checkout-settings/checkout-customization#understanding-payment-method-customizations) in the Shopify Help Center
Shopify revises these APIs periodically. Verified against the above in August 2026.
### FAQ
**I am in the US on Basic. What can I actually do?**
Everything except the credit card option. Hide, rename and reorder work normally on alternative methods — COD, PayPal, Klarna, bank transfer, gateways. Only credit card operations are ignored.
**Why did my rule save and activate but do nothing?**
If it targeted a restricted method, Shopify accepts the rule and then ignores the operation at checkout. There is no error, which is why this is so confusing. See payment method still showing.
**Is this app more limited than its competitors?**
No. Everything here comes from Shopify's Payment Customization and Delivery Customization APIs, which every app in this category is built on. An app claiming to rename Apple Pay is describing something Shopify does not expose.
**Can I reorder Apple Pay or Shop Pay?**
No. Wallets can be removed from the Express or payment section, but Shopify does not allow reordering them.
## Glossary
Source: https://btbcheckoutrules.com/docs/reference/glossary/
Type: reference
Answer: Definitions for the terms these docs use. If a word in the app is unclear, it is probably here.
Applies to: Terminology used in the app and in these docs
## Terms
**Accelerated checkout / express buttons**
The row of wallet buttons above the payment section — Apple Pay, Google Pay, Shop Pay, PayPal Express. A separate surface from the payment method list, and controlled separately. See [hiding express buttons](/docs/payment-methods/express-buttons/).
**Action**
What a rule does: hide, rename or reorder. One action per rule.
**Condition**
A test a rule applies before it fires — cart subtotal, shipping country, product tag. A rule with none applies to every checkout. All 23 are in the [condition reference](/docs/reference/conditions/).
**Condition set**
Which group of conditions a rule can draw from: General, Product-Based, or Advanced & Custom. One set per rule, and [switching clears your conditions](/docs/conditions/condition-sets/).
**Customization**
Shopify's word for a checkout modification. A payment customization changes payment methods; a delivery customization changes shipping. Each active rule is one customization, and Shopify allows 25 of each per store.
**Delivery option**
Shopify's term for a shipping choice at checkout — a carrier rate, local delivery or pickup. These docs mostly say "shipping method", which is what the app calls it.
**Draft**
A saved rule that is not running. Rules only apply at checkout when set to **Activated**.
**Hide all**
A setting that removes every method of a type rather than named ones. Hiding all payment methods prevents checkout completion, which some merchants use deliberately.
**Match type**
Whether all conditions must pass or just one — "All Conditions Pass" (AND) or "Any Condition Passes" (OR). See [condition match type](/docs/conditions/match-type/).
**Method**
A payment option or shipping rate at checkout. The app matches methods by the exact label your checkout renders, which is why copy-and-paste beats retyping.
**Renaming pair**
An original method label and the new label to show instead. A rename rule can hold several.
**Rule**
One action, on one method type, applied to named methods, optionally gated by conditions.
**Rule preview**
The panel restating your rule in plain English as you build it. Worth reading before saving — it catches inverted logic faster than testing does.
**Shopify Functions**
The platform feature these rules run on. Functions execute inside Shopify's own infrastructure, so there are no external calls and no effect on checkout speed. They replaced Shopify Scripts.
**Shopify Scripts**
The legacy checkout customization system, superseded by Functions. Guidance written for the Scripts era does not describe what is possible now.
**Standard vs Advanced**
Where a rule was built. Standard rules use the current editor; Advanced ones use the earlier editor for more complex logic, and appear under the Adv. filters in the rules list.
## Getting started with Nex Reorder
Source: https://btbcheckoutrules.com/docs/getting-started/
Type: setup
Answer: Create a rule, pick a method type and an action, name the methods exactly as checkout shows them, then set Rule Status to Activated. Rules run as Shopify Functions, so they apply immediately with no theme edits.
Applies to: All Shopify plans — Basic, Shopify, Advanced and Plus; Online checkout and draft order checkouts; Payment methods and shipping methods
Does NOT apply to: Shopify POS — customization functions do not run there; The cart page — rules apply at checkout itself
import DocCallout from '@/components/DocCallout.astro';
import DocShot from '@/components/docs/DocShot.astro';
import DocClip from '@/components/docs/DocClip.astro';
import DocFigure from '@/components/docs/DocFigure.astro';
import RuleAnatomy from '@/components/docs/diagrams/RuleAnatomy.astro';
## Before you start
- The app installed — see step 1 below if you have not yet.
- The **exact name** of the method you want to change, copied from your live checkout.
## Step 1 — Open the rule editor
Go to **Apps → Nex Reorder**, then click **Create rule**.
The header shows what you are building — for example **Payment Method · Reorder**.
## Step 2 — Choose the method type and action
Every rule is one action on one method type:
| | Payment methods | Shipping methods |
|---|---|---|
| **Hide** | Remove Klarna, COD, PayPal, a gateway | Remove a rate or carrier |
| **Rename** | "Credit Card" → "Debit / Credit Card" | "Standard" → "Economy (5–7 days)" |
| **Reorder** | Put your lowest-fee method first | Put Free Shipping at the top |
Need two actions? Build two rules. They stack.
## Step 3 — Name the rule
**Rule Name** is required. "Hide COD over $500" beats "Rule 3" — when something misbehaves a year from now, the name is what tells you what it was for.
## Step 4 — Add the methods
Type the method name into the search field. Each match is added as a chip.
`Cash on Delivery (COD)` will match; `COD` alone may not. Copy the label from your live checkout and paste it. A near-miss saves cleanly, activates, and then does nothing.
Shipping rules also offer carrier presets — Standard, Express, Free Shipping, Local Pickup and Overnight.
For **Reorder**, drag the **Display Order** rows into place; the top item appears first at checkout.
## Step 5 — Add conditions (optional)
Conditions decide *when* the rule fires. Skip them and it applies to every checkout — right for something like always putting Free Shipping first.
To be selective, click **Add Condition** and pick from Customer, Cart, Products, Location or Discounts. Full list in the [condition reference](/docs/reference/conditions/).
Then set **Condition Match Type**:
- **All Conditions Pass** — every condition must be true (AND)
- **Any Condition Passes** — one is enough (OR)
Each rule draws from a single condition set. If the condition you want isn't listed, you're in the wrong set — and switching **clears the conditions you've already added**. Choose the set first.
## Step 6 — Activate
Set **Rule Status** to **Activated** and save. A rule in any other status is saved but inert.
The **Rule preview** panel restates the rule in plain English — read it before saving; it catches inverted logic faster than testing does.
## Verify it worked
1. Add a product that **should** trigger the rule, then check out.
2. Empty the cart, add one that should **not**, and confirm checkout is unchanged.
Step 2 is the one people skip. A condition that's slightly too broad looks identical to a working rule until you test the negative case.
The [template gallery](/docs/templates/using-the-gallery/) has ready-made rules for common scenarios — start from a working rule rather than an empty editor.
Unsure what a term means? The [glossary](/docs/reference/glossary/) has plain definitions for everything used in the app.
### FAQ
**Do I need Shopify Plus?**
No. Hiding, renaming and reordering works on every Shopify plan. The only Plus-only capability is hiding the credit card fields themselves in the US and Canada.
**Do I need to edit my theme or add code?**
No. Rules are built in the app and run as native Shopify Functions — no script to install, no theme file to touch.
**How long does a rule take to appear at checkout?**
Immediately once Activated. A checkout the customer already has open keeps the old options until they reload.
## The dashboard
Source: https://btbcheckoutrules.com/docs/getting-started/dashboard/
Type: setup
Answer: The dashboard is the launch point for everything. The stats row shows how many rules you have and how many are live, the action cards start a new rule in one click, and quick templates jump straight into a pre-filled rule.
Applies to: All Shopify plans
Does NOT apply to: Editing an existing rule — that starts from All rules
import DocCallout from '@/components/DocCallout.astro';
import DocShot from '@/components/docs/DocShot.astro';
## Overview
Four counts, covering the last 7 days:
| Stat | Means |
|---|---|
| **Active Rules** | Running at checkout right now |
| **Total Rules** | Everything you have built, active or draft |
| **Payment Rules** | Of that total, how many affect payment methods |
| **Shipping Rules** | And how many affect shipping |
The gap between Active and Total is what to watch. A rule sitting in draft that you meant to activate is invisible at checkout and easy to forget.
## Payment and Shipping tabs
Below the stats, a tab for each method type. Each holds three cards — **Hide**, **Rename** and **Reorder** — and clicking one opens a new rule with that action and method type already chosen.
It is the fastest way to start, and it is why every how-to here begins "from the dashboard, choose…".
A card with a lock is an action your plan does not include. The six capabilities are gated independently, so having some available and others locked is normal.
## Quick templates
A short row of the most common scenarios — hide Shopify Payments by country, rename Cash on Delivery, move COD to the bottom, hide Free Shipping for selected countries.
Clicking one fills the editor. **View all templates** opens the full gallery. See [using the template gallery](/docs/templates/using-the-gallery/).
## Help centre
Three routes out when you are stuck: 24/7 chat, these docs, and booking a call. Each rule editor also carries a **Need Help?** card with the tutorial video for that specific action.
## Where to go next
- [Create your first rule](/docs/getting-started/) if you have not yet.
- [All rules](/docs/managing-rules/rules-list/) to edit or pause something you built.
- [Plans and limits](/docs/getting-started/plans-and-limits/) if an action is locked.
### FAQ
**What does the Overview row count?**
Active Rules is what is running at checkout right now. Total Rules includes drafts. Payment and Shipping split the same total by method type.
**Some action cards have a lock icon.**
That action is not enabled on your plan. The six capabilities — hide, rename and reorder, each for payment and shipping — are gated separately.
**Can I restart the guided tour?**
Yes. The onboarding tour walks through the app in ten steps and can be restarted from the dashboard.
## Rule is not applying at checkout
Source: https://btbcheckoutrules.com/docs/troubleshooting/rule-not-applying/
Type: troubleshooting
Answer: Nine times out of ten the method name does not exactly match the label at checkout, or the rule was never set to Activated. Check those two before anything else.
Applies to: Rules that save successfully but have no effect; All Shopify plans
Does NOT apply to: Rules that will not save or activate at all — usually the Shopify customization limit
import DocCallout from '@/components/DocCallout.astro';
Ordered by how often each turns out to be the cause. The first two account for most cases — and cause 3 accounts for most of the rest if your store is in the US or Canada.
## 1. The method name does not match exactly
The rule matches the label you typed against what checkout renders. A near-miss saves, activates, and does nothing.
Open your live checkout, copy the label exactly — punctuation, capitalisation and all — and compare it to the chip in the rule. `Cash on Delivery (COD)` and `COD` are different strings; so are `Standard Shipping` and `Standard shipping`.
Copying from the live checkout eliminates this whole class of problem. Retyping from memory is how the mismatch gets introduced.
## 2. The rule is not Activated
A saved rule is not a live rule. **Rule Status** must read **Activated**.
## 3. Shopify is ignoring it (US / Canada, credit cards, non-Plus)
In the US and Canada, payment customizations on non-Plus plans are limited to non-credit-card methods. A rule targeting the credit card option is accepted, activated — and then discarded at checkout with no error.
Alternative methods are unaffected. See [Shopify limitations](/docs/reference/shopify-limitations/).
## 4. The Condition Match Type is inverted
- **All Conditions Pass** — more conditions, fires *less* often.
- **Any Condition Passes** — more conditions, fires *more* often.
Not firing when you expect? "All" plus one quietly-false condition will do it.
## 5. A condition is narrower than you think
| You used | It actually means |
|---|---|
| Cart total | Includes what Shopify adds on top |
| Cart subtotal | The items alone |
| Customer country | From the customer's own address |
| Shipping country | Where this order is going |
| Customer is logged in | False for guest checkout |
`Customer is logged in` is the frequent surprise — it silently skips every guest checkout, and guests are usually the majority. If the rule behaves for you but not for shoppers, [that difference is usually why](/docs/troubleshooting/works-for-me-not-customers/).
Also check that tag conditions match the tag as stored, including case.
## 6. You are testing a stale checkout
A checkout opened *before* the change keeps its original options. Close the tab, rebuild the cart, open checkout fresh.
## 7. The store has hit Shopify's limit
Shopify allows 25 active payment customizations and 25 active delivery customizations per store, across **all** apps. At the ceiling, new rules may not take effect. See [platform support](/docs/reference/platform-support/#shopify-limits).
## Still not working?
Send support two things and it's usually one reply: the **rule name** plus a screenshot of the editor with conditions visible, and the method label **copied from your live checkout**.
### FAQ
**The rule preview reads correctly but nothing happens. Why?**
The preview describes the rule's logic, not whether the method names match anything real at your checkout. A rule can read perfectly and still target a label that does not exist on your store.
**Do I need to clear a cache?**
No. Rules take effect immediately. What looks like caching is usually a checkout tab opened before the change — reload it.
**Could another app be interfering?**
Yes — another checkout app may be consuming part of Shopify's 25-customization allowance, or applying its own conflicting rule.
## Payment method still showing after hiding it
Source: https://btbcheckoutrules.com/docs/troubleshooting/payment-method-still-showing/
Type: troubleshooting
Answer: Three usual causes: it is an express button rather than the method itself, the method name does not match your checkout label, or you are in the US or Canada without Shopify Plus and targeting the credit card option — which Shopify ignores silently.
Applies to: Hide rules on payment methods; All Shopify plans
Does NOT apply to: Shipping methods — the causes overlap but the surfaces differ
import DocCallout from '@/components/DocCallout.astro';
## 1. It is an express button, not the payment method
Look at *where* on the checkout the method appears.
Accelerated buttons — **Apple Pay, Google Pay, Shop Pay, PayPal Express** — sit in their own row near the top of checkout, a different surface from the method list below. This is the most common reason a hide rule looks broken. Full detail in [express buttons still showing](/docs/troubleshooting/express-checkout-buttons-still-showing/).
## 2. You are in the US or Canada, targeting credit cards, without Plus
In the US and Canada, payment customizations on non-Plus plans are limited to **non-credit-card methods**. A rule targeting the credit card option saves, activates, shows as Active — and is discarded at checkout. There is no error anywhere.
Shopify's own wording: operations that target restricted payment methods *"will not take effect on the checkout."*
This catches out US and Canadian merchants constantly, because every other signal says the rule is working. Two things to check:
1. Is your **store** based in the US or Canada? It is the store's country that matters, not the customer's.
2. Is the rule targeting the **credit card option**? Alternative methods — COD, PayPal, Klarna, bank transfer, gateways — are unaffected and work normally.
If both are yes, the only fix is Shopify Plus. See [Shopify limitations](/docs/reference/shopify-limitations/).
## 3. The customer checked out through Shop Pay
Inside Shop Pay, payment customizations do not apply to **any** method except the native gift card field. A customer going through Shop Pay does not get your payment rules at all.
Nothing to fix here — it is how Shopify scopes the API — but it explains reports of a hidden method appearing for some customers and not others.
## 4. The name does not match the checkout label
The rule matches on the method's label. If the chip in your rule says `COD` and checkout says `Cash on Delivery (COD)`, nothing matches and nothing hides.
Copy the label from your live checkout and paste it into the rule rather than retyping it.
## 5. The conditions are not passing for this cart
Temporarily remove all conditions. If the method disappears without them, the rule and method name are both fine and the problem is in the conditions — put them back one at a time.
A rule conditioned on Customer is logged in, Customer tag, Customer total spent or Customer order count cannot pass for a guest — there is no customer record to read. Most checkout traffic on most stores is guests, so a rule like this can appear to do nothing at all.
## 6. Another rule is re-showing it
Keep a hidden method out of every other rule's method list. Where two rules conflict, hiding wins — so a stubbornly *visible* method means the hide rule isn't firing, pointing back to causes 4 and 5.
## 7. You are testing against a stale checkout
A checkout opened before the rule was activated keeps its original options. Empty the cart, rebuild it, and open checkout in a fresh tab.
## Verify the fix
1. Build a cart that **should** trigger the rule. Confirm the method is gone.
2. Build one that should **not**. Confirm the method is still there.
Skipping the second check is how an over-broad rule reaches live traffic.
### FAQ
**I hid PayPal but the PayPal button is still at the top of checkout.**
You have hidden the PayPal payment method; the button at the top is PayPal Express, an accelerated checkout button controlled separately. Both need addressing to remove PayPal entirely.
**The method is hidden for me but a customer says they still see it.**
Their conditions differ from yours — country, cart contents, tags or login state. Reproduce their cart as closely as you can, and re-read the rule's conditions against it.
**I am in the US and my credit card rule does nothing.**
Expected, unless you are on Shopify Plus. Shopify limits US and Canadian stores to non-credit-card customizations, and ignores the operation silently rather than reporting an error.
**Can I hide every payment method?**
Yes. Hiding all of them prevents checkout completion, which some merchants use deliberately to block carts that should not be purchasable.
## Apple Pay, Shop Pay or Google Pay still showing at checkout
Source: https://btbcheckoutrules.com/docs/troubleshooting/express-checkout-buttons-still-showing/
Type: troubleshooting
Answer: Apple Pay, Google Pay, Shop Pay and PayPal Express sit in their own row above the payment list, so hiding the underlying method leaves the button in place. Removing a wallet completely means handling both surfaces.
Applies to: Apple Pay, Google Pay, Shop Pay and PayPal Express; All Shopify plans
Does NOT apply to: Ordinary payment methods in the main list; Shipping methods
import DocCallout from '@/components/DocCallout.astro';
## Why this happens
Shopify checkout has two separate places a payment option can appear:
| Surface | What lives there |
|---|---|
| **Accelerated checkout row**, top of the page | Apple Pay, Google Pay, Shop Pay, PayPal Express |
| **Payment method list**, below it | Credit cards, COD, Klarna, bank transfer, gateways, PayPal |
A hide rule aimed at the method list does not reach the accelerated row. The rule works — it is pointed at the other surface. So a wallet can be hidden *and* visible at once.
## How to tell which one you are looking at
Open checkout and look at the position. If the option is:
- **Above the "or" divider, as a large coloured button** → accelerated checkout row
- **In the radio-button list further down** → payment method list
Shop Pay and Apple Pay are almost always the former. PayPal is commonly **both**.
## How to remove them
Add the button by name — `Apple Pay`, `Google Pay`, `Shop Pay` — to a hide rule, exactly as labelled at your checkout. Removing PayPal completely needs both: the method hidden from the list, and PayPal Express from the accelerated row.
Accelerated buttons convert well because they skip most of the form. Removing them everywhere is a real conversion cost. The usual good reason to hide one is narrow — a product type or destination the wallet cannot handle — and in that case scope the rule with conditions rather than hiding the button for everyone.
## Verify the fix
1. Open checkout on a device where the wallet is actually available. Apple Pay only renders on Apple devices in Safari, so a Windows browser will show it missing whether your rule works or not.
2. Confirm the accelerated row no longer shows the button.
3. Confirm the payment method list below is as you expect.
Testing wallet visibility on the wrong device produces a false pass.
### FAQ
**Why are express buttons treated differently?**
Shopify renders accelerated checkout in its own region of the page, above the standard payment section. It is a distinct surface, so the two are controlled independently.
**I hid PayPal but PayPal Express is still there.**
Those are two different things — the PayPal payment method in the list, and the PayPal Express button in the accelerated row. Removing PayPal from checkout entirely means addressing both.
**Will hiding express buttons hurt conversion?**
Often yes — express buttons are among the highest-converting elements on checkout. Hide them for a specific reason, such as a product type a wallet cannot handle, and prefer conditions that scope the change narrowly rather than removing them store-wide.
## Why parts were skipped
Source: https://btbcheckoutrules.com/docs/import-export/skipped-parts/
Type: troubleshooting
Answer: The importer brings in everything the current store can use and lists what it could not. Usually a condition is not available in the chosen set, an operator is not supported, or a referenced product does not exist here.
Applies to: Imports that succeeded but came in incomplete
Does NOT apply to: Files rejected outright — those fail with a single error instead
import DocCallout from '@/components/DocCallout.astro';
import DocShot from '@/components/docs/DocShot.astro';
A partial import is not a failure. The file was valid, and everything usable was brought across — the banner is telling you what was not, so you can add it back deliberately.
## What the messages mean
| Message | Cause | Fix |
|---|---|---|
| Unknown condition — skipped | The condition does not exist in this version | Rebuild that condition by hand |
| Doesn't support that operator | The operator is not offered on that condition | Pick the nearest supported operator |
| Isn't in the *X* condition set | Valid condition, wrong set for this rule | Switch the set **first**, then re-import |
| Condition was incomplete | Missing values in the file | Re-add it in the editor |
| Method entry was incomplete | A method arrived without a usable name | Select the methods again |
| Renaming pair was incomplete | One half of a pair was missing | Re-enter the pair |
| Display-order entry was incomplete | An ordered row was malformed | Re-drag the order |
| Match type wasn't recognized | Unreadable value | Defaulted to **All conditions** — check this |
| Condition set wasn't recognized | Unreadable value | Defaulted to **General Rules** — check this |
| Rule had no name | Missing name | A default was used; rename it |
The two that matter most are match type and condition set. Both fall back to a sensible default rather than failing, and a rule silently set to "All conditions" when it was meant to be "Any" behaves differently in a way nothing on screen flags.
## Unknown payment methods
Separate from skips, you may see a notice that some payment methods are not in the known provider list. That is not an error — it usually means a gateway specific to the origin store. The names come across as typed, so check they exactly match a method at *this* store's checkout before activating.
## The most common cause
Importing a Product-Based rule into an editor set to General. Every product condition is then "not in the set" and gets skipped, leaving a rule that looks nearly right and applies far too broadly.
Set the condition set to match the source rule **before** importing.
### FAQ
**Should I import anyway when parts are skipped?**
Usually yes, then add the missing pieces by hand — the alternative is rebuilding from scratch. Just check the rule before activating it, because a hide rule missing a condition is broader than intended.
**The methods were skipped. Why?**
Method entries that arrive incomplete are dropped. You need at least one method selected before the rule can be saved, so pick them again in the editor.
**Can I stop this happening?**
Mostly. Export and import between stores with the same products, collections and tags, and keep both on the same condition set.
## Rule will not activate
Source: https://btbcheckoutrules.com/docs/troubleshooting/rule-wont-activate/
Type: troubleshooting
Answer: Shopify allows 25 active payment customizations and 25 active delivery customizations per store across all apps. At the ceiling, new rules will not activate. Your plan may also cap rules per method type.
Applies to: Rules that will not activate or save at all
Does NOT apply to: Rules that save and activate but have no effect at checkout
import DocCallout from '@/components/DocCallout.astro';
## 1. The Shopify ceiling
Shopify — not the app — allows each store:
- **25 active payment customization functions**
- **25 active delivery customization functions**
Both count across **every** installed app. Another checkout app may already be consuming part of the allowance.
**Fix:** deactivate rules you no longer need, or consolidate. One hide rule can name several methods, and one condition using **Is one of** often replaces three near-identical rules.
## 2. Your plan's rule limit
Separately from Shopify, your plan can cap how many rules you create. The cap applies **per method type** — a limit of five means five payment rules *and* five shipping rules, not five in total.
Rule and condition limits are configured per plan rather than fixed in the app, so what you see depends on your subscription. The editor shows your remaining allowance as you build.
## 3. The action is not on your plan
Hide, rename and reorder are enabled independently for payment and shipping — six separate capabilities. A locked action shows a lock icon and an upgrade prompt rather than an error.
## 4. Conditions per rule
There is a cap on conditions in a single rule, and **Cart attribute** is separately capped at two. The **Add Condition** modal shows how many slots you have left, so check there rather than assuming a number.
If you have hit it, split the logic across two rules — they stack.
## Still stuck
Send support the rule name, a screenshot of the editor, and how many active rules the store has. The customization ceiling is the usual answer and is quick to confirm.
### FAQ
**Do draft rules count toward the 25?**
No — the limit counts active customizations. Pausing a rule frees a slot.
**Another app is using my allowance. What can I do?**
The ceiling is per store across all apps, so the only options are deactivating rules in the other app or consolidating yours.
**Can I combine rules to use fewer slots?**
Often yes. One hide rule can target several methods at once, and one rule with an Is one of condition frequently replaces several near-identical rules.
## Works for me but not for customers
Source: https://btbcheckoutrules.com/docs/troubleshooting/works-for-me-not-customers/
Type: troubleshooting
Answer: Your test cart almost certainly differs from theirs in a way a condition depends on — usually login state, destination country, or currency on a multi-currency store.
Applies to: Rules that behave correctly in your own testing
Does NOT apply to: Rules that do nothing for anyone
import DocCallout from '@/components/DocCallout.astro';
Your test cart and a real shopper's cart differ in ways that are easy to miss. Work down these in order.
## 1. You are logged in and they are not
Conditions on Customer is logged in, Customer tag, Customer total spent and Customer order count cannot pass for a guest — there is no customer record to read. Most checkout traffic on most stores is guests, so a rule gated on any of these applies to a small minority.
Test in a private window to see what a guest sees.
## 2. Different destination
**Shipping country** is where the order is going; **Customer country** comes from the customer's own address. They differ on gifts and business shipments.
Your test address is probably domestic. Theirs may not be.
## 3. Different currency
On a multi-currency store, threshold conditions evaluate in the **cart's** currency. A `Cart subtotal ≥ 500` rule fires at 500 units of whatever the customer is shopping in.
Add a **Cart currency** condition, or build one rule per market.
## 4. Different cart contents
Product conditions match if **any** item qualifies. A cart mixing qualifying and non-qualifying products still matches — which is right for "contains something fragile" and wrong for "is entirely digital".
## 5. Different device
Express buttons are device-dependent. Apple Pay only renders on Apple devices in Safari, so testing from Windows shows it missing whether your rule works or not.
## Reproducing it
Ask for: the destination country, whether they were signed in, roughly what was in the cart, and the currency shown. Rebuild that cart in a private window and the cause is usually obvious within a minute.
### FAQ
**How do I test as a guest?**
Open checkout in a private window. Signed in as yourself, every customer condition evaluates against your own account, which is not what most shoppers look like.
**Why would currency matter?**
Threshold conditions evaluate in the cart's currency. A rule set at 500 fires at 500 units of whatever currency the customer is shopping in, not 500 of yours.
**The customer says the method is missing entirely.**
Check whether a hide rule is broader than intended, and for shipping, confirm Shopify is returning the rate at all for that address.
---
# Blog
## Hide, Reorder & Rename Shopify Payment Methods
Source: https://btbcheckoutrules.com/blog/how-to-hide-reorder-rename-payment-methods-shopify/
Published: 2026-04-06
## Quick answer: which method should you use?
| Method | Best for | Shopify Plan | Code needed | Setup time |
|---|---|---|---|---|
| **Payment customization app** | Most merchants | Basic and up | No | 5 minutes |
| **Checkout Blocks (native)** | Shopify Plus stores wanting native solution | Plus only | No | 10-15 minutes |
| **Custom Shopify Function** | Stores with developers wanting full control | Any (custom app) | Yes (Rust/JS) | Hours to days |
For most Shopify stores, **an app is the right choice.** It's the fastest to set up, works on all plans, and covers hide + rename + reorder in one tool.
---
## What you can customize
Shopify's Payment Customization Function API supports three actions:
### Hide
Remove a payment method from checkout entirely — either always or when specific conditions are met. Examples: hide Klarna for pre-order products, hide PayPal for CBD items, hide bank transfer for retail customers.
### Rename
Change the display name of a payment method. Examples: rename "Credit Card" to "Debit Card / Credit Card" (since the field accepts both), rename "Manual Payment" to "Pay by Invoice (Net 30)."
**Limitation:** You cannot rename payment methods that display with a logo (Klarna, PayPal, Shop Pay, Apple Pay, etc.). Rename only works on text-based methods like Cash on Delivery, Bank Deposit, and manual payment methods.
### Reorder
Change the display position of payment methods at checkout. The first method in the list gets the most selections. Examples: move iDEAL to position 1 for Netherlands customers, move Shopify Payments above PayPal to reduce fees.
---
## Method 1: Using a payment customization app
This is the recommended approach for most Shopify merchants.
### Step by step
1. **Install a payment customization app** — like Nex Reorder Payment Method from the [Shopify App Store](https://apps.shopify.com/checkout-ninja?utm_source=btbcheckoutrules-website&utm_medium=cta&utm_campaign=blog-how-to-hide-reorder-rename-payment-methods-shopify&utm_content=how-to-step)
2. **Choose your action** — Hide, Rename, or Reorder
3. **Select the payment method** — enter the exact name as it appears at checkout (e.g., "Klarna," "PayPal," "Bank Deposit")
4. **Set conditions** (optional):
- Country or region
- Customer tag (B2B, VIP, wholesale)
- Product tag, variant, or collection
- Cart total or subtotal
- Discounts in the cart
- Shipping option
5. **Activate the rule** — changes apply immediately at checkout
### Conditions explained
**Hide by country:** Show only relevant payment methods per market. Hide local payment methods for customers outside their country. Hide payment methods that don't support certain currencies.
**Hide by product tag:** Tag products that shouldn't allow certain payment methods. Common tags: `no-klarna`, `no-afterpay`, `no-bnpl`, `preorder`, `restricted`.
**Hide by customer tag:** Create different payment setups for B2B vs retail, VIP vs standard, or flagged vs trusted accounts.
**Hide by cart total:** Block high-fee payment methods on small orders, or block credit cards on very large orders for fraud prevention.
### Apps that handle payment customization
- **Nex Reorder Payment Method** — hide, rename, reorder for both payment AND shipping methods. $4.99/mo. Built for Shopify.
- **HidePay** — hide, sort, rename payment methods. Shipping requires separate HideShip app.
- **Payfy** — hide, sort, rename payment methods. Shipping requires separate Shipzy app.
- **Kip** — hide, rename, reorder payment methods. No shipping support.
---
## Method 2: Shopify Checkout Blocks (Plus only)
Shopify Plus merchants can use the native Checkout Blocks app.
### How to hide a payment method
1. Go to your Shopify admin → Apps → Checkout Blocks
2. Click Functions → Create function
3. In the Payment methods section, click **Hide**
4. Enter a function name (internal only, customers don't see it)
5. In the Type section, select the rule type (conditional or unconditional)
6. In Hidden payment methods, click + Add method
7. Select the payment method and configure conditions
8. Click Save → Set status to Active
### How to rename a payment method
1. Follow steps 1-2 above
2. Click **Rename** instead of Hide
3. Select the payment method in the "From" row
4. Configure the new name in the "To" row (replace, add prefix, or add suffix)
5. Save and activate
### How to reorder payment methods
1. Follow steps 1-2 above
2. Click **Reorder**
3. Add payment methods and set their order (position 1 = first)
4. Manually reordered methods appear first; all others follow
5. Save and activate
### Checkout Blocks limitations
- Available only on Shopify Plus
- Maximum 25 active payment customizations per store (across all apps)
- Conditional rules work only for hiding — rename and reorder are unconditional
- Cannot rename payment methods with logos
- Wallets can be hidden but not reordered in the express payment section
---
## Method 3: Custom Shopify Function (developer required)
For complete control, build a custom app using the Payment Customization Function API.
### Overview
Shopify Functions let you write server-side logic that runs inside Shopify's infrastructure. A payment customization function receives the checkout cart data as input and returns a list of operations (hide, rename, move) to apply to payment methods.
### What you need
- Shopify CLI installed
- A Shopify app (created with Shopify CLI or the Partner Dashboard)
- Node.js 16+ and Rust toolchain (for the function itself)
- A development store for testing
### High-level steps
1. Generate a function scaffold with `shopify app generate extension`
2. Choose the payment customization template
3. Write your function logic in `src/run.rs` (Rust) or `src/run.js` (JavaScript)
4. Define your input query in `input.graphql` to fetch the cart data your function needs
5. Deploy with `shopify app deploy`
6. Test on your development store
### When to use this approach
- You need logic that no app provides (e.g., based on metafields, custom cart attributes, or complex multi-condition rules)
- You're an agency building for a client and want full control
- You're already building a custom Shopify app and want payment customization baked in
For most merchants, this is overkill. An app provides the same functionality without the development and maintenance overhead.
---
## Shopify Scripts are deprecated
If you're still using Shopify Scripts (Payment Scripts via the Script Editor app), you need to migrate. Shopify Scripts were deprecated in August 2025 and are no longer supported.
The replacement is Shopify Functions — which is what powers both third-party apps and Shopify's native Checkout Blocks.
---
## Common use cases
| Use case | Action | Condition |
|---|---|---|
| Hide Klarna for pre-orders | Hide | Product tag = "preorder" |
| Move iDEAL first for Netherlands | Reorder | Country = NL |
| Hide PayPal to reduce fees | Hide or Reorder | Always apply |
| Hide BNPL for restricted items | Hide | Product tag = "no-bnpl" |
| B2B: bank transfer only | Hide (all except bank transfer) | Customer tag = "B2B" |
| Rename for clarity | Rename | Always apply or Customer tag |
| Hide credit cards on large orders | Hide | Cart total > $2,000 |
| Hide express checkout buttons | Hide | Always apply |
---
## Limitations to know
- **25 active rules per store** — Shopify limits payment customization functions to 25 per store across all apps. Most stores use far fewer.
- **Can't rename logos** — payment methods with logos (Klarna, PayPal, Shop Pay, Apple Pay, Google Pay) cannot be renamed. Only text-based methods support rename.
- **US/Canada credit card limitation** — on non-Plus plans in the US and Canada, credit card field customizations don't apply. Other payment methods work fine.
- **No POS support** — Payment Customization Functions don't currently run in Shopify POS.
- **Shop Pay limitations** — Shop Pay only supports hiding (deactivating) gift cards. Other customizations aren't compatible with Shop Pay.
---
## Next steps
1. **Decide your method** — app for most merchants, Checkout Blocks for Plus stores wanting native, or custom function for developer-heavy teams
2. **Start with your highest-impact rule** — usually hiding an irrelevant payment method or reordering to prioritize your preferred option
3. **Test in checkout** — place a test order to verify the rules work as expected
4. **Add more rules** — expand to other countries, customer segments, or product categories
[Install Nex Reorder Payment Method →](https://apps.shopify.com/checkout-ninja?utm_source=btbcheckoutrules-website&utm_medium=cta&utm_campaign=blog-how-to-hide-reorder-rename-payment-methods-shopify&utm_content=body-cta) | [See All Features →](/features/payment-methods/) | [See Pricing →](/pricing/)
## How to Hide Shipping Methods on Shopify
Source: https://btbcheckoutrules.com/blog/how-to-hide-shipping-methods-shopify/
Published: 2026-04-05
## Why hide shipping methods?
### Reduce checkout abandonment
Cluttered shipping options slow customers down. The Baymard Institute found that a complicated checkout process is among the top reasons for cart abandonment. Showing only relevant shipping options makes the decision faster.
### Prevent wrong selections
If a customer selects a domestic shipping rate for an international order — or a freight option for a single small item — you end up with fulfillment problems, customer complaints, and potential refunds.
### Highlight free shipping
When a customer qualifies for free shipping, you want that to be the obvious choice. Hiding the paid option removes any hesitation.
---
## Most common shipping hide rules
### 1. Hide paid shipping above free shipping threshold
The most popular use case. When cart total exceeds your free shipping threshold (e.g., $75), hide all paid shipping rates so only "Free Shipping" appears.
**Condition:** Cart total ≥ $75
**Action:** Hide "Standard Shipping ($7.99)"
### 2. Hide domestic rates for international customers
Stop international customers from seeing USPS Priority Mail or other domestic-only rates that don't apply to them.
**Condition:** Country ≠ United States
**Action:** Hide "USPS Priority Mail," "USPS First Class"
### 3. Hide international rates for domestic customers
Conversely, domestic customers don't need to see expensive international shipping options.
**Condition:** Country = United States
**Action:** Hide "DHL Express Worldwide," "International Standard"
### 4. Hide local delivery for out-of-area customers
If you offer local delivery in your city, hide that option for customers outside your delivery zone.
**Condition:** Zip code not in [list of delivery zip codes]
**Action:** Hide "Local Delivery"
### 5. Hide freight for small orders
Freight shipping options are meant for large, oversized orders. Hide them unless the cart actually contains a freight-worthy product.
**Condition:** No cart item has the product tag "freight"
**Action:** Hide "Freight Shipping"
### 6. Hide specific carrier rates by customer type
B2B customers get wholesale shipping rates. Retail customers get standard rates. VIP customers get free express.
**Condition:** Customer tag = "B2B"
**Action:** Hide retail shipping rates
---
## How to set up shipping rules
### Using Nex Reorder Payment Method
The same app that handles payment method customization also handles shipping methods.
1. **Install the app** from the [Shopify App Store](https://apps.shopify.com/checkout-ninja?utm_source=btbcheckoutrules-website&utm_medium=cta&utm_campaign=blog-how-to-hide-shipping-methods-shopify&utm_content=how-to-step)
2. **Create a shipping hide rule**
3. **Enter the shipping method name** — match exactly as it appears at checkout
4. **Set conditions** — cart total, country, zip code, product, collection, customer tag
5. **Activate**
You can also rename shipping methods (change carrier labels to customer-friendly names) and reorder them (sort by price, put free shipping first) from the same app.
### Using Checkout Blocks (Shopify Plus only)
1. Go to Apps → Checkout Blocks → Functions
2. Create function → Delivery section → Hide
3. Add the delivery method and set conditions
4. Activate
**Plus-only limitation:** Conditional hiding of delivery methods through Checkout Blocks is only available on Shopify Plus.
### Using custom Shopify Functions (developer required)
Build a custom app using the Delivery Customization Function API. This gives full programmatic control but requires development resources.
---
## Rename shipping methods
Replace confusing carrier labels with clear customer-friendly names.
| Before (carrier name) | After (renamed) |
|---|---|
| UPS Ground | Standard Delivery (5-7 business days) |
| USPS Priority Mail | Express Delivery (2-3 business days) |
| DHL Express Worldwide | International Express (3-5 business days) |
| Local Delivery | Same-Day Delivery (within city limits) |
**Note:** When renaming carrier-provided rates, Shopify prepends the carrier name. "Standard" renamed to "Express Delivery" for UPS displays as "UPS Express Delivery."
---
## Reorder shipping methods
Control which shipping option appears first.
- **Sort by price** — cheapest first (most common)
- **Sort by speed** — fastest first (for premium stores)
- **Manual order** — drag and drop to your preferred sequence
- **Free shipping first** — always put the free option at the top when available
**Shopify regulation note:** You cannot automatically select a higher-priced shipping option by default. The cheapest option must be the first selected option.
---
## One app for both payment and shipping
Most competing apps sell payment customization and shipping customization as separate products:
- HidePay ($4.99) + HideShip ($2+) = $7+/month
- Payfy ($3.99+) + Shipzy ($3.99+) = $8+/month
- PayRules ($5.99+) + ShipRight ($4.99+) = $11+/month
Nex Reorder Payment Method includes both for $4.99/month total.
---
## Summary
| Method | Plan required | Code needed | Cost |
|---|---|---|---|
| Nex Reorder app | Basic and up | No | $4.99/mo |
| Checkout Blocks | Plus only | No | Free |
| Custom Function | Any (custom app) | Yes | Dev time |
Start with your highest-impact rule — usually the free shipping threshold hide. Then add country-based and customer-based rules as needed.
[Install Nex Reorder Payment Method →](https://apps.shopify.com/checkout-ninja?utm_source=btbcheckoutrules-website&utm_medium=cta&utm_campaign=blog-how-to-hide-shipping-methods-shopify&utm_content=body-cta) | [See Shipping Features →](/features/shipping-methods/) | [See Pricing →](/pricing/)
## How to Hide Klarna & Afterpay by Product
Source: https://btbcheckoutrules.com/blog/how-to-hide-klarna-afterpay-specific-products-shopify/
Published: 2026-04-04
## Why you'd want to hide Klarna or Afterpay
### Klarna's 28-day authorization limit
Klarna authorizes payments for a maximum of 28 days. If you can't fulfill and capture the order within that window — common for made-to-order, pre-order, or backorder items — the authorization expires. The order fails, the customer is confused, and you lose the sale.
Klarna's own documentation acknowledges this limitation and recommends using third-party apps to hide Klarna for specific products or markets.
### Afterpay's product restrictions
Afterpay prohibits certain product categories under their merchant terms. If a customer uses Afterpay to buy a restricted item, the transaction may be reversed. Common restricted categories include:
- CBD and cannabis-related products
- Alcohol
- Gift cards (in some regions)
- Firearms and weapons accessories
- Certain supplements
Afterpay previously provided a Shopify Scripts solution for hiding their payment method by product tag, but Shopify Scripts were deprecated in August 2025.
### Chargeback and dispute risk
Merchants report significantly higher chargeback rates with BNPL providers compared to direct credit card payments. Klarna app reviews on Shopify include merchants who lost both the product and the payment after Klarna disputes. For high-value or custom items where chargebacks are particularly costly, hiding BNPL options is a risk management strategy.
---
## Method 1: Using an app (recommended — no code, any Shopify plan)
The simplest way to hide Klarna, Afterpay, or any payment method for specific products is using a payment customization app.
### Step-by-step with Nex Reorder Payment Method:
1. **Install the app** from the [Shopify App Store](https://apps.shopify.com/checkout-ninja?utm_source=btbcheckoutrules-website&utm_medium=cta&utm_campaign=blog-how-to-hide-klarna-afterpay-specific-products-shopify&utm_content=how-to-step)
2. **Create a new hide rule**
3. **Select the payment method** — choose "Klarna" or "Afterpay" (match the exact name as it appears in your checkout)
4. **Set the condition** — choose "Product tag" and enter the tag you use for restricted products (e.g., `no-klarna`, `no-afterpay`, `preorder`)
5. **Activate the rule**
That's it. Any time a customer has a product with that tag in their cart, Klarna or Afterpay won't appear at checkout.
### Other conditions you can use:
- **Collection** — hide BNPL for an entire collection (e.g., "Pre-Orders" collection)
- **Specific product or variant** — hide for individual products or variants you pick
- **Cart total** — hide Klarna for orders above $2,000 (where dispute risk is highest)
- **Customer tag** — hide BNPL for flagged or high-risk customer accounts
- **Combine conditions** — hide Klarna when product is tagged "preorder" AND cart total is above $500
---
## Method 2: Shopify Checkout Blocks (Shopify Plus only)
If you're on Shopify Plus, you can use Shopify's native Checkout Blocks app to create payment customizations.
1. Go to Apps → Checkout Blocks → Functions
2. Create a new function → Payment methods → Hide
3. Select the payment method to hide
4. Set conditional rules based on product, cart, or customer attributes
5. Activate
**Limitations:**
- Only available on Shopify Plus plans
- Maximum 25 active payment customization functions per store
- Conditional rules only work for hiding (not for renaming or reordering)
- More complex to set up than a third-party app
---
## Method 3: Custom Shopify Functions (requires developer)
For stores with development resources, you can build a custom app using the Payment Customization Function API. This involves writing a function in Rust or JavaScript that takes cart data as input and returns operations to hide specific payment methods.
This approach gives maximum flexibility but requires:
- A developer familiar with Shopify Functions
- App deployment and hosting
- Ongoing maintenance
For most merchants, an app is the practical choice.
---
## What about Shopify Scripts?
Shopify Scripts were deprecated in August 2025. If you're still using a Script to hide payment methods, it's time to migrate. Both Klarna's and Afterpay's documentation now point merchants toward Shopify Functions or third-party apps.
---
## Product tags to set up
For a clean setup, we recommend these product tags:
- `no-klarna` — products where Klarna should be hidden
- `no-afterpay` — products where Afterpay should be hidden
- `no-bnpl` — products where ALL BNPL should be hidden
- `preorder` — pre-order items (hide Klarna automatically)
Add these tags to the relevant products in your Shopify admin, then create a hide rule in your payment customization app that targets each tag.
---
## Summary
| Method | Shopify Plan | Code Required | Difficulty |
|---|---|---|---|
| App (Nex Reorder) | Basic and up | No | Easy |
| Checkout Blocks | Plus only | No | Medium |
| Custom Shopify Function | Any (custom app) | Yes | Hard |
For most Shopify stores, using an app is the fastest and most maintainable solution. You can have Klarna or Afterpay hidden for specific products in under 5 minutes.
[Install Nex Reorder Payment Method →](https://apps.shopify.com/checkout-ninja?utm_source=btbcheckoutrules-website&utm_medium=cta&utm_campaign=blog-how-to-hide-klarna-afterpay-specific-products-shopify&utm_content=body-cta) | [See All Features →](/features/payment-methods/)
## Prioritize Local Payment Methods by Country
Source: https://btbcheckoutrules.com/blog/how-to-prioritize-local-payment-methods-shopify/
Published: 2026-04-03
## Why local payment method order matters
### Conversion rates by market
In many countries, a single local payment method dominates online commerce:
| Country | Preferred Payment | Market Share | What happens if it's not first |
|---|---|---|---|
| Netherlands | iDEAL | ~80% of online payments | Dutch shoppers look for iDEAL immediately. If it's buried below credit cards, they hesitate |
| Belgium | Bancontact | ~60% of online payments | Belgian customers expect to see it prominently |
| Chile / Mexico | Fintoc | Growing fast | Local bank transfer is trusted more than international cards |
| Brazil | Pix / Boleto | ~30%+ combined | Many Brazilian shoppers don't have international credit cards |
| Germany | SOFORT / Giropay | Popular for bank transfers | Germans prefer direct bank payment over credit cards |
| Poland | Przelewy24 (P24) | Major online payment method | Standard for Polish e-commerce |
| Latin America | Mercado Pago | #1 payment platform in LATAM | Recognized and trusted brand across the region |
| Finland | Regulation requires specific order | Legal requirement | Credit-based methods must be listed last by law |
### The first payment method gets the most clicks
This is simple UI behavior: the payment method that appears first at checkout gets the highest selection rate. On mobile (where most e-commerce happens), customers often select the first option without scrolling. By moving the locally preferred payment method to position 1 for each market, you're meeting customer expectations and reducing friction.
---
## How to set up country-based payment method ordering
### Using Nex Reorder Payment Method
1. **Install the app** from the [Shopify App Store](https://apps.shopify.com/checkout-ninja?utm_source=btbcheckoutrules-website&utm_medium=cta&utm_campaign=blog-how-to-prioritize-local-payment-methods-shopify&utm_content=how-to-step)
2. **Create a reorder rule** for each country
3. **Select the payment method** you want to move to the top (e.g., "iDEAL")
4. **Set condition: Country = Netherlands**
5. **Set position: 1** (first in the list)
6. **Activate**
Repeat for each country/payment method combination.
### Example setup for a multi-country European store
| Rule | Payment method | Condition | Position |
|---|---|---|---|
| Rule 1 | iDEAL | Country = Netherlands | 1 |
| Rule 2 | Bancontact | Country = Belgium | 1 |
| Rule 3 | SOFORT | Country = Germany | 1 |
| Rule 4 | Przelewy24 | Country = Poland | 1 |
| Rule 5 | Credit Card | No condition (default) | 1 |
Rule 5 acts as the fallback — for any country that doesn't match a specific rule, credit card stays at the top.
### Example setup for a LATAM store
| Rule | Payment method | Condition | Position |
|---|---|---|---|
| Rule 1 | Fintoc | Country = Chile | 1 |
| Rule 2 | Fintoc | Country = Mexico | 1 |
| Rule 3 | Mercado Pago | Country = Argentina | 1 |
| Rule 4 | Mercado Pago | Country = Brazil | 1 |
| Rule 5 | Boleto | Country = Brazil | 2 |
---
## Combine with hiding irrelevant payment methods
For the best checkout experience, don't just reorder — also hide payment methods that aren't relevant for specific markets:
- Hide Fintoc for customers outside Chile and Mexico
- Hide iDEAL for non-Netherlands customers
- Hide Bancontact for non-Belgium customers
- Hide local bank transfer methods that only work in one country
This way, Dutch customers see a clean checkout with iDEAL first, and customers in other countries don't see unfamiliar local payment options cluttering their checkout.
---
## Finland: legal requirement for payment method ordering
In Finland, regulations require that credit-based payment methods are listed last during checkout. This isn't just a UX preference — it's a legal requirement under the Consumer Protection Act (effective October 2023). If your store serves Finnish customers, you need a way to reorder payment methods specifically for Finland.
With a conditional reorder rule, you can ensure compliance: move deferred payment options like Klarna, Afterpay, and credit cards to the bottom for customers in Finland, while keeping them at the top for other markets.
---
## Tips for multi-market payment optimization
**Start with your highest-traffic countries.** Check your Shopify analytics to see where your orders come from. Set up reorder rules for the top 3-5 countries first.
**Test the checkout yourself.** Use a VPN or ask a contact in each target country to go through checkout and verify the payment order is correct.
**Combine with Shopify Markets.** If you're using Shopify Markets for multi-currency, your local payment methods are already activated per market. Reorder rules add the final layer of optimization.
**Monitor conversion by market.** After setting up country-based payment ordering, track conversion rates per country in your analytics. You should see improvement in markets where local payment methods are now prominent.
---
## Summary
Shopify doesn't natively support reordering payment methods by country. Using a payment customization app like Nex Reorder, you can set up country-based rules in minutes:
- Move the locally preferred payment to position 1
- Hide irrelevant local methods for other countries
- Comply with regulations (Finland and similar)
- Improve conversion in international markets
The setup takes 5-10 minutes per country and runs natively on Shopify's infrastructure.
[Install Nex Reorder Payment Method →](https://apps.shopify.com/checkout-ninja?utm_source=btbcheckoutrules-website&utm_medium=cta&utm_campaign=blog-how-to-prioritize-local-payment-methods-shopify&utm_content=body-cta) | [See All Features →](/features/payment-methods/)
## How to Rename Payment Methods on Shopify
Source: https://btbcheckoutrules.com/blog/how-to-rename-payment-methods-shopify/
Published: 2026-04-02
## Why rename payment methods?
### Customers skip payment options they don't understand
If your checkout says "Credit Card" but a customer only has a debit card, they might think they can't pay and leave. The reality is Shopify's credit card field accepts both credit and debit cards — but the label doesn't say that.
### Generic names create confusion
Shopify's default names like "Manual Payment Method" or "Bank Deposit" are technical labels, not customer-friendly ones. A B2B customer seeing "Manual Payment Method" has no idea if that means invoice, wire transfer, or something else.
### Better labels build trust
Specific, descriptive payment names make the checkout feel more professional. "Pay by Invoice (Net 30)" tells a wholesale customer exactly what to expect. "Wire Transfer (B2B)" makes it clear this option is for business accounts.
---
## Common rename examples
| Current name | Renamed to | Why |
|---|---|---|
| Credit Card | Debit Card / Credit Card | Clarifies that both card types are accepted |
| Manual Payment Method | Pay by Invoice (Net 30) | Tells B2B customers exactly what the payment terms are |
| Bank Deposit | Wire Transfer | Matches what the payment actually is |
| Bank Deposit | Bank Transfer (2-3 business days) | Adds expected processing time |
| Cash on Delivery | Pay on Delivery | Sounds more modern and professional |
| Money Order | Cheque / Money Order | Includes both accepted payment types |
---
## How to rename: step by step
### Method 1: Using an app (recommended)
1. **Install Nex Reorder Payment Method** from the [Shopify App Store](https://apps.shopify.com/checkout-ninja?utm_source=btbcheckoutrules-website&utm_medium=cta&utm_campaign=blog-how-to-rename-payment-methods-shopify&utm_content=how-to-step)
2. **Create a rename rule**
3. **Enter the current payment method name** — must match exactly as it appears at checkout (e.g., "Credit Card")
4. **Enter the new name** — what you want customers to see (e.g., "Debit Card / Credit Card")
5. **Set conditions** (optional) — apply the rename only for specific customers, countries, or always
6. **Activate** — the new name shows at checkout immediately
### Method 2: Shopify Checkout Blocks (Plus only)
1. Go to Apps → Checkout Blocks → Functions
2. Create function → Payment methods → Rename
3. In the "From" row, select the payment method
4. In the "To" row, choose Replace with, Add prefix, or Add suffix
5. Enter the new name
6. Save and activate
### Method 3: Custom Shopify Function (developer required)
Build a custom app using the Payment Customization Function API with a rename operation. This requires Rust or JavaScript development.
---
## Conditions for renaming
You can rename a payment method for everyone, or only under specific conditions:
- **Always apply** — every customer sees the new name
- **By customer tag** — show "Pay by Invoice (Net 30)" only for customers tagged "B2B" or "wholesale"
- **By country** — different names for different markets
- **By cart total** — rename based on order value
- **By product** — rename based on what's in the cart
### Example: different names for B2B vs retail
| Customer type | Sees this name |
|---|---|
| Retail (no tag) | Bank Transfer |
| B2B (tagged "wholesale") | Pay by Invoice (Net 30) |
Set up two rename rules: one with condition "customer tag = wholesale" showing "Pay by Invoice (Net 30)", and one with no condition showing "Bank Transfer." The conditional rule takes priority for B2B customers.
---
## What you can and can't rename
### Can rename
- Credit Card → Debit Card / Credit Card
- Cash on Delivery → Pay on Delivery
- Bank Deposit → Wire Transfer
- Money Order → Cheque / Money Order
- Manual Payment Method → Pay by Invoice
- Any text-based payment method name
### Cannot rename
- **Klarna** — displays with a logo, Shopify doesn't allow renaming
- **PayPal** — displays with a logo
- **Shop Pay** — displays with a logo
- **Apple Pay** — displays with a logo
- **Google Pay** — displays with a logo
- **Any payment method that shows a logo** instead of text
This is a Shopify platform limitation, not an app limitation. The Payment Customization API does not support renaming payment methods that have logos as their display name.
---
## Tips for choosing good payment method names
**Be specific.** "Debit Card / Credit Card" is better than "Card Payment." Customers want to know exactly what's accepted.
**Add context where helpful.** "Pay by Invoice (Net 30)" tells the customer the payment terms upfront. "Bank Transfer (2-3 business days)" sets processing expectations.
**Keep it short.** The payment method name appears in a list at checkout, often on mobile. Aim for 3-6 words.
**Match your brand voice.** If your store is casual, "Pay on Delivery" works. If it's professional B2B, "Wire Transfer — Invoice to Follow" might be better.
**Test on mobile.** Long names get truncated on small screens. Check how your renamed payment method looks on a phone before going live.
---
## Summary
| Method | Plan | Code | Time |
|---|---|---|---|
| App (Nex Reorder) | Basic and up | No | 2 minutes |
| Checkout Blocks | Plus only | No | 5 minutes |
| Custom Function | Any (custom app) | Yes | Hours |
The most common rename — "Credit Card" to "Debit Card / Credit Card" — takes 2 minutes with an app and immediately clarifies for customers that debit cards are accepted.
[Install Nex Reorder Payment Method →](https://apps.shopify.com/checkout-ninja?utm_source=btbcheckoutrules-website&utm_medium=cta&utm_campaign=blog-how-to-rename-payment-methods-shopify&utm_content=body-cta) | [See All Features →](/features/payment-methods/)
## How to Reorder Shopify Payment Methods
Source: https://btbcheckoutrules.com/blog/how-to-reorder-payment-methods-shopify/
Published: 2026-04-01
## Why payment method order matters
### The first option wins
This is basic checkout behavior. On desktop, customers tend to select the first payment method in the list. On mobile — where the majority of e-commerce happens — the effect is even stronger because customers often don't scroll through the full list.
Moving your preferred payment method to position 1 can significantly shift which method customers choose.
### Reduce processing fees
Different payment gateways charge different rates. PayPal charges 2.9% + $0.30 per transaction. Shopify Payments rates are typically lower, especially on higher Shopify plans. If your checkout shows PayPal first and Shopify Payments second, you're steering customers toward the more expensive option.
By reordering to show Shopify Payments / credit card first and PayPal second, you can save hundreds or thousands per month on a high-volume store — without removing PayPal entirely.
### Local payment preferences
Shoppers in different countries have strong payment preferences. Dutch customers expect iDEAL. Belgian customers look for Bancontact. Chilean merchants want Fintoc at the top. Showing the locally preferred payment first improves conversion rates in each market.
### Regulatory compliance
In some countries, regulations require specific payment method ordering. Finland, for example, requires credit-based payment methods to be listed last under the Consumer Protection Act (effective October 2023).
---
## How to reorder payment methods
### Method 1: Using an app (recommended)
This works on all Shopify plans and requires no code.
1. **Install Nex Reorder Payment Method** from the [Shopify App Store](https://apps.shopify.com/checkout-ninja?utm_source=btbcheckoutrules-website&utm_medium=cta&utm_campaign=blog-how-to-reorder-payment-methods-shopify&utm_content=how-to-step)
2. **Create a reorder rule**
3. **Select the payment method** you want to move (e.g., "Credit Card" or "iDEAL")
4. **Set the position** — position 1 means it appears first at checkout
5. **Set conditions** (optional):
- **By country** — move iDEAL to position 1 only for Netherlands customers
- **By customer tag** — move bank transfer to position 1 for B2B customers
- **Always apply** — change the order for everyone
6. **Activate** — changes take effect immediately
You can create multiple reorder rules. For example:
- Rule 1: Move iDEAL to position 1 when country = Netherlands
- Rule 2: Move Bancontact to position 1 when country = Belgium
- Rule 3: Move Credit Card to position 1 (no condition — default fallback)
### Method 2: Shopify Checkout Blocks (Plus only)
1. Go to Apps → Checkout Blocks → Functions
2. Create function → Payment methods → Reorder
3. Add payment methods and arrange them in your desired order
4. Manually reordered methods appear first; all others follow in Shopify's default order
5. Save and activate
**Limitation:** Checkout Blocks reorder is unconditional — you can't reorder differently per country or customer tag. It applies the same order for everyone.
### Method 3: Custom Shopify Function (developer required)
Build a custom app using the Payment Customization Function API with move operations. Each move operation specifies a payment method and a target position index. This gives full programmatic control with conditional logic.
---
## Common reorder setups
### Reduce PayPal fees
**Goal:** Steer customers to Shopify Payments (lower fees) instead of PayPal.
| Position | Payment method |
|---|---|
| 1 | Credit Card (Shopify Payments) |
| 2 | Shop Pay |
| 3 | PayPal |
**Condition:** Always apply
### Country-based ordering for Europe
**Goal:** Show the locally preferred payment first for each country.
| Country | Position 1 | Position 2 | Rest |
|---|---|---|---|
| Netherlands | iDEAL | Credit Card | Default order |
| Belgium | Bancontact | Credit Card | Default order |
| Germany | SOFORT | Credit Card | Default order |
| All others | Credit Card | PayPal | Default order |
**Condition:** Country per rule
### B2B: bank transfer first
**Goal:** Wholesale customers see bank transfer / invoice first instead of credit card.
| Customer type | Position 1 | Position 2 |
|---|---|---|
| B2B (tagged "wholesale") | Bank Transfer | Credit Card |
| Retail (everyone else) | Credit Card | PayPal |
**Condition:** Customer tag = "wholesale"
---
## Reorder vs hide: which should you use?
| Situation | Use reorder | Use hide |
|---|---|---|
| You want PayPal available but not prominent | ✅ Move it down | |
| You want to remove Klarna for pre-orders | | ✅ Hide it completely |
| You want iDEAL first for Dutch customers | ✅ Move to position 1 | |
| You want to block BNPL for CBD products | | ✅ Hide it |
| You want to reduce PayPal fee spend | ✅ Move below credit card | Optional: hide entirely |
| You want B2B to only see bank transfer | | ✅ Hide everything else |
**Reorder** keeps all payment methods visible but changes their priority. **Hide** removes them entirely. You can combine both — reorder the methods you want to keep, and hide the ones you don't.
---
## Things to know
### Wallets can't be reordered in express checkout
Apple Pay, Google Pay, and Shop Pay in the express checkout section (the buttons at the top of checkout) can be hidden but not reordered. Reorder only applies to the main payment method list below the express section.
### Shopify's default order
When you don't reorder, Shopify displays payment methods in the order they were activated in your store settings. Credit card (Shopify Payments) typically appears first, followed by alternative payment methods in the order they were added.
### Multiple reorder rules
You can create multiple rules targeting different payment methods. They're applied in sequence. If two rules conflict (both trying to put a different method at position 1), the last-activated rule takes precedence.
### 25 rule limit
Shopify allows a maximum of 25 active payment customization functions per store across all apps. This includes hide, rename, and reorder rules combined. Most stores use 3-10 rules total.
---
## Before you had apps: the history
Before 2023, reordering payment methods at checkout was only possible on Shopify Plus using Shopify Scripts (Payment Scripts in the Script Editor app). Non-Plus merchants had no way to change payment method order.
In 2023, Shopify introduced the Payment Customization Function API as part of Shopify Functions, opening up payment customization to all Shopify plans through third-party apps. Shopify Scripts were then deprecated in August 2025.
If you're on an older setup still using Scripts, now is the time to migrate to an app-based solution.
---
## Summary
| Method | Plan | Conditional | Code | Time |
|---|---|---|---|---|
| App (Nex Reorder) | Basic and up | ✅ Yes | No | 5 minutes |
| Checkout Blocks | Plus only | ❌ Unconditional | No | 10 minutes |
| Custom Function | Any (custom app) | ✅ Yes | Yes | Hours |
The biggest quick win: move your lowest-fee payment method to position 1. On a $50,000/month store, even a small shift in payment method selection can save hundreds per month in processing fees.
[Install Nex Reorder Payment Method →](https://apps.shopify.com/checkout-ninja?utm_source=btbcheckoutrules-website&utm_medium=cta&utm_campaign=blog-how-to-reorder-payment-methods-shopify&utm_content=body-cta) | [See All Features →](/features/payment-methods/) | [See Pricing →](/pricing/)