How website integration with 1C, CRM, and ERP systems works

Imagine this scenario. An online store has 3,000 products. 1C has another 3,000 products, but with completely different prices because someone didn’t update them in time. A customer orders an item on the website that has been out of stock for a long time. The manager receives the order by email, manually copies it into the CRM, then into 1C — and somewhere along the way, they mix up the item number. Sound familiar? If not, you’re lucky. If so, you know why integration is necessary.

Integration is when a website and business systems communicate with each other automatically. No middleman, no manual copying, no human error. If a product is out of stock, it disappears from the website within a minute. When a customer places an order, it immediately appears in CRM and 1C. If the price changes in the accounting system, it is updated on the website without human intervention.

In this article, the Estetic Web Design team breaks down how it works in practice: what types of integrations there are, how APIs differ from webhooks, and what businesses really need — and what is just unnecessary complexity.

What is connected to what and why

There are three most common integration scenarios for Ukrainian businesses. The first is a website + 1C (or BAS, or any accounting system). The main thing here is the synchronization of products, prices, stock levels, and order exchange. 1C knows how much stock there is in the warehouse. The website must know this too. And vice versa — orders from the website must be entered into 1C without manual input.

Second: website + CRM (KeyCRM, Pipedrive, Bitrix24, HubSpot). The main thing here is orders and leads. A customer leaves a request on the corporate website, and the manager sees it in the CRM within a second. With all the data: name, phone number, what exactly they were interested in, which page they came from. No need to check email or copy contacts — everything is already in the system.

Third: website + ERP (full-fledged enterprise resource planning system). This is already the level of medium and large businesses, where purchasing, production, logistics, and finance are tied together in a single system. The website becomes one of the sales channels connected to this ecosystem. An order from the website triggers a chain of events: checking stock levels → reserving goods → generating a delivery note → transferring to logistics. Automatically, without a single manual step.

API, webhooks, file sharing — three ways to connect

Now let’s move on to the technical part. There are three main ways in which a website “communicates” with external systems. Each has its own advantages, disadvantages, and situations where it is appropriate.

API (Application Programming Interface) is the most advanced option. Systems exchange data in real time via HTTP requests. The website requests stock balances from 1C, and 1C responds. The customer places an order, and the website sends the data to the CRM. Everything happens instantly. Most modern CRMs (KeyCRM, Pipedrive, HubSpot) have a documented REST API, and connecting them to a website is a straightforward task.

Webhooks are “reverse APIs.” Instead of a website constantly asking “is there anything new?”, an external system sends a notification when something changes. The order status in CRM has been updated to “Shipped” — the webhook notifies the website, and the customer sees the updated status in their account. Less load on the server, faster response to changes.

File exchange (XML, CSV, Excel) — an “old-fashioned” method, but still alive. 1C uploads a file with products and prices, and the website pulls it up on a schedule — for example, every 30 minutes. This is suitable for businesses where data is not updated frequently (once a day, once a week), or when 1C is an old version without a normal API. It’s not ideal, but it works and is cheaper than full API integration.

Integration with 1C: the most painful and most necessary

1C is the accounting standard for 80% of Ukrainian businesses. At the same time, it is the biggest headache for web developers. Why? Because there are dozens of versions of 1C and hundreds of configurations. Every accountant has their own “tweaked” version, where half of the fields are named differently than in the documentation. Therefore, “connecting 1C” is not a single task, but an investigation: which version, which configuration, what exactly needs to be synchronized, and in which direction.

For WordPress with WooCommerce, there are modules for exchange via the standard CommerceML protocol—a format that 1C supports “out of the box.” Uploading products, prices, and stock levels from 1C to the website and downloading orders from the website to 1C. For OpenCart, similar modules are available on the marketplace, although the selection and quality vary — some need to be modified for a specific project.

If standard CommerceML does not meet your needs (and it does not when you need to synchronize product characteristics, variations, discounts, and customer groups), a custom exchange is built via the 1C API or an intermediate database. This is a serious undertaking, but for a store with 1,000+ products, it pays for itself in the first month — simply because managers no longer have to spend time on manual updates.

Ready-made module or custom development

A question that always comes up. The short answer: start with a ready-made solution, then switch to a custom one when the ready-made solution is no longer sufficient.

For typical scenarios—synchronizing products and orders between WooCommerce and 1C, transferring leads to Bitrix24, connecting KeyCRM to the store—there are ready-made plugins and connectors. Installing additional modules takes from a few hours to a couple of days, including configuration and testing. It’s fast and relatively inexpensive.

Custom development is necessary when: you have a non-standard 1C configuration with custom fields, you need two-way real-time synchronization, your business logic is complex (for example, the price depends on the customer group, region, and order volume simultaneously), or when you need to connect three or more systems together.

On WordPress, custom integrations are written as separate plugins — this is convenient because when updating the theme or WordPress core, the integration module remains unchanged. We always recommend isolating custom code from the main site — there is less chance that something will break during the next update.

The rake that everyone steps on

The first mistake is not thinking through what will happen in the event of a failure. The 1C API is unavailable (the server is down, the office internet is down) — what happens to the website? If the store goes down along with 1C, it’s a disaster. The right approach: the website operates autonomously with cached data, and synchronization is restored automatically when the connection is back.

The second is to synchronize everything in a row. There is no need to pull all 15,000 items from 1C to the website if you only sell 2,000. There is no need to transfer every click on the website to the CRM—only requests and orders. The less data that flies back and forth, the more stable the system works and the less load on the server. A good domain and hosting can handle a lot, but why overload it with unnecessary requests?

The third is to forget about supporting integrations after launch. 1C has been updated, the API has changed, CRM has released a new version — and the exchange has quietly broken down. Managers don’t notice for a week until a customer complains that they ordered a product that is not available. Technical support for projects with integrations must include data exchange monitoring — so that the support team finds out about the failure, not an angry customer.

Who needs it, and who can do without it

Not every business needs integration from day one. If you have 50 products and 10 orders per week, you can easily update prices manually and enter orders into 1C in five minutes. Spending your budget on integration in this case would be premature optimization.

Integration becomes a necessity when: there are more than 200 products and prices change more than once a week; there are more than 10 orders per day and the manager spends an hour just transferring them to the system; there are several sales channels (website, marketplaces, offline) and a single inventory accounting system is needed. If you recognize your situation, it’s time to integrate.

For new projects, the most sensible approach is to lay the groundwork for integration during the development stage, even if you plan to connect it later. Developing a turnkey online store with the right architecture allows you to add integration with 1C or CRM months after launch—without having to redo half the site.

By the way, proper integration indirectly affects the SEO optimization of the site. Up-to-date stock levels mean fewer pages with “out of stock” (Google doesn’t like those). Automatic description updates mean fresh content. Fast order processing means fewer negative reviews and a better reputation in search results. The connection is indirect, but noticeable.

If the website is already up and running and you need to add integration to an existing project, this is a typical case of website refinement. It is important to conduct an audit before you start: what CMS and plugins are installed, and whether there are any conflicts. Otherwise, the new integration may break what is already working. And that means double the work and double the budget.

Integrating your website with 1C, CRM, and ERP isn’t just some “trendy tech” thing; it’s a practical tool that saves time, cuts down on mistakes, and lets your business grow without having to hire more people. Start with ready-made modules, switch to custom ones if necessary, and be sure to monitor the stability of the exchange after launch. And most importantly, order website development in Kyiv from a team that understands not only code but also business processes. Because integration is about processes, not plugins.