> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arcuserp.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Product Variants

> Use variant parents for products where customers choose options, such as size, color, lid, model, or configuration, while each child variant carries the stock, baseline price and cost, shipping, serial, listing, and kit behavior used by Arcus.

<Note>
  The variant parent groups the choices. The variant is the sellable and stock-aware
  record operators add to orders, receive, count, price, list, and fulfill.
</Note>

## When To Use Variants

* **Use variants**: the same product family has option choices and each choice needs its own SKU, stock, price, weight, or component recipe.
* **Use a physical product**: there is only one sellable item and no option matrix is needed.
* **Use a kit**: the customer buys one bundle and Arcus consumes component products.
* **Use a variant kit**: each variant choice has its own component recipe.
* **Use a service**: the item is labor, fees, or non-stock work with no inventory or shipping behavior.

<Warning>
  **Do not use the parent as the stocked item**
  A variant parent organizes choices. Stock, serials, pricing overrides, listings,
  package data, and components belong on the child variant when the choice matters.
  Approved vendors and purchase policies are maintained from the parent product.
</Warning>

## Review The Variants Tab

Open the variant parent product and select **Variants**. The tab shows
active variant count, image, option label, SKU, price, cost, on-hand quantity,
status, and the actions to open or edit each variant. Matrix view is available
when the option shape fits a matrix; list view is better for direct row review.

<Frame caption={"The Variants tab is the parent-level workspace for reviewing child variants, opening the variant editor, and generating option combinations."}>
  <img src="https://mintcdn.com/arcuserp/ATYxy7SB_HGOBGqh/images/support/screenshots/products/product-variants-tab.png?fit=max&auto=format&n=ATYxy7SB_HGOBGqh&q=85&s=bab886d2e5e55596e01368da7c9f872f" alt="Variant parent product with Variants tab, Generate from Options button, List and Matrix controls, and child variant rows" width="1810" height="1040" data-path="images/support/screenshots/products/product-variants-tab.png" />
</Frame>

* **Open**: use the full variant editor for detailed setup.
* **Edit**: make quick SKU, price, or cost changes from the row when available.
* **Status**: inactive variants are hidden from new order entry but kept for history.
* **Kit badge**: the variant has its own component recipe.
* **Selection**: select rows when you need bulk price, cost, or active-state changes.

<Tip>
  **Use List view for operating cleanup**
  Matrix view is helpful when the options are small and easy to scan. List view is
  better for auditing SKUs, prices, costs, active state, and kit badges across
  many variants.
</Tip>

## Generate Variants From Options

1. Open the variant parent product.
2. Go to **Variants**.
3. Click **Generate from Options** or **Add Variants**.
4. Enter each option name, such as Size, Color, Lid, or Model.
5. Add values for each option.
6. Review the generated count.
7. Click **Generate Variants**.

<Frame caption={"The generator combines option values into variant records. Existing combinations are protected, so the workflow can add missing combinations without rewriting valid ones."}>
  <img src="https://mintcdn.com/arcuserp/MrJkb10V6EpIZu0o/images/support/screenshots/products/generate-variants-modal.png?fit=max&auto=format&n=MrJkb10V6EpIZu0o&q=85&s=a4d77f15ece2890c23a80572ca214527" alt="Generate Variants from Options modal with Size and Color options, values, cartesian preview count, and Generate button" width="1060" height="1000" data-path="images/support/screenshots/products/generate-variants-modal.png" />
</Frame>

Generating variants creates the missing child products for the option
combinations. Existing combinations are skipped, so the workflow can fill
gaps without replacing valid child records. If the generated SKU would
collide with another active SKU, fix the SKU pattern or edit the duplicate
before saving.

<Tip>
  **Keep option names customer-readable**
  Option names and values become the language operators see when selecting a product.
  Use names that sales, warehouse, purchasing, and support teams can recognize quickly.
</Tip>

## Bulk Edit Variant Rows

