Skip to main content

iPaaS.com To Jasper PIM Product Inventory Mapping

Updated yesterday

Summary

Jasper PIM Product Inventory can be transferred from iPaaS.com Product Inventory through manual sync. Jasper PIM supports the manual synchronization of Product Inventory records from iPaaS.com using its Inventory API.

Mapping Collection Status

Product Inventory Mapping

  • Status: Enabled

  • Trigger Events: Create, Update

Id Format

Description

When manually transferring a product inventory from iPaaS.com to Jasper, you must accurately input the iPaaS.com Product Inventory ID (e.g., 12345|23456) into the designated field on the manual sync page.

System Caveats

iPaaS.com Caveats

  • Location Conversion Issues: If ConvertIpaasLocationIdToJasperLocationName fails, inventory records may not map to valid Jasper locations.

  • Partial Data in Required Fields: Missing Name, Sku, or CountOnHand in iPaaS may block product/variant creation or inventory sync.

Jasper Caveats

Inventory Rules:

Location must be a valid Jasper-defined location.

  • CountOnHand must be numeric ≥ 0.

Setup Requirements

Authentication & Security

  • API Key / OAuth token

    Jasper PIM: Requires an API key generated in the Jasper admin console with Product Inventory read/write permissions.

    iPaaS.com: Requires an access token for the Product Inventory API endpoint with create/update permissions.

Integration Flow

Product Inventory Flow

  • When inventory updates occur in iPaaS.com, a sync triggers.

  • iPaaS.com fields (Id, ProductId, Location, QtyAvailable) are mapped to Jasper’s inventory fields.

  • The inventory record is created or updated in Jasper PIM against the corresponding product.

Mappings

Jasper Product Inventory Updates From iPaaS (Standalone)

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: Unique identifier for the product inventory record in Jasper PIM. Dynamically retrieved via GetExternalIdAsync to ensure consistency across systems.

Dynamic Formula

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

ProductId

Required: Links the inventory record to its parent product in Jasper PIM. Uses GetExternalIdAsync on the parent product’s ID.

Dynamic Formula

return await ConvertIpaasLocationIdToJasperLocationName(LocationId);

Location

Required: Converts the iPaaS LocationId into the corresponding Jasper PIM location name. Ensures stock is tied to the correct fulfillment or warehouse location.

Field

QtyAvailable

CountOnHand

Required: Maps the available inventory quantity from iPaaS to Jasper PIM. Represents the number of units available at the specified location.

Error Handling

Product Inventory

  • Missing Inventory Link

    • Description: ProductId not found in Jasper.

    • Resolution: Ensure parent product exists before inventory sync.

  • Invalid Location

    • Description: iPaaS location not correctly converted to Jasper location name.

    • Resolution: Apply ConvertIpaasLocationIdToJasperLocationName and validate mapping.

  • Negative Quantities

    • Description: CountOnHand or QtyAvailable < 0.

    • Resolution: Normalize to zero or reject record.

Testing & Validation

Test Scenarios

Product Without Inventory

  • Action: Create product but omit inventory.

  • Expected Outcome: Product created; inventory record rejected separately.

Negative Inventory

  • Action: Transfer inventory with negative QtyAvailable.

  • Expected Outcome: Normalized to 0 or rejected with error.

Validation Rules

Product Inventory Validation

  • Id: Required, unique per inventory record.

  • ProductId: Required, must exist in Jasper.

  • Location: Required, must match valid Jasper location name.

  • CountOnHand (QtyAvailable): Required, integer ≥ 0.

Validation Checklist

  • Validate inventory link: ProductId must exist.

  • Confirm inventory quantities are non-negative integers.

  • Log and return errors for duplicates, invalid formats, missing fields.

Did this answer your question?