Як завантажити каталог і замовлення з сайту на Хорошоп в Elbuz

27 хв

Elbuz забирає з вашого сайту на Хорошоп розділи, товари з цінами, залишками й описами обома мовами та замовлення покупців — через API, без файлів. Сайт лишається вітриною, а прайси, націнки, склад і маркетплейси ведуться в Elbuz.

Коли це знадобиться:

  • Каталог ведеться на сайті — Elbuz тримає його копію з деревом розділів, SEO-полями й фото.
  • Замовлення з сайту треба обробляти разом з іншими — вони лягають документами з покупцем і позиціями.
  • Ціни рахуються в Elbuz — формула поля перераховує їх поверх привезених із сайту.

З чого почати: створіть користувача API в адмінпанелі Хорошопу і впишіть його в шаблон «API — CMS Хорошоп».

Що вміє підключення Хорошопу

  • Розділи — дерево категорій сайту з назвами двома мовами.
  • Товари — ціни, залишки, описи, SEO-поля, фото, модифікації за артикулом батька.
  • Оновлення — повторний прогін знаходить товар за артикулом і оновлює його без дублів.
  • Замовлення — з покупцем, доставкою, оплатою й позиціями.

Зворотний напрямок — оновлення карток на сайті з Elbuz — робить окремий шаблон вивантаження: вивантаження каталогу на Хорошоп.

Де це і хто має доступ

Меню
Операції → Завантаження даних → шаблон типу «API — CMS Хорошоп»
Право доступу
вікно «Завантаження» у «Правах груп»
Підготувати
адресу API сайту, логін і пароль користувача API
Картка «Підключення» у формі шаблону API - CMS Хорошоп
1Посилання API — адреса API сайту
2Логін користувача API
3Пароль
  1. Посилання API — адреса API сайту, з якого відбувається завантаження.
  2. Логін користувача API для підключення до сайту.
  3. Пароль користувача API для підключення до сайту.

Що потрібно від Хорошопу

Поле у шаблоніЩо вписати
Посилання (URL)Адреса API вашого сайту — домен магазину з /api/ на кінці
ЛогінЛогін користувача API, створеного в адмінпанелі Хорошопу
ПарольЙого пароль

Логін і пароль створюються в адмінпанелі Хорошопу: «Налаштування» → «Адміни». Заведіть окремого користувача для інтеграції, а не свій обліковий запис адміністратора — такий доступ простіше відкликати й перевипустити.

Хорошоп віддає назви й описи мовами, увімкненими на сайті. Щоб приїхала українська версія, українська мова має бути в довіднику мов вашої копії Elbuz. Перевірте це до першого завантаження.

Хорошоп видає тимчасовий ключ доступу приблизно на десять хвилин, і Elbuz отримує його сам перед кожною операцією. Тому помилка авторизації майже завжди означає неправильні адресу, логін чи пароль, а не «протухлий токен».

Опис інтеграції на боці платформи: API Хорошоп — як увімкнути доступ і які функції підтримує ваша редакція.

Як підключити крок за кроком

  1. Створіть шаблон типу «API — CMS Хорошоп», впишіть адресу API, логін і пароль.
  2. Збережіть і запустіть завантаження вручну.
  3. Перевірте, що дерево розділів зібралося як на сайті, і звірте кілька товарів: ціну, залишок, описи обома мовами.

У картці «Що завантажувати» працює одна галочка — «Замовлення». Розділи, товари й фото підключення забирає завжди. «Завантажувати фото», «Завантажувати атрибути», «Заповнювати довідник виробників» і «Видаляти записи в базовому каталозі, яких немає в завантаженому файлі» на прогін не впливають: виробників він додає сам, атрибути не вантажить, нічого не видаляє.

Що переноситься в картку

Спершу розділи, потім товари

Спочатку Elbuz забирає розділи сайту з вкладеністю й назвами російською та українською і будує з них дерево категорій. Наявні розділи оновлюються, нові додаються, ієрархія сайту зберігається. Лише потім вантажаться товари — сторінками по 500, доки не закінчаться.

Поля товару

Дані ХорошопуПоле товару в Elbuz
артикулАртикул — головний ключ зіставлення
артикул батьківського товаруЗв'язок модифікацій у сімʼю
розділ каталогуКатегорія
назва, назва модифікаціїНазва (російською та українською)
назва для RozetkaОкреме поле назви для майданчика
брендВиробник
артикул виробника (MPN), GTINMPN і штрихкод
ціна і стара ціна, валютаЦіна, стара ціна
наявність, кількістьСтатус наявності й залишок
короткий опис і описКороткий опис, опис (двома мовами)
SEO-заголовок, ключові слова, опис, H1SEO-поля (двома мовами)
ЧПУ-адреса й посилання на товарАдреса товару на сайті
фотографіїФотографії (посиланнями на знімки сайту)

