How to Use Virtual Categories (Container)

Virtual Categories/Containers

A virtual category is a category that does not require a POS mapping. You choose this option at creation time only — once a category is created as a virtual category, it cannot be converted to a standard category, and vice versa.

In PAR Ordering Management Center, this feature is labeled Virtual container. The terms "virtual category" and "virtual container" refer to the same thing.

What Is a Virtual Category?

A virtual category is a category that exists only in Management Center and your consumer-facing channels (web ordering, kiosk, and others). It is not expected to map to an entity in your POS.

A standard category is treated as a real POS construct. You are expected to map it to a corresponding category in your POS system so that orders, reporting, and inventory align correctly. A virtual category opts out of that requirement.

Everything else works the same way. A virtual category:

  • Has the same fields (name, description, images, products, menus).
  • Can contain the same products as a standard category.
  • Can be added to the same menus.
  • Appears in your customer-facing channels exactly like a standard category.

The only difference is that a virtual category does not require a POS mapping.

When to Use Virtual Categories

Use a virtual category when a grouping needs to exist for your guests or menu presentation but does not need to be tracked in your POS. Use a standard category when the category needs to drive POS reporting or POS-side inventory.

Products inside a virtual category can have upsell items configured in Management Center. When a guest selects a product from the category, the upsell prompt appears as a second step. See Container Upsells below for details.

Common scenarios include:

Online-Only Menu Sections

For groupings intended only for your online or kiosk experience — such as "Web Specials" or "Delivery Only" — that do not need to exist in your POS.

Promotional or Seasonal Categories

For time-limited categories such as "Summer Menu" that do not justify POS configuration.

Cross-Channel Groupings Not Modeled in Your POS

For customer-facing groupings such as "Vegan" or "Kids" that are not represented in your POS structure.

Migration or Staging

If you are transitioning from one POS to another, you may use virtual categories during the migration period.

Terminology Reference

The same feature uses different labels depending on where you encounter it. Use this table to match the term to its meaning.

Term Where You'll See It What It Means
Virtual category Customer communications, support tickets A category with is_virtual_container = true
Virtual container Management Center create-category modal Same concept; the official label in the UI
Contenedor virtual / Virtueller Container Localized Management Center UI Same concept in translated interfaces
is_virtual_container API payloads and audit logs Boolean flag on the category record. true = virtual; false or unset = standard
is_virtual_container = false or unset API Standard category

How to Create a Virtual Category

  1. Navigate to Brand > Menu > Categories.
  2. Click + Create Category in the page header.
  3. The Create Category modal appears.
  4. Enter a category name (required).
  5. Select Virtual container.
  6. Click Create.

You are redirected to the new category's General edit page.

Category type is set at creation and cannot be changed afterward. Once a category is created as a virtual category, it cannot be converted to a standard category, and vice versa.

Edit a Virtual Category

Once created, the edit screens for a virtual category are identical to those of a standard category. The available sections are:

  • General Info: name, internal name, external ID, description, image, and banner image.
  • In Menus: link the category to one or more menus.
  • Contains Products: add or remove products from the category.
  • Copy name, description, and image to all contained products: a one-time action that pushes the container's name, description, and image down to all first-level size products. See How to Use Container-Level Propagation for full instructions.
  • Modifier groups applied to all products: a panel where you can attach a modifier group to the virtual container product group so it is inherited live by all member products. Inherited groups display an Inherited tag at the product level. See How to Use Container-Level Propagation for full instructions.

There is no indicator on the edit page that identifies the category as virtual.

To confirm that a category is virtual, inspect the API response or verify that the original create request included is_virtual_container: true. This information is also available in audit logs and browser network requests.

Identify Virtual Categories

Virtual categories and standard categories appear identical in the Categories list. There is no badge, column, or indicator to distinguish them.

To verify whether a category is virtual, use one of the following methods.

Option 1: Browser Developer Tools (Fastest)
  1. Open the Categories list page.
  2. Open your browser's Developer Tools.
  3. Select the Network tab.
  4. Inspect the category data returned by the API.
  5. Locate the is_virtual_container field.
  • true = virtual category
  • false = standard category
