← Back to all projects
Ready Created 2026-08-13 · Companion to `athos-integration-steps.md`, `athos-frontend-build-kit.md`. 0/8 tasks

Athos — SMT Snippets + Deploy/UAT Runbook (Cole's steps)

State at handoff: all theme-side edits done + compile-clean in ~/ai-projects-local/rbd-sc-theme-sandbox/Workspace/RBD_Theme/, NOT yet deployed. This doc = the copy-paste content + the exact steps for you to finish.


A. Theme edits already staged (6 total, backed up as *.athos-orig)

File What changed
Modules/SiteSearch@sco-2018.1.0/Templates/site_search.tpl search form → Athos (name="q", type-ahead removed)
Modules/Facets@sco-2018.1.0/Templates/facets_facet_browse.tpl #athos-sidebar + #athos-content injection (search+category) + ss-shop body toggle
Modules/Header@sco-2018.1.0/Templates/header.tpl global bundle.js loader (atqzs8)
Modules/ProductDetails@sco-2018.1.0/Templates/product_details_full.tpl PDP recs (cross-sell-bundle/cross-sell/similar/recently-viewed), products:['{{model.item.internalid}}']
Modules/Cart@sco-2018.1.0/Templates/cart_detailed.tpl cart recs (view-cart)

Revert any file: cp <file>.athos-orig <file> then re-deploy.

Athos reply (Sofia, 2026-08-17) — applied to PDP: - Seed key → use Unique ID / internalid (60410), not SKU. Immutable NetSuite key; rec history survives renames. API accepts either but internalid is preferred. → PDP now emits products:['{{model.item.internalid}}']. - bundle 404 → generic bundle profile retired, split into placement-specific bundle profiles. PDP uses cross-sell-bundle. Full set: cross-sell-bundle, view-cart-bundle, 404-bundle, no-results-bundle, home-bundle. Console: console.athoscommerce.net/on-site/bundle-profiles - Threshold configurable per profile: console.athoscommerce.net/on-site/recommendation-profiles - Category id + catalog-not-resolving (branch=production) → routed to Nik (Athos front-end). Still blocking recs from populating.


B. SMT snippets — paste via Site Management Tools (no code deploy)

Site Management Tools → navigate to the page → add a Custom Content Type = HTML area → paste. (If SMT strips <script>, place these via the theme instead — tell me and I'll add Home/404 template overrides.)

Tags VERIFIED in Athos console (2026-08-24, site atqzs8/rileyblakedesigns.com). The bare home and 404 tags below are Live recommendation profiles (home→home-page, 404→404-page) — use them as-is, no -bundle swap needed. Separate Live bundle profiles also exist (home-bundle, 404-bundle, view-cart-bundle, no-results-bundle, cross-sell-bundle) if we ever want to add bundle carousels to those pages too (additive, optional). PDP's cross-sell-bundle + cross-sell/similar/recently-viewed and cart's view-cart are all confirmed Live.

B1. Home page (place in a content area on the homepage)

<script type="athos/recommendations">
  profiles = [ { tag: 'home', selector: '.ss__recs__home' } ];
</script>
<div class="ss__recs__home" style="min-height: 100px;"></div>

B2. 404 page (⚠️ uses .ss__recs__404 — the doc's sample had a placeholder-class typo [profile name])

<script type="athos/recommendations">
  profiles = [ { tag: '404', selector: '.ss__recs__404' } ];
</script>
<div class="ss__recs__404" style="min-height: 100px;"></div>

The RBD 404 template (error_management_page_not_found.tpl) has CMS areas ..._cms_area_1 / _2 — drop the 404 snippet into one of those via SMT.

Customer id (all rec blocks) — deferred

Doc allows omitting shopper id for guests, so all blocks currently omit it. To personalize for logged-in customers later, prepend inside each <script type="athos/recommendations">: globals = { shopper: { id: '<CUSTOMER_ID>' } }; (PDP keeps its products in globals) — needs the confirmed SC customer-id handle.

No-results page — nothing to build (Athos hosts that template; preview in UAT).


C. Deploy to Sandbox (your steps)

cd ~/ai-projects-local/rbd-sc-theme-sandbox
nvm use                       # Node 20 from .nvmrc
npx gulp theme:local          # optional: final local sanity compile
npx gulp theme:deploy --to    # deploy; --to prompts for the token (choose the rbd-sandbox token → 4582045-SB1)
npx gulp reactivate           # activate the deployed theme  (or: npx gulp theme:deploy --reactivate)

Then open the Sandbox SC site (rileyblake.folio3.com domain) and confirm the custom theme is live.

D. Point Athos at the Sandbox

Give Katie/Searchspring the Sandbox site URL so they crawl it and enable the profiles (home, bundle, cross-sell, similar, recently-viewed, view-cart, 404).


E. UAT checklist (Sandbox)

  • Search: type a query in the header → lands on /search, Athos results + filters render in #athos-content/#athos-sidebar, NO SC type-ahead bleed-through, ss-shop on <body>.
  • Category: filters + results render; products actually appear (watch the 29% -ROT variant gap).
  • ss-shop toggle: present on search, absent on category; check it clears when navigating search→home/PDP/cart (SPA edge case — if it lingers, ping me for the extension route hook).
  • PDP recs: view source → products:['<REAL internalid>'] (e.g. 60410, NOT empty). All 4 rows populate for a known item. If empty → model.item.internalid handle needs verifying / adding to the PDP item field set.
  • Cart recs: view-cart row renders. Home: home row renders. 404: hit a bad URL, row renders.
  • Guest vs logged-in: no id:'' emitted anywhere; recs still load as guest.
  • Search input styling: the new <input> may need a CSS touch-up (lost the old type-ahead styling).
  • No-results page preview looks right (Athos-hosted).

F. Open items to resolve WITH Athos during UAT

  1. Category id — (→ Nik, still open) the head-script category = { id: "..." } binding: confirm which id (feed External ID vs SC internal) + how their bundle reads the current category on SC. If they need the External ID and SC only exposes internal id/URL → re-key the feed Suitelet (source in hand).
  2. ~~PDP itemid~~ — ✅ RESOLVED (Sofia 2026-08-17): use internalid (Unique ID). PDP updated. UAT still confirms model.item.internalid renders a real value.
  3. Catalog not resolving / branch=production — (→ Nik, still open) recs return empty until Athos points the catalog/branch at the Sandbox. This is the current blocker on populated rows.
  4. Customer id — get the SC session/profile handle to enable logged-in personalization.
  5. SC native related/correlated (PDP + cart) — decide whether to hide them now that Athos rows exist.

G. Then → Production (Phase G)

Repeat toolchain in a SEPARATE root dir for prod, apply the same edits + SMT, theme:deploy to prod, point Athos at rileyblakedesigns.com, smoke-test E. Keep *.athos-orig commented blocks for one release cycle as revert path.

Parallel (feed-side, before UAT sign-off)

29% of feed rows (all -ROT/variant SKUs) have empty categories in saved search 988 → won't appear in category browsing/recs. Decide variant→parent category inheritance and patch the feed Suitelet.