Імпорт каталогу через Elbuz Tunnel

34 хв

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

Це один зі способів із загального огляду завантаження даних, і найзручніший, коли у вас уже є працюючий магазин на популярній CMS, а каталог треба перенести в Elbuz. Якщо ж потрібно віддати каталог назовні, а не забрати його, дивіться зворотний бік тунелю — вивантаження через Elbuz Tunnel.

Що таке тунель

Тунель — це невеликий модуль-посередник, який ви ставите на хостинг свого сайту. Elbuz звертається до нього за окремим логіном і паролем, а модуль уже читає базу даних магазину й віддає те, що запитали. Виходить прямий канал: немає файлу, який треба вивантажити й завантажити, немає ключів API — є з'єднання, і по ньому каталог сайту стає доступним Elbuz.

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

З якими CMS працює

Тунель розрахований саме на чужі системи — ті, на яких зазвичай і стоїть магазин до переходу в Elbuz. У списку підтримуваних:

CMSВибір версії у формі
OpenCart1.5, 2, 3
Magento1, 2
1C-Bitrix—
WooCommerce—
PrestaShop—
CS-Cart—
WebAsyst Shop-Script—

Окремим пунктом у списку стоїть MySQL (власний SQL-запит) — режим для саморобних і рідкісних систем: якщо вашої CMS у переліку немає, але магазин працює на MySQL, дані можна забрати власним запитом до бази. Як пишуть такі запити, розібрано окремо — робота з SQL-запитами в тунелі. Є й варіант Elbuz CMS — той самий тунель для сайтів на нашій CMS.

Встановлення модуля на ваш хостинг

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

  1. Завантажте модуль. У шаблоні тунелю, на вкладці «Підключення», є кнопка «Завантажити модуль» — вона віддає актуальний архів. Те саме прямим посиланням: etrade_http_tunnel2.zip.
  2. Розпакуйте архів на своєму комп'ютері.
  3. Перепишіть вміст на хостинг — у кореневу папку сайту, туди ж, де лежить головний index.php, разом із самою папкою etrade_http_tunnel2. Зручно зробити це FTP-клієнтом, наприклад FileZilla. Після цього адреса модуля виглядає так: https://ваш-сайт/etrade_http_tunnel2/etrade_http_tunnel.php.
  4. Підключіться в Elbuz: на вкладці «Підключення» оберіть свою CMS (для OpenCart — ще й версію), вкажіть адресу сайту й натисніть «Підключити».

Далі Elbuz усе робить сам: прописує модулю пароль доступу (якщо це перше встановлення) і читає конфігураційний файл вашої CMS, діставши звідти параметри підключення до бази — сервер, назву бази, користувача, пароль і префікс таблиць. Вручну їх вводити не треба. Коли все вийшло, ви побачите повідомлення «Модуль успішно підключений!».

Усередині папки модуля, крім самого тунелю, лежать порожні теки temp і backup: у першій модуль тримає робочі файли, у другу складає архівні копії бази сайту. На хостингу мають бути ввімкнені розширення PHP mysqli, zip і curl.

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

Тоді ті самі параметри вводять руками:

  • Посилання на модуль — https://ваш-сайт/etrade_http_tunnel2/etrade_http_tunnel.php;
  • Логін — admin;
  • Пароль — той, що заданий у файлі etrade_http_tunnel_login.php всередині модуля;
  • Доступ до бази даних сайту — сервер, порт, назва бази, користувач, пароль і префікс таблиць. Ці значення є в конфігураційному файлі вашої CMS (зазвичай config.php або подібний).

Типові причини, чому автоматичне підключення не спрацювало: не вказано адресу сайту або не обрано CMS (програма попередить окремим вікном); модуль не переписаний у кореневу папку сайту; хостинг закриває доступ до файлу модуля.

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

Оновлення модуля

Зазвичай оновлювати руками нічого не треба. Натисніть «Перевірити підключення»: програма покаже версію модуля на вашому хостингу й порівняє її з останньою. Якщо вийшла новіша, поруч зʼявиться рядок «Доступна нова версія модуля» і кнопка «Оновити» — вона оновлює файли на сайті сама, нічого копіювати не доведеться.