Option 2: API

Retrieve the category record directly:

GET /brands/{brand_id}/menu/categories/{category_id}

Inspect the value of is_virtual_container.

Field Reference

The is_virtual_container field determines whether a category is virtual. All other fields are the same for both category types.

Field Type Required Notes
name string Yes Up to 255 characters. Customer-visible.
internal_name string No Up to 255 characters. Internal label for your brand.
external_id string No Up to 255 characters. Used by external systems.
description string No Up to 3,000 characters. Customer-visible.
image upload No Square category image used in customer channels.
banner_image upload No Wide banner image.
position integer Computed Sort position within the menu.
products array No Products contained within the category.
menus array No Menus that contain the category.
pos_mappings array No POS mappings. Allowed on virtual categories. Virtual status removes the requirement for a mapping but does not prohibit one.
is_virtual_container boolean No true = virtual category. false or unset = standard category. Settable only at creation (POST).

Behavior Rules

Rule What It Means
Creation only is_virtual_container is accepted on POST /categories and ignored on PATCH /categories/:id. Once set, it cannot be changed.
No conversion path There is no "Convert to Virtual" or "Convert to Standard" action in Management Center. If you selected the wrong type, recreate the category.
POS mapping allowed but not required Virtual categories may still contain POS mappings. Virtual status removes the requirement but does not prohibit a mapping.
Same products, same menus Products can belong to both standard and virtual categories. Menus can contain both category types at the same time.
Permissions Creating, editing, and deleting categories requires brand-level access. Store-level users cannot perform these actions.
Bulk delete Bulk delete treats virtual categories the same as standard categories. No additional confirmation is shown.
Channel visibility Virtual categories appear in customer-facing channels (web ordering, kiosk, and others) using the same rules as standard categories. Virtual status does not hide the category from your guests.

Container Display Settings

When a guest selects a product that belongs to a virtual container, Management Center controls how the container experience is presented to them on the web channel. This setting is configured at the brand level in Menu Configuration and applies to all container products across your brand.

This setting applies to the web ordering channel only. Kiosk and native mobile channels are not affected.

Configuring Product Container Placement

The Product container placement setting controls how the container size picker appears when a guest selects a container product.

  1. Navigate to Brand > Menu > Configurations > Menu Configuration.
  2. Locate the Product container placement setting.
  3. Select one of the following options:
Option Guest Experience
As Dialog The container size picker opens as an overlay dialog on top of the current page. The guest selects their size within the dialog, then continues. This is the default behavior.
As Product The container size picker opens as a full-page product experience. The guest sees the full product view with a Back button at the top to return to the previous page.
  1. Click Save.

This is a brand-level setting. It cannot be configured per product, per category, or per store.

How Each Option Displays to Guests

As Dialog The guest selects a container product and a dialog window appears over the current page, displaying the available sizes. After selecting a size, the guest proceeds to their cart or the next step.

As Product The guest selects a container product and is taken to a full product page displaying the available sizes and any additional product details. A Back button at the top of the page lets the guest return to the menu or the previous screen without losing their selection context.

Container Upsells

Products inside a virtual category can have upsell items connected to them in Management Center. This lets you present a true upsell prompt to guests as a second step — after they select their core product from the category, before they continue to their cart.

The upsell prompt also has a brand-level display setting, Upsell placement, that controls whether the prompt appears as a dialog overlay or as a full-page experience. For details, see How to Set Up and Manage Upsell.

To configure upsell items for a product inside a virtual category:

  1. Navigate to Menu > Products.
  2. Select the product inside the virtual category that you want to add upsell items to.
  3. Select the Upsell tab.
  4. Add upsell items from the sidebar and arrange them in your preferred order.
  5. Click Save.

For full instructions on adding upsell items to a product, see How to Set Up and Manage Upsell.

How it works for guests

