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