Retail orders in. Invoices out. No re-keying.

Connect to SPS Commerce and let EDI purchase orders from your retail buyers flow directly into NovexERP as real orders — with invoices sent back automatically after fulfillment.

EDI

SPS Commerce EDI

If you sell to grocery chains, distributors, or big-box retailers, you already know EDI is table stakes. NovexERP handles it natively — no third-party middleware, no copy-pasting from portals.

novexerp — sps commerce / events
Type PO Number Trading Partner Status Order Received
850 PO-44019 Whole Earth Distributors Processed ORD-2026-1304 Apr 08, 10:32 AM
860 PO-43987 Green Valley Co-op Processed ORD-2026-1291 Apr 07, 2:15 PM
850 PO-44022 NorthWest Natural Foods Unmapped Item Apr 08, 11:04 AM
850 PO-44015 Whole Earth Distributors Processed ORD-2026-1298 Apr 07, 9:48 AM

When a retail buyer sends a purchase order through SPS Commerce, NovexERP picks it up automatically. The PO is parsed, matched to the right customer and products, and turned into a real order — complete with line items, quantities, pricing, and a delivery date. No one has to re-key anything. If the buyer sends a change order later (adding items, adjusting quantities, changing prices), NovexERP applies those changes to the existing order and reconciles inventory that was already assigned.

On the way out, invoices go back through SPS Commerce after you fulfill an order. NovexERP builds the EDI invoice document from your order data and uploads it — your retail buyer gets a compliant 810 without you touching a portal or spreadsheet.

The mapping system is where you connect SPS identifiers to your NovexERP data. Map each trading partner to a customer, and map their item numbers (buyer item number, vendor item number, or UPC) to your products. Once the mappings are in place, everything flows automatically. If an unmapped partner or item comes through, NovexERP flags it so you can resolve it before the order is created.

  • Automatic order creation from EDI 850 purchase orders
  • Change order support (860) — adds, deletes, quantity and price changes
  • EDI 810 invoice generation and transmission
  • Trading partner and item mapping with UPC support
  • Quantity multipliers for case-to-unit conversion
  • Unmapped item and partner detection
  • Background polling with retry and error recovery
  • Full event history with payload inspection

How It Works

NovexERP connects to SPS Commerce via their Transaction API using OAuth2. A background job polls for new documents on a schedule — when a purchase order arrives, it's downloaded, stored, and queued for processing. Each event is processed exactly once using a claim-lock pattern that prevents duplicate handling, even across multiple workers.

For inbound 850s, the system resolves the trading partner to a NovexERP customer, then resolves each line item by checking buyer item number, vendor item number, and UPC in sequence until a match is found. The order is created atomically with all line items, pricing, and the requested delivery date. Change orders (860s) follow the same resolution logic and apply modifications — adding new lines, removing cancelled ones, and adjusting quantities or prices on existing items. If inventory was already assigned to a line that changed, it's unassigned and returned to stock automatically.

Outbound invoices are generated after fulfillment. NovexERP finds orders that originated from SPS Commerce and have a finalized invoice, builds a compliant 810 XML document, and uploads it. The sent document is tracked with its status and payload so you have a complete record of what was transmitted.

If processing fails for any reason — an unmapped product, a missing customer, a network issue — the event is retried with exponential backoff up to eight attempts. The admin panel shows every event with its status, error details, and linked order, so nothing gets lost in the shuffle.

Modules Used

This feature is powered by these NovexERP modules.

Ready to evaluate NovexERP?

Start with the pilot program. If that is not the right fit, you can request a standard demo instead.