Ручний шлях потрібен, коли автоматичне оновлення не проходить — наприклад, хостинг не дозволяє модулю писати у власну папку. Тоді беруть архів оновлення: etrade_http_tunnel2_update.zip. Його розпаковують і перезаписують файли в папці etrade_http_tunnel2 на хостингу поверх наявних.

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

  • etrade_http_tunnel_login.php — файл із логіном і паролем до модуля. Саме тому оновлення не скидає доступ: пароль, який Elbuz прописав при першому підключенні, залишається на місці, і переналаштовувати зʼєднання після оновлення не треба;
  • папка backup — архівні копії бази вашого сайту;
  • папка temp — робочі файли модуля.

Через це архів оновлення розпаковують поверх наявної папки, а не замість неї. Повний архів (etrade_http_tunnel2.zip) потрібен лише для першого встановлення — у ньому ці файли й порожні папки є.

Де це у програмі

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

Форма підключення шаблону Elbuz Tunnel: вибір CMS та посилання на сайт
1Вибір CMS сайту
2Посилання на сайт і кнопка підключення
  1. Оберіть CMS вашого сайту зі списку підтримуваних платформ.
  2. Вкажіть посилання на сайт і натисніть «Підключити», щоб перевірити з'єднання з модулем тунелю.

Що переноситься: галочки шаблону

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

ГалочкаЩо робить
Категорії, ТовариОснова переносу — структура каталогу й самі товари. Вимикати не рекомендуємо: без них решта даних нема до чого прив'язати
ВиробникиНазви виробників із сайту потрапляють у ваш довідник виробників
АтрибутиВластивості й технічні характеристики товару — у картку, на вкладку «Атрибути»
ОпціїРозмір, вага, колір — те, що на сайті може впливати на ціну; теж потрапляє на вкладку «Атрибути»
ФотоЗображення, прив'язані до товарів на сайті, — у картку, на вкладку «Фото»
ЗамовленняЗамовлення, які зберігаються у вашому магазині. Файлові формати цього не вміють — тунель уміє, але не для кожної CMS: подробиці нижче, у розділі про замовлення

Ще два перемикачі змінюють поведінку самого переносу:

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

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

Частина систем потребує уточнень. Наприклад, для багатомовного сайту треба вибрати мову, дані якою забирати. Для 1C-Bitrix обов'язково вказують інфоблок, у якому лежать товари, — без цього програма не знає, звідки їх брати. Такі поля з'являються у формі самі після вибору CMS.

Коли підходить тунель

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

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

Якщо ж інший бік — маркетплейс або зовнішня облікова система, тунель не підійде: там немає бази, до якої можна під'єднатися. Для таких джерел дивіться імпорт через API, а для файлів — готові формати або універсальний імпорт.

Як іде перенос

Коли з'єднання встановлене, натискаєте у шапці вікна кнопку «Отримати каталог товарів» — і бачите процес завантаження. Після завершення товари опиняються в базовому каталозі: ярлик «Товари базового каталогу» на робочому столі або меню «Довідники» → «Базовий каталог товарів».

База сайтуМодуль тунелюна хостингу сайтуElbuzВи«Отримати каталог товарів»запит за окремим логіном і паролемчитає категорії, товари, виробників,атрибути, опції, фотодані сайтувіддає те, що запитализіставлення за ідентифікаторами з сайту —перший перенос створює, наступні оновлюютьтовари в базовому каталозі
Навіщо взагалі потрібен модуль на хостингу: Elbuz не має доступу до бази сайту напряму й розмовляє з нею через посередника

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

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

Як зрозуміти, що перенос відпрацював. Журнал прогону сам називає числа — у ньому мають з'явитися рядки «Усього категорій завантажено:», «Всього товарів завантажено:», «Всього виробників завантажено:», а якщо забирали замовлення — ще й «Всього замовлень завантажено:». Завершений прогін закриває рядок «Завантаження даних завершено!» і поруч «Витрачено часу:». Ці ж дата й тривалість потім видно в списку шаблонів у колонці «Останнє завантаження».

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

