Магазини: коли їх більше одного

23 хв

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

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

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

Вікно
«Магазини»
Право доступу
доступ до вікна; кнопки «Додати» і «Видалити» та пункт «Розкласти товари по магазинах» вмикаються трьома окремими правами на блоки
Підготувати
рішення, за чим ділиться асортимент — за категоріями каталогу чи за постачальниками: від цього залежить, як збиратиметься склад магазину

Що таке магазин і що до нього прив'язується

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

Уся суть магазину — не в цих полях, а в тому, що до нього віднесено. Прив'язуються п'ять видів записів:

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

Склад теж належить магазину, але це окрема тема — тут про неї нічого не знадобиться.

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

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

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

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

Меню
Довідники → Базовий каталог товарів → Магазини
Робочий стіл
ярлик «Магазини»
Зі списку документів
бургер → заголовок «Довідники» → пункт «Магазини»

Пошук Ctrl + K вікно не знайде: він шукає товари, контрагентів і документи, але не вікна програми.

Вікно «Магазини» — панель кнопок і сітка з магазином
1Кнопка «Додати»
2Колонка «Основний»
3Колонка «Вивантаження на сайт»
  1. Кнопка «Додати» — додає новий магазин і копіює в нього весь каталог тенанта.
  2. Колонка «Основний» — позначає магазин, що використовується за замовчуванням.
  3. Колонка «Вивантаження на сайт» — вмикає передачу товарів цього магазину на сайт.

Вікно «Магазини»: що в ньому можна

Вікно — це сітка з дванадцяти колонок і панель із двох кнопок та бургера. Окремої картки магазину в довіднику немає: усе правиться прямо в комірках подвійним клацанням, і зміна зберігається одразу, без кнопки «Зберегти». Сторінка — 25 рядків, є сортування й рядок фільтрів.

Колонки: «Активність», «Основний», «Назва магазину», «Опис», «Посилання на сайт», «Вивантаження на сайт», «Широта», «Довгота», «Адреса», «Порядок», ID і UUID. Останні дві тільки читаються.

Права тут роздаються трьома окремими блоками — «Кнопка "Додати магазин"», «Кнопка "Видалити магазин"» і «Операція "Розкласти товари по магазинах"», — і закривають вони не лише кнопки: без права на вікно «Магазини» жоден із маршрутів довідника не спрацює, ні список, ні створення, ні розкладка.

Створення магазину

Кнопка «Додати» вставляє рядок угорі сітки, одразу ставить курсор у «Назва магазину» й підставляє тимчасове ім'я на кшталт «Новий магазин #3». З форми береться тільки назва: «Активність» і «Вивантаження на сайт» новий магазин отримує ввімкненими, «Основний» — ні.

Новий магазин створюється не порожнім, а з повною копією каталогу. У момент створення програма п'ятьма запитами підряд переносить у нього всі товари, всі категорії, всіх контрагентів, усіх виробників і всі статті акаунта. На демонстраційній базі зі 126 934 товарами це 144 375 рядків одним синхронним кроком, без транзакції — вікно в цей час просто чекає, індикатора прогресу немає.

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

«Основний»

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

Видалення

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

  • магазин позначений як «Основний» — спершу зробіть основним інший;
  • магазин має ID = 1 — цей рядок не видаляється ніколи, незалежно від прапорців.

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

Бургер

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

Розкрите меню додаткових операцій вікна «Магазини»
1Пункт «Розкласти товари по магазинах»
  1. Пункт «Розкласти товари по магазинах» — масова пересборка складу магазинів по всьому каталогу; ховається в цьому меню.

Як товар потрапляє до магазину

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

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

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

Усім іншим склад магазинів задають в Elbuz — руками або автоматично.

Картка товару, блок «Магазини»

У блоці перелічені всі магазини довідника, у кожного — прапорець «Відображати товар» і колонки «Ціна», «Ціна РРЦ», «Ціна собівартість», «Наявність», «Кількість».

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

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

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

Блок «Магазини» в картці товару
1Відображати товар
2Наявність
  1. Відображати товар — прапорець, яким товар відносять до конкретного магазину.
  2. Наявність — статус і кількість тут свої для кожного магазину.

