[object Object]

← back to Designer Wallcoverings

Coordinate by Color feature-launch CC draft: William Morris (Tulip & Bird) example — CSS color bar + real coordinating grid (9 live coordinates from pairs API), 9/9 validation; draft 79ca6e60; + how-to GIF of live flow

c3c42f13c6d42e1ef54b2cd286147896c43e9fbe · 2026-07-29 07:31:20 -0700 · Steve

Files touched

Diff

commit c3c42f13c6d42e1ef54b2cd286147896c43e9fbe
Author: Steve <steve@designerwallcoverings.com>
Date:   Wed Jul 29 07:31:20 2026 -0700

    Coordinate by Color feature-launch CC draft: William Morris (Tulip & Bird) example — CSS color bar + real coordinating grid (9 live coordinates from pairs API), 9/9 validation; draft 79ca6e60; + how-to GIF of live flow
---
 mailers/cc-api/build-color-coordinate-campaign.js | 134 ++++++++++++++++++
 mailers/color-coordinate-demo-wm.gif              | Bin 0 -> 1197618 bytes
 mailers/color-coordinate-launch.html              | 157 ++++++++++++++++++++++
 3 files changed, 291 insertions(+)

diff --git a/mailers/cc-api/build-color-coordinate-campaign.js b/mailers/cc-api/build-color-coordinate-campaign.js
new file mode 100644
index 00000000..37e374e6
--- /dev/null
+++ b/mailers/cc-api/build-color-coordinate-campaign.js
@@ -0,0 +1,134 @@
+'use strict';
+
+/**
+ * build-hollywood-campaign.js — Designer Wallcoverings
+ * A DUPLICATE of build-pr-naturals-campaign.js (same validation + create path),
+ * pointed at ../hollywood-launch.html. Promotes this week's storewide New Arrivals.
+ *
+ *   --dry-run (DEFAULT): prints payload + validation checklist. NO network.
+ *   --confirm          : creates the DRAFT campaign — STILL double-gated by
+ *                        CC_LIVE === '1' inside cc-client. Creating a DRAFT
+ *                        does NOT send; scheduling/sending is a separate gate.
+ */
+
+const fs = require('fs');
+const path = require('path');
+const cc = require('./cc-client');
+
+const MAILER = path.join(__dirname, '..', 'color-coordinate-launch.html');
+
+const argv = process.argv.slice(2);
+const CONFIRM = argv.includes('--confirm');
+const DRY_RUN = argv.includes('--dry-run') || !CONFIRM; // default dry-run
+
+const CAMPAIGN = {
+  name: `Coordinate by Color — feature launch — ${new Date().toISOString().slice(0,10)}`,
+  subject: 'New tool — Coordinate by Color: find the perfect companion for any pattern',
+  preheader: 'Every wallcovering now has a color bar. Pick a color, see every coordinating pattern in the catalog — shown here on William Morris.',
+  fromName: 'Designer Wallcoverings',
+  fromEmail: 'steve@designerwallcoverings.com',
+  replyTo: 'steve@designerwallcoverings.com',
+  physicalAddress: {
+    address_line1: '15442 Ventura Bl',
+    city: 'Sherman Oaks',
+    state_code: 'CA',
+    postal_code: '91403',
+    country_code: 'US',
+  },
+};
+
+const PLACEHOLDER_ADDRESS_MARKER = '15442 Ventura Boulevard #102';
+
+function loadHtml() {
+  if (!fs.existsSync(MAILER)) throw new Error(`mailer not found: ${MAILER}`);
+  return fs.readFileSync(MAILER, 'utf8');
+}
+function extractImageSrcs(html) {
+  const srcs = []; const re = /<img\b[^>]*?\bsrc\s*=\s*(["'])(.*?)\1/gi; let m;
+  while ((m = re.exec(html)) !== null) srcs.push(m[2]);
+  return srcs;
+}
+const isAbsoluteHttps = (u) => /^https:\/\//i.test(u);
+const unhostedLogoSrcs = (srcs) => srcs.filter((s) => /\/vendor-logos\//i.test(s));
+
+function visibleWallpaperHits(html) {
+  const hits = [];
+  const noComments = html.replace(/<!--[\s\S]*?-->/g, '');
+  const altRe = /\balt\s*=\s*(["'])(.*?)\1/gi; let m;
+  while ((m = altRe.exec(noComments)) !== null) if (/\bwallpapers?\b/i.test(m[2])) hits.push(`alt: "${m[2]}"`);
+  const textOnly = noComments.replace(/<[^>]+>/g, ' ');
+  for (const t of (textOnly.match(/\bwallpapers?\b/gi) || [])) hits.push(`visible text: "${t}"`);
+  return hits;
+}
+
+function runChecklist(html) {
+  const results = []; const add = (name, pass, detail) => results.push({ name, pass, detail });
+  add('subject set', !!CAMPAIGN.subject && CAMPAIGN.subject.trim().length > 0, CAMPAIGN.subject);
+  add('from name + email set', !!CAMPAIGN.fromName && !!CAMPAIGN.fromEmail && CAMPAIGN.fromEmail.includes('@'), `${CAMPAIGN.fromName} <${CAMPAIGN.fromEmail}>`);
+  add('reply-to set', !!CAMPAIGN.replyTo && CAMPAIGN.replyTo.includes('@'), CAMPAIGN.replyTo);
+  const addr = CAMPAIGN.physicalAddress || {};
+  const addrComplete = !!(addr.address_line1 && addr.city && addr.state_code && addr.postal_code && addr.country_code);
+  const addrIsPlaceholder = (addr.address_line1 || '').includes(PLACEHOLDER_ADDRESS_MARKER);
+  add('physical address complete', addrComplete, JSON.stringify(addr));
+  add('physical address non-placeholder', addrComplete && !addrIsPlaceholder, addrIsPlaceholder ? 'matches placeholder marker' : 'confirmed non-placeholder');
+  add('html content non-empty', !!html && html.length > 200, `${html.length} bytes`);
+  const bannedHits = visibleWallpaperHits(html);
+  add('no banned word "Wallpaper" (visible copy + alt)', bannedHits.length === 0, bannedHits.length ? `found:\n      - ${bannedHits.join('\n      - ')}` : 'clean (alt + visible text)');
+  const srcs = extractImageSrcs(html);
+  const nonHttps = srcs.filter((s) => !isAbsoluteHttps(s));
+  add('all image src absolute https', nonHttps.length === 0, nonHttps.length ? `${nonHttps.length}/${srcs.length} not absolute-https` : `${srcs.length}/${srcs.length} absolute-https`);
+  const unhosted = unhostedLogoSrcs(srcs);
+  add('logos hosted at public https (not the un-hosted /vendor-logos/ path)', unhosted.length === 0, unhosted.length ? `${unhosted.length} on un-hosted path` : 'all logos on a confirmed-live host');
+  return results;
+}
+
+function buildPayload(html) {
+  return {
+    name: CAMPAIGN.name,
+    email_campaign_activities: [{
+      format_type: 5,
+      from_name: CAMPAIGN.fromName,
+      from_email: CAMPAIGN.fromEmail,
+      reply_to_email: CAMPAIGN.replyTo,
+      subject: CAMPAIGN.subject,
+      preheader: CAMPAIGN.preheader,
+      html_content: html,
+      physical_address_in_footer: CAMPAIGN.physicalAddress,
+    }],
+  };
+}
+
+async function main() {
+  const html = loadHtml();
+  console.log('='.repeat(72));
+  console.log('Coordinate by Color → Constant Contact v3 campaign builder');
+  console.log(`mode: ${CONFIRM ? '--confirm' : '--dry-run (default)'}   CC_LIVE=${process.env.CC_LIVE === '1' ? '1' : '(unset)'}`);
+  console.log('='.repeat(72));
+
+  const payload = buildPayload(html);
+  const printable = JSON.parse(JSON.stringify(payload));
+  printable.email_campaign_activities[0].html_content = `<<${html.length} bytes of HTML — truncated>>\n` + html.slice(0, 300) + '\n…';
+  console.log('\n--- CREATE-CAMPAIGN PAYLOAD (html_content truncated) ---');
+  console.log(JSON.stringify(printable, null, 2));
+
+  console.log('\n--- VALIDATION CHECKLIST ---');
+  const results = runChecklist(html); let failed = 0;
+  for (const r of results) { const mark = r.pass ? 'PASS' : 'FAIL'; if (!r.pass) failed++; console.log(`  [${mark}] ${r.name}`); if (r.detail) console.log(`         ${r.detail}`); }
+  console.log(`\n  ${results.length - failed}/${results.length} checks passed, ${failed} failed.`);
+
+  if (DRY_RUN) {
+    console.log('\nDRY-RUN: no network call made. (default)');
+    process.exitCode = failed > 0 ? 2 : 0;
+    return;
+  }
+  if (failed > 0) { console.log('\nREFUSING to create: validation has FAILs.'); process.exitCode = 2; return; }
+  console.log('\n--confirm + validation clean → creating DRAFT (NO-OPs unless CC_LIVE=1):');
+  const activityId = await cc.createCustomCodeCampaign({
+    name: CAMPAIGN.name, subject: CAMPAIGN.subject, preheader: CAMPAIGN.preheader,
+    fromEmail: CAMPAIGN.fromEmail, fromName: CAMPAIGN.fromName, replyTo: CAMPAIGN.replyTo,
+    htmlContent: html, physicalAddress: CAMPAIGN.physicalAddress, confirm: true,
+  });
+  console.log('result:', activityId);
+}
+
+main().catch((e) => { console.error('[build-color-coordinate] ERROR:', e.message); process.exitCode = 1; });
diff --git a/mailers/color-coordinate-demo-wm.gif b/mailers/color-coordinate-demo-wm.gif
new file mode 100644
index 00000000..0a5a24cc
Binary files /dev/null and b/mailers/color-coordinate-demo-wm.gif differ
diff --git a/mailers/color-coordinate-launch.html b/mailers/color-coordinate-launch.html
new file mode 100644
index 00000000..736e675c
--- /dev/null
+++ b/mailers/color-coordinate-launch.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>Coordinate by Color — a new tool at Designer Wallcoverings</title>
+<style type="text/css">
+  body,table,td,p,a{-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
+  body{margin:0!important;padding:0!important;width:100%!important;background:#f4f1ec;font-family:Georgia,'Times New Roman',serif;color:#2a2724;}
+  table{border-collapse:collapse!important;} img{border:0;outline:none;text-decoration:none;display:block;-ms-interpolation-mode:bicubic;}
+  a{color:#1a1a1a;text-decoration:none;}
+  @media only screen and (max-width:620px){ .stack{display:block!important;width:100%!important;} }
+</style></head>
+<body style="margin:0;padding:0;background:#f4f1ec;">
+<table role="presentation" width="100%" cellspacing="0" cellpadding="0" border="0" style="background:#f4f1ec;">
+<tr><td align="center" style="padding:20px 0;">
+  <table role="presentation" width="620" cellspacing="0" cellpadding="0" border="0" style="max-width:620px;background:#ffffff;">
+
+    <!-- LOGO -->
+    <tr><td align="center" style="padding:28px 0 14px;border-bottom:1px solid #e8e2d6;">
+      <a href="https://www.designerwallcoverings.com/?utm_source=email&utm_medium=mailer&utm_campaign=color-coordinate-launch-2026-07" target="_blank" style="text-decoration:none;color:#1a1a1a;">
+        <div style="font-family:Georgia,serif;font-size:28px;letter-spacing:6px;color:#1a1a1a;text-transform:uppercase;">Designer Wallcoverings</div>
+        <div style="font-family:Helvetica,Arial,sans-serif;font-size:9px;letter-spacing:4px;color:#8d8478;margin-top:4px;text-transform:uppercase;">est. 2003 &middot; to the trade</div>
+      </a>
+    </td></tr>
+
+    <!-- ANNOUNCE -->
+    <tr><td align="center" style="padding:34px 36px 6px;">
+      <p style="font-family:Helvetica,Arial,sans-serif;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:#7a6030;margin:0;">New Tool &middot; Now on Every Pattern</p>
+      <p style="font-family:Georgia,serif;font-size:30px;line-height:36px;letter-spacing:1px;color:#1a1a1a;margin:14px 0 0;">Coordinate by Color</p>
+      <p style="font-family:Georgia,serif;font-size:15px;line-height:23px;color:#5a544c;margin:16px 24px 0;max-width:470px;">
+        Every wallcovering now carries its own <em>color bar</em>. Pick a color from the pattern you love &mdash; and we surface every coordinating stripe, plaid, texture &amp; print in the catalog that pairs with it, instantly.
+      </p>
+    </td></tr>
+
+    <!-- HERO -->
+    <tr><td style="padding:24px 36px 0;" align="center">
+      <a href="https://www.designerwallcoverings.com/products/dwwm-14233-william-morris-designer-wallcoverings-los-angeles?utm_source=email&utm_medium=mailer&utm_campaign=color-coordinate-launch-2026-07" target="_blank">
+        <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/tulip-and-bird-morris-and-co-goblin-green-and-raven-wallpaper-510016-image01_249c5635-9fa0-4f4e-b3ee-316f3f69c022.jpg?v=1741111142&width=1096" alt="Tulip & Bird Raven Goblingreen by William Morris" width="548" style="width:100%;max-width:548px;height:auto;border-radius:6px;">
+      </a>
+      <p style="font-family:Georgia,serif;font-style:italic;font-size:13px;color:#8d8478;margin:12px 0 0;">Start with a pattern you love &mdash; here, <strong style="font-style:normal;color:#5a544c;">Tulip &amp; Bird</strong> by William Morris.</p>
+    </td></tr>
+
+    <!-- STEP 1+2: THE COLOR BAR -->
+    <tr><td align="center" style="padding:40px 36px 0;">
+      <p style="font-family:Helvetica,Arial,sans-serif;font-size:10px;letter-spacing:3px;text-transform:uppercase;color:#8d8478;margin:0 0 6px;">Step 1 &middot; Select Color for Coordinates</p>
+      <p style="font-family:Georgia,serif;font-size:16px;color:#1a1a1a;margin:0 0 18px;">The color bar reads the pattern&rsquo;s own palette</p>
+      <table role="presentation" cellpadding="0" cellspacing="0" border="0" align="center"><tr><td style="padding:0 5px;"><div style="width:44px;height:44px;border-radius:8px;background-color:#669966;box-shadow:0 0 0 3px #1a1a1a, 0 0 0 5px #ffffff;font-size:0;line-height:0;">&nbsp;</div></td><td style="padding:0 5px;"><div style="width:44px;height:44px;border-radius:8px;background-color:#223344;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.08);font-size:0;line-height:0;">&nbsp;</div></td><td style="padding:0 5px;"><div style="width:44px;height:44px;border-radius:8px;background-color:#F0F0D0;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.08);font-size:0;line-height:0;">&nbsp;</div></td><td style="padding:0 5px;"><div style="width:44px;height:44px;border-radius:8px;background-color:#3366CC;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.08);font-size:0;line-height:0;">&nbsp;</div></td><td style="padding:0 5px;"><div style="width:44px;height:44px;border-radius:8px;background-color:#CCBB66;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.08);font-size:0;line-height:0;">&nbsp;</div></td></tr></table>
+      <p style="font-family:Helvetica,Arial,sans-serif;font-size:11px;letter-spacing:1px;color:#7a6030;margin:16px 0 0;">&#9650; tap a color &mdash; here, the Goblin&nbsp;Green</p>
+    </td></tr>
+
+    <!-- STEP 3: COORDINATES -->
+    <tr><td align="center" style="padding:36px 24px 8px;">
+      <p style="font-family:Helvetica,Arial,sans-serif;font-size:10px;letter-spacing:3px;text-transform:uppercase;color:#8d8478;margin:0 0 4px;">Step 2 &middot; More Wallcoverings Like This</p>
+      <p style="font-family:Georgia,serif;font-size:16px;color:#1a1a1a;margin:0 0 22px;">Rows of coordinating patterns, in your color</p>
+      <table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0">
+        <tr>
+          <td width="33%" valign="top" style="padding:0 6px 16px;" align="center">
+            <a href="https://www.designerwallcoverings.com/products/dwkk-129768?utm_source=email&utm_medium=mailer&utm_campaign=color-coordinate-launch-2026-07" target="_blank" style="text-decoration:none;">
+              <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W3928_53_42647d53-3e92-4697-a012-f6d16ebaff66.jpg?v=1753322314&width=300&height=300&crop=center" alt="W3928 - 53 Blue coordinating wallcovering" width="170" style="width:100%;max-width:170px;height:auto;display:block;border-radius:4px;">
+              <p style="font-family:Georgia,serif;font-size:12px;color:#1a1a1a;margin:9px 0 1px;line-height:15px;">W3928 - 53 Blue</p>
+              <p style="font-family:Helvetica,Arial,sans-serif;font-size:9px;letter-spacing:1.2px;color:#8d8478;text-transform:uppercase;margin:0;">Kravet</p>
+            </a>
+          </td>
+          <td width="33%" valign="top" style="padding:0 6px 16px;" align="center">
+            <a href="https://www.designerwallcoverings.com/products/dwqw-56612-handle?utm_source=email&utm_medium=mailer&utm_campaign=color-coordinate-launch-2026-07" target="_blank" style="text-decoration:none;">
+              <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/FA40101.jpg?v=1748381016&width=300&height=300&crop=center" alt="Volcano Stripe Kids/Nursery Stripe - Green, Gold, and Blue coordinating wallcovering" width="170" style="width:100%;max-width:170px;height:auto;display:block;border-radius:4px;">
+              <p style="font-family:Georgia,serif;font-size:12px;color:#1a1a1a;margin:9px 0 1px;line-height:15px;">Volcano Stripe Kids/Nursery Stripe - Green, Gold, and Blue</p>
+              <p style="font-family:Helvetica,Arial,sans-serif;font-size:9px;letter-spacing:1.2px;color:#8d8478;text-transform:uppercase;margin:0;">Malibu Wallcoverings</p>
+            </a>
+          </td>
+          <td width="33%" valign="top" style="padding:0 6px 16px;" align="center">
+            <a href="https://www.designerwallcoverings.com/products/dwta-65099designerwallcoverings-los-angeles?utm_source=email&utm_medium=mailer&utm_campaign=color-coordinate-launch-2026-07" target="_blank" style="text-decoration:none;">
+              <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/AT23110_51d9912e-484e-4a7c-be40-689994daed66.jpg?v=1773967887&width=300&height=300&crop=center" alt="Willow Tree - Navy coordinating wallcovering" width="170" style="width:100%;max-width:170px;height:auto;display:block;border-radius:4px;">
+              <p style="font-family:Georgia,serif;font-size:12px;color:#1a1a1a;margin:9px 0 1px;line-height:15px;">Willow Tree - Navy</p>
+              <p style="font-family:Helvetica,Arial,sans-serif;font-size:9px;letter-spacing:1.2px;color:#8d8478;text-transform:uppercase;margin:0;">Anna French</p>
+            </a>
+          </td>
+        </tr>
+        <tr>
+          <td width="33%" valign="top" style="padding:0 6px 16px;" align="center">
+            <a href="https://www.designerwallcoverings.com/products/dwkk-129743?utm_source=email&utm_medium=mailer&utm_campaign=color-coordinate-launch-2026-07" target="_blank" style="text-decoration:none;">
+              <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W3923_512_8f2fd89f-7f4a-467f-af81-f7254c1ec4e1.jpg?v=1753322362&width=300&height=300&crop=center" alt="W3923 - 512 Ivory coordinating wallcovering" width="170" style="width:100%;max-width:170px;height:auto;display:block;border-radius:4px;">
+              <p style="font-family:Georgia,serif;font-size:12px;color:#1a1a1a;margin:9px 0 1px;line-height:15px;">W3923 - 512 Ivory</p>
+              <p style="font-family:Helvetica,Arial,sans-serif;font-size:9px;letter-spacing:1.2px;color:#8d8478;text-transform:uppercase;margin:0;">Kravet</p>
+            </a>
+          </td>
+          <td width="33%" valign="top" style="padding:0 6px 16px;" align="center">
+            <a href="https://www.designerwallcoverings.com/products/dwkk-130218?utm_source=email&utm_medium=mailer&utm_campaign=color-coordinate-launch-2026-07" target="_blank" style="text-decoration:none;">
+              <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W4136_4_58280882-616b-462e-abba-de5ecba87a67.jpg?v=1753321101&width=300&height=300&crop=center" alt="W4136-4 Yellow coordinating wallcovering" width="170" style="width:100%;max-width:170px;height:auto;display:block;border-radius:4px;">
+              <p style="font-family:Georgia,serif;font-size:12px;color:#1a1a1a;margin:9px 0 1px;line-height:15px;">W4136-4 Yellow</p>
+              <p style="font-family:Helvetica,Arial,sans-serif;font-size:9px;letter-spacing:1.2px;color:#8d8478;text-transform:uppercase;margin:0;">Kravet</p>
+            </a>
+          </td>
+          <td width="33%" valign="top" style="padding:0 6px 16px;" align="center">
+            <a href="https://www.designerwallcoverings.com/products/dwkk-127799?utm_source=email&utm_medium=mailer&utm_campaign=color-coordinate-launch-2026-07" target="_blank" style="text-decoration:none;">
+              <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W0121_02_CAC_68688db1-9369-4047-a68a-82089c02a458.jpg?v=1753321632&width=300&height=300&crop=center" alt="Zambezi - Gold Yellow By Clarke And Clarke coordinating wallcovering" width="170" style="width:100%;max-width:170px;height:auto;display:block;border-radius:4px;">
+              <p style="font-family:Georgia,serif;font-size:12px;color:#1a1a1a;margin:9px 0 1px;line-height:15px;">Zambezi - Gold Yellow By Clarke And Clarke</p>
+              <p style="font-family:Helvetica,Arial,sans-serif;font-size:9px;letter-spacing:1.2px;color:#8d8478;text-transform:uppercase;margin:0;">Clarke And Clarke</p>
+            </a>
+          </td>
+        </tr>
+        <tr>
+          <td width="33%" valign="top" style="padding:0 6px 16px;" align="center">
+            <a href="https://www.designerwallcoverings.com/products/dwkk-g724c74eb?utm_source=email&utm_medium=mailer&utm_campaign=color-coordinate-launch-2026-07" target="_blank" style="text-decoration:none;">
+              <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/99_16064_CS_ad50c9ee-8469-4750-bdd6-4a7b8e3a598a.jpg?v=1753303740&width=300&height=300&crop=center" alt="Versailles Grand - Pink coordinating wallcovering" width="170" style="width:100%;max-width:170px;height:auto;display:block;border-radius:4px;">
+              <p style="font-family:Georgia,serif;font-size:12px;color:#1a1a1a;margin:9px 0 1px;line-height:15px;">Versailles Grand - Pink</p>
+              <p style="font-family:Helvetica,Arial,sans-serif;font-size:9px;letter-spacing:1.2px;color:#8d8478;text-transform:uppercase;margin:0;">Cole & Son</p>
+            </a>
+          </td>
+          <td width="33%" valign="top" style="padding:0 6px 16px;" align="center">
+            <a href="https://www.designerwallcoverings.com/products/dwkk-127963?utm_source=email&utm_medium=mailer&utm_campaign=color-coordinate-launch-2026-07" target="_blank" style="text-decoration:none;">
+              <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W0172_01_CAC_ac42181f-0efe-4348-bc7e-354209ade351.jpg?v=1753292956&width=300&height=300&crop=center" alt="Willow Boughs - Denim Wp Dark Blue By Clarke And Clarke coordinating wallcovering" width="170" style="width:100%;max-width:170px;height:auto;display:block;border-radius:4px;">
+              <p style="font-family:Georgia,serif;font-size:12px;color:#1a1a1a;margin:9px 0 1px;line-height:15px;">Willow Boughs - Denim Wp Dark Blue By Clarke And Clarke</p>
+              <p style="font-family:Helvetica,Arial,sans-serif;font-size:9px;letter-spacing:1.2px;color:#8d8478;text-transform:uppercase;margin:0;">Clarke And Clarke</p>
+            </a>
+          </td>
+          <td width="33%" valign="top" style="padding:0 6px 16px;" align="center">
+            <a href="https://www.designerwallcoverings.com/products/wexford-original?utm_source=email&utm_medium=mailer&utm_campaign=color-coordinate-launch-2026-07" target="_blank" style="text-decoration:none;">
+              <img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/products/ScreenShot2022-09-01at1.44.11PM.png?v=1749591619&width=300&height=300&crop=center" alt="Wexford Original Multi - Dark Navy coordinating wallcovering" width="170" style="width:100%;max-width:170px;height:auto;display:block;border-radius:4px;">
+              <p style="font-family:Georgia,serif;font-size:12px;color:#1a1a1a;margin:9px 0 1px;line-height:15px;">Wexford Original Multi - Dark Navy</p>
+              <p style="font-family:Helvetica,Arial,sans-serif;font-size:9px;letter-spacing:1.2px;color:#8d8478;text-transform:uppercase;margin:0;">Ralph Lauren</p>
+            </a>
+          </td>
+        </tr>
+      </table>
+    </td></tr>
+
+    <!-- CTA -->
+    <tr><td align="center" style="padding:20px 36px 40px;">
+      <a href="https://www.designerwallcoverings.com/products/dwwm-14233-william-morris-designer-wallcoverings-los-angeles?utm_source=email&utm_medium=mailer&utm_campaign=color-coordinate-launch-2026-07" target="_blank" style="display:inline-block;padding:15px 40px;background:#1a1a1a;background-color:#1a1a1a!important;color:#ffffff!important;font-family:Helvetica,Arial,sans-serif;font-size:11px;letter-spacing:3px;text-transform:uppercase;text-decoration:none;border-radius:26px;">Try Coordinate by Color</a>
+      <p style="font-family:Georgia,serif;font-size:13px;color:#8d8478;margin:18px 0 0;">On every pattern in the catalog &mdash; scroll to <em>&ldquo;Select Color for Coordinates.&rdquo;</em></p>
+    </td></tr>
+
+    <!-- WORDMARK -->
+    <tr><td align="center" style="padding:40px 24px 28px;border-top:1px solid #e8e2d6;">
+      <a href="https://www.designerwallcoverings.com/?utm_source=email&utm_medium=mailer&utm_campaign=color-coordinate-launch-2026-07" target="_blank" style="text-decoration:none;">
+        <div style="font-family:Georgia,serif;font-size:20px;letter-spacing:5px;color:#1a1a1a;text-transform:uppercase;">Designer Wallcoverings</div>
+        <div style="font-family:Georgia,serif;font-style:italic;font-size:12px;color:#8d8478;margin-top:8px;">To the trade &mdash; Los Angeles, since 2003</div>
+      </a>
+    </td></tr>
+
+    <!-- FOOTER -->
+    <tr><td align="center" style="padding:32px 36px;background:#f4f1ec;border-top:1px solid #e8e2d6;">
+      <p style="font-family:Helvetica,Arial,sans-serif;font-size:11px;line-height:18px;color:#8d8478;margin:0 0 8px;">
+        <strong style="color:#5a544c;letter-spacing:1px;">DESIGNER WALLCOVERINGS</strong><br>
+        15442 Ventura Bl &middot; Sherman Oaks, CA 91403 &middot; 1-888-373-4564<br>
+        info@designerwallcoverings.com &middot; designerwallcoverings.com
+      </p>
+      <p style="font-family:Helvetica,Arial,sans-serif;font-size:10px;line-height:16px;color:#8d8478;margin:16px 0 0;">
+        You&rsquo;re receiving this email because you&rsquo;ve shopped or registered with Designer Wallcoverings.<br>
+        Unsubscribe and preference links appear below (added automatically by Constant Contact).
+      </p>
+    </td></tr>
+
+  </table>
+</td></tr></table>
+</body></html>
\ No newline at end of file

← b50013f9 New Arrivals Weekly 2026-07-29: refresh mailer + subject fro  ·  back to Designer Wallcoverings  ·  TK-10039: cadence-import (daily importer) writes specs to me 1fd642ef →