Back to articles

MACH Architecture Articles

MACH in Wholesale: ERP, PIM, and Commerce

How wholesale teams use MACH to connect ERP, PIM, and commerce so pricing, catalog, inventory, and order flows stay flexible without losing operational control.

Wholesale commerce usually depends on more than a storefront. Teams have to keep product data, negotiated pricing, inventory visibility, customer terms, and order status aligned across multiple systems that were not designed to move at the same speed.

MACH, which stands for Microservices, API-first, Cloud-native, and Headless, gives wholesale teams a way to separate those concerns without losing coordination. This article explains what that architecture looks like when ERP, PIM, and commerce each keep a clear role.

Wholesale teams often inherit one large platform that tries to manage catalog structure, commercial rules, order capture, and back-office execution in the same place. That setup can work for a while, but it becomes hard to change when different parts of the business move at different speeds. Product data may change daily, price rules may change by account, and fulfillment status may depend on systems outside the storefront.

This is where MACH Architecture becomes useful. In wholesale, MACH is not mainly about creating more services. It is about assigning each system a clear job, then connecting them through explicit APIs and events so change does not spread across the whole stack.

Why wholesale puts pressure on architecture early

Wholesale journeys are structurally different from simpler direct-to-consumer flows. Buyers may order from negotiated assortments, purchase on account, submit large carts, request repeat orders, and expect status updates tied to internal operations. Those expectations create more dependency on upstream business systems.

The stress usually shows up in three places:

  • Commercial complexity: Account pricing, payment terms, order minimums, and approval rules often sit outside the commerce front end.
  • Catalog complexity: Product content must combine technical specifications, channel enrichment, pack sizes, and market-specific availability.
  • Operational dependency: Inventory, shipment status, invoice state, and customer credit often depend on ERP behavior that the commerce layer does not own.

When all of that is forced into one release path, teams get slower exactly where the business needs flexibility.

What each core system should own

In a good wholesale architecture, MACH does not erase system boundaries. It makes them clearer.

Use the table below to scan the baseline ownership model.

SystemWhat it should ownWhat it should not become
ERPFinancial truth, order execution, inventory positions, customer account terms, and operational status updatesThe primary place where channel experience logic or product enrichment is authored
PIMProduct structure, attributes, media, taxonomy, and channel-specific enrichmentThe engine for transactional pricing, checkout, or fulfillment state
Commerce platformCart, checkout, account buying flows, search and merchandising behavior, and buyer-facing interactionsThe long-term system of record for every back-office rule
Composition servicesAggregation, channel shaping, policy enforcement, and orchestration across systemsA hidden monolith that absorbs every business rule without clear ownership

This model matters because wholesale programs often fail when the commerce platform becomes a second ERP, or when the PIM becomes a substitute for order and pricing logic. Clear ownership keeps the stack understandable as teams add channels and requirements.

What the integration shape looks like in practice

A practical wholesale stack usually has four layers:

  1. Experience layer. A headless buyer portal, sales portal, or self-service account area tailored to different customer roles.
  2. Composition layer. A BFF or orchestration service that assembles catalog, pricing, availability, and account context into one response.
  3. Domain and platform services. Services for pricing, entitlement, search, account context, and event handling where needed.
  4. Core systems. ERP, PIM, content systems, and other back-office platforms.

The important point is not that every concern needs its own microservice. The important point is that the buyer experience should not call every back-office system directly without mediation. A composition layer keeps the channel model stable even when internal systems evolve.

How data should flow between ERP, PIM, and commerce

Wholesale teams usually get the best results when they stop asking which platform should “do everything” and instead define what must be synchronized, what can be cached, and what must be checked at transaction time.

Use the table below as a working pattern.

ConcernPreferred source of truthRecommended delivery pattern
Product content and attributesPIMPublish to search indexes and commerce read models through scheduled and event-driven updates
Contract pricing and termsERP or a dedicated pricing servicePrecompute where possible, then validate sensitive prices at checkout or order submission
Inventory and fulfillment statusERP plus warehouse systemsShow bounded-latency reads, clear freshness timestamps, and explicit fallback behavior
Customer account structureERP or account domain serviceSynchronize to commerce identity and entitlements through stable contracts
Cart and checkout stateCommerce platformKeep transactional session state close to the buyer experience, then hand off confirmed orders downstream

This prevents a common anti-pattern. Teams copy too much data into commerce, then spend months reconciling mismatches between buyer-facing state and operational state. A better approach is to create buyer-friendly read models while preserving a clear upstream authority for critical records.

