alfamart24/laravel-gtd-api

api TK GTD for laravel

dev-master 2018-12-17 03:53 UTC

This package is auto-updated.

Last update: 2024-11-12 06:10:43 UTC


README

Api для работы с ТК GTD.
Рализована работа калькулятора, создание ордера и многих других функций. По мере разработки буду обновлять документацию.
По вопросам работы пишите в телеграмм WStanley


Installation

composer require alfamart24/laravel-gtd-api:dev-master

Usage

Добавляем токен в файл .env

TOKEN_GTD=

Подключаем сервис в контроллере:

use Alfamart24\Gtdapi\GtdService;

$service = new GtdService();


Реализованные функции:

Получение списка городов - geography/city/get-list

$service->cityGeography()->all()

Получение списка электронных адресов - geography/email/get-list

$service->email()->all()

Получение списка телефонов - geography/phone/get-list

$service->phone()->all()

Получение списка режимов работы - geography/schedule/get-list

$service->schedule()->all()

Получение списка видов графиков работы - geography/schedule-group/get-list

$service->scheduleGroup()->all()

Расчет стоимости - order/calculate

Получение всего отвера от сервера:
$service->calculate(...)->all()

Заполнение свойств метода с ответа (подробнее см ниже)
$service->calculate(...)->calculateResult()

Получение списка валют - order/currency/get-list

$service->currency()->all()

Список страховых агентов - order/insurance/get-list

$service->insurance()->all()

Оформление заказа - order/service/get-list

$service->service()->all()

Статус заказа - order/status/get

$service->status(...)->all()

Список городов - tdd/city/get-list

$service->cityTdd()->all()

Получение списка стран - tdd/country/get-list

$service->country()->all()

Список регионов - tdd/region/get-list

$service->region()->all()


Примеры работы с функциями:

Список городов - tdd/city/get-list

Чтобы получить весь список городов используем all().
all() используется для получения полного ответа от сервера.

Получение всего ответа от сервера
$cyties = $service->cityTdd()->all()

Вернет массив вида [код города => имя города]
$cyties = $service->cityTdd()->cities()

Для отправки запроса передаем параметры в функцию

$cyti = $service->cityTdd(
                [
                    "code"         => "660002900000",
                    "region_code"  => "66",
                    "country_code" => "RU"
                ])->all()

Либо так

$cyti = $service->cityTdd(["code" => "660002900000"])->all()

Какие параметры принимает конкретная функция вы можете узнать из документации, либо в классе функции, в поле optional перечислены необязательные параметры, в поле necessary перечислены обязательные параметры.


Список страховых агентов - order/insurance/get-list

Чтобы получить весь ответ от сервера используем all()

$response = $service->insurance()->all()

В полном ответе от сервера содержатся типы данных agent и cargo_type
Получение только типа agent

$agents = $service->insurance()->agent()

Получение типа cargo_type

$cargoType = $service->insurance()->cargo_type()

С детальной информацией об ответах от сервера вы можете ознакомиться в документации.



Расчет стоимости перевозки

Расчет стоимости - order/calculate

Есть 2 варианта расчета стоимости:

С указанием объема багажа volume

Получение полного ответа от сервера

$response = $service->calculate($request->all())->all();

Заполнение полей метода ответом от сервера

$response = $service->calculate($request->all())->calculateResult();

Поля:
$response->standart
$response->economy
$response->express
$response->standard_courier
$response->express_courier

Получение цены:
$response->cost('standart')

Проверить верно ли произведен расчет можно(нужно) вот так
$response->error = 'Ошибка расчета' - переданы неправильные параметры
$response->error = null             - поля ответа заполнены(расчет верный)

Обязательные параметры для расчета стоимости:

'city_pickup_code'      => 'Код города откуда',<br>
'city_delivery_code'    => 'Код города куда',<br>
'declared_price'        => 'Объявленная стоимость груза (руб)',<br>
'count_place'           => 'Количество мест в позиции',<br>
'weight'                => 'Масса КГ позиции',<br>
'volume'                => 'Объем М³ позиции',

