How to Make a Product Pickup Only on Shopify

Some products should only be picked up in store, never shipped. Shopify has no product-level 'no shipping' checkbox, but a custom shipping profile with no rates does the same job. Here is the exact setup, what checkout looks like, and the catch with mixed carts. Tested with screenshots.

By AjayCodeWiz · August 25, 2026 · 9 min read

Answered on the Shopify Community

A merchant ran into this and asked about it on the forum. I worked through it on a test store and posted the fix there on August 25, 2026. You can read the original thread, including the follow-up questions, over on the Shopify Community.

View the original thread

The problem

A merchant asked this on the Shopify Community: they wanted to mark certain products as in-store pickup only, so those items can be bought on the storefront but can never be added to a shippable order. Think of a florist's fresh bouquets, a bakery's cakes, a heavy item, or anything too fragile or too local to post.

They were looking for a simple switch on the product page. Something like a "no shipping" checkbox you tick per product.

Shopify does not have that checkbox. There is no product-level control that says "this item is pickup only."

But you can get exactly that behaviour with one setting change, and it takes about five minutes. I built it on a test store and ran real checkouts through it, so this is what actually happens, not just the theory.

Why there is no "no shipping" checkbox

Here is the part that trips people up, and it is worth understanding before you touch anything.

In Shopify, shipping is not set on the product. It is set on a shipping profile. A shipping profile is a group of products plus the shipping rates that apply to them. Every store starts with one profile, called the General profile, and by default every product lives in it.

So a product does not carry its own "can this ship" flag. It inherits shipping from whatever profile it sits in. That is why there is no per-product switch: the setting lives one level up, on the profile.

Once you see it that way, the fix is obvious. You make a second profile that has no shipping rates at all, and you move your pickup-only products into it. A product in a profile with no rates cannot be shipped anywhere, because there is no rate for the checkout to charge. If local pickup is switched on, that product can still be bought, just for pickup only.

That is the whole idea. Now here are the steps.

Step 1: Turn on Pickup in store

Local pickup has to be on first, otherwise your pickup-only products cannot be bought at all.

  • Go to Settings, then Shipping and delivery.
  • Scroll to Pickup in store and open it.
  • Choose the location customers will collect from, turn pickup on, and Save.

Pickup in store enabled for the store locationPickup in store enabled for the store location

Make sure the pickup location is the store where customers actually collect, and that it has a real address. On my test store, a location with no street address did not show up as a pickup option at checkout, so fill the address in.

Step 2: Create a shipping profile with no rates

This is the part that replaces the missing checkbox.

  • In Settings, then Shipping and delivery, find Shipping profiles.
  • Click Add custom profile.
  • Give it a name only you will see, for example "Pickup only".
  • Add your pickup-only products to it.
  • Do not add any shipping rates. Leave that section empty.
  • Save.

Add a custom profile in Shipping and deliveryAdd a custom profile in Shipping and delivery

When you save, Shopify shows a yellow "No shipping rates" warning that says customers will not be able to complete checkout for products in this profile. On a normal profile that warning is a problem. Here it is exactly what you want. No rates is the point. It is what stops these products from ever being shipped.

Custom profile with No shipping rates and one productCustom profile with No shipping rates and one product

That is the closest thing to a per-product "no shipping" switch that Shopify has today. The products in this profile can now only be bought for pickup.

What the customer sees

I added a pickup-only product to a cart and went to checkout. The Delivery section did not offer shipping at all. It only offered Pickup in store, at the location I turned on, for free.

Checkout shows only Pickup in store, with no shipping optionCheckout shows only Pickup in store, with no shipping option

So a cart that contains only pickup-only items behaves perfectly. There is no shipping method, no address form for delivery, just the pickup location. The customer picks it up, exactly as intended.

The one catch: mixed carts

This is the part every short answer skips, and it is the thing most likely to confuse your customers, so test it yourself.

What happens when a shopper puts a pickup-only item and a normal shippable item in the same cart?

I tried it. With the delivery method set to Ship, checkout showed "Shipping not available" for the whole order. It could not ship, because one of the items has no shipping rate, and Shopify will not ship part of an order and hold the rest for pickup.

Mixed cart set to Ship shows Shipping not availableMixed cart set to Ship shows Shipping not available

