VTEX omnichannel: ship-from-store, pickup & endless aisle

inventory in retail industry

Most VTEX omnichannel projects stall not at the vision stage but at the configuration layer, when a retail ops team discovers that Ship-from-Store, click-and-collect, and Endless Aisle each depend on the same upstream prerequisite: unified, real-time inventory visibility across every node. Get that foundation wrong and your 50km pickup radius returns no eligible stores, your Endless Aisle app surfaces out-of-stock SKUs, and your OMS routes orders to the slowest warehouse by default.

This guide walks through VTEX's omnichannel architecture at the level a senior engineering manager or retail ops director needs to scope the work and make a build decision.

TL;DR: What VTEX omnichannel actually requires to work

VTEX omnichannel breaks in production when teams configure channels in isolation: inventory first, then shipping policies, then OMS routing. Miss any link in that chain and the platform cannot allocate stock across storefronts or orchestrate split-shipment fulfillment.

Netguru's VTEX engineering team has configured Ship-from-Store rollouts and Endless Aisle deployments for multi-location retailers, including edge cases at the 50km pickup boundary. The three prerequisites that must be in place before any omnichannel flow goes live: unified inventory visibility across every warehouse and store node, at least one shipping policy bound to each pickup point, and VTEX OMS routing rules that treat physical stores as addressable fulfillment origins, not passive sales locations. One quick check you can run today: open the Inventory & Shipping section in VTEX Admin and confirm every store node has a loading dock, a warehouse, and a shipping policy attached. If any of the three is missing, click-and-collect and Ship-from-Store will silently fail at checkout.

What is VTEX omnichannel commerce? (Platform-specific definition)

VTEX omnichannel commerce is not a middleware layer bolted onto a monolithic platform, it is the native capability of VTEX OMS to treat every physical store, warehouse, and digital storefront as a single unified inventory visibility plane and route fulfillment across them through one order lifecycle.

Most platforms achieve omnichannel by connecting siloed channel systems after the fact: a separate WMS, a separate POS integration, a third-party OMS to stitch them together. VTEX's architecture inverts this. The OMS is the source of truth for both online and in-store orders. Warehouses, loading docks, and shipping policies are configured within the same Inventory & Shipping module that governs B2C and B2B storefronts, marketplace seller flows, and in-store associate sales, all reading from the same stock positions.

The practical consequence is what VTEX calls a capillary distribution network: physical stores become mini fulfillment nodes alongside centralized distribution centers. Ship-from-Store, click-and-collect pickup points, and Endless Aisle app allocations all draw from the same unified inventory pool, orchestrated by the same OMS routing rules. There is no separate "omnichannel module" to license or synchronize: the configuration lives in the warehouse-to-loading-dock-to-shipping-policy triangle that governs every fulfillment path on the platform. Retailers extending this unified inventory model across channels often pair it with a unified customer retention strategy to ensure consistent rewards and recognition at every fulfillment touchpoint.

For a deeper read on how the underlying order flow and status lifecycle work, see our VTEX OMS integration guide.

Unified inventory visibility: The prerequisite for every omnichannel mode

Unified inventory visibility is the prerequisite that makes every VTEX omnichannel fulfillment mode possible. Without a single, real-time stock plane spanning warehouses and physical stores, Ship-from-Store allocates from stale counts, Endless Aisle falls back to stockouts, and pickup point eligibility checks resolve against bad data.

VTEX OMS maintains this plane natively, no middleware sync required.

The administrative home for this configuration is the Inventory & Shipping section of VTEX Admin. Within it, stock exists in a three-layer hierarchy: a warehouse holds physical inventory, a loading dock represents the dispatch point where picked items are handed to a carrier, and a shipping policy defines the carrier rules and windows attached to that dock. Every omnichannel fulfillment mode depends on at least one complete path through all three layers.

The stock reservation lifecycle and its content management requirements matter here. When VTEX OMS receives an order, it runs idempotent allocation against current warehouse stock, reserving units atomically so that concurrent orders across storefronts cannot double-allocate the same item.

That reservation holds through picking and packing; the loading dock record closes it at carrier handoff. If the order is cancelled before dispatch, the reservation is released and stock returns to the available pool without a manual correction step.

In our implementations, teams most often misconfigure this layer by creating a warehouse and pickup point without wiring a loading dock between them, a gap that produces "no delivery options" errors at checkout rather than a clear configuration failure message in VTEX Admin. For the full order-flow and status-lifecycle mechanics that sit beneath this inventory plane, see our VTEX OMS integration guide.

