Delivery customization: hide, rename and sort shipping options

Short answer

A delivery customization is a Shopify Function that changes the delivery options shown at checkout. It has three operations: hide an option, rename it, or move it in the list. It applies to carrier rates, local delivery and pickup options, and it can’t create rates or change prices. A store can activate up to 25, and a custom app containing one needs Shopify Plus.

  • Delivery customization functions can hide, rename and reorder delivery options at checkout.
  • They apply to shipping carrier, local delivery and pickup options.
  • A store can activate at most 25 delivery customization functions.
  • They run in checkout, B2B, draft order checkout and accelerated checkout, but not in the cart or on the storefront.
  • Hiding options for PO box addresses works only for rates from carrier services or third-party shipping apps.
  • Since API version 2026-10, functions can read metafields attached to delivery options.

Shipping rates come from your shipping settings, carrier services and apps. Which of those rates a customer should actually see often depends on the cart: no express option for a 40 kg order, no carrier that can’t reach a PO box, local pickup listed first for nearby customers. Shopify’s Delivery Customization Function is the tool for that last step.

What it can do

A delivery customization function runs at the cart.delivery-options.transform.run target in checkout. It receives the cart and the available delivery options, and returns a list of operations:

  • Hide a delivery option from the list offered to the customer.
  • Rename a delivery option, for example to add a delivery promise or a note to its title.
  • Move an option, to sort the list in the order you prefer.

It works on the options checkout already has: shipping carrier rates, local delivery and pickup options. Those three operations are the whole API. It can’t create a new rate or change a rate’s price; rates still come from your shipping settings, carrier services or apps.

Rules it is built for

Shopify lists these use cases:

  • Hiding delivery options for specific products or customers.
  • Reordering delivery options by preference.
  • Hiding delivery options for PO box addresses.
  • Adding messaging to delivery option titles.

Shopify’s own configuration tutorial renames delivery options: when the delivery address is in a state or province the merchant has chosen, it appends a message to each option’s title, and both the province code and the message come from a JSON metafield. That is the typical shape: a condition on the cart or the address, one operation, and a setting the merchant controls.

Three rules, written out

Most delivery rules fit one pattern: a condition, then one of the three operations. Writing them this way before any build makes it obvious whether the API can express them.

Heavy orders lose the express option

Condition: the cart’s total weight, added up from each line’s variant weight and quantity, is above a threshold the merchant sets. Operation: hide every option whose title or handle marks it as express. The threshold lives in a metafield, so the team can change it without a developer. The same shape covers bulky items, hazardous goods or products with a “ships separately” tag.

Pickup first for nearby customers

Condition: the delivery address is in a list of postcodes or a region near the store. Operation: move the pickup options to the top of the list. Nothing is hidden, so a customer who wants shipping still sees it; the default simply changes.

A clearer name for a carrier rate

Condition: none, or a market or customer tag. Operation: rename the option to add a delivery promise or a note, such as “signature required”. Shopify’s Checkout Blocks documentation notes that renamed carrier rates get the carrier name in front, so check how the new title reads with it.

Rules that don’t fit the pattern are the ones to question: adding a surcharge, creating a new rate or changing a price are outside what this API does.

Where it runs, and where it doesn’t

SurfaceSupport
CheckoutSupported
B2BSupported
Draft order checkoutSupported
Accelerated checkout on the storefrontSupported
POSPartly: only when shipping to a store
Cart, storefront, admin draft orders, order editing, subscriptionsNot supported

The practical consequence: a shipping estimate shown on the cart page won’t reflect the customization. Test the rule in checkout itself, including express checkout buttons.

Keep the rules in settings, not code

A function can only read what its input query asks for, and it can’t read the clock or generate random values. Shopify’s configuration guide stores the rule’s settings as a metafield on the delivery customization itself, which the function reads through its input query. The app can then give the merchant a form to edit those settings, reached from Settings > Shipping and delivery, in the Delivery customizations section of the Shopify admin, so changing a threshold or a country list doesn’t need a deploy.

