Client complains: 'Delivery to Kaliningrad costs 300 rubles, but to Moscow — 500, though the weight is the same — 2 kg.' This situation is familiar to many. Bitrix calculates delivery by template if not configured individually. We've encountered this dozens of times: in one project, incorrect product weights caused a 30% error; in another, the CDEK API returned a price half of our tariffs. Our experience: over 50 delivery configuration projects, from simple fixed rates to integrations with CDEK and Russian Post APIs. Properly configuring delivery cost calculation on 1C-Bitrix not only ensures accuracy for the client but also reduces support workload. According to our data, a correct calculation reduces customer inquiries by 40% and increases order conversion by 15%.
How We Solve Delivery Calculation Problems
Delivery cost calculation in Bitrix works through the sale module. A delivery service is a PHP class inheriting from \Bitrix\Sale\Delivery\Services\Base, which implements the calculateConcrete() method. When placing an order, Bitrix calls this method and expects a CalculationResult object with price and delivery time.
Calculation methods:
- Fixed price. Set in the admin panel without code: specify the amount in the delivery service properties. Suitable for 'delivery 300 rubles in Moscow'.
- Tariff grids. Price depends on weight and/or order amount. The table is stored in
b_sale_delivery_zone_rate. Configured in the admin panel. - By location. Tariff is linked to a location tree node, automatically applied to all child settlements.
- Calculation via external API. Real-time request to the delivery service API. Accuracy is 2-3 times higher compared to fixed tariffs for non-standard routes. For example, integration with the CDEK API allows receiving actual rates considering client discounts.
Why Volumetric Weight Matters for Calculation?
Logistics companies often calculate by volumetric weight: (length × width × height) / 5000. The standard Bitrix mechanism does not account for this — we add it to calculateConcrete():
$dimensionWeight = ($length * $width * $height) / 5000; $chargeableWeight = max($actualWeightKg, $dimensionWeight); Dimensions are taken from product properties (b_iblock_element_prop) or from offer fields. Without this calculation, delivery of bulky items (e.g., furniture) can be underestimated by 2-3 times, leading to losses.
How to Create Your Own Delivery Service?
- Inherit from
\Bitrix\Sale\Delivery\Services\Base. - Implement the
calculateConcrete()method. - Register the handler in the admin panel.
Typical configuration errors:
- Product weight is not filled in the catalog — delivery is always 0.
- Buyer region is not determined (property
LOCATIONnot set). - Multiple services with overlapping tariff zones — conflict when selecting.
Tip: how to avoid common mistakes
Ensure weight is specified for each product, otherwise delivery will be zero. Also check that all products have dimensions filled if using volumetric weight.Comparison of Calculation Methods
| Method | Advantages | Disadvantages | When to Use |
|---|---|---|---|
| Fixed | Simple, no programming | Not flexible | Few zones, simple rules |
| By weight | Accounts for actual weight | Does not account for dimensions | Products with large weight variance |
| By location | Adapts to regions | Complex setup | More than 10 regions with different tariffs |
| External API | 2-3 times more accurate | Requires programming | Large catalogs, dynamic tariffs |
Comparison of Delivery Services by Accuracy
| Service | Calculation Type | Error Margin | Recommended For |
|---|---|---|---|
| CDEK | API | 5-10% | E-commerce, urgent shipments |
| Russian Post | API | 10-15% | Unprofitable directions |
| Boxberry | API | 5-8% | Small towns |
What's Included in the Work
- Analysis of delivery requirements: which services, zones, dimensions.
- Architecture design: selection of methods, tariff grids, integrations.
- Implementation of custom delivery services considering volumetric weight and API.
- Testing on different scenarios: weight up to 50 kg, regions with different tariffs, discounts.
- Documentation and training for your managers on settings.
- Post-launch support: quick bug fixes.
Our Experience and Guarantees
We have been working with Bitrix for over 10 years and completed 50+ delivery configuration projects — from small stores to federal chains. We guarantee that the cost will be calculated correctly regardless of complexity. Get a consultation — we'll analyze your case and offer the optimal solution. Contact us to discuss details and order a calculation.
1C-Bitrix documentation: Working with delivery services

