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

# Products

> Manage your product catalogue, variants, and pricing.

**Products** are the items you sell, whether that's a hand-tied bouquet, a potted plant, a vase, or a gift card. Each product in your catalogue can have multiple <Tooltip tip="A version of a product like Standard, Large, or Luxury">**variants**</Tooltip> (sizes like Standard, Large, and Luxury), each with its own price and recipe.

Product and category management lives in the dashboard. The [Digital Florists App](/get-started/companion-app) is for the shop floor and the road: viewing orders, marking them ready, scanning, and managing tasks. To edit products, recipes, or categories, use the dashboard on a computer or tablet browser.

<Info>
  **This page covers features gated by Admin-tier permissions** — typically Settings access. Admins have these by default; your administrator can adjust who has them in [Settings > Team](/settings/team).
</Info>

## Product structure

Each product can have several sizes (variants), so one bouquet listing covers Standard, Large, and Luxury without duplicating the description or photos:

* **Product**: "Red Rose Hand-Tied" (holds the description, photos, and general details)
* **Variants**: "Standard" at £35, "Large" at £50, "Luxury" at £75 (each with its own price and recipe)

This keeps your catalogue tidy. Instead of three separate products for the same bouquet, you have one product with three sizes.

## Adding a product

Set up at least one category before you add products. Every product must belong to a category to save, so it's worth deciding how you want to group your range first. See [Product categories](#product-categories) below.

<Steps>
  <Step title="Create the product">
    Go to **Settings** > **Storefront** > **Products**, click **Options** in the top right, and choose **Add Product**. Enter the product name, description, and upload photos.
  </Step>

  <Step title="Choose at least one category">
    Pick the categories this product belongs to. A product needs at least one and can sit in up to **5**. The first one becomes the **primary category**, which is the one used for filtering and display.
  </Step>

  <Step title="Add variants">
    Add the variants (sizes) you want to offer. For each variant, set the **Variant name** (e.g., Standard, Large, Luxury) and the **Gross price (inc. tax)** customers will pay.
  </Step>

  <Step title="Build a recipe (optional)">
    If you want accurate costing, add a recipe to each variant. List the ingredients (stems, sundries, materials) and the quantities needed. Digital Florists calculates the cost price and shows your profit margin.
  </Step>

  <Step title="Set visibility">
    Choose whether the product is visible on your order screen and Point of Sale. You can also tag it with **occasions** (Birthday, Romance, Sympathy) so it appears in the right categories.
  </Step>
</Steps>

## Recipes and margins

Recipes tell Digital Florists what goes into each arrangement. Once a variant has a recipe you get:

* **Accurate cost prices** based on real ingredient costs from your inventory
* **Live profit margins** that update when ingredient prices change
* **Pick list integration**, so the dashboard can tell you what stems to pull each morning
* **Early warnings** if your margin drops below a healthy level because a supplier raised their prices

<Tip>
  Build recipes for your best-selling products first. Even if you don't recipe every product, having your top sellers costed accurately will help you spot margin problems early.
</Tip>

### Pricing a variant: forwards or backwards

Once a variant has stems on it, you can price it two ways.

**Work forwards (the default):** add your stems and labour, and Digital Florists works out the price for you. The customer-facing price updates automatically from the ingredient selling price plus labour, so the price field stays read-only while it does the sums.

**Work backwards from a price:** if you already know what you want to charge, click **Lock retail price** and type the price in yourself. Digital Florists then shows you a **Target net** for your ingredients, an approximate stem count to aim for, and a marker telling you how far your current stems are over or under that target. Add or remove stems until you land where you want to be. Click **Unlock price** to hand the maths back to Digital Florists.

<Tip>
  Locking the price is handy when you want to offer a product at a set price point, say a £45 hand-tied bouquet for your range. Lock that price, then build the recipe up to the target so you protect your margin without going over.
</Tip>

## Product categories

Categories let you organise your products into groups like Bouquets, Plants, or Add-ons. They appear as tabs on the **order screen** and the **Point of Sale**, making it easy to browse your range.

A product can belong to up to **5 categories**, and one must be marked as the **primary category**. The primary category is the main one used for filtering and display. When importing via CSV, the first category listed becomes the primary.

A few things to know about categories:

* **Independent per channel** — each category has separate visibility toggles for the **order screen** and the **POS**. Your POS categories can be completely different from your order screen categories. Some shops sell different things at the till than they do for phone or web orders.
* **Subcategories**: categories can be nested (e.g., Flowers > Roses, Flowers > Seasonal). This helps organise large catalogues without creating dozens of top-level tabs.
* **Master search**: the search bar searches across every category, so you can find a product by typing part of the name even when the catalogue is large.
* **Start simple**: you can put everything into one category to begin with and reorganise later. There's no need to set up a complex category structure before you're ready.
* **Change later by upload**: if you want to reorganise your categories down the line, you can do it in bulk via [CSV import](/storefront/imports) rather than editing each product individually.

<Tip>
  Put your **peak products** (Mother's Day, Valentine's Day, Christmas) into their own category. This makes it much easier to check stock levels for just those products during busy periods — see [Inventory](/storefront/inventory) for details on stock control.
</Tip>

### Setting up POS-only categories

For the till, you'll often want categories that don't appear on your order screen, like "Cut Flowers", "Plants", or "Flower Sales" for walk-in customers buying something generic. To set this up:

