Smart Carrier Rules: setup and help

Quick start

  1. Upload and install the Smart Carrier Rules ZIP through Modules > Module Manager, then select the intended shop.
  2. Open Shipping Rules > Settings > Configuration, review Enable rule engine and Show cost note, then Save.
  3. Open Shipping Rules > Carrier Setup when you need category/zone restrictions or supported PS8/9 Ignore weight behavior.
  4. Add a Shipping Rule under Rules; set Rule name, Priority, Root operator and a narrow Conditions and actions selection, then Save.
  5. Open Shipping Rules > Simulator, choose actual Cart contents and matching address, group and subtotal inputs, then click Run simulation.
  6. Check Shown/Hidden results, condition traces and NO CARRIER LEFT, then compare a matching and non-matching cart in the installed checkout.
  7. On PrestaShop 9, verify the actual charged shipping total with a test order before relying on surcharge or free-shipping actions.

Requires PrestaShop 1.7 or later and PHP 7.1 or later.

Setup manual

Install Smart Carrier Rules

Requirements

Requires PrestaShop 1.7 or later and PHP 7.1 or later.

Upload the release ZIP through Modules > Module Manager > Upload a module and install it. Open Shipping Rules > Rules. The menu also contains Carrier Setup, Simulator and Settings.

Select the intended shop before creating rules or carrier profiles. Rules and carrier profiles are scoped by shop. Configure the carriers themselves in PrestaShop before adding module restrictions.

Version-dependent behavior

Function PrestaShop 1.7 PrestaShop 8 PrestaShop 9
Carrier visibility Front JavaScript plus a server-side carrier-selection guard Native delivery-option filter Native delivery-option filter
Rename and ETA presentation Front layer Native filtered carrier data Native filtered carrier data
Surcharge and free-shipping calculations Presented in labels/simulator; native charged cost is unchanged Presented in labels/simulator; native charged cost is unchanged Applied through the native package-shipping-cost hook
Ignore native weight ranges Unavailable Available for the supported carrier case Available for the supported carrier case

The module adds no core class override. Test the real checkout you use, including any one-page or express checkout. Custom checkout compatibility depends on that checkout using the relevant hooks and carrier data.

Review configuration

Open Shipping Rules > Settings > Configuration.

Setting Default Use
Enable rule engine Yes Turns the module's live checkout processing on or off.
Front debug data No Enable temporarily when checking the PrestaShop 1.7 front layer. Turn it off after diagnosis.
Show cost note Yes Shows the version-dependent cost-enforcement explanation.
Simulator subtotal basis Tax incl. Chooses which simulator subtotal override is marked as preferred. It does not change the tax-excluded free-shipping threshold basis.

Click Save.

Configure individual carriers

Open Shipping Rules > Carrier Setup and edit a carrier.

  • Active starts as Yes for a new profile. Set No to leave that carrier under native PrestaShop behavior for this profile.
  • Restrict to categories offers the carrier only if the cart contains a product from the selected categories. Selected categories include their descendants. Leave the selection empty for every category.
  • Restrict to zones limits the profile to the selected delivery zones. Leave it empty for every zone.
  • Weight mode starts as Respect native weight ranges. On PrestaShop 8/9, Ignore weight (stay available beyond weight ranges) can keep a weight-billed carrier available beyond its ranges when its native out-of-range behavior would disable it. Cost uses the highest defined weight range. This does not bypass unrelated native carrier restrictions.

Click Save, then test the carrier in the simulator and checkout. Carrier profiles use carrier references so normal PrestaShop carrier revisions can retain the association.

Create a rule

General

In Shipping Rules > Rules, add a Shipping Rule and complete General.

Field Initial value or behavior
Rule name Required name for staff to recognize.
Description Optional internal explanation.
Active Yes. Turn off while preparing a rule that should not yet affect checkout.
Priority 0. Higher values run first. Ties use the lower rule ID.
Root operator AND. Choose OR when any condition should be sufficient.
Start date Empty means no start boundary.
End date Empty means no end boundary.