A recent change widens what the rule can check. Shopify’s changelog of September 15, 2026 announced that, from API version 2026-10, functions can read metafields attached to delivery options in the cart. Before that, some apps passed information by embedding it in an option’s title or handle; now the option can carry structured data the function reads directly.

Limits and plan rules

  • Count. A store can activate at most 25 delivery customization functions, across all apps.
  • Plan. Stores on any plan can use App Store apps that contain Functions. A custom app that contains Functions runs only on Shopify Plus stores.
  • No-code route. Shopify’s Checkout Blocks app can create delivery customizations without code, but only for merchants on Shopify Plus. In Checkout Blocks, hiding is the only customization type that supports conditional rules; renaming and reordering apply without conditions.
  • Carrier names. When a carrier-provided rate is renamed, Shopify prepends the carrier name, and the API can’t remove it: “UPS Standard” can become “UPS Standard Shipping”, but not “Standard Shipping”. Write new titles with that in mind.
  • Local delivery and pickup. In Checkout Blocks, the local delivery and pickup in store methods can’t be hidden as a whole, though individual local delivery options or pickup locations can.
  • Runtime. Every Function has fixed resource limits, including a 256 kB compiled binary, and its input query has a maximum cost of 30.

An order of work that avoids surprises

  1. List every rule in plain words: which carts, which addresses, which options, and whether the option is hidden, renamed or moved.
  2. Check where each rate comes from. PO box hiding depends on carrier-service rates, and renamed carrier rates keep the carrier name.
  3. Check the plan. On Plus, Checkout Blocks may cover simple cases without a build. On other plans, the options are an App Store app or a change of plan before any custom app.
  4. Decide which values the merchant must be able to change, and put those in metafields with an admin form.
  5. Test on a development store with real carts and addresses, in standard and express checkout, before activating on the live store.
  6. Count active customizations across all apps against the limit of 25 before installing another app that adds one.

Stores that used shipping Scripts to hide or rename rates are the most common case: that logic now lives here. See where each Shopify Script’s logic goes now. And if the goal is to stop an order entirely, for example when an item can’t ship to an address at all, Cart and Checkout Validation can block checkout instead of hiding options one by one.

Where Lintel fits

Delivery customizations are part of Lintel’s Shopify Functions work. The first review covers the plan, where each rate comes from and whether Checkout Blocks or an App Store app already covers the rule. When a build is the right answer, the function ships inside a custom Shopify app with the settings the team needs to change on their own.

Questions

Can a delivery customization change a shipping price?
No. The API has three operations: hide, rename and move a delivery option. Rates and prices still come from shipping settings, carrier services or apps.
Does a delivery customization apply in the cart?
No. It runs in checkout, B2B, draft order checkout and accelerated checkout. The cart, storefront, order editing and subscriptions are not supported surfaces.
Do I need Shopify Plus to hide shipping methods?
Not if an App Store app does it: stores on any plan can use public apps that contain Functions. A custom app with Functions needs Shopify Plus, and so does creating delivery customizations in the Checkout Blocks app.
How many delivery customizations can a store have?
A store can activate at most 25 delivery customization functions, counted across all apps.

Sources

  1. Delivery Customization Function APIShopify developer documentation, checked 26 September 2026
  2. Add configuration to your delivery options functionShopify developer documentation, checked 26 September 2026
  3. Build the UI for the delivery customization functionShopify developer documentation, checked 26 September 2026
  4. Delivery options in Shopify Functions input now expose their metafieldsShopify developer changelog, checked 26 September 2026
  5. Customizing delivery options in Checkout BlocksShopify Help Center, checked 26 September 2026
  6. About Shopify Functions (availability)Shopify developer documentation, checked 26 September 2026
  7. Function APIs: resource limitsShopify developer documentation, checked 26 September 2026