Картка категорії, блок «Магазини»

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

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

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

«Розкласти товари по магазинах»

Єдина масова операція вікна й основний спосіб зібрати склад магазинів, коли товарів тисячі. Логіка одна: товар іде за своїми категоріями.

Пункт бургера спершу робить предрозрахунок — питає в сервера, скільки зв'язків додасться і скільки знімється, — і лише потім показує підтвердження з дослівним описом того, що станеться:

Розрахунок: буде додано звʼязків — ‹скільки›, знято — ‹скільки›.

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

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

  1. додає зв'язок для кожної пари «товар — магазин», де хоча б одна категорія товару входить до цього магазину, а зв'язку ще немає;
  2. знімає зайві зв'язки — але тільки порожні: ті, де ціна, РРЦ, собівартість, кількість і статус наявності нульові;
  3. не чіпає товари без категорій — у них немає джерела складу, і брати його нема звідки.

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

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

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

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

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

Автоматичні шляхи

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

  • Постачальник, віднесений до магазину. У картці контрагента є секція «Магазини», а всередині неї — перелік магазинів із колонками «Активність» і «Назва магазину». Кожне оновлення базового каталогу заводить у такий магазин усі товари, по яких у його постачальників є рядок прайсу з ціною або залишком, і одразу записує їм ціну, РРЦ, собівартість, статус наявності й кількість за цим магазином. Так вітрини діляться за постачальником, а не за каталогом.
  • Магазин, заданий джерелу прайсу. Поле «Прив'язка товарів до магазину» в картці джерела, секція «Нові товари», за замовчуванням ---. Попри назву секції, магазин проставляється всім рядкам цього прайсу, і при кожному оновленні каталогу до магазину потрапляють усі зіставлені товари цього постачальника, у яких є ціна, — не тільки нові.
  • Нова категорія. Створена всередині гілки конкретного магазину — потрапляє тільки до нього; створена деінде — до всіх активних магазинів, основний включно. Руками нічого доводити не треба. Виняток один: коли активний магазин у системі один, зв'язків програма не пише взагалі — вони там ні до чого.
  • Новий виробник і новий контрагент. Дописуються в усі активні магазини.
  • Новий товар з імпорту файлів або каналу за API. Імпорт кладе товар у магазин свого джерела; канали (Rozetka, Shopify, eBay, Amazon та інші) — у магазин з ID = 1, і тільки Хорошоп — в основний.
Секція «Магазини» в картці контрагента-постачальника
1Колонка «Активність»
2Колонка «Назва магазину»
  1. Колонка «Активність» — позначка, що постачальник входить до складу магазину.
  2. Колонка «Назва магазину» — перелік вітрин, до яких віднесено цього постачальника.

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

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

Група «Правила обробки даних» з переключувачами режиму кількох магазинів
1Режим кількох магазинів
2Склад магазинів у нових товарів — за категоріями
  1. Режим кількох магазинів — вимкнено за замовчуванням; вмикають, коли ведуть кілька вітрин.
  2. Склад магазинів у нових товарів — за категоріями — вимкнено за замовчуванням; визначає, як новий товар потрапляє до магазинів.

Як товар випадає з магазину

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

Що прибирає товар зі складу магазину
Що сталосяЩо саме прибирається
Знято прапорець «Відображати товар» у картці товаруОдин товар з одного магазину, разом із його ціною й залишком по магазину
Кнопка «Розкласти товари по магазинах»Тільки порожні зайві зв'язки; ті, де є ціна або залишок, лишаються
Видалено магазинУсі зв'язки цього магазину: товари, категорії, контрагенти, виробники, статті
Видалено категорію або гілку дереваТовари, для яких ця категорія основна, видаляються цілком — разом з усіма своїми магазинами, цінами й залишками. Товари, що лежать у категорії додатковим зв'язком, лишаються. Сама категорія при цьому зникає з усіх магазинів
Видалено товар — поштучно або пакетноУсі магазини цього товару
Завантаження даних із сайту тунелемУсі магазини товару, далі повертаються надіслані сайтом плюс основний
Імпорт CommerceML, YML або PromМагазини товарів, які імпорт позначив видаленими
«Перевірка цілісності БД»Зв'язки товарів і магазинів, яких уже не існує

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

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

