⚠️   Shopify Scripts will no longer be supported as of June 30, 2026  ⚠️   read the Shopify article 

How to Add Delivery Charge on Shopify for Plus Stores

Table of Contents

  1. Introduction
  2. Understanding the Shopify Shipping Infrastructure
  3. Native Methods: How to Add Delivery Charge on Shopify
  4. Beyond the Basics: The Move to Shopify Functions
  5. The Nextools Playbook: A Structured Implementation Strategy
  6. Advanced Scenarios in Delivery Customization
  7. Technical Decision Tree: Choosing the Right Nextools Tool
  8. Step-by-Step: Implementing a Conditional Delivery Charge with ShipKit
  9. Compliance, Privacy, and Performance
  10. Measuring Success and Iteration
  11. Nextools Shopify App Suite (Quick Links)
  12. Conclusion
  13. FAQ

Introduction

Configuring a reliable shipping strategy is often the final hurdle before a Shopify store goes live, yet it remains one of the most complex areas of e-commerce operations. For Shopify Plus merchants and large-scale agencies, the standard “flat rate” approach frequently falls short. Whether you are dealing with the impending deprecation of Shopify Scripts, navigating the nuances of Shopify Markets, or trying to calculate surcharges for heavy items across multiple shipping zones, the technical debt of a poorly implemented delivery charge system can be staggering. At Nextools, we specialize in helping developers and merchants navigate these complexities using Shopify Functions and Checkout Extensibility.

This post is designed for Shopify Plus merchants, digital agencies, and technical leads who need to know how to add delivery charge on Shopify using both native tools and advanced programmatic logic. We will move beyond basic settings to explore how to implement conditional surcharges, dynamic rates, and custom delivery logic that remains future-proof. Our thesis follows a disciplined engineering workflow: we clarify the business constraints, confirm the platform’s current limits, choose the simplest durable approach—prioritizing Shopify Functions—and implement with a rigorous QA and measurement plan.

By the end of this guide, you will understand the full spectrum of delivery charge options, from standard shipping profiles to the advanced customization capabilities offered within the Nextools Shopify App Suite.

Understanding the Shopify Shipping Infrastructure

Before adding a single dollar to a delivery fee, you must understand the hierarchy of Shopify’s shipping architecture. The platform uses a nested logic system: Shipping Profiles > Shipping Zones > Shipping Rates.

Shipping Profiles and Scoping

Shipping profiles allow you to group specific products together. For example, if you sell fragile glassware and standard apparel, you shouldn’t charge the same delivery fee for both. By creating a separate profile for “Fragile Items,” you ensure that the delivery charge reflects the specialized handling required.

However, a common technical pitfall occurs when a customer mixes products from different profiles. Shopify’s default behavior is to “stack” or “blend” these rates. If Profile A has a $10 flat rate and Profile B has a $15 flat rate, the customer sees a $25 delivery charge. For high-volume merchants, this can lead to cart abandonment. Solving this requires advanced logic to either consolidate rates or apply specific discount rules, often handled via the Delivery Customization API in Shopify Functions.

The Role of Shopify Markets

Since the introduction of Shopify Markets, delivery charges are no longer just about geography; they are about currency, duties, and local expectations. A delivery charge for a customer in Italy must be managed differently than one in the United States, even if the weight of the parcel is identical. You must ensure that the shipping zone you are editing is mapped correctly to an active Market. If a country is in a shipping zone but not an active Market, the checkout will fail, leading to support tickets and lost revenue.

Native Methods: How to Add Delivery Charge on Shopify

For many straightforward use cases, Shopify’s native admin settings are sufficient. These are the “building blocks” of your delivery strategy.

Flat Rate Delivery Charges

Flat rates are the simplest way to add a delivery charge. You define a name (e.g., “Standard Ground”) and a fixed price.

  1. Navigate to Settings > Shipping and Delivery.
  2. Click on the relevant Shipping Profile.
  3. Locate the Shipping Zone and click Add Rate.
  4. Select Flat Rate, enter the price, and save.

While simple, flat rates lack the nuance needed for profitability. If your shipping costs fluctuate based on carrier surcharges, a static flat rate may eat into your margins.

Price-Based and Weight-Based Rates

To add more logic, merchants often use conditional rates.

  • Price-Based (Order Amount): You might offer a $10 delivery charge for orders under $100 and free shipping for orders over $100.
  • Weight-Based: Essential for stores selling heavy goods. You can set a charge of $5 for 0-5kg and $15 for 5.1-10kg.

Technical Constraint: These native conditions are “AND” based within their own category but cannot easily cross-reference other data points (like customer tags or specific product collections) without external help. This is where SupaEasy becomes a critical part of the stack, allowing you to generate Functions that handle these complex intersections.

