Download the PHP package kskby/dpd without Composer
On this page you can find all versions of the php package kskby/dpd. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package dpd
Client SDK DPD
Client SDK - SDK для быстрой разработки клиентских решений для сервиса доставки DPD.
Требования
- PHP 5.4.* или выше
- SOAP
- PDO
- PDO-SQLite
Установка
Установить SDK можно двумя способами
Установка из архива
Для установки скачайте tar.gz или zip, распакуйте его и подключите файл autoload.php
в Вашем проекте.
После этого перейдите в папку SDK и запустите комманду которая загрузит все зависимости проекта
Установка через composer
После установки
Обязательно, для того чтобы расчет стоимости работал, необходимо произвести импорт начальных данных.
Пример загрузчика находится в папке examples/load_locations.php
внутри архива.
Настройки
Следующие параметры используются в модуле
-
- задается путь к директории для хранения запрошенных файлов
-
- параметры подключения к БД. Модуль использует БД для хранения списка городов обслуживания и списка ПВЗ. По умолчанию модуль использует локальную SQLite БД.
-
- dsn строка подключения к БД
-
- имя пользователя для подключения к БД
-
- пароль пользователя для подключения к БД
-
- используемый драйвер при подключении к БД. По умолчанию будет вычеслен автоматически из строки DSN
-
- вместо всех параметров, можно сразу передать готово подключение в виде объекта \PDO
-
- клиентский номер в системе DPD
-
- секретный ключ для авторизации в системе DPD
-
- валюта аккаунта
- ,, - параметры для подключения казахского аккаунта
- ,, - параметры для подключения белорусского аккаунта
-
- возможные значения RU,KZ,BY. Код аккаунта по умолчанию
-
- вкл./выкл. тестовый режим
-
- вес товара по умолчанию
-
- длина товара по умолчанию
-
- ширина товара по умолчанию
-
- высота товара по умолчанию
-
- список тарифов которые НЕ будут использованы в расчетах. возможные значения PCL,CSM,ECN,ECU
-
- тариф по умолчанию, данный тариф будет выбран если стоимость доставки меньше чем указанов
DEFAULT_TARIFF_THRESHOLD
.
- тариф по умолчанию, данный тариф будет выбран если стоимость доставки меньше чем указанов
-
- макс сумма доставки при которой будет использован тариф по умолчанию
-
- Включать страховку в стоимость доставки
-
- Включать комиссию за инкассацию наложенным платежом в стоимость доставки, массив вида
-
- Комиссия от стоимости товаров в заказе (в процентах), %. массив вида
-
- Минимальная сумма комиссии, руб. массив вида
-
- ID платежных системы, которые означают что оплата будет происходить наложенным платежом . массив вида
-
Для хранения настроек в модуле реализован класс
\Ipol\DPD\Config\Config
, в конструктор класса можно передать массив опций, тем самым переопределив значения по умолчанию. Так же может быть реализован свой класс для хранения настроек, в этом случае он должен реализовывать интерфейсIpol\DPD\Config\ConfigInterface
.
Расчет стоимости доставки
Для расчета стоимости доставки вначале необходимо создать объект описывающий отправку.
Для этого в модуле используется класс Ipol\DPD\Shipment
За сам расчет стоимости доставки в модуле отвечает класс на вход он получает отправку для которой необходимо произвести расчет стоимости.
В методах и калькулятора есть необязательный параметр , в котором можно передать код валюты, в этом случае стоимость достаки будет сконвертирована в указанную валюту. Для поддержки конвертации Вам необходимо создать класс конвертер реализующий интерфейс , а экземпляр этого класса необходимо передать калькулятору
Отправка заказа
Для создания заказа в системе DPD сначала необходимо создать объект хранящий информацию об этом заказе. В модуле за это отвечает класс , данный заказ будет сохранен в БД.
После того как все параметры заказа заполнены, нужно вызвать метод dpd
.
Данный метод возвращает объект класса Ipol\DPD\Order
позволяющий производить операции с заказом на стороне dpd,
в частности создание, отмену, запрос файла наклеек или накладной, проверка статуса и др.
Работа с местоположениями и терминалами
При установке модуля и загрзуки первоначальных данных список городов и терминалов сохраняются во внутреннюю БД. В дальнейшем возможно использовать эти данные в своих целях. Для этого в модуле реализован простейший DataMapper к бд.
Получить доступ к таблице можно следующим образом
Во всех случаях будет возвращен объект класс которого реализует интерфейс \Ipol\DPD\DB\TableInterface
.
Помимо этого, в классе могут быть реализованы свои вспомогательные методы. Например у класса местоположений есть
метод getByAddress($country, $region, $city, $select = '*')
который ищет местоположение по текстовому
представлению.
Cron
В модуле реализован класс \Ipol\DPD\Agents
содержащий готовые методы для выполнения периодических заданий.
В частности в данном классе есть метод обновляющий статусы заказов.
Для использования этих методов необходимо создать отдельный скрипт, в котором вызвать нужный метод. А выполнение данного скрипта поставить на cron.
Следующий пример показывает как создать скрипт обновления статусов заказов каждые 10 минут.
Кодировка
Модуль работает с данными в кодировке UTF-8
, если Ваш проект использует другую кодировку, Вам необходимо самостоятельно
конвертировать передаваемые и получаемые данные.
Для облегчения конвертации в модуле есть вспомогательный метод позволяющий рекурсивно изменить кодировку переданного массива
Примеры
В каталоге examples/
приведены примеры использования модуля
Документация
Описание классов, методов и их параметров доступно здесь