CalculatorEntity: CDEK shipping calculation in Joomla
CalculatorEntity in WT CDEK for Joomla covers shipping rates and delivery price calculation. This reference explains its purpose, parameters and PHP examples for Joomla extensions.
CalculatorEntity calculates shipping prices and delivery times before an order is created.
Access the entity through the Cdek facade:
$calculator = $cdek->calculator();
getAllTariffs()
Signature
public function getAllTariffs(): array
REST API
GET /v2/calculator/alltariffs
Purpose
Returns tariff codes available under your CDEK contract. Joomla caches the result.
Parameters
No parameters.
Returns
The API response's tariff_codes array, or an empty array on an API error.
Example
<?php
declare(strict_types=1);
use Webtolk\Cdekapi\Cdek;
defined('_JEXEC') or die;
$cdek = new Cdek();
$tariffs = $cdek->calculator()->getAllTariffs();
calculateTariff()
Signature
public function calculateTariff(array $request_options = []): array
REST API
POST /v2/calculator/tariff
Purpose
Calculates the price and delivery time for one tariff.
Parameters
Required: tariff_code, from_location, to_location, packages, and packages[].weight. Optional services contains additional services.
Returns
API response, typically including delivery_sum, period_min, period_max, total_sum, services and currency.
Example
<?php
declare(strict_types=1);
use Webtolk\Cdekapi\Cdek;
defined('_JEXEC') or die;
$cdek = new Cdek();
$result = $cdek->calculator()->calculateTariff([
'tariff_code' => 136,
'from_location' => ['code' => 44],
'to_location' => ['code' => 270],
'packages' => [
[
'weight' => 1000,
'length' => 10,
'width' => 10,
'height' => 10,
],
],
]);
calculateTariffList()
Signature
public function calculateTariffList(array $request_options = []): array
REST API
POST /v2/calculator/tarifflist
Purpose
Calculates available tariffs for a route and package parameters.
Parameters
Required: from_location, to_location, packages, packages[].weight. Do not supply a tariff_code to select a single tariff.
Returns
An array of tariffs matching the request.
Example
<?php
declare(strict_types=1);
use Webtolk\Cdekapi\Cdek;
defined('_JEXEC') or die;
$cdek = new Cdek();
$result = $cdek->calculator()->calculateTariffList([
'from_location' => ['code' => 44],
'to_location' => ['code' => 270],
'packages' => [
[
'weight' => 1500,
'length' => 20,
'width' => 15,
'height' => 10,
],
],
]);
tariffAndService()
Signature
public function tariffAndService(array $request_options = []): array
REST API
POST /v2/calculator/tariffAndService
Purpose
Calculates tariffs including additional services such as insurance or packaging.
Parameters
Required route and packages with weight. Optional services is an array, e.g. ['code' => 'INSURANCE', 'parameter' => 1000].
Returns
API response with tariffs and services included in the calculation.
Example
<?php
declare(strict_types=1);
use Webtolk\Cdekapi\Cdek;
defined('_JEXEC') or die;
$cdek = new Cdek();
$result = $cdek->calculator()->tariffAndService([
'from_location' => ['code' => 44],
'to_location' => ['code' => 270],
'packages' => [
[
'weight' => 1000,
'length' => 20,
'width' => 20,
'height' => 20,
],
],
'services' => [
[
'code' => 'INSURANCE',
'parameter' => 5000,
],
],
]);