Обмен с интернет-магазином на платформе DOCPART

17.02.24

Интеграция - Сайты и интернет-магазины

В настоящее время существует множество платформ для создания интернет-магазинов. Удобные и не очень, платные или бесплатные. У каждого решения найдутся свои сторонники, но наличие оперативного обмена с учётной системой важно для любой платформы. В этой публикации мы рассмотрим одну из популярных платформ для создания интернет-магазина по продаже автозапчастей Docpart и организацию обмена данными с ней.

Текущая версия больше не актуальна и не поддерживается. См. Документацию для получения актуальной информации - Полная документация по методам Docpart 1C API

Для продажи автозапчастей в интернете уже сделано немало готовых платформ. Какие-то распространяются по ежемесячной подписке. Другие можно купить и установить на своем сервере. Платформа Docpart выгодно отличается на фоне конкурентов низкой стоимостью и необходимым функционалом для открытия своего интернет-магазина. Функционально она в чем-то уступает более именитым конкурентам, но далеко не все пользователи используют функционал интернет-магазина "по полной".  Платформа потихоньку обрастает новыми функциями и становится чуть-чуть лучше с каждым обновлением. Открытость кода позволяет дорабатывать необходимый функционал самостоятельно не "подсаживаясь" на сервисную поддержку производителя. 

Для реализации обмена я разработал небольшое API, которое позволяет оперативно получать данные с сайта и обрабатывать их в вашей учетной системе. Причем учетной системой может быть не только 1С. 

Работа с сервисом

Для использования API необходимо установить модули из архива docpart_1c_api.zip на ваш веб-сервер. Для примера, скопируем все модули в каталог /api/agent_1c.

Если Вы назовете свой каталог по-другому, то не забудьте изменить путь к вызову методов веб-сервиса во всех командах в обработке.

Работа с веб-сервисом осуществляется посредством отправки POST-запросов к входной точке веб-сервиса, которой является скрипт execute.php с передачей необходимого метода и параметров. В ответ будут возвращены необходимые данные. 

Для использования API версия платформы 1С значения не имеет. Работать будет с любой учетной системой для которой есть возможность отправки POST-запроса и обработки его результата. 

В нашем примере все запросы следует отправлять к адресу:

http://мой-магазин.рф/api/agent_1c/execute.php

Для запросов обязательна передача заголовка

content-type: application/x-www-form-urlencoded

В теле POST-запроса есть два общих для всех методов параметра:

  • task – имя метода API для выполнения
  • tech_key – Ключ для вызова скриптов. Его необходимо взять из панели управления платформы Docpart в разделе «Настройки».

При вызове любого метода будет возвращена JSON-структура с полями

  • status – Булево – статус выполнения метода
  • message – Строка – Сообщение об ошибке
  • data – Результат выполнения метода

Пример вызова метода для платформы 8.3 (8.3.5+):

