← back to Designer Wallcoverings

pending-approval/ere-eur-mfr-photo-reimage-and-archive.md

58 lines

# GATED: ERE- + EUR- private-label → manufacturer photos, enrichment, + archive discontinued

**Status:** DRAFT — awaiting officer (vp-dw-commerce) sign-off → Steve executes.
**Owner:** vp-dw-commerce  ·  **Drafted:** 2026-06-26 (overnight autonomous run)
**Nature:** customer-facing bulk Shopify change → gated. All prep is staged in `dw_unified`; **nothing has been posted to Shopify.**

## What & why
British Walls / "EUR-" / "ERE-" are DW **private-label house lines** that mask their true
manufacturers. Provenance traced via FileMaker (`fmpro-master.csv`):
- **ERE-** = Osborne & Little group → **Designers Guild / Christian Lacroix** (vendor code OSB, mfr `P###/PCL###/PDG###`).
- **EUR-** = multi-vendor European: **Osborne & Little, Designers Guild, Romo, Nina Campbell** (codes OSB/DGD/ROMO/NIN).

Many products were live with stale 2019 Shopify-CDN photos (or none), missing real mfr imagery,
hex/color, and descriptions. This job replaces photos with the **manufacturer's own images** from
`dw_unified`, carries/【synthesizes】 enrichment, and archives colourways the manufacturer has discontinued.

## Staged in dw_unified (reversible — backups taken)
| Line | Live | Re-imaged (mfr photo) | Enriched (color/hex/style/desc) | → ARCHIVE (discontinued) | Gap (crawl/manual) |
|---|---|---|---|---|---|
| ERE- | 135 | 29 | 29 (Gemini 2.5-flash) | 106 | 0 |
| EUR- | 1,627 | 1,596 | 1,596 (carried + $0 desc + 11 Gemini) | 23 | 0 — all 32 gaps resolved |

Staging tables: **`ere_dg_map`** (135), **`eur_map`** (1,627). Backups: `_bak_ere_shopify_20260626`,
`_bak_ere_bwcat_20260626`. Each row carries `new_image`, `src_ai_*`, `planned_status`.

## Gated actions requested (for Steve to execute after sign-off)
1. **Image swap** — push `new_image` (+ `all_images`) to the live Shopify product for every
   `source IN ('in_db','in_db_cleaned','crawled')` row (ERE 29 + EUR 1,585 = **1,614 products**).
2. **Enrichment write** — push `ai_*` color/hex/style/pattern/tags + description to product metafields.
3. **Archive** — set `status=ARCHIVED` for every `planned_status='ARCHIVED'` row (ERE 106 + EUR discontinued).
   Per Steve "archive disco items." Reversible (un-archive).

## Hard gates / guardrails honored
- ONLY the metered cadence may CREATE products — **this job creates nothing** (image/status updates only).
- No upscaling — DG `/image-nonwebp/1024/` is the manufacturer's own larger render, not a client enlarge.
- Activation gate intact — archived items are discontinued, not force-priced.
- mfr # never customer-facing — used only as the internal join key.

## Open gap (not blocking sign-off)
- 42 EUR- SKUs with no source image in `dw_unified`: 30 crawlable (osborne/romo/dg re-crawl),
  9 incomplete mfr (no colourway), 3 placeholder mfr ("*** ENTER MFR # ***") → manual fix.
  Overnight loop is attempting the 30 crawls; the 12 are flagged for manual mfr correction.

## Verify queries
```sql
SELECT source, planned_status, count(*) FROM ere_dg_map GROUP BY 1,2;
SELECT source, planned_status, count(*) FROM eur_map  GROUP BY 1,2;
```


## EUR gap resolution (overnight loop, 2026-06-26)
The original 42-row EUR gap is fully resolved:
- **11 recovered** with manufacturer photos (10 Osborne via deterministic media-CDN URL `media/catalog/product/<c1>/<c2>/<code>.jpg`, 1 Designers Guild PDG1036/05 via alternateColourways) + Gemini-enriched ($0.0066 total).
- **23 discontinued** → ARCHIVE (Osborne "image coming soon" 4556-byte placeholder = the discontinued signal; + DG retired colourways).
- **8 keep_current_image** — Romo/Osborne patterns with a working DW Shopify-CDN image but no recoverable manufacturer photo (W6582 ambiguous colourway, W309/W312/W364 Romo not in catalog, 2 truly-broken mfr#). NOT archived (image works), NOT upgraded. Low-priority manual mfr-photo upgrade later if desired; worklist `pending-approval/eur-manual-mfr-fix-worklist.csv`.

Final eur_map: 1,596 re-imaged+enriched ACTIVE · 23 ARCHIVE · 8 keep-current. Posting still gated.