Skip to main content

OroCommerce Add/Update Price Lists FROM iPaaS

Add or update your OroCommerce Price Lists from iPaS.com Bulk Pricing Records

Updated yesterday

Overview

This integration transfers iPaaS.com bulk pricing records to OroCommerce as Price Lists. When a bulk pricing record with an Applies To association is created or updated in iPaaS.com, the corresponding Price List and Product Prices are synchronized to OroCommerce, along with the associated customer group assignments.

Before You Begin

Ensure the following prerequisites are in place before configuring this integration.

OroCommerce Requirements

  • A valid OroCommerce account with administrator access.

  • Price List names must be unique; OroCommerce does not allow duplicates.

  • Product Prices must reference a Price List, unit, currency, product or variant, quantity, and value.

  • Only a single unit is supported per pricing record.

  • Price List currencies must include at least one valid currency.

  • Customer groups must exist in OroCommerce before being assigned to Price Lists.

  • Customer groups must be removed from Price Lists manually due to the global nature of OroCommerce Price Lists.

  • Bulk Pricing records require valid Product IDs. If the referenced product does not already exist in OroCommerce, the transfer will fail unless the Auto Create Product preset is enabled to automatically create and transfer the product.

  • Customer Category External IDs must exist and be correctly mapped to OroCommerce Customer Groups. If the customer group does not exist, the transfer will fail unless the Auto Create Customer Group preset is enabled to automatically create and transfer the customer group.

  • Custom fields require entity schema configuration. Serialized Field storage type is recommended.

iPaaS.com Requirements

  • Access to iPaaS.com with permissions to create and update Bulk Pricing records.

  • Bulk Pricing records must have valid Product External IDs, or the Auto Create Product preset must be enabled to automatically create and transfer the product when it does not already exist.

  • Customer Category External IDs must exist, or the Auto Create Customer Group preset must be enabled to automatically create and transfer the customer group when it does not already exist.

  • Currency and unit data must have corresponding external identifiers in OroCommerce.

  • OAuth 2.0 credentials must be correctly configured in iPaaS.com for OroCommerce API access.

ID Format

When manually transferring bulk pricing from iPaaS.com, enter the valid iPaaS.com bulk pricing ID (internal ID) into the iPaaS.com input field on the manual sync page. For example, use: 145146.

External ID Format: Bulk Pricing (Parent)

The iPaaS.com Bulk Pricing External ID consists of the OroCommerce Price List ID, Product Price ID, and Price List Customer Group IDs, all stored together as a single External ID.

For example:

36|77159a94-a283-4988-91cc-fa843561d1a3-36|57|58|59

Where:

  • Price List ID: 36

  • Product Price ID: 77159a94-a283-4988-91cc-fa843561d1a3-36

  • Associated Price List Customer Group IDs: 57|58|59

Deleted Record Support

This integration supports the removal of Product Prices when deleting Bulk Pricing from iPaaS.com, ensuring that stale prices do not remain in OroCommerce.

NOTE: Bulk Pricing delete mappings are included in the templates by default. Remove this mapping if you want to disable this functionality.

Custom Field Support

This integration supports custom fields for both OroCommerce Price Lists and Product Prices.

NOTE: For Price Lists, the custom field module must be Price List. For Product Price records, the custom field module must be Product Price.

Creating Custom Fields in OroCommerce

  1. In OroCommerce, click System > Entities > Entity Management.

  2. Locate and select the module (entity) where you want to add the custom field (Customer User or Customer User Address).

  3. Click Create Field and create a custom field.

  4. Enter a unique Field Name and select a Storage Type. We recommend selecting Serialized Field as the Storage Type to avoid manual schema updates.

    • Table Column: Requires a schema update. The custom field is not available until the schema update completes. Contact your OroCommerce administrator before changing an entity schema to prevent unexpected service downtime. After creating a table column field, a red Update Schema button will appear on the page. Click Update Schema to apply the changes.

    • Serialized Field: The custom field is added to the schema automatically.

  1. Set the field type as String. Other simple data types such as Number or Boolean are supported when using compatible mappings.

  2. Click Continue.

  3. Edit the field information on the next page if necessary, then click Save and Close.

  4. After creating the field, click Update Schema (if required by Storage Type).

