Skip to main content

Shopify Product Category Assignment from iPaaS

Creates or removes assignments between iPaaS and Shopify categories

Updated yesterday

Summary

This mapping creates or removes assignments between iPaaS product records and Shopify collections (categories). The mapping only processes assignments when the iPaaS category has been previously linked to Shopify (i.e., a Shopify Collection external ID is recorded in iPaaS). If the category is not linked, the assignment is skipped. The mapping supports Add (assign product to a collection) and Delete (remove product from a collection).

Field Constraints

  • CollectionId: Must be a valid Shopify collection identifier and must exist in Shopify.

  • ProductId: Must be a valid Shopify product identifier and must exist in Shopify.

  • External ID mapping: iPaaS categories must contain the Shopify collection external ID to be eligible for assignment.

Mapping Collection Status

  • Status: Enabled

  • Trigger Events: Product Category Assignment, Add or Delete in iPaaS

Id Format

When manually transferring data from iPaaS to Shopify, ensure that you enter the correct Product Id, concatenated with the Product Category Assignment Id using a pipe (|) (e.g., 12345|10) into the iPaaS input field on the manual sync page.

Deleted Record Support

Product Category Assignment deletion is supported in this flow.

System Caveats

Shopify Caveats

  • Shopify Collections are read-only for creation. They must be created in Shopify first.

  • Product assignments can only succeed if both product and category exist in Shopify.

iPaaS Caveats

  • iPaaS must include the external Shopify CollectionId for the categories intended for assignment; otherwise, the filter prevents assignment.

  • The mapping expects ProductId and CollectionId to be resolvable to Shopify numeric IDs.

Setup Requirements

iPaaS Configuration

  • Enable Shopify Product Category Assignment Add/Delete From iPaaS.

  • Validate dynamic formulas.

Shopify Configuration

In the integration settings, enter the following correctly.

  • OAuth URL Template:

    https://{API Store}.myshopify.com/admin/oauth/authorize?client_id={SystemTypeVersion:Client_Id}&scope={SystemTypeVersion:Scope}&redirect_uri={SystemTypeVersion:RedirectUrl}&state={iPaaSState}

  • OAuth Identifier Field: timestamp

  • OAuth Success Callback Field: code

Shopify Store Credentials

  • Client_Secret: Secret saved when creating your Shopify store

  • Scope: write_Product Category Assignment s, write_Product Category Assignment _feeds, write_Product Category Assignment _listings, write_inventory, write_files

    RedirectUrl:

    https://portal.ipaas.com/Product Category Assignment /subscription-mgmt/subscriptions/authorization/app

Authentication & Security

  • OAuth 2.0 Token: Used for Shopify API authentication.

Integration Flow

  1. iPaaS process triggers assignment operation (Add or Delete) for a product/category pair.

  2. Mapping filter runs and checks whether the iPaaS category has a Shopify Collection external ID.

  3. If not linked → skip processing.

  4. If linked → proceed.

  5. Resolve CollectionId (Shopify) and ProductId (Shopify) via Dynamic Formula.

  6. For Add: call the Shopify API to add the product to the collection (manual collection endpoint or appropriate API).

    For Delete: call the Shopify API to remove/unlink the product from the collection.

  7. Handle errors (rate limit, not found, unauthorized) with retry and error logging.

  8. Log success/failure and update audit fields in iPaaS for traceability.

Mappings

Shopify Product Category Assignment From iPaaS (Parent)

Mapping filter

var value = await GetExternalIdAsync(CategoryId, "Product Category", SpaceportSystemId); if (value != null){return true;} else {return false;}

Description

The collection filter checks if the category has been linked to iPaaS. If the category is not linked, the assignment will not be processed.

Mapping Type

Source Field (iPaaS)

Destination Field (Shopify)

Description

Dynamic Formula

return await GetExternalIdAsync(CategoryId, "Product Category", SpaceportSystemId);

CollectionId

Retrieves the Shopify Collection (Category) external ID.

Dynamic Formula

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

ProductId

Retrieves the Shopify Product external ID.

Error Handling

  • Missing Collection External ID: Mapping filter should skip; log as “Category not linked”.

  • Invalid ProductId/CollectionId: Shopify returns not-found — log failure and mark for manual review.

Testing & Validation

Test Scenarios

  • Add Assignment: Product correctly linked to Shopify Category.

  • Delete Assignment: Product correctly unlinked from Shopify Category.

  • Missing External ID: Assignment skipped with error logged.

Validation Rules

  • Both CollectionId and ProductId must be non-null before processing.

Validation Checklist

  • Categories exist in Shopify before assignment

  • Products exist in Shopify before assignment

  • External IDs correctly mapped in iPaaS

  • Add/Delete actions tested end-to-end

Additional Notes

This mapping only manages assignments. It does not create Categories or Products.

Did this answer your question?