Why website prices diverge from the accounting system
A discrepancy between prices on the website and in the accounting system almost always starts with a manual price list export. A manager exports the table, edits it, uploads it back — and between these steps the price of a product has already changed in the accounting system.
The website keeps a stale value, and the client sees one amount in the product card and another in the invoice. Then comes the phone call, the investigation, and the cancelled order.
Stock levels suffer even more than prices. While the price list travels through email and intermediate files, the product gets sold out or, conversely, restocked.
The website keeps selling what is not in the warehouse, and stock accuracy is checked manually with a delay of several hours. Every such delay means order errors that later fall on support and reputation.
Integrating 1C-Bitrix with Metacommerce closes this gap at the level of data exchange rather than manual operations.
The accounting system remains the single source of truth for prices and stock, and the website receives changes automatically, without an intermediary in the form of an exported file.
We set up the exchange so that price discrepancies on the website do not accumulate: changes go to the storefront by event, not on a schedule of "when the manager remembers."
Separately, we address what to do with discrepancies that have already accumulated — they need to be reconciled before launching the exchange, otherwise the automation will diligently replicate old errors.
We explain how this is resolved and what checks we put in place at the input and output of the exchange.
What the combination delivers: speed, accuracy, controllability
Exchange speed instead of nightly exports
Previously, a supplier's price list went into the catalog as one big scheduled export — the update waited for its window, and items that changed during the day lived with the old price until the next cycle.
The combination builds the exchange on events: a price changes in the accounting system — the record goes into a queue and is applied to the product card within seconds.
Bulk recalculations (a new markup, a full price list change) run in batches and do not block the storefront — the customer sees neither a frozen catalog nor intermediate amounts.
Accuracy: the error rate drops by an order of magnitude
Manual price transfer means typos, lost items, and discrepancies between the website and accounting that surface later in an invoice or at the checkout.
Automatic price updates apply markup and rounding rules on the service side, not in the operator's head: the same logic for all products, identical for retail and wholesale.
Every change is recorded in a log — you can see what changed, when, and by which rule, so disputed items are resolved based on facts, not memory.
Controllability: price as a manageable parameter
Price monitoring stops being a manual check once a week.
Thresholds and rules are configured: where the price is below cost, where the deviation from the market exceeds a set value, where an item has dropped out of the price list — a notification goes to the responsible person for each case.
Price management becomes predictable: category rules, promotional periods, and individual conditions for customer groups are set once and applied automatically.
What this delivers in numbers
The reaction time to a price list change is reduced from hours to minutes, the share of discrepancies between the website and accounting falls into the range of statistical error, and manual labor on price transfer is reduced so much that one person handles it instead of a whole department. A catalog with tens of thousands of items is updated without stopping sales.
Synchronization methods: exchange, agent, external service
Exchange between the accounting system and the website can be organized in three ways, and the choice between them determines how fresh the prices and stock levels the buyer sees are.
The difference is not about "better/worse," but about which class of tasks is covered: a one-time catalog export, regular updates, or a reaction to a change at the moment it occurs.
| Method | When it fits | Limitations |
|---|---|---|
| Periodic exchange | The catalog changes rarely, prices and stock levels are updated on a schedule | Between runs, the data becomes outdated; with a large catalog, the exchange takes noticeable time and loads the website |
| Background agent | Frequent updates are needed without manual launching, the accounting system is accessible from outside | Requires a stable channel to the accounting system; if the agent fails, the exchange silently stops, and monitoring is needed |
| External intermediary service | The accounting system is closed, and the exchange goes through an intermediate link | Another node appears that must be maintained and monitored |
Periodic exchange is the simplest option: a price list or stock levels are exported on a schedule, and the website applies the changes as a batch.
It is predictable and easy to roll back, but between runs the buyer sees yesterday's price, and with frequent runs the load on both systems grows.
The background agent works differently: it tracks changes in the accounting system and transmits them to the website as they appear, without waiting for a schedule.
This provides data freshness, but requires that the channel to the accounting system be available at all times, and that the agent itself be monitored: a stopped process is not always immediately noticeable.
The external intermediary service is placed outside both systems when direct access to the accounting system is closed by security policies.
It receives data, brings it to the required form, and transmits it to the website, relieving the load on the accounting system but adding a node that also needs supervision.
In practice, these methods are combined: the catalog and specifications go through periodic exchange, while prices and stock levels go through an agent or intermediary.
Such a hybrid removes the main load from the accounting system and keeps up to date exactly the data on which the buyer makes a decision.
Stages of implementing 1C-Bitrix integration with Metacommerce
Implementing an integration is not "turning on a module" but a sequence of steps where each subsequent one builds on the result of the previous one.
Below is how we run a project from audit to handover into operation, so that the exchange of prices and stock works predictably from day one.
Audit and design
- Exchange audit. We look at how data flows now: which exports from 1C are already configured, at what frequency, where prices and stock diverge, which items are not matched. We record bottlenecks and the volume of the nomenclature.
- Designing the integration scheme. We determine the direction of flows (1C → website or two-way exchange), the synchronization frequency, what goes into a queue and what is updated immediately. We agree on the scheme with you before work begins.
- Matching rules. We set up the linking of products by SKU, GUID or code — so that an item in the catalog and in the accounting system unambiguously find each other. We separately describe the behavior for new and discontinued products.
Test run and handover
- Test run. We run the exchange on a copy of the catalog: we check the correctness of prices, stock, discounts and availability statuses. We catch matching errors and rule conflicts here, not on the live website.
- Verification on live data. We launch synchronization on the real catalog with monitoring: we watch how the exchange behaves under peak load and when updating large groups of products.
- Handover and regulations. We provide documentation on the exchange scheme, matching rules and control points, and train your team. After that — support and refinement of the rules as the catalog grows.
Describe your task — we will come back with an estimate and a plan by stages.
Artifacts and regulations that remain with you
After launch, the 1C-Bitrix integration with Metacommerce stops being a "black box": your team retains a complete set of materials that can be used to develop the system, hand it over to a new contractor, and restore it without us.
We document not only the working settings but also the logic behind the decisions — why this exchange format was chosen, how entities are mapped, and what happens when data diverges.
- Exchange schema — which entities (products, prices, stock, orders) are synchronized and in which direction, at what frequency, and what serves as the source of truth in case of a conflict.
- Mapping settings — rules for linking items, warehouses, price types, and counterparties between the catalog and the accounting system, including handling of new positions.
- Update regulation — the procedure for rolling out changes in the integration, rollback points, and the conditions under which the exchange is paused automatically.
- Exchange logs — where they are stored, how to read statuses, how to find a specific position from a record and understand the cause of a discrepancy.
- Administrator guide — step-by-step actions for typical situations: manual restart, re-uploading a section, checking a stuck queue.
- Integration documentation — a description of the exchange structure and the connections between blocks, sufficient for making modifications without contacting the authors.
- Monitoring map — which events and thresholds generate notifications, who they are addressed to, and how they are configured.
The materials are handed over in a work-ready form: schemas — in an editable format, regulations and instructions — as versioned documents. This is enough to maintain the integration on your own or hand it over to another team without losing context.
Case study: how price and stock discrepancies were eliminated
The client — a retail chain with several hundred SKUs in its catalog — came with a classic picture: prices and stock on the website were updated manually once a day.
Up to 20 hours passed between the export from the accounting system and publication, and during that time managers managed to sell goods that were no longer in the warehouse, while some items were sold at the old price.
The share of orders with discrepancies reached 12% — each such order ended in a phone call, cancellation, or manual invoice adjustment.
We analyzed the integration and moved it to an event-driven model via Metacommerce: price and stock changes go from the accounting system to the catalog as soon as they are recorded, not on a schedule.
A full recalculation remains as a safety net — once a day we reconcile checksums by item and highlight discrepancies in a separate report so that a person reviews them, not the customer at checkout.
What was changed in the integration
- We switched synchronization from a nightly batch to an event stream: price and stock reach the website within a minute after posting.
- We set up priority rules: if an item is reserved in an order, the stock does not "float" back up during an intermediate export.
- We added a discrepancy log broken down by warehouse and cause — you can see where the accounting system and the catalog diverged and why.
- We kept a manual mode for promotional prices: a manager confirms publication, and the automation does not overwrite it.
Results of the implementation
A month after launch, the share of orders with price and stock discrepancies fell from 12% to 0.4%, and the time from posting to publication on the website dropped from 20 hours to a minute.
A separate effect was the reduced load on support: requests about "the item is on the website but not in the warehouse" decreased severalfold, and managers stopped manually reconciling exports every morning.
It is telling that discrepancy control turned out to be more important than the speed of the integration itself.
Automated integration without reconciliation would simply spread an error through the catalog faster — whereas a daily checksum check catches it before it reaches the buyer.
How is exchange via an agent different from an external service?
An exchange agent is a module that lives inside the site itself and, on a schedule, queries 1C for changes: stock levels, prices, nomenclature. It runs in the same process as the public-facing part, so each exchange cycle competes for resources with customer requests. While the catalog is small, this goes unnoticed.
With a catalog of tens of thousands of items and a frequent schedule, the agent begins to "eat into" response time: the catalog page opens more slowly precisely during the exchange, and under peak load the cycle may fail to fit within the allotted limit and break off midway.
An external service moves the exchange outside the site. It pulls data from 1C, brings it into the required form, and passes it to the site in batches, while the site merely receives the finished result.
The load on the public-facing part becomes predictable: the exchange does not block the processing of customer requests, and the schedule can be set more frequently without risk to response time.
Fault tolerance is also structured differently — if 1C or the site is unavailable, the service preserves the queue and catches up on it upon recovery, instead of losing a cycle and waiting for the next one.
The speed of reaction to changes is the key difference. The agent sees an edit only at the moment of the next run, so a price changed in 1C appears on the site with a delay equal to the schedule interval.
An external service can react to a change event almost immediately, rather than on a timer — this is critical for promotions and repricing against the competitive environment.
Integration support is also different. The agent lives inside the site: when the platform is updated, the module version changes, or you migrate to another hosting, it has to be checked and reconfigured along with the site.
An external service is isolated — a site update does not break the exchange, and the logic for matching products and pricing rules is stored separately and versioned.
The choice between agent or service is a choice between ease of launch and manageable fault tolerance of the exchange on a growing catalog.
Common technical concerns about integration
Engineering concerns about 1C-Bitrix and Metacommerce integration almost always come down to three things: what to do if the exchange is already running, how to handle non-standard prices, and how to make sure the data hasn't diverged. Below are answers to the questions that most often come up during the evaluation stage.
We already have an exchange set up between 1C and the website — will we have to tear it all down?
No. We don't rewrite the existing contour; we build on top of it: we look at which entities are already synchronized, in which direction and at what frequency, and connect price monitoring on top of the current scheduled tasks.
If the exchange is deployed correctly, the changes come down to extending the set of exported fields and configuring matching rules. Rollback means returning to the previous exchange configuration without losing accumulated data.
What about non-standard prices — discounts, promotions, individual terms?
A typical exchange transfers the base price and doesn't see the discount logic.
We describe the calculation rules separately: where the discount is calculated (in 1C or on the website side), what is the source of truth in case of a conflict, and how prices for a specific buyer are handled.
For each product group, the priority of rules is fixed so that a promotional price isn't overwritten by a scheduled export.
How do you verify data integrity after synchronization?
We reconcile control samples: the number of items, hashes of key fields, discrepancies in prices and stock between 1C and the catalog.
Discrepancies aren't "papered over" — they go into a report indicating the source, so it's clear exactly where a record is lost or distorted. The reconciliation routine runs on a schedule, not manually.
What is the hardest part of synchronizing large catalogs?
The volume and frequency of changes. With tens of thousands of items, a full export becomes a bottleneck, so we switch to incremental exchange — transferring only the records that have changed.
This reduces the load on both systems and shortens the window during which the price on the website differs from the accounting price.
Describe your exchange configuration — we'll come back with an estimate and a work plan.
Let's discuss your task around linking prices and the accounting system
To come back with an estimate and a work plan, we need a snapshot of your current process: how prices and stock levels get to the website today and exactly where control is lost.
Describe the task in free form — what gets updated, how often, who confirms changes, and what happens when the website and the accounting system diverge. That is enough to understand the scope of the integration and propose a scheme without unnecessary layers.
Next, we will break down the linkage across four areas: the data source and export rules, the frequency and triggers of updates, handling of conflicts and rollbacks, and control of discrepancies between the storefront and the accounting system.
For each point, we will come back with specifics — what we configure, what stays on your side, and which checks cover typical failures.
What is worth including with the task description:
- the current way prices and stock levels are updated — manual export, a scheduled job, or real-time exchange;
- the reference data involved in prices: price types, discounts, markups by product groups, regional rules;
- the volume of the item catalog and the share of positions that change daily;
- latency requirements: whether the price on the storefront must match the accounting system immediately or a lag of one update interval is acceptable;
- behavior during desynchronization — blocking the sale, showing the last correct price, or notifying the responsible person;
- access and environments: the test environment, the production website, and readiness to allocate a window for rollout;
- who on the business side confirms rounding rules and the priority of price sources.
Based on this, we will put together a work plan: the exchange scheme, the launch procedure, a set of discrepancy checks, and the rollback procedure if the exchange goes wrong.
The integration estimate will be based on your real processes rather than an averaged template — that way the plan will not include unnecessary stages, and price monitoring will cover exactly the points where errors currently occur.

