Fulfilling orders using FEFO and FIFO

Freshly assigns batches to orders automatically using First-expire, First-out (FEFO) or First-in, First-out (FIFO), so the oldest stock leaves first. When an order is created or updated in Shopify, Freshly picks batches for each batch-tracked item and shows them on the order in Freshly and on your Freshly packing slips.

FEFO and FIFO in short

  • FEFO sends out the batch that expires first. Use it for perishable goods so less stock expires on the shelf.
  • FIFO sends out the batch that arrived first. Use it when your products don't have expiry dates.

How Freshly picks a batch

Freshly sorts a product's available batches like this:

  1. Earliest Expiry date first.
  2. If expiry dates match or are missing, earliest Received date first.
  3. If both are missing, the batch created first in Freshly.

Batches with an expiry date are always used before batches without one. If one batch doesn't have enough quantity, Freshly splits the item across the next batches in the same order.

Freshly skips batches that are expired, out of stock, or at an inactive location. Batches are taken from the location fulfilling the order

Order with batch assigned

Your packing slips show the same batch details. See Editing your packing slip template to change what's printed.

What happens when an item is oversold or on backorder?

Freshly only assigns batches that have stock. If you allow overselling in Shopify and every batch for the item is at 0 when the order comes in, the line item is left without a batch. If a batch has some stock but not enough, Freshly assigns what it has and leaves the rest without a batch. Freshly doesn't go back and assign those units when you add a new batch later.

If you sell on backorder and only fulfill once new stock arrives, assign batches at fulfillment instead of when the order is created:

  1. Turn off auto-assignment (see Turn off auto-assignment below).
  2. In Shopify Flow, create a workflow with the Order fulfilled trigger and the Assign batches to order in Freshly action. Follow the steps in Bulk auto-assigning batches through Shopify.

Freshly then assigns batches to each order when it's fulfilled, using the batches that are in stock at that moment. Until an order is fulfilled, its quantity isn't taken out of any batch in Freshly, so your batch totals can be higher than Shopify's available quantity while orders are open.

For orders that already have the wrong batch, change it on the order as described below.

Change the assigned batch

Open the order in Freshly Orders, click Unassign next to a batch, then use Assign batch to pick another active batch. To redo the automatic pick for the whole order, click Auto-assign batches. See Manually selecting inventory batches for your orders.

Unassign batch in Freshly > Orders

Turn off auto-assignment

If you prefer to assign batches yourself when you fulfill:

  1. In Freshly, go to Preferences.
  2. In Order fulfillment, clear Enable auto-assignment of batches to customer orders.
  3. Click Save.
Disable the auto-assignment of batches to customer orders

This option is on the paid Freshly plan. With it off, you can still assign batches in bulk or with Shopify Flow. See Bulk auto-assigning batches through Shopify.

Still need help? Contact Us Contact Us