> ## Documentation Index
> Fetch the complete documentation index at: https://sailia-mintlify-document-new-features-1776330531.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Shop products

> Set up and sell physical and digital products through your online shop and POS.

Shop products are items you sell alongside your activities — things like merchandise, equipment, food, and digital downloads. They can be purchased through your online booking page or the [point of sale](/point-of-sale/overview).

## Create a shop product

<Steps>
  <Step title="Open the shop section">
    Navigate to your shop dashboard and select **Create Product**.
  </Step>

  <Step title="Enter product details">
    Add the product name, description, and images. Set a default price.
  </Step>

  <Step title="Add variants (optional)">
    Create variants for different sizes, colors, or options. Each variant can have its own price and stock level.
  </Step>

  <Step title="Enable custom pricing (optional)">
    If the price varies (for example, items sold by weight), toggle on [custom pricing](/point-of-sale/custom-pricing). POS operators enter the price manually when adding the item to a basket.
  </Step>

  <Step title="Assign an accounting category (optional)">
    If you use [Xero accounting sync](/integrations/accounting-sync), assign an accounting category to determine the VAT rate and account code for this product.
  </Step>
</Steps>

## Variants

Variants let you offer different options for a single product — such as sizes or colors. Each variant can have:

* Its own price (or use the product's default price)
* Independent custom pricing settings
* A unique name displayed in the POS and online shop

In the POS, when a product has variants, a selector appears so the operator can pick the correct option before adding it to the basket.

## Selling shop products

Shop products can be sold through two channels:

| Channel    | How it works                                                                                                          |
| ---------- | --------------------------------------------------------------------------------------------------------------------- |
| **Online** | Products appear on your booking page. Customers add them to their basket alongside activity bookings.                 |
| **POS**    | Staff tap the product in the POS to add it to a basket. For custom-priced items, they enter the price via the keypad. |

Both channels share the same product catalog and pricing configuration.

## Stock management

When you enable stock tracking for a product or variant, Sailia monitors available inventory and prevents overselling.

### Pending basket quantities

When a customer adds a stock-tracked product to their basket, the quantity is held until the basket expires or the order is completed. These held quantities are shown as **pending basket warnings** when you adjust stock levels.

<Info>
  Pending basket quantities only appear for items with stock tracking enabled. Baskets that have expired are not counted.
</Info>

If you set a stock level below the number of items currently held in pending baskets, Sailia displays a warning so you can make an informed decision. This helps avoid overselling when active baskets are waiting to be completed.

### Automatic stock restoration on refund

When you [refund](/activities/cancellations-and-refunds) a shop product that has stock tracking enabled, the refunded quantity is automatically returned to inventory. No manual stock adjustment is needed — Sailia adds the items back with a "Returned" note referencing the original order.

## Discounts on shop products

[Discount codes](/pricing/discount-codes) can be configured to apply to shop products. When creating a discount, enable **Shop products** under product eligibility and optionally restrict to specific items.

## Related guides

<Columns cols={2}>
  <Card title="Custom pricing" icon="calculator" href="/point-of-sale/custom-pricing">
    Override product prices for variable-price items.
  </Card>

  <Card title="Discount codes" icon="tag" href="/pricing/discount-codes">
    Create discounts that apply to shop products.
  </Card>
</Columns>