Ship-from-store: How physical stores become fulfillment nodes

Ship-from-Store converts a physical store into a fulfillment node by registering it inside VTEX Logistics as a warehouse-loading dock-shipping policy triad. Each component is mandatory: the warehouse records on-hand stock, the loading dock acts as the handoff point where a carrier collects the parcel, and the shipping policy defines which carriers and SLAs apply to outbound orders from that location.

Miss any one leg of the triangle and VTEX will not route online orders to the store.

Step-by-step: configuring Ship-from-Store in VTEX Admin

The configuration path runs through the Inventory & Shipping section. Here is the sequence to follow across all media channels:

  1. Create the warehouse. Navigate to Inventory & Shipping > Warehouses and add a new warehouse entry. Enter the store's physical address and assign it a clear name that identifies the location (for example, "Store 042 - Manchester"). Set the handling time to reflect how long staff need to pick and pack an order before carrier collection.
  2. Add a loading dock. Go to Inventory & Shipping > Loading Docks and create a new dock linked to the warehouse you just created. The dock represents the physical handoff point: set its operating hours to match the store's actual opening and closing times, not those of your central distribution center.
  3. Create a shipping policy. Under Inventory & Shipping > Shipping Policies, define a new policy scoped to this dock. Select the carriers that collect from this location, confirm their SLA windows align with the dock's hours, and set any geographic coverage limits relevant to this store's catchment area.
  1. Verify stock visibility. Once all three objects are linked, the store's inventory should appear on the unified inventory plane. Confirm this under Inventory & Shipping > Inventory before processing live orders.

Once configured, VTEX OMS can begin allocating orders to the store using the same execution logic it applies to a central distribution center. The full order lifecycle, including reservation, pick confirmation, packing, and carrier handoff, follows the same status flow described in our VTEX OMS integration guide.

In practice, the loading dock setup is where most Ship-from-Store rollouts stall. On one recent retail engagement, a client had configured warehouses and shipping policies correctly but left all store docks defaulting to the same carrier account used for the central DC. The result: store-originated shipments booked a next-day courier that the stores could not physically hand off before the SLA cut-off time, because the DC's collection window (18:00) did not match the stores' closing time (17:00). The fix was a separate shipping policy per store cluster with an adjusted carrier SLA window, a one-hour gap that was invisible until live orders started missing their promised delivery date.

For B2C retailers with dense store networks, Ship-from-Store shortens the last-mile distance to the customer. In a Coresight Research survey of 150 executives at US mall-based retailers, 28.6% of retailers reported saving 8-10% of total last-mile delivery costs and another 31.4% reported saving 5-8% by shipping from their mall-based stores instead of traditional central distribution centers (Coresight Research, cited by Fillogic), which translates directly into lower cost per delivery.

For B2B or marketplace sellers operating stores as showrooms, the same configuration makes those locations viable as sales fulfillment points without separate WMS investment. The VTEX platform treats both models identically at the routing layer; the business logic difference lives in the shipping policy rules, not in the OMS order flow. Teams looking for performance insights after go-live can monitor fulfillment rates by location directly within VTEX Admin's reporting views to identify which store nodes are underperforming and adjust carrier or SLA settings accordingly.

Pickup point configuration: Warehouse, loading dock, and the 50km radius rule

Pickup point configuration in VTEX requires three components to work together: a loading dock, a warehouse, and a shipping policy, the same triad covered for Ship-from-Store, but wired differently for click-and-collect. Miss any one of them and the pickup option simply won't surface to customers at checkout.

Configure pickup points inside the VTEX Admin under Inventory & Shipping > Pickup Points. Each pickup point needs at minimum one loading dock that handles inbound collection, one warehouse that holds the stock, and one shipping policy that specifies the SLA and identifies the location as a pickup-eligible point. A single physical store can carry multiple pickup points, useful when a large-format retailer wants to expose separate collection counters for different product categories, each with distinct SLAs.

The constraint that catches most teams off guard is the pickup point eligibility radius: according to VTEX help documentation, VTEX limits click-and-collect availability to customers within a 50km radius of the pickup point. The platform ranks eligible pickup points by shortest distance to the customer's delivery address and presents them in that order.

In practice, that 50km boundary creates edge cases. On one retail rollout we observed stores sitting at roughly 48-52km from a cluster of suburban postcodes: close enough that customers expected the option, but VTEX's radius check silently excluded them. The fix requires either adjusting the store's registered coordinates (if the address geocoding is slightly off) or acknowledging the hard constraint and setting customer expectations upstream via the storefront UI.