Процедура ВыполнитьЗапросDocpartAPI()
	
	//Изменить параметры на свои значения
	АдресСайта = "мой-магазин.рф";	
	ТелоЗапроса = "tech_key=TESTKEYTECH&task=check_connection";
	ПротоколHTTPS = Истина;
	
	//Вызов метода API
	Если ПротоколHTTPS Тогда
		ЗащищенноеСоединение = Новый ЗащищенноеСоединениеOpenSSL();
		ПодключениеКСерверу = Новый  HTTPСоединение(АдресСайта,,,,,30, ЗащищенноеСоединение);	
	Иначе		
		ПодключениеКСерверу = Новый  HTTPСоединение(АдресСайта,,,,,30);	
	КонецЕсли;
	
	ОтветСервера = Неопределено;
	Если ПодключениеКСерверу = Неопределено Тогда
		ОбщегоНазначения.СообщитьОбОшибке("Обмен с WEB-сайтом: ошибка подключения к сайту: "+ОписаниеОшибки());		
		Возврат ;
	КонецЕсли;
	
	СтрокаПодключения = "api/agent_1c/execute.php";	
	ЗаголовокHTTP = Новый Соответствие;
	ЗаголовокHTTP.Вставить("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");		
	ЗапросHTTP =  Новый HTTPЗапрос(СтрокаПодключения, ЗаголовокHTTP);
	ЗапросHTTP.УстановитьТелоИзСтроки(ТелоЗапроса,КодировкаТекста.ANSI);
	Попытка
		РезультатЗапроса = ПодключениеКСерверу.ОтправитьДляОбработки(ЗапросHTTP);
		ОтветСервера	= РезультатЗапроса.ПолучитьТелоКакСтроку();	
	Исключение
		ОбщегоНазначения.СообщитьОбОшибке("Обмен с WEB-сайтом: ошибка отправки данных на сервер: "+ОписаниеОшибки());		
	КонецПопытки;
	
	Если НЕ ЗначениеЗаполнено(ОтветСервера) Тогда
		Возврат;
	КонецЕсли;
	
	//JSON ENCODE
	Чтение = Новый ЧтениеJSON;
	Чтение.УстановитьСтроку(ОтветСервера);
	Результат = ПрочитатьJSON(Чтение, Истина); //Структура запроса для дальнейшей обработки
	Чтение.Закрыть();
	
	//Обрабатываем дальнейший результат
	Если Результат["status"] Тогда
		ОбщегоНазначения.Сообщение("Связь с сайтом установлена");
	Иначе
		ОбщегоНазначения.Сообщение("Ошибка связи с сайтом: "+Результат["message"]);
	Конецесли;
	
КонецПроцедуры

Пример работы с веб-сервисом

Обработка тестировалась на платформе 8.3.5 но должна работать и на более ранних версиях. В настройках обработки необходимо прописать адрес Вашего сайта и ключ доступа. Адрес скрипта на сервере можно менять по-своему усмотрению, тогда необходимо изменить соответствующую настройку.  

Для повышения безопасности на Вашем веб-сервере можно настроить HTTP-авторизацию для доступа к каталогу с модулем API. Тогда в настройках необходимо указать логин и пароль для доступа. 

В обработке реализованы вызовы всех методов API. При появлении новых методов обработка будет обновляться. Пока сделана для конфигураций на обычных формах. В случае необходимости, добавлю для управляемых. Фильтры на форме реализованы только основные. Передача остальных фильтров выполняется добавлением в структуру необходимых полей. Имена необходимых полей можно увидеть в функции модуля "ПолучитьПараметрыМетода". 

 

Для вызова метода API необходимо заполнить структуру параметров и вызвать нужный метод из модуля обработки. Метод возвращает таблицу значений с данными сайта. 

    СтруктураФильтров = Новый Структура;
	Если ЗначениеЗаполнено(НачалоПериодаОплаты) Тогда
		СтруктураФильтров.Вставить("НачалоПериода", НачалоПериодаОплаты);
	КонецЕсли;
	Если ЗначениеЗаполнено(КонецПериодаОплаты) Тогда
		СтруктураФильтров.Вставить("КонецПериода", КонецПериодаОплаты);
	КонецЕсли;
	Если ЗначениеЗаполнено(КодОперации) Тогда
		СтруктураФильтров.Вставить("КодОперации", КодОперации);
    КонецЕсли;
    	
	ТаблицаОплат = ПолучитьОплатыПокупателей(СтруктураФильтров);//Вызываем метод из модуля обработки

ВНИМАНИЕ: Обработка только возвращает данные с сайта. Сохранение данных для своей конфигурации необходимо реализовывать самостоятельно! Позже планируется добавить полноценную интеграцию для типовых конфигураций. 

Методы API

Проверка соединения с сервисом

Метод используется для проверки связи с сайтом и корректности указания настроек обмена.

Операция: check_connection

Параметры запроса:

Параметр

Пример заполнения

Описание

tech_key *

TEST_KEY_FROM_SETTINGS

Строка – Ключ для вызова скриптов

 

Для проверки связи с веб-сервисом предназначен метод check_connection. При успешном выполнении метод возвращает ответ:

Поле

Описание

status

Булево – статус выполнения метода

 

message

Строка – всегда возвращает текст «ОК»

 

Получение списка заказов

Метод возвращает список заказов, соответствующих отбору.

Операция: get_orders

Параметры запроса:

