Содержание
Обмен 1С с Битрикс
PHP скрипт обмена (импорта) 1С: http://site.ru/bitrix/admin/1c_import.php
.
Общая схема импорта
type=sale
- обмен заказами, type=catalog
- импорт каталога
mode=checkauth
- авторизацияmode=init
- инициацияmode=query
- запрос (для заказов)mode=file&filename=<имя файла>
- загрузка файлаmode=import&filename=<имя файла>
- обработка файла
Шаги импорта выгрузки Битрикс
Ответ | Шаг $NS[«STEP»] |
---|---|
Распаковка архива завершена | - |
Временные таблицы удалены | - |
Временные таблицы созданы | 1 |
Обработано 94.35% файла | 2 |
Файл импорта прочитан | 2 |
Временные таблицы проиндексированы | 3 |
Метаданные импортированы успешно | 4 |
Группы импортированы | 5 |
Деактивация/удаление групп завершено | 6 |
Обработано 5781 из 10061 элементов | 7 |
Обработано 10061 из 10061 элементов | 7 |
Загрузка элементов завершена | 7 |
Деактивация/Удаление элементов завершены | 8 |
Импорт успешно завершен | - |
Порядок импорта по шагам
Создадим переменные (файл кукисов $COOK
и логин-пароль $BASIC_AUTH
- это base64
от логин:пароль
):
COOK='data/cookiefile.txt' BASIC_AUTH=`echo -n "логин:пароль" | base64`
Авторизация
Пример запуска:
curl -s -c $COOK 'http://site.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=checkauth' -H "Authorization: Basic $BASIC_AUTH"
Ответ:
success PHPSESSID 1sk5v5eu830h4ddpfkj22eitf5
success
- успех. Если вернулся HTML - проверьте логин-пароль, а также войдите под этими данными на сайт, введя каптчу (еще одна причина отказа).
Инициация
curl -s -c $COOK -b $COOK 'http://site.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=init' -H "Authorization: Basic $BASIC_AUTH"
Ответ:
zip=yes file_limit=204800
Загружаем файл
Выгружаем на сайт файлы обмена в формате CommerceML 2
, посылая содержимое файла или его части в виде POST
:
curl -s -c $COOK -b $COOK -X POST --data-binary @- 'http://site.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=file&filename=offers.xml' -H "Authorization: Basic $BASIC_AUTH" -H 'Content-Type: application/octet-stream' -H 'Expect:' < offers.xml
Ответ:
success
Пошаговая обработка файлов
curl -s -c $COOK -b $COOK 'http://site.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=offers.xml' -H "Authorization: Basic $BASIC_AUTH"
Если в первой строке содержится слово progress
- это означает необходимость послать тот же запрос еще раз.
В этом случае во второй строке будет возвращен текущий статус обработки, объем загруженных данных, статус импорта и т.д.
Ответы:
progress Распаковка архива завершена. progress Временные таблицы удалены. progress Временные таблицы созданы. progress Обработано 49.57% файла. progress Обработано 98.19% файла. progress Файл импорта прочитан. progress Временные таблицы проиндексированы. progress Метаданные импортированы успешно. progress Группы импортированы. progress Деактивация/удаление групп завершено. progress Обработано 9168 из 9168 элементов. progress Загрузка элементов завершена. progress Обработано 9168 из 9168 элементов. progress Деактивация/Удаление элементов завершены.
Если в ответ передается строка со словом «success», то это будет означать сообщение об успешном окончании обработки файла.
success Импорт успешно завершен.
Если в ходе какого-либо запроса произошла ошибка, то в первой строке ответа системы управления сайтом будет содержаться слово failure
, а в следующих строках - описание ошибки, произошедшей в процессе обработки запроса.