Skip to main content

iPaaS.com to Shopify Product Mapping Documentation

Create Shopify products from iPaaS source data

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-GC placeholder 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_products scope (and write_inventory for inventory collections).

  • Review and replace the placeholder values flagged below before production use.

Integration Flow

  1. An iPaaS.com Product create/update/delete (or a manual sync) dispatches the matching parent collection.

  2. Core product attributes are written to Shopify; on create, the Shopify product id is saved as the external id.

  3. Child collections write inventory, options (and their values), and variants (and their inventory).

  4. 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

GetCustomFieldValue(CustomFields, "C5_Custom_Product")

SH_Custom_Product2

Placeholder — sample custom field; replace or remove.

Field

Weight

Weight

Lookup Translation

Inventory Policy (custom)

InventoryPolicy

BUY NOWCONTINUE, PRE ORDERDENY.

Field

Name

Title

Required.

Dynamic Formula

Description

BodyHtml

Recommended.

Static

ipaas-integration

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

GetCustomFieldValue(..., "Requires Shipping") (default true for physical)

InventoryLevel_RequiresShipping

Replaces deprecated requires_shipping.

Dynamic Formula

GetCustomFieldValue(..., "Inventory Tracked") (default true)

InventoryLevel_Tracked

Replaces deprecated inventory_management.

Static

false

DisableChannelAssignment

true leaves existing Shopify channel assignments untouched.

Dynamic Formula

GetChannelIdsByNames("Point Of Sale,Online Store")

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

Activeactive, Disableddraft.

Field

Sku

SKU

Required; must be unique (enforced by the filter).

Field

DefaultPrice

Price

Required.

Field

Barcode

Barcode

Recommended.

Dynamic Formula

ConvertCategoriesToShopifyIds(Categories)

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

GetExternalId(LocationId, "Location", SpaceportSystemId)

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

SetVariantOptionAndValues(Options)

VariantOption

Dynamic Formula

GetCustomFieldValue(..., "Requires Shipping")

InventoryLevel_RequiresShipping

Dynamic Formula

GetCustomFieldValue(..., "Inventory Tracked")

InventoryLevel_Tracked

Dynamic Formula

CoalesceToDecimal(DefaultPrice, SalePrice, Parent.DefaultPrice, Parent.SalePrice)

Price

Required; first non-null price.

Field

Sku

SKU

Required.

Static

manual

FulfillmentService

Field

Barcode

Barcode

Field

Weight

Weight

Paired with the POUNDS weight unit.

Static

POUNDS

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

SetVariantOptionAndValues(Options)

VariantOption

Dynamic Formula

GetCustomFieldValue(..., "Requires Shipping")

InventoryLevel_RequiresShipping

Dynamic Formula

GetCustomFieldValue(..., "Inventory Tracked")

InventoryLevel_Tracked

Dynamic Formula

GetExternalIdAsync(Id, "Product Variant", SpaceportSystemId)

Id

Required; resolves the existing Shopify variant.

Dynamic Formula

CoalesceToDecimal(DefaultPrice, SalePrice, Parent.DefaultPrice, Parent.SalePrice)

Price

Required.

Field

Sku

SKU

Required.

Lookup Translation

Inventory Policy (custom)

InventoryPolicy

Static

manual

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

GetExternalId(LocationId, "Location", SpaceportSystemId)

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

GetExternalIdAsync(Id, "Product Variant Inventory", ...) then take the prefix before \| as a 64-bit integer

Id

Dynamic Formula

GetExternalIdAsync(LocationId, "Location", ...)

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.

Did this answer your question?