Skip to content
All integrations Integration / Wilding Foods

Shopify to Be Cool couriers.

Wilding Foods cooks certified-organic, ready-made meals in Melbourne and delivers them chilled, once a week, across Victoria and New South Wales. The courier is Be Cool Refrigerated Couriers, and nothing in Shopify knew how to talk to it. Seventyfour Design designed and built the storefront; we built the integration behind it.

Visit store
  1. 01

    Shopify

    The cart, the checkout’s shipping rates, the orders and their fulfilments.

  2. 02

    Plutocracy shipping app

    The app that sits between the store and the courier, with its own screens for orders, batches and tracking.

  3. 03

    Be Cool API

    Zones, delivery windows, bookings and tracking numbers from Be Cool Refrigerated Couriers.

  4. 04

    AWS

    The app and the label generator run on Lambda, in Sydney.

  5. 05

    PostgreSQL

    Orders, addresses, deliveries, labels and batches.

The objective

What it
had to do.

A chilled meal cannot go out with any carrier on any day. Whether an order can be delivered at all, on which day and in which window, depends on the courier’s zone for that postcode. And every week the kitchen has a run of orders to book, box, label and hand over together.

Business objectives

  • Tell the customer whether their postcode can be delivered to, and when, before they reach checkout
  • Charge delivery by courier zone, with free delivery over a set order value or weight
  • Book a whole production run with the courier in one action, rather than keying each delivery into a portal
  • Print a label for every box, and a production list of what the run needs cooked
  • Put the courier’s tracking number on the Shopify order without anyone copying it across

The stack

  • Shopify
  • Be Cool API
  • NestJS
  • Angular
  • AWS Lambda
  • PostgreSQL

Key flows

How it runs.

4 flows

Flow 01

A delivery window, before checkout

The cart will not go to checkout until it knows the order can be delivered.

  1. 01 Shopify

    The cart asks for a postcode, and the checkout button stays locked until one is entered.

  2. 02 App

    The postcode is sent to the shipping app.

  3. 03 Be Cool

    Be Cool’s API returns the zone for that postcode and the delivery windows it can offer.

  4. 04 Shopify

    The customer picks a window, or is told the area is not delivered to.

  5. 05 Shopify

    The chosen window is saved on the cart as an attribute, so it arrives with the order.

Flow 02

Delivery priced at checkout

The app is registered with Shopify as a carrier, so the delivery rate at checkout is worked out live.

  1. 01 Shopify

    Checkout asks the app for a rate, passing the destination and the items.

  2. 02 Be Cool

    The address is checked against Be Cool. If it cannot be delivered to, no rate is offered.

  3. 03 App

    The price comes from the zone, using the prices the store has set for each one.

  4. 04 App

    Orders over the free delivery threshold, by value or by weight, are not charged.

  5. 05 Shopify

    Checkout shows one Refrigerated Courier rate, with the delivery window the customer chose.

Flow 03

Booking a production run

Orders collect in the app as they are paid. The team books them with the courier as a batch.

  1. 01 Shopify

    Order webhooks keep the app’s copy current as orders are created, paid, edited, cancelled and fulfilled.

  2. 02 App

    The team selects the orders for the run and sets a production date and a delivery date.

  3. 03 App

    Each order’s box count is worked out from its weight, and every box is given its own label number.

  4. 04 Be Cool

    The batch is booked through Be Cool’s API in one request, with the delivery window, the customer’s delivery notes and the depot.

  5. 05 PostgreSQL

    Each booking is saved against its order with its tracking number and labels.

  6. 06 App

    If a booking is missed, the batch can be re-run: it checks what Be Cool already holds and books only what is missing.

Flow 04

Labels, tracking and the kitchen list

What comes back from the courier goes where it is needed: onto the box, onto the order, and into the kitchen.

  1. 01 Shopify

    Each order is fulfilled with its Be Cool tracking number, so it shows against the order.

  2. 02 AWS

    Labels are generated as a PDF, one per box, with a barcode, the address, the delivery note and a box count such as 1/3.

  3. 03 App

    A manifest adds up every line item across the batch, so the kitchen knows how many of each meal the run needs.

  4. 04 App

    Any order can be looked up later by its order number or its tracking number.

More integrations.

All integrations

Your systems, connected

What does your
store not talk to?

Tell us which systems you run and where the re-keying happens. We’ll come back within one business day with where we would start.

Start a project