Повторний перенос поверх ваших правок

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

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

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

  • «Не оновлювати» — тунель пропускає картку в основному оновленні: ціна, наявність, артикул, габарити, активність, сортування, назва, описи й SEO-поля лишаються вашими;
  • «Фіксована ціна» — оновиться все, крім ціни, старої та рекомендованої ціни.
Група «Захист під час імпорту» в картці товару
1Не оновлювати
2Фіксована ціна
  1. Не оновлювати — імпорт не змінює цей товар.
  2. Фіксована ціна — імпорт не змінює ціну товару.

Прив'язки до категорій позначка «Не оновлювати» не утримує — свою лишає тільки основна категорія картки, а категорії сайту повертаються до товару як додаткові. І «Не оновлювати атрибути» не рятує від очищення характеристик: коли у шаблоні ввімкнені «Атрибути», значення чистяться по всьому каталогу разом. Якщо характеристики ви ведете в Elbuz руками, галочку «Атрибути» у шаблоні тунелю краще не вмикати взагалі.

Дзеркальний режим: що видаляється і як повернути

Галочка «Видаляти записи в базовому каталозі, яких немає на сайті» додає прогону ще один крок, і він іде першим — до додавання й оновлення. Програма позначає всі записи базового каталогу як зайві, знімає позначку з тих, що приїхали з сайту, а решту видаляє. Видалення фізичне: разом із карткою зникають її описи, фото, прив'язки до категорій, складів і магазинів, супутні товари й питання-відповіді. У журналі цей крок підписаний «Видаляємо категорії та товари в базовому каталозі, яких немає у файлі». Кошика в програмі немає — відкотити видалення нічим.

Обсяг видалення залежить від сусідньої галочки «Перевірити унікальність записів з урахуванням цього джерела завантаження» (та сама вкладка, розділ додаткових налаштувань):

  • галочки немає — під видалення потрапляє все, чого немає на сайті, зокрема товари з інших шаблонів завантаження;
  • галочка стоїть — записи інших шаблонів лишаються, але товари, заведені руками, завантажені з прайс-листів і зібрані парсером, видаляються так само.
Розділ «Додатково» у налаштуваннях Elbuz Tunnel
1Видаляти записи, яких немає на сайті
2Перевірити унікальність записів
3Завантаження замовлень з ID
  1. Видаляти записи в базовому каталозі, яких немає на сайті — дзеркальний режим.
  2. Перевірити унікальність записів з урахуванням цього джерела завантаження.
  3. Завантаження замовлень починаючи з ID — з якого замовлення почати.

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

нітактакнінітакцей шаблон, руками,прайс-лист чи парсерінший шаблонзавантаженняПрогін із галочкою«Видаляти записи вбазовому каталозі, якихнемає на сайті»У шаблоні стоїть галочкацього набору«Категорії», «Товари» чи«Атрибути»?Записи цього набору нечіпаютьсяЗапис приїхав із сайтуцього разу?Лишається й оновлюєтьсяданими сайтуСтоїть «Перевіритиунікальність записівз урахуванням цьогоджерела завантаження»?Видаляється з базовогокаталогуЗвідки запис у каталозіЛишається
Долю запису вирішують три питання згори донизу: чи забирається цей набір, чи приїхав запис із сайту і чи стоїть галочка унікальності. Усі гілки, що ведуть у «Видаляється», — це те, що зникне без кошика

Порівняння йде рівно з тим, що прийшло цього разу, без перевірки «а чи не замало?». Якщо модуль віддав порожню або неповну вибірку — упав запит, спрацювало правило відбору, сайт віддав частину категорій, — з каталогу приберуться всі відсутні записи.

Як повернути прибране. Спосіб один: полагодити віддачу на сайті й прогнати тунель ще раз, уже без галочки видалення. Картки створяться заново за тими самими ідентифікаторами сайту — з назвами, цінами, категоріями, характеристиками й фотографіями, які є на сайті зараз. Саме собою не повернеться ось що:

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

