Summary
This article documents how the Zuper integration writes product and inventory data from iPaaS.com to Zuper. Three mapping collections work together in this direction:
Add/Update Zuper Product FROM iPaaS.com creates and updates the product record in Zuper (name, product number, type, category, pricing, description, and inventory-tracking settings).
Add Zuper Product Inventory FROM iPaaS.com is a child of the product collection. It writes the product's per-location stock quantity and serial numbers as part of the same product transfer.
Update Zuper Product Inventory FROM iPaaS.com is a standalone collection that pushes stock-level changes to Zuper without re-sending the whole product.
All three collections write in one direction only: the source is iPaaS.com and the destination is Zuper. None of them have a mapping filter, so every dispatched record is processed.
ID Format
Manual Sync ID Format
The Manual Sync ID is the iPaaS.com product identifier. Example: 197689.
External ID Format
After a successful transfer, iPaaS.com records the Zuper product_uid as the external ID on a dedicated external-ID record, which routes later updates to the same Zuper product. Example product_uid: 2155ce90-e915-11ed-9b71-59062fd59949.
Deleted Record Support
Deleted records are not supported in this direction. These collections create and update Zuper products and inventory only; they do not delete Zuper products, locations, or stock records.
Mapping Collection Status
Enabled.
Trigger Events: transfers are driven by iPaaS.com outbound triggers and Manual Sync. Subscribe the relevant product Add and Update outbound triggers (and the inventory Update trigger for the standalone stock-update collection) under Outbound Data Flows in the subscription configuration. Manual Sync is available at any time from the iPaaS.com Manual Sync page. These collections do not use Zuper webhooks in this direction.
Duplicate or Conflicting Mappings
Two inventory collections can both write stock to Zuper, and they overlap:
Add Zuper Product Inventory FROM iPaaS.com writes inventory as part of a product transfer. It runs only when the parent product collection transfers a product.
Update Zuper Product Inventory FROM iPaaS.com updates stock on its own, outside of a product transfer.
Because both can push a stock level to the same product/location, decide which path should drive stock updates in your configuration so the same change is not sent twice.
Collision Handling
Collision handling is not used by any of these collections. Products, inventory, and locations are matched by their saved external ID (and, before an external-ID link exists, by their source identifier).
Supported Child Collections
Add Zuper Product Inventory FROM iPaaS.com: writes the product's per-location inventory quantities (and serial numbers) to Zuper as part of the product transfer. It is linked to the product it belongs to and does not run on its own.
Zuper Caveats
Product category must exist — product creation fails without it. Creating a Zuper product requires a valid product category. The category identifier mapped on the product collection must be a real category in your Zuper account, or the transfer is rejected and no product is created.
Product/location must exist for inventory updates. The standalone inventory-update collection resolves the target Zuper product and location from their saved links before updating stock. If either the product or the location has not been transferred to Zuper yet, the stock update cannot be applied. Likewise, the inventory child collection requires the location to already exist in Zuper.
Product type values: the product type is translated to Zuper's values (PRODUCT, SERVICE, PARTS, BUNDLE). Values not listed in the lookup translation table are passed through unchanged and must be valid Zuper product types.
iPaaS.com Caveats
The product record must exist in iPaaS.com before it can be dispatched to Zuper.
For inventory to transfer with the product, both the parent product and the location must be present in iPaaS.com.
For a standalone stock update, the product and location must have already been transferred to Zuper before their inventory can be updated.
Setup Requirements
Outbound triggers: under Outbound Data Flows in the subscription configuration, subscribe the relevant product Add and Update triggers, and the inventory Update trigger for standalone stock updates. No automatic transfers occur until those outbound subscriptions are enabled.
Product category configured in Zuper: confirm that the product category referenced by the product collection exists in your Zuper account, or replace it with an existing category, before enabling the collection. Product creation fails without a valid category.
API key authentication: the integration authenticates to Zuper with an API key.
Installation: for full setup steps, see the Zuper integration Installation Instructions article.
Integration Flow
A product is added or updated in iPaaS.com, or a Manual Sync is started for a specific product identifier.
A subscribed outbound trigger (or Manual Sync) dispatches the product through the Add/Update Zuper Product FROM iPaaS.com collection.
On a new record, the integration creates the product with a POST to the Zuper Product endpoint, then reads it back to confirm the assigned product identifier. On an update, the integration writes to the existing Zuper product by its identifier.
As part of the same product transfer, the Add Zuper Product Inventory FROM iPaaS.com child collection resolves each location's Zuper link and writes the per-location stock quantity (and serial numbers, when present).
iPaaS.com records the Zuper product_uid as the external ID so later changes route to the same Zuper product.
When stock changes independently of the product, a subscribed inventory Update trigger (or Manual Sync) dispatches the change through the Update Zuper Product Inventory FROM iPaaS.com collection, which resolves the target product and location and sends the new quantity to the Zuper stock-update endpoint.
Mappings
Add/Update Zuper Product FROM iPaaS.com
Creates and updates the Zuper product record with its name, product number, type, category, pricing, description, and inventory-tracking settings.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Zuper) | Description |
Field | Sku | ProductId | Sets the product number in Zuper from the iPaaS.com Sku. Recommended so the Zuper product can be traced back to its iPaaS.com source. |
Field | Name | Name | Sets the product name in Zuper. Required: Zuper rejects a new product without a name. |
Lookup Translation | ProductType | ProductType | Lookup Translation: Zuper Product Type From iPaaS. Translates the iPaaS.com product type to a Zuper product type. Values not in the table below are passed through unchanged and must be valid Zuper product types. |
Static | "2af98360-f3ec-11ed-b9ff-2b06c46222f7" | Category | Sets the Zuper product category. Required hard prerequisite placeholder: this fixed category identifier must be a real category in your Zuper account. Confirm it matches an existing category or replace it before enabling the collection; if the category does not exist in Zuper, the transfer is rejected and no product is created. |
Field | SalePrice | Price | Sets the selling price of the product in Zuper. Recommended. |
Field | DefaultPrice | PurchasePrice | Sets the purchase price of the product in Zuper. Recommended. |
Field | Description | Description | Sets the product description in Zuper. Optional. |
Dynamic Formula | Type | TrackQuantity | Sets whether Zuper tracks inventory quantity for the product; enabled for physical products and disabled otherwise. Required for creating a Zuper product. Formula: |
Dynamic Formula | Id | Quantity | Sets the starting quantity in Zuper by totaling the product's available inventory across locations in iPaaS.com. Optional. Formula: |
Static | "false" | HasCustomTax | Indicates whether the product uses a custom tax in Zuper. Set to false by default so products use Zuper's standard tax handling; change it if custom taxes apply per product. |
Static | "true" | IsAvailable | Marks the product as available in Zuper. Set to true by default so transferred products are active; change it if products should be created as unavailable. |
Lookup Translation Tables
Lookup Translation: Zuper Product Type From iPaaS
Source Value (iPaaS.com) | Destination Value (Zuper) |
Physical | PRODUCT |
Virtual | SERVICE |
Add Zuper Product Inventory FROM iPaaS.com
Supplies the per-location inventory quantity and serial numbers written to Zuper as part of the parent product transfer. This is a child of the product collection and does not run on its own.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Zuper) | Description |
Dynamic Formula | LocationId | Location | Resolves the Zuper product location the inventory belongs to, using the location's saved link to Zuper. The location must already exist in Zuper. Required. Formula: |
Field | QtyAvailable | Quantity | Sets the available stock quantity for the product at the location in Zuper. Recommended. |
Dynamic Formula | CustomFields | SerialNos | Supplies the serial numbers stored for the product at the location, read from the Serial Numbers custom field on the source record. Optional; applies only when the source record carries serial numbers. Formula: |
Update Zuper Product Inventory FROM iPaaS.com
Updates the stock quantity of a product at a location in Zuper without re-sending the whole product. The product and the location must already exist in Zuper.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Zuper) | Description |
Dynamic Formula | ParentId | ProductId | Resolves the Zuper product the stock update applies to, using the product's saved link to Zuper. Required: the update cannot be applied without a product identifier, and the product must already exist in Zuper. Formula: |
Dynamic Formula | LocationId | Location | Resolves the Zuper product location the stock quantity applies to, using the location's saved link to Zuper. The location must already exist in Zuper. Required for the update. Formula: |
Field | QtyAvailable | Quantity | Sets the available stock quantity for the product at the location in Zuper. Required for a meaningful stock update. |
Error Handling
For the specific errors Zuper can return during product and inventory transfers, and what each one means, see the Zuper integration Error Messages article.
Testing & Validation
Test Scenarios
Create a new product in iPaaS.com with a valid category and confirm it is created in Zuper with the correct name, product number, type, category, pricing, and description.
Update an existing product in iPaaS.com and confirm the change is written to the same Zuper product (matched by the saved external ID).
Create a product whose iPaaS.com type is Physical and confirm it maps to the Zuper PRODUCT type with inventory tracking enabled; create a Virtual product and confirm it maps to SERVICE with tracking disabled.
Attempt a product transfer with a category identifier that does not exist in Zuper and confirm the transfer is rejected and no product is created.
Transfer a product that has inventory across one or more locations and confirm the per-location quantities (and serial numbers, when present) appear in Zuper via the child collection.
Change stock in iPaaS.com for a product and location that already exist in Zuper, dispatch it through the standalone update collection, and confirm the new quantity is reflected in Zuper.
Verify that only one inventory path drives stock updates so the same change is not sent twice.
Validation Checklist
The relevant product Add and Update outbound triggers (and the inventory Update trigger) are subscribed under Outbound Data Flows.
The product category referenced by the product collection exists in your Zuper account.
Referenced locations have already been transferred to Zuper so their inventory links can be resolved.
New products appear in Zuper with the expected name, product number, type, category, pricing, and availability.
Product type translation produces valid Zuper product types; any values outside the translation table are valid Zuper types.
Per-location inventory quantities and serial numbers appear correctly in Zuper.
Standalone stock updates apply to the correct existing product and location.
The Zuper product_uid is saved as the external ID so later updates route to the same product.
Additional Notes
All three collections write in a single direction: iPaaS.com is the source and Zuper is the destination.
None of these collections use a mapping filter, so every dispatched record is processed.
Inventory tracking on the product is derived from the product type: physical products enable Zuper quantity tracking, and other types disable it.
The standalone stock-update collection only updates quantity; it does not create the product or the location.
