Supplier Autoflow for Magento 2
etechflow/module-supplier-autoflow
Automatically toggles supplier active flags based on stock levels and reprices products from the first active supplier's cost and markup, automating multi-supplier fulfillment and dynamic supplier-driven pricing.
Build Tests
Code Quality
Tested on Magento 2.4.9
Recent Test History
Each release is tested against the latest Magento version at that time.
Top Contributors
View LeaderboardLooking for Contributors
Composer installation fails. Your contribution could help the entire Magento community!
Share This Module's Status
README
Loaded from GitHubETechFlow Supplier Autoflow
Auto-toggle supplier active flags based on stock, then reprice products from
the first-active supplier's cost × markup. For Magento 2 stores with
multi-supplier products and dynamic supplier-driven pricing.
What it does
You sell the same product through multiple suppliers in priority order:
S1 = Onlyda (your manufacturer; cheap; only ships from your own stock)
S2 = Auto Remote (drop-ship; more expensive; ships when Onlyda is out)
S3 = Remkeys (drop-ship fallback)
This module makes that workflow automatic:
- Auto-toggle: when Onlyda stock hits 0, flip S1's
activeflag off. The product now fulfills from S2 = Auto Remote. - Reprice: with S2 now first-active, recompute the customer-facing price
as
S2.cost × (1 + S2.markup / 100). Apply your configured rounding + anchor strategy. Write topriceand/orspecial_priceper your output target. - Audit: every flip + reprice is logged to
etechflow_supplier_autoflow_logso finance can trace why a price changed. - NDE integration: if you also run
etechflow/module-next-day-eligibility, the module synchronously triggers NDE's evaluator after every change.next_day_eligiblestays in sync with the active supplier — no event-bus relay required.
Everything is merchant-configurable
No supplier names, no attribute codes, no markup percentages are hardcoded.
All configuration lives in
Stores → Configuration → eTechFlow → Supplier Autoflow.
Supplier slot definition
One slot per line, in priority order (top = highest priority):
S1|s1_active|s1|s1_cost|s1_markup
S2|s2_active|s2|s2_cost|s2_markup
S3|s3_active|s3|s3_cost|s3_markup
Format: label|active_attr|name_attr|cost_attr|markup_attr[|stock_source_or_qty_attr].
Stock-dependent suppliers
Name-based, not slot-position-based. Lists which supplier names get the auto-toggle behaviour:
Onlyda
OurOwnWarehouse
Other slots (drop-ship suppliers) stay manual-only. The merchant decides when to disable them.
Stock trigger source
Pick from: magento_qty, msi_default, msi_per_slot, per_slot_qty_attr,
disabled. MSI modes soft-detected — module installs and works on non-MSI
builds.
Price output target
price— write to regular price only.special_price— write to special price only.special_price_with_anchor(recommended) — write computed value tospecial_price, writeprice = special_price × anchor_multiplier. Renders strikethrough on storefront + sale-pricing on Google Shopping.
Rounding
2dp, 5p, 10p, 99p_ending, or none.
No-active-supplier fallback
When every slot is inactive (all suppliers out): set product to out-of-stock, disable it entirely, or leave unchanged with a warning.
How it stays accurate
- Legacy stock event observer —
cataloginventory_stock_item_save_after. - MSI source-items plugin —
Magento\InventoryApi\Api\SourceItemsSaveInterface, soft-detected so non-MSI installs skip it cleanly. - Product-save observer — re-runs the pricing engine when a merchant manually flips a slot's active flag or changes cost/markup.
- Hourly cron — belt-and-braces safety net for any propagation hole.
- CLI —
bin/magento etechflow:autoflow:resync [--sku=...]for manual full-catalogue evaluation. - FPC tag invalidation —
cat_p_<id>clean after every price write, so customers see fresh HTML without a manualcache:flush.
Reverse toggle
When stock comes back (Onlyda restocked), the previously auto-toggled slot flips back to active and the product reprices from THAT slot's current cost — handles supplier cost changes on restock.
Configurable on/off — some merchants want one-way toggles only.
Audit log
Every event writes to etechflow_supplier_autoflow_log with:
- Product ID + SKU
- Event type:
auto_toggle/reprice/no_active_supplier/error - Trigger source:
stock_save/msi_source_items_save/product_save/cron/cli_resync - Before/after active slot
- Before/after price + special_price
- Human-readable message
Read via the admin grid (v0.1.1+ — coming next) or directly via SQL.
Companion modules
etechflow/module-next-day-eligibility— when installed, Autoflow's active-flag changes automatically trigger NDE's eligibility recompute. Recommended together for stores running dynamic next-day rules.
Versioning
v0.1.0 — initial release. Engine complete; admin audit-log grid lands in v0.1.1.
This content is fetched directly from the module's GitHub repository. We are not the authors of this content and take no responsibility for its accuracy, completeness, or any consequences arising from its use.