Payments are experiencing issues due to temporary restrictions in Russia. If your payment does not go through, please submit a support request.Our support team is available 24/7 — we are always here to help with hosting and server issues.We are now accepting requests for dedicated server rental and colocation services in our data center.Reminder: we recommend enabling backups for additional data protection.A new VPS/VDS lineup with NVMe storage and improved performance is now available.Maintenance work on some servers has been completed. All services are operating normally.
Integration with SBIS (Retail)

MODULE FOR 1C-BITRIX

Vintra

Integration with SBIS (Retail)

The module integrates an online store on 1C-Bitrix with the SBIS-Retail (Saby) system. It exports the product catalog and category hierarchy to an import.xml file in YML format for import into the Bitrix Catalog information block. Stock data is exported to a stocks.xml file containing fields for total stock, reserved quantity, available quantity, and reservation validity period.

5.00/5 · 2 ratings

1C-Bitrix Marketplace: 5/5 · 2 ratings

Technical details

Published
8 May 2026
Updated
11 October 2026
Version
1.8.0
Installed
Fewer than 50 times
Compatible editions
First Site, Start, Standard, Small Business, Business
Responsive design
No
Composite support
No
Compatible with Sites24
No
Developer
Vintra

What this solution does

The module integrates an online store on 1C-Bitrix with the SBIS-Retail (Saby) system. It exports the product catalog and category hierarchy to an import.xml file in YML format for import into the Bitrix Catalog information block. Stock data is exported to a stocks.xml file containing fields for total stock, reserved quantity, available quantity, and reservation validity period. Paid orders from the website are sent to the SBIS-Retail cash register. The module retrieves the external product code stored on the product card in SBIS. SBIS nomenclature is synchronized with Bitrix24 CRM via an incoming webhook. Catalog, stock, and reservation updates are performed regularly on a schedule using Bitrix cron agents.

The export format for import.xml includes the following data for each product: unique identifier, availability status, name, price, currency ID, category ID, description, nomenclature number, external ID, external code, unit of measure, barcode, image links, and a list of attributes with their values.

Wintra Sbis Integration (Retail) module.

Data regarding product availability is exported to the stocks.xml file using XML tags: stock, total, reserve, reserve_until, and free. The structure example includes the offer identifier, stock quantity, total quantity, reserved amount, reservation expiration date, and free balance.

New in version 1.7.0

Customer invoice. An invoice is issued in Sbis based on the store order: prices, VAT, and billing details are taken from the accounting system, not the website. The invoice is created only once; a subsequent click returns the already issued document instead of creating a duplicate.

Product reservation. The item from the invoice is reserved on the Sbis warehouse immediately after issuance. The reservation holds the item and prevents sale to another customer, so it is enabled intentionally. Sbis has no public reservation API; the integration uses internal interface methods, and even if these methods fail, the invoice remains issued.

General iT can connect “Integration with SBIS (Retail)”, configure it and verify the integration with the existing website.

UPDATE HISTORY

What’s new

16 releases
1.8.0 (11.10.2026)Latest update

The quick incremental update of modified items (catalog guard and delta file) has been removed. Read this before updating: an item created or corrected in SBIS will no longer arrive at the site within a few minutes; it will arrive with the next full exchange. The reason is honest: SBIS has no way to ask "what has changed since such-and-such hour," so the mechanism had to be built via a workaround—comparing catalog snapshots and fetching each item with a separate request. This hit the limit on request frequency and threatened to block the exchange channel, while on the site side it required separate scheduling coordination. We continue to search for a way to deliver changes quickly and will restore it when it is reliable.

The module silently lost products during exchange—up to 39 percent of the price list. SBIS limits request frequency: no more than 50 requests per minute; exceeding this results in a rejection and a two-minute block. The rejection comes as a normal response, and the module read it as "there is nothing in this folder"—the entire folder was skipped, with no single error in the report. A measurement on a live database showed that instead of 3844 items reaching the site, only 2326 arrived, and each time different ones. Now rejections are recognized, the exchange proceeds at an allowed pace, and the number of requests is visible in the run report.

Products without a section are no longer discarded. Previously, the section was determined indirectly: items were taken from the price list, and the section was selected from the catalog export. An item missing from that export lost its section and disappeared from the site; if an entire folder failed to appear in the export, it too disappeared. On a live database, the "Bearings" branch disappeared this way—31 items with price and stock. Now the section is taken directly from the catalog, so there is no way to lose it.

Two honest operating modes, and choosing between them is the first question in settings. "From SBIS catalog" — products, the tree structure, and characteristics are taken directly from the catalog; a price list is not needed at all: everything in the specified folder is imported, and maintaining a second copy of the assortment is no longer required. "From price list" — the previous approach for those who manually assemble the showcase and set their own prices within it. The form displays only the fields needed for the selected mode.

