Branch-yard inventory + will-call pickup, how does Magento integrate with Epicor BisTrack / DMSI Agility?
Magento as the storefront-of-record, ERP as the inventory-of-record. The integration patterns:
- Epicor BisTrack, REST API (newer versions) or SOAP web services (legacy). Pull stock-on-hand per SKU per branch every 5-15 minutes via cron, cache in Magento MSI sources. Order push back to BisTrack on order placement (creates a sales order at the buyer’s nearest branch).
- DMSI Agility, REST API in v9+, file-feed (CSV/XML over SFTP) in older versions. Same pattern: inventory pull → MSI sync; order push → DMSI sales order.
- Activant Eagle, older, file-feed-only in most installs. SFTP-based; build a daemon to ingest CSVs and update MSI.
- Spruce, ECi Spruce has a REST API but it’s rate-limited; cache aggressively.
Branch-yard locator: customer enters ZIP, Magento returns {branch_id, miles, in_stock_units, phone, hours, will_call_slots} per SKU. Will-call pickup workflow: customer picks a 2-hour appointment window during checkout, BisTrack/DMSI gets a flagged sales order with the pickup time, the yard preps the order. Skip-the-counter SMS notification when the order is ready (Twilio + Magento order-state webhook).
Fallback: if BisTrack inventory feed goes down, Magento serves the last-good snapshot with a banner (“Inventory last updated 47 minutes ago”). Better than 500-ing the PDP.