Best before date tracking helps you monitor product expiry dates and manage stock rotation. You can enable this feature when creating products or add it to existing products.
Product attributes overview: Expiry dates are part of Mintsoft's comprehensive product attribute tracking system, which also includes:
Batch numbers β for grouping products manufactured together.
Serial numbers β for tracking individual items.
You can enable any combination of these attributes based on your business needs. For businesses in food, pharmaceuticals, or cosmetics, tracking all three attributes is common for complete traceability.
Prerequisites: client-level settings
Before configuring individual products, check your client-level settings:
Click Clients then Overview.
Click Actions then Edit.
In the Defaults tab, review the Auto Track All New Products With Expiry Date option:
If enabled: all newly created products will automatically have expiry date tracking enabled.
If disabled: you'll need to enable expiry date tracking manually for each product.
Note: This setting only affects new products created after it's enabled. Existing products aren't modified.
Why this matters: Understanding this setting helps you decide whether to configure it once at the client level (for businesses where most or all products need expiry tracking) or manage it product by product.
Enable best before dates for individual products
To track expiry dates on specific products:
Click Products then Overview.
Click Actions then Edit.
Click the Attributes tab.
Turn on the Product has Expiry or Best before date toggle.
Configure the logging behaviour:
LogExpiryDateInbound: controls whether expiry dates must be entered when receiving goods.
LogExpiryDateOutbound: controls whether expiry dates must be verified when picking orders.
Recommended setting: set both to True to maintain full traceability. Advanced options:
If you leave these fields empty, they'll default to match the "Product has Expiry or Best before date" toggle.
Setting LogExpiryDateOutbound to False means you track expiry dates for inventory visibility but don't enforce verification during picking (not recommended for food or pharmaceuticals).
Click Save.
Once enabled, you'll need to provide the expiry date each time you book stock in or out for that product.
Note: To add best before dates to multiple products at once, see our bulk upload guide.
Using expiry dates in warehouse operations
Once expiry date tracking is enabled, your warehouse team will capture these dates during receiving and picking operations using the Mintsoft Mobile App.
Receiving goods (ASN workflow)
When receiving products with expiry date tracking enabled:
Open the ASN in the mobile app.
Scan or select the product.
Enter the expiry date in one of three ways:
Manually type the date in DD/MM/YYYY, DD/MM/YY, DDMMYYYY, or DDMMYY format.
Use the date picker to select the date.
Enter batch number or serial number if also tracked.
Confirm the quantity received.
Important: The system won't allow you to proceed without entering the expiry date if LogExpiryDateInbound is set to True.
Picking orders
When picking products with expiry date tracking enabled:
The mobile app will guide you to pick from the location with the earliest expiring stock first (FEFO β First Expiring, First Out).
After scanning the product, you'll need to verify the expiry date:
Scan a GS1 barcode on the product, or
Manually confirm the expiry date shown.
If the expiry date doesn't match what the system expects, you'll be alerted to check the stock.
Note: This validation ensures accurate stock rotation and prevents mispicks.
Set warning periods
You can customise when to receive alerts about approaching expiry dates. The default warning period is 28 days before expiry.
Note: Warning periods can't exceed 365 days.
To set a custom warning period:
Click Products then Overview.
Find your product.
Click Actions then Edit.
Click the Extra Details tab.
Enter the number of days in the Best Before Date Warning Period in Days field.
Click Save.
Tip: Adjust warning periods based on your business needs:
Fast-moving products (high turnover): set 7β14 days β you'll turn the stock before expiry.
Standard products: keep the default 28 days.
Slow-moving products: set 60β90 days β gives you more time to run promotions or return to supplier.
Long shelf-life products (canned goods, dried products): set 90β180 days.
Example: A fresh produce distributor might set three days for lettuce but 14 days for root vegetables.
Troubleshooting and validation
What happens if expiry dates aren't entered?
During ASN receiving:
If LogExpiryDateInbound is True, the mobile app won't allow you to proceed without entering an expiry date.
You'll see an error message: "Expiry date is required for this product".
The goods can't be booked in until the date is provided.
During order picking:
If LogExpiryDateOutbound is True, the mobile app will prompt you to verify the expiry date.
If you scan a different product than expected (wrong expiry date), you'll be alerted.
This prevents mispicks and ensures the correct stock is being shipped.
Common validation scenarios
Scanning a product without an expiry date when tracking is enabled:
Error: "This product requires an expiry date. Please scan a GS1 barcode or enter manually."
Expiry date format issues:
Accepted formats: DD/MM/YYYY, DD/MM/YY, DDMMYYYY, DDMMYY.
The system will parse flexible date formats, but GS1 barcodes (format YYMMDD) are automatically detected and converted.
Mixed attributes (batch + expiry + serial):
If a product tracks multiple attributes, all enabled attributes must be provided.
View expiry date reports
Several reports help you monitor products with best before dates.
Products expiring report
View all products within their warning period:
Click Reports then Overview.
Click Products Expiring.
Use this report to:
Identify stock approaching expiry that may need promotional pricing.
Plan stock rotation activities.
Audit near-expiry inventory before month-end.
Generate pick lists for stock that needs to be moved to clearance areas.
Export tip: Use the scheduled reports feature to automatically email this report to warehouse managers every Monday morning.
Products in locations report
See all inventory with their attributes (expiry dates, batch numbers, serial numbers):
Click Reports then Overview.
Click Products in Locations.
Use this report to:
Audit all inventory with expiry dates by location.
Verify stock levels match physical counts during cycle counting.
Identify stock that should have expiry dates but is missing them.
Locate specific batches across multiple locations.
Filter tips:
Filter by client to see only your inventory (for 3PL environments).
Filter by warehouse for multi-site operations.
Export to Excel for further analysis.
Barcode verification report
Search for orders containing specific expiry dates:
Click Reports then Overview.
Click Barcode Verification Report.
Search for your required expiry dates.
Use this report to:
Trace which orders received products with specific expiry dates.
Respond to customer complaints or product recalls.
Verify that FEFO allocation is working correctly.
Audit picking accuracy for compliance reporting.
Product usage report
View detailed product movement with attribute information:
Click Reports then Overview.
Click Product Usage Report.
Turn on Include Extra Info.
Use this report to:
Track complete product movement history with all attributes.
Investigate stock discrepancies.
Verify that expiry dates were captured correctly during receiving.
Generate detailed traceability reports for audits.
Tip: Set up any of these reports as scheduled emails using our scheduled reports feature.
Frequent questions
Can I track attributes on inbound only?
Technically yes, but it's not recommended for most use cases:
You can set LogExpiryDateInbound to True and LogExpiryDateOutbound to False.
This means expiry dates are captured when receiving goods but not validated when picking.
However, this configuration isn't recommended because:
Stock rotation (FEFO) relies on having expiry dates tracked at both stages.
You lose the verification step that prevents shipping expired products.
Reporting accuracy may be affected.
Best practice: Set both LogExpiryDateInbound and LogExpiryDateOutbound to True for complete traceability and compliance.
Use case for inbound-only: Some businesses track expiry dates for internal visibility but don't need picking validation (for example, non-perishable goods with long shelf life where expiry is tracked for insurance purposes only).
How does stock allocation work?
When best before date tracking is enabled, Mintsoft uses intelligent allocation rules:
For products with expiry dates:
Primary method: FEFO (First Expiring, First Out) β the system automatically allocates stock with the earliest expiry date first.
This ensures proper stock rotation and minimises waste from expired inventory.
For mixed stock scenarios:
If some inventory has expiry dates and some doesn't (for example, you enabled the feature partway through), the system will:
Prioritise stock with expiry dates using FEFO.
Fall back to FIFO (First In, First Out) for stock without expiry dates.
Location-based allocation:
Within products that expire on the same date, the system allocates from primary picking locations first.
The mobile app guides pickers to the correct location automatically.
Warning period integration:
Stock within its warning period (default 28 days before expiry) will still be allocated, but it'll appear in the "Products Expiring" report for visibility.
To prevent allocation of near-expiry stock, you'd need to manually quarantine it.
Can I add expiry dates to existing stock?
No. Once stock is booked into Mintsoft, you can't add or modify best before dates retrospectively. This is by design to maintain audit trail integrity.
To correct expiry dates for existing stock:
Book the stock out (use a stock adjustment to remove from the system).
Book it back in with the correct best before date using an ASN or inventory booking.
Important considerations:
This will affect your stock movement history β the original booking-in date will be lost.
For large quantities, coordinate with your operations team to avoid disrupting order fulfilment.
Consider doing this during quiet periods or for one location at a time.
Alternative approach for large corrections:
Contact Mintsoft support if you need to correct expiry dates for large amounts of stock β there may be database-level options available for exceptional circumstances.
Best practice: Enable expiry date tracking before receiving goods to avoid this situation. If you're implementing the feature mid-way through your stock lifecycle, accept that existing stock won't have expiry dates and track them from the next delivery onwards.
Note: There's no automated quarantine function for expired stock. You'll need to manage this manually.
