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.

MODULE FOR 1C-BITRIX

Yandex Delivery: calculation, pickup point selection on map, orders, and tracking

Yandex Delivery: calculation, pickup point selection on map, orders, and tracking

The module integrates an online store built on the «1C-Bitrix: Site Management» platform with the «Yandex Delivery» service. After installation, a delivery service appears in the «Delivery Services» section with two profiles: «Courier to door» and «Pickup from pickup point or locker». Delivery cost and time estimates are calculated during order checkout with caching support.

Technical details

Published
11 August 2026
Updated
23 September 2026
Version
0.7.12
Installed
100–499 times
Compatible editions
Small Business, Business
Responsive design
No
Composite support
No
Compatible with Sites24
No
Developer
Yandex Delivery: calculation, pickup point selection on map, orders, and tracking

What this solution does

The module integrates an online store built on the «1C-Bitrix: Site Management» platform with the «Yandex Delivery» service. After installation, a delivery service appears in the «Delivery Services» section with two profiles: «Courier to door» and «Pickup from pickup point or locker».

Delivery cost and time estimates are calculated during order checkout with caching support. A markup can be configured as a percentage or fixed amount, with rounding options available.

The pickup point selection widget utilizes Yandex Maps. Points are loaded within the map area for any city in Russia, with the map centered on the buyer's city. Filters are available for operators, point type (pickup point or locker), availability of try-on services, and cash-on-delivery options. Cost and time estimates are displayed in each point's card.

Address synchronization for pickup locations (warehouses) is supported with the «Yandex Delivery» cabinet. Users can select a default warehouse and organize self-drop-off (drop-off) at a Yandex point.

Orders automatically generate requests when they reach a specified status. Confirmation, cancellation, and status tracking are handled by a background agent, with a tracking link displayed in the order details. Request statuses are mapped to Bitrix order statuses.

The system supports printing shipping labels and handover acts in PDF format. Multi-item orders include a cargo space editor for specifying weight, dimensions, and product distribution. The module also allows scheduling a courier pickup with selection of a specific date and time interval.

The module supports optional blocking of order checkout if no pickup point is selected on the map.

System requirements:

• 1C-Bitrix: Site Management with the Online Store module (Small Business, Business, or Enterprise editions).

• PHP 8.2 or higher.

• An active contract and a valid Yandex Delivery OAuth token.

Data exchange occurs directly between the website and the Yandex Delivery API; 1C-Bitrix license keys are not transmitted. For delivery processing, customer personal data is sent to Yandex Delivery LLC only to the extent necessary for the service. The store and Yandex Delivery LLC act as independent personal data operators (details in section 5 of the license agreement).

When needed, General iT can implement “Yandex Delivery: calculation, pickup point selection on map, orders, and tracking”, configure the module and verify it against the current website setup.

UPDATE HISTORY

What’s new

7 releases
0.7.12 (23.09.2026)Latest update

Fixed issues identified by the Marketplace security automated check

• The pickup point selected by the buyer is now validated on the server before saving the order and before creating the request: the point must exist in Yandex Delivery and pass the store widget filters (operators, point types, fitting room, post-payment, order payment method). It is no longer possible to enter an arbitrary point ID in the order form—the buyer will see an error and select another point.

• Pickup options hidden from the buyer ("Do not show buyer options") are resolved by the server based on "default" settings, not values from the order form: enabling hidden fitting or partial pickup via POST is not allowed. The API link "partial pickup implies fitting" is accounted for: hidden fitting is not enabled via partial pickup, and if fitting is hidden and not enabled by default, partial pickup is also hidden.

• Manual packaging of cargo units from the request card is saved with a signature and verified against the order cart: it is not possible to enter box composition, weight, or dimensions via the checkout form; unsigned values are ignored, and the request is assembled based on the cart. Packaging manually defined prior to the update must be saved again in the request card.

• The pickup point map page opens only with a signed token issued by the server when the delivery tile is displayed during order checkout. The token is bound to the buyer's session: a copied token does not work in another browser. The self-pickup point selection mode (store data) is available only to staff with rights to the module.

