Download the PHP package ddelivery/clientsdk without Composer

On this page you can find all versions of the php package ddelivery/clientsdk. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package clientsdk

Client SDK DDelivery

Client SDK - SDK для быстрой разработки клиентских решений для сервиса доставки DDelivery.

ПАМ(панель администрирования модулей) - ресурс который организовует работу модуля и взаимодействует с Client SDK и сервисом доставки DDelivery. Client SDK привязывается к ПАМ посредством АПИ ключа, полученном в личном кабинете cabinet.ddelivery.ru. В дальнейшем в ПАМ можно настроить гибкие правила доставки модуля.

SDK ID - индентификатор, получаемый при оформлении доставки через модуль.

DDelivery ID - идентификатор, получаемый при оформлении заявки на доставку сервиса.

Адаптер - класс который организовует выдачу необходимой информации от CMS. От него нужно наследовать свой класс. (для php приложений).

Для разработки решений для систем не использующих PHP, смотрите раздел этой инструкции "Создание модуля через API", а также пункт "5. Вывод модуля доставки на странице оформления доставки"

Структура директорий

  application/        Исходники сдк
  example/            Пример создания расширения

Создание интеграции

Client SDK содержит все механизмы для работы модуля, необходимо выполнить несколько этапов:

  1. Запустить рабочий пример в каталоге example/ .

  2. Переопределить методы родительского класса Adapter(пример IntegratorAdapter.php)

  3. Учитывая особенность CMS, определить точку входа в модуль, подключить нужные системные скрипты для CMS и вызвать все необходимые методы для работы Client SDK(пример example/ajax.php).

  4. Создать локальное хранилище на стороне CMS вызвав метод initStorage класса Business (Далее продумать вызов этого метода при установке модуля в CMS)

  5. Привязать апи ключ магазина к ПАМ.

  6. Вывести способ доставки на странице оформления заказа CMS(пример index.php). Для этого к этой странице checkout необходимо подключить js файл и вызвать js метод с определенными параметрами и получить SDK ID. При выборе пункта доставки, организовать фильтрацию способов оплаты не поддерживающих наложенны платеж для пунктов доставки, которые его не поддерживают.

  7. При окончании оформления заказа (в момент когда цмс вставляет в БД заказ и выбран способ оплаты клиентом) необходимо вызвать метод onCmsOrderFinish класса Business для привязки закза CMS и SDK ID.

  8. При сохранении заказа перепроверить валидность данных доставки через метод viewOrder класса Business используя SDK ID.

  9. При изменении статуса заказа или по какомуто другому событию вызвать метод для отправки заказа (onCmsChangeStatus или cmsSendOrder соответственно) класса Business.

Запуск рабочего примера

Для запуска примера необходимо загрузить сдк в каталог в котором будет находится модуль.

example/IntegratorAdapter.php - класс в котором необходимо переопрелить указанные методы, является связующим звеном между Client SDK и CMS. example/ajax.php - файл который является точкой входа в CMS и запускает на выполнение Client SDK. example/index.php - пример кнопки для открытия модуля на странице оформления заказа. example/delivery.php - пример отправки заказа, и вызова дополнительных методов. example/db.sqlite - хранилище которое использует Client SDK

public function getApiKey(){ return 'api_key'; }

public function isAdmin(){ if($_SESSION['admin'] == 1){ return true; } return false; }

public function getCmsName(){ return "Joomla"; return "Bitrix"; ... }

public function getCmsVersion(){ return '1.1'; }

public function getProductCart(){ return array( array( "id"=>12, "name"=>"Мобильный телефон", "width"=>10, "height"=>10, "length"=>10, "weight"=>1, "price"=>1110, "quantity"=>2, "sku"=>"app2" ), array( ... ); ); }

public function getDiscount(){ return 50; }

array( 'id' => 'status', 'id2' => 'status2', );

public function changeStatus(array $orders){ foreach($orders as $key=>$item){ $query = "UPDATE orders_table_cms SET status_cms=$item WHERE order_id=$key" } }

public function getOrder($id){ return array( 'city' => 'Урюпинск', 'payment' => 22, 'status' => 'Статус', 'sum' => 2200, 'delivery' => 220, ); }

public function getOrders($from, $to){ return array( array( 'city' => 'Урюпинск', 'payment' => 22, 'status' => 'Статус', 'sum' => 2200, 'delivery' => 220, ), array( 'city' => 'г. Москва, Московская область', 'payment' => 'Пример оплаты', 'status' => 'Статус 222', 'sum' => 2100, 'delivery' => 120, ) ); }

public function getUserParams($request){ return array( self::USER_FIELD_STREET => 'Цветаевой', self::USER_FIELD_COMMENT => 'Комментарий', self::USER_FIELD_HOUSE => '2а', self::USER_FIELD_FLAT => '123', self::USER_FIELD_ZIP => '10101' ); }

