Skip to main content

iPaaS.com to Jasper PIM Product Mapping

Updated yesterday

Summary

Transactions in iPaaS.com can be transferred to JasperPIM Product via manual sync. iPaaS.com supports manual synchronization of Product records from iPaaS.com using JasperPIM Product API.

Mapping Collection Status

Transaction

  • Status: Enabled

  • Trigger Events: This integration runs on Create, Update events for Product in iPaaS.

Id Format

Description When manually transferring data to JasperPIM for a iPaaS.com Product, such as Product with ID, it is essential to enter the correct Product ID (e.g.,15247) into the iPaaS.com input field on the iPaaS.com manual sync page.

Supported Child Collections

Parent Collection: Jasper Product From iPaaS

  • Child Collection 1: Jasper Product Inventory From iPaaS

  • Child Collection 2: Jasper Product Option From iPaaS

    • Child Collection 1: Jasper Product Option Value From iPaaS

  • Child Collection 3: Jasper Product Variant From iPaaS

    • Child Collection 1: Jasper Product Variant Option From iPaaS

    • Child Collection 2: Jasper Product Variant Inventory From iPaaS

Setup Requirements

Authentication & Security

API Key/OAuth token: Jasper PIM requires an API key generated in the Jasper admin console with Product read/write permissions.

Integration Flow

  1. A new or updated product in iPaaS.com triggers the integration (via manual sync).

  2. The system retrieves product, inventory, product option and product variants

  3. Validates required fields.

  4. Creates or updates the Product in iPaaS.com.

  5. Logs API response and integration status.

  6. On error, logs details in iPaaS for retry or manual correction.

Mappings

Jasper Product From iPaaS (Parent)

Mapping Type

Source Field (iPaaS.com)

Destination Field (Jasper PIM)

Description

Dynamic Formula

var external = await GetExternalIdAsync(Id, "Product", SpaceportSystemId); return external;

Id

Required: This formula retrieves the Jasper PIM product ID associated with the current iPaaS product by calling an asynchronous function GetExternalIdAsync. It ensures the product in Jasper PIM is linked correctly with its corresponding product in iPaaS.

Field

Name

Name

Required: Maps the product name directly from iPaaS to Jasper PIM without modification.

Field

Sku

Sku

Required: Transfers the product SKU (Stock Keeping Unit) as-is from iPaaS to Jasper PIM to maintain product identity and tracking consistency.

Field

Description

ShortDescription

Optional: Maps the product’s short description field from iPaaS to Jasper PIM. This typically includes a concise product overview.

Field

Description

LongDescription

Optional: Maps the detailed product description from iPaaS to Jasper PIM. This field usually contains extended product information, features, or specifications.

Static

true

Enabled

Required: Sets the product’s “Enabled” status in Jasper PIM to true, ensuring the product is active and available in the system.

Static

true

IsVisible

Optional: Sets the product visibility flag in Jasper PIM to true, making the product visible in listings and front-end displays.

Dynamic Formula

return await ConvertCategoriesToJasperId(Categories);

Categories

Optional: Converts and maps category data from iPaaS to Jasper PIM using the function ConvertCategoriesToJasperId, which translates iPaaS category identifiers into corresponding Jasper category IDs.

Dynamic Formula

return SetSinglePrice("US", Coalesce(Convert.ToDouble(SalePrice), Convert.ToDouble(DefaultPrice)), Convert.ToDouble(DefaultPrice));

Prices

Optional: Dynamically sets the product’s price for the U.S. market. If a sale price exists, it uses that; otherwise, it falls back to the default price. The formula ensures Jasper PIM receives a properly formatted price object.

Jasper Product Inventory From iPaaS (Child)

Mapping Type

Source Field (iPaaS.com)

Destination Field (Jasper PIM)

Description

Dynamic Formula

var external = await GetExternalIdAsync(Id, "Product Inventory", SpaceportSystemId); return external;

Id

Required: Retrieves the Jasper PIM inventory record ID associated with the given iPaaS inventory entry. The function GetExternalIdAsync ensures synchronization between iPaaS and Jasper PIM by fetching or mapping the correct inventory identifier based on the SpaceportSystemId.

Dynamic Formula

