j-riv@localhost:~$

projects / integrations / NetSuite Shopify Product Sync

NetSuite Shopify Product Sync

internal

A bi-directional product and catalog synchronization engine between NetSuite ERP and multiple Shopify storefronts, providing automated item creation, matrix option mapping, and pre-sync UI previews.

cat architecture.md

User Interface

  • Renders an embedded React application inside a native NetSuite Suitelet for interactive management and sync previews.
  • Injects active ERP user context, role parameters, and subsidiary access boundaries into the client session.

API & Integration Layer

  • Exposes NetSuite RESTlet endpoints to handle asynchronous POST payloads for previewing and triggering item sync operations.
  • Normalizes request payloads and routes execution paths based on requested actions and target storefront identifiers.

Data Mapping & Transformation Engine

  • Transforms complex Shopify product and variant structures into NetSuite standard and matrix inventory item records.
  • Converts NetSuite items, pricing tiers, and custom attributes into standard Shopify product objects.
  • Enforces schema validation for weight units, option lists (such as size and color), and required field mappings.

External E-Commerce Integration

  • Executes queries and mutations against the Shopify Admin GraphQL API across multi-store configurations.
  • Utilizes bulk variant mutations for efficient catalog updates while managing API limits.

ERP Records & Data Store

  • Queries and updates NetSuite inventory records, parent/child matrix items, price levels, and sync tracking flags.
  • Enforces role-based subsidiary security restrictions directly during ERP record queries.
# Why use native SuiteScript RESTlets and Suitelets?
Executing directly within NetSuite grants seamless access to internal ERP record APIs and runtime security contexts without requiring external middleware hosting.
# Why implement a preview step before sync execution?
Allowing administrators to inspect mapped objects prior to creation prevents malformed catalog entries and validates required fields across system schemas.
# Why leverage GraphQL Code Generator for Shopify integrations?
Automates generation of static TypeScript types against the Shopify Admin GraphQL schema, maintaining strict type safety across all queries and mutations.
# How are multi-store storefront credentials handled?
Store configurations are isolated into store-specific identifier mappings, allowing a single integration deployment to route requests to multiple brand storefronts dynamically.