Configuring Courier Delivery in 1C-Bitrix: Complete Guide
Imagine a customer placing an order on your site, selecting courier delivery, but it doesn't appear in the cart. Or the shipping cost is calculated with a fixed rate instead of a formula—and you lose profit on small orders. Most often the problem lies in misconfigured restrictions: location, weight, or sum constraints set incorrectly, and payment systems not bound to the delivery service. As a result, the driver arrives in the wrong city or the customer can't pay. We fix such bugs regularly: over 30 projects in configuring 1C-Bitrix shipping—from simple urban deliveries to multi-warehouse setups with dozens of zones and dynamic cost calculation. In this article, we'll break down how to configure courier delivery correctly, avoiding typical pitfalls.
We'll guide you through the process step by step: from creating the service to binding payment systems and setting schedules. We'll cover the most common hidden issues and how to bypass them with minimal effort. If you already have a store on 1C-Bitrix, you can apply this knowledge immediately. If not, after reading you'll know exactly what to demand from a developer.
Creating a Courier Delivery Service
- Go to
Store → Settings → Delivery servicesand click "Add service". - Select "Own delivery service".
- Fill in the parameters:
- Name: e.g., "City Courier Delivery".
- Code:
courier_city(unique identifier). - Cost: fixed or formula (see example below).
- Currency: ruble.
Basic setup can be done in 15–20 minutes if the delivery zones and tariffs are known in advance. This quick configuration saves up to 30% on initial costs compared to hiring a developer.
For formula-based calculation, use PHP expressions:
[PRICE] >= 3000 ? 0 : 350[PRICE]is the order total,[WEIGHT]is weight in grams. A custom delivery handler is about 5 times more flexible than the standard formula: it can account for address distance, courier service tariffs, promo codes, and other parameters. Using the standard formula is 3 times faster for simple cases, but for complex logic, coding a custom handler from the start is best.Setting Restrictions
Restrictions define the conditions under which the delivery service is available. They are set on the "Restrictions" tab in the service card. Incorrect restrictions cause 90% of delivery display errors.
Restriction type Parameters Example Location Selection of cities/regions, zones Only Moscow and Moscow region Minimum amount Number in currency 500 rubles Maximum weight Number in grams 30000 g User groups Group IDs Authorized users When configuring delivery zones, note: if a city is not added to the list, the service won't show. Also, restrictions are stored in the
b_sale_delivery_restrictiontable and apply immediately — no caching. So set them correctly the first time. For example, specifying a minimum amount of 500 rubles ensures the shipping option only appears for orders above that threshold.Why Payment System Binding Is Critical
Without binding to payment systems, delivery may not work: the customer selects card payment, but the courier delivery is incompatible with that method. In 80% of cases, the error "no shipping services compatible with the payment system" occurs precisely due to missing binding.
To avoid this, go to
Store → Settings → Payment systems, select the needed payment system, and on the "Delivery services" tab, check which services it works with. For example, cash on delivery only for courier shipping, while e-wallets for all. Without binding—100% error on incompatibility; with binding—correct calculation. This step cannot be skipped.Setting Dynamic Scheduling and Deadlines
The "Settings" tab of the delivery service allows you to set:
- Delivery period: "from 1 to 3 days".
- Delivery condition: text description, e.g., "Delivery on the day of order if placed before 2 PM".
But that's just text. For actual time checking, you need a custom handler. It analyzes the current time and date, and accordingly enables or disables delivery. Developing such a handler takes 1–2 days and requires knowledge of the Bitrix API. The result is real scheduling, not a static label.
What's Included in Courier Delivery Setup?
Stage Duration Basic setup (service, restrictions, payments) 3–5 hours With custom formula and schedule 1 business day Complex integration (multiple zones, logistics) 2–3 days Custom handler development 1–2 days As a result, you get:
- Working courier delivery with specified rules.
- Payment system binding.
- Brief documentation of settings.
- Testing on a test order.
- Functionality guarantee and 14 days of support.
Results and Guarantees
For over 5 years, we have been implementing and refining 1C-Bitrix. We've completed 30+ delivery projects, including complex integrations with 1C, CDEK, and proprietary courier services. Our experienced engineers handle any task—from simple courier shipping to multi-warehouse with dynamic calculation. Contact us to discuss your situation—we'll offer the best solution without unnecessary extras. Order courier delivery setup and get a smoothly running store without headaches.
For more details, see the official documentation.

