General settings
Located at Stores → Configuration → Byte8 → Pre-Order → General Settings.
Fields
| Field | Path | Default | What it does |
|---|---|---|---|
| Enable Pre-Order | byte8_preorder/general/enabled | No | Master switch. When off, no pre-order UI, no observers fire, no totals collected. Safe to leave off in staging until launch day. |
| Allow Pre-Order When In Stock | byte8_preorder/general/allow_when_in_stock | No | Lets you accept pre-orders for products that already have stock. Useful for "soft launch" deposits where customers reserve a future delivery date even though current inventory exists. Default: off — so a pre-order product is only pre-orderable when actually out of stock. |
Behaviour
Master switch off
- All eligibility checks short-circuit to
falseregardless of per-productpreorder_enabled. - The PDP info block, cart fee line, GraphQL fields, and admin grid menu disappear from the storefront / admin.
- Existing pre-orders in the DB are untouched — flipping the switch back on resumes their lifecycle exactly.
Allow when in stock
When on, the eligibility resolver (Model/Service/PreorderEligibility.php) ignores stock state. The product still needs preorder_enabled and (optionally) preorder_available_from set.
Use this for:
- Pre-launch deposits when you want to take orders before the announce date.
- Wholesale / B2B "reserve forward" flows where the customer is fine paying a deposit on something already in stock.
Don't use this for general catalog products — your customers will see "Pre-order" buttons on items they could just buy normally, which confuses everyone.
Scope
All general fields are available at website and store-view scope. Common patterns:
- Default scope on, store-view off — module enabled globally, but a specific store-view (e.g. a slow-selling region) opts out.
- Website on, default off — staging website disabled, production website enabled.
Related
- Payments configuration — what to charge.
- Vault capture configuration — when to capture the balance.
- Email configuration — what notifications go out.