Загрузка заказов по API в Logsis

13.09.18

Учетные задачи - Оптовая торговля

Каркасная обработка для загрузки заказов по API в Логсис. Предназначена для магазинов, которым нужна курьерская доставка по городу Москва.

Скачать исходный код

Наименование Файл Версия Размер
Загрузка заказов по API в Logsis:
.zip 9,21Kb
3
.zip 1.0.0.1 9,21Kb 3 Скачать

Для работы обработки нужен шлюз для передачи параметров через PHP скрипт
Следующего содержания в папке logsys/index.php:

<?php
//phpinfo();
$str_input = file_get_contents('php://input'); // Получить строку из отправленных данных
//echo $str_input; // Вывод в браузер
$arr_input = json_decode($str_input,true); // Преобразуем в массив
//print_r($arr_input); // Вывод в браузер
$post_array = array();
foreach($arr_input as $key=>$val) {
  if ($key=='goods') {
    foreach($val as $key2=>$val2) {
      foreach($val2 as $key3=>$val3) {
        $post_array['goods['.$key2.']['.$key3.']']=$val3;
      }
    }
  } else {
    $post_array[$key] = $val;
  }
}
//print_r($post_array);
// set post fields
$ch = curl_init('http://cab.logsis.ru/apiv2/createorder');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_array);
// execute!
$response = curl_exec($ch);
// close the connection, release resources used
curl_close($ch);
// do anything you want with your response
echo $response;

 

И еще один скрипт в папке logsys2/index.php:

<?php
//phpinfo();
$str_input = file_get_contents('php://input'); // Получить строку из отправленных данных
//echo $str_input; // Вывод в браузер
$arr_input = json_decode($str_input,true); // Преобразуем в массив
//print_r($arr_input); // Вывод в браузер
$post_array = array();
foreach($arr_input as $key=>$val) {
  $post_array[$key] = $val;
}
//print_r($post_array);
// set post fields
$ch = curl_init('http://cab.logsis.ru/apiv2/confirmorder');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_array);
// execute!
$response = curl_exec($ch);
// close the connection, release resources used
curl_close($ch);
// do anything you want with your response
echo $response;

 

Поднимаем Apache + PHP или Nginx + PHP на локальной машине и пробуем отправить заказы:

Функция ПодтвердитьЗаказВЛОГСИС(НомерДокументаЗаказа,НомерЗаказаЛогсис) Экспорт
	СтруктураПараметровЗаказа = Новый Структура;
	СтруктураПараметровЗаказа.Вставить("key",ПолучитьПараметрыИдентификации());
	СтруктураПараметровЗаказа.Вставить("inner_n",СокрЛП(НомерДокументаЗаказа)); // Внутренний номер отправителя
	СтруктураПараметровЗаказа.Вставить("order_id",СокрЛП(НомерЗаказаЛогсис)); // Внутренний номер отправителя
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(,Символы.Таб));
	ЗаписатьJSON(ЗаписьJSON,СтруктураПараметровЗаказа);
	СтрокаJSON = ЗаписьJSON.Закрыть();
	//СтрокаВозврат = 
	Сообщить(СтрокаJSON);
	
	HTTPСоединение = Новый HTTPСоединение("127.0.0.1");
	HTTPЗапрос = Новый HTTPЗапрос("/logsys2/"); 
	HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json");
	HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);

	Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
	ОтветСтрока = Ответ.ПолучитьТелоКакСтроку("UTF-8");

	Сообщить("Код результата: " + Ответ.КодСостояния);
	Сообщить("Ответ: " + ОтветСтрока);
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(ОтветСтрока);
	ИмяСвойства = "";
	НетОшибкаЧтенияJSON = Ложь;
	
	Пока ЧтениеJSON.Прочитать() Цикл
		ТипJSON = ЧтениеJSON.ТипТекущегоЗначения;
		Если ТипJSON = ТипЗначенияJSON.Строка Тогда
			Значение = ЧтениеJSON.ТекущееЗначение;
			Если ИмяСвойства = "status" Тогда
				Сообщить("status "+СокрЛП(Значение));
				Если СокрЛП(Значение) = "400" Тогда
					НетОшибкаЧтенияJSON = Истина;
				ИначеЕсли СокрЛП(Значение) = "200" Тогда
					НетОшибкаЧтенияJSON = Истина;
				КонецЕсли;
			КонецЕсли;
		ИначеЕсли ТипJSON = ТипЗначенияJSON.ИмяСвойства Тогда
			ИмяСвойства = ЧтениеJSON.ТекущееЗначение;
		КонецЕсли;
	КонецЦикла;
	Возврат НетОшибкаЧтенияJSON;
	