If the pickup point draws stock from a warehouse also used for standard home-delivery shipments, the shipping policy configuration must distinguish between the two delivery modes. Conflating them causes the VTEX OMS to route orders incorrectly; for a full read on how order type and status lifecycle interact downstream, see our VTEX OMS guide.

Endless aisle: Selling from unified stock when a store shelf is empty

The Endless Aisle app converts a stock-out moment from a lost sale into a fulfilled order. When a walk-in customer wants an item the physical store doesn't carry, an in-store associate opens the Endless Aisle app, finds the product in unified inventory visibility across all stores and the central DC, and places the order on the customer's behalf, with delivery to their home address or a pickup point.

The app is available through the VTEX App Store and requires a few prerequisites before it works in production. Your catalog must expose real-time, unified inventory across every warehouse in the account, not per-store stock silos. Order allocation then runs through VTEX OMS using the same fulfillment routing logic as any online order: the OMS evaluates which warehouse can fulfill, assigns the closest eligible location, and generates the shipment. If the item is at two locations, say, partial stock at a nearby store and the remainder at the central DC, the OMS can route a split-shipment, each leg following its own warehouse-to-loading-dock-to-shipping-policy chain.

In our Endless Aisle deployments with retail clients, the most common configuration gap is a store warehouse that lacks a shipping policy for home delivery, only for click-and-collect. That silently removes the location from order allocation fanout for shipped orders, so associates see "unavailable" even when stock physically exists. The fix is straightforward, add a carrier-backed shipping policy to the relevant loading dock, but diagnosing it requires reading allocation logs in VTEX OMS rather than the Endless Aisle app itself.

When a product is unavailable in-store and no alternative is offered, retailers lose nearly 50% of all intended purchases (Mirakl (citing Harvard Business Review))

For the full order lifecycle underneath an Endless Aisle allocation: status transitions, reservation expiry, and cancellation handling, read our VTEX OMS integration guide.

How VTEX OMS orchestrates omnichannel order routing

VTEX OMS routes every order: B2C, B2B, marketplace, and in-store, through the same allocation engine, making the routing logic consistent whether the origin node is a central DC or a Ship-from-Store location acting as a mini distribution center.

When an order arrives, the OMS evaluates which fulfillment nodes can satisfy it: it checks real-time inventory reservations across all warehouses, applies shipping policy constraints per loading dock, and ranks eligible nodes by cost and proximity. For split-shipment routing, the engine resolves each line item independently, a single order can ship from three separate nodes if no single location holds full stock. This allocation step is idempotent: if the reservation attempt fails mid-flight (connectivity loss, concurrent reservation conflict), the OMS retries against the same node state without double-reserving stock.

The escalation path matters in practice when you search for the right resolution strategy. A node is skipped if its loading dock has no active shipping policy covering the destination, or if a pickup point falls outside the 50km eligibility radius enforced at the platform level. Nodes near that radius boundary rank lower than closer alternatives, VTEX orders eligible pickup points by shortest distance to the customer's delivery address. In our Ship-from-Store rollouts, stores within 48-50km of a cluster of customer addresses required careful shipping policy scoping to avoid being silently excluded from allocation.

For the full order-flow lifecycle: status transitions, payment capture sequencing, and cancellation windows, read our VTEX OMS integration guide. For how marketplace seller-fulfilled nodes interact with this routing logic, the VTEX marketplace architecture guide covers the fulfillment choice mechanics in depth.

VTEX vs Salesforce Commerce Cloud vs commercetools: Omnichannel fit

VTEX OMS wins on native omnichannel depth out of the box; Salesforce Commerce Cloud wins on enterprise partner network breadth; commercetools wins on composability. Which matters most depends on how much of your fulfillment logic you want pre-built versus assembled.

Capability VTEX Salesforce Commerce Cloud commercetools
Native OMS Full OMS included, order routing, split-shipment, reservation lifecycle Requires Order Management add-on (separate SKU, separate cost) No native OMS; assemble via MACH partners (e.g., Fluent Commerce, fabric)
Ship-from-Store Native, configured via warehouse + loading dock + shipping policy triangle Available via Order Management module API-first; build or buy a fulfillment orchestration layer
Pickup point config Native pickup point sub-menu; 50km eligibility radius enforced by platform Configurable, but radius enforcement is custom logic Custom build required
Endless Aisle Dedicated Endless Aisle app; unified inventory across stores and DCs No equivalent native app API-composable; no native in-store associate tool
B2B + B2C on one platform Single platform, separate sales policies per business unit Separate B2B Commerce and B2C Commerce clouds Single API layer; business-unit separation via project/store model
MACH architecture Partial, headless-capable, but platform includes managed services Partial, moving toward composable, legacy monolith roots Full MACH; purpose-built for API-first composability
Marketplace (seller-fulfilled) Native marketplace + seller management Via LINK cartridge ecosystem Via integrations
Typical implementation time 3-6 months for full omnichannel go-live 6-12 months 9-18 months (more assembly required)