За артикулом товар упізнається при повторних завантаженнях, і за ним модифікації зчіплюються з головним товаром. Артикули на сайті мають бути унікальними й незмінними: змінений артикул для Elbuz — новий товар, а стара картка лишається.

Характеристики з Хорошопу не завантажуються: API віддає значення, але не людські назви характеристик, і зібрати з цього таблицю атрибутів неможливо. Потрібні характеристики — заповніть їх в Elbuz або підтягніть з прайсу постачальника чи фіду виробника.

Що робить повторне завантаження з вашими правками

Наступний запуск шукає товар за артикулом: знайшов — оновлює, не знайшов — створює. Привезене з сайту перезаписується, решта лишається вашою.

Верхня розвилка — артикул: він вирішує, оновиться наявна картка чи з'явиться нова. Наступна — прапорець «Не оновлювати», з яким наявна картка лишається без змін. Нижні — розділ: без нього нова картка не створюється зовсім, а наявна лишається в старому розділі
ТакТакНіТакНіНіТакНіТовар зі сторінки сайтуУ каталозі є картказ таким артикулом?У картці стоїть«Не оновлювати»?Картка лишається без змінКартка оновлюється — ціна,кількість,наявність, назва, описи.Ціну з «Фіксованою ціною» нечіпаєРозділ сайту є в дереві?Картка переїжджає в розділ сайтуОсновний розділ і список категорійлишаються такими, як булиРозділ сайту є в дереві?Створюється нова карткаразом із SEO-полямиТовар пропускається —рядка в журналі немає
  • Дія або результат
  • Розвилка: далі шлях залежить від відповіді
Поле картки в ElbuzЩо з ним робить наступний прогін
Ціна, стара цінаПерезаписує значенням із сайту; у картці з прапорцем «Фіксована ціна» не чіпає
КількістьПерезаписує кількістю з сайту
Статус наявностіПерезаписує: назву наявності з сайту Elbuz шукає у своєму довіднику статусів і в списках ключових слів; не впізнав — ставить статус, позначений у довіднику як «в наявності»
Активність карткиПрирівнює до ознаки показу товару на сайті: сховали товар на сайті — картка в Elbuz стає неактивною
Назва, обома мовамиПерезаписує назвою з сайту, а для модифікації — назвою модифікації
Короткий опис і описПерезаписує
SEO-заголовок, ключові слова, SEO-опис, H1Не чіпає. Ці поля заповнюються тільки в момент створення картки — далі вони ваші
Розділ товаруПерезаписує розділом сайту; список категорій товару перед записом очищається й збирається наново. Якщо розділу сайту немає в дереві, розділ і список категорій лишаються такими, як були
Виробник, MPN, штрихкод, адреса на сайтіПерезаписує, якщо на сайті поле заповнене; порожнє значення з сайту ваше не стирає
ФотографіїДодає посилання, яких у картці ще не було; наявні знімки не видаляє. У картку з прапорцем «Не оновлювати фото» нових посилань не додає
  • «Не оновлювати» в картці — прогін не змінює її зовсім: ні ціну, ні кількість, ні тексти, ні розділ, ні фото.
  • «Фіксована ціна» — ціна й стара ціна лишаються вашими, решта оновлюється.
  • Формула поля з прапорцем «Застосовувати при завантаженні БК із зовнішніх джерел» у вікні «Формули полів» рахується наприкінці кожного завантаження, на кроці «Оновлення значень на основі формул», — поверх привезеного.

Чиє значення лишиться, коли в поле пишуть двоє

Пріоритету джерел немає: завантаження з Хорошопу, оновлення каталогу з прайсу й ручна правка пишуть в одне поле, і лишається значення того, хто відпрацював останнім (що перезапише повторний прогін). Якщо ціни рахуються з прайсу, а каталог щоночі приїжджає з сайту, у картці буде ціна сайту — доки вивантаження не віддасть сайту вашу або картку не захищено.

Вивантаження відправляє на сайт лише поля, позначені «Оновлювати» (вивантаження на Хорошоп). Решта лишається за сайтом, і наступне завантаження привезе її назад.