Creating Custom Fields in iPaaS.com

  1. In iPaaS.com, click Data Management > Custom Fields > Add Custom Field.

  2. Enter a unique Field Name that exactly matches the OroCommerce custom field name.

  3. Select the Module (Customer or Address), and set the Data Type to String.

  4. Add a Description.

  5. Click Save.

Set up the Custom Field Values in iPaaS.com

  1. In iPaaS.com, navigate to Customer or Address, depending on the module where you want to set the custom field.

  2. Click Edit, then click Add under the Custom Fields section.

  3. Select an existing custom field in iPaaS.com, or create a new one if needed, and enter the value in the Value field.

  4. Click Apply.

Mapping Collection Status

  • Mapping Status: Enabled

  • Trigger Events: Create, Update

Conflicting Mappings

This mapping applies only to Bulk Pricing from iPaaS.com. Ensure no other mappings target the same OroCommerce Price List entity to prevent data from being overwritten.

Authentication and Security

OroCommerce uses OAuth 2.0 authentication to generate an access token. This token authorizes all OroCommerce API requests during transfer operations.

Integration Flow

The integration processes iPaaS.com bulk pricing as follows:

  1. The integration is triggered when a bulk pricing record is created or updated in iPaaS.com.

  2. Price List details are mapped and validated against OroCommerce requirements.

  3. If Customer categories (Applies To association) are assigned, the system verifies they have been transferred to OroCommerce.

  4. Products and customer groups are verified or auto-created if the Auto Create Product and Auto Create Customer Group presets are enabled.

  5. The Price List, along with its Product Prices and associated Customer Groups, is created or updated in OroCommerce.

  6. Associated customer group assignments are processed through the child collection.

  7. Upon successful transfer, the OroCommerce ID is saved as the External ID in iPaaS.com.

  8. Sync results are logged for troubleshooting.

Supported Child Collections

This parent mapping collection supports the following child collection:

Mappings

Parent: Add/Update OroCommerce Price Lists FROM iPaaS

Mapping Filter

TableId == 1 || TableId == 4

Description

This mapping filter controls when a Price List is allowed to be created or processed. It only allows the mapping to run for records related to products or product variants (TableId 1 or 4). Records that do not belong to these table types are ignored by the mapping.

Mapping Type

Source Field (iPaaS.com)

Destination Field (OroCommerce)

Description

Dynamic Formula

return await GetExternalIdAsync(Id, "Bulk Price", SpaceportSystemId);

Id

(Required) Retrieves the external ID of the Bulk Price from iPaaS.com.

Static

pricelists

PriceLists_Type

(Required) Sets the OroCommerce PriceLists_Type.

Static

productprices

ProductPrices_Type

(Required) Sets the OroCommerce ProductPrices_Type.

Static

organizations

PriceLists_Relationships_Organization_Type

(Recommended) Sets the organization relationship type.

Static

true

PriceLists_Attributes_Active

(Recommended) Sets the Price List as active.

Dynamic Formula

if(BulkPrice < 10000) { return "Price List Less Than 10000"; } else if (BulkPrice >= 10000 && BulkPrice < 20000) { return "Price List Less Than 20000 and Greater than 10000"; }

PriceLists_Attributes_Name

(Required) Assigns a Price List name dynamically based on the BulkPrice value.

Dynamic Formula

return new List<string> { "USD", "EUR" };

PriceLists_Attributes_PriceListCurrencies

(Required) Sets the Price List currencies to USD and EUR.

Static

1

Pricelists_Relationships_Organization_Id

(Recommended) Sets the organization ID for the Price List relationship.

Field

Quantity

ProductPrices_Attributes_Quantity

(Required) Maps iPaaS.com Quantity to Product Price Quantity.