The export report now shows the number of requests to SBIS and the number of waiting periods.

Stock levels are taken from the catalog in any mode. Previously, they bypassed the price list, and items not included in the price list had no stock at all. A product has stock regardless of whether it is sold via the price list or not.

The catalog folder code is now required in any mode: it limits the traversal to a single branch. Without it, the traversal covers the entire organization's nomenclature.

When the module is installed, the "from price list" mode is enabled by default. Switching to the catalog changes both the export composition and the prices, so it should be enabled only by the owner consciously.

1.7.0 (30.09.2026)

Customer invoice based on the store order. Once the order is placed, the invoice is automatically generated in SBIS: prices, VAT, and details are taken from the accounting system, and the invoice number is also taken from there; the website does not maintain its own numbering. The print form is attached to the order and sent to the customer via email with the attachment. The invoice is issued exactly once: a repeated click returns the already issued invoice rather than creating a second one—two invoices for a single order mean someone will pay for a cancelled one.

The order composition is verified against the warehouse before issuance. If a position is missing or has no price, the invoice is not issued, the order is moved to the manager approval stage, and the customer is shown exactly which positions are holding up the order. An invoice for a composition that is not in stock is more dangerous than no invoice at all: payment is made immediately based on it.

Reservation of goods for the issued invoice. Goods are reserved in the SBIS warehouse immediately after issuance, with the term set by configuration. The reservation reduces the stock quantity received on the website, so the goods are no longer offered to other customers.

The "Invoices" tab in the module settings. Issuance, order stages, reservation, bank details, and department—all in one place. Stages are selected from a list with their names, not codes.

The print form lacked both bank details and VAT. There were three reasons for this, and each failed silently: the document was created, the amount was correct, and there were zero errors. The attachment was sent in format 3.01, where tax is specified via tags rather than attributes; along with the file, its details—type, subtype, and version—were not transmitted, leaving the document unformatted; the print form was taken from the link to the document itself, which is a template, whereas the ready-made invoice exists as a separate attachment.

The invoice was issued with an extraneous warehouse. The organization is now explicitly named: without this, SBIS selects it automatically based on the document author's account, and along with it, its warehouse is inserted; accounting cannot recognize such a document, and stock levels become inconsistent.

The account number started with a one. The empty SBIS number was filled in automatically; now the number is requested in advance from the accounting system, and numbering remains continuous.

The reason for SBIS rejection is no longer lost. In background tasks, translation is unavailable, and together with the message wrapper, the service response text itself disappeared — what went out was 'the accounting system did not accept the document' without a single word explaining why.

1.6.0 (23.09.2026)

Step-by-step export of the product catalog and stock levels. Buttons on the "Export" page no longer wait for a result from a single request: the process runs in 20-second segments, and the page shows how much has been collected and how many sections remain. A connection break causes no data loss; the next click resumes from the same point. Why: a catalog with three thousand items takes 5–10 minutes to export, while a typical hosting web server terminates the request around the one-minute mark and returns a 504 error. Exports from the admin panel never completed before and appeared as a "connection error" despite SBIS being operational. Verified on 23.09.2026 on reg.ru: a catalog with 3226 products and 110 categories was collected in 19 steps.

Methods "Nomenclature::runStep()" / "Stocks::runStep()" and the "resetStep()" action; the "export_step" action in the admin AJAX endpoint.

The cron schedule still triggers the previous single-attempt path — see "DEBT.md".

1.5.0 (01.09.2026)

Dimensions arrive at the site as three separate numbers instead of one length repeated three times. The YML format keeps all three dimensions in a single line as a tag labeled dimensions containing 60.000/2.000/3.000, while in Bitrix length, width, and height are three separate fields. One tag does not split into three fields: the import converted the string to a number and each time returned 60 — the length was set correctly, but width and height silently repeated it. No error occurred: the file was correct, but the mapping could not express the required values. Now, alongside the old tags, tags labeled length_mm, width_mm, and height_mm are exported.

Weight and dimensions are now in the same units as Bitrix stores them. YML uses kilograms for weight and centimeters for dimensions, while Bitrix uses grams and millimeters. Previously, conversion had to be set manually in the import profile. Now there is a tag labeled weight_g in grams, and the three new dimension tags are directly in millimeters — fields can be mapped directly without conversion. The old tags labeled weight and dimensions remain as they were, and already configured profiles are untouched.

An empty dimension does not become zero. If only length is specified in the SBIS card, only it will be written to the file, while width and height will remain without a tag — otherwise the import would overwrite existing site values with zeros.