Beyond the Basics: The Move to Shopify Functions

For Shopify Plus merchants, the traditional way of customizing delivery charges involved Shopify Scripts (specifically ShippingScripts). However, Shopify is transitioning to Shopify Functions. Functions are more performant, as they run on Shopify’s global infrastructure rather than a virtual machine, and they are compatible with the new Checkout Extensibility.

Why Functions Matter for Delivery Charges

If you need to add a delivery surcharge based on a customer’s postal code, or if you want to hide certain shipping methods when a specific discount code is applied, Functions are the modern solution. Unlike Scripts, which were written in Ruby, Functions can be built in any language that compiles to WebAssembly (Wasm), though Rust and JavaScript are the standards.

At Nextools, we’ve built our tools to bridge the gap between “no-code” and “heavy-code.” Our app ShipKit uses these APIs to allow you to create dynamic shipping rates based on cart totals, item quantities, or even specific zip code tiers without writing a single line of Rust.

The Nextools Playbook: A Structured Implementation Strategy

When a client asks us how to add delivery charge on Shopify for a complex use case, we don’t start with code. We follow a five-step engineering workflow.

1. Clarify the Goal and Constraints

First, we audit the existing environment.

  • What is the Shopify Plan? (Certain Functions require Plus).
  • What is the Checkout Type? (Is the store still on checkout.liquid or have they migrated to Extensibility?).
  • What is the Discount Stack? Delivery charges often conflict with “Free Shipping” discounts. We must decide which logic takes precedence.

2. Confirm Platform Capabilities and Limits

Shopify’s Delivery Customization API has limits. For example, it can hide, rename, or reorder rates, but it cannot “create” a new carrier-calculated rate out of thin air—it modifies what the carriers or shipping profiles provide. We check if the merchant needs HideShip to suppress certain rates for specific customer segments (like VIPs or wholesale accounts).

3. Choose the Simplest Durable Approach

We always advocate for a “Functions-first” approach. If the requirement is to add a $5 “Carbon Neutral” surcharge to every order, we look at whether this can be done via a flat rate or if it needs to be a dynamic line item. If the merchant needs to migrate from an old Ruby Script, we use the migration wizard in SupaEasy.

4. Implement Safely

We never deploy delivery logic directly to a live production store. We use development stores or Shopify Plus sandbox environments to test the logic.

  • QA Scenarios: We test “edge cases”—what happens if the cart is empty? What if the customer is in a remote region? What if they use a “Buy Now, Pay Later” payment method?

5. Measure and Iterate

After deployment, we monitor the impact.

  • Checkout Completion: Did the new delivery charge cause a drop in conversion?
  • AOV (Average Order Value): Did a tiered delivery charge (e.g., $10 charge for orders under $50) successfully push customers to add more items to their cart?

Advanced Scenarios in Delivery Customization

Let’s look at real-world scenarios where standard Shopify settings fail and where the Nextools Shopify App Suite provides the solution.

Scenario A: The “Bulky Item” Surcharge

A merchant sells both small accessories and large furniture. If a customer buys a sofa, the delivery charge must increase by $50. The Solution: Using ShipKit, you can create a rule that detects a specific product tag (e.g., bulky) and adds a flat surcharge to the existing shipping rate. This ensures the merchant doesn’t lose money on freight costs.

Scenario B: Hiding Express Shipping for Fraud Prevention

High-risk orders often use express shipping to get the goods before the credit card is flagged. The Solution: By combining Cart Block and HideShip, a developer can create logic that hides “Next Day Air” if the order’s fraud risk score is medium or high, or if the shipping address doesn’t match the billing address.

Scenario C: Delivery Charges for International Markets

In Italy, many merchants use specific local carriers. Managing these via one global profile is impossible. The Solution: We recommend using PosteTrack for tracking, while using HideShip to ensure that Italian customers only see relevant local rates like Poste Italiane or BRT, rather than generic “International Shipping” options.

Technical Decision Tree: Choosing the Right Nextools Tool

When determining how to add delivery charge on Shopify using our suite, use this checklist:

  1. Do you need to hide or rename an existing rate?
    • Use HideShip. Ideal for B2B stores hiding residential shipping for wholesale tags.
  2. Do you need to create entirely new, dynamic shipping rates based on complex logic?
    • Use ShipKit. Perfect for percentage-based rates or zip-code tiers.
  3. Are you migrating from Ruby Scripts to Functions?
    • Use SupaEasy. This is the powerhouse for developers needing AI-assisted function generation.
  4. Do you need to add custom fields or checkboxes to the delivery step (e.g., “Leave at front door”)?
    • Use Formify. This allows you to collect data at checkout that can influence how the delivery is handled.