Тримайте «Видаляти записи…» вимкненим, поки кілька прогонів поспіль не покажуть у журналі очікуване число в рядку «Всього товарів завантажено:». Дзеркальний режим вмикають тоді, коли вже видно, що сайт стабільно віддає повний каталог.

Якщо перенос обірвався або ви натиснули «Стоп»

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

такнітакнітакні«Отримати каталогтоварів»Вичитка: набори даних почерзіскладаються в тимчасовутаблицюМодуль відповівпомилкою?«Вивантаженняперервано!»дані сайту в каталог незаписаніНатиснули «Стоп»під час вичитки?«Операція перерванакористувачем!»базовий каталог незміненоЗапис у базовий каталог:видалення вдзеркальному режимі,категорії, виробники,товари, характеристики,замовленняНатиснули «Стоп»під час запису?«Операція перерванакористувачем!»записане до зупинкилишаєтьсяФормули полів,перевірка цілісності«Завантаження данихзавершено!»
Верхня частина схеми — вичитка: будь-яка зупинка тут лишає базовий каталог незмінним. Нижня — запис: зупинка тут залишає вже записане, і повторний запуск його допише

Перша частина — вичитка. Elbuz по черзі запитує в модуля набори даних: категорії, товари, ціни, фото, характеристики, замовлення й решту — кожен окремим запитом. Усе, що приїхало, складається в тимчасову таблицю, базовий каталог у цей час не змінюється. Якщо сайт не відкрив з'єднання або модуль повернув помилку, прогін зупиняється на цьому місці: у журналі червоним видно відповідь сайту й рядок «Вивантаження перервано!», а в базовому каталозі не змінюється нічого.

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

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

Кнопка «Стоп» у Центрі операцій зупиняє прогін не миттєво, а на найближчій контрольній точці: перед кожним набором даних, перед його завантаженням у тимчасову таблицю, після видалення, після категорій, після виробників, після товарів, після характеристик і перед замовленнями. У журналі це видно рядком «Операція перервана користувачем!». Зроблене до зупинки лишається зробленим — це не відкат.

Журнал прогону не прив'язаний до вікна шаблону: рядки пишуться в базу під міткою операції, їх видно в Центрі операцій, а пізніше — в історії запусків шаблону (кнопка з іконкою графіка в шапці форми). Рядки журналу зберігаються 14 днів, картки операцій — 90.

Чия ціна лишиться в картці

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

Важелів тут два:

  • порядок запусків. Розклад шаблону тунелю й розклад обробки прайс-листів визначають, чиє значення ляже останнім;
  • позначка «Фіксована ціна» в картці. Вона зупиняє обох: ні тунель, ні оновлення з прайсу ціну, стару й рекомендовану ціну не перепишуть. Це єдина гарантія, що в полі лишиться саме те, що ви туди поставили.

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

Замовлення з сайту: яким документом лягають

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

Статус. Якщо ви налаштували зіставлення статусів — кнопка «Статуси замовлення» у формі шаблону, поруч такі самі кнопки для статусів оплати й доставки, — документ отримає ваш статус. Якщо зіставлення немає, документ отримує перший статус списку — «Новий».

Блок «Повʼязані налаштування» у шаблоні Elbuz Tunnel
1Налаштування розкладу
2Статуси замовлення
  1. Налаштування розкладу — відкриває вікно розкладу завантаження.
  2. Статуси замовлення — відкриває вікно зіставлення статусів замовлень.

Залишок і резерв не рухаються. Документ створюється непроведеним, а залишок і резерв Elbuz рахує тільки по проведених документах. Поки ви не натиснете «Підписати (провести документ)», замовлення з сайту на наявність товарів не впливає.

Покупець. На кожного нового покупця заводиться контрагент у групі з поля «Група контрагентів» у налаштуваннях шаблону; якщо групу не обрано, використовується «Клієнт». Коли покупця з сайту розпізнати не вдалося, замовлення лягає на контрагента «Кінцевий споживач».

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