Товар є в каталозі, а на сайті його немає

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

Перші чотири перевірки однакові для будь-якого вивантаження. Три останні залежать від того, куди воно йде: у файл (YML, Prom, CommerceML, Excel), у канал за API чи на власний сайт тунелем. Тип видно в самому шаблоні вивантаження.

нітакнітакнітакфайл: YML, Prom,CommerceML, Excelтунель на свій сайтканал за APIнітакТовар у базовому каталозіУ шаблоні вивантаженняобрано магазин?До магазину віднесенохоч один товар?Товар віднесенодо цього магазину?Куди йдевивантаження?Категорія товарув цьому магазині?Товар потрапляєу вивантаженняВідбору за магазиномнемає:іде весь каталогПорожній файлі червоний рядок ужурналіКартка товару«Магазини»або склад запостачальникомКартка категорії«Магазини»Тунель: товар поїде,але категорія і виробникбез магазину на сайт непотраплять
Через які перевірки за магазином проходить товар, перш ніж потрапити у вивантаження
  1. Чи обрано магазин у налаштуваннях вивантаження? За відбір відповідає — поле «Магазин», за замовчуванням «Усі магазини». Поки магазин не обраний, відбору за магазином немає взагалі — і жодна з наступних перевірок не виконується. Обраний магазин у будь-якому типі вивантаження вмикає одну обов'язкову умову: товар має входити до складу цього магазину. Ще дві умови — за категорією і за виробником — працюють не скрізь, про них у пунктах 5 і 6.
  2. Чи не порожній склад цього магазину? Прогін пише про це окремий рядок у журналі. Порожній склад — червоним: «Магазин «‹назва›» обрано в налаштуваннях, але до нього не віднесено жодного товару — вивантажувати нічого…» Непорожній — звичайним: «Відбір за магазином «‹назва›»: до нього віднесено ‹скільки› товарів із ‹скільки› у каталозі.» Другий рядок теж варто читати: якщо віднесено помітно менше, ніж ви очікували, склад зібраний не повністю.
  3. Чи входить сам товар до цього магазину? Картка товару → блок «Магазини» → прапорець «Відображати товар». Те саме можна побачити з іншого боку: увімкнути режим кількох магазинів і клацнути в дереві вузол магазину — сітка покаже його склад.

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

  4. Чи не увімкнена галочка «Лише в наявності в цьому магазині»? Вона є в тому ж шаблоні вивантаження й пропускає лише ті товари, у яких за цим магазином заданий додатний залишок або статус «В наявності». Наявність по магазину зберігається окремо від наявності товару, тому звичайними умовами відбору цього не задати — звідси й окрема галочка.
  5. Чи входить до магазину категорія товару? Стосується двох типів вивантаження. У каналі за API (Rozetka, Хорошоп, Shopify та інші) категорія, не віднесена до магазину, забирає товар разом із собою — товар просто не потрапляє у вибірку. У тунелі Elbuz товар лишається, але сама категорія на сайт не поїде, і показатися йому там не буде де. У файлових вивантаженнях — YML, Prom, CommerceML, Excel — відбору за категорією немає взагалі, і ця перевірка вам нічого не дасть. Правиться в картці категорії, блок «Магазини».
  6. Чи входить до магазину виробник товару? Стосується тільки тунеля й тільки самого довідника виробників: виробник, не віднесений до магазину, на сайт не передається. Товар із вивантаження при цьому не випадає — цю перевірку робіть тоді, коли на сайті зникли бренди, а не товари. Складу виробників, до речі, не править ніхто: він заповнюється сам при створенні виробника і при створенні магазину.
  7. Чи стоїть у магазину «Вивантаження на сайт»? Теж тільки про тунель: на сайт ідуть лише активні магазини з цим прапорцем.

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

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

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

Режим кількох магазинів

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

Що змінюється, коли він увімкнений:

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

Що не змінюється й за магазином не фільтрується:

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

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

Окремого перемикача магазину в інтерфейсі теж немає — вибір магазину живе тільки в дереві категорій і тільки в цьому режимі.

Що налаштовується в магазині, а що глобально

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

