Причина завжди одна: чим майданчик пізнає картку
Кожен кабінет має свій «ключ», за яким розуміє: це той самий товар чи новий. Якщо ви надішлете
інший ключ — з'явиться друга картка, а не оновиться перша. Ключі різні:
- Prom — ваш власний код товару (артикул), до 25 символів;
- Rozetka — ідентифікатор у кабінеті; свої давні картки доводиться зіставляти
вручну;
- Kasta — комбінація «бренд + код + колір + розмір», і вона незмінна: помилились
у кольорі — це вже інший товар, і видалити його неможливо, лише приховати;
- EVA — найнеочікуваніше: якщо картки колись завантажили експортом з Prom, кабінет
пам'ятає їх за ідентифікаторами Prom, а не за вашим артикулом.
Саме останнє в нас і спрацювало: 516 карток у кабінеті EVA були заведені
колись через експорт із Prom. Якби ми надіслали свої власні коди, каталог подвоївся б — по дві
картки на кожен товар. Тому фід туди досі несе ідентифікатори Prom, і список відповідностей
зберігається окремим файлом.
Друга засідка: що майданчик робить із тим, чого немає у файлі
У налаштуваннях імпорту завжди є опція «статус товарів, яких немає у файлі». Варіанти —
«вимкнути» або «залишити без змін». Обидва небезпечні, по-різному:
- «Вимкнути» — і перший же імпорт вашого нового каталогу погасить усі старі
картки, зроблені руками. У нас це були 517 карток магазину.
- «Залишити без змін» — старі картки в безпеці, але товар, який постачальник зняв із
продажу, лишиться на майданчику. Це лікується окремим кроком: синхронізація ставить йому
нульовий залишок замість того, щоб просто зникнути з файлу.
Ми обрали другий варіант плюс обов'язкове обнулення залишків. Але важливо розуміти, що це
компроміс, а не «правильне налаштування».
Третя: частковий файл може означати «видалити все»
На одному з майданчиків будь-який імпорт розуміється як увесь каталог. Наш тестовий файл
із трьох товарів дав звіт «Нові: 1, Оновлені: 2, Видалені: 514» — тобто вимкнув 511 живих карток
за один запит. Часткових імпортів там просто не існує.
Звідси правило: перед першим імпортом дивіться не на те, чи файл правильний, а на те, як
кабінет трактує його відсутні позиції.
Що перевірити до першого запуску
- Вивантажте з кабінету поточний список карток — саме він, а не ваша пам'ять, є джерелом
істини.
- З'ясуйте ключ: за чим кабінет пізнає товар, і чи збігається він з тим, що ви збираєтесь
надсилати.
- Зіставте свої товари зі старими картками до імпорту і збережіть цю відповідність
окремо.
- Перевірте налаштування «яких немає у файлі».
- Перший запуск робіть у режимі перевірки, без запису, і читайте звіт: «нові» мусять бути
справді новими.
- Після запису перечитайте кабінет і порівняйте кількість карток із очікуваною.
Як це вирішено в «Обіг»
- наявні картки перебираються на місці, а не створюються заново — навіть там, де
видалити картку неможливо;
- відповідність «наш товар ↔ картка в кабінеті» зберігається у файлі й переживає будь-який
перезапуск;
- кожен експортер бере блокування: ручний запуск, таймер і кнопка в адмінці не можуть писати в
кабінет одночасно;
- у кожного експорту є режим перевірки з протоколом — скільки створиться, скільки оновиться,
скільки пропущено і чому.
Правила кабінетів змінюються, а ідентифікатори — ні. Якщо ви колись заводили
картки експортом з іншого майданчика, майже напевно кабінет і досі пам'ятає саме ті коди.