Необязательные параметры, для более дтального расчета, также можно передать в функцию:

'have_doc'              => 'Есть документы подтверждающие стоимость груза',
'insurance'             => 'Услуга страхования груза',
'insurance_agent_code'  => 'Код страхового агента',
'service'               => 'массив кодов услуг',
'pick_up'               => 'Забор груза по городу',
'delivery'              => 'Доставка груза по городу',
'cargo_type_code'       => 'Код характера груза',
'currency_code'         => 'Валюта результата расчета',
'all_places_same'       => 'Все места одинаковы по размеру'

Параметры о месте багажа ожидаются такого формата:

"count_place" => [
    0 => "1"
    1 => "3"],
"weight" => [
    0 => "2"
    1 => "3"],
"volume" => [
    0 => "8"
    1 => "2"],

Пример поля input на форме калькулятора:

<input type="text" name="volume[]" placeholder="Объем">
<input type="text" name="weight[]" placeholder="Вес">
<input type="text" name="count_place[]" placeholder="Количество мест">

Также у функции canculate есть зависимые параметры, с полной работой функции вы можете ознакомиться в документации.
Функция не отправит запрос пока не передадут все требуемяе параметры для расчета стоимости, выпадающие исключения подскажут чего не хватает.

Получить стоимость перевозки можно так

$response = $service->calculate($request->all())->calculateResult();

$price = $response->cost('standart')
$price = $response->cost('economy')
$price = $response->cost('express')
$price = $response->cost('standard_courier')
$price = $response->cost('express_courier')

Либо сразу так

$price = $service->calculate($request->all())->calculateResult()->cost('standart');

С указанием размеров багажа height, width, length

В случае работы с размерами в функцию требуется передать флаг false вторым параметром, ианче расчет будет вестись как для объема.
Получение полного ответа от сервера

$response = $service->calculate($request->all(), false)->all();

Обязательные параметры для расчета:

'city_pickup_code'      => 'Код города откуда',<br>
'city_delivery_code'    => 'Код города куда',<br>
'declared_price'        => 'Объявленная стоимость груза (руб)',<br>
'count_place'           => 'Количество мест в позиции',<br>
'weight'                => 'Масса КГ позиции',<br>
'height'                => 'Высота груза (см) позиции',
'width'                 => 'Ширина груза (см) позиции',
'length'                => 'Длина груза (см) позиции',

Необязательные параметры, для более дтального расчета, также можно передать в функцию:

'have_doc'              => 'Есть документы подтверждающие стоимость груза',
'insurance'             => 'Услуга страхования груза',
'insurance_agent_code'  => 'Код страхового агента',
'service'               => 'массив кодов услуг',
'pick_up'               => 'Забор груза по городу',
'delivery'              => 'Доставка груза по городу',
'cargo_type_code'       => 'Код характера груза',
'currency_code'         => 'Валюта результата расчета',
'all_places_same'       => 'Все места одинаковы по размеру'

Параметры о месте багажа ожидаются такого формата:

"count_place" => [
    0 => "1"
    1 => "3"],
"weight" => [
    0 => "2"
    1 => "3"],
"height" => [
    0 => "8"
    1 => "2"],
"width" => [
    0 => "4"
    1 => "6"],
"length" => [
    0 => "1"
    1 => "8"],

Пример поля input на форме калькулятора:

<input type="text" name="width[]" placeholder="Укажите ширину">
<input type="text" name="height[]" placeholder="Укажите высоту">

Также у функции canculate есть зависимые параметры, с полной работой функции вы можете ознакомиться в документации.
Функция не отправит запрос пока не передадут все требуемяе параметры для расчета стоимости, выпадающие исключения подскажут чего не хватает.

Получить стоимость перевозки можно так

$response = $service->calculate($request->all())->calculateResult();

$price = $response->cost('standart')
$price = $response->cost('economy')
$price = $response->cost('express')
$price = $response->cost('standard_courier')
$price = $response->cost('express_courier')

Либо сразу так

$price = $service->calculate($request->all())->calculateResult()->cost('standart');