← back to Dw Mailer Glitter Naturals Custom
README.md
60 lines
# DW "New Arrivals" — Constant Contact mailer (TK-11836)
DRAFT ONLY. Not sent. Send-to-list is a hard gate — waits for Steve's go.
Structure cloned verbatim from the last DW send
(`~/Projects/dw-vendor-mailer/mailer.html` — "The Houses We Represent",
2026-09-09..16): 600px table-based, inline-styled, email-client-safe. This
edition refreshes the lineup to four DW-owned / private-label lines and adds a
full-bleed **room-setting hero** at the top.
## Layout (top → bottom)
1. **Masthead** — DW logo → **`/collections/new-arrivals`** (Steve: "dw banner clicks to new arrivals"); "to the trade" tagline also links there.
2. **Hero** — full-bleed room-setting render (`medici-...-living_room.jpg`), also links to New Arrivals.
3. **Headline** — "New Arrivals" + intro naming the four lines.
4. **Glitter Walls** — 4 sequin swatches → `/collections/glitter-walls`
5. **Fentucci Naturals** — 4 grasscloth → `/collections/fentucci-naturals`
6. **Phillipe Romano Naturals** — 4 cork/mica → `/collections/phillipe-romano-naturals`
7. **Custom & Bespoke** — room image + CTA → `/pages/custom`
8. **Footer** — DW address; CC appends the unsubscribe/preference block below.
All product pages, collection/page links, and image URLs verified **HTTP 200**
on 2026-09-16 (www.designerwallcoverings.com canonical). All 21 links point into
the real DW Shopify store — never a vendor site.
## Private-label / brand-voice compliance
- **Leak scan: clean.** No upstream/true-vendor name (Tokiwa, Greenland,
Command54, WallQuest, Chesapeake, Momentum, Versa, …) anywhere in copy, alt,
meta, or captions. Only customer-facing brands appear (Fentucci, Phillipe
Romano, Glitter Walls).
- Word "Wallpaper" appears in **zero** authored copy / captions / alt text. It
survives only inside unavoidable Shopify CDN filenames + product URL slugs
(e.g. `oxel-cork-wallpaper-inw-4899`), which cannot be renamed for an email;
every visible label says "Wallcovering" / the pattern name.
- Glitter thumbs use the `glm-still-*.jpg` swatches (the `-clean.jpg` set are
video poster frames with a baked-in play triangle — wrong for a static email).
## Build / regenerate
```
python3 build.py # -> mailer.html
```
Swap a line/product by editing `SECTIONS` / `CUSTOM` in `build.py` and re-running.
## Preview
`preview.png` (gitignored) is a headless-Chrome render of the current mailer.
## Send — GATED (Steve only)
Constant Contact import + send is Steve's gated action. This repo only produces
the paste-ready HTML. When Steve approves:
1. Constant Contact → **Create → Email** → choose a blank/custom-code layout
(or **Campaigns → Copy** the last "Houses We Represent" send to inherit the
verified sender/footer/list), then open the **`</>` custom-code / HTML** view.
2. Paste the full contents of `mailer.html`.
3. Set subject (e.g. *"New Arrivals — Glitter, Naturals & Custom"*) and preheader
(already embedded as hidden text).
4. Send yourself a **test**, eyeball Apple Mail + Gmail + (if the list skews
Outlook-for-Windows) Outlook — the base's known WebP/`object-fit` Outlook
caveat applies to any non-square/WebP asset.
5. Pick the audience list → **Schedule/Send** (this is the CAN-SPAM/§17529.5
send-to-list gate — route through vp-compliance-policy before the actual send).