Step-by-Step: Implementing a Conditional Delivery Charge with ShipKit

To demonstrate the “Simplest Durable Approach,” here is how you would add a conditional delivery charge using ShipKit.

  1. Install the App: Navigate to the Shopify App Store and install ShipKit.
  2. Create a New Rate: Within the app, click “Create Rate.”
  3. Define the Base Price: Set your standard charge (e.g., $8.99).
  4. Add Conditions: Select “Product Tag” or “Collection.” For example, if the collection is “Heavy Machinery,” add a $40 surcharge.
  5. Set Geographical Constraints: Limit this rate to specific Zip Codes or Countries.
  6. Test in Checkout: Use the “Free Dev Store” plan to verify the rate appears only when the conditions are met.

ShipKit is available at $8.99/month (or $86.99/year, as listed on the Shopify App Store at time of writing) and offers a robust alternative to custom-coded private apps.

Compliance, Privacy, and Performance

When you add delivery charges, you are handling sensitive customer location data. It is vital to maintain GDPR compliance by only using the data necessary for the calculation. Shopify Functions are “privacy-by-design” because they run within Shopify’s secure environment and don’t require sending cart data to external third-party servers (unlike legacy “Carrier Service API” apps).

Furthermore, performance is a conversion factor. Apps in the Nextools Shopify App Suite are optimized for speed. Because they utilize the native Shopify Functions infrastructure, there is zero “flash of unstyled content” or delay in the checkout loading—problems frequently seen with older, script-heavy apps.

Measuring Success and Iteration

Adding the charge is only half the battle. You must measure the impact on your bottom line. We recommend tracking:

  • Shipping Revenue vs. Actual Cost: Are your delivery charges covering your carrier bills?
  • Cart Abandonment at the Shipping Step: If this spikes after you add a new charge, your fee might be too high or your naming might be confusing.
  • Customer Support Tickets: Are customers asking why a certain rate isn’t available? Use HideShip to provide clear, renamed rates that explain the logic (e.g., “Heavy Item Freight” instead of “Standard Shipping”).

Nextools Shopify App Suite (Quick Links)

To implement these strategies effectively, we recommend exploring our full suite of tools:

Conclusion

Adding a delivery charge on Shopify is a task that ranges from simple administrative clicks to complex engineering challenges involving the Delivery Customization API. For the modern Plus merchant, the goal is to create a delivery experience that is fair to the customer and protective of the store’s margins.

By following the Nextools Playbook, you ensure that every charge you add is:

  • Validated against business constraints and platform limits.
  • Implemented using the most durable tool available (prioritizing Shopify Functions).
  • Tested in a safe environment to prevent checkout failures.
  • Optimized for performance and transparency.

If you are ready to move beyond basic shipping settings and build a truly dynamic checkout, we invite you to explore the Nextools Shopify App Suite. Our tools are built to give you the power of custom development with the ease of a managed app. Whether you need to migrate from Scripts using SupaEasy or create complex rates with ShipKit, we have the infrastructure to support your growth.

FAQ

Do I need Shopify Plus to add custom delivery charges?

Standard shipping rates (flat, weight-based, and price-based) are available on all Shopify plans. However, advanced delivery customization using Shopify Functions or hiding/renaming rates based on complex logic (like customer tags) is significantly more powerful on Shopify Plus. While some apps in our suite work on all plans, the most robust checkout extensibility features are reserved for Plus merchants.

How can I test my new delivery charges without affecting customers?

You should always use a Development Store or a Shopify Plus sandbox store for initial testing. Once the logic is verified, you can use Shopify’s “Preview” mode for Checkout Extensibility. For our apps, like ShipKit, we offer a “Free Dev Store” plan (as listed on the Shopify App Store at time of writing) so you can build and QA your rules indefinitely before going live on a paid production plan.

Can I add a delivery charge that changes based on the discount code used?

Yes, but this typically requires Shopify Functions. Native Shopify settings do not allow shipping rates to “see” which discount code is currently in the cart. By using SupaEasy, you can create a Function that monitors the discount_codes field in the checkout payload and adds or modifies a delivery charge accordingly.

Will adding these apps slow down my Shopify checkout?

No. All Nextools apps designed for the checkout—such as HideShip and ShipKit—leverage Shopify Functions. Unlike traditional apps that rely on external API calls during the checkout process, Functions run natively on Shopify’s servers. This ensures the fastest possible response time and zero impact on your conversion rate due to latency.

SupaEasy is a product built & designed by Nextools

Company

© [2024] website by Nextools. All Rights Reserved. PIVA: 16711981007