iPaaS.com to Shopify Product Mapping Documentation
This documentation covers the mapping collections that write iPaaS.com Products and their related data — inventory, options, option values, variants, and variant inventory — to Shopify (the FROM iPaaS.com direction). Separate parent collections handle the Add, Update, and Delete paths; each Add/Update parent has child collections for inventory, options (and their values), and variants (and their inventory). Together they create, update, and delete products in Shopify from iPaaS.com source data.
The opposite direction — importing Shopify products into iPaaS.com — is covered in Shopify to iPaaS.com Product Mapping Documentation.
ID Format
Manual Sync ID: the iPaaS.com Product id. Enter it on the iPaaS.com Manual Sync page to send that product to Shopify.
External ID: after a successful create, the Shopify product id is saved as the external-id link so later updates edit the same Shopify product. Variants and variant inventory resolve their Shopify ids from their own external-id links.
Deleted Record Support
Product deletion is supported. The Delete Shopify Product FROM iPaaS.com collection removes the linked Shopify product (skipping the gift-card placeholder SKU SHOPIFY-GC). Variant deletion is supported separately by the Delete Shopify Product Variant FROM iPaaS.com collection.
Mapping Collection Status
All collections in this direction are Enabled.
Trigger events: Product Created, Updated, or Deleted in iPaaS.com, subscribed under the subscription's Outbound Data Flows. Manual Sync is always available.
Custom Field Support
In the FROM iPaaS.com direction, iPaaS.com custom-field values are read into the transfer with the formula:
GetCustomFieldValue(CustomFields, "[CustomFieldName]")
This is used in several Dynamic Formula mappings (for example to drive "Requires Shipping", "Inventory Tracked", and channel selection). The default template also includes sample custom-field mappings (SH_Custom_Product, SH_Custom_Product2, SH_Custom_Product3) carried from the source subscription — review and replace or remove them to match your store's custom fields.
Duplicate or Conflicting Mappings
These FROM iPaaS.com collections write products to Shopify. The companion Add/Update Shopify Product TO iPaaS.com collection (and its children) import products from Shopify in the other direction. The Add and Update FROM-iPaaS parents split the create and update paths and do not conflict with each other.
Two standalone inventory collections — Update Shopify Product Inventory (Standalone) FROM iPaaS.com and Update Shopify Product Variant Inventory (Standalone) FROM iPaaS.com — perform the same inventory writes as the inventory child collections, but on their own (for inventory-only changes). Avoid driving the same inventory level through both the child and standalone paths in a way that double-processes.
Supported Child Collections
Add path — Parent: Add Shopify Product FROM iPaaS.com
Add Shopify Product Inventory FROM iPaaS.com (filter: location must exist in Shopify)
Add Shopify Product Option FROM iPaaS.com
Add Shopify Product Option Values FROM iPaaS.com
Add Shopify Product Variant FROM iPaaS.com
Add Shopify Product Variant Inventory FROM iPaaS.com
Update path — Parent: Update Shopify Product FROM iPaaS.com
Update Shopify Product Inventory FROM iPaaS.com
Update Shopify Product Option FROM iPaaS.com
Update Shopify Product Option Values FROM iPaaS.com
Update Shopify Product Variant FROM iPaaS.com
Update Shopify Product Variant Inventory FROM iPaaS.com
Standalone collections (no parent): Delete Shopify Product FROM iPaaS.com, Delete Shopify Product Variant FROM iPaaS.com, Update Shopify Product Inventory (Standalone) FROM iPaaS.com, Update Shopify Product Variant Inventory (Standalone) FROM iPaaS.com.
System Caveats
Shopify Caveats
Shopify requires a title, price, and SKU to create a product.
During an update, sending media deletes and re-uploads the product's existing images; for products with many variant images, consult your MISP about sending media only when it changes, to conserve Shopify API resources. Returning null from a MediaUrls mapping preserves existing images.
Categories must already exist in Shopify; categories that do not exist are not created and are simply not assigned.
Gift card products are excluded (the
SHOPIFY-GCplaceholder SKU is filtered out of Add, Update, and Delete).
iPaaS.com Caveats
Dynamic Formulas must resolve correctly, or the line fails.
The Add parent enforces SKU uniqueness via its mapping filter — a product whose SKU collides with an existing Shopify product is skipped and must be repaired manually.
Inventory child/standalone collections require the target Shopify location to exist.
Setup Requirements
Enable the Add Shopify Product FROM iPaaS.com and/or Update Shopify Product FROM iPaaS.com parents and the child collections you need.
Configure the Lookup Translations for product Status and InventoryPolicy.
Subscribe to the iPaaS.com Product Create / Update / Delete outbound triggers under Outbound Data Flows.
The Shopify connection must include the
write_productsscope (andwrite_inventoryfor inventory collections).Review and replace the placeholder values flagged below before production use.
Integration Flow
An iPaaS.com Product create/update/delete (or a manual sync) dispatches the matching parent collection.
Core product attributes are written to Shopify; on create, the Shopify product id is saved as the external id.
Child collections write inventory, options (and their values), and variants (and their inventory).
The Add parent's filter blocks duplicate-SKU and gift-card products before transfer.
Mappings
Add Shopify Product FROM iPaaS.com (Parent) — Collection 284601
Mapping filter (SKU uniqueness + gift-card exclusion):
if (Sku == "SHOPIFY-GC") {return false;}
if (TrackingMethod == "Product") {
var value = await ValidateProductSkuCountAsync(Sku);
if (value == false ) { return false; } else { return true; }
} else if (TrackingMethod == "Variant") {
if (Variants != null && Variants.count > 0) {
var value = await ValidateProductSkuCountAsync(Variants[0].Sku);
if (value == false) { return false } else { return true; }
}
}The product is skipped if its SKU is the gift-card placeholder SHOPIFY-GC, or if the SKU already exists on another Shopify product (the first variant's SKU is checked for variant products). A duplicate-SKU product must be repaired manually before it transfers.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Shopify) | Notes |
Field | Sku | SH_Custom_Product3 | Placeholder — sample custom field; replace or remove. |
Field | C5_Custom_Product | SH_Custom_Product | Placeholder — sample custom fields; replace or remove. |
Dynamic Formula |
| SH_Custom_Product2 | Placeholder — sample custom field; replace or remove. |
Field | Weight | Weight | |
Lookup Translation | Inventory Policy (custom) | InventoryPolicy |
|
Field | Name | Title | Required. |
Dynamic Formula |
| BodyHtml | Recommended. |
Static |
| Vendor | Change if a different vendor is required. |
Field | Type | ProductType | |
Dynamic Formula | hardcoded sample image string | MediaUrls | Placeholder — replace with real media, or return null to preserve images. |
Dynamic Formula |
| InventoryLevel_RequiresShipping | Replaces deprecated |
Dynamic Formula |
| InventoryLevel_Tracked | Replaces deprecated |
Static |
| DisableChannelAssignment | true leaves existing Shopify channel assignments untouched. |
Dynamic Formula |
| ChannelIds | Placeholder — hardcoded channels; the early return skips the custom-field logic below it. Replace the list or remove the early return. |
Lookup Translation | iPaaS.com product status | Status |
|
Field | Sku | SKU | Required; must be unique (enforced by the filter). |
Field | DefaultPrice | Price | Required. |
Field | Barcode | Barcode | Recommended. |
Dynamic Formula |
| Categories | Categories must already exist in Shopify. |
Update Shopify Product FROM iPaaS.com (Parent) — Collection 284610
Mapping filter: Sku != "SHOPIFY-GC" — skips the gift-card placeholder; no duplicate-SKU check (the product is already linked). Mappings mirror the Add parent's non-placeholder product fields (Weight, InventoryPolicy, Title, BodyHtml, Vendor, ProductType, MediaUrls, RequiresShipping, Tracked, DisableChannelAssignment, ChannelIds, Status, SKU, Price, Barcode, Categories). The MediaUrls and ChannelIds placeholders apply here as well.
Delete Shopify Product FROM iPaaS.com — Collection 284609
Mapping filter: Sku != "SHOPIFY-GC". No field mappings — acts on the linked Shopify product id. Deletes the product and its variants/options/inventory in Shopify.
Add Shopify Product Inventory FROM iPaaS.com (Child) — Collection 284642
Mapping filter: GetExternalId(LocationId, "Location", SpaceportSystemId) != null — skips inventory for any location not yet present in Shopify.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Shopify) |
Field | QtyAvailable | Available |
Dynamic Formula |
| LocationId |
(The Update Shopify Product Inventory FROM iPaaS.com child, 284646, maps the same two fields without the filter.)
Add Shopify Product Option FROM iPaaS.com (Child) — Collection 284643
Mapping Type | Source Field (iPaaS.com) | Destination Field (Shopify) |
Field | OptionName | Name |
Field | Order | Position |
(The Update Shopify Product Option FROM iPaaS.com child, 284645, maps the same two fields.)
Add Shopify Product Option Values FROM iPaaS.com (Option's Child) — Collection 284650
Mapping Type | Source Field (iPaaS.com) | Destination Field (Shopify) |
Field | Order | Order |
Field | Value | OptionValue |
(The Update Shopify Product Option Values FROM iPaaS.com child, 284652, maps the same two fields.)
Add Shopify Product Variant FROM iPaaS.com (Child) — Collection 284644
Mapping Type | Source Field (iPaaS.com) | Destination Field (Shopify) | Notes |
Dynamic Formula | hardcoded sample image string | MediaUrls | Placeholder — replace with real media, or return null. |
Dynamic Formula |
| VariantOption | |
Dynamic Formula |
| InventoryLevel_RequiresShipping | |
Dynamic Formula |
| InventoryLevel_Tracked | |
Dynamic Formula |
| Price | Required; first non-null price. |
Field | Sku | SKU | Required. |
Static |
| FulfillmentService | |
Field | Barcode | Barcode | |
Field | Weight | Weight | Paired with the |
Static |
| WeightUnit | Change if a different unit is used. |
Update Shopify Product Variant FROM iPaaS.com (Child) — Collection 284647
Like the Add Variant child, plus it resolves the existing Shopify variant id and applies the inventory-policy lookup:
Mapping Type | Source Field (iPaaS.com) | Destination Field (Shopify) | Notes |
Dynamic Formula | hardcoded sample image string | MediaUrls | Placeholder — replace; images are deleted and re-uploaded on update. |
Dynamic Formula |
| VariantOption | |
Dynamic Formula |
| InventoryLevel_RequiresShipping | |
Dynamic Formula |
| InventoryLevel_Tracked | |
Dynamic Formula |
| Id | Required; resolves the existing Shopify variant. |
Dynamic Formula |
| Price | Required. |
Field | Sku | SKU | Required. |
Lookup Translation | Inventory Policy (custom) | InventoryPolicy | |
Static |
| FulfillmentService | |
Field | Barcode | Barcode | |
Field | Weight | Weight |
Variant Inventory children — Collections 284651 (Add) / 284653 (Update)
Mapping Type | Source Field (iPaaS.com) | Destination Field (Shopify) |
Dynamic Formula |
| LocationId |
Field | QtyAvailable | Available |
Standalone Variant Inventory — Collection 284613
The standalone variant-inventory update additionally resolves the Shopify variant inventory id from the external-id link:
Mapping Type | Source Field (iPaaS.com) | Destination Field (Shopify) |
Dynamic Formula |
| Id |
Dynamic Formula |
| LocationId |
Field | QtyAvailable | Available |
Lookup Translations
SH Product Presale From iPaaS (InventoryPolicy)
Source (iPaaS.com) | Destination (Shopify) |
BUY NOW | CONTINUE |
PRE ORDER | DENY |
SH Product Status From iPaaS
Source (iPaaS.com) | Destination (Shopify) |
Active | active |
Disabled | draft |
Discontinued | archive |
Preorder | draft |
Confirm both lookups are configured for your store's terms.
Error Handling
Duplicate SKU: the Add parent's filter skips duplicate-SKU products; they must be repaired manually.
Invalid category: categories must resolve to existing Shopify collections, or they are not assigned.
Missing required fields: Title, Price, and SKU must be present to create a product.
Unresolved location: the Add Inventory child filters out locations not present in Shopify; other inventory collections fail the line if the location does not resolve.
Testing & Validation
Product creation: product appears in Shopify Admin with correct title, SKU, and price.
Option / variant sync: options (e.g. Color/Size) and variants are created with correct SKUs and prices.
Inventory sync: quantities match the iPaaS.com source per location.
Placeholder review: confirm MediaUrls, ChannelIds, FulfillmentService, WeightUnit, and the sample custom-field mappings have been replaced or removed before production.
Deletion: deleting an iPaaS.com product removes the linked Shopify product (non-gift-card).
Additional Notes
Child mappings must be enabled alongside the parent for full functionality.
All static and placeholder values should be reviewed and adjusted for production (see the placeholder flags above).
Related Documents
Shopify to iPaaS.com Product Mapping Documentation — the TO iPaaS.com direction (importing products from Shopify).
Add Shopify Product FROM iPaaS.com / Update Shopify Product FROM iPaaS.com — mapping collection descriptions and notes.
Add/Update Shopify Location FROM iPaaS.com — locations must exist in Shopify for inventory to transfer.
