1. Авторизация
Авторизация — это первый и важнейший этап обмена данными. Выполните следующую команду, чтобы проверить доступ:
curl -v -u "логин:пароль" "https://example.com/bitrix/admin/1c_exchange.php?type=catalog&mode=checkauth"
Что происходит:
- Команда отправляет запрос на сервер с использованием логина и пароля пользователя, настроенного для обмена.
- Сервер в случае успешной авторизации вернет:
success
PHPSESSID
<идентификатор_сессии>
sessid=<идентификатор_sessid>
timestamp=<временная_метка>
Сохраняйте sessid
, так как он потребуется для последующих операций.
Примечание: Если сервер возвращает ошибку авторизации, убедитесь, что пользователь активен, и проверьте правильность введенных данных.
2. Загрузка файлов (цены, остатки и т.д.)
После авторизации вы можете загрузить файлы, например, с данными о ценах. Используйте следующую команду:
curl -v -u "логин:пароль" -X POST \
-F "filename=prices.xml" \
-F "file=@/path/to/your/prices.xml" \
"https://example.com/bitrix/admin/1c_exchange.php?type=catalog&mode=file&sessid=<идентификатор_sessid>"
Пояснения:
filename=prices.xml
— имя файла, которое будет сохранено на сервере.file=@/path/to/your/prices.xml
— путь к локальному XML-файлу, который вы отправляете.
Для загрузки других файлов, например, остатков, измените имя файла и его путь:
curl -v -u "логин:пароль" -X POST \
-F "filename=stocks.xml" \
-F "file=@/path/to/your/stocks.xml" \
"https://example.com/bitrix/admin/1c_exchange.php?type=catalog&mode=file&sessid=<идентификатор_sessid>"
Совет: Убедитесь, что файлы имеют корректный формат и структуру перед отправкой.
3. Обработка загруженных файлов
После загрузки каждого файла необходимо инициировать его обработку. Выполните следующую команду:
curl -v -u "логин:пароль" \
"https://example.com/bitrix/admin/1c_exchange.php?type=catalog&mode=import&sessid=<идентификатор_sessid>"
Примечание: Выполняйте обработку для каждого загруженного файла, чтобы убедиться в корректности данных.
4. Завершение обмена
После обработки всех файлов завершите обмен, чтобы сервер завершил сессию:
curl -v -u "логин:пароль" \
"https://example.com/bitrix/admin/1c_exchange.php?type=catalog&mode=complete&sessid=<идентификатор_sessid>"
Зачем это нужно: Завершение обмена позволяет серверу корректно закрыть сессию и освободить ресурсы.
5. Забор заказов
Чтобы получить данные о заказах с сайта, выполните следующую команду:
curl -v -u "логин:пароль" \
"https://example.com/bitrix/admin/1c_exchange.php?type=sale&mode=query&sessid=<идентификатор_sessid>"
Пояснения:
type=sale
— указывает на работу с заказами.mode=query
— режим для получения данных.- Сервер вернет данные в формате XML, которые можно обработать в 1С.
6. Подтверждение обработки заказов
После успешной обработки заказов отправьте серверу подтверждение:
curl -v -u "логин:пароль" -X POST \
-F "filename=success.xml" \
-F "file=@/path/to/success.xml" \
"https://example.com/bitrix/admin/1c_exchange.php?type=sale&mode=file&sessid=<идентификатор_sessid>"
Затем завершите обмен:
curl -v -u "логин:пароль" \
"https://example.com/bitrix/admin/1c_exchange.php?type=sale&mode=success&sessid=<идентификатор_sessid>"
7. Загрузка фотографий товаров
Для обновления фотографий товаров на сайте необходимо выполнить загрузку изображений с помощью следующей команды:
curl -v -u "логин:пароль" -X POST \
-F "filename=import_files/image1.jpg" \
-F "file=@/path/to/your/image1.jpg" \
"https://example.com/bitrix/admin/1c_exchange.php?type=catalog&mode=file&sessid=<идентификатор_sessid>"
Пояснения:
filename=import_files/image1.jpg
— путь и имя файла на сервере. Папкаimport_files
используется по умолчанию для хранения изображений при обмене с 1С.file=@/path/to/your/image1.jpg
— путь к вашему локальному изображению.
Повторите эту команду для каждого изображения, которое нужно загрузить.
8. Обработка загруженных фотографий
После загрузки всех фотографий необходимо выполнить команду для их обработки:
curl -v -u "логин:пароль" \
"https://example.com/bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=import.xml&sessid=<идентификатор_sessid>"
Примечание: В этом случае файл import.xml
должен содержать ссылки на загруженные изображения и их связь с товарами.
9. Завершение обмена
Как и ранее, завершите обмен командой:
curl -v -u "логин:пароль" \
"https://example.com/bitrix/admin/1c_exchange.php?type=catalog&mode=complete&sessid=<идентификатор_sessid>"
Пример полного сценария загрузки фотографий
- Авторизация:
curl -v -u "user:password" "https://example.com/bitrix/admin/1c_exchange.php?type=catalog&mode=checkauth"
- Загрузка изображения:
curl -v -u "user:password" -X POST \ -F "filename=import_files/image1.jpg" \ -F "file=@/path/to/image1.jpg" \ "https://example.com/bitrix/admin/1c_exchange.php?type=catalog&mode=file&sessid=<sessid>"
- Обработка файла с информацией о товарах и фотографиях:
curl -v -u "user:password" \ "https://example.com/bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=import.xml&sessid=<sessid>"
- Завершение обмена:
curl -v -u "user:password" \ "https://example.com/bitrix/admin/1c_exchange.php?type=catalog&mode=complete&sessid=<sessid>"
Примечание: Убедитесь, что в файле import.xml
указаны правильные пути к изображениям и привязка к соответствующим товарам.
Полезные советы
- Проверяйте логи: Для диагностики ошибок изучайте файлы в папке
/upload/1c_exchange/
. - Обновляйте сертификаты: Если используете HTTPS, убедитесь, что SSL-сертификат сайта актуален.
- Очередность операций: Выполняйте операции в следующем порядке: авторизация → загрузка → обработка → завершение.
- Размер файлов: Если изображения большие, убедитесь, что сервер позволяет загружать файлы соответствующего размера. Настройте параметры
upload_max_filesize
иpost_max_size
вphp.ini
. - Форматы изображений: Рекомендуется использовать сжатые форматы изображений (JPEG, PNG) для экономии места и ускорения загрузки.