Параметр

Пример заполнения

Описание

tech_key *

TEST_KEY_FROM_SETTINGS

Строка – Ключ для вызова скриптов

time_from *

10.01.2019

Дата – Начало периода получения заказов

time_to

12.01.2019

Дата – Окончание периода получения заказов

order_id

10

Идентификатор заказа

status

2

Идентификатор статуса заказа

paid

1

Состояние оплаты заказа (0/1)

 

Результат запроса представляет собой структуру с данными:

Поле

Описание

status

Булево – статус выполнения метода

 

message

Строка – всегда возвращает текст «ОК»

data

Запрашиваемые данные

 

При успешном выполнении метод возвращает данные [data]:

Поле

Описание

order_id

Число – Идентификатор заказа

time

Дата – Дата и время оформления заказа

 

user_id

Число – Идентификатор пользователя

amount

Число – Сумма заказа

paid

Число – Состояние оплаты (0/1)

status

Число – Идентификатор статуса заказа

obtain_id

Число – Идентификатор способа доставки

obtain_caption

Строка – Наименование способа доставки

office_id

Число – Идентификатор офиса самовывоза

office_name

Строка – Офис самовывоза

 

Получение списка позиций заказов

Метод возвращает список товаров заказов, выбранных заказов.

Операция: get_orders_items

Параметры запроса:

Параметр

Пример заполнения

Описание

tech_key *

TEST_KEY_FROM_SETTINGS

Строка – Ключ для вызова скриптов

order_id

10

Число / Массив чисел - Идентификаторы заказов

 

Результат запроса представляет собой структуру с данными:

Поле

Описание

status

Булево – статус выполнения метода

 

message

Строка – всегда возвращает текст «ОК»

data

Запрашиваемые данные

 

При успешном выполнении метод возвращает данные [data]:

Поле Описание

order_id

Число – Идентификатор заказа

item_id

Число – Идентификатор позиции заказа

 

product_name

Строка – Наименование товара каталога. Для товара с product_type=1

brand

Строка – Наименование производителя

article

Строка – Артикул товара

count

Число – Количество

price

Число – Цена

amount

Число – Сумма

product_type

Число – Тип товара: 1 – Товар из каталога в наличии, 2 – Товар из проценки по артикулу

product_id

Число – Идентификатор товара каталога. Для товара с product_type=1

t2_time_to_exe

Дата – Срок доставки. Для товара с product_type=2

t2_time_to_exe_guaranteed

Дата – Гарантированный срок доставки. Для товара с product_type=2

status_id

Число – Идентификатор статуса позиции

status_name

Строка – Наименование статуса позиции

 

Получение информации о пользователе

Метод возвращает расширенную информацию о пользователе.

Операция: get_user_info

Параметры запроса:

Параметр

Пример заполнения

Описание

tech_key *

TEST_KEY_FROM_SETTINGS

Строка – Ключ для вызова скриптов

user_id

15

Число / массив чисел – Идентификатор пользователя

 

Для проверки связи с веб-сервисом предназначен метод check_connection. При успешном выполнении метод возвращает ответ:

Поле

Описание

status

Булево – статус выполнения метода

 

message

Строка – всегда возвращает текст «ОК»

Data

Запрашиваемые данные

 

Структура Data содержит следующие данные

Поле

Описание

user_id

Число –Идентификатор пользователя

 

reg_variant

Число – Выбранный способ регистрации (Из числа описанных в панели управления сайта раздел «Способы регистрации»)

reg_field

Строка – значение главного поля регистрации (Email / Телефон). Задается в настройках платформы: «Главное поле регистрации»

unlocked

Число – Пользователь заблокирован – 0 или нет - 1

activated

Число – Пользователь активировал свою учетную запись – 1 или нет -0.

time_registered

Дата - Дата регистрации пользователя

time_last_visit

Дата – Дата последнего визита пользователя

Дополнительные поля регистрации

Значения регистрационных полей для текущего пользователя

 

В результат запроса будут добавлены все значения регистрационных полей, определенных для текущего способа регистрации. Их состав можно определить в панели управления в разделе: Пользователи – Поля регистрации.

Получение транзакций оплаты

