App Introduction
Batch Tracking, Expiry Management, Traceability, and Inventory & Customer Order Restrictions for Food and Cosmetics Freshly is designed for retailers, suppliers, and other participants in the distribution chain that sell consumer goods, perishables, or regulated products (such as food and beverages, cosmetics, cannabis, and pharmaceuticals). It enables product tracking by batch or lot number to more effectively manage expiration dates, inventory levels, reduce product spoilage, handle product recalls, and restrict daily available inventory.
Core Functionality
- Automate expiration workflows using inventory rotation methods (FEFO/FIFO).
- Optimize perishable and seasonal inventory with automatic discounts.
- Choose to display expiration dates to customers on product pages.
- Prepare for audits and recalls by tracing customer orders to the batch level.
- Bulk print and edit packing slips with batch details using Liquid templates.
Merchant-Friendly
- Food & Fresh E-commerce
- Seasonal Goods Merchants
- Audit-required E-commerce
- Perishables Cross-border Sellers
Basic Information
- Developer:Freshly Commerce
- Address:151 Charles St W, Kitchener, ON, N2G 1H6, CA
- Price: Free / Free plan
- Rating:4.9 / 5
- Comment Count:38 comment
- Release Date:2020-7-20
- Supported languages:English
- Compatible products:Shopify
Application Screenshot
Price Plan
Essential
- 10 products, unlimited batches
- 500 orders/month
- Auto-assign batches
- Single location
Pro
- No Batch Limit
- Automatic and Manual Batch Assignment
- Batch Traceability
- Bulk Import and Export
- Customer-Facing Expiry Date
- Single Location
Advanced
- Suitable for Shopify Advanced stores
- All Pro features, plus
- Metafields support
- Custom packing slips and automated emails
Plus
- Suitable for Shopify Plus stores
- All Advanced features, plus
- Custom automated reports
- Multiple fulfillment locations
User Location & Comments
User Location
Comments
Shopify API Used
- POST /admin/api/inventory_levels/batch.json
- PUT /admin/api/inventory_levels/{id}.json
- GET /admin/api/inventory_levels.json
Permission:write_inventory,read_inventory,manage_products
- POST /admin/api/discounts/automated.json
- PUT /admin/api/discounts/automated/{id}.json
- GET /admin/api/discounts/automated.json
Permission:write_discounts,read_discounts,manage_products
- POST /admin/api/products/{id}/metafields.json
- PUT /admin/api/products/{id}/metafields/{mid}.json
- GET /admin/api/products/{id}/metafields.json
Permission:write_products,read_products,manage_metafields
- POST /admin/api/orders/{id}/metafields.json
- PUT /admin/api/orders/{id}/metafields/{mid}.json
- GET /admin/api/orders/{id}/metafields.json
Permission:write_orders,read_orders,manage_metafields
- POST /admin/api/fulfillments/{id}/tracking.json
- GET /admin/api/orders.json?fulfillment_status=shipped
- GET /admin/api/metafields.json?namespace=batch
Permission:write_fulfillments,read_orders,read_metafields