← back to Designer Wallcoverings
auto-save: 2026-07-09T22:42:31 (3 files) — pending-approval/boost-filter-consolidation-2026-06-25 vendor-scrapers/china-seas-refresh shopify/config/README-internal-lines.md
e7041981cbb16d0505b2bf6a135213a074e124c2 · 2026-07-09 22:42:36 -0700 · Steve Abrams
Files touched
A shopify/config/README-internal-lines.md
Diff
commit e7041981cbb16d0505b2bf6a135213a074e124c2
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Jul 9 22:42:36 2026 -0700
auto-save: 2026-07-09T22:42:31 (3 files) — pending-approval/boost-filter-consolidation-2026-06-25 vendor-scrapers/china-seas-refresh shopify/config/README-internal-lines.md
---
shopify/config/README-internal-lines.md | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/shopify/config/README-internal-lines.md b/shopify/config/README-internal-lines.md
new file mode 100644
index 00000000..30066682
--- /dev/null
+++ b/shopify/config/README-internal-lines.md
@@ -0,0 +1,24 @@
+# internal-lines.json — the "never front-facing" registry
+
+`internal` is a DW-side catalog category, distinct from active / draft / archived / staged:
+- **draft** = pending go-live (a candidate to activate)
+- **internal** = DELIBERATELY, PERMANENTLY off every customer surface (public Online Store + Google
+ Merchant feed), while STILL visible on internal tools (all.dw, substitutefinder, internal viewers,
+ the 401-gated microsites). Underlying Shopify `status` stays `draft` (keeps it off the storefront);
+ `internal` additionally HARD-BLOCKS activation/publish/feed.
+
+## Signals (either = internal)
+1. VENDOR is in `internal-lines.json` → `vendors[]`.
+2. Product carries the `internal` product TAG.
+
+## Honored by
+- `scripts/lib/internal-guard.js` — `isInternal(vendor, tags)`, the single source of truth.
+- `scripts/lib/validate-before-activate.js` — fails closed (ok:false) for internal products, wired
+ into `scripts/cadence/activate-gated.js` (DRAFT→ACTIVE promote) + `cadence-import.js` (create-time).
+- `all-designerwallcoverings/server.js` — lifecycle 'Internal'; internal rows stay in the internal
+ grid + facets, excluded only from front-facing paths.
+- Google Merchant feed — internal vendors/tag excluded (draft already excluded; this is belt-and-suspenders).
+
+## To make a line internal
+Add its vendor to `vendors[]` here, and tag its products `internal`. It can never go front-facing
+until removed from this registry.
← 6c61a816 auto-save: 2026-07-09T22:12:24 (10 files) — package-lock.jso
·
back to Designer Wallcoverings
·
WallQuest real-textile onboard pipeline: normalize + load + 3483fed8 →