Dynamic Formula

return await GetiPaaSCurrencyNameByIdAsync(CurrencyId);

ProductPrices_Attributes_Currency

(Required) Retrieves the currency name from iPaaS.com by ID.

Field

BulkPrice

ProductPrices_Attributes_Value

(Required) Maps iPaaS.com BulkPrice to Product Price value.

Dynamic Formula

return await GetOroCommerceProductOrVariantIdAsync(InternalId, 1);

ProductPrices_Relationships_Product_Id

(Required) Retrieves the OroCommerce Product or Variant ID for the given InternalId.

Dynamic Formula

object oroCommerceId = await GetExternalIdAsync(InternalId, "Product", SpaceportSystemId);

if(oroCommerceId == null)

{

oroCommerceId = await GetExternalIdAsync(InternalId, "Product Variant", SpaceportSystemId);

}

if(oroCommerceId != null) {

return await GetOroCommerceProductUnitIdByProductIdAsync(oroCommerceId.ToString());

}

return null;

ProductPrices_Relationships_Unit_Id

(Required) Retrieves the Product Unit ID from OroCommerce for the given Product or Product Variant.

Child: Add/Update OroCommerce Price Lists Customer Groups FROM iPaaS

Mapping Filter

TableId == 39

Description

This mapping filter ensures that the Applies To association contains only valid Customer Category associations.

Mapping Type

Source Field (iPaaS.com)

Destination Field (OroCommerce)

Description

Static

pricelisttocustomergroups

Type

(Required) Sets the OroCommerce Type.

Static

1

Attributes_SortOrder

(Recommended) Sets the SortOrder attribute.

Static

false

Attributes_MergeAllowed

(Recommended) Sets the MergeAllowed attribute.

Static

customergroups

Relationships_CustomerGroup_Type

(Required) Sets the Customer Group relationship type.

Dynamic Formula

return await GetExternalIdAsync(InternalId, "Customer Category", SpaceportSystemId);

Relationships_CustomerGroup_Id

(Required) Retrieves the external ID of the Customer Category from iPaaS.com.

Error Handling

Missing Required Field

Required field is missing.

  • Description: OroCommerce rejected a Bulk Pricing, Price List, or Product Price create/update request due to missing required fields.

  • Resolution: Ensure all required fields are populated: Price List Name, Product Price Value, Quantity, Currency, Product ID, and AppliesTo Customer Groups (if applicable).

Invalid Product, Unit, or Currency

Mapping not found.

  • Description: OroCommerce cannot create or update the Product Price because the Product, Unit, or Currency mapping does not exist or is invalid.

  • Resolution: Verify that the Product external ID exists in iPaaS.com and OroCommerce, the Product Unit mapping exists in OroCommerce, and the Currency mapping is valid.

Category Not Found

Customer group not found.

  • Description: The AppliesTo customer category assigned to the Price List has not been transferred to OroCommerce.

  • Resolution: Transfer the Customer Category to OroCommerce before syncing the Price List.

Duplicate Price List Name

Price List name already exists.

  • Description: OroCommerce does not allow duplicate Price List names. The integration attempted to create a Price List with a name that already exists.

  • Resolution: Ensure Price List names are unique in iPaaS.com before syncing, or update the Bulk Pricing dynamic formula to generate a unique name.

Bulk Pricing External ID Missing

External ID not found.

  • Description: The Bulk Pricing record cannot be mapped because the external ID is missing or invalid.

  • Resolution: Ensure the Bulk Pricing has a valid iPaaS.com External ID, or enable AutoCreateProduct to automatically create missing products before transfer.

AppliesTo Mapping Failure

Customer Group mapping failed.

  • Description: The integration could not map one or more AppliesTo categories due to missing or invalid external IDs.

  • Resolution: Ensure all customer categories referenced in AppliesTo exist in OroCommerce and that external ID mappings are correct. Enable AutoCreateCustomerGroup to automatically create missing categories before transfer.

Currency Not Found

