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

# Create or Edit Product

You can add new products or update existing ones from your **Inventory** page. The product form is the same whether you're creating from scratch or editing — any saved changes are applied immediately to the product's record.

## Getting to the Product Form

**To create a new product:** Go to **Inventory** in your dashboard sidebar and click **Add Product** (or the equivalent button in your interface). The form opens with all fields blank and the status set to *Draft*.

**To edit an existing product:** On the **Inventory** page, find the product you want to update and click the **Edit** button in its row. The form opens pre-filled with the product's current information.

## Accepting the Terms & Conditions

<Warning>
  When creating a **new** product for the first time, you must read and accept the Local Pass Terms & Conditions before saving or publishing. Check the box at the top of the form to confirm your acceptance. This step is not required when editing an existing product.
</Warning>

## Filling in the Product Form

The form is divided into sections. Work through each one from top to bottom.

***

### 1. Product Name

Enter the full name of your product exactly as you want customers to see it. Use clear, descriptive naming — avoid internal codes or abbreviations.

**Good:** `Organic Gala Apples — 3 lb Bag` **Avoid:** `APPL-ORG-3LB`

***

### 2. Description

Write a short description that helps customers understand what they're buying. Focus on what makes this product worth choosing — key ingredients, flavour, origin, or how to use it.

If you leave the description field blank when editing, the existing description is kept.

***

### 3. Pricing

You'll see two price fields:

| Field               | What to Enter                                                                   |
| ------------------- | ------------------------------------------------------------------------------- |
| **Regular Price**   | Your standard selling price (required)                                          |
| **Promotion Price** | A temporary sale price (optional). Leave blank if there is no active promotion. |

Prices are entered in CAD. Use decimal format: `4.99`, not `4,99`.

When a promotion price is set and is lower than the regular price, customers will see both prices — the regular price shown with a strikethrough and the sale price highlighted.

***

### 4. Unit & Measurement

These two fields work together to tell customers exactly what they're getting for the price.

* **Unit Quantity** — the amount included (e.g., `1`, `500`, `2`)
* **Unit Measurement** — what that amount is measured in (e.g., `kg`, `pcs`, `L`, `bag`)

**Example:** If you're selling a 500g bag of flour, enter `500` as the quantity and `g` as the measurement. Customers will see the price displayed as `$X.XX / 500g`.

#### Sold by Weight

If the final amount can only be known once you've physically weighed the item — a cut of meat, a bag of loose produce — toggle **Sold by Weight** on and pick a weight-based unit.

<Note>
  Weighed items charge an **estimate** at checkout, and the customer's card is authorized for **10% above that estimate** to cover a heavier-than-expected item. You set the actual final price when you weigh the item during fulfillment. Let customers know this if they ask why the hold on their card looked slightly higher than the price they saw.
</Note>

***

### 5. Preparation Time

Enter the number of minutes needed to prepare or process this product before it's ready for pickup or delivery. If your product is ready immediately, enter `1`.

This is used to manage customer expectations and coordinate order fulfilment. Enter whole numbers only.

***

### 6. Stock Level

Enter the current quantity you have available. When stock reaches 5 units or fewer, it is flagged in your inventory dashboard in red so you know to restock.

<Note>
  Stock is not automatically decremented when orders are placed on all plan types. Check your plan settings to confirm how stock tracking works for your account.
</Note>

***

### 7. Shipping

Toggle **Requires Shipping** on or off depending on whether this product needs to be physically shipped to a customer.

If shipping is required, enter the **product weight** and select the appropriate **weight unit** from the dropdown (e.g., `kg`, `lb`, `g`). This information is used to calculate shipping rates.

***

### 8. Locations

This section controls which of your store locations carry this product.

* Toggle **Sell at all store locations** to ON to make the product available everywhere your store operates. This is the default for new products.
* Toggle it OFF to manually select specific locations from the dropdown.

***

### 9. Category & Subcategory

Select the **Category** and **Subcategory** that best describe your product. Both are required before publishing.

* Categories and subcategories come from a shared platform list — you are selecting from existing options, not creating new ones.
* Use the search field inside the dropdown to find your category quickly.
* If your category isn't listed, click **"Don't see your product category? Request one"** at the bottom of this section.

<Tip>
  There's no separate page for managing your category list — categories are simply picked per-product here, and the platform's list updates as you (and other merchants) tag products.
</Tip>

***

### 10. Product Options (Variants & Add-Ons)

Use this section to configure options customers can choose from when ordering — things like sizes, weights, or add-ons.

There are two types of options:

| Type                | How It Works                     | Example                               |
| ------------------- | -------------------------------- | ------------------------------------- |
| **Variant**         | Replaces the base price entirely | S (\$15), M (\$18), L (\$20)          |
| **Option / Add-On** | Adds to the base price           | Extra cheese (+\$2), Hot sauce (+\$1) |