Select variants when the same operating cleanup applies to several child
SKUs. Bulk edit is best for controlled changes such as list price, cost,
image URL, or active state. Review the selected count before saving because
Arcus applies the update to every selected child variant.

* **Price cleanup**: update a group of variants after merchandising approves the new sell price.
* **Cost cleanup**: update a group only when the cost source is correct for each selected variant.
* **Deactivate old choices**: hide discontinued variants from new order entry while preserving order history.
* **Image cleanup**: apply the right image URL when several variants should share the same media.

<Warning>
  **Bulk edit is not a shortcut for identity changes**
  Use the full editor when SKU, barcode, option values, components, or shipping setup
  need individual review.
</Warning>

## Use The Variant Editor

Click **Open** on a variant row to use the full editor. The editor is
where variant-level setup lives when the child choice needs behavior that differs
from the parent or from another variant.

<Frame caption={"The General tab handles identity and active state. Other tabs handle media, pricing, purchasing, inventory, shipping, and components when relevant."}>
  <img src="https://mintcdn.com/arcuserp/ATYxy7SB_HGOBGqh/images/support/screenshots/products/variant-editor-general.png?fit=max&auto=format&n=ATYxy7SB_HGOBGqh&q=85&s=fb11f97b585d024c1cccaf351fba9d1b" alt="Variant editor General tab with variant title, SKU, barcode, active status, option values, tabs, and Save changes button" width="1810" height="1040" data-path="images/support/screenshots/products/variant-editor-general.png" />
</Frame>

* **General**: variant title, SKU, barcode, active state, and option values.
* **Media**: variant-specific image behavior when the child needs its own image.
* **Variants**: switch between sibling variants without returning to the parent first.
* **Pricing**: variant baseline list price and cost when the child should differ from the parent. Customer, account, level, and quantity-break pricing policies are managed from the parent product Pricing tab in the current UI.
* **Purchasing**: read-only guidance that vendors, lead time, and purchase policies are managed from the parent product. The child inherits that buying setup when buyers receive or purchase the exact variant.
* **Inventory**: read-only stock summary for the variant, including on-hand, allocated, available, and buildable-from-components context when the variant is a kit.
* **Shipping**: weight and optional dimension overrides for the exact child variant. Blank dimensions inherit from the parent product.
* **Components**: visible when the variant is configured as a kit.
  The variant editor saves the child record, not the parent. That means a
  baseline price, cost, package size, component recipe, or active-state change affects
  only the selected child variant unless you use a bulk edit across selected
  variants.

## Know What The Variant Inherits

Some setup stays on the parent so buying, pricing, and catalog maintenance do not
fork unexpectedly across every child SKU.

* **Purchasing**: approved vendors, vendor part rows, minimum order quantities, lead times, and purchase policies are parent-level setup in the current product UI.
* **Customer pricing policies**: maintain account, pricing level, default, and quantity-break policies from the parent product Pricing tab. The variant editor handles the child baseline list price and cost.
* **Shipping dimensions**: a variant can override weight and dimensions. Blank variant dimensions fall back to the parent product's shipping dimensions.
* **Inventory changes**: the variant Inventory tab is a review surface. Use receiving, purchase order receiving, transfers, counts, adjustments, fulfillment, or returns to change stock.

<Tip>
  **Use the parent for buying rules**
  When a purchase order buys a variant family, the buyer still chooses the exact
  child variant on the PO line. The approved vendor and purchase policy come
  from the parent product setup.
</Tip>

## Variant Settings

Use **Variant settings** for high-impact toggles. The current settings
drawer includes active state and kit configuration. If a variant is a kit, selling
that variant consumes the components defined on the variant Components tab.

