Через 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 "
";