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}}']. -bundle404 → genericbundleprofile retired, split into placement-specific bundle profiles. PDP usescross-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
homeand404tags below are Live recommendation profiles (home→home-page, 404→404-page) — use them as-is, no-bundleswap 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'scross-sell-bundle+cross-sell/similar/recently-viewedand cart'sview-cartare 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-shopon<body>. - ☐ Category: filters + results render; products actually appear (watch the 29%
-ROTvariant gap). - ☐
ss-shoptoggle: 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.internalidhandle 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
- Category
id— (→ Nik, still open) the head-scriptcategory = { 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). - ~~PDP
itemid~~ — ✅ RESOLVED (Sofia 2026-08-17): useinternalid(Unique ID). PDP updated. UAT still confirmsmodel.item.internalidrenders a real value. - 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.
- Customer id — get the SC session/profile handle to enable logged-in personalization.
- 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.
~/ai-projects/mission-control/plans/athos-smt-and-deploy.md