<Frame caption={"Variant settings control whether the child variant behaves like its own kit and whether it remains selectable for new work."}>
  <img src="https://mintcdn.com/arcuserp/ATYxy7SB_HGOBGqh/images/support/screenshots/products/variant-settings-drawer.png?fit=max&auto=format&n=ATYxy7SB_HGOBGqh&q=85&s=e2d21132fda47dd6f8164671ff7311f1" alt="Variant settings drawer with This variant is a kit toggle, kit mode message, and Active status toggle" width="980" height="1060" data-path="images/support/screenshots/products/variant-settings-drawer.png" />
</Frame>

<Warning>
  **Turning off kit mode changes future selling behavior**
  Component rows are preserved when kit mode is turned off, but the variant no longer
  sells as a component-consuming kit until kit mode is enabled again. Review open work
  before changing this setting on a variant already used by the team.
</Warning>

## Use Variant Kits When The Recipe Changes By Choice

A variant kit is the right structure when each option choice has its own
component recipe. For example, a small kit and a large kit can share the
same parent, but each variant can require different components or different
quantities.

1. Open the exact variant.
2. Open **Variant settings**.
3. Turn on **This variant is a kit**.
4. Use the variant **Components** tab to add the recipe for that child.
5. Review the variant in order entry, fulfillment, and marketplace mapping before using it broadly.

<Note>
  Variant kit component rows are preserved when kit mode is turned off. They are not
  used for future selling until kit mode is enabled again.
</Note>

## How Variants Affect Other Workflows

* **Order entry**: operators select the exact variant, not just the parent, before adding the line.
* **Inventory**: on-hand, allocated, available, transfers, counts, and receiving are tied to the child SKU.
* **Pricing**: the child baseline list price and cost can differ from the parent. Customer-specific and quantity-break policies are maintained from the parent product Pricing tab in the current UI.
* **Fulfillment**: stock, serials, bins, package data, and component requirements come from the selected variant.
* **Purchasing**: parent vendor setup and purchase policies apply, while the purchase order line still identifies the exact variant being bought.
* **Marketplace listings**: external listings should map to the exact product or variant being sold on the channel.

## Common Blocks

* **Variant does not appear in order entry**: confirm the variant and parent are active, and that the order search is using the right SKU or title.
* **Generated count looks wrong**: review option names and values before generating. The count is the combination of valid values.
* **SKU will not save**: active variants must keep unique SKUs inside the entity.
* **Matrix view is unavailable or too large**: use List view when the option set is too large or does not fit a clean matrix.
* **Bulk edit changed more rows than expected**: review the selected variants, then correct each affected child record or run a smaller bulk update.
* **Variant kit will not fulfill**: review variant components, component stock, serial requirements, and order holds.
* **Purchasing fields look read-only on the variant**: open the parent product Purchasing tab to maintain approved vendors, lead time, and purchase policies.
* **Variant dimensions did not change shipping**: confirm the variant has its own dimension values. Blank fields inherit from the parent.
* **Customer-specific variant price is missing**: update the parent Product Pricing policies, then test the exact variant on a draft order.
* **Wrong listing receives updates**: review marketplace mapping and make sure the external listing is tied to the exact child item.

## Related Articles

<CardGroup cols={2}>
  <Card title="Product Setup" href="/support/products/setup">
    Create physical products, services, and product records.
  </Card>

  <Card title="Product Types and Costing" href="/support/products/product-types-costing">
    Understand product type conversion rules, FIFO layers, product value, and Recost repair behavior.
  </Card>

  <Card title="Kits and Assemblies" href="/support/products/kits">
    Create kits, add components, understand kit cost, and sell bundles safely.
  </Card>

  <Card title="Pricing Rules" href="/support/products/pricing">
    Configure quantity breaks, customer pricing, and multiplier rules.
  </Card>

  <Card title="Inventory Management" href="/support/products/inventory">
    Track stock, locations, reorder points, and inventory movement history.
  </Card>

  <Card title="Marketplace Listings and Mapping" href="/support/products/marketplace-listings">
    Map Arcus products and variants to marketplace listings, resolve drift, and use Shopify Bulk Map.
  </Card>
</CardGroup>