• Price calculation by point on the map is performed only for the current buyer's cart (parameters are taken from their session, not from the request address), so it is not possible to calculate costs for arbitrary weight and total amount.

• Request rate limiting for the map and price calculation is tracked per buyer session, by IP, and in the core cache for the site, not within the session. A new setting "Daily API call limit from the Pickup Point widget" ("Connection and Cache", default 20,000) has been added: once exhausted, the widget returns only cached responses and does not consume the store's token quota.

• The update will automatically re-copy the updated checkout script to /bitrix/js/yandekslogistika.delivery/; reinstalling the module is not required.

0.7.11 (21.09.2026)

The 'Select Pickup Point' button opens a map. Previously, if a pickup profile was already selected:

• On checkout templates where the delivery method description is displayed within the tile (a list with toggles), the button only worked before the 'Pickup from Pickup Point / Locker' profile was selected. After selecting the profile, clicking the button was intercepted by the template as a re-selection of the same delivery, and the map did not open. Now, the button opens the map of pickup points in both cases.

• The update will automatically copy the corrected checkout script to /bitrix/js/yandekslogistika.delivery/; reinstalling the module is not required.

The text and styling of the 'Select Pickup Point...' call-to-action can be configured:

• In the module settings ('Checkout' → 'Text for selecting pickup point' and 'CSS style for call-to-action'), you can replace the hint displayed in the pickup tile before a point is selected, as well as its styling. Leaving fields empty retains the original text and the red bold style.

0.7.10 (09.09.2026)

In the Yandex Delivery cabinet, the store order number is now displayed.

• Previously, the "Order Number" column in the cabinet contained a module service key in the format yd-121909-226975, requiring manual matching of the request to the order. Now, the store order number is sent there—the same number seen by the buyer and printed on documents.

• In the module settings ("Business Rules" → "Order Number for Yandex Delivery"), you can choose what to send: the store order number (default), the internal order ID, or the previous service key (if you are already matching requests by that key).

• This setting applies only to new requests; the number in the cabinet for previously created requests remains unchanged.

• The service "Request Identifier" (displayed in the cabinet as "ID in Delivery") is issued by Yandex Delivery itself and cannot be replaced with the order number: tracking, labels, acts, and cancellations rely on it. Both numbers are now displayed side by side in the request card.

The "Create Request" button accurately shows the result

• Previously, after clicking, a green message "Ready. Requests created: 0; skipped: 0" always appeared—whether the request was successfully created or rejected by Yandex Delivery. A failed creation looked successful, and the reason had to be found in the requests table below on the page.

• Now, counters show the actual result, and rejections are displayed as a red error message with the error text and shipment number. If there are multiple shipments, it shows how many requests were created and exactly which ones failed.

• If an order has no Yandex Delivery shipments, the module states this explicitly instead of showing "Created: 0".

Failed requests are no longer lost silently

