Shiptor Integration for Bitrix: Delivery Module & Fulfillment

Shiptor Integration for Bitrix: Delivery Module and Fulfillment Imagine: an online store on Bitrix loses up to 20% of orders because the customer doesn't see favorable delivery options or encounters a non-working pickup point binding. We've faced this dozens of times. Shiptor—a delivery service a

Our competencies:

Frequently Asked Questions

Shiptor Integration for Bitrix: Delivery Module and Fulfillment

Imagine: an online store on Bitrix loses up to 20% of orders because the customer doesn't see favorable delivery options or encounters a non-working pickup point binding. We've faced this dozens of times. Shiptor—a delivery service aggregator and fulfillment operator—solves the problem in 4–10 days. Its unified API provides access to 50+ carriers, and a properly configured integration reduces order leakage by 15–30%. One of our clients with a catalog of 12,000 products achieved significant savings on commissions after connecting Shiptor.

Shiptor is essentially two products in one: a logistics aggregator (single API for accessing CDEK, Boxberry, DPD, Russian Post, and others) and fulfillment (storing goods at Shiptor warehouses with order-based shipping). For an online store on Bitrix, integration covers both tasks through one API.

How Shiptor API Works

Base URL: https://api.shiptor.ru. Authorization: Bearer token. Documentation is available at shiptor.ru.

Key features:

  • Cost calculation for multiple carriers in one request
  • Create, update, cancel shipments
  • Manage warehouse stock (fulfillment)
  • List of pickup points and parcel lockers
  • Shipment tracking
  • Automatic label printing

Integration Architecture in Bitrix

Shiptor can solve two different tasks in a project, and their architecture differs:

Option 1: Logistics only. The store stores and picks goods itself; Shiptor is just the carrier. Integration is limited to a delivery module: calculation → order creation → tracking → label.

Option 2: Fulfillment. Goods are stored at Shiptor's warehouse. When creating an order in Bitrix, we send an assembly and shipping request to Shiptor. Stock levels are synchronized from Shiptor to Bitrix via an agent. This is more complex and requires bidirectional exchange setup.

Delivery Module (Option 1)

Class — inherits from \Bitrix\Sale\Delivery\Services\Base. Parameters:

  • SHIPTOR_TOKEN — Bearer token
  • WAREHOUSE_ID — sender warehouse ID in Shiptor
  • PROVIDER — carrier code (cdek, boxberry, dpd, etc.) or auto for automatic selection

Cost Calculation:

$calcRequest = [ 'warehouse_id' => $warehouseId, 'destination' => [ 'city' => $city, 'address' => $address, 'type' => 'door', // or 'point' 'point_id' => $pvzId, ], 'packages' => [[ 'weight' => $weightGram, 'length' => $lengthCm, 'width' => $widthCm, 'height' => $heightCm, ]], 'declared_value' => $declaredValue, 'payment_method' => $isPrepaid ? 'prepaid' : 'cod', ]; 

Response — an array of offers from carriers. With provider = auto, we select the minimum price or preferred carrier based on settings.

Creating a Shipment

$shipmentPayload = [ 'warehouse_id' => $warehouseId, 'provider' => $selectedProvider, 'order_number' => 'SHOP-' . $bitrixOrderId, 'recipient' => ['name' => $name, 'phone' => $phone], 'destination' => $destination, 'packages' => $packages, 'items' => $items, 'declared_value' => $declaredValue, 'cash_on_delivery' => $codAmount, ]; 

Response contains shipment_id (ID in Shiptor) and tracking_number (at the carrier). Request the label via GET /shipments/{id}/label — PDF.

Why Shiptor Is More Profitable Than Direct Integrations?

Direct integration with each carrier requires maintaining N different APIs, error handling, and updates. Shiptor unifies the protocol—you write code once and get access to 50+ carriers. In practice, development time savings range from 30% to 50%, and maintenance costs are reduced by 2–3 times. For a store with 200 orders per month, this results in substantial savings.

How Stock Synchronization Works?

In the fulfillment model, stock is physically at Shiptor's warehouse. We synchronize it to Bitrix:

  1. An agent calls GET /inventory once per hour—list of items with quantities.
  2. Mapping by sku or external code: find the product in b_iblock_element by article.
  3. Update the quantity via CCatalogProduct::Update() or directly in b_catalog_product.

If a product is not found in Bitrix by SKU, we log it for manual review.

Creating an Assembly Request (Fulfillment)

Instead of physically sending a package from your own warehouse, we send an assembly task to Shiptor:

$fulfillmentOrder = [ 'order_number' => 'SHOP-' . $bitrixOrderId, 'recipient' => $recipient, 'destination' => $destination, 'provider' => $selectedProvider, 'items' => array_map(fn($item) => [ 'sku' => $item['sku'], 'quantity' => $item['qty'], ], $basketItems), ]; $response = $httpClient->post('/fulfillment/orders', $fulfillmentOrder); 

Shiptor assembles the order, packages it, and hands it to the carrier. The tracking number is returned once the order is handed over.

Pickup Points and Map

List of pickup points: GET /pickup-points?city={city}&provider={provider}. Cache in a highload block, update once daily. On a Yandex/Google map, we display aggregated data from all carriers.

Comparison of Integration Options

Feature Logistics Only Fulfillment
Goods storage Own warehouse Shiptor warehouse
Order picking Self Shiptor
Stock sync Not required Yes (agent)
Assembly requests No Yes (via API)
Integration complexity 4–5 days 7–9 days
Typical maintenance costs Low Medium

What’s Included in the Work

  • Development of the delivery module (calculation, orders, tracking, labels)
  • Stock synchronization setup (fulfillment)
  • Pickup point map integration with selection on the storefront
  • Testing on test and production environments
  • Integration documentation and support contacts
  • Team training on the system
  • 1 month post-release support

Timeframes and Cost

Option Scope Time
Logistics only Calculation + orders + tracking 4–5 days
+ Pickup point map Highload block + widget +2–3 days
Fulfillment: stock sync Agent + SKU mapping +3–4 days
Fulfillment: assembly requests Hook on order confirmation +2 days
Step-by-step guide for setting up the delivery module 1. Obtain a Shiptor API token in your personal account. 2. Enter the token and sender warehouse ID in the module settings. 3. Configure the list of carriers (or leave `auto`). 4. Test cost calculation on a test order. 5. Create a test shipment and verify that tracking works. 6. Activate the module on the live site.

Cost is calculated individually after analyzing your project. Contact us—we’ll assess the workload and offer the best turnkey solution. We guarantee 10+ years of experience in Bitrix development and over 50 successful integrations with delivery systems. Order Shiptor integration today and get a free engineer consultation.