Summary
A product that comes in more than one form — for example a shirt in several sizes and colors — can be created and updated in Clover from an iPaaS.com product record through Manual Sync and through automatic outbound transfers. This documentation covers the variant flow: the parent collection establishes a Clover item group for the product, and its child collections build out the individual variant items, the option groups and their values, the option assignments on each variant, and each variant's stock level. Products that carry no variant data are excluded from this flow and are handled by the separate simple product collection.
ID Format
Manual Sync ID Format
As the parent of the variant tree, this collection accepts a Manual Sync key. To transfer one product on demand, enter the iPaaS.com product identifier as the record key. For example, a product named White T-shirt with iPaaS.com identifier 10001 is entered as 10001, and the collection resolves that value to the matching Clover item group.
Each child collection can also be keyed directly through Manual Sync using its own iPaaS.com identifier — the variant identifier for the variant collection, the variant inventory identifier for variant inventory, the option identifier for the option group collection, and so on — but in normal operation the children are driven by the parent flow rather than keyed by hand.
External ID Format
The integration keeps a dedicated external-identifier record that links each iPaaS.com product to its Clover item group, and separate external-identifier records that link each variant to its Clover item. Because of these links, the same product resolves to the same Clover item group on repeat transfers and is updated in place rather than duplicated, and the child collections resolve the correct Clover item group and variant items from the parent's linked identifiers.
Deleted Record Support
At the time this documentation was written, outbound delete is not supported for the product catalog. Removing a product, variant, option group, or option value in iPaaS.com does not remove the corresponding record from the Clover catalog. Delete mappings are not included in the default templates, and deletions will not propagate to Clover. If you need to remove a catalog record from Clover, make that change directly in Clover. See the Clover Integration Known Limitations article for the full detail on catalog deletions and option-definition updates.
Mapping Collection Status
Status: Enabled.
Trigger Events: The transfer runs on demand through Manual Sync at any time, and it runs automatically when a product that has variants is added or updated in iPaaS.com and the relevant iPaaS.com outbound triggers (Outbound Data Flows) are enabled for the product data type.
Duplicate or Conflicting Mappings
Conflicting collections
This collection writes products that have variants to Clover as item groups. A separate collection, Add/Update Clover Product FROM iPaaS.com, handles products that have no variants and writes them as simple Clover items. The two are mutually exclusive by design: the variant flow processes products that have variants, and the simple product flow processes products that do not. Keep both enabled so that every product reaches Clover through the correct path, and do not point another active collection at the same Clover item group, so that records do not overwrite one another. Review your active collections if a Clover item group appears to change unexpectedly.
SKU duplicate risk
Because the product is matched to a Clover item group by its SKU, two iPaaS.com products that share the same SKU resolve to the same Clover item group and overwrite each other. Keep the SKU unique per product to prevent this. A missing or duplicated SKU can also cause a group to be created incorrectly or to link to the wrong item group; the integration reports this with a warning that a duplicate product may result. See the Error Handling section below and the Clover Error Messages article for the exact message text.
Collision handling
Configurable collision handling is not offered for this flow. The integration prevents duplicates by matching on SKU and linking through the dedicated external-identifier records rather than by a subscriber-selectable collision-resolution method. Keeping SKUs unique per product is the way to avoid conflicting writes.
Supported Child Collections
The variant tree is assembled by this parent collection together with five child collections, arranged as a nested hierarchy. The parent establishes the Clover item group; the children build out the variants, their inventory and option assignments, and the product-level option groups and values.
Add/Update Clover Product Variant FROM iPaaS.com — transfers each individual variant as a sellable item within the item group. It is itself the parent of two children:
Add/Update Clover Product Variant Inventory FROM iPaaS.com — sets the on-hand stock quantity for each variant item.
Add Clover Product Variant Option FROM iPaaS.com — assigns option values to each variant item.
Add Clover Product Option FROM iPaaS.com — creates the product-level option groups (such as Size or Color) on the item group. It supports one child:
Add Clover Product Option Value FROM iPaaS.com — adds the individual values (such as Small, Medium, Large) within each option group.
System Caveats
Clover Caveats
When Clover signals that requests are arriving too quickly, the integration automatically reschedules and retries the in-progress transfer, so no subscriber action is needed. Clover organizes a multi-variant product as an item group: a parent grouping that owns a set of option groups and a set of individual sellable items, one per variant combination. The product must resolve to the correct item group by SKU for its variants and options to attach correctly, and Clover expects a valid SKU, name, and price on each variant item. An option value can only be assigned to a variant when the corresponding option group and value already exist for the product. Stock is only retained by a Clover item when Track Stock is enabled on that item; if Track Stock is off, an inventory transfer completes but the quantity is not held. Subscribers should validate the resulting item group, its variants, options, and stock in a staging environment before relying on them in production.
iPaaS.com Caveats
The iPaaS.com product SKU is the key that ties the product to its Clover item group, and it must remain unique per product. A product must carry one or more variants to be eligible for this flow; a product with no variants is routed to the simple product flow instead. Each variant must carry a SKU — used both as the Clover item name and as the item SKU — and a price that resolves to a valid number so it can be converted to cents. Each variant inventory record must carry a location identifier, because stock is written for a specific Clover location, and the available stock must resolve to a number so the total can be calculated and rounded down. Each option group and option value must carry a name for it to be created in Clover. Errors are reported in the Dashboard under Integration Monitoring and the Error Logs.
Integration Flow
The variant tree is written to Clover in stages rather than in a single call, because each stage depends on the one above it existing first. Subscribers do not run these stages by hand; enabling the parent flow and its children lets the integration assemble the tree in the correct order.
Read the product and apply the filter. The integration reads the iPaaS.com product and evaluates the mapping filter. Only a product that has one or more variants passes; a product with no variant data is skipped here and handled by the separate simple product collection.
Match or create the Clover item group by SKU. The parent collection matches the product to an existing Clover item group by its SKU. If no matching group exists, the integration creates it first, automatically, before any variants or options are attached. Subscribers do not need to pre-create the group.
Create or update the variant items. For each variant on the product, the variant collection writes a sellable item into the item group, carrying the variant's name, SKU, and price. The price is converted to cents automatically as part of this write.
Create the option groups and their values. The option collection creates the product-level option groups (Size, Color) on the item group, and its child value collection adds the individual values (Small, Medium, Large; Red, Blue) under each group.
Assign option values to each variant. With the variant items and the option values in place, the variant option collection assigns the specific option value that defines each variant within its group, so a shopper sees each variant as the correct combination.
Set each variant's stock. The variant inventory collection resolves the Clover item for each variant, totals the variant's on-hand inventory into a single whole number, and writes that quantity to the item for the given location. Stock is retained only when Track Stock is enabled on the item.
To enable automatic transfers, open the subscription's configuration in iPaaS.com and, under the Outbound Data Flows section, subscribe to the outbound Add and Update triggers for the product data type.
Mappings
Add/Update Clover Product As Variant FROM iPaaS.com (Parent)
iPaaS.com data type: Product
Mapping Filter
Variants != null && Variants.Count > 0
Filter Description. This collection processes an iPaaS.com product only when the product has one or more variants — that is, when its Variants list is not null and its Variants.Count is greater than zero. Products that carry variants pass the filter and are written to Clover as an item group. A product with no variant data is rejected by this collection and is handled instead by the separate simple product collection. There is no error message on rejection; the product simply does not flow through this collection.
Description. Establishes the Clover item group for a multi-variant product, matched by SKU, so that the variants, options, and inventory handled by the child collections have a group to attach to. This parent maps only the SKU.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Clover) | Description |
Field | Sku | Sku | Required. Sends the product SKU to Clover, where it identifies the item group that represents this multi-variant product. This is the value used to match the product to an existing Clover item group and to create the group if none exists. Keep the SKU unique per product; two products sharing a SKU resolve to the same Clover item group and overwrite each other. |
Add/Update Clover Product Variant FROM iPaaS.com (Child)
iPaaS.com data type: Product Variant
This child collection has no mapping filter. Every variant of a product routed to it through the parent flow is processed; there is no condition that skips records.
Description. Creates and updates each individual variant as a sellable item within the item group, carrying the variant's name, SKU, and price, and applying a fixed set of item settings.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Clover) | Description |
Static |
| Available | Always marks the variant item as available for sale. Fixed value supplied by the collection; subscribers do not enter a value. To hide a variant, manage its availability in Clover after the transfer. |
Static |
| AutoManage | Always sets the variant item to be auto-managed within its item group. Fixed value supplied by the collection; subscribers do not enter a value. |
Field | Sku | Name | Required. Populates the variant item's name from the variant's SKU, because Clover requires each item to carry a name; the variant is therefore identified in Clover by its SKU value. If the variant has no SKU, the item has no name and cannot be written completely. |
Field | Sku | Sku | Required. Sends the variant's SKU to Clover as the item SKU. Clover identifies items by SKU, so this value locates the correct variant item on repeat transfers. Keep it unique per variant so variants do not collide in Clover. |
Dynamic Formula |
| Price | Recommended. Clover stores prices in cents, so the collection takes the variant's price from iPaaS.com and multiplies it by 100 to convert dollars to cents (a price of 12.00 becomes 1200). If the source price does not resolve to a valid number, the variant cannot be written with a valid price. |
Static |
| PriceType | Sets the variant item to use a fixed price. Fixed value supplied by the collection; subscribers do not enter a value. |
Static |
| DefaultTaxRates | Applies the merchant's default tax rates to the variant item. Fixed value supplied by the collection; subscribers do not enter a value. |
Add/Update Clover Product Variant Inventory FROM iPaaS.com (Child)
iPaaS.com data type: Product Variant Inventory
This child collection has no mapping filter. Every variant inventory record routed to it through the parent variant flow is processed; there is no condition that skips records.
Description. Sets the on-hand stock level of a Clover variant item from the total on-hand inventory recorded in iPaaS.com, for a specific Clover location. It does not create the variant item; the parent variant collection does that.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Clover) | Description |
Dynamic Formula |
| Id | Required and resolved automatically. Identifies which Clover variant item the stock belongs to by resolving the variant's linked identifier back to its Clover item. The variant item must already exist in Clover, created by the parent variant flow; if it cannot be resolved, the inventory transfer for that variant does not complete. Subscribers do not enter a value. |
Dynamic Formula |
| Quantity | Calculated automatically. Totals the variant's full on-hand inventory into a single number and rounds it down to a whole number, because Clover holds stock as whole units (a summed quantity of 12.7 is written as 12). If the variant has no inventory, the quantity is zero. Stock is retained only when Track Stock is enabled on the Clover item. Subscribers do not enter a value. |
Field | LocationId | LocationId | Required. Copies the location identifier directly from the iPaaS.com inventory record, with no default. Stock is written for a specific Clover location; if the location identifier is missing, the stock cannot be written to the correct place and the transfer for that variant does not complete. |
Add Clover Product Option FROM iPaaS.com (Child)
iPaaS.com data type: Product Option
This child collection has no mapping filter. Every option group of a product routed to it through the parent flow is processed; there is no condition that skips records.
Description. Creates the product-level option groups (such as Size or Color) on the Clover item group, so the individual values can then be added under them and assigned to variants. It does not create the item group; the parent collection does that.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Clover) | Description |
Field | OptionName | Name | Required. Creates an option group on the item group by supplying its name from the iPaaS.com option name (for example Size or Color). An option group with no name cannot be created or referenced. The Clover item group must already exist, established by the parent product flow, for the option group to be added. |
Add Clover Product Option Value FROM iPaaS.com (Child)
iPaaS.com data type: Product Option Value
This child collection has no mapping filter. Every option value of a product's option group routed to it through the parent option flow is processed; there is no condition that skips records.
Description. Adds the individual values within each option group (such as Small, Medium, Large, or Red, Blue). Those values are what the variant option collection later assigns to each variant. It does not create the option group; the option collection does that.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Clover) | Description |
Field | Value | Name | Required. Adds an individual value to an option group by supplying its name from the iPaaS.com option value (for example Small, Medium, or Large). A value with no name cannot be created or assigned. Its parent option group must already exist for the product in Clover, created by the option flow. |
Add Clover Product Variant Option FROM iPaaS.com (Child)
iPaaS.com data type: Product Variant Option
This child collection has no mapping filter. Every variant option assignment routed to it through the parent variant flow is processed; there is no condition that skips records.
Description. Assigns the specific option value that defines each variant within its group, so a Clover shopper sees the variant as the correct combination (such as Large and Red). It does not create the option groups or values; those are created by the option and option-value collections.
Mapping Type | Source Field (iPaaS.com) | Destination Field (Clover) | Description |
Field | Value | Name | Required. Assigns an option value to a variant by supplying the value's name from the iPaaS.com variant option value (for example Large or Red). An assignment with no value cannot identify the variant. For the assignment to take effect, the matching option group and option value must already exist for the product in Clover, created by the option and option-value flows. |
Error Handling
This flow shares an error catalog with the rest of the Clover integration. See the Clover Error Messages article for the full list and resolutions. The messages most relevant to the variant tree are:
"Unable to dynamically link to existing Clover Item Group using sku. This may result in duplicate product records." — The integration looked up the product's item group in Clover by SKU but could not confirm the link back in iPaaS.com, so it warns that a duplicate product may result. Resolution: confirm the product SKU in iPaaS.com matches the SKU on the corresponding Clover item group exactly, check Clover for a duplicate, remove any unintended duplicate, and re-run. If the SKU is correct and duplicates keep appearing, contact iPaaS.com Support.
"Unable to dynamically link to existing Clover Item using sku. This may result in duplicate product records." — Raised while writing variant inventory when the parent variant is found in Clover by SKU but the link cannot be confirmed back in iPaaS.com. Resolution: confirm the variant's SKU in iPaaS.com matches the SKU on the corresponding Clover item, check Clover for a duplicate, remove any unintended duplicate, and re-run.
"Unable to create Product Variant For Inventory. This will prevent the transfer of the product variant." — The parent variant did not yet exist in Clover, so the integration attempted to create it before writing the inventory level, and that creation failed. Resolution: review the parent variant's data in iPaaS.com for anything that would block it from being created in Clover, correct it, and re-run so the variant is created before its inventory. If the variant data looks valid and creation still fails, contact iPaaS.com Support.
Option definition not updated after creation — Option groups, option values, and variant option assignments are created (or matched to an existing one) the first time they are transferred, but they are not updated afterward. Changing an option group's or value's definition in iPaaS.com after it already exists in Clover does not push that change to the existing Clover option. Resolution: make the option-definition change directly in Clover. See the Clover Integration Known Limitations article for the full detail.
Stock not retained after an inventory transfer — If Track Stock is not enabled on the Clover variant item, an inventory transfer completes but the quantity is not held by the item. Resolution: enable Track Stock on the target Clover items so stock values persist, then re-run.
Testing & Validation
Test Scenarios
New product with variants. Create a product in iPaaS.com with a unique SKU and two or more variants, each carrying its own SKU and a valid price. Sync the product and confirm a Clover item group appears with one sellable item per variant, each priced correctly in cents (for example, 12.00 shows as 1200).
Option groups and values. Confirm the product's option groups (for example Size and Color) appear on the Clover item group and that each group is populated with its values (Small, Medium, Large; Red, Blue).
Variant option assignment. Confirm each variant item in Clover is defined by the correct combination of option values, so a shopper sees, for example, a Large / Red variant.
Variant inventory (Track Stock enabled). With Track Stock enabled on the variant items, sync the product and confirm each variant's stock reflects the floored total on-hand inventory from iPaaS.com for the given location (a summed 12.7 shows as 12).
Variant inventory (Track Stock disabled). With Track Stock disabled, sync inventory and confirm the transfer completes but the stock is not retained on the item.
Price and inventory update on an existing group. Change a variant's price and stock in iPaaS.com and re-sync. Confirm the existing Clover variant item's price and quantity update in place rather than creating a duplicate.
Repeat transfer links the same group. Sync the same product twice and confirm both transfers resolve to the same Clover item group and variant items rather than creating duplicates.
Simple product is skipped. Sync a product that carries no variant data and confirm it does not flow through this collection (it is handled by the simple product collection instead).
Validation Checklist
Each product carries a unique SKU and at least one variant before transfer.
Each variant carries its own SKU and a price that resolves to a valid number.
SKUs are unique per product and per variant so records do not resolve to the same Clover item or item group.
Each option group and option value carries a name.
Each variant inventory record carries a valid location identifier.
Track Stock is enabled on the target Clover variant items where stock values must persist.
Products with no variants are routed through the simple product collection, not this flow.
Out of Scope
Products that carry no variant data — these are transferred by the simple product collection, not this flow.
Customers, orders, and standalone (non-variant) inventory.
Updates to option group, option value, or variant option definitions after they are first created in Clover — these are created or matched, then not updated. See the Clover Integration Known Limitations article.
Deletion of products, variants, option groups, or option values — deletions are not propagated to Clover.