Метод возвращает список транзакций оплаты проведенных на сайте

Операция: get_payments

Параметры запроса:

Параметр

Пример заполнения

Описание

tech_key *

TEST_KEY_FROM_SETTINGS

Строка – Ключ для вызова скриптов

time_from *

10.01.2019

Дата – Начало периода получения заказов

time_to

15.01.2019

Дата – Окончание периода получения заказов

payment_id

10

Идентификатор транзакции

operation_code

7

Код операции из справочника

income

1

Вид операции: 1 – приход, 0- расход

 

Результат запроса представляет собой структуру с данными:

Поле

Описание

status

Булево – статус выполнения метода

 

message

Строка – всегда возвращает текст «ОК»

data

Запрашиваемые данные

 

При успешном выполнении метод возвращает данные [data]:

Поле

Описание

payment_id

Число – Идентификатор транзакции

user_id

Число – Идентификатор пользователя

time

Дата / время – Дата и время транзакции

income

Число, Вид операции: 1 – приход, 0- расход

pay_orders

Число, Идентификатор заказа для которого производится оплата

amount

Число, Сумма транзакции

operation_code

Число, Код операции

 

Получение информации об артикуле

Метод возвращает список производителей и наименования товара по его артикулу. Получение данных выполняется с сервера Кроссов Docpart. Для одного артикула может быть возвращено несколько вариантов производителей.

Операция: get_article_info

Параметры запроса:

Параметр

Пример заполнения

Описание

tech_key *

TEST_KEY_FROM_SETTINGS

Строка – Ключ для вызова скриптов

article

24012802171

Строка / массив строк — Артикулы товаров для которых необходимо получить информацию

 

Результат запроса представляет собой структуру с данными:

Поле

Описание

status

Булево – статус выполнения метода

 

message

Строка – всегда возвращает текст «ОК»

data

Запрашиваемые данные

 

При успешном выполнении метод возвращает данные [data]:

Поле

Описание

article

Строка – Артикул товара

manufacturer

Строка – Производитель

name

Строка — Наименование товара

 

Обновления

UPD 30.05.2020: Версия на инфостарт больше не актуальна и не поддерживается. См. Документацию для получения актуальной информации - Полная документация по методам Docpart 1C API

UPD 30.04.2020: Добавлена документация по всем методам: Полная документация по методам Docpart 1C API

UPD 14.07.2019: Добавлена обработка получения данных для 1С

UPD 20.07.2019: Исправление некоторых замечаний. Изменены имена некоторых параметров и свойств. Для метода get_user_info добавлена возможность передачи массива идентификаторов пользователей. В архив с модулями добавлен файл описания методов API.

UPD 28.07.2019: Получение информации о товарах выделено в отдельный метод - get_orders_items. Добавлен метод для получения информации о товарах - get_article_info. Исправлена обработка для работы с новыми методами. 

обмен с интернет-магазином docpart myast API веб-сервис

См. также

Сайты и интернет-магазины Платформа 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку. Поддерживает работу от разных юридических лиц. Работа: в составе РИБ, отдельно от РИБ, тонкий, толстый клиент, web-клиент (через интернет-браузер).

22440 руб.

19.12.2023    5251    39    11    

35

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    17854    19    22    

17

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

7200 руб.

04.05.2021    19970    13    17    

17

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

В настоящее время система СБП очень часто стала использоваться в повседневной жизни. Одна из систем интеграции СБП через СБЕР. Данная конфигурация является инструментом интеграции СБП в Альфа Авто. Данная система не просто формирует статический QR, а динамический, а значит, в системе будет привязка и на покупателя, и на документ.

7200 руб.

25.10.2022    6359    32    4    