The order journey in a MACH-style wholesale stack

In wholesale, the order journey usually crosses more systems than the buyer can see. That makes interface design more important than UI polish alone.

A healthy sequence often looks like this:

  1. Catalog assembly. The experience layer requests enriched product data, account entitlements, and search results derived from PIM and commerce indexes.
  2. Price and availability resolution. The composition layer combines account context with pricing and availability responses, using cache and policy rules where latency matters.
  3. Cart validation. The commerce layer checks pack sizes, order minimums, and commercial constraints before checkout proceeds.
  4. Order submission. A confirmed order is handed to downstream services or ERP through an auditable contract rather than an opaque integration script.
  5. Post-order visibility. Status events return to the buyer through normalized order states that make sense in the portal, even if the back-office workflow is more complex.

This is where idempotent processing matters. Retries are normal in distributed systems. Wholesale order flows need contracts that prevent duplicate submissions, not only dashboards that show a failure after the fact.

What API-first discipline means for wholesale

API-first sounds straightforward, but in wholesale it has a specific meaning. Teams need contracts that express commercial rules clearly enough for every channel to rely on them.

Important contract decisions include:

  • Account scope: Which customers, branches, or sub-accounts a user can buy for.
  • Price semantics: Whether a returned price is indicative, contractually valid, tax-inclusive, or time-bound.
  • Availability semantics: Whether stock is on hand, allocated, backordered, or estimated from a supplier feed.
  • Order state vocabulary: How buyer-visible statuses map from internal operational steps.
  • Change policy: How consuming teams learn about additive fields, deprecations, and breaking changes.

If these rules stay implicit, a team can create a distributed monolith even with modern tooling. The number of services increases, but the coordination burden does not improve.

Cloud-native operations still matter after integration works

Once wholesale teams connect ERP, PIM, and commerce cleanly, the next challenge is runtime discipline. Integration design is only part of the job.

Operational priorities usually include:

  • Observability by business flow: Trace product sync, price calculation, order submission, and status propagation end to end.
  • Queue and retry hygiene: Monitor lag, replay behavior, and dead-letter handling before buyers notice stale data.
  • Resilience policy: Decide which failures should block checkout and which should degrade gracefully with clear messaging.
  • Latency budgets: Set realistic response targets for synchronous calls instead of assuming every upstream dependency can answer instantly.

These controls matter because wholesale buyers care about trust as much as experience. A portal that looks modern but returns inconsistent pricing or unreliable order status will lose adoption quickly.

A phased path to this architecture

Most wholesale teams should not replace everything at once. A better sequence is to modernize around the highest-friction seams.

  1. Clarify ownership first. Decide what stays authoritative in ERP, what moves to PIM, and what belongs in commerce.
  2. Create stable read models. Improve the buyer experience with synchronized views of catalog, pricing, and account context before large-scale extraction.
  3. Pilot one high-value journey. Start with a bounded use case such as account-specific reorder, spare-parts lookup, or quote-assisted checkout.
  4. Add contract governance. Version interfaces, define fallback behavior, and assign service ownership before channel expansion.
  5. Retire duplicate logic deliberately. Remove back-office rules copied into the storefront once authoritative services are proven.

This sequencing keeps architecture work tied to measurable business improvement instead of abstract modernization goals.

Summary

What MACH looks like in wholesale is simpler than many diagrams suggest. ERP remains the operational backbone, PIM remains the product data authority, and commerce remains the place where buyers search, configure, and order. The value comes from the contracts between them, not from forcing one platform to absorb every responsibility.

When wholesale teams use MACH Architecture this way, they gain a stack that is easier to change by capability, easier to govern by ownership, and easier to expand across channels without recreating old coupling in a new form.

Related reading

MACH for Industrial Distribution: Modern UX for Buyers

See how MACH helps industrial distributors support complex buying journeys with faster search, account pricing, branch inventory visibility, and self-service.

Learn More

MACH in B2B Commerce: Flexible Buyer Portals

Learn how manufacturers use MACH to build flexible B2B buyer portals with contract pricing, ERP integration, role-based approvals, and self-service.

Learn More

Running MACH in Production: Integrations and Contracts

A production-focused guide to MACH stacks: integration behavior under load, API contracts, idempotency, observability, and failure modes seen after go-live.

Learn More

From Roadmap to Runtime: MACH Adoption Playbook

MACH adoption from assessment to production: map seams, pilot a vertical slice, govern APIs as contracts, and scale by capability without monolith drift.

Learn More