Prices, discounts and inventory
What a product costs and whether it can be bought are set on two tabs of the product editor: Prices and Inventory. This article walks through both, including quantity-based tier prices, product discounts, stock tracking, the automatic low stock actions and the Low stock report.
The Prices tab
Open a product under Catalog → Products and click Prices. Amounts are entered in the store's primary currency, shown beside each field.

| Field | What it does |
|---|---|
| Price | The selling price. Taxes are added or included according to your tax settings. |
| Old price | A previous price, shown struck through next to the current one to signal a reduction. Leave 0 to hide it. |
| Catalog price | A reference price (for example a list or RRP price) that may be shown beside the standard price. |
| Product cost | What the product costs you. Never shown to customers; used for your own margin reporting. |
| Currency code / Price grid | Click Add new record to set a fixed price in another currency. When a customer shops in that currency, this price is used instead of converting the main price. |
| Disable buy button, Disable wishlist button | Hide the add-to-cart or add-to-wishlist button, for example for products shown only for information. |
| Call for quote | Replaces the price with a request to contact you. |
| Available for pre-order | Lets customers order before the product is in stock; an optional start date controls when the pre-order button turns into a normal one. |
| Customer specify a price | The customer types the amount (donations, pay-what-you-want), within a minimum and maximum you set. |
| Use the PAngV (base price) | Shows a unit price such as "2 euro per 1 kg", required for some goods in Germany and other EU countries. |
| Tax exempt, Tax category | Exclude the product from tax, or pick the tax category whose rates apply. Tax categories are managed under Configuration → Tax → Tax categories. |
| TBE services | Marks telecommunications, broadcasting and electronic services for EU VAT rules. |
Tier prices
Tier prices lower the unit price when a customer buys more. Lower on the Prices tab, click Add new tier price and enter:
- Quantity - the minimum quantity in the cart from which this price applies;
- Price - the unit price at that quantity;
- optionally a currency, a store, a customer group and a start and end date.
At checkout GrandNode keeps only the tier prices that match the current date, store, currency and the customer's groups (empty fields match everyone), and applies the one with the highest quantity the cart reaches. If two tiers have the same quantity, the lower price wins. This makes wholesale prices simple: create a customer group Wholesale and add tier prices limited to it, starting at quantity 1.

Discounts on a product
The Available discount card at the bottom of the Prices tab lists every discount whose type is Assigned to products. Tick a discount to apply it to this product and save. Discounts themselves - amount or percentage, dates, coupon codes and rules - are created under Marketing → Discounts; see Sales and orders and the marketing articles for how they are calculated. A discount can also be assigned to whole categories, brands or collections, which is quicker than ticking it on every product.
The Inventory tab
The Manage inventory method decides how stock is counted:
| Method | When to use it |
|---|---|
| Don't track inventory | Services, digital goods, made-to-order items. The product can always be bought. |
| Track inventory | One stock number for the product. Orders reserve and reduce it. |
| Track inventory by product attributes | Stock per combination of attributes, such as size M in navy. Quantities are kept on the attribute combinations - see Product attributes and combinations. |
| Track inventory by bundle products | For bundles: availability follows the stock of the bundled items. |

| Field | What it does |
|---|---|
| Warehouse, Use multiple warehouses | Where the stock is kept. With multiple warehouses you enter the quantity per warehouse and the product's total is their sum. |
| Stock quantity, Reserved quantity | Units on hand and units already reserved by placed orders that have not shipped yet. |
| Display stock availability | Shows "in stock" or "out of stock" on the product page; optionally also the exact quantity. |
| Minimum stock quantity, Low stock activity | When an order brings the stock to or below the minimum, GrandNode performs the chosen activity: Nothing, Disable buy button or Unpublish. |
| Notify store owner for quantity below | Sends the store owner an email when an order brings the stock below this number. |
| Backorders | No backorders stops sales at zero; Allow qty below 0 keeps selling. |
| Allow out of stock subscriptions | Customers can ask to be emailed when the product is back in stock. |
| Minimum / Maximum purchase quantity, Allowed quantities | Limits per cart line. Allowed quantities is a comma-separated list (for example 1, 6, 12) that turns the quantity box into a drop-down. |
| Product is not returnable, Shippable product | Excludes the product from merchandise returns; marks it as needing shipping, with weight, dimensions, free shipping and delivery date fields. |
Low stock handling
Low stock activities run when stock is reduced by an order. If you choose Unpublish, the product disappears from the storefront the moment the minimum is reached. When stock goes back up because an order is cancelled, the product is published again (or its buy button re-enabled) only if the catalog setting that publishes products back on cancellation is switched on. Stock you raise by hand in the admin does not re-publish the product: switch Published on yourself.
To see what needs restocking, open Reports → Low stock. It lists simple and bundled products flagged as low stock, and every attribute combination with zero or less in stock, with a link to each product.

Tips and common mistakes
- A product with Track inventory, stock 0 and No backorders cannot be added to the cart - the most common reason for "out of stock" on a new product.
- Minimum stock quantity 0 with Unpublish hides the product when the last unit sells. Use a small positive number if you want a buffer.
- In the tier price grid the price is followed by its currency in brackets; for a tier price without a currency the brackets are currently shown empty.
Related
- Product attributes and combinations
- Import, export and bulk edit - change prices and stock of many products at once
- Sales and orders
Question not answered here? Ask the community on GitHub Discussions ↗