Disable Cash on Shipping and just enable it on pick up

Topic summary

A user wants to restrict Cash payment to only appear for pickup orders, while keeping Credit Card and TWINT available for shipping orders.

Current Limitation:

  • Shopify’s payment methods are global by default and cannot be conditionally hidden based on fulfillment method (unless on Shopify Plus)

Proposed Solutions:

Workaround (free):

  • Add a notice in the Cash Payment method’s “Additional details” field explaining it’s only valid for pickup orders
  • Customers will see this message at checkout when selecting Cash Payment

Third-party apps (paid):

  • Zapiet - Pickup + Delivery: Offers payment method customization plus date/time selection, product availability controls, and preparation time settings (14-day free trial available)
  • PayRules: Hide Payment Methods: Can hide Cash Payment when “Shipping” is selected as delivery method, showing it only for pickup

The discussion remains open with multiple solution paths offered, ranging from manual workarounds to app-based automation.

Summarized with AI on November 8. AI used: claude-sonnet-4-5-20250929.

Hi is it possible, for example, that credit card & twint (my payment methods) are only possible when shipping is selected and cash payment as an additional option only appears when i select pick-up. It makes no sense that customers can select cash payment when i ship them items.

Shipping this Options should be available:
-Credit Card
-TWINT (Swiss Payment Method)

Pick Up this options should be available:
-Credit Card
-TWINT
-Cash Payment (but just for the pick up option)

Hi @youresellplug

Unfortunately it’s not possible to show the Cash Payment option only for Pick Up orders, this is because all payment methods in Shopify are global and they will be shown to every customer and it’s not possible to hide them unless your are on Shopify Plus.

The only option I can suggest you is to add a notice to your Cash Payment method so that when your customers select Cash Payment at checkout they know that they can only use it for Pick Up orders

To do this open your Payment Settings by going into Settings → Payments and click on the ‘Edit’ button on the right of your Cash Payment method

Then on the popup that appears you can add instructions like these ones on the ‘Additional details’ field:

These Additional details will appear when a customer selects Cash Payment at checkout and your customer will read them before completing the order.

I know this is not a perfect solution but unfortunately it’s the only way to achieve this right now.

Hope this helps!

Hey @youresellplug

If you want to control which payment methods are shown, like turning off COD (Cash on delivery) for shipping orders, you might want to check out our app Zapiet - Pickup + Delivery.

With our app, you can customize which payment methods are displayed. Plus, we offer additional features such as:

  • Allowing customers to pick a date and time for both pickup and shipping
  • Controlling which products are available/unavailable for pickup and shipping
  • Setting preparation time to get your products ready
  • Blackout dates, especially handy during busy holiday times
  • And much more…

If you’re interested, we have a 14-day free trial available. Here’s an article that explains how to manage payment methods: https://support.zapiet.com/en/articles/9046575-managing-payment-methods

Hope this helps! If you have any questions, feel free to ask.

  • Klaudia from Zapiet

Well, you can hide Cash Payment when your customers selected Shipping as their delivery method and display it only for the Pick Up option with PayRules: Hide Payment Methods app. These are the steps you need to follow to achieve this:

  1. Write Cash Payment in the Additional payment methods field.
  2. Select Hide if found and Shipping from the Delivery types field.

Now, if the customers select the Shipping option at the checkout, then they cannot see the cash payment anymore. But for the Pick Up option, they will see the cash payment option. Hope it helps. Thanks.