=== PackPilot ===
Contributors: bandexa
Tags: woocommerce, order fulfillment, warehouse, picking, packing
Requires at least: 6.4
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 0.0.13
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Warehouse management and order fulfillment for WooCommerce. Pick, pack and ship orders using barcode scanning and guided workflows.

== Description ==

PackPilot brings a structured warehouse workflow directly into WooCommerce.

Instead of managing orders from a list, your team works with a clear process: pick, scan, pack, done.

The plugin focuses on real-world fulfillment tasks and guides users step-by-step through the packing process.

=== Core Features ===

* Dedicated packing table for scanning and completing orders
* Status-based order intake from WooCommerce
* Stock reservations per order
* Picklist workflow for efficient multi-order picking
* Delivery note / pick ticket workflow with PDF generation
* Article data management (SKU, EAN, locations, batches, expiry dates)
* Picking event tracking for scanned items

=== Workflow Focus ===

PackPilot is built for operational use.

- One screen per task
- Clear instructions for workers
- Minimal UI complexity
- No unnecessary configuration overhead

The goal is simple: reduce errors and speed up fulfillment.

== Advanced Features ==

The following features are available in an extended version of PackPilot.

=== Multiple Storage Locations (Multi-Storage) ===

PackPilot extends WooCommerce stock handling by introducing real physical storage locations.

Instead of managing a single stock value per product, inventory can be distributed across multiple locations:

- Aisle A → Rack 01 → Bin 01 → 3 units
- Aisle B → Rack 07 → Bin 02 → 5 units
- Cold Storage → Box 2 → 2 units

Key features:

- Define structured storage locations (Aisle / Rack / Bin)
- Assign stock quantities to specific locations
- Maintain full WooCommerce compatibility (total stock is still synced)
- Optimized picking routes based on location

This removes guesswork and ensures that workers always know where to pick items.

=== Expiry Dates (MHD) & Batch / Lot Tracking ===

PackPilot allows you to track inventory on a per-unit level, including:

- Expiry date (MHD)
- Batch / Lot number

Example:

- 5 units → Expiry: 2026-05-01 → Batch: CH123
- 5 units → Expiry: 2026-05-10 → Batch: CH124

WooCommerce sees: 10 units  
PackPilot sees: 2 distinct inventory groups

Key features:

- Optional expiry date tracking per stock unit
- Optional batch / lot tracking
- Multiple batches per location supported
- Full traceability during packing

=== Combined Inventory Logic (Location + Batch + Expiry) ===

PackPilot internally manages stock as a combination of:

- Storage location
- Expiry date
- Batch / lot number

Example structure:

- Location: A-01 | Expiry Date: 2026-05-01 | Batch: CH123 | Quantity: 3 units
- Location: A-01 | Expiry Date: 2026-05-10 | Batch: CH124 | Quantity: 2 units
- Location: B-07 | Expiry Date: 2026-05-01 | Batch: CH123 | Quantity: 2 units
- Location: COLD-02 | Expiry Date: 2026-05-15 | Batch: CH125 | Quantity: 3 units

=== Smart Picking & Packing Workflow ===

During picking and packing, PackPilot automatically determines:

1. Which items to pick (by expiry date – FIFO / FEFO)
2. Where to pick them (optimized walking path)

Workers are guided step-by-step:

Pick 2 units from A-01 (Batch CH123)

Benefits:

- No manual decision making required
- Reduced picking errors
- Faster workflows
- Clean and structured packing process

=== Why this matters ===

WooCommerce tracks quantities.  
PackPilot tracks what actually happens in your warehouse.

- Know exactly where your products are
- Know exactly which batch was shipped
- Always pick the right items in the right order

=== Built for simplicity ===

- No complex ERP system required
- No unnecessary features
- Focused on real workflows

PackPilot adds advanced inventory logic while staying lightweight and easy to use.

== Installation ==

1. Upload the plugin files to the `/wp-content/plugins/packpilot` directory, or install the plugin through the WordPress plugins screen.
2. Activate the plugin through the `Plugins` screen in WordPress.
3. Open `PackPilot > Settings`.
4. Configure the source order status, finish status, and fulfillment workflow.

== Frequently Asked Questions ==

= Does PackPilot require WooCommerce? =

Yes. PackPilot is designed for WooCommerce-based fulfillment workflows.

= Can I use different fulfillment workflows? =

Yes. PackPilot supports direct Pick & Pack, Picklists, and Delivery Note / Pick Ticket workflows.

= Does the plugin create PDFs? =

Yes. Delivery notes and bundled delivery note PDFs can be generated inside the plugin.

= Is PackPilot suitable for large warehouse systems? =

PackPilot focuses on small to medium-sized WooCommerce stores that need a clear and efficient fulfillment workflow without the complexity of a full warehouse management system.

= Does the plugin include third-party assets? =

Yes. PackPilot bundles the following assets for admin-side functionality:

* `includes/admin/assets/htmx.js`
* `includes/admin/assets/chart.umd.min.js`
* `includes/admin/assets/bootstrap-grid.min.css`

== Changelog ==

= 0.0.13 =

* Fixed picklist PDF generation fallback that could create an unformatted single-line text PDF when mPDF font initialization failed.

= 0.0.12 =

* Added support for multiple storage locations per article.

= 0.0.11 =

* First upload