Запит на замовлення зараз формують лише OpenCart 2, OpenCart 3 і Magento. Для OpenCart 1.5, WooCommerce, 1C-Bitrix, PrestaShop, CS-Cart і WebAsyst Shop-Script галочка «Замовлення» нічого не забере: помилки не буде, просто в журналі не з'явиться рядок «Всього замовлень завантажено:».

В OpenCart 3 є ще два обмеження вибірки: замовлення без статусу (незавершені кошики) не забираються зовсім, а поле «Завантаження замовлень починаючи з ID» у додаткових налаштуваннях шаблону відсікає все, що старше за вказаний номер, — зручно, коли стару історію тягнути не треба.

Категорії та виробники, створені тунелем

Категорії тунель бере з сайту як є. Виробників — із довідника сайту, а ще додає сам: якщо в товарі заповнене поле виробника або в нього є характеристика, що називається саме «Производитель», її значення стає записом у вашому довіднику виробників. У кожного створеного тунелем запису зберігається джерело — назва шаблону завантаження, яким він приїхав.

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

Але й після цього категорія повернеться: наступний прогін не знайде її за ідентифікатором сайту й створить заново, а прив'язки товарів до категорій він щоразу розставляє за сайтом. Утримати своє розкладання можна тільки позначкою «Не оновлювати» в картці товару — тоді основна категорія лишається вашою, а категорія сайту додається до товару як додаткова.

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

Завантажені документи від цього не страждають. У рядку замовлення зберігаються назва, артикул, кількість і ціна, а категорія й виробник там не згадуються взагалі. Постраждати може лише зв'язок рядка з карткою — і тільки в тому разі, якщо разом із категорією ви видалите сам товар.

Що змінює вимкнення шаблону

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

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

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

Межі обсягу й час прогону

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

Скільки Elbuz готовий чекати на кожен такий запит:

КрокСкільки чекає
Встановлення з'єднання з модулем5 хвилин
Відповідь модуля на один набір даних55 хвилин

Перед кожним запитом Elbuz ще перевіряє, чи сайт узагалі приймає з'єднання. Окремої межі в секундах ця перевірка не має: скільки чекати, визначає мережа сервера. Якщо сайт не відповів, у журналі з'являється червоний рядок з адресою сайту, і завантаження зупиняється з повідомленням «Вивантаження перервано!».

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

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

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

Чому перенос виходить повнішим за файл

Файл — це завжди зліпок: у нього потрапляє те, що система-джерело вміє вивантажити, і в тому форматі, який вона підтримує. Тунель читає базу напряму, тому бачить дані такими, якими вони є: з усіма зв'язками між товарами, категоріями й характеристиками, з повними описами й усіма зображеннями. Через це менше втрачається по дорозі й менше доводиться доналаштовувати руками після переносу — особливо на великих каталогах, де файлове вивантаження часто губить частину зв'язків.

Сценарії

Переїжджаю в Elbuz і забираю весь каталог

Задача: перенести з працюючого сайту каталог разом зі структурою, фото й характеристиками.

Що ввімкнути: у блоці «Вибір завантаження даних із сайту» лишити «Категорії», «Товари» й «Виробники» — у новому шаблоні вони вже стоять — і додати «Атрибути» та «Фото». У розділі «Додатково» галочку «Видаляти записи в базовому каталозі, яких немає на сайті» не ставити. Запуск — кнопка «Отримати каталог товарів».

Що вийде: картки з'являться в базовому каталозі з ідентифікаторами сайту, тож наступний запуск їх оновить, а не задвоїть. Фото лягають адресами, файли лишаються на хостингу сайту — якщо не ввімкнена послуга «Хмарне зберігання фото». Чого не станеться: з каталогу нічого не видалиться, а замовлення сайту не приїдуть — для них окрема галочка «Замовлення».

Сайт лишається головним, Elbuz регулярно підтягує зміни

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

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

Що вийде: кожен прогін переписує в картках, що приїхали тунелем, ціну, стару й рекомендовану ціну, активність, статус наявності й сортування — так, як на сайті. Картка з «Фіксована ціна» зберігає свої ціни, картка з «Не оновлювати» — ще й артикул, габарити, назву й описи. Чого не станеться: товари, які ви завели в Elbuz руками, тунель не оновлює — на сайті їх немає. І тунель не стежить, хто ще пише в поле ціни: якщо його заповнює й оновлення з прайс-листів, лишиться значення того, хто відпрацював пізніше, — див. розділ про ціну.

