Shopify Integration Guide
Complete guide for integrating Shopify with Forter Agentic Orchestration.
This guide is specifically for merchants using Shopify. For other platforms, see SFCC IntegrationSFCC Integration or Custom IntegrationCustom Integration.
How It Works
With Shopify integration, Forter:
- Pulls your product catalog via Shopify Admin API
- Generates and maintains the AI-optimized feed automatically
- Creates orders directly in your Shopify store via Admin API Draft Orders
You provide: Shopify Admin API Access Token You implement: Nothing - Forter handles everything
Prerequisites
Before starting, ensure you have:
Shopify Store — Any Shopify plan (Basic, Shopify, Advanced, Plus)
Admin Access — Ability to create custom apps or install private apps
Forter Account — Contact your Forter representative to enable Agentic Orchestration
Tax Settings — Tax collection configured in Shopify
Step 1: Create Shopify Admin API Access Token
You'll need to create a custom app in Shopify to get an Admin API access token.
A. Create Custom App
- Log in to your Shopify Admin
- Navigate to: Settings > Apps and sales channels
- Click Develop apps
- If prompted, click Allow custom app development
- Click Create an app
- Enter app details:
App name: Forter Agentic Commerce
App developer: [Your email]- Click Create app
B. Configure API Scopes
- Click Configure Admin API scopes
- Select the following scopes:
Products (Read):
☑ read_products
☑ read_product_listings
☑ read_inventoryOrders (Read & Write):
☑ read_orders
☑ write_orders
☑ read_draft_orders
☑ write_draft_ordersCustomers (Read & Write - optional, for customer lookup):
☑ read_customers
☑ write_customersLocations (Read - for inventory):
☑ read_locations- Click Save
C. Install App and Get Access Token
- Click Install app in the top right
- Click Install to confirm
- You'll see the Admin API access token
- IMPORTANT: Click Reveal token once and copy it immediately - it's only shown once!
Example token format: shpat_1234567890abcdef1234567890abcdef- Store this token securely - you'll need it for the Forter Portal
D. Test Your Access Token
Test with curl to ensure it works:
# Test product access
curl -X GET "https://your-store.myshopify.com/admin/api/2024-01/products.json?limit=10" \
-H "X-Shopify-Access-Token: YOUR_ACCESS_TOKEN"
# Test draft order creation (dry run)
curl -X POST "https://your-store.myshopify.com/admin/api/2024-01/draft_orders.json" \
-H "X-Shopify-Access-Token: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"draft_order": {
"line_items": [
{
"variant_id": 123456789,
"quantity": 1
}
]
}
}'If successful, you'll receive product/order data.
Step 2: Configure in Forter Portal
Log in to the Forter Portal and navigate to Integrations > Shopify.
A. Basic Store Information
Field | Description | Example |
|---|---|---|
Store Title | Your store name | "My Shopify Store" |
Store URL | Your storefront URL | "https://mycustomstore.com" |
Logo URL | URL to your logo | "https://cdn.shopify.com/.../ logo.png" |
Currency | Primary currency | "USD" |
Origin Country | Shipping origin | "US" |
Origin Region | State/region | "CA" |
B. Shopify Platform Configuration
Field | Description | Example |
|---|---|---|
Platform | Select platform type | "shopify" |
Shop Domain | Your myshopify.com domain | "mycustomstore.myshopify.com" |
Admin API Access Token | From Step 1C | "shpat_..." (encrypted) |
API Version | Shopify API version | "2024-01" (or latest stable) |
Note: Use your .myshopify.com domain, not your custom domain.
C. Store Policies
Field | Description |
|---|---|
Terms of Service URL | Link to your terms |
Privacy Policy URL | Link to your privacy policy |
Return Policy URL | Link to your return policy |
Return Window (Days) | Days allowed for returns (e.g., 30) |
D. Tax Configuration
Important: Shopify handles tax calculation automatically based on your Shopify tax settings.
Field | Description | Example |
|---|---|---|
Tax Nexus Regions | US states where you collect sales tax | ["CA", "NY", "TX"] |
Forter will use Shopify's tax engine for all orders, respecting your configured tax rules.
E. Order Management
Field | Description | Example |
|---|---|---|
Order Status URL Template | URL for order tracking | "https://mycustomstore.com/orders/{order_id}" |
The {order_id} placeholder will be replaced with the Shopify order number.
Step 3: Payment & Fraud Settings (Optional)
By default, you handle payment validation and authorization on your Shopify store. This section is only needed if you want Forter to handle fraud detection and payments.
Option A: Merchant-Side Validation/Authorization (Default)
What happens:
- Forter creates draft orders in Shopify with payment references
- Shopify processes payments through your existing payment gateway
- Shopify handles fraud checks through your existing Shopify settings
Configuration: No additional setup needed - this is the default behavior.
Settings in Portal:
Enable Forter Validation: false (default)
Enable Forter Authorization: false (default)
Enable Forter Capture: false (default)Option B: Forter-Side Validation/Authorization (Optional)
What happens:
- Forter validates orders for fraud before creating them in Shopify
- Forter authorizes/captures payments via Forter Payment Orchestration
- Orders are created in Shopify with completed payment status
Configuration Required:
Contact your Forter representative to obtain:
Field | Description |
|---|---|
Validation API Key | Forter fraud detection credentials |
Payment API Key | Forter payment orchestration credentials |
Settings in Portal:
Enable Forter Validation: true
Enable Forter Authorization: true
Enable Forter Capture: true (or false for manual capture)Step 4: Catalog Sync & Testing
A. Initiate First Sync
After configuring Shopify credentials in the portal:
- Forter automatically tests the Admin API connection
- Initial catalog sync begins (pulls all products via Admin API)
- Products are normalized to AI-optimized format
- Feed is distributed to AI platforms
Processing Time:
- < 10,000 products: Minutes
- 10,000 - 100,000 products: Under an hour
- > 100,000 products: A few hours
B. Verify Catalog
Check that products were synced by updating inventory for a test product:
curl -X POST \
https://{site_id}.agentic.checkouttools.com/v1/inventory \
-H "Authorization: Bearer YOUR_FORTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"id": "gid://shopify/ProductVariant/12345678",
"quantity": 100
}'If the product exists, you'll receive:
{
"success": true,
"updated": 1,
"results": [{ "success": true, "id": "gid://shopify/ProductVariant/12345678" }]
}C. Test Checkout Flow
Test end-to-end checkout in the test environment:
1. Create a checkout session:
curl -X POST \
https://{site_id}.agentic.checkouttools.com/checkout_sessions \
-H "Authorization: Bearer sk_test_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: test-001" \
-d '{
"items": [{ "id": "gid://shopify/ProductVariant/12345678", "quantity": 1 }],
"buyer": {
"first_name": "Test",
"email": "[email protected]"
}
}'2. Add shipping and complete order:
curl -X POST \
https://{site_id}.agentic.checkouttools.com/checkout_sessions/{session_id}/complete \
-H "Authorization: Bearer sk_test_YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"fulfillment_address": {
"name": "Test User",
"line_one": "123 Test St",
"city": "San Francisco",
"state": "CA",
"postal_code": "94102",
"country": "US"
},
"payment_data": {
"token": "tok_test_visa_4242",
"provider": "test"
}
}'3. Verify order in Shopify Admin
The order should appear in: Shopify Admin > Orders
Step 5: Go Live
Production Checklist
Replace test access token with production access token (if different)
Verify production catalog sync completes successfully
Test at least one production order end-to-end
Configure monitoring and alerting
Enable AI platform distribution (OpenAI, Google, etc.)
Monitoring
Use the Forter Portal to monitor:
- Catalog Health — Product count, sync status, errors
- Order Volume — Checkout sessions, completions, failures
- Shopify API Usage — API call volume, rate limits
- Error Rates — Failed checkouts, Shopify API errors
Troubleshooting
"Invalid access token"
Solution:
- Verify token starts with shpat_
- Check token hasn't been revoked in Shopify Admin
- Ensure no extra spaces when copying token
- Regenerate token if necessary (Settings > Apps > Custom apps > [Your app])
"Insufficient permissions"
Solution:
- Check app scopes include read_products, write_draft_orders, etc.
- Reinstall the app after adding scopes
- Wait a few minutes for permissions to propagate
Products not syncing
Solution:
- Test product endpoint with curl
- Check Shopify rate limits (2 requests/second for REST Admin API)
- Verify products are published and active
- Review Forter Portal logs for sync errors
Orders not appearing in Shopify
Solution:
- Verify draft order creation permissions
- Check Shopify Admin for draft orders (may not be auto-completed)
- Review Forter Portal logs for Shopify API errors
- Confirm shop domain is correct (use .myshopify.com)
Shopify-Specific Considerations
Rate Limits
Shopify Admin API has rate limits:
- REST API: 2 requests per second (burst up to 40)
- GraphQL API: Cost-based (1000 points per second)
Forter automatically handles rate limiting with exponential backoff.
Product Variants
Shopify treats variants as separate items. Forter:
- Syncs all variants as individual products
- Uses Shopify's GraphQL ID format: gid://shopify/ProductVariant/12345678
- Maintains parent product relationships
Inventory Tracking
Forter syncs inventory from all Shopify locations. If using multiple locations:
- Specify primary fulfillment location in Forter Portal
- Or use Shopify's default inventory policy
Draft Orders vs Orders
Forter creates draft orders which can be:
- Auto-completed (if payment is pre-authorized)
- Manually reviewed and completed by you
- Converted to regular orders via Shopify's workflow
Quick Reference
Required API Scopes
read_products
read_product_listings
read_inventory
read_orders
write_orders
read_draft_orders
write_draft_orders
read_locations
read_customers (optional)
write_customers (optional)API Endpoints Used
GET /admin/api/2024-01/products.json
GET /admin/api/2024-01/product_listings.json
POST /admin/api/2024-01/draft_orders.json
PUT /admin/api/2024-01/draft_orders/{id}/complete.jsonNext Steps
- Catalog & InventoryCatalog & Inventory — Product data synchronization details
- Checkout & PaymentsCheckout & Payments — Payment processing and order management
- FAQFAQ — Common questions
Support
For Shopify-specific integration questions, contact your Forter representative or email [email protected].