Case Study

Business Central to nopCommerce catalogue sync at 297,117 SKUs for a US manufacturer

The item master was leaving Microsoft Dynamics 365 Business Central through Configuration Packages and entering nopCommerce by hand. nopStation replaced that with a custom AL extension that moves the catalogue, its attributes and 95 million attribute values on demand.
Business Central to nopCommerce catalogue sync at 297,117 SKUs for a US manufacturer

 

 

297,117Product SKUs in catalogue
~1 MProduct attributes
95 M+Attribute values synchronised
1,000Records per batch, configurable

The client

The client is a US-based manufacturer of premium furniture products and signage decor, and a nopStation client since 2023. Its commercial model depends on a large and constantly changing product catalogue, alongside product visualisation, custom design workflows and enterprise workflow automation.

As the range and the customer demands grew, the previous platform reached its scalability limit. The business needed a commerce system able to carry high product volumes across category management, centralised media and customer workflows, with Microsoft Dynamics 365 Business Central 28.2 as the ERP system of record and nopCommerce 4.9 as the storefront.

The immediate problem was how item data moved between the two. Everything went through Configuration Package exports and manual imports, at a catalogue size where that is measured in days rather than minutes.

The challenge

The catalogue itself was not the hard part. The attribute layer underneath it was three orders of magnitude larger, and that is where standard synchronisation approaches break.

01A spreadsheet process carrying millions of records

Item master data was exported from Business Central using Configuration Packages and imported into nopCommerce manually. At this catalogue size that is a multi-day operation every time the range moves.

02Slow enough to shape the release cycle

The client described the manual export and import cycle as highly inconvenient and extremely time consuming, which in practice means catalogue changes queue up behind the effort of publishing them.

03An attribute layer at extreme scale

Beyond the items themselves, the catalogue carries roughly one million product attributes and more than 95 million attribute values, a volume that standard synchronisation patterns cannot move reliably.

95 million Attribute values moved between the ERP and the storefront on a single user action.

What we did

nopStation built a custom AL extension inside Business Central rather than bolting a middleware layer on the outside, so the synchronisation runs where the data already lives.

01Purpose-built Business Central objects

Custom tables, pages, codeunits, permission sets and page extensions were developed specifically for this integration, beyond anything available out of the box, giving the sync its own configuration surface and permission model inside the ERP.

02Configurable batch synchronisation

Data moves in batches of a configurable size, defaulting to 1,000 records. Users trigger a run on demand at any point rather than waiting on a fixed schedule, so a catalogue change can be published when it is ready.

03An OData approach tuned to the attribute volume

The core engineering problem was the batch-size tradeoff. Small batches generate an unworkable volume of HTTP requests, large batches produce payloads that time out. An optimised OData approach moves roughly one million attributes and more than 95 million values without hitting either failure mode.

ONE-WAY, ON-DEMAND SYNCHRONISATIONDynamics 365 Business Central 28.2Items297,117Attributes~1,000,000Attribute values95,000,000+Custom AL extensionREST and OData APIsCustom tables, pages, codeunits,permission sets, page extensionsBatches of 1,000, configurableTriggered on demand by a usernopCommerce 4.9Catalogue in syncAttributes in syncAttribute values in syncNo spreadsheet stepTHE BATCH-SIZE TRADEOFF THAT HAD TO BE SOLVEDBatches too smallRequest volume becomesunworkable at 95M values1,000 records, configurableThe setting that moves thevolume without either failureBatches too largePayloads grow past thepoint where they time outThe extension runs inside Business Central, so the synchronisation executes where the data already lives rather than through an external middleware layer.
Figure 1: the one-way synchronisation pipeline, and the batch-size tradeoff the extension was built to solve. Scroll the figure sideways to see it in full.
Before and after

From a multi-day manual cycle to one action

The same data set, moved two different ways. The change is in who does the work and how often it can be repeated.

Before

Configuration Package export, manual import

  • Item master exported from Business Central through Configuration Packages
  • Millions of records moved into nopCommerce by hand
  • Described by the client as highly inconvenient and extremely time consuming
  • Error-prone at volume, with no repeatable verification
After

Single-action, on-demand synchronisation

  • Items, attributes and attribute values flow end to end automatically
  • Batch size configurable, default 1,000 records per batch
  • Triggered by a user in Business Central whenever the catalogue changes
  • Headroom well beyond 297,117 SKUs and 95 million attribute values

Business impact

A manual process replaced, not accelerated. Millions of records that were previously moved by hand now transfer end to end between Business Central and nopCommerce with no spreadsheet step in between.

The scalability ceiling removed. The data foundation carries catalogue growth well past current volume, which the previous manual process could not.

Sync-failure risk engineered out. Solving the batch-size tradeoff avoids the timeout and reliability failures that typically appear when data moves at this scale.

Delivered by a two-person team. One Microsoft Dynamics 365 Business Central developer and one nopCommerce developer.

297,117Product SKUs under automated synchronisation, with headroom well beyond that.

Results

Delivered against the engagement

  • 297,117 product SKUs brought under automated synchronisation
  • Approximately 1 million product attributes and more than 95 million attribute values synchronised
  • Configuration Package export and manual import replaced by a single user-triggered action
  • Batch size configurable, defaulting to 1,000 records per batch
  • Sync-failure risk reduced by resolving the batch-size tradeoff between request volume and payload size
  • Delivered by one Business Central developer and one nopCommerce developer
Where it stands now

A catalogue that publishes on one action

The catalogue publishes from Business Central to the storefront on a single user action, and the volume that used to define the release cycle no longer does. The data foundation carries growth well past the current 297,117 SKUs, so the constraint the business worked around for years has been removed rather than reduced.

Book a Meeting