LAFU Sales Reports

CataSync feeds 6/6: niletech go-live + stale Google Listings cleanup (operator OK)

FeatureOpenView on roadmap· 12 days ago

Imported from GitHub issue El-SaMa/oma#249 by @El-SaMa.


Part of the Product feeds epic. Last step. Needs the operator's OK before each live change.

What

Turn the feeds on for niletech and clear the stale Google Listings & Ads leftovers.

Steps

  1. Create on niletech (site 44fd1064-faae-4fd6-9998-18680bb64601) via oma.admin_catasync_feeds:
    • Google Merchant (preset google_xml, destination google, merchant 684452171)
    • hinta.fi, Hintaseuranta, Hintaopas (Prisjakt) (their presets, destination url) Show the operator each feed's preview and skipped counts before enabling.
  2. Google: dry run first, operator reviews the sample items, then the real run. Verify approved/disapproved counts after 24 h.
  3. Comparison sites: give the operator the feed URLs and the merchant sign-up steps for each site (do not sign up or email anyone without the operator approving the exact text; outgoing mail follows the draft-before-send rule).
  4. Cleanup (operator OK, read-only check first, backup of the rows to /root/archive on nilek): delete the stale Google Listings & Ads post meta on niletech (_wc_gla_sync_status, _wc_gla_errors, _wc_gla_synced_at, _wc_gla_mc_status, _wc_gla_google_ids, _wc_gla_notification_status, _wc_gla_availabilityDate) and the gla_* options, since the plugin is gone. Flush the object cache afterwards (see handbook niletech notes: Redis runs inside the site container).
  5. The 165 published own spare parts with no description stay out of the feeds (requireDescription filter). List them for the operator; no AI text.

Acceptance

  • Four feeds live on niletech, previews approved by the operator.
  • Google shows niletech products as approved (count reported), market sync returns benchmarks for many products.
  • Stale GLA meta removed with a backup, counts reported.
  • Handbook and ops/sites/niletech/README.md updated.

Binding rules (read before coding)

  • Read CLAUDE.md and every .cursor/rules/*.mdc with alwaysApply: true first. They win over your defaults.
  • No OpenAI / AI calls anywhere in this feature. CataSync AI switch (ai_enabled) stays off. Never turn it on.
  • Smallest correct change. Match the surrounding code style (engine = plain ESM .mjs, mysql2 pool from src/db.mjs; core-api = TypeScript).
  • Every staff action goes through the admin MCP (admin-mcp-first.mdc): executor in services/core-api/src/agent-tools/tools-catasync.ts, confirm handler in services/core-api/src/platform/confirm.ts for writes, registry entry, zod schema in services/mcp-server/src/tools.ts, test in tools-catasync.test.ts. The UI calls the same tool (via apps/web/lib/catasync/admin-actions.ts), never a separate path.
  • UI: vertical side nav only (never a second tab row), forms in modals, shadow cards, full width (portal-chrome.mdc).
  • Every string: next-intl key with native en, fi, sv (Finnish must read native, not translated). No em/en dashes in prose. Run node scripts/i18n-validate.mjs.
  • Handbook: update apps/web/content/admin-docs/products/catasync.md (new section) for every behaviour you add.
  • Secrets (tokens, Google tokens, feed tokens) never in logs, commits, handbook or chat.
  • Commits: author ELSAMA only, no Co-authored-by / AI attribution. Push to main right after each commit (rebase on origin/main first).
  • Deploy: engine with bash scripts/catasync-engine-roll.sh figaro; OMA only via the train bash scripts/deploy-quick.sh (never set OMA_DEPLOY_SERVICES, never build on the VM). Check the live SHA contains your commit.
  • WordPress plugin changes: bump version, pass scripts/wp-plugin-gate-remote.sh ops/catasync/plugins/lafu-catasync-connector with 0 errors 0 warnings + security check (wp-plugin-dod.mdc). Install on maxfort.fi first (test shop), only then niletech.
  • Never change niletech prices, statuses, shipping rows or the Code Snippets / table-rate plugins as part of this work.
  • Clean up test data and temp files when done.

Comments (0)

No comments yet.

Join the discussion

Sign in to leave a comment on this thread.

HollahoopGet yours