• The module automatically creates a request when the order transitions to the status specified in "Business Rules" → "Create request on order status". Previously, if Yandex Delivery rejected the request (e.g., buyer's phone not provided, module not configured, or temporary service error), the order status changed without creating a request, and the manager would only discover this by manually opening the request card.

• Now, each such rejection is logged in the Bitrix Event Log («Settings» → «Tools» → «Event Log»), with the event type «Yandex Delivery: order not created». The record displays the order number, status, shipment number, and the error text from Yandex Delivery.

• A separate record is also created for another silent case: the order has reached the required status, but it contains no shipments with module profiles, so no order will be created.

Orders with multiple items no longer hit the pickup point limit

• The module still declares the order as a single shipment—this keeps delivery costs lower, and for standard orders, nothing changes.

• Previously, if such a shipment did not meet the pickup point restrictions, all pickup points became unavailable for selection: an order with two boxes of 13 kg each could not be delivered, even though each box individually met the restrictions.

• Now, in this case, the module automatically recalculates the order by boxes—one per item—and offers delivery at its actual cost. The price will increase only where delivery would otherwise be impossible.

• The same logic applies when creating an order, so the order is sent to Yandex Delivery in the same box configuration used to calculate delivery for the customer.

• You can still manually specify your own packaging in the order card—it takes precedence over automatic packaging. The «Auto-distribute (1 box = entire cart)» button gathers everything into one box, as the module does by default; the new «One box per item» button distributes the order by items—for orders that do not fit within a single box's pickup point restrictions.

Free delivery is also free on the pickup point map

• The pickup point selection widget considers delivery discounts from «Cart Working Rules» (including «Free delivery from order amount»). Previously, the map showed the Yandex Delivery tariff, but after selecting a point, the cart would reset the cost to zero—the customer would see two different prices.

• When the cost is zero, the point card displays «free» instead of «0 RUB».

• Changes to the module's business rules and cart rules are applied in the widget immediately, without waiting for the price cache to expire.

Live mode by default

• Test mode ("Connection" → "Test mode") is no longer enabled by default: a new installation immediately works with the live Yandex Delivery circuit. For already installed stores, the mode does not change—the saved setting remains in effect.

An order for self-pickup from a pickup point is placed with a mandatory "Delivery Address"

• Previously, when a pickup point was selected, the "Next" button during checkout could respond with "Fill in the required field 'Delivery Address'": the self-pickup field was hidden, and the mandatory check was enabled for most stores. Now, the address of the selected point is automatically recorded in the "Delivery Address"; it is included in the order and documents. When switching to a courier, the pre-filled address is removed.

• The pickup point map opens for the buyer's city without a Yandex Maps key: the city coordinates are now correctly passed to the widget again.

0.7.9 (03.09.2026)

Module settings are no longer lost upon reinstallation

• A confirmation step with the 'Save module data' checkbox enabled has been added when uninstalling the module: the token and connection settings, pickup addresses, order status mapping, and request history remain in the system. Previously, data was always deleted, causing all store settings to be reset when updating via 'uninstall → install'.

• Reinstalling on top of saved data automatically applies them without requiring reconfiguration.

Courier call for pickup

• Fixed the 'missing required field 'parameters'' error when calling a courier: the mandatory cargo parameters block has been added to the request.

• The courier call form now includes fields for 'Volume, m³', 'Weight, kg', and 'Movers required' — these are sent to Yandex Delivery.

0.7.8 (26.08.2026)

Order placement

• Until the buyer specifies a city or address, courier delivery displays the hint "Specify the city or delivery address" instead of "Calculation service temporarily unavailable"; invalid API requests are eliminated with every recalculation.

• The "Delivery address" field no longer remains hidden after switching from self-pickup to courier or other delivery types — including on non-standard order checkout templates.

• New setting "Property code: location" (Checkout tab) — which order property to use to obtain the buyer's city for the pickup point map. Empty means auto-detection, as before.

• Calculation accuracy: the updated cost calculation, taking the order payment method into account, is now available for stores updated with the package from version 0.7.6.

Pickup point map

• The map opens in the city selected by the buyer during order checkout — now even without a configured Yandex Maps API key (coordinates for major cities are embedded in the module).

• The map no longer requests points without area boundaries — this could exhaust server memory on hosting with typical limits.

Access and diagnostics

• New "Access" tab in module settings: module access rights can be granted to a user group (view or full access) — store managers can work with Yandex Delivery orders without full administrator rights.

• API request log: each record includes a request identifier (trace_id) for contacting Yandex Delivery support; the new "Detailed log" option supplements records with request and response bodies, masking buyers' personal data.

• The Yandex Delivery order includes the module identifier — the order source is visible in Yandex Delivery statistics.

YOUR PROJECT INFRASTRUCTURE

A home for your website

BEFORE YOU ORDER

Let’s go through the details.

Is installation free?
The solution itself is free. Installation, configuration and customisation services are agreed separately. A compatible platform and an appropriate platform licence are required.
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.
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