Title: Simple Connection for ChronoFresh
Author: Thomas Lloancy
Published: <strong>30 de julio de  2025</strong>
Last modified: 2 de septiembre de  2026

---

Buscar plugins

![](https://ps.w.org/simple-connection-for-chronofresh-woocommerce/assets/banner-
772x250.gif?rev=3354292)

![](https://ps.w.org/simple-connection-for-chronofresh-woocommerce/assets/icon-256x256.
gif?rev=3354292)

# Simple Connection for ChronoFresh

 Por [Thomas Lloancy](https://profiles.wordpress.org/tlloancy/)

[Descargar](https://downloads.wordpress.org/plugin/simple-connection-for-chronofresh-woocommerce.1.4.2.zip)

 * [Detalles](https://es-ar.wordpress.org/plugins/simple-connection-for-chronofresh-woocommerce/#description)
 * [Valoraciones](https://es-ar.wordpress.org/plugins/simple-connection-for-chronofresh-woocommerce/#reviews)
 *  [Instalación](https://es-ar.wordpress.org/plugins/simple-connection-for-chronofresh-woocommerce/#installation)
 * [Desarrollo](https://es-ar.wordpress.org/plugins/simple-connection-for-chronofresh-woocommerce/#developers)

 [Soporte](https://wordpress.org/support/plugin/simple-connection-for-chronofresh-woocommerce/)

## Descripción

If you sell food (or anything that must travel **ambient**, **fresh 0–8 °C**, or**
frozen**) with Chronopost Chronofresh, this plugin talks to the official SOAP APIs
from WooCommerce: shipping methods at checkout, pickup-point map, PDF labels, tracking,
and cancellation.

You need an **active Chronofresh contract**. The plugin does not replace Chronopost:
it uses the account number and password they give you. Out of the box the plugin
runs in **Test mode** on the public Chronopost sandbox account so you can try everything
without credentials — a warning banner stays visible in wp-admin, because sandbox
labels look real but **no parcel is ever picked up or shipped**. Switch to **Production
mode** and enter your own credentials before shipping.

### Features

 * Supports Chrono Ambient Relais 13, Chrono Fresh 13, Chrono Fresh Relais 13, Chrono
   13, Chrono Freeze 13, Chrono Relais 13.
 * **Fresh pickup points (code 6S)** — deliver fresh products (0°C – 8°C) to Chronofresh
   pickup points (must be enabled on your contract).
 * Dynamic pickup point map (Leaflet) with opening hours at checkout.
 * **Live parcel tracking** via Chronopost TrackingService (same shipping credentials).
 * **Label cancellation** directly from the order admin page.
 * **Bulk label generation** from the orders list.
 * **Auto order status change** after label generation (configurable).
 * **Per-product DLC** (expiration date) field — mandatory for ChronoFresh compliance.
 * **Explicit Test / Production mode** with a persistent admin banner while the 
   sandbox account is in use.
 * **Connection health check** — per-service diagnostics (SOAP extension, server
   reachability, credentials, and which pickup point product codes 86 / 5Q / 6S 
   your contract accepts), with Chronopost’s own error messages.
 * **Optional Ask (WordPress 7)** — under the health check and on the order Labels
   box: a sentence that _reads_ health, the saved pickup point, or tracking. It 
   never creates or cancels a label. Abilities: `chronofresh/get-connection-health`,`
   get-pickup-point`, `get-tracking`.
 * Debug logs in `/wp-content/uploads/simple-connection-for-chronofresh-woocommerce/
   scc-debug.log`.
 * Built-in **Getting Started** tab under WooCommerce  ChronoFresh.
 * Step-by-step guides in `docs/USER-GUIDE.md` (English) and `docs/MODE-DEMPLOI.
   md` (French).

### External services

This plugin connects to Chronopost APIs to handle shipping calculations, pickup 
point searches, label generation, and tracking.
 It sends customer shipping details(
address, postcode, city, weight) when searching pickup points or generating labels.
This service is provided by Chronopost: [Terms of use](https://www.chronopost.fr/terms),
[Privacy policy](https://www.chronopost.fr/privacy).

### Support

 * [Chronopost Web Services](https://ws.chronopost.fr)
 * WordPress.org forum
 * Premium support: [tlloancy@deter-mi.net](https://es-ar.wordpress.org/plugins/simple-connection-for-chronofresh-woocommerce/tlloancy@deter-mi.net?output_format=md)

## Instalación

 1. Upload the `simple-connection-for-chronofresh-woocommerce` folder to `/wp-content/
    plugins/`.
 2. Activate the plugin via the WordPress ‘Plugins’ page.
 3. Open **WooCommerce  ChronoFresh** (not WooCommerce  Settings). Switch the Mode 
    to **Production** and enter your Chronopost account number, password, and shipper
    phone. (Or keep **Test mode** to explore first — labels will not be real.)
 4. Run the **connection health check**, then add ChronoFresh methods in **WooCommerce
    Settings  Shipping** for your zones.

## Preguntas frecuentes

### What Chronofresh account / contract do I need?

A commercial Chronofresh contract from Chronopost (not a consumer Chronopost.fr 
login). Your sales rep gives you an **account number** and **API password**. Ask
them to enable the product codes you will use (for example `2R` home fresh, `6S`
fresh pickup points, `2S` freeze). Until a code is on the contract, Chronopost returns
errors such as 33 / 35.

### What is Test mode? Can I ship with it?

No. Test mode signs every call with the **official Chronopost sandbox** pair from
their Web Services documentation. It is only there so you can explore the plugin(
map, labels, workflow) before you have a contract. Sandbox labels look real but **
no parcel is ever picked up**. A warning banner stays visible in wp-admin until 
you switch to Production mode.

### Where do I enter the credentials?

WooCommerce  **ChronoFresh**  Settings tab: switch the Mode to Production, then 
fill in the account number and password. Also set shipper phone (printed on the 
label), default DLC in days, max kg per parcel, and optional auto order status. 
Store address under WooCommerce  Settings  General is the shipper on the label.

### The health check passes but label generation still fails.

The health check runs real calls on the **pickup-point** service, which lets it 
verify authentication and whether product codes 86 / 5Q / 6S are on your contract.
It deliberately does **not** call the label service, because the only way to test
that is to create a real label — the check will never do that behind your back. 
Generate a label on a test order: Chronopost errors (e.g. a home-delivery product
code missing from your contract) are shown on the order screen and in the debug 
logs.

### Can I generate a label with the Ask / AI field?

No. Ask only _reads_: connection health, the pickup point already saved on the order,
or Chronopost tracking for labels that already exist. Generate, regenerate and cancel
stay on the ChronoFresh Labels buttons.

### Where is Ask?

WooCommerce  ChronoFresh, under Connection health check; and at the bottom of the
ChronoFresh Labels box on an order. WordPress 7: Settings  Connectors (install the
AI plugin from that screen) then Settings  AI  Enable AI. If blocked, Tools  Connector
Approvals  approve this plugin.

### PHP SOAP?

Required. If the plugin shows that the extension is missing, ask your host to enable`
php-soap` (WooCommerce  Status).

### Where are debug logs?

/wp-content/uploads/simple-connection-for-chronofresh-woocommerce/scc-debug.log (
enable Debug mode in the settings). Older docs mentioned `/wp-content/uploads/chronofresh-
logs/` — use the path above.

### I don’t see the “Generate label” button / ChronoFresh Labels box on an order. Why?

The box appears on orders that use a ChronoFresh shipping method, or that contain
at least one product with a **Temperature type** set (product page  Shipping tab).
If neither applies — for example the order was shipped with another carrier and 
its products were created before the plugin was installed, so they have no temperature
type yet — the box is hidden. Also check **Screen Options** (top right of the order
screen): the “ChronoFresh Labels” panel may simply be unticked. Before 1.3.2 the
box also stayed hidden when products had no temperature type even on ChronoFresh
orders; that is fixed.

### What happens if a product has no temperature type, or “No temperature”?

At label generation it ships as **Ambient** (codes 5M / 5N / 5Q depending on the
method). The ChronoFresh Labels box shows a notice listing such products so you 
can set Fresh or Freeze on the product page before generating, if needed.

### Is it secure?

Admin and AJAX actions use nonces. Inputs are sanitized and outputs escaped. Chronopost
still receives order addresses when you search pickup points or generate labels (
see External services).

### How are Mix and Match Products labelled?

Child products inside a WooCommerce Mix and Match Products container are packed 
with the container: one label for the whole assortment, and the parcel weight includes
the children. They are not listed individually in the “ships as Ambient” notice —
look at the container product’s temperature type instead. WooCommerce Chained Products
is different: each linked product is an independent order line with no parent to
detect, so give every chained product its own weight on the product page (Shipping
tab) or parcel splitting by weight can be wrong.

### Can other bundling plugins group items onto one label?

Mix and Match Products is supported when that plugin is active. Other bundling plugins
can hook `sccfcw_order_item_parent_id` (the filter receives 0, the order item, and
the order) and return the container order item ID so those children are packed with
their parent the same way.

## Reseñas

No hay reseñas para este plugin.

## Colaboradores y desarrolladores

“Simple Connection for ChronoFresh” es un software de código abierto. Las siguientes
personas han colaborado con este plugin.

Colaboradores

 *   [ Thomas Lloancy ](https://profiles.wordpress.org/tlloancy/)

“Simple Connection for ChronoFresh” ha sido traducido a 1 idioma. Gracias a [los traductores](https://translate.wordpress.org/projects/wp-plugins/simple-connection-for-chronofresh-woocommerce/contributors)
por sus contribuciones.

[Traduce “Simple Connection for ChronoFresh” a tu idioma.](https://translate.wordpress.org/projects/wp-plugins/simple-connection-for-chronofresh-woocommerce)

### ¿Interesado en el desarrollo?

[Revisa el código](https://plugins.trac.wordpress.org/browser/simple-connection-for-chronofresh-woocommerce/),
echa un vistazo al [repositorio SVN](https://plugins.svn.wordpress.org/simple-connection-for-chronofresh-woocommerce/),
o suscríbete al [log de desarrollo](https://plugins.trac.wordpress.org/log/simple-connection-for-chronofresh-woocommerce/)
por [RSS](https://plugins.trac.wordpress.org/log/simple-connection-for-chronofresh-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Registro de cambios

#### 1.4.2

September 2, 2026:
 * Fixed: the Ask feature ignored WordPress’s Connector Approval
matrix and could send prompts to any active AI connector instead of only the one
checked for ChronoFresh under Settings  Connectors  Approvals. It now pins the approved
connector explicitly, and returns a clear error if none is checked. * Fixed: the`
relay_5Q` / `relay_6S` health-check ids never matched after sanitization, so a targeted
check (Run checks panel, or Ask asking specifically about 5Q/6S) silently ran every
diagnostic instead of just the one requested. No behavior change to the default “
run everything” flow.

#### 1.4.0

August 28, 2026:
 * Added: optional Ask field (WordPress 7 AI plugin + a connector)
under Connection health check and at the bottom of the order ChronoFresh Labels 
box. It only _reads_ health diagnostics, the saved pickup point, or tracking. It
never creates or cancels a label. * Added: Abilities `chronofresh/get-connection-
health`, `chronofresh/get-pickup-point`, `chronofresh/get-tracking` (`manage_woocommerce`,
mcp.public). * Docs: user guides cover Ask vs the existing Run checks / Track buttons.

#### 1.3.3

August 26, 2026:
 * Fixed: orders containing a WooCommerce Mix and Match Products
container generated one label per child product instead of one for the whole container.
Child items are now packed with their container instead of being treated as separate
parcels, and no longer listed individually in the “ships as Ambient” notice. * Improved:
a Mix and Match container’s parcel weight now includes the combined weight of its
child items, so it isn’t split into extra parcels just because the container product
itself has no weight set. * Note: WooCommerce Chained Products (StoreApps) adds 
its linked products as fully independent order items with no container reference
to detect, so this fix does not apply to it — make sure each chained product has
its own weight set on the product page (Shipping tab) so parcel splitting stays 
accurate.

#### 1.3.2

August 26, 2026:
 * Fixed: the pickup point block did not appear on the order confirmation(“
thank you”) page when the active theme overrides WooCommerce’s `order-details-customer.
php` template without the `woocommerce_order_details_after_customer_details` hook(
common in custom themes). The block is now also attached to `woocommerce_order_details_after_order_table`,
with a guard so standard themes never show it twice. * Fixed: a pickup point selected
on the cart page appeared deselected on the checkout page (and after every checkout
refresh), forcing the customer to pick it again. The widget now restores the point
saved in the session — highlighted in the list, marked on the map, opening hours
shown — as long as it is still among the points available for the current address.*
Fixed: the “Generate label” button and the ChronoFresh Labels box were hidden on
orders whose products had no temperature type saved yet (e.g. products created before
the plugin), even though label generation ships those products as Ambient by default.
The box now appears on any order using a ChronoFresh shipping method, and shows 
a notice listing products that will ship as Ambient so you can set Fresh/Freeze 
first. * Docs: new FAQ entries explaining when the ChronoFresh Labels box appears
and how products without a temperature type are shipped; troubleshooting rows added
to both user guides.

#### 1.3.1

August 26, 2026:
 * Fixed: **the pickup point chosen at checkout was not saved on
the order.** The save ran on `woocommerce_checkout_create_order` with `update_post_meta()`
before the order existed (ID 0), so the meta was silently lost; it now uses `update_meta_data()`
on the order object. Blocks (Store API) checkout, which never fired that hook, is
now supported too, including the “please select a pickup point” validation. * Fixed:
when the pickup point meta was missing, label generation silently searched the **
nearest** relay to the customer’s address and shipped there — potentially not the
chosen point. This fallback is removed: the label now fails with a clear, actionable
error instead. * Added: the chosen pickup point (name, address, relay ID) is now
visible on the admin order screen under the shipping address, on the customer’s 
thank-you page and order view, and in order emails. Orders placed before 1.3.1 with
a missing point show an explicit warning. * Fixed: the relay’s own postcode/city
are now saved and used on the label (previously the customer’s address city was 
sent for the relay block). * Fixed: the internal `chronofresh_code` shipping meta
no longer appears in customer-facing order details and emails.

#### 1.3.0

August 25, 2026:
 * Added: explicit **Test / Production mode** setting. Test mode
uses the public Chronopost sandbox account (nothing to type) and shows a persistent
wp-admin warning banner, because sandbox labels are never actually shipped. * Fixed:
the sandbox credentials are no longer silent defaults. Installs that never configured
real credentials used to generate sandbox labels that looked real; they now run 
in visible Test mode. In Production mode, missing credentials block label generation
with a clear error instead of falling back to the sandbox. * Added: **connection
health check** replacing the old single “Test API connection” button. Per-service
rows with live status: PHP SOAP extension, Chronopost server reachability, credentials,
and real contract checks for pickup point product codes 86 / 5Q / 6S (Chronopost’s
own error message is shown, e.g. when 6S is not on your contract). The label service
is deliberately not simulated — the panel says so honestly. * Compat: Tested up 
to WordPress 7.1. * Docs: readme FAQ rewritten for Test/Production mode and the 
health check; `docs/USER-GUIDE.md`, `docs/MODE-DEMPLOI.md` and the built-in Getting
started tab updated to match. * Design: native WordPress admin CSS on WooCommerce
ChronoFresh (settings, Getting started table/callout, health check panel).

#### 1.2.1

 * Released on July 24, 2026:
 * Updated: All plugin UI source strings switched to English so WordPress.org translations(
   GlotPress) use English originals.
 * Updated: French remains available via the fr_FR translation file / translate.
   wordpress.org.

#### 1.2.0

 * Released on July 22, 2026:
 * Added: New shipping method “Chrono Fresh Relais 13H” (product code 6S) — fresh
   delivery (0°C – 8°C) to pickup points, available at Chronofresh since the beginning
   of 2026.
 * Added: Pickup point map, opening hours and selection at checkout now fully support
   the fresh pickup point service.
 * Updated: Label generation maps fresh products to code 6S when a pickup point 
   is selected (DLC/expiration date included as required by Chronofresh).
 * Updated: Getting Started guide with the new 6S product code.
 * Added: Bilingual user guide (English + French) shipped in the docs/ folder.

#### 1.1.0

 * Released on May 27, 2026:
 * Added: Live parcel tracking via trackSkybillV2 (Chronopost TrackingService) directly
   in the order admin metabox.
 * Added: Label cancellation via cancelListSkybill — cancel any label from the order
   page.
 * Added: Bulk label generation from WooCommerce orders list.
 * Added: Automatic order status change after label generation (configurable).
 * Added: Per-product DLC (days until expiration) field — required by ChronoFresh
   for fresh/freeze shipments.
 * Added: Global default DLC setting under WooCommerce  ChronoFresh.
 * Added: Built-in Getting Started guide tab with step-by-step onboarding.
 * Fixed: Compliance with ChronoFresh requirements — expirationDate now respects
   per-product or global DLC setting.
 * Updated: Tested up to WordPress 7.0.

#### 1.0.4

 * Released on May 8, 2026:
 * Added: Interactive Leaflet map for pickup point selection.
 * Fixed: Compatibility issues with WooCommerce fragments and Stripe refreshes.
 * Improved: Performance and stability by removing legacy code and unused templates.
 * Improved: Better handling of AJAX race conditions at checkout.

#### 1.0.3

Released on August 25, 2025:
 * Added: Explicit select when no temperature is defined,
which default to ambient for label generation, avoiding any unrecognized state for
products linked to chronofresh via Expedition Class.

#### 1.0.2

Released on August 22, 2025:
 * Enhanced: Added support for mixed orders (ambient,
fresh, freeze) with any shipping method, including custom methods like alg_wc_shipping.*
Fixed: Resolved fatal error when generating labels for orders with deleted or invalid
products by safely handling null products. * Improved: Updated label generation 
to rely on product temperature types (_temperature_type) instead of shipping method,
ensuring accurate Chronopost codes (5M, 5Q, 2R, 2S). * Updated: Default Chronopost
test credentials to match provided API keys for seamless testing. * Enhanced: Improved
logging for skipped items and parcel splitting for better debugging. * Boost your
shipping with Premium features like real-time tracking and automated multi-label
generation at [deter-mi.net](https://deter-mi.net)!

#### 1.0.1

Released on August 9, 2025: Includes critical fix for nonce verification to ensure
secure and pickup api call bug

#### 1.0.0

 * Initial release with Chronofresh shipping and pickup point support.

## Meta

 *  Versión **1.4.2**
 *  Última actualización **hace 1 mes**
 *  Instalaciones activas **10+**
 *  Versión de WordPress ** 5.8 o superior **
 *  Testeado hasta **7.1.3**
 *  Versión de PHP ** 7.4 o superior **
 *  Idiomas
 * [Catalan](https://ca.wordpress.org/plugins/simple-connection-for-chronofresh-woocommerce/)
   y [English (US)](https://wordpress.org/plugins/simple-connection-for-chronofresh-woocommerce/).
 *  [Traducir a tu idioma](https://translate.wordpress.org/projects/wp-plugins/simple-connection-for-chronofresh-woocommerce)
 * Etiquetas:
 * [chronopost](https://es-ar.wordpress.org/plugins/tags/chronopost/)[Pickup Points](https://es-ar.wordpress.org/plugins/tags/pickup-points/)
   [shipping](https://es-ar.wordpress.org/plugins/tags/shipping/)
 *  [Vista avanzada](https://es-ar.wordpress.org/plugins/simple-connection-for-chronofresh-woocommerce/advanced/)

## Valoraciones

Todavía no se enviaron reseñas.

[Your review](https://wordpress.org/support/plugin/simple-connection-for-chronofresh-woocommerce/reviews/#new-post)

[Ver todas las reseñas](https://wordpress.org/support/plugin/simple-connection-for-chronofresh-woocommerce/reviews/)

## Colaboradores

 *   [ Thomas Lloancy ](https://profiles.wordpress.org/tlloancy/)

## Soporte

¿Tenés algo que decir? ¿Necesitás ayuda?

 [Ver el foro de asistencia](https://wordpress.org/support/plugin/simple-connection-for-chronofresh-woocommerce/)

## Donar

¿Te gustaría apoyar el progreso de este plugin?

 [ Doná a este plugin ](https://donorbox.org/wordpress-plugins)