# Glossary

> The terms this documentation uses, in alphabetical order.

## Cart

The list of what a visitor intends to buy. A [`Cart`](https://merx2.wagnerwagner.de/reference/classes/cart.md) is a collection of list items, kept in the visitor’s session and identified by the session cookie. Each visitor has exactly one, reachable as [`$site->cart()`](https://merx2.wagnerwagner.de/reference/options/site-methods/cart.md).

## Checkout page

The page where the customer’s email and address are collected. It uses the [checkout blueprint](https://merx2.wagnerwagner.de/reference/blueprints/pages/checkout.md) and is reachable as [`$site->checkoutPage()`](https://merx2.wagnerwagner.de/reference/options/site-methods/checkout-page.md). See [Create checkout](https://merx2.wagnerwagner.de/guide/getting-started/create-checkout.md).

## Coupon

A code a customer enters to get a discount. Merx has no coupon feature — you check the code yourself and add a discount item to the cart when it is valid.

## Currency

A three-letter ISO code such as `EUR`, carried by every [`Price`](https://merx2.wagnerwagner.de/reference/classes/price.md). It comes from the pricing rule that applies to the request, not from the language. See [Currencies](https://merx2.wagnerwagner.de/guide/configuration/currencies.md).

## Customer

Somebody who is ordering or has ordered. This documentation switches to the word at the checkout: before that a *visitor* has a cart, from the checkout on a customer has an order.

## Discount

A list item with a negative price and the type `discount`. It is part of the cart total like any other item, which is why discounts need no special handling. See [Shipping costs and discounts](https://merx2.wagnerwagner.de/cookbook/shipping-costs-and-discounts.md).

## Gateway

See *payment gateway*.

## Invoice number

Merx numbers an order once, and that number is the *order number*. There is no separate invoice numbering and no invoice document, so an invoice you generate yourself carries the order number. See [Order number](https://merx2.wagnerwagner.de/guide/configuration/order-number.md).

## List item

One line in a cart. A [`ListItem`](https://merx2.wagnerwagner.de/reference/classes/list-item.md) has a `key`, a `quantity`, a price and a `type` — one of `credit`, `custom`, `discount`, `product`, `promotion` or `shipping`. Most point at a product page, but an item can also carry its own title and price.

## Order number

The sequential number Merx gives each order, used as the title of the order page. It is generated by the [`orderNumber`](https://merx2.wagnerwagner.de/reference/options/config-options/order-number.md) option, which you can replace with a numbering of your own. See [Order number](https://merx2.wagnerwagner.de/guide/configuration/order-number.md).

## Order page

A Kirby page holding one order: the customer’s data and a copy of their cart at the moment they ordered. Merx creates it under [`$site->ordersPage()`](https://merx2.wagnerwagner.de/reference/options/site-methods/orders-page.md) with the `order` template and the [`OrderPage`](https://merx2.wagnerwagner.de/reference/classes/order-page.md) model. Because it holds personal data, see [Security](https://merx2.wagnerwagner.de/guide/security.md).

## Payment gateway

The connection between Merx and a payment provider: one function that starts a payment and one that completes it. Merx ships `invoice`, `paypal` and `stripe-elements`, and the checkout form picks one per order with its `paymentGateway` field. See [Payment gateways](https://merx2.wagnerwagner.de/guide/payment-gateways.md).

## Payment method

What the customer actually pays with — credit card, SEPA direct debit, iDEAL, PayPal balance, invoice. One gateway can offer many: [Stripe Elements](https://merx2.wagnerwagner.de/guide/payment-gateways/stripe-elements.md) shows whichever methods you enabled in your Stripe account.

## Payment provider

*Other terms: payment service, PSP*

An external service that handles the payment. For example PayPal or Stripe.

## Price

A number, positive or negative, together with a tax rate and a currency. Merx never treats a price as a bare float — the [`Price`](https://merx2.wagnerwagner.de/reference/classes/price.md) class keeps the three together, so a total always knows its currency and how much of it is tax.

## Pricing rule

A rule in the [`pricingRules`](https://merx2.wagnerwagner.de/reference/options/config-options/pricing-rules.md) option that decides which currency and which price a request gets. The first matching rule wins. See [Currencies](https://merx2.wagnerwagner.de/guide/configuration/currencies.md).

## Product

Something a customer can buy. Usually a Kirby page with the `product` template and the [`ProductPage`](https://merx2.wagnerwagner.de/reference/classes/product-page.md) model, which is where its price and stock live so an editor can change them in the Panel. See [Adding products](https://merx2.wagnerwagner.de/guide/getting-started/adding-products.md).

## Product list

A collection of list items that is not a cart. [`ProductList`](https://merx2.wagnerwagner.de/reference/classes/product-list.md) is what `Cart` is built on, without the session handling and the checkout, which makes it the starting point for a wishlist.

## Shipping

Shipping costs are a list item with the type `shipping`, not a product page. They are part of the cart total like everything else. See [Shipping costs and discounts](https://merx2.wagnerwagner.de/cookbook/shipping-costs-and-discounts.md).

## Starterkit

A complete example shop with commented blueprints, templates, JavaScript and CSS. The fastest way to see how the parts fit together. See [Installation](https://merx2.wagnerwagner.de/guide/getting-started/installation.md).

## Stock

How many of a product are left, kept in its `stock` field. Merx refuses more in the cart and at the checkout, and lowers it with every order once the shop is in production. See [Stock](https://merx2.wagnerwagner.de/guide/getting-started/stock.md).

## Tax rule

An entry in the [`taxRules`](https://merx2.wagnerwagner.de/reference/options/config-options/tax-rules.md) option that sets a tax rate, for example `0.19`. Each product names the tax rule that applies to it, or gets the `default` rule. See [Taxes](https://merx2.wagnerwagner.de/guide/configuration/taxes.md).

## User

A Kirby account, and only that — somebody who logs into the Panel. Shoppers are never users: they are *visitors* and *customers*. The distinction matters because `$kirby->user()` is a Panel account and is `null` for everybody in your shop.

## Virtual order page

An order page that does not exist on disk yet. Merx builds it when the checkout is submitted and keeps it in the session while the customer is at the payment provider; only a completed payment turns it into a real page. It is what a [custom payment gateway](https://merx2.wagnerwagner.de/guide/payment-gateways/custom-payment-gateway.md) receives.

## Visitor

Somebody browsing the shop, with or without a cart. They have no account and are identified only by their session cookie. They become a *customer* when they order.

## Wishlist

A list of products a customer wants to keep for later. It is a product list that you store yourself instead of in the cart session. See [Wishlist](https://merx2.wagnerwagner.de/cookbook/wishlist.md).