return await GetExternalIdAsync(ParentId, "Product", SpaceportSystemId);

ProductId

Required: Obtains the Jasper PIM product ID corresponding to the parent product in iPaaS. This links the inventory record to its related product in Jasper PIM, ensuring correct product-to-inventory association.

Dynamic Formula

return await ConvertIpaasLocationIdToJasperLocationName(LocationId);

Location

Required: Converts the iPaaS location ID into a Jasper PIM location name using the conversion function ConvertIpaasLocationIdToJasperLocationName. This mapping ensures that inventory is assigned to the correct physical or virtual warehouse/location in Jasper PIM.

Field

QtyAvailable

CountOnHand

Required: Maps the available quantity of the product directly from iPaaS to the CountOnHand field in Jasper PIM, representing the current stock count available for that product at the specified location.

Jasper Product Option From iPaaS (Child)

Mapping Type

Source Field (iPaaS.com)

Destination Field (Jasper PIM)

Description

Dynamic Formula

int parentPos = Id.IndexOf('|'); var parentId = Id.Substring(0, parentPos); return await GetExternalIdAsync(parentId, "Product", SpaceportSystemId);

ProductId

Required: This dynamic formula is used to extract the parent product ID from a composite identifier and retrieve its corresponding external product reference in Jasper PIM.

Field

OptionName

Name

Maps the option name from iPaaS (e.g., “Size – Medium” or “Color – Red”) to the Name field in Jasper PIM.

Jasper Product Option Value From iPaaS (Child)

Mapping Type

Source Field (iPaaS.com)

Destination Field (Jasper PIM)

Description

Field

Value

Value

Required: Maps the option value directly from iPaaS to the Value field in Jasper PIM. This represents the actual stored value of a product attribute or option (e.g., “RED”, “M”, or “32GB”).

Field

Value

Label

Required: Maps the same option value from iPaaS to the Label field in Jasper PIM. The label is typically the human-readable name or display text shown in the PIM interface or on storefronts (e.g., “Red”, “Medium”, or “32 GB”).

Jasper Product Variant From iPaaS (Child)

Mapping Type

Source Field (iPaaS.com)

Destination Field (Jasper PIM)

Description

Dynamic Formula

await GetExternalIdAsync(Id, "Product Variant", SpaceportSystemId);

Id

Required: Retrieves the Jasper PIM Product Variant ID associated with the current variant in iPaaS using the asynchronous function GetExternalIdAsync.

Dynamic Formula

Parent.Name

Name

Required: Dynamically assigns the variant’s Name in Jasper PIM using the parent product’s name from iPaaS.

Field

Sku

Sku

Required: Maps the SKU (Stock Keeping Unit) from iPaaS directly to Jasper PIM..

Static

true

Enabled

Required: Sets the Enabled flag to true in Jasper PIM, making the product variant active and available within the system.

Static

true

IsVisible

Optional: Sets the IsVisible property to true in Jasper PIM, ensuring that the variant is visible in product listings, catalogs, or front-end systems.

Dynamic Formula

await GetExternalIdAsync(ParentId, "Product", SpaceportSystemId);

ParentId

Required: Retrieves the external Jasper PIM Product ID of the variant’s parent product. This mapping links the variant to its corresponding parent record in Jasper PIM, maintaining proper parent-child relationships.

Dynamic Formula

return SetSinglePrice("US", Coalesce(Convert.ToDouble(SalePrice), Convert.ToDouble(DefaultPrice)), Convert.ToDouble(DefaultPrice));

Prices

Optional: Calculates and sets the variant’s pricing structure for the U.S. market. The formula checks if a sale price is available; if not, it uses the default price.

Jasper Product Variant Option From iPaaS (Child)

Mapping Type

Source (iPaaS.com)

Destination (Jasper PIM)

Description

Field

OptionName

Name

Required: Maps the Option Name from iPaaS (such as “Color”, “Size”, or “Material”) to the Name field in Jasper PIM. This represents the name or type of the product attribute or option being synced.

Field

Value

Value

Required: Maps the Option Value from iPaaS (such as “Red”, “Medium”, or “Cotton”) to the Value field in Jasper PIM. This represents the actual data or selection associated with the product option.

