← back to Dw Vendor Mailer
README.md
37 lines
# DW "Houses We Represent" — Constant Contact mailer
Cloned from the last DW send ("New: Sparkle & Shine", 2026-09-02). Six vendor
rows, each headed by the vendor's **logo** (image for the 5 rep houses; live
serif **text wordmark** for Phillipe Romano — that's how DW's PR brand mark is
defined), with 4 products per row, each linking to its Shopify page for a
**$4.25 sample**.
## Rows (order)
1. **Phillipe Romano** — Regalita Nera / Rossa / Dorata / Bronzo → `/collections/phillipe-romano`
2. **Thibaut** — Onda, Gibson Navy/Blue/Grey → `/collections/thibaut-wallcoverings`
3. **Cole & Son** — Palm Jungle, Seasonal Woods, Verdure Tapestry, Protea Garden → `/collections/cole-and-son`
4. **Brunschwig & Fils** — Yasu, Aya, Haizu, Kashmiri → `/collections/brunschwig-fils`
5. **Designers Guild** — Huerta Gitana, Arundale, Montauroux, Wyatt → `/collections/designers-guild-wallpaper`
6. **Osborne & Little** — Fitzroy, Karabali, Bramante Stripe, Papilio → `/collections/osborne-little`
All 24 product URLs + 6 collection URLs verified **200** on 2026-09-09.
Logos pulled from the DW brand-page Shopify CDN (`vendor-logos/_cdn-urls.json`).
## Build / regenerate
```
python3 build.py # -> mailer.html
```
Swap a vendor by editing the `VENDORS` list in `build.py` and re-running.
## Known caveat — WebP in Outlook
Designers Guild's logo + all 4 DG product thumbs + O&L "Papilio" are `.webp`
(that's what the Shopify CDN serves). Apple Mail, Gmail, and mobile render WebP
fine; **Outlook for Windows does not** and will show the alt text instead. Fix
options if an Outlook-heavy list matters: swap those SKUs for JPG-imaged
alternates, or host JPG copies on the CDN.
## Send
Constant Contact import + send is **Steve's gated action** — this repo only
produces the paste-ready HTML. Preview also dropped as a Gmail draft in
steve-office ("PREVIEW — New: The Houses We Represent").