The practical read: VTEX's unified inventory visibility and native OMS make Ship-from-Store and Endless Aisle deployable without a third-party fulfillment layer. Salesforce Commerce Cloud requires the separate Order Management add-on before those same operations become viable, which materially increases TCO: reported market benchmarks put Order Management pricing at roughly 0.25% to 1% of GMV per order on top of Commerce Cloud's own GMV-based licensing (Salesforce does not publish these figures directly; confirm current pricing with Salesforce for your deployment). commercetools gives engineering teams maximum control across every touchpoint but demands that someone assemble and maintain the fulfillment orchestration stack; in our experience, that assembly work adds 4-6 months to an omnichannel go-live versus a VTEX-native configuration.

For retailers who already operate inside a Salesforce CRM and Marketing Cloud environment, the Commerce Cloud ecosystem cohesion can outweigh the OMS add-on cost. For retailers whose primary constraint is time-to-market on Ship-from-Store or click-and-collect, VTEX's pre-built configuration model, including the loading dock, warehouse, and shipping policy triangle required for each pickup point, removes a significant integration surface. commercetools suits engineering-heavy organizations that want to own every layer of the stack and have 12+ months of runway to build it. As retail architecture continues evolving beyond these platform choices, unified data systems are reshaping how fulfillment, inventory, and customer experience connect across the entire commerce stack.

Implementation readiness checklist before going live

Unified inventory visibility across all locations must be confirmed working before any VTEX omnichannel capability goes live. Stock discrepancies at launch are the single most common cause of failed Ship-from-Store rollouts we've seen: overselling from a store whose inventory feed lags by even 15 minutes creates order exceptions the VTEX OMS cannot self-heal.

  1. Confirm unified inventory visibility is synchronized across all fulfillment nodes.

Owner: Integration lead or ERP architect. Estimated effort: 3-5 days including validation cycles.

Every warehouse, store, and distribution center must be feeding real-time stock updates into VTEX. If your ERP or PIM pushes inventory on a batch schedule, resolve that before cutover. This is a performance-critical dependency: a single lagging feed undermines execution across every channel simultaneously. See our PIM - VTEX integration guide for connector architecture options.

  1. Verify the warehouse, loading dock, shipping policy triangle for each pickup point.

Owner: VTEX platform administrator. Estimated effort: 1-2 days per fulfillment node.

Per VTEX help documentation, a pickup point requires at least one loading dock, one warehouse, and one shipping policy, all three configured and linked. Missing any single component silently disables the pickup point without a clear error in the Admin UI.

  1. Audit pickup point eligibility radii.

Owner: QA engineer or fulfilment operations manager. Estimated effort: 1 day of structured test execution.

VTEX enforces a hard 50km radius between each pickup point and the customer's delivery address (VTEX Developers - Delivery Promise for headless stores (Beta)). Stores near that boundary may appear eligible during checkout in some postal code combinations and not others. Test edge cases with addresses at 48km, 50km, and 52km from each store before go-live.

  1. Validate shipping policy rules for split-shipment scenarios.

Owner: Logistics manager plus platform developer. Estimated effort: 2-3 days including carrier configuration checks.

If an order routes across two fulfillment nodes: one item from store stock and one from a DC, confirm your shipping policies support split-shipment routing without producing duplicate carrier booking calls.

  1. Test Endless Aisle app stock allocation end-to-end in a staging environment.

Owner: Store operations lead and QA team. Estimated effort: 2 days of in-store scenario testing.

Associates should be able to complete a full Endless Aisle transaction against cross-store inventory before the first real sales day. Confirm the app resolves to the correct fulfillment node, not the local store. The shopping experience your customers encounter on day one depends entirely on this validation step.

  1. Check ERP/PIM integration dependencies under peak load.

Owner: Solutions architect or DevOps engineer. Estimated effort: 1-2 days for load simulation design and review of insights from the results.

Omnichannel operations stress-test integrations that work fine under normal B2C or B2B volume. Run a load simulation across your synchronized storefronts before enabling Ship-from-Store at scale.

Frequently asked questions about VTEX omnichannel configuration

How does ship-from-store work in VTEX?