Invalid or unsupported currency.

  • Description: The price list currency value provided from iPaaS.com to OroCommerce is invalid or does not exist in OroCommerce. The API rejects the request because the currency code cannot be matched.

  • Resolution: Verify that the currency code exists and is enabled in OroCommerce. Ensure the currency value mapped in iPaaS.com matches a valid ISO currency configured in OroCommerce Price Lists.

OroCommerce Product ID Not Found

Product reference missing or invalid.

  • Description: The product could not be linked because the required product identifier is missing or invalid. OroCommerce expects a valid product SKU, but the value is blank or the referenced product entity does not exist.

  • Resolution: Ensure the product SKU is present and correctly mapped in iPaaS.com. Confirm that the product already exists in OroCommerce before transferring related records, or enable the Auto Create Product functionality to create missing products prior to synchronization.

Validation and Testing

Before deploying this integration, verify the following configuration items and run the test scenarios to confirm proper operation.

Validation Checklist

Bulk Pricing (Parent) Requirements

  • Bulk Pricing ID exists in iPaaS.com.

  • Price List name is unique.

  • Product exists in OroCommerce or Auto Create Product is enabled.

  • Currency and Unit mappings exist.

  • Product Prices Quantity is present.

  • Product Prices Value is set.

  • Product Prices Currency mapping exists.

  • Product Prices Product mapping exists.

Price Lists Customer Groups (Child) Requirements

  • Customer Group mapping exists.

  • Customer Category exists in OroCommerce or Auto Create Customer Group is enabled.

Test Scenarios

Scenario 1: Create/Update Bulk Pricing

Create or update a Bulk Pricing record in iPaaS.com with Price List and Product Price values. Sync to OroCommerce. Verify the Price List and Product Prices are created with correct IDs. Confirm External IDs are saved in iPaaS.com. Verify changes are reflected without duplicates.

Scenario 2: Create/Update Bulk Pricing Customer Group Assignment

Update the Applies To association on a Bulk Pricing record in iPaaS.com. Sync to OroCommerce. Verify customer group assignments are reflected without duplicates.

Scenario 3: Missing Product External ID (Failure Case)

Create a Bulk Pricing record in iPaaS.com with a Product that has no external ID mapping in OroCommerce. Trigger the integration. If Auto Create Product is enabled, the Product is created in OroCommerce and the transfer succeeds. If auto-create is disabled, the integration fails with a Missing Product External ID error and no records are created.

Scenario 4: Missing Customer Category (Failure Case)

Create a Bulk Pricing record with an Applies To category that has no mapping in OroCommerce. Trigger the integration. If Auto Create Customer Group is enabled, the category is created and the transfer succeeds. If auto-create is disabled, the integration fails with a Category Not Found error.

Scenario 5: Invalid Currency or Unit Mapping (Failure Case)

Create or update Bulk Pricing with a Product Price referencing a currency or unit not mapped in OroCommerce. Trigger the integration. Verify the integration fails with a Currency or Unit Mapping error and that no incomplete or inconsistent Product Prices are created.

Scenario 6: Custom Field Transfer

Create a custom field in OroCommerce (Price List or Product Price). Create a matching custom field in iPaaS.com with the same name and module. Assign a value in iPaaS.com Bulk Pricing and trigger the integration. Verify custom field values transfer correctly and are stored using the appropriate storage type (Serialized Field or Table Column).

Additional Notes

  • Customer groups must be removed from Price Lists manually in OroCommerce.

  • Only a single unit is supported for pricing; iPaaS.com unit fields are ignored.

  • The integration supports deleted record removal for Product Prices when Bulk Pricing is deleted from iPaaS.com.

  • Custom fields require matching names between OroCommerce and iPaaS.com.

  • Serialized Field storage type is recommended for custom fields to avoid manual schema updates.

  • HandlePrerequisite ensures auto-creation of Products and Customer Groups if they are missing.

  • All exceptions are logged. Partial failures could leave Price Lists partially synced unless rollback or retry logic is implemented.

Did this answer your question?