public function getCmsOrderStatusList(){ return array('10' => 'Завершен', '11' => 'Куплен'); }

public function getCmsPaymentList(){ return array('14' => 'Наличными', '17' => 'Карточкой'); }

public function getCustomSettingsFields(){ return array( array( "title" => "Название (Пример кастомного поля)", "type" => self::FIELD_TYPE_TEXT, "name" => "name", //"items" => getStatusList(), "default" => 0, "data_type" => array("string"), "required" => 1 ), array( "title" => "Выводить способ доставки(Пример кастомного поля)", "type" => self::FIELD_TYPE_CHECKBOX, "name" => "checker", "default" => true, "data_type" => array("int"), "required" => 1 ) ); }

public function getDbConfig(){
    return array(
                'pdo' => new \PDO('mysql:host=localhost;dbname=ddelivery', 'root', '0', array(\PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")),
                'prefix' => '',
     );
}

    public function getAdminDiscount(){
        //$this->getDiscount();
    }

    public function getAdminProductCart(){
        //$this->getProductCart();
    }

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter));

$container->getUi()->render($_REQUEST);

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter)); $business = $container->getBusiness();

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter)); $business = $container->getBusiness();

// Создаем хранилища $business->initStorage();

params{ url: 'ajax.php?action=module', width: 550, height: 440, } callbacks = { resize_event:function(data){ // событие при изменению размеров модуля // в объекте data новые размеры }, open: function(){ // Хук на открытие окна; return true; }, change: function(data){ // Хук на окончание оформления заказа и обработка результата; }, close_map: function(data){ // Хук на закрытие карты }, price: function(data){ // хук на получение цены текущей доставки при переключении // и возможность НПП в этом пункте } }; // 'ddelivery_container_place' - идентификатор div-a в котором инициализируется модуль DDeliveryModule.init(params, callbacks, 'ddelivery_container_place');

city: "151184" - id города доставки city_name: "г. Москва" - Город доставки client_price: 281.49 - Цена доставки company: "20" - id компании доставки company_name: "DPD Parcel" - Название компании доставки id: 1198 - SDK ID (не путать с ID заявки на ddelivery.ru) info: "Курьерская доставка, ул. Цветаева, 15, кв. 122, ID компании:20, г. Москва" - описание в виде строки payment_availability: 1 - возможность наложенного платежа point: 0 - id точки to_flat: "122" - квартира to_house: "15" - дом to_street: "Цветаева" - улица type: 2 - тип доставки 1 - Самовывоз, 2 - Курьерка, 3 - Почта

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter)); $business = $container->getBusiness(); // $id - id заказа в сдк $business->viewOrder($id)

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter)); $business = $container->getBusiness(); //$payment - id способа оплаты //$status - id статуса заказа //$id - id заказа в сдк //$cmsId - id заказа в CMS //$to_name - имя клиента //$to_phone - номер телефона //$to_email - email //$payment_price - наложенный платеж, по умолчанию берется из значения параметра настроек варианта оплаты, //но возможно выставлять и вручную $business->onCmsOrderFinish($sdkId, $cmsId, $payment, $status, $to_name, $to_phone, $to_email, $payment_price = null)

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter)); $business = $container->getBusiness(); //$id - id заказа в сдк //$cmsId - id заказа в CMS //$payment - id способа оплаты //$status - id статуса заказа //$to_name - имя клиента //$to_phone - номер телефона //$to_email - email //$payment_price - наложенный платеж, по умолчанию берется из значения параметра настроек варианта оплаты, //но возможно выставлять и вручную $business->onCmsChangeStatus($id, $cmsId, $payment, $status, $to_name, $to_phone, $to_email, $payment_price = null);

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter)); $business = $container->getBusiness(); //$id - id заказа в сдк //$cmsId - id заказа в CMS //$payment - id способа оплаты //$status - id статуса заказа //$to_name - имя клиента //$to_phone - номер телефона //$to_email - email //$payment_price - наложенный платеж, по умолчанию берется из значения параметра настроек варианта оплаты, //но возможно выставлять и вручную $business->cmsSendOrder($id, $cmsId, $payment, $status, $to_name, $to_phone, $to_email, $payment_price = null);

$adapter = new IntegratorAdapter(); $container = new Container(array('adapter' => $adapter)); $container->getSettingStorage()->getParam('param_name');



Создание модуля посредством API
================================
Раздел в процессе разработки

All versions of clientsdk with dependencies

PHP Build Version
Package Version
No informations.
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package ddelivery/clientsdk contains the following files

Loading the files please wait ....