API синхронизации интернет-магазина с 1С
Last updated
Was this helpful?
Last updated
Was this helpful?
Иногда требуется создать собственную логику или существенно доработать существующую синхронизацию 1С с PHPShop. Вы можете воспользоваться PHPShop API, приведенном в этом руководстве.
Получение данных о заказах с сайта и обновление статуса после загрузки в 1С
Данные о заказах на сайте можно получать в виде сформированного csv-файла фиксированной структуры () или с помощью реализованных на сайте API.
Для получения данных о заказах через API необходимо выполнить следующий запрос:
где:
«ИмяСайта» - наименование Вашего сайта;
«ПапкаДанных» - наименование папки служебных данных сайта. По-умолчанию 1cManager;
«ДатаНачала» - дата начала запроса в формате Unix-date;
«ДатаОкончания» - дата окончания запроса в формате Unix-date;
«ЧислоЗаказов» - максимальное число заказов в результате запроса;
«Пользователь» - имя пользователя для авторизации на сайте (должен иметь соответствующие привилегии);
«Пароль» - пароль пользователя для авторизации на сайте в кодированном виде ().
Например: http://demo.phpshop.ru/1cManager/loader.php?command=list&date1=1250640000&date2=1250726399&num=10&log=demo&pas=100O101O109OI1OI7OI5O101OI4OI50O
В качестве результата запроса будет информация о заказах в формате . В случае ошибок результатом будет «Error».
После загрузки заказов в 1С необходимо выполнить запрос на сайт с целью обновления статусов загруженных заказов:
где:
«ИмяСайта» - наименование Вашего сайта;
«ПапкаДанных» - наименование папки служебных данных сайта. По-умолчанию 1cManager;
«НомерЗаказа1С» - номер созданного в 1С документа;
«Пользователь» - имя пользователя для авторизации на сайте (должен иметь соответствующие привилегии);
Например:
Выгрузка номеров счетов-фактур в интернет-магазин
На сайт можно выгружать формы созданных в 1С счетов-фактур по ранее загруженным заказам.+Для этого:
формируется список заказов, которые уже были загружены в 1С, но с-ф по которым не были выгружены на сайт: http://<ИмяСайта>/<ПапкаДанных>/loader.php?command=check&date1=<ДатаНачала>&date2=<ДатаОкончания>&log=<Пользователь>&pas=<Пароль>
результатом будет строка с разделителем «;» из номеров 1С загруженных заказов;
в 1С отбираются созданные с-ф по документам из п.1, формируются копии счетов в форматах html, xls, doc и копируются на ftp (либо в локальную папку);
изменяется статус заказов, для которых выгружены с-ф: http://<ИмяСайта>/<ПапкаДанных>/loader.php?command=update &cid=<НомерЗаказа1С>&date=<ДатаСчета>&log=<Пользователь>&pas=<Пароль>
где: «ДатаСчета» - дата счет-фактуры в 1С.
Загрузка списка родительских групп товаров в интернет-магазин из 1С
Загрузка списка контрагентов в интернет-магазин из 1С
Кроме «ручной» загрузки товаров на сайт через транспортный файл можно инициировать автоматическую загрузку с помощью реализованных на сайте API. Для это необходимо:
сформировать файлы с данными в установленном формате и скопировать их в одну папку;
выполнить запрос http://<ИмяСайта>/<ПапкаДанных>/result.php?date=<ПапкаСФайлами>&files=all&log=<Пользователь>&pas=<Пароль>&create=true&create_category=true
где:
«ИмяСайта» - наименование Вашего сайта;
«ПапкаДанных» - наименование папки служебных данных сайта. По-умолчанию 1cManager;
ПапкаСФайлами – папка со сформированными файлами товарной базы;
«Пользователь» - имя пользователя для авторизации на сайте (должен иметь соответствующие привилегии);
create=true – признак создания новых товаров, если товар по артикулу не был найден в базе данных;
category=true – создавать новые, не найденные в базе данных каталоги.
Результат запроса будет строка с разделенными «;» именами файлов ранее не загруженных на сайт.
Для каждого файла из списка в п.2 выполнить http://<ИмяСайта>/<ПапкаДанных>/result.php?date=<ПапкаСФайлами>&files=<ИмяФайла>&log=<Пользователь>&pas=<Пароль>>&create=true&create_category=true
где: ИмяФайла – очередное имя файла из списка.
где в секции «Начало личных данных»:
id – id заказа;
uid – номер заказа;
datas – дата заказа (в формате Unix-date);
mail – почта заказчика;
name – контактное лицо;
campany – наименование организации (если заказчик юр.лицо);
tel – телефон;
oplata – тип оплаты;
sum – сумма заказа;
discount – скидка прописью;
inn – ИНН организации (если заказчик юр.лицо или ИП);
kpp – КПП организации (если заказчик юр.лицо или ИП).
где в секции «Начало заказанных товаров»:
id - id товара;
uid - артикул = код/артикул товара в 1С;
num - кол-во товаров в заказе;
sum – цена товара.
№
Наименование поля
Описание
1
Артикул
Артикул товара
2
Наименование
Наименование товара
3
Краткое описание
Краткое описание товара
4
Маленькая картинка
Картинка товара
5
Подробное описание
Подробное описание товара
6
Большая картинка
Картинка товара
7
Остаток
Свободный складской остаток товара
8
Цена1
Цена товара по типу цены №1
9
Цена2
Цена товара по типу цены №2
10
Цена3
Цена товара по типу цены №3
11
Цена4
Цена товара по типу цены №4
12
Цена5
Цена товара по типу цены №5
13
Вес
Вес товара (для весовой номенклатуры)
14
Ед.измерения
Единица хранения остатков
15
ISO
Валюта товара
16
Category ID
Код родительской группы товара
17
Parent
Подчиненные товары
18
Характеристика [1-…...]
Наименование характеристики товара
19
Значение [1-…..]
Значения характеристики товара
* Число видов и значений характеристик может варьироваться от 1 до 100 ** Файл должен носить имя upload_X.csv для автоматического определения в магазине, где X - номер файла [1-100]
Для указания нескольких значений одной характеристики используется символ разделитель &&
. Например:
В поле Parent перечисляются через запятую 1С-коды подчиненных товаров (подтипов) у текущего главного товара, данные которого представлены в этой колонке. Например:
Если товар не имеет подтипов, то поле Parent остается пустым
. Если товар является сам подтипом, то в поле Parent указывается данные в формате размер@цвет
. Например:
Если у подтипа нет цвета, то указывается просто значение подтипа, которое будет показываться перед добавлением в корзину. Например:
№
Наименование поля
Описание
1
CatalogID
Код группы
2
Name
Наименование группы
3
Parent
Код родителя для текущей группы
* Файл должен носить имя tree.csv для автоматического определения в магазине
№
Наименование поля
Описание
1
Полное наименование
Полное наименование контрагента
2
ИНН
ИНН контрагента
3
КПП
КПП контрагента
4
Адрес
Адрес контрагента
5
Телефон
Телефон контрагента
6
Электронный адрес контрагента
7
Контактное лицо
Основное контактное лицо контрагента
* Файл должен носить имя user.csv
для автоматического определения в магазине
В отличии от 1С формат временной метки Unix time задается в целочисленном представлении. Его значение отсчитывается в секундах от полночи 1 января 1970 года по гринвичскому часовому поясу. Поэтому, для получения значения в формате Unix time необходимо добавить число секунд, прошедшее с нуля часов 01.01.1970 года. Реализация в 1С может выглядеть, например, следующим образом:
«ИД_заказа» - id заказа на сайте, указан в секции «Начало личных данных» данных о зазазе (см. );
«Пароль» - пароль пользователя для авторизации на сайте в кодированном виде (алгоритм ).
Выгрузка товарной базы из 1С в интернет-магазин выполняется посредством транспортных файлов в формате CSV фиксированной структуры ().
На сайт из 1С можно выполнить загрузку списка родительских групп товаров через транспортный файл в формате CSV фиксированной структуры ().
На сайт из 1С можно выполнить загрузку списка контрагентов через транспортный файл в формате CSV фиксированной структуры ().
«Пароль» - пароль пользователя для авторизации на сайте в кодированном виде (алгоритм );
Все 1C-обработки (*.ert,*.epf.*.dll,*.exe) PHPShop предоставляются в виде скомпилированных файлов без исходных кодов согласно