<Steps>
  <Step title="Add a category">
    Go to **Settings** > **Storefront** > **Products**, click **Options** in the top right, and choose **Add Category**.
  </Step>

  <Step title="Make it POS-only">
    **Uncheck** the order management visibility, leaving only POS visibility on.
  </Step>

  <Step title="Add generic products with price override">
    Add generic products to the category with **price override** enabled, so your team can type in any price at the till (useful for hand-tieds, loose stems, or plants that vary in price).
  </Step>
</Steps>

<Warning>
  After changing your POS categories, you need to **reset the product cache** on the till. Go to the POS, tap the **cog icon**, and select **Reset Product Cache**. Your changes won't appear until you do this.
</Warning>

## Product settings

Each product has additional settings you can configure:

| Setting                | What it does                                                                                                                                                                 |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Occasions**          | Tag products with Birthday, Romance, Sympathy, New Baby, and so on. These help organise where the product shows in your categories.                                          |
| **Publication status** | Set a product to **Draft**, **Active**, or **Archived** to control when it appears. You can also set a **Published at** date to record when it went live.                    |
| **Price override**     | Allow the price to be changed at the point of sale. Useful for generic products like "Hand Tied" or "Plants" where the price depends on what's being sold.                   |
| **Age verification**   | Turn this on for products like champagne or wine. On delivery orders, your driver is prompted to check ID before marking the run complete.                                   |
| **Virtual products**   | Use this for gift cards or workshops that don't need physical delivery.                                                                                                      |
| **Tax rate**           | Each variant has its own tax rate. If your products have different VAT rates (e.g., standard rate for flowers, reduced rate for food), set the correct rate on each variant. |

### Virtual products (gift cards)

Set **Product type** to **Gift card** when a product should issue gift card credit instead of representing a standard product. Once a sale is paid, Digital Florists issues one card per unit for the price paid.

You can set this on the product form or update several products through the optional **Product Kind** import column. See [Gift Cards](/settings/gift-cards) for setup, redemption, printing, and lifecycle details.

### Product code

A code that links a product in Digital Florists to the same product on your website. When an order comes in from your website, this code identifies which product was sold so it appears correctly on your dashboard. When **Stock control** is enabled on the variant, web orders matched by the product code also decrement that variant's stock.

You can set codes individually (edit the product, then enter the code in the **Product code** field) or in bulk via [CSV import](/storefront/imports).

## Barcodes

Every product has a **barcode** that you can print for use with a barcode scanner at your POS. This speeds up checkout: staff scan instead of searching. At the till, you can scan a barcode instead of searching, and the matching size is added straight to the basket. See [Point of Sale](/daily-operations/pos#browsing-products) for how scanning works on the shop floor.

* **Individual**: edit a product and click **Download barcodes** to get a barcode for each variant
* **Bulk labels**: select multiple products from the product list, click **Actions** > **Print Barcode Labels** to print them on your label printer
* **Bulk sheet**: select products and click **Actions** > **Print Barcode Sheet** to get an A4 page of barcodes (useful if you don't have a label printer)
* **By category**: go to **View Categories**, open a category, and click **Print Barcodes** to get an A4 sheet of every product in that category

<Tip>
  For peaks, print A4 barcode sheets for your peak category and keep them by the till. Also print individual barcode labels to stick on price tags. This way staff can scan items without guessing product names or sizes.
</Tip>

## Importing products

If you have a lot of products to add, for example a full cut flower list or a seasonal range, you can import them in bulk using a CSV file instead of creating them one by one. The import wizard walks you through every step and shows you a full preview before anything is saved.

Go to **Settings** > **Storefront** > **Products**, click **Options** in the top right, and choose **Import Products** to get started.

<Card title="Importing Data" icon="file-import" href="/storefront/imports">
  Full guide to importing products via CSV, including column reference, updating existing products, and migrating from other platforms.
</Card>

## Stock control

If you want Digital Florists to track how many of a product you have in stock, enable **Stock control** on the variant. Your dashboard will:

* Show a stock level on each variant
* Decrement the count when an order line for that variant is added
* Flag the variant as **Out of Stock** when the count hits zero

For more on managing stock levels, see [Inventory](/storefront/inventory).

## Common questions

<AccordionGroup>
  <Accordion title="What's the difference between a product and an ingredient?">
    A **product** is what you sell to customers (e.g., "Red Rose Hand-Tied"). An **ingredient** is what you buy from suppliers (e.g., "Red Naomi Rose stem"). Products are made from ingredients using recipes.
  </Accordion>

  <Accordion title="Can I have a product without variants?">
    Every product needs at least one variant. If you only sell one size, just create a single variant (e.g., "Standard").
  </Accordion>

  <Accordion title="How do I hide a product?">
    Toggle the product's visibility off, or set its publication status to **Archived**. The product then stops showing on your order screen and Point of Sale, but stays available to add manually. If you sell through a connected website (such as Shopify or WooCommerce), manage that product's availability on the website itself — hiding or archiving it in Digital Florists won't change anything on the website.
  </Accordion>
</AccordionGroup>

## What's next?

<Columns cols={2}>
  <Card title="Importing Data" href="/storefront/imports">
    Import products in bulk from a spreadsheet or another platform.
  </Card>

  <Card title="Inventory" href="/storefront/inventory">
    Track stock levels and manage your ingredients.
  </Card>

  <Card title="Recipes" href="/events/recipes">
    Build recipes to accurately cost your arrangements. Variants link out to the [ingredient library](/events/ingredients) for ingredient setup.
  </Card>

  <Card title="Promotions" href="/storefront/promotions">
    Create discount codes and run campaigns.
  </Card>
</Columns>