An active rule with no conditions matches without a condition restriction, subject to its date window. Start with a narrow condition while testing.

Conditions and actions

Open Conditions and actions. Use Add condition, then choose Type, Operator and Value. Negate reverses the condition. Entity pickers can supply IDs through Copy selected entity IDs to focused condition.

The available condition types are Customer group, Category, Product, Manufacturer, Postcode, Country, Zone, Subtotal, Weight, Quantity and Date/time.

  • Use entity IDs for group, category, product, manufacturer, country and zone selections.
  • Use numeric comparisons for subtotal, weight and quantity. between min:max takes two numeric bounds, such as 10:20.
  • Postcode patterns support * wildcards, such as AB*, and numeric ranges, such as 10000-19999.
  • Stock-availability conditions are not available in this release.
  • Date/time accepts a JSON object with boundaries and optional weekday/time constraints. Weekdays use 1 for Monday through 7 for Sunday. For example:
{"days_of_week":[1,2,3,4,5],"time_start":"09:00","time_end":"17:00"}

Use Add action and select the desired action:

Action Fields and behavior
Hide carrier Select the target Carrier IDs.
Show only carriers Select the carriers to keep from the eligible list. It does not normally make a natively unavailable carrier available.
Fixed surcharge Enter Amount excl. in the shop's default currency.
Percent surcharge Enter Percent.
Free shipping over threshold Enter a positive Free-shipping threshold (tax excl.) in the default currency.
Rename label Enter Label for the relevant languages.
Append label Enter text to append to the carrier's final label.
ETA text Enter ETA for the relevant languages. This is text, not a calculated delivery date.

Use the carrier picker to copy current carrier IDs into the focused action. Saved associations resolve carrier references. Leave targets empty only for an action that permits applying to all eligible carriers. Hide and show-only actions require carrier targets.

The action text language controls let you enter translated label and ETA text. Save the rule, then use its Test action or open Simulator.

If Label or ETA is empty in the current storefront language, the action loader uses the default shop language's text. Fill the default-language fields if you want a fallback for untranslated languages.

Understand overlapping rules

The engine applies active matching rules in descending priority and then ascending ID.

  1. All matching hide actions apply first. A show-only action does not restore a hidden carrier.
  2. The highest-priority usable show-only action wins. Lower show-only actions do not keep narrowing its result.
  3. Fixed surcharges are added first. Percentage surcharges then apply successively to the running shipping total.
  4. A qualifying free-shipping action makes the final shipping amount zero, overriding surcharges. Its threshold compares the tax-excluded subtotal.
  5. The first non-empty rename and first non-empty ETA win in priority order. All applicable append-label texts are accumulated.

Fixed amounts and thresholds use the shop's default currency and are converted to the cart currency for evaluation. A single rule is not necessarily the winner for every action: visibility, cost, name and ETA can come from different rules.

Use the simulator

Open Shipping Rules > Simulator.

  1. Select real products under Cart contents. Category/manufacturer selection uses representative products rather than reproducing every possible cart from that selection.
  2. Set Customer groups, Country, Zone and Postcode.
  3. Supply Subtotal excl. override, Subtotal incl. override, Weight override or Quantity override only when needed.
  4. Set Date/time for date-based rules.
  5. Click Run simulation.

Inspect each carrier's Shown or Hidden result, matched rules, expected and actual condition values, surcharge breakdown, free-shipping result, final label and ETA. NO CARRIER LEFT means this simulated cart has no remaining delivery choice.

The simulator uses the same rule engine as checkout, with a temporary cart and address that it removes afterwards. Its result still depends on the inputs, native eligibility and carrier integrations; read any notes about external carriers. On PrestaShop 1.7 and 8, simulated surcharge and free-shipping results are informational; a test order still uses the native shipping cost.

Verify and troubleshoot

Checkout test

Create one matching cart and one non-matching cart using the same products, quantities, address, group and time as your simulation. Confirm the carrier list, labels and ETA. On PrestaShop 9, verify the actual shipping total and test an order before enabling cost rules for customers.