Своє дерево розділів і видалення розділів

Кожне завантаження повертає розділам назви й місце в дереві з сайту. Перейменували чи перенесли розділ у Elbuz — прогін поверне як на сайті. Так само з товарами: перенесена у вашу категорію картка повернеться в розділ сайту. Щоб товар лежав у вашому розділі, такий розділ має бути й на сайті.

Разом із розділом видаляються всі товари, для яких він основний, з описами, фото, атрибутами й ЧПУ-адресами. Спершу спорожніть розділ, потім видаляйте. Рядки завантажених замовлень лишаються з власними назвою, артикулом, ціною й кількістю — зникає лише перехід на картку.

Як забирати замовлення з сайту

Увімкніть галочку «Замовлення» в картці «Що завантажувати». Каталог вантажиться як раніше, замовлення додаються окремим кроком наприкінці.

Картка «Що завантажувати» з переліком галочок шаблону
1Галочка «Замовлення»
  1. Галочка «Замовлення» вмикає завантаження заказів із сайту.
Дані ХорошопуПоле документа в Elbuz
номер замовленняНомер документа (за ним замовлення впізнається повторно)
дата оформленняДата замовлення
ім'я отримувачаІм'я та прізвище (рядок ділиться на дві частини)
пошта й телефонE-mail, телефон
ідентифікатор покупця на сайтіПрив'язка контрагента до джерела
місто й адреса доставкиАдреса доставки
спосіб доставки, вартість доставкиВид доставки, ціна доставки
спосіб оплатиВид оплати
ознака оплатиСтатус оплати «Оплачено»
статус замовленняСтатус документа (через зіставлення)
коментар покупцяОпис замовлення
сума й валютаСума документа, валюта
позиції: артикул, назва, ціна, кількість, сумаРядки документа
  • Статуси, види оплати й служби доставки Хорошоп віддає своїми кодами. Зіставте їх кнопками в картці «Пов'язані налаштування» — окремі таблиці для статусів замовлення, доставки, оплати й видів оплат. Не зіставлений статус приходить як «Новий», статус оплати — «Чекання»; оплачене замовлення одразу отримує «Оплачено».
  • Покупець шукається за поштою, телефоном і ідентифікатором на сайті; не знайшовся — заводиться новий контрагент. Замовлення без пошти й телефону лягає на «Кінцевого споживача».
  • Позиції знаходять картки за артикулом, а також за запам'ятаним зв'язком картки з сайтом — без перебору за назвою.
  • Уже завантажене замовлення не перезаписується: дубля немає, але й зміни з сайту в нього не приїжджають.
  • Вікно відбору — фільтра за датою в API Хорошопу немає, тож перший запуск забирає всю історію, а наступні — від минулого завантаження з запасом у дванадцять годин.
Дві верхні розвилки відсіюють замовлення, які не стануть новими документами: надто старі й уже завантажені. Нижні — лише про те, на якого контрагента ляже документ
ТакНіТакНіТакНіТакНіСторінка замовлень із сайту — до500Оформлене раніше, ніжнайсвіжішезамовлення минулогозавантаження мінус 12 годин?ПропускаєтьсяЗамовлення з цим номеромуже завантажене?Документ лишається як є —зміни з сайту не приїжджаютьПокупця знайдено за поштою,телефоном або ідентифікаторомна сайті?Документ «Замовлення покупця»на цього контрагентаЄ пошта, телефонабо ідентифікатор покупця?Нова картка контрагента«Кінцевий споживач»Незіставлений статус — «Новий»,статус оплати — «Чекання»
  • Дія або результат
  • Розвилка: далі шлях залежить від відповіді

Що завантажене замовлення робить із залишком

Нічого. Замовлення лягає непроведеним документом «Замовлення покупця»: кількість не змінюється, резерв не ставиться, списання немає, доки документ не проведе менеджер.

  • Резерв рахується лише по проведених замовленнях і за увімкненого складського обліку.
  • Знімається резерв завершальним статусом — «Виконано», «Завершено», «Видано», «Скасовано», «Відхилено», «Повернуто» й подібними.
  • Фізично товар списує видаткова накладна.
  • Завантаження змінює в картці лише «Кількість продажів» — вона перераховується за всіма замовленнями покупців.

Оновлення за розкладом

Перевірений шаблон ставлять на розклад — як працює розклад API-джерел. Великий каталог їде помітно довше за маркетплейс: кожна сторінка з 500 товарів несе описи й SEO-поля.