I checked this with split shipping turned on, which is the newer Shopify setting that can split an order across locations. It did not change the outcome. Split shipping splits shipments across your locations, but it will not turn one order into "ship this item and pick up that one."

There is a way through, though. If the shopper switches the delivery method to Pickup, the whole order goes through, as long as your shippable items are also in stock at the pickup location.

Mixed cart set to Pickup goes through for the whole orderMixed cart set to Pickup goes through for the whole order

So the practical guidance is simple. Add a short line to your pickup-only product pages so nobody gets stuck:

"In-store pickup only. Please order pickup items separately from shipped items."

That one sentence saves a lot of confused checkout attempts.

How do I set up local pickup on Shopify?

If you have never used it, local pickup is a built-in Shopify feature, free on every plan. You turn it on per location under Settings, then Shipping and delivery, then Pickup in store. You pick which of your locations offer collection, set how long orders usually take to be ready, and write a short "ready for pickup" message.

Once it is on, pickup appears as a delivery choice at checkout for products that are in stock at a pickup location. For a store that only does pickup, that is all you need. For a store that ships most things but wants a few items to be pickup only, you combine it with the no-rates profile above.

Can I turn off shipping for just one product?

Not with a single toggle on the product, no. The no-rates profile is how you do it. Add that one product to a custom profile with no shipping rates, and it becomes pickup only while every other product keeps shipping as normal.

The reason is the same one from earlier. Shipping is a profile setting, not a product setting. So "turn off shipping for one product" really means "put that one product in a profile that has no shipping."

Can a customer pick up one item and ship another in the same order?

No, not in a single order. This surprises people, so it is worth saying plainly. A Shopify order has one delivery method for the whole order. It is either shipped or picked up, not a mix.

That is why a mixed cart forces the choice. The customer either picks up everything, or they place two separate orders, one for the pickup items and one for the shipped items. There is no native way to split a single order into part-ship and part-pickup.

Do I need an app for pickup only?

For the setup above, no. It is all native Shopify settings and costs nothing.

You only need an app if you want more than "pickup only." Two common reasons:

First, a hard block. The setup above stops pickup-only items from being shipped, but it does not stop a customer from adding a pickup-only item to a cart that also has shippable items and then hitting the "Shipping not available" wall. If you want to actively prevent that combination, that needs a checkout validation. You can do it for free with a Shopify Function, which a developer sets up once with no monthly fee, or with a cart and checkout validation app.

Second, pickup scheduling. If you want customers to choose a pickup date and time slot, that is not native. Apps like Zapiet - Pickup + Delivery or Store Pickup + Delivery (Amai) add date and time pickers and are popular with florists, bakeries, and food shops.

What to check if it did not work

  • The pickup-only product cannot be bought at all. Check that Pickup in store is turned on for a location, and that the product is in stock at that location. A product with no rates and no pickup has no way to be sold.
  • Pickup does not appear at checkout. The pickup location needs a real, complete address. A location with only a country and no street will not show as a pickup point.
  • The product still shows a shipping option. Confirm the product is actually inside the no-rates profile, not still in the General profile. A product can only be in one profile at a time.
  • A mixed cart shows "Shipping not available." That is expected. Tell the customer to choose Pickup, or to order the pickup item separately. Add the note to the product page.
  • The product is hidden from the storefront. Making it pickup only does not unpublish it. If it is missing, check that it is published to the Online Store channel and set to Active.

Shipping profile, local pickup, local delivery: the words that get mixed up

These three get confused, and the confusion is behind most pickup questions.

A shipping profile is a group of products plus their shipping rates. It decides how, and whether, products get shipped. A profile with no rates is what makes a product pickup only.

Local pickup is the customer collecting the order from your store or location themselves. There is no delivery. It is free to the customer unless you set it otherwise.

Local delivery is you, or a driver, dropping the order at the customer's address within a set radius. It is a delivery, just not a courier. It is a separate setting from pickup, with its own rates and zones.

Once those three line up, pickup-only products stop feeling like a missing feature. You are not looking for a checkbox that does not exist. You are putting the product in a profile with no rates, turning on pickup, and letting checkout do the rest.

Spending too long on manual Shopify busywork?

PinFlow turns your Shopify catalog into Pinterest pins and posts them on a schedule, automatically. Same idea as the rule above, let the system handle the repetitive part.

Get PinFlow on the Shopify App Store