How to configure a carrier in PrestaShop
A carrier misconfigured in PrestaShop results either in wrong shipping costs, or no delivery option at all at checkout. Getting it right sits at the intersection of three settings: zones, price ranges, and authorised customer groups.
Creating and configuring a carrier
-
Create the carrier
From the Carriers tab, a new carrier is defined with a name, an indicative delivery time and an associated logistics method (home delivery, pickup point).
-
Set the price ranges
The rate can be calculated either by weight range or by order amount range. Each range must cover a continuous span, with no gap between two tiers, otherwise some orders would have no applicable rate at all.
-
Link the delivery zones
A carrier only appears for the zones it's explicitly linked to. A zone that's been created but not attached to the carrier explains most cases where a carrier stays invisible for certain addresses.
-
Check the authorised customer groups
Each carrier can be restricted to certain customer groups (visitor, logged-in customer, specific group). A forgotten restriction can make the carrier disappear for some visitors with nothing else appearing to be wrong.
-
Test with a real cart
Simulating an order with different addresses, weights and amounts lets you check that each combination returns the expected rate, before going live.
Native carrier or third-party module
PrestaShop natively supports creating carriers with pricing rules by weight or amount, which is enough for many stores. For more specific services such as Mondial Relay pickup points, Colissimo label printing or Chronopost tracking, a third-party module dedicated to the carrier adds the necessary logic and sometimes the interface, building on the native carrier system rather than replacing it.
This distinction matters when diagnosing an issue: a shipping cost calculation problem is generally down to the native rules (zones, ranges), while a problem with the pickup point widget or label printing is down to the third-party module and its own configuration, often an API key to fill in and an active merchant account with the carrier.
Common mistakes
- Leaving a gap between two weight or price ranges, which blocks the rate calculation for orders that fall in that uncovered span.
- Forgetting to link the carrier to the customer's geographic zone, leaving the carrier invisible for that destination.
- Configuring a carrier module without an active merchant account or a valid API key with the provider, which blocks real-time cost calculation.
- Changing price ranges without rechecking pending orders that might still be using the old rates shown in cache.
Default carrier and display order
When several carriers are eligible for the same order, PrestaShop displays them in a configurable order and highlights the one set as the default carrier. This setting has a direct commercial impact: showing the cheapest or fastest carrier first directly influences the customer's choice at checkout.
You can also reserve certain products for certain carriers, useful for excluding a standard carrier on bulky or fragile items. One caveat, though: PrestaShop has no native setting for this by product category. The restriction is set product by product, in the Shipping tab of the product page, under Available carriers — and if no carrier is ticked there, all of them stay on offer. Across a whole catalogue, that means either a bulk edit or a third-party module.
Frequently asked questions
Why doesn't a properly configured carrier appear at checkout?
Can free delivery be offered above a certain amount?
Do you need a module for every carrier?
Describe your need in one minute
A few targeted questions so I can reply with an estimate rather than another questionnaire.