---
updatedAt: 2026-07-30T22:19:44.000Z
---

# 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 <Anchor target="_blank" href="https://marketplacelearn.walmart.com/guides/Item%20setup/Variant%20management/Create-a-virtual-pack:-full-setup-template">Marketplace guide</Anchor>.

> Virtual Packs are currently limited to specific sellers. Contact <Anchor target="_blank" href="https://developer.walmart.com/global-marketplace/help-support">Support</Anchor> 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:

1. Get the current Virtual Pack feed schema with `POST /v3/items/spec`.
2. Build a Virtual Pack feed using `feedType=MP_VIRTUAL_PACK_BUNDLE`.
3. Include the component GTIN in `bundle_component_gtin`.
4. Include the bundle quantity in `bundleComponentItemQuantity`. Allowed values: `2` to `6`.
5. Submit the feed with `POST /v3/feeds?feedType=MP_VIRTUAL_PACK_BUNDLE`.
6. Retrieve Virtual Pack bundle information with `GET /v3/items?bundleType=VIRTUALPACK`.
7. 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 <Anchor target="_blank" href="https://developer.walmart.com/us-marketplace/docs/multi-line-multi-quantity-mlmq-migration-guide">Multi-Line Multi-Quantity (MLMQ)</Anchor>. |
| 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 <Anchor target="_blank" href="https://developer.walmart.com/us-marketplace/reference/shippingupdates">Orders API guide</Anchor>. Sellers can use the pack SKU to update Virtual Pack prices through the <Anchor target="_blank" href="https://developer.walmart.com/us-marketplace/reference/post_v3-feeds-feedtype-price-and-promotion">Price API</Anchor> and enroll Virtual Packs in promotions through the <Anchor target="_blank" href="https://developer.walmart.com/us-marketplace/reference/updatepromotionalprices">Promotion API</Anchor>.

## 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`.

<br />