The schedule now includes a start time. Previously, only the interval was set, and the first run was scheduled for now plus the interval, i.e., at a random time. Moreover, Bitrix calculated the next run from the end of the previous one, so a daily export drifted forward by the duration of the exchange. Where the file is fetched by the hosting schedule, this breaks the order: the export arrives during the import time, and the site starts receiving yesterday's file — without any errors in the reports. Now, alongside the interval, there is a time field, and the specified hour is maintained.

The schedule table shows when the next run will occur. The value is taken directly from Bitrix, not recalculated: it must show what the site will actually do.

The module's tables no longer conflict with the database encoding. The encoding was hardcoded, causing the standard website check "Table Encodings in DB" to fail on databases with different encodings. Now the module does not specify an encoding at all and uses the one set for the database; existing tables are converted to it during updates.

The module no longer conflicts with neighboring Vinttra modules over the menu icon. The handler for the common item "Vinttra.Hub" had the same name across several of our modules: on a site with two of them, the icon depended on which one loaded first. The names have been separated into their own namespaces.

Four unused addresses have been removed from the delivery. The "ajax/" folder duplicated a live handler and was never called, yet it remained as four extra entry points on the site. During updates, these files are deleted from already installed sites.

Russian comments in page markup have been translated to Latin script. Users do not see them, but in archives they appeared as "?".

1.4.0 (24.08.2026)

New and modified items arrive on the website within minutes, not the next day. A 'catalog guardian' has appeared: every few minutes it queries SBIS for the catalog composition, compares it with the previous check, and compiles into a separate small file only what has appeared or changed. The full exchange, which used to occur once a day, continues as before; the guardian does not replace anything but bridges the gap between 'a manager created an item in SBIS' and 'it is visible in the store.' A person working in SBIS does not need to access the website admin panel.

The composition is compared, not the quantity. The number of items does not reveal which one is new: SBIS does not provide creation dates at all. Therefore, the guardian maintains a fingerprint for each item—name, price, section, weight, dimensions—and can see by name what has appeared, what has changed, and what has disappeared. All in a single query for the entire check.

The delta accumulates until a full export. The file is not rewritten each time but appended to: otherwise, an item that the import has not yet retrieved would be lost during the next check. The daily exchange retrieves everything at once and clears the accumulator.

Important: the delta file requires a separate import profile—a copy of the main one, but with actions disabled when an item is missing in the file. The file contains multiple items, and standard settings would deactivate the entire catalog based on it. The hint for the setting states this directly.

Fuse for delta size. If more items have changed than specified in the setting (default is one hundred), the incremental reload is skipped — such changes will be handled by the full export. This protects against a flood of requests after price list regeneration, when fingerprints change for all items at once.

Lock against simultaneous exchanges. It did not exist at all: while the exchange occurred once a day, this was not a problem, but with the guard, the collision became a matter of time. Now, full export and the guard do not step on each other's feet, and the lock is automatically removed upon expiration so that a failed process does not permanently lock the exchange.

The delta file is created immediately, even if empty. An import profile pointed at a non-existent file does not crash but hangs: verified on a live site—the process ran for ten minutes with an empty log. If such processes were launched every few minutes, they would accumulate until memory was exhausted.

USER EXPERIENCE

Solution reviews

How does this solution work in a real project? Share your experience and help others choose.

Be the first to share your experience

There are no reviews of this solution on git.ru yet. Tell us what worked well and what could be improved.

Verified purchaseAdd a key if you wish. A verified review gets a badge, priority placement and more rating weight.

Open to every clientJust sign in to your account. A key is optional; all reviews are moderated.

YOUR EXPERIENCE MATTERS

Your review

YOUR PROJECT INFRASTRUCTURE

A home for your website

BEFORE YOU ORDER

Let’s go through the details.

What does the price cover?
The displayed price covers the solution itself. Platform licensing, installation and customisation are checked separately. If the page offers bundles, select the required option before submitting a request.
How do I check compatibility?
Compare the supported editions and solution version in the technical details with your project. Before installing on a live website, we recommend making a backup and checking the solution in a test environment.
Is there a trial?
The developer lists a trial of 7 days. The trial button opens the installer in your website control panel. Check the required features and compatibility before purchasing.
How much does this solution’s renewal cost?
The current renewal price is 7,450 ₽. Before you order, a manager will confirm the renewal period and whether it applies to your licence.
Can you help with implementation?
We can help install the module, check its settings and verify how it works in your project. Compatibility with other customisations and the scope of work are assessed before we begin.

GENERAL iT

Let’s discuss your project

Получатель: ООО «Дженерал Ай Ти Рус»

1C-BITRIX

Install solution

Enter a domain with or without https://. The installer will open in your website control panel in a new tab.

Solution screenshots

Solution screenshot