КонецФункции

Функция ОтправитьЗаказыВLogsys(ДокументЗаказа,НомерЗаказаЛогсис = "") Экспорт
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
	               |	Заказ.Номер КАК НомерЗаказа,
	               |	Заказ.Дата КАК ДатаЗаказа,
	               |	Заказ.Адрес КАК АдресДоставки,
	               |	Заказ.Вес КАК ВесЗаказа,
	               |	Заказ.ГабаритВысота,
	               |	Заказ.ГабаритДлина,
	               |	Заказ.ГабаритШирина,
	               |	Заказ.ФИОКонтактногоЛица КАК Получатель,
	               |	Заказ.Телефон КАК НомерТелефона,
	               |	Заказ.ПолучитьСКлиента КАК СуммаКПолучению,
	               |	Заказ.ЭлектроннаяПочта КАК EMailПолучателя,
	               |	Заказ.СтраховаяСумма КАК СтраховаяСумма,
	               |	Заказ.КоличествоМест,
	               |	Заказ.Ссылка КАК Док,
	               |	Заказ.НомерСкладской
	               |ИЗ
	               |	Документ.Заказ КАК Заказ
	               |ГДЕ
	               |	Заказ.Ссылка = &ДокументОтгрузки";
	
	Запрос.УстановитьПараметр("ДокументОтгрузки", ДокументЗаказа);
	Результат = Запрос.Выполнить();
	Если Результат.Пустой() Тогда
		Возврат Ложь;
	КонецЕсли;
	
	ВыборкаЗаказы					= Результат.Выбрать();
	СтруктураПараметровЗаказа = Новый Структура;
	СтруктураПараметровЗаказа.Вставить("key",ПолучитьПараметрыИдентификации());
	Пока ВыборкаЗаказы.Следующий() Цикл
		СтруктураПараметровЗаказа.Вставить("inner_n",СокрЛП(ВыборкаЗаказы.НомерЗаказа)); // Внутренний номер отправителя
		СтруктураПараметровЗаказа.Вставить("delivery_date",Формат(ВыборкаЗаказы.ДатаЗаказа,"ДФ=yyyy-MM-dd"));  // Дата доставки (YYYY-mm-dd)
		СтруктураПараметровЗаказа.Вставить("delivery_time1",Формат(ВыборкаЗаказы.ДатаЗаказа,"ДФ=hh:mm"));  // Начальное время интервала доставки (min 10:00 )
		СтруктураПараметровЗаказа.Вставить("delivery_time2","22:00");  // Конечное время интервала доставки( max 22:00 )
		СтруктураПараметровЗаказа.Вставить("target_name",СокрЛП(ВыборкаЗаказы.Получатель));  // Получатель
		СтруктураПараметровЗаказа.Вставить("target_contacts",ПреобразоватьСтрокуВЧисло(ВыборкаЗаказы.НомерТелефона));  // Телефон получателя 7хххххххххх
		СтруктураПараметровЗаказа.Вставить("os",Формат(ВыборкаЗаказы.СтраховаяСумма,"ЧДЦ=2; ЧРД=.; ЧГ="));  // Оценочная стоимость заказа
		СтруктураПараметровЗаказа.Вставить("np","0");  // Услуга 'Прием наложенного платежа' (1 - да, иначе - 0)
		СтруктураПараметровЗаказа.Вставить("price_client","0");  // Величина наложенного платежа, руб
		СтруктураПараметровЗаказа.Вставить("price_client_delivery",Формат(ВыборкаЗаказы.СуммаКПолучению,"ЧДЦ=2; ЧРД=.; ЧГ=")); // Стоимость доставки для конечного получателя
		СтруктураПараметровЗаказа.Вставить("order_weight",Формат(ВыборкаЗаказы.ВесЗаказа,"ЧРД=.; ЧГ=")); // Вес отправления, кг
		СтруктураПараметровЗаказа.Вставить("places_count",Формат(ВыборкаЗаказы.КоличествоМест,"ЧРД=.; ЧГ=")); // Количество мест в заказе.
		СтруктураПараметровЗаказа.Вставить("dimension_side1",Формат(ВыборкаЗаказы.ГабаритВысота*100,"ЧРД=.; ЧГ=")); // Габарит заказа 1, см
		СтруктураПараметровЗаказа.Вставить("dimension_side2",Формат(ВыборкаЗаказы.ГабаритДлина*100,"ЧРД=.; ЧГ=")); // Габарит заказа 2, см
		СтруктураПараметровЗаказа.Вставить("dimension_side3",Формат(ВыборкаЗаказы.ГабаритШирина*100,"ЧРД=.; ЧГ=")); // Габарит заказа 3, см
		СтруктураПараметровЗаказа.Вставить("addr",СокрЛП(ВыборкаЗаказы.АдресДоставки)); // Адрес доставки
		СтруктураПараметровЗаказа.Вставить("sms","0"); // Признак услуги sms-информирования. Значения: 0 - нет, 1 - да
		СтруктураПараметровЗаказа.Вставить("open_option","3"); // Признак возможности вскрытия заказа. Возможные значения: 1 - Вскрытие разрешено, 2 - Разрешено вскрытие только внешней упаковки, 3 - Вскрытие запрещено
		СтруктураПараметровЗаказа.Вставить("call_option","0"); // Дополнительный (тарифицируемый) звонок клиенту. Значения: 0 - нет, 1 - да
		СтруктураПараметровЗаказа.Вставить("docs_option","0"); // Возврат накладных / документов, вложенных в заказ (опция тарифицируется). Значения: 0 - нет, 1 - да
		СтруктураПараметровЗаказа.Вставить("partial_option","1"); // Признак возможности частичного выкупа заказа клиентом (не тарифицируется). Значения: 0 - нет, 1 - да
		СтруктураПараметровЗаказа.Вставить("dress_fitting_option","0"); // Признак возможности примерки товаров (тарифицируется согласно договору). Значения: 0 - нет, 1 - да
		СтруктураПараметровЗаказа.Вставить("lifting_option","0"); // Занос / подъем КГТ заказов (более 25 кг) до квартиры (тарифицируется согласно договору). Значения: 0 - нет, 1 - да
		СтруктураПараметровЗаказа.Вставить("city","Москва");
		СтруктураПараметровЗаказа.Вставить("shk",СокрЛП(ВыборкаЗаказы.НомерСкладской));
		МассивТоваров = Новый Массив;
		ЗаказДокО = ВыборкаЗаказы.Док.ПолучитьОбъект();
		Для Каждого СтрТовары Из ЗаказДокО.Товары Цикл
			СтруктураСтрокиЗаказа = Новый Структура;
			Если СтрТовары.Товар.Пустая() Тогда
				Продолжить;
			КонецЕсли;
			
			СтруктураСтрокиЗаказа.Вставить("articul",СокрЛП(СтрТовары.Товар.АртикулПартнера));// Артикул товарной позиции / услуги
			СтруктураСтрокиЗаказа.Вставить("artname",СокрЛП(СтрТовары.Товар.Наименование));// Название товарной позиции / услуги
			СтруктураСтрокиЗаказа.Вставить("count",Формат(СтрТовары.Количество,"ЧРД=.; ЧГ="));// Название товарной позиции / услуги
			СтруктураСтрокиЗаказа.Вставить("weight",Формат(СтрТовары.ВесТовара,"ЧРД=.; ЧГ="));// Вес единицы товара, кг
			СтруктураСтрокиЗаказа.Вставить("price",Формат(СтрТовары.Цена,"ЧДЦ=2; ЧРД=.; ЧГ="));// Цена единицы товара, руб
			СтруктураСтрокиЗаказа.Вставить("nds",ПолучитьКодСтавкиНДС(СтрТовары.Товар.СтавкаНДС));// Вид налога на товар/услугу (передавать Int): 1 - HДС 18%, 2 - Без HДС, 3 - HДС 10%, 4 - HДС 18/118, 5 - HДС 10/110, 6 - НДС 0%
			МассивТоваров.Добавить(СтруктураСтрокиЗаказа);
			
		КонецЦикла;
		СтруктураПараметровЗаказа.Вставить("goods",МассивТоваров);
		
	КонецЦикла;
	ЗаписьJSON = Новый ЗаписьJSON;
	ЗаписьJSON.УстановитьСтроку(Новый ПараметрыЗаписиJSON(,Символы.Таб));
	ЗаписатьJSON(ЗаписьJSON,СтруктураПараметровЗаказа);
	СтрокаJSON = ЗаписьJSON.Закрыть();
	Сообщить(СтрокаJSON);
	
	HTTPСоединение = Новый HTTPСоединение("127.0.0.1");
	HTTPЗапрос = Новый HTTPЗапрос("/logsys/"); 
	HTTPЗапрос.Заголовки.Вставить("Content-type", "application/json");
	HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);

	Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
	ОтветСтрока = Ответ.ПолучитьТелоКакСтроку("UTF-8");

	Сообщить("Код результата: " + Ответ.КодСостояния);
	Сообщить("Ответ: " + ОтветСтрока);
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(ОтветСтрока);
	ИмяСвойства = "";
	НетОшибкаЧтенияJSON = Ложь;
	
	Пока ЧтениеJSON.Прочитать() Цикл
		ТипJSON = ЧтениеJSON.ТипТекущегоЗначения;
		Если ТипJSON = ТипЗначенияJSON.Строка Тогда
			Значение = ЧтениеJSON.ТекущееЗначение;
			Если ИмяСвойства = "status" Тогда
				НетОшибкаЧтенияJSON = Истина;
			ИначеЕсли ИмяСвойства = "order_id" Тогда
				НомерЗаказаЛогсис = Значение;
			КонецЕсли;
		ИначеЕсли ТипJSON = ТипЗначенияJSON.ИмяСвойства Тогда
			ИмяСвойства = ЧтениеJSON.ТекущееЗначение;
		КонецЕсли;
	КонецЦикла;
	Возврат НетОшибкаЧтенияJSON;
