Warehouse Revolution: setup and help
Quick start
- Back up stock data, upload and install mprwarehouserevolution, then open Warehouse > Settings > Warehouses.
- Create an active warehouse and set the default; installation does not create MAIN automatically.
- Create Materials and any Recipes, then connect a test product or combination in Product Links.
- Enter initial Stock Levels and review Sync Stock with PrestaShop in Settings > Configuration.
- Configure CLI cron; prepare native integration and supervise cart-stock-worker.php if enabling public cart holds.
- Set Enable Material Reservations and Start reserving stock, then test a cart and order.
- Create and dispatch a test shipment; after Dispatch Grace Period, verify stock movements and customer tracking.
- Run Settings > System Check and test receiving and returns before using the workflow for live orders.
Requires PrestaShop 1.6.1 or later and PHP 7.1 or later.
Setup manual
Install and create the first warehouse
Back up the shop database and stock data. Upload and install mprwarehouserevolution, then click Configure to open Warehouse > Settings > Configuration.
Open Warehouse > Settings > Warehouses and create or select an active warehouse. Set your default warehouse deliberately. You can use MAIN as its reference, but installation does not create a MAIN warehouse for you. Default Warehouse ID initially has the value 0.
Use a single material and product for your first end-to-end test. Configure stock, product links, cron and reservations before relying on the module for live fulfilment.
Configure warehouses, materials and products
The Back Office is arranged as follows:
Warehouse
- Dashboard
Settings
- Warehouses
- Configuration
- Data Management
- Layout Editor
- Zones
- Code Schemas
- Holidays
- System Check
- License
- Support
- Update
Catalog
- Materials
- Recipes
- Product Links
- Bill of Materials
- Import Data
Inventory
- Stock Levels
- Reservations
- Corrections
- Stock Positions
- Stock Taking
- Internal Docs (PW/RW)
Procurement
- Suppliers
- Purchase Orders
- Suggest Reorder
- Receiving
- Stock Planning
Fulfillment
- Shipments
- Returns (RMA)
- Carriers
- Order Fulfillment
- Returns
Reports
Use Settings > Layout Editor, Zones and Code Schemas when you need physical locations and document numbering. Zones can describe receiving, packing, shipping, returns and storage locations. A one-warehouse setup does not require a detailed layout first.
In Catalog > Materials, create each internal stock item. Create Recipes and their components if a product consumes several materials or sub-recipes. In Product Links, connect the PrestaShop product or combination to the material or recipe and set the quantity consumed. Check Bill of Materials to review the resulting component requirements.
Enter initial material stock in Inventory > Stock Levels or through the importer. Check units and warehouse references before synchronizing native product quantities. The module computes sellable quantities from linked stock and component requirements; a recipe link without its component stock is not a completed setup.
Configure General, BOM and planning
Open Warehouse > Settings > Configuration. Save in the intended shop context.
- Enable Multi-Warehouse. Allows stock management across more than one warehouse; default:
0. - Default Warehouse ID. Selects the warehouse used by default for shipments and stock calculations; default:
0. - Sync Stock with PrestaShop. Updates native PrestaShop product quantities from warehouse/material stock; default:
1. - Enable Stock Alerts. Enables low-stock alert logic; default:
1. - Default Low Stock Threshold. Sets the fallback low-stock quantity threshold; default:
10. - Enable Bill of Materials. Enables material recipes and component-based product stock; default:
1. - Auto-Deduct BOM on Shipment. Deducts component materials when a shipment is shipped; default:
1. - Default Safety Factor. Sets the stock planning safety multiplier, where
1means no extra buffer; default:1. - Default Lead Time (Fallback). Sets the fallback supplier/material lead time in days for stock planning; default:
120.
Keep native stock synchronization on only when warehouse stock should be the source for the linked products. Review product-level sync choices in Product Links too. Choose the low-stock threshold, lead time and safety factor from your actual replenishment workflow.
Below the standard form, Main warehouse by country lets you choose the main warehouse for delivery countries. Unmapped countries use the warehouse default. Check Resolves to and click Save main warehouses to save this separate routing panel. It is a configured country map, not a nearest-warehouse calculation.
Configure shipments, status changes and emails
- Auto-Create Shipments on Order. Creates shipment records automatically with values
none,dropship_only, orall; default:none. - Auto-Shipment Warehouse Selection. Chooses the warehouse for automatic shipment creation using
default,first_available, ormost_stock; default:default. - Auto-Set Order Status on Shipment. Shows and preselects an order status when creating shipments; default:
1. - Order Status - Fully Shipped. Sets the suggested order status when every order item is shipped; default:
4. - Order Status - Partially Shipped. Sets the suggested order status when some items remain unshipped, with
0meaning do not change; default:0. - Notify Customer - Fully Shipped. Sets the default customer notification checkbox for full shipments; default:
1. - Notify Customer - Partially Shipped. Sets the default customer notification checkbox for partial shipments; default:
0. - Block Backorder Email. Blocks the native PrestaShop out-of-stock email when the module handles the shipment workflow; default:
1. - Dispatch Grace Period. Sets how many minutes to wait before committing stock deduction after dispatch; default:
5. - Shipping Cutoff Hour. Sets the 24-hour cutoff used for same-day shipping ETA defaults; default:
15. - Default Transit Days. Sets the fallback delivery transit time in business days when the carrier has no transit value; default:
3. - Cost Currencies. Sets comma-separated cost currencies, with the first currency used as the default; default:
GBP,EUR,PLN. - Correction Reasons. Sets one correction reason per line for the shipment correction modal; default:
Shipped wrong item; Damaged in transit; Customer return; Quantity error; Quality issue; Missing from package; Other. - Enable Shipment Tracking. Shows shipment tracking in customer account and order detail pages; default:
1. - Enable Shipment Email Notifications. Sends module shipment emails when shipment tracking is enabled; default:
1. - Enable Shipment Images. Allows staff to upload package photos and documents to shipments; default:
1. - Max Image Size. Sets the maximum shipment image upload size in MB; default:
5. - Images Visible to Customers by Default. Makes uploaded shipment images customer-visible by default instead of admin-only; default:
0.
Use Auto-Create Shipments on Order = none for a manual first test. If you enable automatic creation, choose dropship_only or all and verify the warehouse-selection strategy on representative orders. The available strategies are default warehouse, first available stock and most stock.
Check that the configured order status IDs match your own shop statuses. The fully/partially shipped notification switches set the initial notification choice. Review the actual choice when processing a shipment. Block Backorder Email defaults on to avoid the native out-of-stock mail in the module workflow.
Use Dispatch Grace Period to define the delay before a dispatched shipment's final stock commitment. The default is 5 minutes. A scheduler must process pending shipments after that delay. Test the undo/correction workflow before using it for real dispatches.
Item change reasons adds the reason choices used for replacements. Its defaults are Out of stock, Damaged in warehouse, Discontinued, Customer request, Better fit for order, Quality issue and Other. Keep each reason on a separate line, as with Correction Reasons.
The stored preparation status defaults to 3 and the shipping cutoff minute to 0. They are not separate visible fields named Order Status - Preparation or Shipping Cutoff Minute in the current Configuration form.
Configure reservations and public availability
In the Stock group:
-
Enable Material Reservations. Enable temporary material reservations from the selected Start reserving stock stage. Default:
1. A fresh configuration starts at cart-page or checkout entry, not on every add-to-cart. -
Reservation Timeout. Set the hold window after an accepted cart change. Default:
30minutes. It is capped by Maximum protection period; refreshes and duplicate saves do not renew it. -
Start reserving stock. Default:
cart_page. Reserve when entering the cart page or checkout. You can instead choose add-to-cart or checkout entry. Cart/checkout entry needs JavaScript and a valid customer session. An accepted later cart change can reserve stock; simply viewing or refreshing does not restart a hold. -
Cart stock integration. Click Prepare cart stock integration to check the installed PrestaShop version and prepare its native adapters. Resolve reported conflicts and reload the page.
-
Reduce available product stock for cart reservations. Default: off. Turn this on only after the native integration and fast stock worker are ready. A hold on a component reduces availability of every linked product using it; physical component stock is unchanged.
-
Maximum protection period. Default:
120minutes. Cap an owner's continuous protection. -
Break between protection periods. Default:
30minutes. Require a break before that owner acquires fresh protection. -
Protected carts per owner. Default:
3. -
Protected sale units per owner. Default:
100. -
Changes per protection period. Default:
60accepted quantity/recipe changes. -
Protected carts per stock pool. Default:
1000competing temporary carts. -
Maximum distinct cart lines. Default:
256. Raise only after measuring larger carts. -
Maximum stock pools per cart. Default:
128. A pool represents a material or assembled recipe in a warehouse.
Review these bounds together. Carts without a temporary hold can still undergo checkout stock checks. A page refresh does not extend protection. Inspect Inventory > Reservations using test carts and a controlled stock quantity.
reservation_use_session_tracking = 1 and reservation_cron_enabled = 0 remain stored compatibility defaults. They are not separate Use Session Tracking or Enable Cron Cleanup fields in the current form. The current registered cleanup task runs through the shared scheduler. Do not rely on visitor traffic to execute background stock jobs.
Configure storefront stock and returns
Display
- Show Stock Availability. Displays warehouse stock availability on product pages; default:
1. - Show Stock Details. Shows detailed stock information when product stock availability is enabled; default:
1. - Hide Stock Bar Widget. Hides the module stock bar while keeping the stock checker modal usable through
.stock_checkertheme elements; default:0. - In-Stock Delivery Text. Sets the delivery badge text when local stock is available; default:
Next day delivery. - Out-of-Stock Delivery Text. Sets the delivery badge text when only secondary warehouse stock is available; default:
Secondary warehouse · 3-5 business days.
Use the delivery texts as your own configured messages. These messages are entered manually rather than calculated from carrier data. If your theme has its own stock button, enable Hide Stock Bar Widget and keep a .stock_checker element with the product and combination IDs so it can open the checker modal.
The module registers stock-availability, my-shipments and my-returns. The stock-availability page additionally requires the stored stock_checker_page preference, default 0. This is not a normal Configuration field. Use the product checker as your initial public test.
Returns (RMA)
- Enable Returns (RMA). Allows customers to request returns from their account; default:
1. - RMA Requires Approval. Requires staff approval before a customer sends a return back; default:
1. - Auto-Refund Grade A Returns. This setting does not trigger automatic refunds. Process refunds through your PrestaShop/payment workflow; default:
0.
Customers can request returns and view shipment tracking through the registered account/order areas when enabled. Verify those links while signed in to a customer with a real test order. Staff approve, receive, inspect and resolve the return in Fulfillment > Returns (RMA). Refund fields record decisions; verify any actual refund through your PrestaShop/payment workflow. Do not treat Auto-Refund Grade A Returns as proof that money has moved.
Set up cron and the fast stock worker
Run the shared MPR cron runner from the server scheduler. Use the existing shared MPR cron token supplied by the module's getCronToken() API or your MPR cron administration. It is not an editable Cron Token field in Warehouse Configuration. The CLI entry point supports:
* * * * * php /var/www/html/modules/mprwarehouserevolution/cron.php --token=YOUR_SHARED_TOKEN --max-tasks=20 --max-seconds=55 --context=cron
Replace the shop path and token. Scheduled tasks release expired reservations and terminal-order commitments every 300 seconds, commit pending dispatches every 60 seconds, process queued product stock on CLI every minute, recover pending publication every minute and request full reconciliation daily.
The HTTP cron endpoint cannot run CLI-only stock tasks. Keep a CLI schedule for stock processing. The root entry point also accepts --stock-only to run its stock-related CLI task subset. Check job results before creating additional overlapping schedules.
If you enable Reduce available product stock for cart reservations, also supervise this short CLI process so it runs again at approximately one-second intervals:
php /var/www/html/modules/mprwarehouserevolution/bin/cart-stock-worker.php --seconds=3 --max-products=20
The worker accepts --seconds=1..20, --max-products=1..100 and --quiet. Run it as the shop's normal process user. Inspect its JSON health result and exit code before quieting output. Preparing the integration alone does not run the worker.
Import existing data
Open Warehouse > Catalog > Import Data. Use UTF-8 CSV and the templates for the selected entity type. The importer accepts semicolon or comma delimiters and provides preview/staging, row selection and batch processing. Its controller limit is 500 MB, subject to lower PHP/server limits.
Import in dependency order: warehouses and zones; suppliers and materials; recipes and recipe components; product links and supplier products; stock; purchase orders and purchase-order items. References must match existing records exactly.
Add a custom carrier tracking URL in Warehouse -> Fulfillment -> Carriers. The module replaces {tracking} or {tracking_number} with the shipment tracking number, and DHL-style URLs can also use {locale}.
Code: custom_local
Name: Local Courier
Tracking URL Pattern: https://carrier.example/track?id={tracking}
Transit Time: 2
Active: yes
DHL pattern:
https://www.dhl.com/{locale}/home/tracking.html?tracking-id={tracking}&submit=1
Import product links with semicolon-separated UTF-8 CSV files in Warehouse -> Catalog -> Import Data.
product_reference;product_attribute_id;item_type;item_reference;quantity;sync_stock
TRAY-1200;0;recipe;SHOWER-TRAY-KIT;1;1
DRAIN-90;0;material;DRAIN-90;1;1
Import initial material stock by warehouse reference.
material_reference;warehouse_reference;quantity
PANEL-1200;MAIN;25
DRAIN-90;MAIN;40
Create a recipe and its components.
reference;name_en;description_en;assembly_time;assembly_cost;auto_deduct
SHOWER-TRAY-KIT;Shower tray kit;Panel and drain kit;30;5.00;1
recipe_reference;component_type;component_reference;quantity;is_optional
SHOWER-TRAY-KIT;material;PANEL-1200;1;0
SHOWER-TRAY-KIT;material;DRAIN-90;1;0
Use your theme's own stock button while letting the module open the stock checker modal. This works with Hide Stock Bar Widget enabled.
<button type="button"
class="btn btn-secondary stock_checker"
data-id-product="{$product.id_product|intval}"
data-id-product-attribute="{$product.id_product_attribute|default:0|intval}">
Check live stock
</button>
Style front office stock elements through the module classes.
.mprw-stock-bar {
border: 1px solid #d9e2ec;
padding: 12px;
}
.mprw-bar-in-stock {
color: #127a3a;
}
.mprw-bar-secondary-stock {
color: #8a5a00;
}
.stock_checker.mprw-price-stock-summary {
white-space: nowrap;
}
Shipment and RMA email templates support these placeholders.
Shipment email:
{firstname}
{lastname}
{email_heading}
{order_reference}
{shipments_text}
{pending_items_text}
{history_url}
{shop_name}
{shop_url}
RMA customer update:
{firstname}
{lastname}
{rma_reference}
{order_reference}
{return_type}
{status_label}
{date_updated}
{message}
{rma_url}
{shop_name}
Use the CSS and email examples only for the matching templates/classes in your installed version. Check a sample outgoing shipment and RMA message after template changes.
Process orders, purchasing and returns
Create a test order with a linked product. Review the warehouse panel on the Back Office order page, including components, shipment items, custom materials, issues, corrections, returns, email log and fulfilment history.
Create the shipment, verify its warehouse and quantities, then move it through the applicable picking, packing and dispatch steps. After the grace period, verify the movement and available stock. Use an explicit correction when a wrong item or quantity was recorded. Do not manually edit stock tables.
For replenishment, create a supplier and purchase order, then use Receiving when goods arrive. Check incoming and received quantities separately. Use Suggest Reorder, Stock Planning and Reports only after material links, lead times and stock are correct.
For returns, verify receipt and grade each item before restocking or resolving the RMA. Tracking URL patterns substitute {tracking} or {tracking_number}, and applicable patterns also support {locale}. These links do not book carrier labels.
Status reference
Shipment statuses are:
1 = Pending
2 = Picking
3 = Picked
4 = Packed
5 = Shipped
6 = Delivered
7 = Cancelled
RMA statuses are:
1 = Requested
2 = Approved
3 = Awaiting return
4 = In transit back
5 = Received
6 = Inspected
7 = Resolved
8 = Rejected
9 = Cancelled
Return quality grades are:
A = Like new - full stock credit
B = Slight damage - refurbished stock
C = Damaged - heavy discount
F = Unsellable - write-off
Purchase order statuses are:
1 = Draft
2 = Sent
3 = Confirmed
4 = Partial
5 = Received
6 = Cancelled
The A/B/C/F grade labels map to internal numeric constants 1/2/3/4. Use the grade choices in the Back Office rather than writing these codes to the database.
Verify and troubleshoot
Run Warehouse > Settings > System Check. Check the default warehouse, tables, hooks and installed integration status. With one test product, verify initial stock, a cart reservation, order commitment, partial/full shipment, grace-period completion, cancellation/correction, receiving and an RMA restock. Compare native product quantity with the module's stock and movement records.
If quantities lag, check CLI cron, worker health, synchronization switches and product links before entering manual corrections. If a cart does not reserve immediately, check Start reserving stock and protection limits. If the public stock bar is absent, check Display settings and theme hooks. For missing account links, check tracking/RMA settings, login and order ownership. For import failures, check required columns, referenced records, encoding and server upload limits.
Use Back Office employee permissions for the relevant view/add/edit/delete actions. Country routing writes require edit access. Do not grant broad database access to warehouse staff as a substitute for module permissions.
Disable or uninstall
Back up all warehouse, material, recipe, product-link, stock, procurement, shipment, return and movement data first. Turn off Reduce available product stock for cart reservations and keep the stock worker running until it has restored availability. The module blocks disable/uninstall while public holds, restoration or a transition ticket remain active.
After restoration is complete, disable or uninstall through the Back Office. Uninstall removes registered tasks, menus, column preferences and module SQL data. Remove your own worker supervisor and scheduler entries when they are no longer needed. Recheck native stock quantities and the replacement stock-management workflow before taking orders.
Compatibility
Requires PrestaShop 1.6.1 or later and PHP 7.1 or later.
Questions
No questions about this module yet
Ask anything about installation, compatibility or setup. Answers appear here.
Known Issues
32
Partial shipment balances were incorrect
Variant picker offered inactive attributes
Cached availability could be outdated
Order capacity ignored effective replacements
Replacement picker stopped after undo
Product cost and quantity controls disappeared
Installation failed on PrestaShop 9
Stock publication failed on PHP 7
Product components and stock panel was missing
Saving unchanged settings disturbed reservations
Expired cart reservations remained held
Historical corrections could assume uncertain quantities
Fractional shipment quantities lost precision
Unavailable replacements blocked repair or shipping
Changing a replacement could lose reserved stock
Retrying shipment creation could allocate twice
Deleted components left ghost rows
Cancelling replacement excluded the original
Replacements could disappear or target themselves
Order panel showed stale data after saving
Nested recipes consumed stock twice
Grace-period shipments depended on opening a page
Reservation switch did not stop reservations
Duplicate shipments and incorrect stock synchronisation
Shared materials overstated product availability
Dispatch skipped the pending order status
Undo left a pending shipment behind
Reorder filters gave incorrect results
Receiving statuses were stored incorrectly
Customer notification choice was ignored
Shipment commits duplicated notifications or statuses
Concurrent scheduled runs deducted stock twice
Feature Requests
31
Implemented
Bill of Materials (BOM) editor
Stock projection from incoming purchase orders
Warehouse layout editing
Shelf product positions
Demand-based reorder suggestions
Supplier-department purchase orders
Shipment history and corrections
Shipment-driven order statuses
Shipment email log
Filterable stock checker
Stockless fulfilment and projections
Main warehouse by destination country
Order component editing
Partial component replacements
Replacement history and reservation transfer
Reusable nested recipes
Recipe component ordering
Calculated or fixed set costs
Buildable quantity explanations
Suggested replacement items
Whole product-line replacement
Configurable replacement reasons
Change an existing replacement
Edit pending replacement components
Item cost and stock details
Confirm stock exceptions
Complete-kit component reservations
Configurable reservation start
Resumable stock publication
Availability cache refresh
Catalogue filters in product picking
Changelog
v1.21.132026-09-21
- AddedAdd warehouse stock projection and stockless fulfillment
- AddedSupport bespoke no-stock order lines
- Addedcomplete FR/DE/ES/IT/PL translations
- FixedRepair warehouse revolution install release
- FixedAdd standard infrastructure checks, tag quality/monitoring checks
- FixedMigrate STOCK_CHECKER_PAGE from ps_configuration to module config
- FixedReplace Tools::displayPrice with PriceFormatter compat wrapper
Older releases
v1.1.02026-05-18
- AddedBill of Materials (BOM) editor — define assemblies and component quantities
- Addedpicking list generation from pending orders with single-click fulfilment
- Fixedstock sync not propagating to PS native stock on manual adjustment
v1.4.02026-04-20
- AddedAdd hreflang to Returns and Shipments controllers
- AddedAdd meta tags and hreflang to warehouse front controllers
- Addedautomatic theme detection for Classic and Hummingbird style compatibility
- Addedadmin menu management via MenuInstaller for streamlined module setup
- AddedLicense management tab with key management and renewal options
- Addedself-healing integrity checks for automatic diagnostics and repair
- Addedcomplete FR/DE/ES/IT/PL translations
- Improvedsettings form organization with tabbed layout
- ImprovedSEO handling with proper canonical URLs and meta tags on all front pages
- FixedOrder qty calculation now includes all matching items when status filter active
- FixedStatus filter on Suggest Reorder now filters against live-computed values
- FixedTable column mismatch, filter width, navigation guard, modal cleanup
- Fixedvarious stability and compatibility improvements (8 fixes total)
- Fixedadmin list filters — sorting, searching, and filtering now work correctly on all columns
v1.3.02026-02-13
- AddedPS 9 / Hummingbird theme compatibility
- Addedmulti-location bin system — assign bin codes within warehouse zones
- Addedstock-transfer workflow with approval step and email notification
- Improvedpicking-list PDF — shows bin location and batch number per line item
- Optimized BOM explosion query for assemblies with 5+ levels of nested components
v1.2.02025-09-29
- Addedbarcode scanner support for receiving and picking workflows
- Addedreorder-point alerts with configurable per-SKU thresholds
- Improvedaudit trail — every stock movement logged with user, timestamp, and reason
v1.0.02025-02-03
- Initialrelease: multi-warehouse inventory management for PrestaShop
- InitialUnlimited warehouse locations with stock level tracking per location
- InitialStock-level dashboard with low-stock and out-of-stock indicators
- InitialCompatible with PS 1.7.x and PS 8.x
Demo
Test the full module before you buy
Buy a licence later and keep your settings.
- Your 30-day demo Test it on your own shop for 30 days from the first install.
- Ready demo shop Explore a ready demo shop in your browser.
- No registration No account, email or store domain needed.
By downloading, you accept the demo terms and privacy policy.
By opening this demo you accept the demo terms and the privacy policy.