Через API создаётся Самовывоз
API не позволит создать дубликат заявки. Если такая заявка уже имеется в системе, API предупредит Вас об этом
При многократой попытке создать одну и туже заявку, будет заблокировано создание заявок через API
| Эл-т |
Тип |
По-умолчанию |
Условие |
Описание |
| apiKey |
string |
|
|
API-КЛЮЧ |
| extId |
string |
|
|
ВАШ НОМЕР ЗАКАЗА |
| fio |
string |
|
НЕ ПУСТОЕ ЗНАЧЕНИЕ |
ИМЯ ПОКУПАТЕЛЯ |
| tel |
string |
|
ФОРМАТ +7(ХХХ)ХХХ-ХХХХ |
ТЕЛЕФОН ПОКУПАТЕЛЯ |
| email |
string |
|
НЕ ОБЯЗАТЕЛЬНО |
EMAIL ПОКУПАТЕЛЯ |
| date |
string |
|
ФОРМАТ ГГГГ-ММ-ДД |
ДАТА ДОСТАВКИ |
| compl |
bool |
false |
|
КОМПЛЕКТАЦИЯ |
| fitting |
bool |
false |
|
ПРИМЕРКА ТОВАРА |
| fragile |
bool |
false |
|
ХРУПКИЙ ГРУЗ |
| warning |
bool |
false |
|
ОПАСНЫЙ ДЛЯ ДРУГИХ ТОВАРОВ ГРУЗ |
| oversized |
bool |
false |
timeFrom<=10, timeTo-timeFrom>=5 |
НЕГАБАРИТНЫЙ ГРУЗ |
| perishableCargo |
bool |
false |
timeFrom<=10 |
СКОРОПОРТЯЩИЙСЯ ГРУЗ |
| countOfItems |
int |
1 |
>=1,<=50 |
КОЛ-ВО ПОЗИЦИЙ ТОВАРОВ |
| items |
array |
0=>array(
"itemName"=>"",
"itemWeight"=>1,
"itemCount"=>1,
"itemPrice"=>0
)
|
|
ТОВАРЫ |
| saleCheckbox |
bool |
false |
|
Активатор скидки на товар . |
| salePercentCheckbox |
bool |
false |
Используется, только если saleCheckbox в значении true |
Активатор скидки на товар в процентном отношении. Высчитывает процентное значение скидки и меняет сумму с покупателя, на сумму со скидкой. |
| salePrice |
int |
0 |
Используется, только если saleCheckbox в значении true |
Значение скидки. Если без salePercentCheckbox, то значение считается в рублях, в противном случае считается в процентах. |
| np |
bool |
false |
|
ИНКАССАЦИЯ. ЕСЛИ МЫ РАБОТАЕМ ПО ИНКАССАЦИИ С ВАМИ. СТАВИТСЯ TRUE, ЕСЛИ НУЖНО БРАТЬ ДЕНЬГИ С ПОКУПАТЕЛЯ |
| check |
bool |
false |
|
КАССОВОЕ ОБСЛУЖИВАНИЕ. ЕСЛИ МЫ РАБОТАЕМ ПО КАССОВОМУ ОБСЛУЖИВАНИЮ С ВАМИ. СТАВИТСЯ TRUE, ЕСЛИ НУЖНО БРАТЬ ДЕНЬГИ С ПОКУПАТЕЛЯ |
| clientDelivery |
bool |
false |
Может быть в значение true, если np или check в значении true |
УКАЗАТЬ В ЗАКАЗЕ ВАШУ СТОИМОСТЬ САМОВЫВОЗА. |
| clientDeliveryPrice |
int |
0 |
>=0,<=10000, НЕ БУДЕТ УЧИТЫВАТЬСЯ, ЕСЛИ clientDelivery==false |
УКАЗАТЬ В ЗАКАЗЕ ВАШУ СТОИМОСТЬ САМОВЫВОЗА. БУДЕТ ДОБАВЛЕНА К СУММЕ С ПОКУПАТЕЛЯ |
| placements |
int |
1 |
>=1,<=10 |
КОЛ-ВО МЕСТ В ЗАКАЗЕ |
Расшифровка массива items (ТОВАРЫ)
Массив items состоит из упорядоченных элементов (0,1,2 и т.п.), которые в свою очередь содержат данные каждого товара
Кол-во элементов массива должно совпадать с countOfItems
| Эл-т |
Тип |
По-умолчанию |
Условие |
Описание |
| itemName |
string |
|
|
НАИМЕНОВАНИЕ ТОВАРА |
| itemWeight |
weight(decimal 7,3) |
1 |
>=.001,<=120 |
ВЕС ОДНОЙ ЕДИНИЦЫ ТОВАРА |
| itemCount |
int |
1 |
>=1,<=10000 |
КОЛ-ВО ЕДИНИЦ ТОВАРА |
| itemPrice |
currency(decimal 7,2) |
0 |
>=0,<=1000000 |
СТОИМОСТЬ ОДНОЙ ЕДИНИЦЫ ТОВАРА |
Ответ сервера API
| Эл-т |
Тип |
По-умолчанию |
Условие |
Описание |
| timestamp |
int |
|
|
Дата обработки Вашего запроса. Unixtime |
| error |
bool |
|
|
Если имеется ошибка в запросе, при создании, то выдает true, в противном случае false |
| errorDescription |
string |
|
Если error==true |
Пояснение к причине ошибки |
| ip |
string |
|
Выводится, если включен Режим разработки |
IP-адрес с которого пришел запрос |
| in |
array |
|
Выводится, если включен Режим разработки |
Данные, которые вы передаете на сервер API |
| out |
array |
|
Если error==true, отсутствует |
Данные с результатами создания заявки |
| timestampEnd |
int |
|
|
Дата окончания обработки Вашего запроса. Unixtime |
Ответ сервера API. Элемент out
| Эл-т |
Тип |
По-умолчанию |
Условие |
Описание |
| id |
int |
|
|
Присвоенный заявке номер |
| weight |
float |
|
|
Общий вес заявки |
| cost |
float |
|
|
Стоимость услуги |
| customerCost |
float |
|
Всегда будет 0, если в входящем массиве np и check в значениях false |
Сумма, которую возьмет курьер с покупателя |
| in |
array |
|
Выводится, если включен Режим разработки |
Данные, которые вы передаете на сервер API |
| out |
array |
|
Если error==true, отсутствует |
Данные с результатами создания заявки |
| timestampEnd |
int |
|
|
Дата окончания обработки Вашего запроса. Unixtime |
Пример использования на PHP
/*
* Ваш массив с данными заявки.
* Массив создан только из тех элментов, которые имеются по заявке.
* Этот массив в дальнейшем объединяется с базовым
*/
$array=array(
"apiKey"=>"{apiKey}",
"extId"=>"321",
"fio"=>"{fio}",
"tel"=>"{tel}",
"email"=>"{email}",
"date"=>"{date}",
"compl"=>false,
"fitting"=>false,
"fragile"=>false,
"warning"=>false,
"oversized"=>false,
"perishableCargo"=>false,
"countOfItems"=>3,
"items"=>array(
0=>array(
"itemName"=>"Манекен",
"itemWeight"=>3,
"itemCount"=>1,
"itemPrice"=>4500.20
),
1=>array(
"itemName"=>"Карандаш",
"itemWeight"=>.01,
"itemCount"=>100,
"itemPrice"=>20
),
2=>array(
"itemName"=>"Груша",
"itemWeight"=>.075,
"itemCount"=>10,
"itemPrice"=>15
),
),
"saleCheckbox"=>false,
"salePercentCheckbox"=>false,
"salePrice"=>0,
"np"=>false,
"check"=>false,
"clientDelivery"=>false,
"clientDeliveryPrice"=>400,
"description"=>' Тестовая заявка ',
"placements"=>1
);
/**
* Функция подключения и передачи JSON-объекта на сайт api.2f1.ru
*
* @param array $request
* @return array
*/
function _2f1_api_communicate($request=null){
/*
* Базовый массив. Не убирайте его или его элменты.
* В случае если в Вашем массиве нехватает элментов,
* они будут дополнены из этого.
* API проверяет целостность и структуру массива, который вы ему скармливаете.
* Если чего-то неватает, то и работать ничего не будет.
*/
$array=array(
"apiKey"=>"", //API-КЛЮЧ
"extId"=>"", //ВАШ НОМЕР ЗАКАЗА
"fio"=>"", //ИМЯ ПОКУПАТЕЛЯ
"tel"=>"", //ТЕЛЕФОН ПОКУПАТЕЛЯ. ФОРМАТ +7(ХХХ)ХХХ-ХХХХ
"email"=>"", //EMAIL ПОКУПАТЕЛЯ. НЕ ОБЯЗАТЕЛЬНО
"date"=>"", //ДАТА ДОСТАВКИ
"compl"=>false, //КОМПЛЕКТАЦИЯ
"fitting"=>false, //ПРИМЕРКА ТОВАРА
"fragile"=>false, //ХРУПКИЙ ГРУЗ
"warning"=>false, //ОПАСНЫЙ ДЛЯ ДРУГИХ ТОВАРОВ ГРУЗ
"oversized"=>false, //НЕГАБАРИТНЫЙ ГРУЗ
"perishableCargo"=>false, //СКОРОПОРТЯЩИЙСЯ ГРУЗ
"countOfItems"=>1, //КОЛ-ВО ПОЗИЦИЙ ТОВАРОВ
"items"=>array(), //ТОВАРЫ
"np"=>false, //ИНКАССАЦИЯ. ЕСЛИ МЫ РАБОТАЕМ ПО ИНКАССАЦИИ С ВАМИ. СТАВИТСЯ TRUE, ЕСЛИ НУЖНО БРАТЬ ДЕНЬГИ С ПОКУПАТЕЛЯ
"check"=>false, //КАССОВОЕ ОБСЛУЖИВАНИЕ. ЕСЛИ МЫ РАБОТАЕМ ПО КАССОВОМУ ОБСЛУЖИВАНИЮ С ВАМИ. СТАВИТСЯ TRUE, ЕСЛИ НУЖНО БРАТЬ ДЕНЬГИ С ПОКУПАТЕЛЯ
"clientDelivery"=>false, //УКАЗАТЬ В ЗАКАЗЕ ВАШУ ДОСТАВКУ
"clientDeliveryPrice"=>0, //УКАЗАТЬ В ЗАКАЗЕ ВАШУ СТОИМОСТЬ ДОСТАВКИ. БУДЕТ ДОБАВЛЕНА К СУММЕ С ПОКУПАТЕЛЯ
"placements"=>1 //КОЛ-ВО МЕСТ В ЗАКАЗЕ
);
//Слияние массивов
if(isset($request)&&is_array($request)) $array=array_merge($array,$request);
$json = json_encode($array); // Преобразование массива в JSON
/*
* Собственно сама отправка данных.
* Не меняйте этот блок. Его изменение ничего хорошего Вам не даст.
* */
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://api.2f1.ru/addcarry/");
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, $json);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
$data = curl_exec($curl);
curl_close($curl);
if($data === false) return array("error"=>true,"errorDescription"=>"Не получены данные от сервера");
$jsonAnsver = json_decode($data, $assoc=true);
return $jsonAnsver;
}
$a=_2f1_api_communicate($array);
/*
* С полученым ответом Вы вольны распоряжаться как Вам будет угодно.
* Кроме номера заказа, Вы получаете стоимость услуг Курьерской службы, а также сумму которую курьер берет с покупателя.
* Вся нужная Вам информация хранится в массиве OUT
*/
echo ""; //< pre >
var_dump($a);
echo "
"; // < pre >