КонецФункции

Тестировалось на платформе: 1С:Предприятие 8.3 (8.3.10.2561) Конфигурация самописная

обработка обмен данными API

См. также

Автоматический заказ поставщику в 1С: загрузка прайсов и анализ цен поставщиков для УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розница 2

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом.

28500 руб.

21.04.2017    90956    110    40    

197

ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы онлайн касс АТОЛ, ШТРИХ, VIKI PRINT и т.д. МАРКИРОВКА (Разрешит. режим) + ЭКВАЙРИНГ + БЕСПЛАТНЫЙ ДЕМО

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения 1С:CRM ПРОФ, КОРП Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Поддерживает разрешительный режим. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows ЭМУЛЯТОР + ЭКВАЙРИНГ + МАРКИРОВКА + ПОДДЕРЖКА ФФД 1.2

6000 руб.

27.02.2017    766720    4690    9502    

2792

ЕГАИС++. Опт, производство, импорт

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    166448    702    362    

390

Перенос данных из Парус 8 в ЗГУ 3

Зарплата Внешние источники данных Бюджетный учет Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    22615    19    1    

22

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 руб.

29.10.2014    211194    630    526    

446

Обмен с системой ЦРПТ (Универсальная конфигурация ХамелеонЦРПТ + маркировка табака, обуви, одежды, лекарств, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин)

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)

Данная публикация создана для помощи разработчикам, интеграторам и другим заинтересованным лицам по настройке системы маркировки обуви, одежды, лекарств, табака, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин. Смело задавайте нам вопросы по работе с ЦРПТ, GS1, ЭДО, Национальным каталогом, мы накопили достаточно большую базу знаний по данным темам и готовы ответить на все Ваши вопросы.

104000 руб.

18.03.2019    110666    35    114    

178

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9304    9    8    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Константин С. 667 13.09.18 19:00 Сейчас в теме
Поднимаем Apache + PHP или Nginx + PHP на локальной машине и пробуем отправить заказы:

воо заморочки, как-то не клиентооринтировано чтобы настроить обмен.
2. astracrypt 75 14.09.18 04:48 Сейчас в теме
(1) Лекгий путь - это не наш метод. :))
Оставьте свое сообщение