Розміри прогону

  • Товари й замовлення забираються сторінками по 500, доки сайт віддає непорожню сторінку. Стелі немає.
  • На відповідь сайту Elbuz чекає до п'яти хвилин, на з'єднання — до хвилини. Не дочекався — забір обривається з помилкою, і прогін продовжується з тим, що встигло приїхати.
  • Вивантаження на сайт іде пачками по 1000 товарів.
  • Вікно можна закрити: прогін і журнал живуть у Центрі операцій, там же кнопка «Стоп».
  • За розкладом одночасно йде одне завантаження; зайнятий крон скасує прогін рядком «Скасовано завантаження за розкладом, причина - завантажується інший шаблон (конфлікт обробки даних)».

Що буде, якщо вимкнути шаблон

Перемикач «Активний» / «Вимкнений» у шапці шаблону вирішує лише, чи братиме шаблон розклад і кнопка «Завантажити всі шаблони». Адреса, логін, зіставлення, налаштування вивантаження й завантажені дані лишаються. Кнопка «Завантажити» у формі працює й на вимкненому шаблоні.

Шапка вікна шаблону «Мій сайт Хорошоп» зі станом і кнопкою історії запусків
1Плашка «Вимкнений»
2Історія запусків
  1. Плашка «Вимкнений» — вмикає й вимикає шаблон для розкладу.
  2. Кнопка «Історія запусків» — відкриває журнал запусків цього шаблону.

Видалення шаблону теж не стирає даних: зникають сам шаблон і його розклад, а товари, розділи, контрагенти й замовлення лишаються з позначкою джерела.

Як перевірити, що прогін відпрацював

Журнал іде в Центрі операцій. Рядки називають поточний крок:

  1. «Запитуємо список категорій» → «Додаємо категорії товарів» → «Оновлюємо категорії товарів» → «Оновлюємо ключі для категорій»;
  2. «Запитуємо список товарів» → «Запитуємо товари, позиції: 1 - 500» → «Визначаємо виробників у товарів» → «Визначаємо наявність у товарів»;
  3. «Додаємо товари» → «Оновлюємо товари» → «Завантажуємо фотографії товарів»;
  4. «Оновлення значень на основі формул» → «Перевірка цілісності даних» → «Індексування товарів»;
  5. «Завантаження даних завершено!» і «Витрачено часу».

Чисел «створено, оновлено, пропущено» по каталогу журнал не дає: «Всього завантажено: 500» — це верхня межа сторінки. Цифри є лише по замовленнях: «Отримано замовлень: N» і «Всього замовлень завантажено: M» — скільки створено документів.

Результат по каталогу перевіряють даними:

  • колонка «Останнє завантаження» у списку шаблонів — коли був прогін і скільки тривав;
  • кнопка «Історія запусків» у шапці шаблону — попередні прогони з їхніми статусами;
  • колонки «Джерело: назва» і «Дата оновлення» у сітці товарів — які картки зачепив прогін.

Сценарії

Каталог ведеться на сайті, в Elbuz потрібна його копія

Що ввімкнути. Шаблон «API — CMS Хорошоп» з адресою API, логіном і паролем, без галочки «Замовлення», і розклад.

Що вийде. Кожен прогін оновлює дерево розділів, потім товари: нові картки — з SEO-полями й фото, наявні — з ціною, кількістю, наявністю, назвою й описами з сайту, крім карток із «Не оновлювати». Характеристики не приїдуть, зниклі з сайту товари з Elbuz не видаляться, товар без розділу в дереві картки не отримає.

Забирати замовлення з сайту в Elbuz

Що ввімкнути. Галочку «Замовлення» і зіставлення статусів замовлення й видів оплат у картці «Повʼязані налаштування».

Що вийде. Після каталогу прогін забирає замовлення: перший — усю історію, далі — з запасом у дванадцять годин. Нове замовлення стає документом «Замовлення покупця» на знайденого або нового контрагента. Уже завантажене не оновиться; не зіставлений статус прийде як «Новий».

Ціни рахуються в Elbuz, а каталог щоночі приїжджає з сайту

Що ввімкнути. У вікні «Формули полів» — формулу ціни з прапорцем «Застосовувати при завантаженні БК із зовнішніх джерел».

Що вийде. Прогін запише ціну сайту, а на кроці «Оновлення значень на основі формул» формула перерахує її. Тримати ціну окремої картки незмінною — прапорець «Фіксована ціна».

Запустили завантаження не вчасно — зупинити

