← back to Rebel Walls Push
GMC re-gate: exclude Google & YouTube publication (29646651457) from push + activate
e6677f9760946da7e5cedb32746110e602134d7c · 2026-07-08 15:56:09 -0700 · Steve Abrams
Both run on a daily cron and re-leaked the $4.25 sample price to the Google channel.
Filter Google out of loadPublications() in each. Google is fed by the controlled TSV
feed only. Inline + reversible.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
M scripts/activate.jsM scripts/push.js
Diff
commit e6677f9760946da7e5cedb32746110e602134d7c
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed Jul 8 15:56:09 2026 -0700
GMC re-gate: exclude Google & YouTube publication (29646651457) from push + activate
Both run on a daily cron and re-leaked the $4.25 sample price to the Google channel.
Filter Google out of loadPublications() in each. Google is fed by the controlled TSV
feed only. Inline + reversible.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
scripts/activate.js | 7 ++++++-
scripts/push.js | 11 ++++++++++-
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/scripts/activate.js b/scripts/activate.js
index 39de924..2e67727 100644
--- a/scripts/activate.js
+++ b/scripts/activate.js
@@ -102,7 +102,12 @@ const M_SET_QTY = `mutation($input:InventorySetQuantitiesInput!){
let PUBLICATION_IDS = null;
async function loadPublications() {
const r = await gqlRetry(`{publications(first:50){edges{node{id name}}}}`, {}, 'publications');
- PUBLICATION_IDS = r.json.data.publications.edges.map(e => e.node);
+ // GMC source-fix (Steve policy, 2026-07-08): exclude "Google & YouTube"
+ // (publication 29646651457). Shopify auto-syncs minVariantPrice ($4.25 sample)
+ // to Merchant Center → price disapproval. Google is fed by the controlled TSV
+ // feed only. Rollback: delete the .filter() below.
+ PUBLICATION_IDS = r.json.data.publications.edges.map(e => e.node)
+ .filter(p => p.id !== 'gid://shopify/Publication/29646651457');
return PUBLICATION_IDS;
}
diff --git a/scripts/push.js b/scripts/push.js
index b886625..6232079 100644
--- a/scripts/push.js
+++ b/scripts/push.js
@@ -272,9 +272,18 @@ const QTY_2026 = 2026;
let PUBLICATION_IDS = null; // [{id,name}]
let LOCATION_ID = null; // gid://shopify/Location/...
+// GMC source-fix (Steve policy, 2026-07-08): NEVER publish new SKUs to the
+// "Google & YouTube" channel (publication 29646651457). Shopify auto-syncs the
+// published product's minVariantPrice to Merchant Center; on DW that min is the
+// $4.25 "-Sample" variant → Google advertises $4.25 on a real roll → price
+// disapproval. Google is fed EXCLUSIVELY by the controlled TSV feed. This push
+// runs on a daily cron, so it re-leaks unless Google is excluded here.
+// Rollback: delete the GOOGLE_PUBLICATION_ID filter line below.
+const GOOGLE_PUBLICATION_ID = 'gid://shopify/Publication/29646651457';
async function loadPublications() {
const r = await gql(`{publications(first:50){edges{node{id name}}}}`);
- PUBLICATION_IDS = (r.json.data && r.json.data.publications.edges || []).map(e => e.node);
+ PUBLICATION_IDS = (r.json.data && r.json.data.publications.edges || []).map(e => e.node)
+ .filter(p => p.id !== GOOGLE_PUBLICATION_ID); // GMC exclusion (2026-07-08)
}
async function discoverLocation() {
// Pull the location off any already-pushed variant's inventory level. If none
← 2f4dc48 chore: macstudio3 migration — reconcile from mac2 + repoint
·
back to Rebel Walls Push
·
push: create DRAFT not ACTIVE so Rebel Walls flows through t fa667c7 →