Автозалив карток товарів на сайт
Оновлення асортименту робиться руками через адмінку: відкрити, вставити, зберегти, повторити. Скрипт проходить той самий шлях сам, за розкладом, і звітує, що змінив.
Результат
- Обхід каталогу йде за розкладом, без ручного проходу по адмінці
- Нічого не видаляє: попереднє значення зберігається, зміну можна відкотити
- Не знайшов поле, зупиняється і повідомляє, а не продовжує наосліп
- Один тиждень ручного оновлення каталогу коштує дорожче, ніж місяць роботи скрипта
- Роль
- Збірка під конкретний магазин
- Скільки зайняло
- від 3 днів
Задача
Асортимент оновлюється руками через адмінку магазину. Кожна картка це відкрити, вставити текст у кілька полів, зберегти, дочекатися перезавантаження, перейти до наступної. На сотнях карток це вже не «трохи рутини», а окрема робота на пів дня щотижня, яку хтось мусить робити замість своєї.
Як це працює
Скрипт робить той самий обхід сам: бере дані з таблиці або з вивантаження, знаходить картку, вписує поля, зберігає. Запускається за розкладом і звітує, що саме оновив.
⚠️ Це збірка під конкретний сайт, а не коробка. У кожного магазину своя адмінка, свої назви полів і свої правила, тому робота починається з того, що я дивлюсь саме на ваш каталог. Готового рішення, яке ставиться на будь-який сайт за годину, тут не існує ні в кого.
Коли підходить
- Сотні карток оновлюються вручну щотижня. Відкрити, вставити, зберегти, повторити, і так по колу.
- API магазину покриває не все. Частина полів живе тільки в адмінці, і скрипт має вміти обидва шляхи.
- Помилка в оновленні коштує дорожче за саму рутину. Потрібен запобіжник, а не швидкість заради швидкості.
Чому не «просто через API»
Перше, що перевіряю, це наявність API. Зазвичай виявляється, що частину полів через нього оновити можна, а частину ні: вони живуть тільки в адмінці.
Тому робота ділиться. Усе, що доступне через API, іде через нього, бо це швидше й надійніше. Решта дотягується браузером. Робити все браузером «щоб однаково» це свідомо повільніше й крихкіше рішення.
Запобіжники
Скрипт нічого не видаляє. Перед записом він зберігає попереднє значення, тож будь-яку зміну можна відкотити.
Якщо структура сторінки змінилась і потрібне поле не знайдено, він зупиняється й повідомляє про це. Це важливіше, ніж здається: скрипт, який у такій ситуації продовжує наосліп, за одну ніч розкладе сміття по всьому каталогу, і розбирати його доведеться руками, тобто рівно тією роботою, заради якої все й починалось.
Часті питання
Що як структура сторінки зміниться? Скрипт зупиняється й повідомляє, а не продовжує наосліп. Мовчазний збій тут дорожчий, ніж пауза на день.
Можна щось видалити чи зламати каталог? Скрипт нічого не видаляє. Перед записом він зберігає попереднє значення, тож будь-яку зміну можна відкотити.
Стек
- Python
- Playwright
- REST API
Схожа задача?
Опишіть її двома реченнями. Скажу, чи можна це автоматизувати і скільки приблизно коштуватиме.