Plan: Athos Commerce Product Data Feed — RBD
Objective
Build a SuiteScript 2.x scheduled script that generates a product data feed from NetSuite, saves it to the File Cabinet at a stable public URL, and runs daily. Athos Commerce will poll this URL to power search and product discovery on rileyblakedesigns.com.
Context
- Site: rileyblakedesigns.com — SuiteCommerce Standard (NOT SCA, NOT headless, NOT SPA)
- Athos feed spec:
~/Downloads/Data Sources Guide – Athos Search & Product Discovery.pdf - Feed format: ndJSON or CSV, hosted at stable HTTPS URL
- Hosting: NetSuite File Cabinet (permanent, stable URL — no external hosting needed)
- Athos pulls: Daily re-index, can manually trigger
- warehouseAPI explored but ruled out — missing image URLs + product URLs, SuiteScript is cleaner with full item record access
- Session 7 has full research context
Athos required fields:
| Field | Source in NetSuite |
|---|---|
| Unique ID | ns_item_id / item internal ID |
| SKU | itemId / rbd_item_id |
| Name | displayName |
| Product URL | TBD — need URL format from Cole |
| Price | cost or online price field — TBD |
| Thumbnail URL | TBD — need image field name from Cole |
Athos recommended fields (we have these):
__parent_id— Matrix parent ID (if matrix items)__in_stock— derived fromquantity_available > 0__in_stock_pct— variants in stock / total variants- Category —
categoryfield - Filter attributes — color, theme, pattern, designer (artist_1), fiber_content, width
- Search keywords —
search_keywords,store_detailed_description - Date created —
anticipated_release_dateor item create date - Inventory levels —
quantity_available
Blocked On (resolve before writing script)
- Item record type — Matrix Items (parent + child variants) or individual inventory items?
- Product URL format — what does a product URL look like on rileyblakedesigns.com?
- Image field — where do images live on the item record? (
storeDisplayThumbnail? custom field?) - Online price field — what field holds the customer-facing price?
- NetSuite account ID — needed for File Cabinet URL construction
Implementation Plan
Phase 1: SuiteScript Feed Generator
- ☐ Write SuiteScript 2.x scheduled script (
athos_feed_generator.js) - ☐ Query all active, online items (
is_online = true,is_inactive = false) - ☐ Map required + recommended fields to Athos spec
- ☐ Handle matrix parent/child relationships with
__parent_id - ☐ Generate ndJSON file (one product object per line)
- ☐ Save to File Cabinet folder (e.g.,
/SuiteScripts/Athos/) - ☐ Return stable public URL
Phase 2: Deploy & Schedule
- ☐ Cole uploads script to NetSuite Script Manager
- ☐ Creates Script Record (Scheduled Script type)
- ☐ Creates Script Deployment with daily schedule
- ☐ Runs manually once to verify feed file generates
- ☐ Confirms File Cabinet URL is publicly accessible
- ☐ Provides URL to Athos Commerce
Phase 3: Validate with Athos
- ☐ Athos ingests feed and confirms indexing
- ☐ Verify minimum 10 products indexed
- ☐ Check variant grouping (
__parent_id) is working - ☐ Verify filters (color, designer, category) appear correctly
Deployment Steps (for Cole)
Once script is written:
- In NetSuite: Go to Customization > Scripting > Scripts > New
- Select script type: Scheduled Script
- Upload the
.jsfile - Set entry point function:
execute - Go to Deployments tab → New Deployment
- Set schedule: Daily (suggest 2am to avoid peak traffic)
- Status: Released
- Run manually first: Deployments → click script → Save & Execute
- Check File Cabinet for generated feed file
- Copy the file's public URL → give to Athos
Notes
- SuiteScript has direct access to all item fields — no schema gaps like warehouseAPI
- File Cabinet URLs format:
https://{accountId}.app.netsuite.com/core/media/media.nl?id={fileId} - Can also use SuiteCommerce's CDN path if configured
- Filter data (color, designer, etc.) must be clean in NetSuite — any typos will show as separate filter options in Athos (they don't merge/clean on their end)
- RBD uses
artist_1as designer field — map this to adesignerfield in the feed for Athos filtering - If RBD uses quantity-based pricing or wholesale pricing, those price fields must all be included per Athos spec
Source:
~/ai-projects/mission-control/plans/athos-commerce-feed.md