---
title: "Understanding Products & Pricing"
description: "A concept overview of Orbit Products: a purchasable logistics service whose price is calculated per transport, why a product can show no price or be marked unavailable, and the sales/purchasing split."
url: "https://support.orbit.do/en/advanced-features/understanding-products-pricing"
locale: "en"
apps: ["mission", "hub"]
lastReviewed: "2026-11-05"
---

# Understanding Products & Pricing

A concept overview of Orbit Products: a purchasable logistics service whose price is calculated per transport, why a product can show no price or be marked unavailable, and the sales/purchasing split.

> **Note:** A `Product` is a purchasable logistics service you offer to shippers. Its
> price isn't a fixed number in a catalogue — Orbit works it out for each
> transport when the service is chosen.

**Who this is for:** operators who want to understand what a `Product` represents and how a price appears — or doesn't — when booking. It is a concept overview, not a build guide; if you configure products, the build guides are linked at the end.

## What a product is

A `Product` is a sellable logistics service — a same-day courier, an overnight pallet service, a temperature-controlled run. Rather than storing one fixed price, a product describes *how* to price a service and *whether* it can be offered at all. When someone chooses the product for a specific transport, Orbit runs that description against the details of the job — the route, the load, the timing — and produces the price and terms for that particular move.

This is why the same product can return one figure for a Paris to Berlin run and another for a London to Manchester one, and why a price only exists once there is a real transport to price it against.

## How a product is assembled

A product is built from a set of modular building blocks, sometimes called bricks. You don't need to work with them to book, but knowing the four kinds explains what a product decides for each transport:

* **Context** — gathers the shared facts the other blocks need, such as the route or the vehicle type.
* **Feasibility** — decides whether the service can be offered for this job at all.
* **Pricing** — produces the priced lines that add up to the quote.
* **Scheduling** — offers the bookable time slots or windows for the service.

Because the price is assembled this way, it reflects the actual job in front of you rather than a generic list price.

## Sales, purchasing, or both

A product prices one or both sides of a deal:

* **Sales** — what the customer pays. This lands on the `Order`.
* **Purchasing** — what it costs you to have a carrier carry it out. This lands on the `Tour`.
* **Sales and purchasing** — both sides, from a single product.

The two are different numbers for different audiences: a customer sees the sales price on their `Order`; a carrier only ever sees the purchasing-side rate on the `Tour`.

## When no price is shown — this is normal

A product doesn't always come back with a bookable price, and that is valid, expected data rather than a fault to fix. Evaluating a product against a transport has three possible outcomes:

* **A price** — the service is available and can be booked at the price shown.
* **Price on request** — the service is available, but a price can't be worked out automatically for this job. Instead of a figure, the customer is offered the chance to request a quote, which reaches an operator to price by hand.
* **Unavailable** — the service can't be offered for this particular transport, usually with a short message explaining why, such as a load that is too heavy for the service.

So a product card that shows no price, or is marked unavailable, is telling you something true about that specific job — it is not a broken price. Operators enable the request path with the **Allow Requests** option on a product, and the wording of the request prompt shown to the customer is configurable.

## Where you see products

Products appear as selectable cards while you build a transport in the **TransportComposer** in Orbit MissionControl, and to shippers booking in Orbit Hub. Each card shows a price, a request prompt, or an unavailable note, depending on the outcome above.

When you book in Orbit MissionControl, each side shows its products as a row of tiles you can scroll sideways. A tile shows the price, with its line items when you hover over it, and a mark only when something deviates; hover over the mark to see why. Choosing a tile opens that product's card below the row. Manual prices are cards below the row too: click one to use it. **Set price manually** adds a new one, and **Add Product** adds another product to the row.

When you create an offer, a sales product without a chosen payment method is on invoice, if your company takes bookings on invoice. The customer then accepts with one click and chooses no payment method. The menu on the card lists only the payment methods that are active. If one-click booking is not available, hovering over the note on the card shows what it still needs. A product with a Scheduling Preset uses the preset's times when the customer accepts, not the times in the transport data, and its card says so.

An offer with invoice is booked on invoice even if invoice is not active for the way the customer books, as long as invoice is active for logged-in customers or for customers without a login. If it is active for neither, nothing is booked: the customer is asked to contact you, and the reason appears in the transport's history. A customer who has to complete data before booking chooses from the active payment methods. If there are none and the offer has a price, the booking page says so and the customer cannot book.

