Bulk order CSV — what’s the realistic performance with 5,000+ line items?
Categories:
Magento for B2B Wholesale
5,000 lines is the high end of normal; 12,000 lines is doable with care; 50,000 lines needs a bulk-order asynchronous queue.
- 0–500 lines: synchronous. Submit → validate → cart → checkout in <5 seconds. No special handling needed.
- 500–5,000 lines: still synchronous but with a progress bar. Validation runs in chunks of 200 SKUs at a time to avoid PHP timeout. Total time: 10–30 seconds. Stock + price checks happen before cart insertion.
- 5,000–12,000 lines: asynchronous. CSV uploads → queue job → user gets an email with a "review your prepared cart" link in 1–3 minutes. SKU validation, price-snapshot, and stock-availability happen in the background. Buyer reviews + submits.
- 12,000+ lines: custom queue + multi-batch order (split into 2–3 separate orders to keep the order_items table sane). Often combined with multi-warehouse splitting.
Validation pre-submit: always show buyers (a) which SKUs aren’t found, (b) which are out of stock, (c) which have price differences from their list. Letting them edit / remove problem rows pre-submit cuts post-order disputes 80%.
Anti-pattern: never run a 5,000-line CSV through Magento’s standard add-to-cart events — you’ll trigger the catalog-rule indexer 5,000 times. Use direct quote-item insertion bypassing event observers.
Was this helpful?