Завантаження даних у базовий каталог: формати, шаблони, джерела

19 хв

Базовий каталог — це фундамент Elbuz: навколо нього будується вся автоматизація цін, наявності й вивантаження. Перш ніж щось автоматизувати, товари треба в програму завантажити. Саме для цього є окреме вікно — «Імпорт категорій, товарів, виробників у базовий каталог».

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

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

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

Список шаблонів завантаження з різними типами джерел даних
1Назва шаблону
2Тип джерела
  1. Назва шаблону — унікальний ідентифікатор способу завантаження.
  2. Тип джерела — формат чи система, з якої надходять дані (Elbuz Tunnel, XLSX, API тощо).

Який спосіб обрати

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

Що у вас єЩо обрати
Працюючий магазин на OpenCart, Bitrix, WooCommerce, PrestaShop чи іншій популярній CMSElbuz Tunnel — прямо з бази сайту, найповніший перенос
Файл вивантаження відомого формату (XML-фід, 1С, таблиця з Prom)Готовий шаблон формату — YML, CommerceML, XLSX (EVO)
Файл довільного вигляду: своя таблиця, вивантаження з чужої системиУніверсальний імпорт — розмічаєте колонки самі
Ви вже продаєте на маркетплейсі або ведете облік у зовнішній системіІмпорт каталогу через API — за ключами доступу, без файлів
Потрібні не товари, а замовлення з майданчиківІмпорт замовлень через API

Чотири способи завантажити дані

Джерела бувають чотирьох видів — оберіть той, що підходить під ваш випадок.

1. З файлів за готовими шаблонами

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

  • XML / Yandex Market (YML) — універсальний XML-фід товарів;
  • CommerceML 2 (1С) — обмін з 1С: файл товарів і файл пропозицій;
  • XLSX (prom.ua, satu.kz, deal.by) — таблиця вивантаження з майданчиків EVO;
  • Elbuz Tunnel — прямий зв'язок із базою вашого наявного магазину на OpenCart, Bitrix, WooCommerce, PrestaShop та інших CMS, без файлів узагалі.

2. Універсальний імпорт

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

3. Через API — каталог

Якщо ви вже продаєте на майданчику або ведете облік у зовнішній системі, каталог можна тягнути напряму через API — без файлів, за ключами доступу. Так підключаються Rozetka, Shopify, WooCommerce, Amazon, eBay, Allegro, eMAG, Kaufland, OLX, Etsy, TikTok Shop, Wix, а також облікові системи «Мій склад», Horoshop і CRM SalesDrive.

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

4. Через API — тільки замовлення

Частина інтеграцій завантажує не товари, а замовлення — із маркетплейсів, кас і банків: Kaspi.kz, EVO/Prom (prom.ua, satu.kz), Епіцентр, Forte Market, ceneo.pl, каса dotykacka, виписки PrivatBank. Каталог вони не наповнюють — це окрема історія, зібрана в огляді імпорту замовлень через API.

Каталог чи замовлення

Одні джерела приносять каталог, інші — замовлення, а деякі API вміють і те, й інше. У шаблоні ви вмикаєте, що саме тягнути: товари, замовлення або обидва. Тому та сама Rozetka чи Shopify може і наповнити каталог, і забирати нові замовлення — залежно від того, які галочки ви поставили. Файлові шаблони й універсальний імпорт завжди про каталог; частина API — тільки про замовлення.

Як це працює за кроками

Порядок однаковий для будь-якого джерела. Ви створюєте шаблон і обираєте тип. Для файлу — вказуєте файл або посилання й перевіряєте розмітку колонок. Для API — вводите ключі доступу. Далі вмикаєте, що завантажувати (товари, категорії, виробників), і запускаєте. Перший запуск створює товари, наступні — оновлюють. Коли все працює, шаблон ставлять на розклад, і завантаження відбувається саме.

ФайлAPIТакНіСтворити шаблоні обрати тип джерелаФайл чи API?Вказати файл абопосилання,перевірити розміткуколонокВвести ключі доступуУвімкнути, щозавантажувати:товари, категорії,виробниківЗапустити шаблонТовар упізнаноза ідентифікатором?Наявна карткаоновлюєтьсяСтворюється нова карткаШаблон ставлять нарозклад —далі завантаження йдесаме
Шлях будь-якого шаблону завантаження. Жовтий ромб — розвилка: далі залежить від того, що ви обрали або що знайшла програма

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

Що потрапляє в каталог

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

Як перевірити, що завантаження пройшло

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

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

Повторний імпорт: оновлення без дублів

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

Що перезапише повторний прогон

Головне питання до другого завантаження — не «чи додасться нове», а «чи не зітре воно те, що я правив руками». Відповідь залежить від поля.

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

Беруться, лише якщо у файлі не порожньо — артикул, модель, EAN, ISBN, гарантія, теги, категорія, виробник, посилання на товар у джерелі. Це правило шаблону XML/YML: порожнє значення у файлі ваше не затирає, воно просто не бере участі в оновленні. У шаблонах CommerceML і XLSX (EVO) такої перевірки немає — ці поля пишуться з файлу як є, тож порожнє значення в них ваше затре.

