Shopify Integration
An overview of the Shopify integration
Overview
Ramp’s Shopify integration enables seamless data exchange between your Shopify store and the Ramp platform. This integration ensures that product information and inventory levels remain accurate across both systems - helping you save time, reduce manual work, and maintain up-to-date stock visibility.
For information on the integration for Orders and Transfers, please refer to the Stocky integration page.
Key Features
- Retrieve and Sync Data
- Imports product fields, location fields and current stock inventory from Shopify
- Update Inventory Levels
- Push stocktake data back to Shopify to ensure accurate inventory counts across all locations
How It Works
The integration connects to Shopify through its Admin API (REST and GraphQL) using a secure API token.
Ramp uses detailed field mappings between Shopify and Ramp to ensure all information is correctly aligned — from SKUs and locations to stock quantities.
In This Article
-
Retrieving Your Shopify API Access Token
-
Data Mapping
-
Product Integration Details
-
Stocktake Integration Details
- Current Stock Integration
Retrieving Your Shopify API Access Token
To enable communication between Shopify and Ramp, you must retrieve your Shopify API access token to authenticate data transfer. To do this, follow these steps:
- Navigate to Shopify Admin Portal
- Log in to your Shopify account at https://{your-storename}.myshopify.com/admin.
- Create a private app
- Go to Settings > Apps and Sales Channels > Develop Apps.
- Click on Create an App and give it a descriptive name
- Configure API Permissions
- We require the following scopes:
- read_locations
- read_products
- read_inventory
- write_inventory
- We require the following scopes:
- Retrieve Access Token
- After saving, click Install App to generate the Admin API Access Token.
- Save this token securely; it will be used for authentication in API calls.
Product Data Mapping
This section covers the required Shopify fields that Ramp interacts with when syncing your product catalogue. It also outlines how the mapping appears in the Ramp system.
These fields can be modified and customised for different systems. Contact support@ramp.com.au for assistance in creating custom fields
Required Fields
These fields are required from Shopify responses for the Ramp API to sync orders, sync
current stock and post back inventory levels. These values cannot be null, empty or set as
any value that does not exist in Shopify.
Shopify Field | Ramp Field |
Notes |
location.id | PlaceCode | Used to query SKUs by location; mapped for Location Integration |
products[0].variants[0].sku | SkuNumber | Required for SKU synchronization with Ramp |
products[0].variants[0].inventory_item_id | SkuExtendedPropertyList.Inventory Id | Identifier to update inventory levels per location |
purchase_orders[0].id | Comments | Mapped for Purchase Order Integration |
purchase_orders[0].number | CustomerOrderNumber | Always has a value; used for order synchronization |
Product Mapping in Ramp
Each uniquely tagged product type is known as a SKU in the Ramp platform, and the product
integrator maps the information under the product details. In addition to these standard
fields, meta fields are also available and can be synced across as well as part of the product
integrator
Ramp Field | Shopify Field | Notes |
Name | Name, Title | Combines Shopify's Name and Title fields into the Ramp SKU name field. |
Description | Name, Title |
Includes both Shopify Name and Title fields to populate the SKU description |
SkuNumber | Variant.id | Unique identifier for the product variant within Shopify, directly mapped to Ramp SKU |
BarcodeNumber | Barcode | If GTIN is not provided, Ramp generates a barcode using internal logic to maintain uniqueness. |
ItemCode | Id | Shopify Product ID mapped to the Ramp ItemCode for internal reference |
CompanyPrefix | - | If GTIN barcodes are unavailable, Ramp generates a prefix for internal barcode formatting |
ItemReference | - | Auto-generated in Ramp if no GTIN value is available, ensuring SKU traceability |
SkuExtendedPropertyList.BarcodePrint | Barcode | Captures barcode details for products and variants for print and display purposes |
SkuExtendedPropertyList.Option1 | Option1 | Maps the first product option (e.g., Color) to an extended property in Ramp. |
SkuExtendedPropertyList.Option2 | Option2 | Maps the second product option (e.g., Size) to an extended property in Ramp |
SkuExtendedPropertyList.Option3 | Option3 | Maps the third product option (e.g., Material) to an extended property in Ramp |
SkuExtendedPropertyList.ProductType | ProductType | Reflects Shopify's Product Type field, used for categorization and reporting in Ramp |
SkuExtendedPropertyList.Vendor | Vendor | Maps to the Vendor field in Shopify to maintain supplier or manufacturer details in Ramp |
SkuExtendedPropertyList.Handle | Handle | Shopify Product Handle used for consistent product identification across systems. |
SkuExtendedPropertyList.InventoryItem Id | Inventory_item_id | Maps the Inventory Item ID, required for inventory updates and stock synchronization in Ramp |
Additional Notes
- Combining Fields
- Fields like Name and Title are combined where necessary for more complete product descriptions in Ramp.
- Barcode Logic
- If Shopify Barcode values are absent or invalid (i.e. not a GTIN), Ramp generates a unique barcode number to maintain consistency and ensure traceability. This is used to encode the RFID tags.
- TODO: add information about the meta field for security related products
- Extended Properties
- Ramp supports additional fields such as Option1, Option2, and Option3 to map product attributes (e.g., Color, Size, Material).
- These fields are essential for variants and advanced product configurations.
- Inventory Item ID
- Shopify's Inventory_item_id is critical for real-time inventory updates and product synchronization. This ensures accurate stock levels across platforms.
- Vendor and ProductType
- Fields like Vendor and ProductType are included for classification and supplier management, which are valuable for reporting and integrations with third-party tools.
- Meta Fields
- Ramp allows for synchronization of custom meta fields that businesses may configure in Shopify for specific workflows or reporting needs.
Stocktake Integration
When a stocktake is performed using the RFID handheld, it will be synced back to Shopify once it has been completed.
Ramp Field | Shopify Field | Notes |
Inventory Item ID | Inventory_item_id | Unique ID in Shopify for each inventory item. It is matched to Ramp’s Inventory Item ID. |
PlaceCode | Location_id | Refers to the Shopify Location ID where the inventory is being updated. |
Quantity | Available | Represents the available stock for each SKU, as counted during the Ramp stocktake. |
Additional Notes
- Stocktake Completion in Ramp
- Once a stocktake is completed in Ramp, the system generates a list of
inventory updates containing:- SKU/Inventory Item ID
- Location ID (PlaceCode)
- Available Quantity
- Once a stocktake is completed in Ramp, the system generates a list of
- Inventory Item ID Mapping
- Shopify’s inventory_item_id is retrieved from the product variant details and
stored in Ramp as an extended property for each SKU. - This ensures a consistent and direct match between Shopify and Ramp during
synchronization.
- Shopify’s inventory_item_id is retrieved from the product variant details and
- Handling Missing Inventory Counts
- If a stocktake only includes counted items, SKUs not present in the stocktake
are assumed to have a stock level of 0. - To account for this, Ramp makes an additional call to Shopify to retrieve
current stock counts and ensures all SKUs in the store are updated:- SKUs counted during the stocktake receive their available quantity.
- SKUs not counted are explicitly updated to 0 to avoid discrepancies.
- If a stocktake only includes counted items, SKUs not present in the stocktake
- Batching and Rate Limits
- Shopify imposes API rate limits, so inventory updates are sent in batches to
avoid throttling. - Ramp processes stocktake updates in chunks of up to 1,000 SKUs per
request.
- Shopify imposes API rate limits, so inventory updates are sent in batches to
- Error Handling
- Any errors during synchronization (e.g., missing inventory_item_id or invalid
location_id) are logged for review. - Failed updates are retried based on the Ramp integration error-handling
mechanism.
- Any errors during synchronization (e.g., missing inventory_item_id or invalid
Current Stock Integration
As part of the stocktake integrator, the current stock integrator allows the service to sync
across the current inventory levels.
When a stocktake is performed, you can view the variance report.
This feature also allows you to set up minimum scan requirements. For example, a stocktake can be required to achieve a maximum variance of 2% before it can be completed.
Ramp Field | Shopify Field | Notes |
Place | inventoryItem.inventoryLevel.location.legacyResourceId | |
Sku | inventoryitem.legacyResourceI d |
|
CurrentCount | (inventoryItem.inventoryLevel.quantities[0].quantity) |
Keon Integration
The Keon–Shopify integration connects Keon’s security systems with your Shopify store to synchronise stock information in real time. This integration helps link in-store security events with product data, providing greater visibility into inventory movement and reducing potential stock loss.
For more details, refer to the article Setting up Keon Security System.
To learn more about how Keon’s security system can help protect your inventory and minimise loss, please contact support@ramp.com.au.