In Orbit MissionControl, changing transport details refreshes the product offers, so the selected product is evaluated against the updated schedule. A selected product available on request can still be submitted as a request. On its card, a product available on request shows **Set price**, so you can enter the price yourself and then include the product in an offer. If you edited a price by hand and the product later calculates a different one, the card says so and offers **Use Calculated Price**. If a selected, automatically priced product becomes unavailable, Mission disables the booking action until the offer changes or you choose another date or product.

## Price source and manual changes

In Orbit MissionControl, dimmed text next to the amount on a `Tour` shows where the price comes from. On an `Order`, the source follows the **Price** heading when line items are present. Hover over or focus the information icon to read what the source means. Select the pencil icon to edit the price.

* **from product**: the selected `Product`'s current pricing produced the price.
* **from callout**: a carrier offered the price in a callout.
* **from carrier**: the carrier provided the price through its integration.
* **set manually**: someone entered or changed the price by hand.

Editing line items by hand marks the price as manual. A later calculation does not replace those lines. Choosing a scheduling option or changing a `Product`'s name or description does not by itself make its price manual. A fresh `Product` calculation can update a product-sourced price and identifies it as **from product**.

When a Carrier is assigned or changed, Orbit recalculates a product-sourced purchasing price with the matching purchasing Products for that Carrier and the Tour. If several Products can price the Tour, the lowest price is chosen. You can select another eligible purchasing Product when you want a different one. A price set by hand, from a callout, or by the Carrier is kept as it is.

### Recalculate a price

Use **Recalculate** on an `Order` or `Tour` when you want its linked `Product` to price the current transport again. Orbit replaces the existing line items and sets the price source to **from product**, even when the current price was set manually, came from a callout, or was provided by the Carrier.

By default, Orbit uses the `Product` version valid at the `Order` or `Tour`'s stored pricing date. If a newer version is currently valid, the preview lets you choose it. Selecting that option recalculates with the newer version and updates the stored pricing date. Otherwise, recalculation keeps the existing date.

A `Tour` that takes over the price changes of an Orbit partner organisation is the exception: while its price comes from the partner, neither **Recalculate** nor selecting another purchasing `Product` is possible, in Orbit MissionControl, through the Orbit API or through an AI assistant. To price that `Tour` with a `Product` again, first take its price back with **Set Price Yourself**, see [Setting the price yourself](https://support.orbit.do/en/advanced-features/orbit-partner-carriers#setting-the-price-yourself).

An `Order` cannot be recalculated while its `Tour` also carries `Shipments` that do not belong to it, because the `Product` would price their stops and `Loads` too. A `Tour` cannot be recalculated while it carries `Shipments` of several `Orders`. In both cases Orbit gives the reason and changes nothing, in Orbit MissionControl, through the Orbit API and through an AI assistant.

## Learn more

This article is a concept overview. For building and running products, see:

* [Products](https://support.orbit.do/en/advanced-features/products) — the full guide to composing a product.
* [Calculator Widget](https://support.orbit.do/en/advanced-features/calculator-widget) — an embeddable price calculator.
* [Product Messages](https://support.orbit.do/en/advanced-features/product-messages) — the notes and alerts a product can show while pricing.
* [Product Testing](https://support.orbit.do/en/advanced-features/product-testing) — checking a product's output before it goes live.
* [Product Metrics](https://support.orbit.do/en/advanced-features/product-metrics) — the figures behind a price, such as distance and travel time.

## FAQ

**Q: Why does a product show no price?**

Because the price for that specific job can't be worked out automatically,
or the service isn't available for it. If requests are enabled, the customer
can ask for a quote instead; otherwise the card shows the service as
unavailable, usually with a reason. Both are valid outcomes, not errors.

**Q: Why is the same product a different price on two bookings?**

A product prices each transport on its own details — route, load, and timing
— so the figure changes from job to job. There is no single stored price to
look up.

**Q: Does every company have products?**

No. Products are Orbit's pricing layer, and a company that prices its
services elsewhere may have none. In that case a price is set by hand rather
than calculated.

**Q: Why doesn't the carrier see the price the customer paid?**

The customer's price (sales) and the carrier's rate (purchasing) are
separate figures. A carrier only sees the purchasing-side rate on the
`Tour`, never the sales price on the `Order`.