When a guest selects a product from a virtual category, the upsell prompt appears as a second step. The guest sees the upsell items you configured, can make a selection, and then continues to their cart. If no upsell items are configured on a product, the guest proceeds directly to their cart after selecting the product — no second step appears.

You can also add a container (a combo or build-your-own option) as an upsell item. When a guest taps a container in the upsell prompt, the prompt opens into that container so the guest can build it in place. A Back button at the top of the prompt lets the guest return to the upsell list.

Containers do not have a fixed price — their price is calculated from what the guest builds inside them. A container appearing without a price in the upsell prompt is expected behavior.

Troubleshooting

My category isn't showing up in my POS

Likely cause: The category may be a virtual category. The Virtual container option may have been selected during creation.

How to confirm: Check the value of is_virtual_container on the category record. See Identify Virtual Categories for instructions.

Resolution:

  1. Determine whether you intended this category to integrate with your POS.
  2. If the category only needs to exist in your web or kiosk channels, no action is required.
  3. If the category should integrate with your POS, recreate it as a standard category using the process in Recreating a Category as the Other Type below.

I created a virtual category by accident and want to convert it

Cause: Category type is set at creation time and cannot be edited afterward.

Resolution: Recreate the category as a standard category. See Recreating a Category as the Other Type below.

Recreating a Category as the Other Type

Use this process to convert a virtual category to a standard category, or vice versa.

  1. Record the following details from the existing category:
  • Name
  • Internal name
  • External ID
  • Description
  • Images
  • Product list
  • Menu linkages
  1. Record the sort position if category ordering matters to your configuration.
  2. Remove the category from all menus.
  3. Create a new category using the correct type.
  4. If duplicate names are not allowed, use a temporary modified name during the process.
  5. Re-add all products to the new category.
  6. Re-link the category to all required menus.
  7. Delete the original category.
  8. Republish the menus.

During this process, the category may temporarily disappear from your customer-facing channels. If your brand operates during peak hours, schedule this work during off-hours.

I can't find the Virtual / Standard toggle on the edit page

Cause: The toggle appears only during category creation.

Resolution: Category type is fixed after creation. If you need a different type, follow the recreation procedure above.

Categories look identical in the list — how do I tell which ones are virtual?

Cause: The Categories list does not currently display the is_virtual_container field.

Resolution:

  • Use the API to inspect the category record.
  • Use browser developer tools to inspect the API response.
  • Review your original category creation settings if known.

A UI badge or filter for virtual categories is not currently available. Contact your PAR representative if this is a feature your brand needs.

I added a POS mapping to a virtual category and it was accepted — is that a bug?

Cause: This is expected behavior. Virtual categories can still contain POS mappings. Virtual status removes the requirement for a mapping but does not prohibit one.

Resolution:

  • Review your intended use case for this category.
  • If you require a strictly POS-linked category, recreate it as a standard category.
  • If the mapping is informational only, no action is required.

Bulk-deleting a virtual category gave an unexpected result

Cause: Bulk delete uses the same process for virtual and standard categories.

Resolution:

  1. Verify that linked menus were republished after deletion.
  2. Confirm the behavior matches standard category deletion.
  3. If virtual categories behave differently from standard categories during deletion, contact your PAR representative.

A store manager can't see the Create button

Cause: Store-level accounts cannot create or edit categories. This restriction applies to both virtual and standard categories.

Resolution:

  • Verify the user's permission level in Management Center.
  • Confirm that the user has brand-level access.

A guest isn't seeing an upsell prompt after selecting a product from a virtual category

Cause: Upsell items may not be configured on the specific product the guest selected.

Resolution:

  1. In Management Center, navigate to the product and open the Upsell tab.
  2. Confirm that upsell items are connected and saved.
  3. If upsell items are configured but the prompt still doesn't appear, confirm the product is part of a category linked to a published menu.

A product inside my container is showing the wrong name, description, or image

Cause: The Copy name, description, and image to all contained products checkbox may have been used on the container product, pushing the container's values down to all size products. Resolution:

  • This action is one-time and cannot be undone. To restore the original values, update the name, description, and image manually on each affected product.
  • If the container's description or image was blank at the time of propagation, that blank value was copied to all size products. Re-enter the correct values at the product level.
  • See How to Use Container-Level Propagation for full instructions.