Common problems

  • A carrier is missing before rules apply. Check its native shop, group, zone, product and range settings. Show-only generally filters available carriers.
  • No carrier remains. Read the hide/show-only traces and carrier-profile restrictions. Disable the responsible rule or adjust its targets.
  • A surcharge appears but is not charged. Native cost mutation requires PrestaShop 9. Labels on 1.7/8 are informational.
  • The wrong label appears. Check priority, the current language and any append-label actions from other matching rules.
  • Simulation differs from checkout. Match the complete inputs, choose actual products, and read external-carrier replay notes. Test the installed checkout integration.
  • PrestaShop 1.7 visibility is unchanged. Confirm the front script is loading and the checkout exposes the expected carrier markup and selection flow.
  • Tables, menu or hooks are missing. Open Shipping Rules > Settings > System Check.

The module does not create shipping labels, retrieve live carrier rates, track parcels or manage warehouses.

Uninstall

Record or back up your rules and carrier profiles before uninstalling through Module Manager. Uninstall removes the module menu, declared rule/condition/action/profile tables and its configuration. The checkout then returns to the remaining native and third-party carrier behavior.

Questions

No questions about this module yet

Ask anything about installation, compatibility or setup. Answers appear here.

Known Issues

8

Security hardening

ResolvedUpdated:
Fixed in: 1.1.8
Improved protection of administration actions.

Selection fields could target unintended products or carriers

ResolvedUpdated:
Fixed in: 1.1.4
Saving untouched selection fields or choosing an unsupported selection mode could apply rules too broadly or target the wrong products.

Delivery estimate reduced to one character

ResolvedUpdated:
Fixed in: 1.1.2
Checkout could show only one character of a carrier delivery estimate after a shipping rule rewrote the option.

Ignore-weight carriers still disappeared

ResolvedUpdated:
Fixed in: 1.1.1
A carrier configured to ignore weight ranges could remain unavailable at checkout when cart weight exceeded its normal range.

Rules could hide the wrong carriers

ResolvedUpdated:
Fixed in: 1.0.1
A show-only rule targeting a deleted carrier could hide every carrier, and overlapping show-only rules could incorrectly narrow the highest-priority result.

Simulator results could differ from checkout

ResolvedUpdated:
Fixed in: 1.0.1
Simulated subtotal, weight and quantity changes were not consistently reflected in carrier eligibility, shipping prices, taxes and free-shipping calculations.

Time and numeric conditions could match incorrectly

ResolvedUpdated:
Fixed in: 1.0.1
Time rules could use the wrong timezone, while invalid numbers or incomplete ranges could produce incorrect rule matches.

Translated delivery labels were not preserved

ResolvedUpdated:
Fixed in: 1.0.1
Carrier labels and delivery estimates were not consistently saved and restored for each language.

Feature Requests

5

Implemented

Conditional carrier rules

Implemented
Combine conditions for customers, products, categories, brands, destinations, cart totals, weight, quantity and dates to decide which carriers appear.

Shipping adjustments and delivery labels

Implemented
Apply fixed or percentage surcharges, free-shipping thresholds, custom carrier labels and delivery estimates.

Checkout rule simulator

Implemented
Preview carrier availability and shipping adjustments, including matched conditions and the winning rule.

Carrier Setup

Implemented
Configure category and delivery-zone restrictions for each carrier from a dedicated setup page.

Ignore carrier weight ranges

Implemented
On PrestaShop 8 and 9, keep an otherwise eligible carrier available outside its normal weight ranges, using its highest-range price.

Demo

Test the full module before you buy

Buy a licence later and keep your settings.

  • Your 30-day demo Test it on your own shop for 30 days from the first install.
  • Ready demo shop Explore a ready demo shop in your browser.
  • No registration No account, email or store domain needed.
Launch demo shop

By downloading, you accept the demo terms and privacy policy.

By opening this demo you accept the demo terms and the privacy policy.

Loading...
Back to top