← back to Eur Recrawl
panel_findings.md
66 lines
# EUR Panel/Mural Reonboarding — Findings (SAFE/LOCAL, no store writes)
## Scope
154 products with `basis="HELD-panel-not-roll"` in `reonboard_held.csv`. All 154 titles
contain "Panel"; the set spans 3 vendors: Designers Guild (83), Christian Lacroix Europe
(36), Osborne & Little (35). Every one is currently live and **sample-only** on Shopify
(option "Size"=[Sample], single $4.25 Sample variant, no sellable variant) — verified live
via Admin API (e.g. EUR-90429 Suisai Panel, EUR-71137 Mythica Botanical Mural Panel).
DB mapping note: EUR SKUs live in `shopify_products.dw_sku` (not `sku`), with
`variant_sku = <dw_sku>-Sample`. All 154 matched; all ACTIVE in the mirror.
## THE UNIT QUESTION — RESOLVED: the trade price is PER-SET (per whole panel), NOT per roll/strip
The Osborne & Little trade price list (`/tmp/oal_pl.txt`, from `pdfs/myzt3fdy.1tk.pdf`)
publishes these panels in dedicated "SCENES AND MURALS" collections, each with a single
trade price and an explicit "N lengths, each — W" x 118" H" spec. Examples matched exactly
to our held rows:
- W7817 Mythica Mural Panel — **568.00** — "3 lengths, each" 27.5"W x 118"H
- W7611 Katsura Panel — **534.00** — "3 lengths, each"
- PDG1114 Suisai Panel — **401.00** — "2 lengths, each"
- PDG1134 Bandipur Panel — **645.00** — "4 lengths, each"
- PCL022 Croisette Panel — **1243.00** — "7 lengths, each"
The single listed price is the price for the **complete multi-length set** that composes one
mural/panel — it is NOT a per-length or per-roll price. Our held-CSV `trade_price` values
match these list prices 1:1, so the existing held trade prices are already the per-SET cost.
DW retail = trade / 0.65 / 0.85 = trade x1.810 (verified to the cent on every spot check).
Length-count distribution across the 154 (from the price list): 2 lengths=80, 3=49, 4=16,
5=5, 7=4. Because none are single-length, every panel is a genuine SET → label "Panel Set".
## Store precedent for the variant label (found live, matters)
The store ALREADY sells murals with option name **"Size"** and a sellable variant literally
labeled **"Sold Per Panel or Panel Set"** (e.g. the Et Cie Constantine Wall Mural products).
So the go-live convention is not "Roll" and not a bare "Panel" — it should reuse the existing
**"Sold Per Panel or Panel Set"** Size variant. `panel_dryrun.csv` uses
`recommended_variant_label = "Panel Set"` for all 154 (multi-length); map this to the store's
existing "Sold Per Panel or Panel Set" Size option on the actual write.
## Unresolvable / caveats
- **None unresolvable.** All 154 have a trade price, matched a price-list length count, and
matched a live DB row. Zero missing prices, zero unmatched codes.
- PCL7020 Babylonia Nights Panoramic Panel (EUR-80577) is NOT in this 154 — it's
`discontinued-absent` (blank price) in the held CSV even though the price list shows 449.00
for a 3-length panel. If Steve wants it reonboarded, it can be priced 449 x1.810 = 812.69,
but it was held for a different reason (disco list), so it's out of this batch by design.
## THE DECISION NEEDED FROM STEVE
Confirm the selling model for these 154 panels before any store write:
1. **PER-SET pricing (recommended, and what the price list supports):** create one sellable
variant per product = the whole panel/mural set at retail=trade x1.810, labeled with the
store's existing **"Sold Per Panel or Panel Set"** Size option. A customer buying one unit
gets the complete N-length set. This is the straightforward, list-faithful path.
2. **PER-PANEL-within-a-set (only if DW wants to sell individual drops):** if Steve wants to
let customers buy individual lengths, we'd need a per-length price (list price / N) and a
different variant structure. The price list does NOT publish a per-length price, so this
would be a DW-invented split and is NOT recommended.
Everything in `panel_dryrun.csv` is staged for option (1). Need Steve's go/no-go on (1) vs
(2) — and if (2), whether to derive per-length = list/N — before pushing any sellable variant
live.