Summary
commercetools channels can be created from iPaaS.com Location records through the Add commercetools Location FROM iPaaS.com mapping collection, either automatically once the outbound subscriptions are enabled or on demand from the iPaaS.com Manual Sync page. commercetools does not have an entity called a "location" — it models a physical or logical stock location as a channel, so an iPaaS.com Location written by this collection appears in the commercetools Merchant Center as a channel record, and everything this article says about a location on the iPaaS.com side describes a channel on the commercetools side.
This collection's sync type is Add. It creates a channel for an iPaaS.com Location that does not yet have one, and it does not update a channel that already exists — a location renamed or re-described in iPaaS.com after its first transfer keeps its original values in commercetools. That is a deliberate configuration of the shipped collection, not an omission from this article. Locations exist primarily so that stock can be placed against the right channel: the four inventory mapping collections in this integration resolve a stock level to a channel through the link this collection creates.
ID Format
Manual Sync ID Format
Enter the iPaaS.com Location identifier on the Manual Sync page. Because this collection transfers data from iPaaS.com, the identifier it accepts is the iPaaS.com-side record id — a numeric value shown on the Location record in iPaaS.com. It is not a commercetools identifier, and it is not a GUID.
<iPaaS.com Location id>
The value is the numeric identifier shown on the Location record in iPaaS.com. It is specific to your subscription — open the Location record in iPaaS.com to read it.
Only one identifier format is supported. There is no subscription setting that changes it, and there is no composite (parent-and-child) form, because this collection has no child collections.
External ID Format
After a successful Add, iPaaS.com stores the identifier commercetools returned for the newly created channel as the external-ID link on the iPaaS.com Location record. The stored value is a commercetools identifier even though the transfer runs from iPaaS.com, and commercetools issues record identifiers as 36-character GUIDs (UUIDs) — 32 hexadecimal characters in five hyphen-separated groups of 8-4-4-12:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
This stored link is what the inventory mapping collections read when they resolve a stock level to a channel. The channel key is a separate, human-readable value that is not used for that resolution.
Deleted Record Support
Deletion is not supported. This integration does not delete commercetools channels, and there is no delete path for any other entity either. Delete mappings are not included in the default mapping templates, and a location deleted in iPaaS.com is not removed from commercetools.
If a delete is nonetheless requested — for example by enabling a delete-triggered outbound data flow — the attempt fails with the runtime's generic "The method or operation is not implemented." message, which names no entity and no collection. Remove channels directly in the commercetools Merchant Center instead. See Error Messages and Known Limitations.
Custom Field Support
This integration has no custom-field implementation. There is no conversion function for reading or writing commercetools custom fields, and there is no subscription setting that enables one. Custom fields defined on a commercetools channel are neither read nor written by this collection, and no mapping in the shipped configuration references one.
Mapping Collection Status
Status: Enabled.
Sync type: Add only. The collection creates channels for iPaaS.com Locations that carry no commercetools link. It does not update channels that already exist.
Trigger Events: Automatic transfers are driven by iPaaS.com outbound event subscriptions, which subscribers or their MiSP enable under Outbound Data Flows in the subscription configuration. The scopes that drive this collection are:
location/createdlocation/updated
No automatic transfers occur until those subscriptions are enabled. Enabling them is a deliberate configuration step, not a default — see Subscription Configuration – Edit and the Installation Instructions.
Because the collection is Add-only, a location/updated event raised for a location that already carries a commercetools link produces a transfer with no update to perform. The scope is listed because it is the scope registered for this collection type, but subscribers should not expect edits made in iPaaS.com to reach an existing channel.
Manual Sync is available on this collection at all times, whether or not any outbound subscription is enabled.
Duplicate or Conflicting Mappings
No other mapping collection in this integration writes commercetools channels, and there is no inbound collection that brings commercetools channels into iPaaS.com. This is the only location flow in either direction, so there is no competing writer to reconcile against.
The four inventory collections — Add/Update commercetools Product Inventory FROM iPaaS.com, Add/Update commercetools Product Variant Inventory FROM iPaaS.com, Update commercetools Product Inventory Standalone FROM iPaaS.com and Add/Update commercetools Product Variant Inventory Standalone FROM iPaaS.com — read the external-ID link this collection creates, but they never write a channel themselves. They are downstream consumers, not conflicting writers.
No Duplicate Detection
This integration implements no duplicate detection and no match-and-link behavior on any collection. If a channel that corresponds to an iPaaS.com Location already exists in commercetools but was never linked through iPaaS.com, this collection does not detect or reuse it. Depending on the key, the transfer either creates a second channel or is rejected by commercetools for a duplicate key — see commercetools Caveats.
Linking Pre-Existing Channels
Channels not created by this collection carry no external-ID link, so the inventory collections cannot resolve stock to them. Where channels already exist in commercetools, subscribers or their MiSP must either record the channel identifier as the external-ID link on the corresponding iPaaS.com Location record, or supply the channel identifier directly within the inventory mappings, before inventory can be placed against those channels.
Unmapped Field Overwrite Risk
The update path for this entity builds instructions to set name, description and key unconditionally, whether or not those fields are mapped. A field left unmapped is sent with no value, and commercetools interprets that as an instruction to clear the field — so an existing value would be erased rather than left alone.
Scope this correctly for this collection. All three fields are mapped in the shipped configuration, and this collection's sync type is Add, so the unguarded update path is not reached by the collection as delivered. The risk is real but latent: it becomes live if a mapping is removed, if a source field is empty on the iPaaS.com Location record, or if this collection is later reconfigured to perform updates. Subscribers who change the sync type should treat the three fields as mandatory mappings from that point on.
Two ways to protect a field:
Map it from the iPaaS.com source. This is the correct approach wherever iPaaS.com genuinely holds the value.
Carry the existing commercetools value forward with
DestinationValue. Where a value is maintained in commercetools and has no iPaaS.com counterpart, add a Dynamic Formula mapping whose destination is the field to protect and whose source reads the current destination value. For example, a formula ofDestinationValue.descriptionmapped to the description field returns the value already on the commercetools channel and writes it back unchanged. Repeat this for each field to preserve.
Supported Child Collections
None. This is a root collection with no child collections. A location is written in a single transfer with no dependent records of its own, and location addresses and geographic coordinates are not written at all.
Although there are no child collections, four collections depend on locations existing first: Add/Update commercetools Product Inventory FROM iPaaS.com, Add/Update commercetools Product Variant Inventory FROM iPaaS.com, Update commercetools Product Inventory Standalone FROM iPaaS.com and Add/Update commercetools Product Variant Inventory Standalone FROM iPaaS.com. They are separate root collections, not children — the integration performs no automatic dependency transfer, so a location is never pulled through as a side effect of an inventory transfer. Transfer locations first.
System Caveats
commercetools Caveats
Channels are created without a role. commercetools declares what a channel may be used for through a role on the channel record. The commercetools HTTP API specification for channel records (retrieved 2026-07-20) defines the available roles as InventorySupply, ProductDistribution, OrderExport, OrderImport and Primary, and describes InventorySupply as the role that lets a channel track inventory entries — the role that treats a channel as a warehouse. The create request this collection sends carries only the key, name and description; it specifies no role at all. The observable consequence is that a channel created by this collection may not be accepted as an inventory supply channel, so inventory transfers against it can fail even though the channel exists and is linked. After the first locations transfer, open each created channel in the commercetools Merchant Center, confirm which roles it carries, and assign the inventory-supply role wherever the channel is intended to hold stock. Validate this in a staging environment before relying on the inventory flows in production.
Inventory supply channel quota. commercetools allows 100 inventory supply channels per store, and that figure is configurable per project rather than a hard limit. See
https://docs.commercetools.com/api/limits(retrieved 2026-07-20). Subscribers running more distinct stock locations than that should raise the limit with commercetools before transferring them.Channel key uniqueness. commercetools treats the channel key as unique within a project. Because the shipped mappings derive the key from the location name with spaces removed, two iPaaS.com Locations whose names differ only by spacing produce the same key and the second transfer is rejected. Confirm that location names remain distinct once spaces are removed.
Key format is not sanitized by the integration. The integration removes spaces from the key value and applies no other transformation — it does not strip characters commercetools disallows and it does not truncate. The commercetools HTTP API specification for channel records types the key as a plain string and publishes no maximum length for it, while this integration's own developer documentation records a 250-character ceiling on the keys it generates for the sibling category flow, where the shipped formula also strips disallowed characters. No equivalent stripping or length guard exists on the location key. Keep location names short and restricted to letters, digits, hyphens and underscores; a name outside that shape is passed through unchanged and rejected by commercetools rather than corrected.
Rate limiting. commercetools publishes its request limits and per-project quotas at
https://docs.commercetools.com/api/limits(retrieved 2026-07-20). This integration makes no claim that a request declined for a limit is retried, rescheduled or resumed. Treat a declined request as a failed transfer: monitor Dashboard / Integration Monitoring / Error Logs, re-run affected records with Manual Sync, and validate expected throughput in a staging environment before relying on it in production.
iPaaS.com Caveats
This collection adds but does not update. Its sync type is Add. A Location that already carries a commercetools link is not re-written, so edits made in iPaaS.com after the initial transfer never reach commercetools through this collection. Ongoing changes must be made directly in commercetools.
A Location with no key value cannot be transferred at all. The integration reads and reformats the key on every write, so a Location whose key mapping produces no value fails outright rather than creating a channel without a key. Since the shipped mappings derive the key from the location name, this means every Location intended for transfer must carry a name.
Field references in Dynamic Formulas use PascalCase on the iPaaS.com source side, matching the field names shown in the mapping editor.
The connection test reports success without contacting commercetools. A configuration problem in the connection settings is not caught by the test — it surfaces at the first transfer instead, as an authorization failure in Dashboard / Integration Monitoring / Error Logs. Validate the settings by running a single Manual Sync rather than by relying on the test result. See Connections and Settings.
Integration-Specific Caveats
The default mappings assume a one-to-one location model. One iPaaS.com Location is expected to correspond to one commercetools channel, and the channel key is derived from the location name on that basis. Subscribers who do not manage inventory one-to-one — several iPaaS.com locations feeding a single channel, for example — should adjust the mappings rather than accepting the defaults.
Locations are resolved for inventory through a formula function. The inventory mapping collections resolve which channel a stock level belongs to by calling the formula function
ConvertiPaaSLocationIdToCommerceIdsupplied by this integration, which takes an iPaaS.com Location identifier and returns the linked commercetools channel identifier by reading the external-ID link this collection created. If no link exists for that Location, the lookup fails and the inventory row does not transfer. That is the operational reason locations must be established before inventory. The inventory collections' own articles cover their mappings; this article covers only the location side of the relationship.Bulk initialization is not supported. There is no path that imports the channels already present in a commercetools project into iPaaS.com, and no initialization scope should be enabled for this collection.
Setup Requirements
iPaaS.com Configuration
Complete the commercetools connection settings before the first transfer. Because the connection test always reports success, confirm them with a single Manual Sync rather than with the test. See Connections and Settings.
Enable the
location/createdandlocation/updatedsubscriptions under Outbound Data Flows if automatic transfers are wanted. Until they are enabled, locations transfer only through Manual Sync. The full walkthrough is in the Installation Instructions.Confirm that every iPaaS.com Location intended for transfer carries a name, since the shipped mappings derive the required channel key from it, and that those names remain distinct once spaces are removed.
Transfer locations before transferring inventory.
commercetools Configuration
Confirm the API client credentials used by the integration are permitted to create channels. The credential set and the endpoints used are described in Connections and Settings and API Endpoints.
After the first locations transfer, assign the inventory-supply role to each created channel that is intended to hold stock.
Where channels already exist and were not created through iPaaS.com, record their identifiers as external-ID links on the corresponding iPaaS.com Location records, or supply the identifiers directly within the inventory mappings.
Integration Flow
A transfer is raised for an iPaaS.com Location — either by an enabled
location/createdorlocation/updatedoutbound subscription, or by a subscriber entering the numeric iPaaS.com Location id on the Manual Sync page.iPaaS.com checks whether the Location already carries an external-ID link to a commercetools channel. Because this collection's sync type is Add, a Location that is already linked has no operation to perform and no write is made.
For an unlinked Location, the collection evaluates its three mappings against the source record, producing the channel key, name and description values.
The integration removes spaces from the key value. If the key value is empty at this point the transfer fails here, before any request is sent to commercetools.
A single create request is sent to commercetools carrying the key, the English name and the English description. No role, address or geographic coordinate is included, and no second call follows — there is no sequencing and no child record pass.
commercetools validates the draft. A duplicate key, a key outside the format commercetools accepts, or an authorization failure causes a rejection, which is recorded in Dashboard / Integration Monitoring / Error Logs.
On success, commercetools returns the new channel record and iPaaS.com stores its GUID identifier as the external-ID link on the iPaaS.com Location record.
Later inventory transfers read that stored link — through the
ConvertiPaaSLocationIdToCommerceIdformula function — to resolve which channel each stock level belongs to.
Mappings
Add commercetools Location FROM iPaaS.com
iPaaS.com data type: Location
Description: Creates a commercetools channel from an iPaaS.com Location record, writing the channel key, name and description in a single request. This collection has no mapping filter, so every Location transfer dispatched to it is processed.
Mapping Type | Source Field (iPaaS.com) | Destination Field (commercetools) | Description |
Field |
|
| Required. The channel key, which commercetools treats as unique within the project and which is the value a person reads to recognise the channel. The integration removes spaces from the value before writing, so a location named |
Field |
|
| Recommended. The English display name of the channel, shown in the commercetools Merchant Center and in inventory reporting. It is mapped from the same iPaaS.com source field as the key, so by default the name keeps its spaces and the key has them removed. commercetools does not require a name, but a channel without one is difficult to identify when assigning or reviewing inventory. If the source value is empty the channel is created with no name; because this collection is Add-only, a later rename in iPaaS.com does not propagate. |
Field |
|
| Recommended. The English description of the channel. Descriptive text only — it has no effect on how inventory resolves to the channel. commercetools does not require a description. If the source value is empty the channel is created with no description; because this collection is Add-only, a description added in iPaaS.com after the channel exists must be set directly in commercetools. |
There are no Static, Lookup or Dynamic Formula mappings in this collection, so there are no lookup translation tables and no formula bodies to reproduce. No mapping in this collection carries a placeholder value requiring replacement during implementation.
Error Handling
The full catalog of messages, including the connection and authentication errors that apply before any transfer runs, is in Error Messages. The entries below are the ones a location transfer is most likely to produce.
"Error calling CommerceTool CallWrapper.{action}: {response body} (Http Code: {status})" — commercetools rejected the create request; {action} names the location create operation. The useful detail is the response body, which names the offending field. For a location the most common cause is a duplicate channel key, or a key containing characters commercetools does not accept in a key. Resolution: read the response body in the Error Logs entry, correct the iPaaS.com Location name so the derived key is unique and well formed, then re-run the transfer with Manual Sync.
"Call to CollectionCreate with unhandled parameters: System=CommerceTool {collection}, sourceObject is null" — the transfer reached the write stage but no record had been built, typically because every mapped field evaluated to empty. Resolution: confirm the Location record carries a name and that the three mappings are intact, then re-run.
"The method or operation is not implemented." — a delete was requested for a commercetools channel. Delete is not supported for any entity in this integration and the message names neither the entity nor the collection. Resolution: remove any configuration that asks the integration to delete a commercetools record, including delete-triggered outbound data flows, and remove channels directly in the commercetools Merchant Center.
"Invalid data passed to {record}.SetPrimaryKey: {value}" — commercetools created the channel but its identifier could not be stored against the iPaaS.com Location, so the channel exists without a link back to iPaaS.com. This matters more for locations than for most entities, because the inventory collections depend on that link. Resolution: confirm the channel exists in the commercetools Merchant Center, then re-run the transfer so the link can be established.
"Recieved ErrorException from externalSystem's iPaaSCallWrapper.{action}. See Tech log for more details" — an iPaaS.com lookup failed. On the inventory side this is the message that appears when a Location has never been transferred to commercetools, so no channel link exists to resolve. The misspelling is present in the shipped text and is reproduced so it can be searched for; this wording is written to the Activity Tracker rather than to the Error Logs. Resolution: transfer the referenced Location first, then re-run the inventory transfer.
"Recieved ErrorException from {action}. See Tech log for more details" — where {action} names the location create operation: the request never reached commercetools, or the response could not be read: a name-resolution, TLS or timeout failure. Resolution: confirm the host in the API Url setting is reachable and correctly spelled, including its region component, then re-run. See API Endpoints.
Validation Rules
A key value is mandatory. The integration reformats the key on every write, so a Location that produces no key value fails before any request is sent. Enforced by the integration.
The channel key must be unique within the commercetools project. Enforced by commercetools; a duplicate is rejected at the create request.
The channel key must satisfy commercetools' key format. Enforced by commercetools. The integration removes spaces but performs no other sanitization, so any other disallowed character reaches commercetools unchanged.
No mapping filter is applied. Every Location transfer dispatched to this collection is processed; there are no conditions under which a record is silently skipped by this collection.
Only unlinked Locations are written. A Location already carrying a commercetools external-ID link produces no write, because the sync type is Add.
Testing & Validation
Test Scenarios
Create and transfer a new Location. Create a Location in iPaaS.com with a distinct name and a description, run Manual Sync with its numeric iPaaS.com id, and confirm a new channel appears in the commercetools Merchant Center with the expected key (spaces removed), name and description.
Confirm the external-ID link. After the transfer above, confirm the iPaaS.com Location record now carries a commercetools channel identifier in GUID form as its external-ID link.
Confirm the channel role. Open the newly created channel in commercetools and check its roles. Assign the inventory-supply role if the channel is intended to hold stock, then transfer an inventory record against that location and confirm the stock level is accepted.
Verify Add-only behavior. Rename the Location in iPaaS.com and re-run Manual Sync for the same record. Confirm that the commercetools channel is unchanged, and that the rename did not propagate.
Verify required-field behavior. Clear the Location name in iPaaS.com (or temporarily remove the
keymapping) and attempt a transfer. Confirm the transfer fails and that the failure is recorded in Dashboard / Integration Monitoring / Error Logs.Verify key uniqueness handling. Create two Locations whose names differ only by spacing, transfer both, and confirm the second is rejected by commercetools rather than silently overwriting the first.
Verify the automatic path. Enable the
location/createdsubscription under Outbound Data Flows, create a new Location in iPaaS.com, and confirm the channel is created without any Manual Sync.
Validation Checklist
The channel key in commercetools matches the iPaaS.com Location name with spaces removed.
The channel name and description match the iPaaS.com Location values.
The iPaaS.com Location record carries a commercetools channel identifier as its external-ID link.
Each channel intended to hold stock carries the inventory-supply role in commercetools.
Every Location intended for transfer has a name, and those names remain distinct once spaces are removed.
Locations were transferred before any inventory transfer was attempted.
Channels that pre-date the integration have been linked manually, or their identifiers supplied directly in the inventory mappings.
Dashboard / Integration Monitoring / Error Logs shows no unresolved location failures.
Additional Notes
The following are outside the scope of this mapping collection:
Location update. The collection is Add-only; changes to an existing channel are not written by this integration.
Location delete. Not performed in either direction.
Inbound location transfer. There is no flow that brings commercetools channels into iPaaS.com. This collection is outbound only.
Location addresses and geographic coordinates. These commercetools channel properties exist on the channel record but are not written by this collection.
Channel roles. Not set by this collection — assign them in commercetools.
Duplicate detection and conflict resolution. Not implemented for any collection in this integration.
Bulk initialization of channels that already exist in commercetools.
For the integration-wide statement of what is and is not supported, see Known Limitations. For assistance, contact iPaaS.com Support at support@ipaas.com.
