# `PhoenixKit.Migrations.Postgres.V97`
[🔗](https://github.com/BeamLabEU/phoenix_kit/blob/v1.7.165/lib/phoenix_kit/migrations/postgres/v97.ex#L1)

V97: Per-item markup override.

Adds a nullable `markup_percentage DECIMAL(7, 2)` column on
`phoenix_kit_cat_items`. When `NULL`, pricing falls back to the parent
catalogue's `markup_percentage`; when set (including `0`), the item
uses its own value.

This lets individual items carry a different margin from the rest of
the catalogue without needing a second catalogue or a separate
pricing table. `NULL` vs. `0` is load-bearing: `0` means "explicitly
sell at base price", `NULL` means "inherit whatever the catalogue
currently uses".

The column is nullable with no default, matching the semantic
distinction. Existing rows stay `NULL` and continue to inherit — no
backfill is needed.

# `down`

Rolls V97 back by dropping the per-item `markup_percentage` column.

**Lossy rollback:** any per-item overrides set after V97 are lost —
affected items revert to the catalogue's markup. Back up before
rolling back in production.

# `up`

---

*Consult [api-reference.md](api-reference.md) for complete listing*
