Virtual Packs
A Virtual Pack is a purchasable offer that represents multiple units of the same component item in your catalog, allowing customers to buy a predefined quantity in a few clicks. Virtual Packs let you offer two to six units of the same product without separate physical packaging or separate inventory storage and management in Walmart’s fulfillment centers. The Virtual Pack is returned as a single offer with its own product title, site description, key features, image, bundle price, publish status, item ID, and bundle SKU, while inventory and lag time are inherited from the underlying base component item.
This capability is also available in Seller Center for select sellers. To learn more, refer to the Marketplace guide.
Virtual Packs are currently limited to specific sellers. Contact Support for access.
Market availability
Virtual Packs are currently supported for Walmart U.S. Marketplace catalog items.
Reference guide
This guide provides an overview of the Virtual Packs workflow, including how to retrieve the feed schema, create and update Virtual Packs, retrieve items with Virtual Pack offers, and retire a Virtual Pack. Use the endpoint-specific sections for request samples, response samples, and implementation details.
For endpoint-level integration details, refer to the Virtual Packs API reference guide.
Benefits
Virtual Packs help you:
| Benefit | Description |
|---|---|
| Offer pack-size selections | Create 2-pack, 3-pack, or larger quantity offers for the same component item. |
| Simplify inventory management | Restocking the component will automatically restock the Virtual Packs. |
| Apply discounts on Virtual Packs | Offer discounts at the time of item setup or through promotion and deal workflows. Sellers who offer at least five percent discount on a pack size and fulfilling through WFS receive WFS fee savings. To learn more, |
How it works
Use the Virtual Packs workflow to:
- Get the current Virtual Pack feed schema with
POST /v3/items/spec. - Build a Virtual Pack feed using
feedType=MP_VIRTUAL_PACK_BUNDLE. - Include the component GTIN in
bundle_component_gtin. - Include the bundle quantity in
bundleComponentItemQuantity. Allowed values:2to6. - Submit the feed with
POST /v3/feeds?feedType=MP_VIRTUAL_PACK_BUNDLE. - Retrieve Virtual Pack bundle information with
GET /v3/items?bundleType=VIRTUALPACK. - Retire a Virtual Pack offer with
DELETE /v3/items/{sku}.
Prerequisites
Before you create Virtual Packs, make sure you have:
| Requirement | Description |
|---|---|
| Walmart Marketplace access | Your Walmart Marketplace onboarding is complete and your account is enabled for Virtual Packs and onboarded to Multi-Line Multi-Quantity (MLMQ). |
| Access token | You have a valid OAuth access token for WM_SEC.ACCESS_TOKEN. |
| Component item | The underlying item already exists in your catalog, has a valid GTIN, and is in published status. |
| Feed capability | Your integration can generate and submit a JSON feed file. |
| Feed schema | You can retrieve and validate against the current MP_VIRTUAL_PACK_BUNDLE schema. |
Commonly used terms
| Term | Description |
|---|---|
| Component item | The existing item in your catalog that supplies inventory for the Virtual Pack. |
| Virtual Pack | The buyer-facing multi-unit offer created from a component item and quantity. |
| Component GTIN | GTIN of the underlying sellable item. In the feed, use bundle_component_gtin. |
| Bundle quantity or Pack size or Virtual Pack qty | These refer to the number of component units in the Virtual Pack. In the feed, use bundleComponentItemQuantity. Allowed values: 2 to 6. |
| Bundle price | Total price for the bundle offer. In retrieval responses, use bundles[].price.amount. |
| Bundle SKU | SKU that identifies the bundle offer. In retrieval responses, use bundles[].sku. |
| Offer publish status | Publish status of the Virtual Pack offer. In retrieval responses, use bundles[].offerPublishStatus. Example values: PUBLISHED, UNPUBLISHED. |
| Item published status | Publish status of the underlying component item. In item responses, use publishedStatus. |
| Spec version | Version string that identifies the schema to build your feed. Example: 5.0.20260508-19_30_00-api. |
| Feed type | Feed schema or process type. For Virtual Packs, use MP_VIRTUAL_PACK_BUNDLE. |
| Feed ID | Identifier returned after feed submission. Use feedId to track the uploaded feed. |
MPItemFeedHeader | Header object in the feed that provides feed metadata, including businessUnit, locale, feedType, and version. |
Orderable | Feed object that contains offer-level details, including component GTIN, quantity, price, and optional dates. |
Visible | Feed object that contains buyer-facing content such as images and key features. |
bundles[] | Response array that contains bundle offers associated with an item. |
bundleType | Query parameter and response field used to identify Virtual Pack bundles. Allowed value: VIRTUALPACK. |
gtin | Query parameter used with bundleType=VIRTUALPACK to retrieve Virtual Packs for a specific component item. |
| Cursor pagination | Pagination method using nextCursor. Use nextCursor=* for the first page. |
| Limit | Number of results returned per page. |
| Offset | Starting index for offset-based pagination. |
Additional guidance
This guide is for Direct API sellers, approved Solution Providers, and WFS API sellers who want to create, monitor, update, or retire Virtual Packs programmatically. It is especially useful for teams that manage catalog automation, partner integrations, and fulfillment workflows at scale.
Virtual Packs help sellers increase average order value, improve catalog efficiency, support value-based pricing, improve visibility and conversion, and test multi-unit demand without committing to physical bundle inventory. They also reduce manual Seller Center work for teams that already manage items through APIs or partner platforms.
The Virtual Packs API supports the core workflow end to end: retrieve the schema, create or update packs, list and monitor pack offers, and retire packs when they are no longer needed.
Virtual Pack implementations can also connect to price updates, promotions, deals, lag time, orders, and returns. For Virtual Pack order metadata, refer to the Orders API guide. Sellers can use the pack SKU to update Virtual Pack prices through the Price API and enroll Virtual Packs in promotions through the Promotion API.
Validation and limits
Virtual Pack feeds support up to five packs per feed, with two to six component units per pack. Required fields include bundle_component_gtin and price. Virtual Pack creation is limited to eligible items, and any unpublished or blocked packs should be reviewed if the response indicates a problem.
For blocked fulfillment operations, RFC 7807-style error handling uses machine-readable fields such as blocked_operation, sku, shipNodeType, and fulfillment_type.
Updated 35 minutes ago

