Через API создаётся Доставка
API не позволит создать дубликат заявки. Если такая заявка уже имеется в системе, API предупредит Вас об этом
При многократой попытке создать одну и туже заявку, будет заблокировано создание заявок через API
Эл-т |
Тип |
По-умолчанию |
Условие |
Описание |
apiKey |
string |
|
|
API-КЛЮЧ |
howMuchIs |
int |
|
НЕ ОБЯЗАТЕЛЬНО |
ЕСЛИ СТОИТ ЗНАЧЕНИЕ 1, ЗАЯВКА НЕ СОЗДАЕТСЯ, ВОЗВРАЩАЕТСЯ СТОИМОСТЬ УСЛУГИ |
extId |
string |
|
|
ВАШ НОМЕР ЗАКАЗА |
fio |
string |
|
НЕ ПУСТОЕ ЗНАЧЕНИЕ |
ИМЯ ПОКУПАТЕЛЯ |
tel |
string |
|
ФОРМАТ +7(ХХХ)ХХХ-ХХХХ |
ТЕЛЕФОН ПОКУПАТЕЛЯ |
email |
string |
|
НЕ ОБЯЗАТЕЛЬНО |
EMAIL ПОКУПАТЕЛЯ |
address |
string |
|
ИГНОРИРУЕТСЯ ПРИ ЗАПОЛНЕННОМ addressArray |
АДРЕС ПОКУПАТЕЛЯ |
addressDescription |
string |
|
ИГНОРИРУЕТСЯ ПРИ ЗАПОЛНЕННОМ addressArray |
ДОПОЛНИТЕЛЬНЫЙ ЭЛ-ТЫ АДРЕСА (КВАРТИРА, ЭТАЖ, ПОДЪЕЗД И Т.П.) |
addressArray |
array |
array(
"city"=>"",
"settlement"=>"",
"street"=>"",
"house"=>"",
"building"=>"",
"housing"=>"",
"ownership"=>"",
"apartment"=>"",
"floor"=>"",
"entrance"=>""
) |
|
ЕСЛИ ЗАПОЛНЕН ЭТОТ МАССИВ, ТО ИСПОЛЬЗУЕТСЯ ОН КАК АДРЕС ПОКУПАТЕЛЯ |
km |
int |
0 |
>=0,<25 |
РАССТОЯНИЕ ОТ МКАД |
date |
string |
|
ФОРМАТ ГГГГ-ММ-ДД |
ДАТА ДОСТАВКИ |
timeFrom |
int |
9 |
>=9,<=19 |
С КАКОГО ВРЕМЕНИ ДЕЛАЕТСЯ ДОСТАВКА |
timeTo |
int |
21 |
>=15,<=22,timeTo-timeFrom>3 |
ПО КАКОЕ ВРЕМЯ ДЕЛАЕТСЯ ДОСТАВКА |
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 |
КОЛ-ВО МЕСТ В ЗАКАЗЕ |
Расшифровка массива addressArray (АДРЕС ПОКУПАТЕЛЯ)
Эл-т |
Тип |
По-умолчанию |
Условие |
Описание |
city |
string |
|
|
ГОРОД. API добавляет вначале "город ", если пустое значение, подставляется "город Москва" |
settlement |
string |
|
|
НАСЕЛЕННЫЙ ПУНКТ. Деревня, поселение, село, поселок, ПГТ и т.п. В рамках города можно указать Мкр. |
street |
string |
|
НЕ ПУСТОЕ ЗНАЧЕНИЕ |
УЛИЦА, ПРОСПЕКТ, ПРОЕЗД, И Т.П. |
house |
string |
|
|
ДОМ. API добавляет вначале "д. " |
building |
string |
|
|
КОРПУС. API добавляет вначале "корпус " |
housing |
string |
|
|
СТРОЕНИЕ. API добавляет вначале "стр. " |
ownership |
string |
|
|
ВЛАДЕНИЕ. API добавляет вначале "владение " |
apartment |
string |
|
|
КВАРТИРА. API добавляет вначале "кв." |
office |
string |
|
|
ОФИС. API добавляет вначале "оф." |
floor |
string |
|
|
ЭТАЖ. API добавляет вначале "эт." |
entrance |
string |
|
|
ПОДЪЕЗД. API добавляет вначале "подъезд " |
Расшифровка массива 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}",
"address"=>"{address}",
"addressDescription"=>"",
"addressArray"=>array(
"city"=>"",
"settlement"=>"",
"street"=>"",
"house"=>"",
"building"=>"",
"housing"=>"",
"ownership"=>"",
"apartment"=>"",
"office"=>"",
"floor"=>"",
"entrance"=>""
),
"km"=>0,
"date"=>"{date}",
"timeFrom"=>9,
"timeTo"=>21,
"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 ПОКУПАТЕЛЯ. НЕ ОБЯЗАТЕЛЬНО
"address"=>"", //АДРЕС ПОКУПАТЕЛЯ
"addressDescription"=>"", //ДОПОЛНИТЕЛЬНЫЙ ЭЛ-ТЫ АДРЕСА (КВАРТИРА, ЭТАЖ, ПОДЪЕЗД И Т.П.)
"addressArray"=>array( //ЕСЛИ ЗАПОЛНЕН ЭТОТ МАССИВ, ТО ИСПОЛЬЗУЕТСЯ ОН КАК АДРЕС ПОКУПАТЕЛЯ
"city"=>"", //ГОРОД
"settlement"=>"", //НАСЕЛЕННЫЙ ПУНКТ
"street"=>"", //УЛИЦА
"house"=>"", //ДОМ
"building"=>"", //КОРПУС
"housing"=>"", //СТРОЕНИЕ
"ownership"=>"", //ВЛАДЕНИЕ
"apartment"=>"", //КВАРТИРА
"office"=>"", //ОФИС
"floor"=>"", //ЭТАЖ
"entrance"=>"" //ПОДЪЕЗД
),
"km"=>0, //РАССТОЯНИЕ ОТ МКАД
"date"=>"", //ДАТА ДОСТАВКИ
"timeFrom"=>9, //С КАКОГО ВРЕМЕНИ ДЕЛАЕТСЯ ДОСТАВКА
"timeTo"=>21, //ПО КАКОЕ ВРЕМЯ ДЕЛАЕТСЯ ДОСТАВКА
"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/addorder/");
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 "";
var_dump($a);
echo "
";