Ship-from-Store in VTEX designates a physical store as a fulfillment node, letting it pick, pack, and dispatch online orders from its own on-site inventory. VTEX OMS routes the order to the nearest eligible store rather than a central warehouse, shortening last-mile distance. This matters most for urban retailers where store density makes store-level fulfillment faster and cheaper than DC shipping. When multiple stores are equidistant or similarly stocked, VTEX OMS applies priority rules based on stock depth and loading dock availability, so teams should keep inventory data current to ensure accurate routing execution.

What are the VTEX pickup point configuration requirements?

Every VTEX pickup point requires three components configured together: at least one loading dock serving the point, one warehouse supplying it, and one shipping policy scoped to that location. Per VTEX Help documentation, missing any single component prevents the pickup option from appearing at checkout. Teams most often miss the shipping policy step, configuring it last, after the warehouse-to-loading-dock link is confirmed.

How does the VTEX endless aisle app work and what does it require?

The Endless Aisle app lets in-store associates complete a sale when local stock is zero by allocating inventory from another store or the main distribution center in real time. It depends on unified inventory visibility across all locations; per-store stock silos will cause incorrect availability reads. Retailers without a centralized, synchronized inventory layer should resolve that before deploying Endless Aisle. Accurate stock data also improves shopping experience quality, since associates and customers see consistent availability across every channel.

What is the 50km eligibility radius and can it be changed?

VTEX limits click-and-collect options to pickup points within a 50km radius of the customer's delivery address, ranking eligible points by shortest distance. Per VTEX Help documentation, this pickup point eligibility radius is a platform-level rule and cannot be extended by configuration. When the radius overlaps multiple stores, VTEX ranks them by straight-line distance from the customer's address, shortest first. If two stores fall within a negligible distance of each other, the platform breaks the tie using the sequence in which pickup points are listed in the Pickup Points configuration, so the ordering of those records matters in dense urban deployments. Stores near the 50km boundary will appear intermittently depending on the customer's exact address, which can surface as inconsistent checkout behavior during rollouts. Monitoring these edge cases and reviewing pickup point performance data regularly helps teams catch eligibility gaps before they affect conversion.

How do I configure a warehouse, loading dock, and shipping policy for click-and-collect in VTEX?

In VTEX Admin, navigate to Inventory and Shipping, create a warehouse linked to the store location, attach a loading dock to that warehouse, then create a shipping policy in the Pickup Points sub-menu referencing both. All three components must be active and linked for the pickup option to surface at checkout. Skipping the loading dock step is the most common configuration error observed on first-time VTEX omnichannel deployments.

Can one VTEX store have multiple pickup points?

Yes: a single VTEX store can have multiple pickup points, each with its own warehouse, loading dock, and shipping policy configuration triangle. This supports scenarios like separate pickup counters for B2C and B2B orders, or distinct collection zones within a large-format store. Each point must independently satisfy all three configuration requirements to remain eligible for customer selection. In global deployments with many locations, maintaining a consistent naming convention for pickup point records also reduces tie-breaking ambiguity when distance differences are minimal.

How does VTEX handle unified inventory visibility across stores and warehouses?

VTEX aggregates stock across all warehouses and store locations into a single inventory view, which VTEX OMS uses for real-time order allocation and Endless Aisle stock reads. This unified view is what makes split-shipment routing and cross-store fulfillment decisions possible. It also provides the insights teams need to evaluate which locations handle the highest fulfillment volumes and where stock positioning should shift. For the full order lifecycle mechanics that sit underneath this inventory layer, see our VTEX OMS integration guide.

Ready to configure VTEX omnichannel? Here's how we can help

Configuring VTEX OMS for Ship-from-Store, pickup point routing, and unified inventory visibility across every fulfillment node is genuinely complex work, and the margin for misconfiguration is narrow. Our team has shipped these configurations for retail clients, from loading-dock-to-shipping-policy triangles through to 50km radius edge cases that quietly drop eligible stores from the checkout.

If you're ready to move from architecture decisions to a working platform, our Commerce Development team builds across the full VTEX omnichannel stack: B2C and B2B storefronts, OMS integrations, Endless Aisle deployments, and marketplace connections, with consistent support across channels from discovery through to go-live. Build your commerce platform. Delivering smooth omnichannel customer experiences across every touchpoint requires more than platform configuration: it demands a unified commerce strategy that connects your channels, data, and systems end to end.

We're Netguru

At Netguru we specialize in designing, building, shipping and scaling beautiful, usable products with blazing-fast efficiency.

Let's talk business