Click the **ⓘ info button** next to "Product Options" to see a full explanation of variants vs. options inside the app.

***

### 11. Sales Model

Choose how this product is sold:

* **Wholesale** — available to bulk/trade buyers
* **Retail** — available to individual customers
* **Both** — available to all buyer types

At least one option must be selected before publishing.

***

### 12. Product Flags

| Flag                   | What It Does                                                                                                                                                                                                                   |
| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Featured Item**      | Adds a visible badge to this product. Use sparingly for standout items.                                                                                                                                                        |
| **Cross-Selling Item** | Suggests this product to customers checking out with related items.                                                                                                                                                            |
| **Catering Menu**      | Makes this product available on your [catering page](/merchants/catering), for customers placing catering orders.                                                                                                              |
| **Order Sheet**        | Adds this product to your [wholesale Order Sheet](/merchants/order-sheet) automatically, grouped under its category. Use the Order Sheet Creator's Content tab if you want to hide it or reorder it without removing the flag. |

<Tip>
  **Catering Menu can be toggled from two places, and they stay in sync.** You can flip it here, or from the Menu tab on your Catering page itself — either way updates the same switch, so use whichever is faster in the moment.
</Tip>

***

### 13. Custom Order (Optional)

Toggle **Custom Order** ON if this product can be ordered in custom quantities or amounts (e.g., cut-to-order cheese, bulk grains by weight). When enabled, additional fields appear:

* **Processing Amount** — the maximum custom quantity you can fulfil
* **Unit Price** — price per unit for custom orders
* **Unit Quantity & Measurement** — the base unit for custom ordering
* **Percentage Discount** — optional discount applied when a customer orders above a certain quantity
* **Amount for Discount** — the quantity threshold that triggers the discount

***

### 14. Product SKU

Enter your internal stock-keeping unit code if you use one. This is for your reference only and is not visible to customers — it's a plain text field, so it doesn't scan as a barcode. Example: `AP-1010`.

***

### 15. Product Photo

Add a photo to make your product stand out. Two options are available:

* **Gallery** — choose from photos already uploaded to your media library
* **Upload Photo** — upload a new image from your device (JPEG or JPG only)

If no photo is uploaded, a placeholder image is used automatically. You can always add or change the photo later.

***

### 16. Search Keywords

Add words or short phrases that customers might search for when looking for this product. Keywords help your product appear in search results even when the exact product name isn't used.

To add a keyword:

1. Type it in the field
2. Click the checkmark icon that appears
3. The keyword is added as a tag

To remove a keyword, click **X** next to it. You can add as many as you need.

**Examples:** `organic`, `gluten-free`, `gala apples`, `local honey`, `sourdough`

<Note>
  Keywords only work while your product's status is **Published**. If you set a product to **Unlisted**, it's hidden from search and browsing, and the keywords field is disabled.
</Note>

***

### 17. Dietary Labels

Select any applicable dietary labels from the dropdown. These labels appear on your product listing and help customers with specific dietary needs find suitable products quickly.

Available labels include: Certified Organic, Ethically Raised, Non-GMO, No Artificial Preservatives, Gluten-Free, Vegan, Vegetarian, Local, Dairy-Free, Nut-Free, Halal, Kosher, Free-Range, Grass-Fed, Wild-Caught, and Paleo-Friendly.

***

### 18. Allergen Information

Toggle **Contains Allergens** to ON if this product contains any common allergens. An input field appears — type each allergen and click the checkmark to add it as a tag.

**Examples:** `nuts`, `dairy`, `gluten`, `soy`, `shellfish`

This information is displayed on the product listing — and on your catering page, if this item is marked for catering — to help customers make safe purchasing decisions.

***

### 19. Pickup Locations

If your store has designated pickup points, you can associate specific ones with this product. Use the pickup locations section to select which locations are valid for collecting this item.

***

## Saving Your Product

At the top of the form, you have three actions:

| Button      | What It Does                                                                      |
| ----------- | --------------------------------------------------------------------------------- |
| **Cancel**  | Discards any unsaved changes and returns you to Inventory                         |
| **Save**    | Saves the product as a **Draft** — not visible to customers                       |
| **Publish** | Saves the product and sets it to **Published** — immediately visible to customers |

<Warning>
  Clicking **Publish** triggers a check to confirm you have accepted the Terms & Conditions (for new products) and that your Stripe payment account is connected. If either condition isn't met, the product will not be published and you'll see an error message.
</Warning>

After saving or publishing, you are returned to your Inventory page. From there, you can also set a product to **Archived** (removed from active lists but kept in your history) or **Unlisted** (hidden from your storefront and search, but still available on your Order Sheet) — see your Inventory page for bulk status changes.
