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