11
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user1027863 31.07.19 16:08 Сейчас в теме
Здравствуйте. Вы оказываете техническую консультацию после покупки? Если скрипт не заработает. Спасибо.
2. Johny_v 140 31.07.19 16:15 Сейчас в теме
(1) Добрый день. Да, но только в рамках заявленного функционала.
3. user1277666 06.09.19 15:46 Сейчас в теме
Добрый день! Какая цена данного модуля? с его помощью, я так понимаю, можно настроить двусторонний обмен данными с 1С: выгрузка цен на сайт, выгрузка двусторонняя заказов, смена статусов двусторонняя, выгрузка товаров в каталог наличия docpart и т.д. Верно?
4. Johny_v 140 08.09.19 23:07 Сейчас в теме
Добрый день. Модуль представляет собой веб-сервис, позволяющий настроить обмен сайта и 1с. На данный момент можно только загружать данные с сайта в 1С. Полноценный двухсторонний обмен пока не готов, но его разработка ведётся.
5. user1277666 09.09.19 00:10 Сейчас в теме
(4)
Т.е. выгрузка цен с 1С на сайт еще не работает? когда примерно будет реализовано?
6. Johny_v 140 09.09.19 05:45 Сейчас в теме
Могу доделать, если надо.
7. chipford 05.01.20 14:29 Сейчас в теме
Здравствуйте! как с Вами связаться?
8. Johny_v 140 05.01.20 17:56 Сейчас в теме
(7) Добрый вечер. Ответил в личку.
20. user1508106 13.12.20 14:07 Сейчас в теме
(8)Как с вами связаться и сколько стоит модуль обмена 1-с и docpart?
21. Johny_v 140 13.12.20 20:23 Сейчас в теме
(20) Скайп ниже в комментариях. Другие контакты есть на странице с полной версией документации.
9. пользователь 18.02.20 15:59
Сообщение было скрыто модератором.
...
10. user1364328 18.02.20 19:57 Сейчас в теме
Здравствуйте! как с Вами связаться?
11. Johny_v 140 18.02.20 20:00 Сейчас в теме
(10)Добрый вечер. По всем вопросам можно писать в личку или скайп: emayskiy.
12. bmw1702 30.04.20 17:13 Сейчас в теме
Добрый день. Какая стоимость готовых обработок для обмена данными с сайтом автозапчастей Docpart?
13. Johny_v 140 30.04.20 19:26 Сейчас в теме
14. user1007807 12.05.20 09:41 Сейчас в теме
Добрый день! Сколько стоит готовая обработка и апи модуль для обмена 1с с сайтом Докпарт?
15. Johny_v 140 12.05.20 13:20 Сейчас в теме
16. ASP_SP 11.09.20 17:36 Сейчас в теме
Добрый день!
Не подскажете, в 2019 году вы писали, что в процессе полноценный двухсторонний обмен, получилось сделать?
Не подскажете стоимость готовой обработки и модуля обмена с 1С?
17. Johny_v 140 11.09.20 18:02 Сейчас в теме
(16) Сделал только веб-сервис, который можете сами интегрировать в 1С. До реализации полноценного обмена дело так и не дошло. Есть более приоритетные задачи на основной работе, поэтому нет времени доработку этой интеграции.
18. ASP_SP 11.09.20 18:27 Сейчас в теме
А описание методов сервиса для 1С есть?
Какие данные можно получать?
Сколько стоимость всех модулей?
19. kin51 14.10.20 13:38 Сейчас в теме
Здравствуйте.
Не подскажете стоимость обработки и модуля обмена с 1С?
22. user1553174 27.02.21 18:35 Сейчас в теме
Подскажите пожалуйста стоимость..
23. user1547539 01.03.21 12:46 Сейчас в теме
(22) Здравствуйте Михаил вы связывались с разработчиком?
24. Johny_v 140 01.03.21 22:57 Сейчас в теме
25. user1574530 31.03.21 18:29 Сейчас в теме
Здравствуйте. Подскажите как с вами можно связаться по поводу обмена 1С и Docpart?
26. transport78 03.10.22 17:01 Сейчас в теме
Добрый день! Как с вами связаться по обработке обмена 1С с платформой Docpart?
27. sher_70 22.02.24 10:48 Сейчас в теме
Добрый день! Как с вами связаться по обработке обмена 1С с платформой Docpart? Так же меня интересует возможность подключения прайс листа по ссылке к Докпарт, прайс содержит ссылки на фото, как это все реализовать не понятно
28. Johny_v 140 23.02.24 09:36 Сейчас в теме
Оставьте свое сообщение