Items
Build your product list, set barcodes and prices, build combos, import from a spreadsheet, and print labels.
The item catalog is the single list of everything you sell. Products you add here show up on POS checkout, menu boards, invoices (via Add from inventory), and reports. The catalog is shared across your business; each location keeps its own quantities and optional price overrides (see Local Stock Counts).
Moving from another system? Use Import to load CSV or Excel instead of typing every product.
The catalog lives under Catalog → Items in the sidebar. Viewing requires
items:view; creating and editing require items:create / items:update.
Managing Catalog Categories
Catalog Categories group inventory into operational sections ("Beverages," "Appetizers," "Main Course," "Retail") that simplify the checkout navigation grid for front-line cashiers and organize the way items appear on menu boards.
Create a category
Add a category with a clear customer- or staff-facing name. Categories are reused across locations and menu boards.
Assign items
Set an item's category when creating or editing it. Categories drive the grouping cashiers see and the section headers on public menu boards.
Order for the floor
Arrange categories so your highest-velocity sections are reachable with the fewest taps during a rush.
Core Inventory Attributes
Every catalog item carries a set of identifiers and pricing attributes:
- Name: The customer-facing label shown at checkout and on menu boards.
- SKU (Stock Keeping Unit): Your internal item code for search and reporting. Keep SKUs consistent; they are your reliable lookup key.
- Barcode: Optional value a scanner types when you scan a label (see Barcodes & labels). Separate from SKU.
- Category: The section the item belongs to.
- Base Price: The default selling price. Individual locations can override this without changing the base (see below).
- Unit of Measure: How the item is tracked or depleted (e.g. litres, kilograms, units).
Barcodes & labels
Barcodes let staff scan packaged goods or printed stickers instead of searching by name. You do not need to buy official UPC numbers for house-made products.
What to type in the Barcode field
| Situation | What to enter |
|---|---|
| Retail / packaged product | The digits printed under the barcode on the package (often 12–13 digits). Or click the field and scan the package with a USB/Bluetooth scanner. |
| House / made-in-house item | Any short code you invent (letters and numbers are fine), e.g. HOUSE-LATTE. Must be unique in your organization. |
| Skip barcodes for now | Leave blank. You can still print a label from the SKU. |
Print from the dashboard (browser)
- Save the item with a barcode (or rely on SKU).
- On the Items page, open the item’s ⋮ menu → Print label.
- Choose Browser, preview the sheet, then print.
- Use label paper or plain paper. No special barcode printer is required.
Print via POS label printer
- On the POS terminal: Settings → Labels, pair an ESC/POS or ZPL label printer and keep the terminal online.
- In the dashboard Print label dialog, choose Terminal, pick the location and POS, then Send to terminal.
- The POS prints sticky labels on the paired device and reports success or failure back to the dashboard.
If no terminals appear, the POS is offline or has no label printer paired (capability expires after about two minutes without a heartbeat).
You can also print from the floor: open an item on the POS and use Print label (local printer only, no cloud job required).
Printed labels use Code128. At the POS, focus the search box and scan: an exact barcode match adds the line to the order.
Dialects and sizes
| Dialect | Typical devices | Notes |
|---|---|---|
| ESC/POS | Thermal printers on label stock | Same transport family as receipt printers |
| ZPL | Zebra-class / ZPL-compatible printers | Common on network port 9100 |
| Browser | Any office or sheet label printer | Dashboard preview → browser print dialog |
Size presets in v2: 2×1 in, 50×25 mm, 50×30 mm. Brother / Dymo-specific dialects are planned later; until then use browser print or a compatible ESC/POS / ZPL device.
Product bundles
Sell a combo or kit as one menu item, while stock comes off the pieces inside it.
Example: “Lunch special” rings up once at its own price. Behind the scenes, GreenSails removes one burger, one fries, and one drink from the stock room that took the sale.
Set up a bundle
- Create or edit the item guests order (e.g. Lunch special). Set the selling price on that item.
- Turn Track stock off on the combo itself so you are not double-counting a phantom “combo” quantity.
- In the edit dialog, open Bundle components. Add each product the combo uses and how many units per sale.
- Save components. Staff sell the combo on the register like any other item.
When the sale is saved, component stock updates at that location. Cancel or refund puts the components back. Inventory history shows these as Bundle consume.
Clear the component list if the item should stop acting as a bundle.
Components must be ordinary catalog items. A component cannot be another bundle yet. Modifiers on the combo still work as usual; they do not replace the component list.
Import your menu from a spreadsheet
Setting up dozens of products by hand is slow. Use Import on the Items page to load a CSV or Excel file instead.
- Download the template from the import dialog.
- Fill in your products (name, item code, price, and anything else you need).
- Upload the file and run a preview to catch mistakes before anything is saved.
- Confirm when the preview looks right.
How matching works: each row needs an item code (SKU). If that code already exists, GreenSails updates the product. If it is new, GreenSails creates it. You can re-upload the same file after price changes without creating duplicates.
| Column | Required? | What to put |
|---|---|---|
Item code (sku) | Yes | Your unique code for the product |
| Name | Yes | What staff and guests see |
Price (basePrice) | Yes | Selling price in dollars (for example 4.50) |
Unit (unitOfMeasure) | No | How you count it; defaults to each (ea) |
| Track stock | No | Yes/no; turn off for made-to-order items |
| Send to kitchen | No | Yes/no; whether orders go to the kitchen screen |
| Category | No | Category name; optionally create categories that do not exist yet |
| Location + quantity | No | Starting on-hand count at a named location (both columns together) |
Opening a new location? Put the location name and starting quantity on each row so the catalog and the stock sheet are ready in one upload. You can also add whole categories to a location later from the stock sheet.
Send to Kitchen Display
Items and categories carry a Send to kitchen display toggle that controls whether ordered items generate kitchen tickets on the KDS app.
| Scope | Where to set | Effect |
|---|---|---|
| Category | Edit category dialog | When on, every item in the category is eligible for kitchen tickets |
| Item | Edit item dialog | When on, that item is eligible even if its category toggle is off |
Eligibility rule: an item gets a kitchen ticket when either the item toggle or the category toggle is on at the moment of sale.
- Category ON → all items in it get tickets (turning an item OFF does not exclude it).
- Item ON → that item gets tickets even when its category is OFF.
- To keep an item off the kitchen when it sits in a kitchen category, move it to a non-prep category (or leave the category OFF and turn items ON individually).
Flag categories for prep
Edit each catalog category that requires kitchen prep and toggle Send to kitchen display on.
Include one-offs
For items outside kitchen categories that still need prep, edit the item and turn the toggle on.
Keep non-prep items out
Put bottled drinks, retail, and similar items in categories with Send to kitchen display off, and leave those item toggles off as well.
Start with categories for prep sections, then turn individual items on only where a non-prep category still needs kitchen tickets. See KDS Routing for the full routing model.
Pricing: Base Price vs. Local Overrides
GreenSails separates the catalog base price from per-location pricing so a single product can sell at different prices across venues without duplicating records.
| Layer | Where it's set | Use it for |
|---|---|---|
| Base price | Item catalog | The default everywhere |
| Local override | Stock Counts per location | Airport vs. downtown pricing, regional taxes, promos |
| Menu board override | A board's daypart item | Time- or board-specific pricing (e.g. happy-hour) |
Set the base price to your most common selling price, then override only the exceptions. Fewer overrides means less to maintain when prices change.
Tax-inclusive vs exclusive prices
Organization default is set under Tax & compliance. Each item (and location stock override) can inherit that default or force inclusive or exclusive. Inclusive mode keeps POS and invoice shelf prices exact while tax is extracted for GCT reporting. Changing organization inclusivity can offer a one-time price conversion so you do not retype the catalog.
Product images
Add a photo on Edit item. GreenSails uploads the original, polishes it for the catalog, and saves a square display image plus a small thumb for grids, POS tiles, and menu boards.
| Status | What you see |
|---|---|
| Processing | Spinner while polish runs |
| Ready | Image on the items grid, POS tiles, and public menu boards |
| Failed | Retry polish or upload a new photo, editing other fields still works |
Supported formats: PNG, JPEG, WebP up to 8 MB.
Background removal
On Sailor and above, GreenSails can strip the photo background so products sit cleanly on POS tiles and menu boards. Dock (free) still accepts uploads and resizes them; automatic background removal is not included.
When background removal is on, polish removes the backdrop and saves a clean cutout. When it is off, GreenSails still resizes the photo for grids and boards, it just skips the cutout step.
Control the default and overrides in three places (most specific wins):
| Level | Where to set | Effect |
|---|---|---|
| Organization | Settings → Organization | Default for every new upload (Remove image backgrounds by default) |
| Category | Edit category → Remove image backgrounds | Inherit org default, or force On / Off for that section |
| Item | Edit item → Remove image backgrounds | Inherit category (then org), or force On / Off for that product |
Resolution order: item override → category override → organization default → on (for paid plans that include the feature).
Keep the organization default on for most menus. Turn it off for categories or items where the backdrop matters, packaged goods with label art, lifestyle shots, or photos that already have a transparent background.
Changing the setting does not re-process photos you already uploaded. Upload again (or retry polish) if you need a new cutout after flipping the toggle.
Tags
Apply org-wide tags to catalog items from the item editor, for example "Seasonal," "Limited run," or "Kitchen prep." The items list shows tag badges and supports tag filtering alongside category filters.
Modifiers & Variations
Items rarely stand alone. A coffee needs a size, a burger needs toppings. Attach Modifier Groups to an item to capture those choices and their price adjustments at checkout.
Tags
Org-wide labels for catalog items.
Modifier Groups & Choice Libraries
Define reusable option groups and per-choice price adjustments.
KDS Routing
How send-to-KDS flags route items to kitchen tickets.
Local Stock Counts & Price Overrides
How much each location has, venue prices, and stocking a room quickly.