Глобально, одним значенням на весь акаунт, налаштовуються три речі:

  • «Режим кількох магазинів» — вимкнено за замовчуванням;
  • «Склад магазинів у нових товарів — за категоріями» — вимкнено за замовчуванням;
  • як поводяться залишки по магазинах, коли йде , — це розділ «Магазини» в налаштуваннях оновлення базового каталогу.

А ціна, РРЦ, собівартість, статус наявності й кількість — своє в кожного магазину, і живуть вони в картці товару, блок «Магазини».

Чого магазини не роблять

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

Розбір частих проблем

Симптом, причина і що зробити
Що ви бачитеЧому такЩо зробити
«Помилка видалення» Видаляють основний магазин або магазин з ID = 1. Причину програма не називає Зробити основним інший магазин і повторити; рядок з ID = 1 не видаляється ніколи (видалення)
«Виберіть запис!» Натиснули «Видалити», не виділивши рядок Клацнути по рядку магазину й повторити
«Готово. Додано звʼязків: 0, знято: 0.» Жодна категорія не віднесена до жодного активного магазину Розставити прапорці в картках категорій, блок «Магазини», і натиснути кнопку ще раз (розкласти товари)
«Збережено звʼязків із цінами або залишками: ‹скільки› — їхній склад правте в картці товару.» Зайві зв'язки із заповненою ціною чи залишком операція не знімає: у них лежать дані Зняти вручну: картка товару → блок «Магазини» → прапорець «Відображати товар» (картка товару)
«Магазин «‹назва›» обрано в налаштуваннях, але до нього не віднесено жодного товару — вивантажувати нічого…» У шаблоні вивантаження обраний магазин із порожнім складом Або повернути «Усі магазини», або наповнити склад кнопкою «Розкласти товари по магазинах» (ланцюжок перевірок)
«Відбір за магазином «‹назва›»: до нього віднесено ‹скільки› товарів із ‹скільки› у каталозі.» Відбір працює, але склад магазину зібраний не повністю Порівняти числа з очікуваними й дозібрати склад по категоріях (розкласти товари)
Під вузлом магазину в дереві сітка порожня, хоча товари в каталозі є До цього магазину не віднесено жодного товару — режим кількох магазинів показує саме склад Прапорець у картці товару або кнопка «Розкласти товари по магазинах» (розкласти товари)
У картці товару проти магазину написано «Немає на складі», хоча товар у наявності Рядка для цього магазину немає зовсім, і в колонці показується заглушка Поставити прапорець «Відображати товар» і задати наявність по магазину (картка товару)
Треба задати собівартість, а поле «Собівартість» у картці товару не редагується У самій картці це поле для читання: значення приходить із прайс-листа або зі складу набору Задавати собівартість у блоці «Магазини» картки товару — колонка «Ціна собівартість» там зберігається (картка товару)
«Зачекайте...» висить довго Розкладка товарів по магазинах іде одним синхронним запитом і на великому каталозі триває хвилини Дочекатися відповіді з числами; вікно не закривати (розкласти товари)
Розставлені вручну магазини зникли після завантаження з сайту Завантаження тунелем знімає всі магазини товару й повертає склад за даними сайту Розподіляти асортимент на боці сайту — в Elbuz ці галочки не втримаються (умова про тунель)

Що зробити

Другий магазин по кроках

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

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

У мене один магазин. Чи треба щось налаштовувати?

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

Вивантаження вийшло порожнім, хоча магазин обраний. Чому?

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

Що робить кнопка «Розкласти товари по магазинах»?

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

Чи можна видалити магазин і повернути його назад?

Повернути не можна: кошика немає, і разом із магазином зникають усі його зв'язки з товарами, категоріями, контрагентами, виробниками й статтями, а в зв'язках товарів лежать ще й ціна, РРЦ, собівартість і залишок по цьому магазину. Магазин з ID = 1 не видаляється взагалі, а основний — поки не зробите основним інший.

Товар є в каталозі, а на сайті його немає. Із чого почати?

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

Магазини в нас діляться за постачальниками. Кнопка «Розкласти товари по магазинах» допоможе?

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

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

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

Суміжні теми

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