A modifier group is appearing on a product I did not add it to

Cause: A modifier group may have been attached to the virtual container product group that this product belongs to. Inherited modifier groups display an Inherited tag on the product's Modifier Groups tab. Resolution:

  • Open the product in Management Center and check the Modifier Groups tab for any groups labeled Inherited.
  • Inherited groups are managed at the container product group level and cannot be removed from individual products.
  • To remove an inherited modifier group, navigate to the virtual container product group and remove it from the Contains Products tab.
  • See How to Use Container-Level Propagation for full instructions.

The container size picker isn't appearing as expected for guests

Cause: The Product container placement setting in Menu Configuration may not be set to the intended option, or the guest may be on a channel other than web. Resolution:

  • Navigate to Brand > Menu > Configurations > Menu Configuration and confirm the Product container placement value.
  • Confirm the guest is on the web ordering channel. This setting does not apply to kiosk or native mobile.
  • If the setting is correct and the behavior is still unexpected, contact your PAR representative.

Recreating a Category as the Other Type

Use this process to convert a virtual category to a standard category, or vice versa.

  1. Record the following details from the existing category:
  • Name
  • Internal name
  • External ID
  • Description
  • Images
  • Product list
  • Menu linkages
  1. Record the sort position if category ordering matters to your configuration.
  2. Remove the category from all menus.
  3. Create a new category using the correct type. If duplicate names are not allowed, use a temporary modified name during the process.
  4. Re-add all products to the new category.
  5. Re-link the category to all required menus.
  6. Delete the original category.
  7. Republish the menus.

During this process, the category may temporarily disappear from your customer-facing channels. If your brand operates during peak hours, schedule this work during off-hours.

Frequently Asked Questions

Is a virtual category the same as a Virtual Product Group?

No. Both features use the same is_virtual_container concept and the same Virtual container label during creation, but they apply to different entities. Virtual categories apply to categories; Virtual Product Groups apply to product groups. Virtual Product Groups may also have additional behaviors — such as POS parent linking — that do not apply to virtual categories. This article covers virtual categories only.

Can a virtual category be linked to a menu?

Yes. Virtual categories can be linked to menus in exactly the same way as standard categories.

Will a virtual category appear to my guests on web and kiosk channels?

Yes. As long as the category is linked to a published menu, it will appear to your guests. The virtual designation affects POS behavior only and does not impact guest visibility.

Can a product belong to both a standard category and a virtual category?

Yes. Category membership is many-to-many. The same product can belong to multiple categories, including both standard and virtual categories.

Does the POS integration generate errors for virtual categories that do not have a mapping?

It should not. The purpose of a virtual category is to remove the POS mapping requirement. If your POS synchronization generates errors about missing mappings for a category you believe is virtual, contact your PAR representative.

Why does the UI say "Virtual container" while I've heard "Virtual Category"?

"Virtual container" is the platform's generic term because the same concept is used across multiple entity types, including categories and product groups. "Virtual category" is commonly used when referring specifically to a category rather than a product group.

Is there an audit log showing whether a category was created as virtual or standard?

The is_virtual_container value is included in the category creation payload, so creation events should contain this information. If you need a detailed audit investigation, contact your PAR representative.

Does external_id interact with is_virtual_container?

No. The external_id field is independent of category type and can be used on either standard or virtual categories. POS mappings are stored separately in the pos_mappings array.

Can I push the container's name and image to all its size products at once?

Yes. On the Contains Products tab of the container product, use the Copy name, description, and image to all contained products checkbox. This is a one-time copy action that cannot be undone. See How to Use Container-Level Propagation for full instructions.

Can I attach a modifier group to all size products in a container at once?

Yes. Attach the modifier group at the virtual container product group level on the Contains Products tab. All member products automatically inherit the group and display an Inherited tag. See How to Use Container-Level Propagation for full instructions.