Chilled & Dry Shipping for PrestaShop: installation and setup
Install and set up chilled and dry shipping: postcode zones and rates, chilled products, checkout restriction, parcels after the order.
Overview
The module is built for shops that sell ambient and chilled products. The customer keeps one cart, pays once and gets one order with a single shipping fee. The fee depends on the zone (country and postcode) and on the cart content: ambient only, chilled only or both. Chilled products are refused in zones the cold chain does not reach. Once the order is placed, the module splits it into parcels, one per type, each with its own carrier and tracking.
Installation
- In Modules > Module Manager, click Upload a module and send
dfcoldchain-1.0.2.zip. - The module creates its carrier, named Envío estándar. Rename it in Shipping > Carriers if needed: the module follows the carrier after any edit.
- Check that the carrier has a tax rule. At installation the module copies the one of the default carrier.
- Open the module configuration and start with the Diagnostics tab.
Four example zones are created at installation for Spain and Portugal (a city, the islands and autonomous cities, Madeira and the Azores, the mainland). Adapt or delete them before going live.
Zones and rates
Zones are read from top to bottom, lowest priority number first. The first active zone whose country and postcode match the address applies. A destination that matches no zone does not get this carrier, and chilled products are refused there.
Zone fields
- Zone name and Active.
- Priority: place precise zones (a city, islands) before broad zones (a whole country).
- Countries (ISO): one or more codes separated by commas, for example
ES,PT. - Postcodes: empty for the whole country, otherwise one code per line or separated by commas.
- Free from: free shipping threshold, 0 for none.
- Dry only, Chilled only, Dry and chilled: rates tax included, in the default currency.
- Chilled products can be delivered: unticked, any cart containing chilled products is blocked for this zone.
- Split the order into one shipment per class: unticked, the order leaves as one shipment (local delivery for example).
Postcode syntax
- exact value:
50001 - range:
50001-50020(both ends must have the same length), or50001..50020 - prefix:
07* - hyphenated code:
1000-001is read as an exact code. A range on the first 4 digits is written4000-4999.
Displayed fee
Rates are entered tax included. The module derives the tax excluded amount from the carrier rate for the customer address, so the displayed fee is always the one you entered, whatever the country. Amounts are converted to the cart currency.
Chilled products
In the Chilled products tab, select the categories concerned (Ctrl or Cmd for several) and tick Include subcategories if needed. A product is chilled if it belongs to one of these categories, even if it is not its default category. Everything else is ambient.
Product exceptions lets you search a product by name, reference or ID and force it to chilled or dry. Changes are saved immediately.
Parcels after the order
When an order is placed with the module carrier in a zone that splits shipments, the module creates one parcel per type present: chilled first, then dry. In the Shipments tab, set for each type:
- the carrier name shown to the customer (SEUR Frío for chilled and Transporte estándar for dry by default);
- the tracking URL, where
@is replaced by the tracking number.
In a zone without split, the order has a single shipment using the name and tracking URL of the order carrier.
Checkout
- Hide the other carriers when the module carrier is available: the customer sees one fee.
- Carriers always kept: store pickup for example. They stay visible and are not blocked by the chilled restriction.
- Free shipping threshold computed after vouchers: by default the threshold uses the products total tax included, before discounts.
- Notice on chilled product pages.
- Postcode checker in the cart when it contains chilled products.
- Button to remove chilled products when the address is not served.
How the block works
When the cart holds chilled products and the delivery address is outside the zone, the module removes the delivery options from the list PrestaShop builds for every checkout. Without a delivery option the order cannot be paid. The customer sees a message listing the products concerned, rendered through the displayBeforeCarrier hook of the native checkout and injected with JavaScript into one page checkouts that reload their carriers with AJAX.
For a guest customer, the cart is estimated with the shop country, or with the postcode typed in the cart checker, until the address is entered at checkout.
Customer texts
The product page notice and the block message are edited per language in the Checkout tab.
Simulator
The Simulator tab uses the saved zones to show the zone, the fee and the planned parcels for a country, a postcode, a products total and a content (dry, chilled or both). Save first if you changed the zones.
Diagnostics
The Diagnostics tab checks that the carrier exists and has a tax rule, that native free shipping thresholds are off (Shipping > Preferences), that no handling charge is added, that chilled products are defined and that no product is restricted to carriers. It also lists the modules acting on the same points (carriers, checkout, order validation). The Create the carrier again button repairs an installation whose carrier was deleted.
Orders
- Order page: a Shipments panel shows each parcel with its products, carrier, tracking number and URL, and status (To prepare, Shipped, Delivered).
- Customer email: tick the box before saving a shipped parcel to send its contents and tracking link. Template
dfcoldchain_shippedin the modulemails/folder, in English, Spanish, French and Portuguese. - Packing slip: one printable page per parcel, with a CHILLED banner for cold parcels.
- Rebuild shipments: use it after editing the order lines, while no parcel has shipped.
- Alert: if an order contains chilled products for a zone outside the cold chain, a red message says so.
- Customer side: when the order has several parcels or a tracking number, they appear in the order details of the customer account.
Known limits
- The module does not generate labels: create them with your carriers or in their modules.
- A product restricted to some carriers can make PrestaShop split the cart into several orders. Remove those restrictions.
- A native free shipping threshold (Shipping > Preferences) overrides the module zones.
- Zones and settings are shared by all shops in multistore.
- A native pack is classified by the pack product itself, not by its components.
- The back office is translated into English, Spanish, French and Portuguese.
- Each one page checkout has its own markup: test a full order as a guest and as a registered customer on a copy of the shop before going live.