Products and Pricing Integrations
This page describes how to integrate product, pricing, and availability data between Norce Commerce and external systems. It provides recommended practices, API usage, and integration patterns for common scenarios.
Tip: For a general overview of integration patterns, see System integration patterns.
Overview of Norce Commerce APIs
Norce Commerce provides several APIs for system integration:
- Norce Commerce Connect:
Main API for importing and updating data (products, prices, on hand, etc.).
Read more: Calling Norce Commerce Connect - Norce Commerce Query:
API for querying and fetching data from Norce Commerce.
Read more: Calling Norce Commerce Query - Norce Commerce Event:
Event-based API for subscribing to changes in Norce Commerce (e.g., product or price updates).
Read more: Using Norce Commerce Event
Integrating Product Information to Norce Commerce
When an external system (such as an ERP) is the master for product data, use the ImportProducts API to create or update products in Norce Commerce.
Integration Flow:
- Fetch or push articles from ERP to an integration layer.
- Apply business logic and mapping rules. Optionally, use Norce Commerce Query to look up codes or other data (e.g., parametrics, categories).
- Call Norce Commerce Connect's ImportProducts to update the product catalog.
API Usage and Examples
- Use ImportProducts to create or update products.
- Product Import Guide — covers the three-level product model, uniqueness rules, product types, flags, and the recommended multi-step import strategy.
- Postman example: Query lookups
- Postman example: Import products
- For Query syntax and filtering examples, see Norce Commerce Query.
Full and Delta Updates
- Full updates: Import all products, typically once per day or week.
- Delta updates: Import only changed products, typically 2-3 times per day.
- Use smaller imports for minor updates (e.g., prices, on hand).
Header Object
The header object in the API request controls which fields the ERP source system is allowed to update.
Working with the X-Stormconnect Header — full guide with field dependency tree and common scenarios.
See Postman example for header usage.
Integrating Product Information from Norce Commerce
When Norce Commerce is the master for product data, other systems receive updates when products are created or changed.
Integration Flow:
- Product changes in Norce Commerce trigger an event (configurable in Admin UI).
- Integration listens for events and fetches messages from the Norce Commerce Event service bus.
- Integration applies business logic and may use Norce Commerce Query for additional data.
- Integration sends changed data to the target system (e.g., ERP).
Event Configuration
Use the
SkuChangedNotificationevent for product changes.Only one subscription per client is allowed.
Use the EntityChanged metadata to determine which systems to update if multiple targets are involved.
Examples
Integrating Price Information to Norce Commerce
When an external system is the master for pricing, use the ImportSkusPriceLists API to update prices in Norce Commerce.
Integration Flow:
- Fetch or push prices from ERP to an integration layer.
- Apply business logic and mapping rules. Optionally, use Norce Commerce Query for additional data.
- Call ImportSkusPriceLists to update prices.
API Usage
- ImportSkusPriceLists accepts a list of SkuPriceList entities.
- Passing only
SalePricesets the price rule to "Fixed price".
Update Strategies
- Use
StandardPricein ImportProducts for base price lists. - For multiple price lists, send a full import with all prices.
- Full updates: daily or with product imports.
- Delta updates: 1-12 times per day, depending on frequency of price changes.
Note:
PartNo,PricelistCode(called "Agreement" in Query), andQuantityBreak(default "1") are required for correct price updates. Products are not created or deactivated viaImportSkuPriceList; useImportProductsfor that.
Examples
Integrating Price Information from Norce Commerce
When Norce Commerce is the master for pricing, use the SkuPriceChangedNotification event to update external systems.
Integration Flow:
- Price changes in Norce Commerce trigger an event.
- Integration listens for events and fetches messages.
- Integration applies business logic and may use Norce Commerce Query for additional data.
- Integration sends changed price data to the target system.
Event Configuration
Use the
SkuPriceChangedNotificationevent.Only one subscription per client is allowed.
Examples
Integrating Availability (On Hand) Information to Norce Commerce
When an external WMS is the master for on hand data, use the ImportOnHands API.
Integration Flow:
- Fetch or push on hand data from WMS to an integration layer.
- Apply business logic and mapping rules. Optionally, use Norce Commerce Query for additional data.
- Call ImportOnHands to update availability.
API Usage
- ImportOnHands accepts a list of SkuOnHand entities.
Note: Setting on hand to 0 is different from deactivating a product for a warehouse. Deactivation means the warehouse cannot handle the product.
Prerequisites — why imported on-hand may not appear
A successful ImportOnHands call does not guarantee that stock shows up in the aggregated OnHand value returned to your application. This is one of the most common integration surprises: the import reports success, but the product still shows as out of stock. For imported stock to appear, the target warehouse must be configured in Norce Admin:
- The warehouse code in your import must match a warehouse that exists in Norce (see the
Codefield on the warehouse). Products must also already exist — see the product import guide. - The warehouse type must be
WarehouseorStore. Only these types are included in aggregated availability;TransportandOtherare available only via direct on-hand checks. - The warehouse must have "Included in stock calculation" enabled.
- The warehouse must be connected to the price list(s) your application uses (including campaign and customer price lists).
See Availability structures — Configuring availability in Norce Admin for the full configuration.
To confirm that an import landed, use a direct on-hand check such as GetProductOnHandByPartNo — these return warehouse-specific values without aggregation and bypass the API cache, so you can verify the imported figure even before the aggregation configuration is complete.
Update Strategies
- Full imports: Deactivate on hand for products not included, but only for specified warehouses.
- Delta imports: Frequency depends on accuracy needs (3-4 times a day to 3-4 times an hour).
Examples
Managing Price Lists in Norce Commerce
Price list definitions (name, code, currency, discount rules) are managed via the Management API. Use the Connect API to import prices into existing price lists.
Process:
- Create or update price list definitions via the Management API. Price list
codemust be unique per client. - Call ImportSkuPriceLists to set prices for products on those price lists.
For Connect-based price list import (e.g., syncing price list structures from an external system), ImportPriceLists accepts a list of PriceList entities.
- Full updates: Usually once per day.
- Metadata Integrations — covers managing all metadata types including price lists via the Management API.
Importing Images and Files
To import images and files programmatically, use ImportProducts and include MainImage and AdditionalImages fields.
ExternalCodeidentifies the image in Norce Commerce.Urlcan be http(s), ftp, or ftp with credentials. Norce downloads the file from that URL, so images do not have to be uploaded as binary.
For non-programmatic imports, images and files can also be bulk-imported (and cleared) from Excel via the Product images and files import type in Admin — see Excel Import. The available image and file categories are defined by your file types.
Once images are imported, they are served from the CDN. For the retrieval URL format, image transformations, and how to reference images from the frontend or in feeds (e.g. Google Merchant Center), see Images and CDN.
Importing Competitor Information
For competitor pricing, use ImportCompetitorSkus to import competitor data.
Accepts a list of CompetitorSku entities.
Typically, only full imports are used (daily).
Further Reading
- Product integration scenarios
- Product Import Guide — three-level model, product types, flags, multi-step import strategy
- Working with the X-Stormconnect Header — field dependency tree and common scenarios
- Metadata Integrations — managing price lists, flags, parametrics, and other metadata via the Management API
- .NET Code examples: Jobs, Product
- Postman examples
- System integration patterns
- Calling Norce Commerce Connect
- Calling Norce Commerce Query
- Using Norce Commerce Event