Help CenterDashboardDynamic Vehicle Discounts via Offers
Back to Dashboard

Dynamic Vehicle Discounts via Offers

Last updated April 21, 2026

Dynamic offer-based discounting lets your showroom apply pricing discounts to vehicles automatically based on offer criteria.

Instead of manually editing pricing on each vehicle, you can create an offer, add discount values to that offer, and let Vyro apply the discount to any eligible stocked vehicle connected to it.


Who can manage this

You must be signed in to Dashboard with the showroom:owner role for the showroom.


How it works

An offer-based discount is applied when all of the following are true:

  • the offer is Published
  • the offer is currently within its availability window
  • the vehicle matches the offer Criteria
  • the offer has at least one positive discount value configured

If those conditions are met, the discount is applied automatically in pricing lockups for eligible stocked vehicles.


How to create an offer

  1. Open Dashboard.
  2. Go to your showroom.
  3. Open Offers.
  4. Create a new offer, or open an existing offer to edit it.
  5. Complete the offer details.
  6. Add your discount values in the Discounting section.
  7. Set Criteria to define which vehicles the offer should apply to.
  8. Turn on Published.
  9. Set Available from and Available to if needed.
  10. Save changes.

Offer fields explained

Internal name

Used internally in Dashboard so your team can identify the offer.

This is not the primary customer-facing label.

Label

The public-facing label shown when the offer is displayed.

If the offer is used for discounting, this label may also be used as the discount label in pricing.

Description

The main body content for the offer.

Useful if the offer is also displayed on-site as a promotional offer.

Featured image and logo

Optional marketing assets used when the offer appears visually on the website.

These do not control discount eligibility.

CTA label and CTA link

Optional call-to-action text and link.

Useful if customers can click through to an offer page, finance page, or campaign landing page.

Disclaimer text, button label, and link

Optional legal or explanatory content.

If no disclaimer link is supplied, the disclaimer may be shown as tooltip-style content instead.

Published

Controls whether the offer is visible and active for customers.

If an offer is not published, its discount should not be treated as active for website customers.

Available from / Available to

Controls when the offer is active.

  • If Available from is blank, the offer is available immediately.
  • If Available to is blank, the offer remains available indefinitely.

Type

Available values include:

  • Order
  • Finance

This mainly affects how the offer is presented in the UI. For vehicle discounting, the more important fields are the discount values, publish state, availability, and criteria.

Order

Controls priority and sorting.

Lower numbers are applied first.

This matters because multiple eligible offers can stack, and the order affects the sequence they are applied in.

Tags

Used for categorisation and merchandising.

Tags do not decide discount eligibility by themselves.

Criteria

This is the rule set that determines which stocked vehicles the offer applies to.

Criteria is stored as a stocked_vehicles boolean expression.

In simple terms: it is a vehicle filter.


How to set up a discount

In the Discounting section, you can configure discounts in two buckets:

  • Dutiable
  • Additional

Each bucket supports:

  • Relative
  • Fixed

Dutiable discount

Applied before on-road costs.

Use this when you want the discount to affect the dutiable part of the vehicle pricing.

Additional discount

Applied after on-road costs.

Use this when you want the discount applied later in the pricing flow.

Relative

A percentage discount.

This is stored as a decimal value:

  • 0.10 = 10%
  • 0.15 = 15%
  • 0.25 = 25%

Fixed

A dollar-value discount.

Example:

  • 1000 = $1,000 off

How discounts combine

Within one offer

If you set both a Relative and a Fixed discount in the same bucket, both are applied.

Example for Dutiable:

  • Relative = 10%
  • Fixed = $1,000

Both of those discount values are applied.

Across multiple offers

If multiple eligible offers apply to the same vehicle, they can stack.

Offers are applied in Order from lowest number to highest number.

This means the order value matters if you have more than one active discounting offer for the same vehicle group.


Criteria explained in simple terms

Criteria decides which vehicles receive the offer.

Think of it as a filter like:

  • all listed cars
  • all new cars
  • all used cars
  • all Mazda used cars
  • all listed demo vehicles
  • all listed vehicles from a specific make or model

The offer only applies to vehicles in the showroom that match the criteria.


How the criteria builder works

When you add a rule in the criteria builder, you choose:

  1. Field — the vehicle attribute to filter on
  2. Operator — how to compare it (the only option currently is Equal)
  3. Value — what to match against

The value input changes depending on the field:

Field Value type Available values
is_listed Toggle Yes / No
condition Dropdown new, used, demo
make Text input Type the make name exactly, e.g. Mazda

Note on condition values: The dropdown shows new, used, and demo in lowercase. Use these exact values when referencing condition in criteria.


Sample criteria examples

The examples below show what each criteria rule looks like in the builder, followed by the underlying expression.

All listed cars

Field Operator Value
is_listed Equal Yes
{
  "is_listed": { "_eq": true }
}

All new cars

Field Operator Value
condition Equal new
{
  "condition": { "_eq": "new" }
}

All used cars

Field Operator Value
condition Equal used
{
  "condition": { "_eq": "used" }
}

All demo cars

Field Operator Value
condition Equal demo
{
  "condition": { "_eq": "demo" }
}

All listed new cars

Field Operator Value
is_listed Equal Yes
condition Equal new
{
  "_and": [
    { "is_listed": { "_eq": true } },
    { "condition": { "_eq": "new" } }
  ]
}

All listed used cars

Field Operator Value
is_listed Equal Yes
condition Equal used
{
  "_and": [
    { "is_listed": { "_eq": true } },
    { "condition": { "_eq": "used" } }
  ]
}

All used cars by a certain make (example: Mazda)

Field Operator Value
condition Equal used
make Equal Mazda
{
  "_and": [
    { "condition": { "_eq": "used" } },
    { "make": { "_eq": "Mazda" } }
  ]
}

All listed used cars by a certain make (example: Mazda)

Field Operator Value
is_listed Equal Yes
condition Equal used
make Equal Mazda
{
  "_and": [
    { "is_listed": { "_eq": true } },
    { "condition": { "_eq": "used" } },
    { "make": { "_eq": "Mazda" } }
  ]
}

What the criteria count means

When editing criteria in Dashboard, Vyro can show how many vehicles currently match.

This is helpful for checking whether your rule is too broad, too narrow, or targeting the correct set of vehicles before publishing the offer.


Recommended setup pattern

For a simple campaign such as "$1,000 off all listed used Mazdas":

  1. Create an offer.
  2. Set Internal name to something like Used Mazda $1000 Off.
  3. Set Label to something customer-friendly like $1,000 Off.
  4. In Discounting, enter:
    • Dutiable Fixed = 1000
  5. Set criteria using these three rules:
Field Operator Value
is_listed Equal Yes
condition Equal used
make Equal Mazda
  1. Publish the offer.
  2. Set availability dates if required.
  3. Save.

Important notes

  • An offer must be published and currently active to be used on customer-facing website pricing.
  • A vehicle must match the offer criteria to receive the discount.
  • Only offers with a positive discount value are treated as discounting offers.
  • Multiple eligible offers can stack.
  • Lower Order values are applied first.
  • Dutiable discounts are applied before on-road costs.
  • Additional discounts are applied after on-road costs.

Suggested best practice

Keep discounting offers narrow and intentional.

Good examples:

  • all listed used Mazdas
  • all new vehicles of a specific model
  • all demo vehicles in stock

Less ideal examples:

  • very broad criteria with no listing or condition filter
  • overlapping campaign offers without a clear order strategy

If you expect multiple campaigns to apply at once, set the Order values deliberately so the discount sequence is predictable.

Was this article helpful?