Що натиснути. «Стоп» у Центрі операцій.

Що вийде. До кінця забору сторінок товари лишаться без змін; розділи, що вже приїхали, не повернуться (обрив прогону).

Що робити, коли завантаження пішло не так

Розбір частих проблем
Що ви бачитеЧому такЩо зробити
«Помилка авторизації в API. Перевірте адресу сайту, логін і пароль.» Немає /api/ на кінці адреси, неправильний логін або вимкнений доступ до API на сайті Перевірте саме в такому порядку (що потрібно). Рядок «Завантаження даних завершено!» в кінці журналу не означає успіху
Не з'явилися нові товари Розділи не приїхали: товар без розділу в дереві пропускається мовчки Повторіть запуск; повториться — дивіться в журналі відповідь сайту на запит розділів
Дублікати карток На сайті змінили артикули Приберіть старі картки руками (артикул — ключ)
«Помилка отримання каталогу товарів» Обірвався зв'язок із сайтом Запустіть ще раз (обрив прогону)

Якщо прогін обірвався на середині

Спершу розділи — вони записуються одразу. Потім товари: сторінки складаються в тимчасовий файл і заливаються в каталог одним кроком після останньої. Наприкінці — замовлення. Загальні правила — в огляді.

Товари збираються в тимчасовий файл і потрапляють у каталог одним кроком після циклу по сторінках. «Стоп» у циклі означає, що цей крок не відбудеться і операція закінчиться без рядка «завершено», а обрив зв'язку — що в каталог ляже вже зібране
ТакНіТакНі — сторінки скінчилисяабо обірвався зв'язокТакНіТакНіЗапуск шаблону — кнопкою«Завантажити»або за розкладомРозділи сайту додаютьсяй оновлюються в деревіНатиснуто «Стоп»?«Операція перерванакористувачем!»товари в каталозі не змінюються,операція закінчується жовтимстатусомЗапит сторінки — 500 товарівСайт віддав товари?Сторінка дописуєтьсяв тимчасовий файлНатиснуто «Стоп»?Усі зібрані сторінки одним крокомзаписуються в каталог, потім фотоГалочка «Замовлення»?Замовлення сторінками по 500Формули полів, перевіркацілісності,індексування«Завантаження данихзавершено!»
  • Дія або результат
  • Розвилка: далі шлях залежить від відповіді
  • «Стоп» під час забору сторінок — товари не зміняться: зупинка перевіряється перед кожною сторінкою й перед записом. У журналі «Операція перервана користувачем!», операція жовта, формули, перевірка цілісності й індексування не виконуються, «Останнє завантаження» не оновлюється. Розділи лишаються оновленими.
  • Обрив зв'язку з сайтом — прийняті сторінки однаково лягають у каталог; у журналі «Помилка отримання каталогу товарів» і відповідь сайту.
  • Прогін помер сам (перевищено час, перезапуск сервера) — з товарів не записується нічого.

Повтор безпечний: тимчасовий файл починається з нуля, товари зіставляються за артикулом, замовлення вдруге не створюються.

Якщо завантажили не те

Знімків «як було» завантаження не робить (загальний порядок відкату).

  • Знайти зачеплене — відбір у сітці товарів за «Джерело: назва» і «Дата оновлення».
  • Повернути масово можна лише власні масові правки: масова зміна поля й пошук-заміна дають кнопку «Повернути назад» для останніх п'яти операцій не старших за добу. На завантаження вона не поширюється.

Часті запитання

Що вписувати в поле посилання?

Адресу API сайту: домен магазину з /api/ на кінці. Логін і пароль — від користувача з «Налаштування» → «Адміни» в адмінпанелі Хорошопу.

Чому не завантажилися характеристики товарів?

API Хорошопу віддає значення характеристик без людських назв, тож зібрати таблицю атрибутів неможливо. Решта полів приходить повністю.

Що буде, якщо змінити артикул товару на сайті?

Товар приїде як новий, а стара картка лишиться без пари: артикул — головний ключ зіставлення й зв'язку модифікацій.

Товар зник із сайту — його видалить і в Elbuz?

Ні, завантаження з Хорошопу нічого не видаляє. Сховані на сайті товари стають у Elbuz неактивними, а прибрані зовсім лишаються як були.

Чи можна не завантажувати фото?

Ні, галочка «Завантажувати фото» на Хорошоп не впливає. Не додавати нові фото в окрему картку можна прапорцем «Не оновлювати фото» в ній.

Суміжні теми

Чи була стаття корисною?