Jasper Product Variant Inventory From iPaaS (Child)

Mapping Type

Source (iPaaS.com)

Destination (Jasper PIM)

Description

Dynamic Formula

return await GetExternalIdAsync(ParentId, "Product", SpaceportSystemId);

ProductId

Required: This formula retrieves the external product ID from Jasper PIM corresponding to the ParentId in iPaaS. It uses the helper function GetExternalIdAsync to ensure that the inventory record being synced is properly linked to the correct product in Jasper PIM.

Dynamic Formula

return await ConvertIpaasLocationIdToJasperLocationName(LocationId);

Location

Required: Converts the iPaaS Location ID into the corresponding location name recognized by Jasper PIM. This ensures inventory quantities are correctly associated with the appropriate warehouse or store location in Jasper PIM using the ConvertIpaasLocationIdToJasperLocationName function.

Field

QtyAvailable

CountOnHand

Required: Maps the available quantity of a product directly from iPaaS to the CountOnHand field in Jasper PIM. This represents the total number of units currently available at the specified location, ensuring accurate stock level synchronization between the two systems.

Error Handling

  • Invalid Data Format

    • Description: Fields that contain invalid data types (for example, text in a numeric field) are rejected. The integration logs the reason and excludes the invalid record from the batch.

    • Resolution: Check the error logs and change the field data to the correct type.

  • Parent Record Missing

    • Description: If a child entity (like a Variant or Inventory record) references a parent product that hasn’t yet been created in Jasper, the parent record should exist.

    • Resolution: Check to see it the Parent is misspelled or incorrect. Change the parent product reference. If the parent product does not exist in Jasper, create it and retry.

Testing & Validation

Test Scenarios

Valid Product Sync: Sync a product with valid ID, SKU, and price.

  • Expected Outcome: Product created successfully in Jasper PIM with correct price, category, and visibility.

Missing Product ID: Attempt to sync a product without an ID.

  • Expected Outcome: Record rejected with an error “Missing ID.” Logged for review.

Invalid Location ID: Inventory record has a location not recognized by Jasper.

  • Expected Outcome: Default location “Default Warehouse” assigned automatically, warning logged.

Parent Record Missing: Sync a variant before its parent product exists.

  • Expected Outcome: Variant held in queue until parent product syncs.

Category Conversion Failure: Invalid or unmapped category ID.

  • Expected Outcome: Product assigned to “Uncategorized” in Jasper PIM.

API Timeout or Network Failure: Jasper API call fails due to timeout.

  • Expected Outcome: System retries with exponential backoff and logs error after maximum attempts.

Validation Rules

  • Id Validation: Must be unique and present for each product, variant, option, and inventory record. Records missing an ID are rejected.

  • ParentId Validation: Mandatory for variants and inventory; ensures proper parent-child linkage with existing Jasper product.

  • Category Mapping: Category IDs from iPaaS must successfully convert to valid Jasper PIM category IDs. If conversion fails, assign to “Uncategorized.”

  • Location Mapping: LocationId must translate to a valid Jasper warehouse or store location.

  • Inventory Validation: QtyAvailable must be an integer ≥ 0.

  • SKU Validation: SKUs must be unique across products and variants to avoid duplication conflicts in Jasper.

  • Visibility and Status: Both Enabled and IsVisible flags must be Boolean (true/false).

  • Option Validation: Fields OptionName and Value must not be empty for product options or variant options.

  • External Linking: All GetExternalIdAsync() calls must return a valid Jasper entity ID before proceeding.

Validation Checklist

  • Validate that each Id and Sku is unique and non-empty.

  • Confirm that ParentId exists before processing variants or inventory.

  • Ensure SalePrice and DefaultPrice are numeric and ≥ 0.

  • Verify category mapping using ConvertCategoriesToJasperId.

  • Confirm valid location names returned by ConvertIpaasLocationIdToJasperLocationName.

  • Check that QtyAvailable is an integer ≥ 0.

  • Ensure all GetExternalIdAsync() calls return valid Jasper IDs.

  • Validate that OptionName and Value fields are populated.

  • Confirm Enabled and IsVisible values are Boolean.

  • Review logs for any skipped or orphaned records after synchronization.

Did this answer your question?