Замовлення з сайту на OpenCart 3 мають потрапляти в Elbuz

Задача: бачити замовлення сайту документами в Elbuz, не переносячи їх руками.

Що ввімкнути: галочку «Замовлення»; кнопку «Статуси замовлення» у блоці «Повʼязані налаштування» — щоб статуси сайту лягали вашими статусами; у розділі «Додатково» — «Група контрагентів» для нових покупців і, якщо стара історія не потрібна, «Завантаження замовлень починаючи з ID».

Що вийде: нові замовлення стануть документами «Замовлення покупця», номер сайту збережеться окремим полем, покупці — контрагентами обраної групи. Замовлення з ID сайту, не більшим за вказаний, і замовлення без статусу не заберуться. Чого не станеться: документ створюється непроведеним, тож залишок і резерв не зміняться; вже завантажені замовлення наступні прогони не оновлюють. Для CMS, крім OpenCart 2, OpenCart 3 і Magento, галочка «Замовлення» нічого не забере.

Каталог Elbuz має точно повторювати сайт

Задача: товар, знятий із сайту, має зникати й з базового каталогу.

Що ввімкнути: у розділі «Додатково» — «Видаляти записи в базовому каталозі, яких немає на сайті». Якщо в каталозі є товари з інших шаблонів завантаження, поруч — «Перевірити унікальність записів з урахуванням цього джерела завантаження».

Що вийде: першим кроком прогону з каталогу прибираються категорії, товари й атрибути, яких цього разу не віддав сайт, — кожен набір лише тоді, коли в шаблоні стоїть його галочка. З другою галочкою товари інших шаблонів лишаються на місці. Чого не станеться: товари, заведені руками, завантажені з прайс-листів і зібрані парсером, друга галочка не захищає; перевірки «а чи не замало приїхало» немає, кошика для видаленого — теж. Тому режим вмикають після кількох прогонів, які показали в журналі очікуване число товарів, — див. розділ про дзеркальний режим.

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

Моєї CMS немає в списку — що робити?

Скористайтеся пунктом «MySQL (власний SQL-запит)»: якщо магазин працює на MySQL, дані можна забрати власним запитом до його бази — у шаблоні завантаження для цього є окрема вкладка «SQL запити для отримання даних із сайту», і як з нею працювати, описано в статті про SQL-запити в тунелі. Якщо доступу до бази немає зовсім, тунель не підійде — тоді дивіться файлові формати або універсальний імпорт.

Навіщо ставити модуль на сайт, чому не підключитися прямо до бази?

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

Тунель викачує фотографії на сервер Elbuz?

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

Чи можна тунелем забрати замовлення, а не тільки товари?

Так, для цього є окрема галочка «Замовлення», і це відрізняє тунель від файлових форматів, які завжди лише про каталог. Але запит на замовлення зараз формують тільки OpenCart 2, OpenCart 3 і Magento — для решти CMS галочка нічого не забере. Подробиці про документ і статус — у розділі про замовлення.

Повторний запуск задвоїть товари?

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

Дзеркальний режим прибрав потрібні товари — як повернути?

Кошика в програмі немає, відкотити видалення нічим. Робочий шлях один: полагодити віддачу на сайті й прогнати тунель ще раз без галочки видалення — картки створяться заново за тими самими ідентифікаторами сайту. Ручні правки, які ви робили в цих картках, не повернуться.

Чи зменшиться залишок від замовлень, які приїхали з сайту?

Ні. Документ «Замовлення покупця» створюється непроведеним, а залишок і резерв Elbuz рахує тільки по проведених документах. Поки документ не проведено, на наявність товарів він не впливає.

Підключив 1C-Bitrix, але товари не переносяться

Найімовірніше, не обрано інфоблок із товарами — для Bitrix це обов'язковий додатковий параметр. Перевірте його у формі шаблону після вибору CMS.

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