Shopify
Shopify Developer Documentation: Product Tagging & Enrichment Pipeline
Welcome to the Helium Pulse developer documentation for Shopify integration. This guide walks you through the end-to-end setup required to enable automated product tagging and enrichment for Shopify stores. Brands using this integration will install a private app via a secure link, which enables our system to access their store data, enrich product metadata using AI, and sync it back seamlessly.
1. App Installation by Brands
1.1 Installation via Private App Link
You will receive a private app installation link from our team.
Clicking the link will prompt you to approve permissions and install the Helium Tagging Engine on your Shopify store.
Upon installation, Helium Pulse securely receives an access token scoped to your store, which enables us to perform enrichment and synchronization tasks.
1.2 Required Permissions (Scopes)
Our app requests the following API access scopes:
read_products
write_products
read_metafields
write_metafields
read_metafield_definitions
write_metafield_definitions
These scopes allow us to fetch products, apply AI-generated tags, write those tags back as Shopify metafields, and manage metafield definitions programmatically.
2. Product Fetching
2.1 Fetch Products via Shopify Admin GraphQL API
We use Shopify's Admin GraphQL API to fetch your storeβs products in batches, utilizing cursor-based pagination:
2.2 Example Request (Node.js)
3. Change Detection & Sync Triggers
3.1 Webhook Support (Optional)
We optionally listen for the following webhook events:
products/create
products/update
3.2 Daily Sync Option
For stores not using webhooks, we perform a scheduled sync once a day by fetching products updated since the last sync. While GraphQL primarily uses cursors for pagination, filtering by updatedAt
is possible in some contexts or achieved by re-syncing recently updated products.
4. Enrichment Pipeline
Once products are fetched, our AI pipeline:
Analyzes product title, type, tags, body HTML, and images
Determines category, subcategory, visual style, usage scenarios, and suitable personas
Outputs this enriched data in a structured format for syncing
5. Sync to Shopify (Metafields)
5.1 Metafield Structure and Definitions
We store enriched data in metafields under the namespace auto_enrichment
. Before writing data, we ensure that the corresponding metafield definitions exist to provide structure and validation.
Example Metafield Definition Creation:
Variables for metafieldDefinitionCreate
(e.g., for 'category'):
Example keys for enriched data:
category
subcategory
visual_tags
persona
usage
5.2 Create/Update Metafields on a Product
We use the productUpdate
mutation to create or update metafields on a product.
Variables for productUpdateMetafields
:
6. Optional: Native Tag Injection
We can also push the top 2β3 enrichment tags directly to Shopifyβs native product tags
field using the productUpdate
mutation:
Variables for productUpdateTags
:
7. Daily Enrichment Summary
7.1 Delta CSV & Summary Report
Every enrichment cycle creates a CSV with the delta changes.
Includes: Product ID, updated metafields, timestamp.
7.2 Email Notification
An automated summary email is sent daily to your brand team.
It includes the number of products enriched and a downloadable CSV report.
8. Best Practices
Rate Limits: Shopify's GraphQL API uses a cost-based rate limiting system. We manage our API calls to stay within the allocated bucket size and restore rate to avoid throttling.
Redundant Sync Avoidance: We hash each productβs metadata and skip updates unless content has changed.
Error Resilience: We use retry logic with exponential backoff.
Testing: Our systems are validated on Shopify development stores and sandboxed production replicas.
9. Technical References
This documentation can be extended to include:
Client-side SDK integration for deeper brand-side observability
Webhook signature validation
Advanced error logging and structured retry handling
For any questions, please contact your Helium Pulse onboarding engineer.
Last updated