Залежать від шаблону — фото, атрибути, опції, виробники, відгуки, замовлення. В Elbuz Tunnel і в підключеннях майданчиків це окремі галочки: не ввімкнули — не завантажиться. У шаблонах файлових форматів (XML/YML, CommerceML, XLSX) набір фіксований: фото, атрибути й виробники беруться завжди, вимкнути їх у формі нічим. Додаткові поля, які ви завели самі, — навпаки: вони оновлюються тільки з галочкою «Оновлювати дод. поля» (вона є в шаблоні XML/YML).

Як закріпити своє значення

У картці товару, секція «Статуси та прапорці», група «Захист під час імпорту»:

  • «Не оновлювати» — завантаження більше не змінює цю картку: ні ціну, ні наявність, ні артикул, ні категорію, ні виробника.
  • «Фіксована ціна» — ціну не чіпають шаблони файлових форматів (XML/YML, CommerceML, XLSX) і Elbuz Tunnel. Універсальний імпорт і завантаження через API цієї позначки не дивляться — там ціну тримає лише «Не оновлювати».

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

Окремо про фото. Універсальний імпорт і завантаження через API додають знімки лише новим товарам — у картці, яка вже є, фото лишаються ваші. Шаблони XML/YML і CommerceML доливають до наявних карток ті знімки, яких там ще не було, і старих не чіпають. А шаблон XLSX для майданчиків EVO замінює фото повністю: у товарів, що прийшли у файлі, попередні знімки видаляються, і лишаються тільки ті, що у вивантаженні.

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

Товар зник із джерела

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

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

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

Одна перевірка все ж є — у шаблонах XML/YML і XLSX (EVO): якщо у файлі не знайшлося жодного товару (порожній або нечитабельний файл), етап видалення пропускається, і порожній файл каталог не вичистить. У шаблонах CommerceML і Elbuz Tunnel такої перевірки немає.

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

Два шаблони на той самий товар

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

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

У шаблонах XML/YML поле, яке у другого джерела порожнє, значення першого не затирає. Але ціни, наявності, назви й опису це не стосується — вони беруться з джерела завжди. Тож два повні файли на один асортимент в одну картку — це постійна боротьба: після кожного прогону там лежить те, що приніс останній.

Якщо прогін обірвався або його зупинили

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

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

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

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

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

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

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

Спершу треба побачити обсяг. У списку базового каталогу для цього є колонки:

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

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

Перезаписані ціни, наявність, назви й описи повертає повторний прогін правильного файла — ці поля беруться з джерела завжди. А поля, які помилковий файл заповнив, а правильний лишає порожніми (артикул, модель, гарантія, теги), у шаблоні XML/YML самі не очистяться: їх прибирають через «Масово встановити значення» з порожнім значенням.

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

Коли завантажене поїде далі

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

А на сайт і на маркетплейси завантаження не везе нічого. Це друга половина роботи — вивантаження, окремі шаблони з власним розкладом. Доки ви не запустите вивантаження (вручну або за його розкладом), на вітрині лежатиме старе, хоча в базовому каталозі вже нове. Якщо товари не зʼявилися на майданчику після завантаження, дивитися треба не сюди, а в журнал вивантаження.

Службові категорії та бренди, які створює завантаження

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

А шаблони файлових форматів (XML/YML, CommerceML, XLSX) товар без розпізнаної категорії просто не заводять — мовчки, без рядка в журналі. Це найчастіша причина розбіжності «у файлі позицій більше, ніж додалося в каталог»: у частини товарів категорія не зіставилася.

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

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

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

Вимкнути шаблон чи видалити

У картці шаблону вгорі є пілюля стану — «Активний» / «Вимкнений»; те саме перемикає колонка «Стан» у списку шаблонів.

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

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

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

Межі одного прогону

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

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

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

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

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

З чого почати

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

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

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

Чим це відрізняється від завантаження прайсу постачальника?

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

Мого формату немає серед готових шаблонів — що робити?

Візьміть універсальний імпорт. Він читає будь-який XML, CSV, XLS чи XLSX, а розмітку колонок ви задаєте самі під свій файл.

Чи можна завантажити каталог з мого сайту на маркетплейсі без файлу?

Так, якщо для майданчика є API-інтеграція (Rozetka, Shopify, WooCommerce та інші). Ви підключаєтесь за ключами доступу, і Elbuz тягне товари напряму, без вивантаження файлів.

Я підключив API, а замість товарів приходять замовлення — чому?

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

Чи треба завантажувати вручну щоразу?

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

Чи не задвояться товари під час повторного завантаження?

Ні, якщо в джерелі стабільні ідентифікатори. Elbuz упізнає товар за артикулом, кодом чи зовнішнім id і оновлює наявну картку, а не створює копію. Проблема з дублями виникає лише тоді, коли ідентифікатори в файлі щоразу різні.

Я правив ціну руками — повторний прогін її зітре?

Так, ціна й наявність беруться з джерела щоразу. Щоб лишити своє значення, поставте в картці товару «Фіксована ціна» (діє для файлових шаблонів і Elbuz Tunnel) або «Не оновлювати» — вона зупиняє оновлення картки будь-яким завантаженням.

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

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

Завантаження обірвалося посередині — що робити?

Запустити ще раз. Усе, що встигло записатися, лишається в каталозі, а повторний прогін знайде ці товари за ідентифікатором і оновить їх, замість створювати копії.

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