lifestyle
Корзина ВкусВилл

Корзина ВкусВилл

@vkusvill-cart

1 000 000 токенов в подарок
бесплатно при регистрации — для знакомства с агентом
0 установокобновлено сегодняПубличный
О навыке

Автоматизация корзины на vkusvill.ru через browser-use CLI: поиск товаров, добавление в корзину с правильными количествами (вес vs штуки), установка адреса доставки и получение ссылки на корзину. Применяйте, когда у пользователя уже есть список покупок: «закажи продукты ВкусВилл», «собери корзину ВкусВилл», или хочет превратить план питания в реальный заказ. Включает проверки авторизации и адреса. Не подходит для рецептов и планов питания (cooking/meal-planner) и других маркетплейсов (smart-shopper/marketplace-ru).

Как работает Корзина ВкусВилл

Кому подходит «Корзина ВкусВилл»

  • Занятым семьям — превратить недельный список покупок в готовую корзину за пару минут вместо ручного поиска каждой позиции.
  • Тем, кто планирует питание — связать план из навыка планирования меню с реальным заказом: рецепты → продукты → корзина.
  • Всем, кто устал от ручного кликанья — собрать повторяющуюся закупку одним сообщением и отправить ссылку семье.

Что умеет навык

  • Поиск и замены — находит товар по запросу, при нуле результатов упрощает запрос и пробует синоним; предлагает ближайший аналог, а не молчит.
  • Вес vs штуки — определяет фасовку (кг, шт, упаковка) и использует нужный способ ввода количества, включая React-стейт тяжёлого SPA ВкусВилл.
  • Адрес и авторизация — перед добавлением проверяет логин и адрес доставки: без них корзина работает некорректно.
  • Ссылка на корзину — возвращает share-ссылку с защитой от обрезки длинных строк.

Как это работает

Навык работает через реальный браузер (навык browser-use): открывает страницы, читает DOM, кликает по карточкам и закрывает всплывающие модалки — как живой пользователь. Для длинных списков включается batch-режим: штучные товары добавляются быстрыми eval-командами без полного дампа страницы, что ускоряет заказ в 3–4 раза. Прогресс пишется в чекпоинт каждые 10 позиций, поэтому сессию можно продолжить после паузы.

Полезные детали

  • Тяжёлый SPA — vkusvill.ru грузит 5000+ px, поэтому навык точечно проверяет состояние через eval, а не делает полный state на каждом шаге.
  • Профиль браузера — с флагом --profile сессия сохраняется между запусками, и повторный логин не нужен.
  • Безопасность — агент не вводит пароли и не подтверждает оплату: финал всегда за вами.

Для других площадок пригодится навык умных покупок, а рецепты к заказу соберёт готовка.

Готовы закрыть продуктовую задачу? Дайте список — запустите «Корзину ВкусВилл» прямо сейчас.

Частые вопросы

Навык сам оформляет и оплачивает заказ?

Нет. Навык добавляет товары в корзину на vkusvill.ru и возвращает ссылку на неё — финальную проверку и оплату вы делаете сами. Логин и пароль агент не вводит: авторизоваться в открывшемся окне нужно один раз вручную.

Как навык понимает весовые товары?

Он отличает весовые позиции (в килограммах) от штучных (шт/упак) и подбирает способ ввода количества: прямой input, React-стейт карточки, клик по спану с весом или кнопки «+»/«−». Если точный вес установить не удалось — добавляет с дефолтным и честно пишет, что нужно поправить вручную.

Что нужно для запуска?

Аккаунт на vkusvill.ru и адрес доставки — без них товары не сохранятся и кнопка «В корзину» может не сработать. Для работы браузера нужен Python и пакет browser-use; навык спросит разрешение перед установкой и ничего не ставит молча.

А если товара нет в наличии?

Навык упрощает запрос, пробует синонимы и ближайший аналог, а если ничего не нашёл — сообщает об этом и предлагает замену, а не добавляет случайную позицию.

Это бесплатно?

Сам навык бесплатный — оплачиваются только токены за работу агента. Заказ оплачивается отдельно на сайте ВкусВилл, как обычно.

Инструкции

Корзина ВкусВилл — browser-use

Автоматизируем добавление товаров в корзину на vkusvill.ru через browser-use CLI. Каждое действие — через реальный браузер: открываем страницы, ищем товары, добавляем в корзину.

Установка browser-use

Для работы навыка нужен browser-use CLI — это Python-пакет, поэтому Python должен быть установлен. На Windows Python есть не всегда; на macOS/Linux — как правило, есть.

Прежде чем что-либо устанавливать — скажи пользователю и получи подтверждение. Не устанавливай Python и пакеты молча и по умолчанию не запускай системные установщики (winget/brew/apt/curl) без явного согласия.

Порядок действий:

  1. Проверь: browser-use --version. Если команда есть — навык готов к работе.
  2. Если browser-use не установлен — объясни пользователю, что нужен Python и пакет browser-use, и спроси разрешение установить: pip install browser-use && browser-use install. На Windows при отсутствии Python предложи скачать установщик с python.org (обязательно с галочкой «Add Python to PATH»), затем повторить pip install.
  3. Если установка не удалась или пользователь отказался — не зацикливайся: честно сообщи, что автоматизация браузера сейчас недоступна, и предложи выполнить задачу вручную по шагам.

Не скрывай от пользователя команды и ошибки.

Требования (после установки)

  • browser-use CLI установлен и доступен на PATH
  • Аккаунт на vkusvill.ru (телефон + пароль или авторизация через соцсети)
  • Для headed режима: дисплей или X11 forwarding

Проверка перед работой

ВЫПОЛНЯЙ ПЕРЕД КАЖДЫМ СЕАНСОМ. Это предотвращает 90% проблем.

# 1. Закрыть все старые сессии
browser-use close --all
node -e "new Promise(r=>setTimeout(r,1*1000)).then(process.exit)"

# 2. Открыть ВкусВилл в headed режиме
browser-use --headed open https://vkusvill.ru
node -e "new Promise(r=>setTimeout(r,4*1000)).then(process.exit)"

# 3. Проверить состояние страницы
browser-use state

Что проверять в state (баннер cookies, авторизация, адрес, промо-модалки) и как реагировать — в references/01-preflight-address.md; читай его перед началом сессии.

Авторизация

Если пользователь не авторизован, нужно попросить его войти вручную. Автоматизировать вход нельзя — это небезопасно и ненадёжно.

Попроси пользователя:

«Чтобы добавить товары в корзину, нужно войти в аккаунт ВкусВилл. Пожалуйста, авторизуйся в открывшемся окне браузера, а потом напиши "готово".»

Альтернатива — профиль браузера для сохранения сессии:

browser-use --profile "vv" --headed open https://vkusvill.ru

При первом запуске пользователь авторизуется. При последующих — сессия сохраняется.

Проверка после авторизации пользователем:

browser-use state
# Подождать и проверить снова
node -e "new Promise(r=>setTimeout(r,3*1000)).then(process.exit)"
browser-use eval "!!document.querySelector('[class*=\"user\"], [class*=\"profile\"], [class*=\"account\"], .HeaderUser')"

Установка адреса доставки

Адрес ОБЯЗАТЕЛЕН для добавления товаров в корзину. Без него кнопка «В корзину» может не работать или товары добавятся в «отложенные». Пошаговая установка адреса (кнопка в шапке → «Добавить новый адрес» → ввод адреса → подсказка из списка → подтверждение → выбор времени доставки; если адрес не устанавливается — вне зоны доставки) — в references/01-preflight-address.md.

Структура сайта ВкусВилл

URL-паттерны, схема карточки товара и ключевые CSS-селекторы — в references/02-site-structure.md; сверяйся с ними при работе с DOM.

Добавление товара в корзину

Для каждого товара из списка (полные bash-команды и установка количества — в references/03-add-to-cart.md):

  1. Открой https://vkusvill.ru/search/?q=<название_товара>, подожди 3 с.
  2. Закрой модалки, если появились.
  3. Проверь, что товары загрузились (количество карточек > 0); если 0 — товар не найден, попробуй другой запрос.
  4. Прочитай первый товар: название, цена, вес/объём.
  5. Получи state, найди индекс кнопки «В корзину», кликни её, подожди 1 с.
  6. Если нужно количество > 1 — установи количество: весовой товар (кг) или штучный (шт) — процедура в references/03-add-to-cart.md.

Весовые товары: продвинутые тактики

На vkusvill.ru весовые товары добавляются с дефолтным весом (обычно 0.85 кг). Контрол количества часто реализован как <span>, а не <input> — стандартный browser-use type не работает. Минус-кнопка может сбрасывать товар в 0 вместо уменьшения.

Пробуй тактики по порядку — переходи к следующей, если предыдущая не сработала: Все 4 тактики (React-стейт через __REACT_INTERNALS__, клик на <span> с весом, кнопки «+»/«−» с проверкой шага, fallback с корректировками), определение фасовки и стратегия поиска — в references/04-weight-tactics.md.

Batch add mode (для списков 10+ товаров)

Когда нужно добавить много товаров (20+), поштучный search → state → click занимает 15-20 минут. Batch mode сокращает время в 3-4 раза. Полная процедура (разделение штучные/весовые, batch-добавление через eval, проверка корзины) — в references/05-batch-verify.md.

Чекпоинты при добавлении в корзину

При добавлении 10+ товаров сохраняй прогресс каждые 10 позиций. Формат файла cart-progress.md, когда сохранять, старт сессии и завершение — в references/06-checkpoints-share.md.

Полный workflow: добавление списка товаров

# === PRE-FLIGHT ===
browser-use close --all
node -e "new Promise(r=>setTimeout(r,1*1000)).then(process.exit)"
browser-use --headed open https://vkusvill.ru
node -e "new Promise(r=>setTimeout(r,4*1000)).then(process.exit)"

# Проверить авторизацию
browser-use eval "!!document.querySelector('[class*=\"user\"], [class*=\"profile\"], [class*=\"account\"], .HeaderUser')"
# Если false → ПОПРОСИТЬ ПОЛЬЗОВАТЕЛЯ АВТОРИЗОВАТЬСЯ

# Закрыть модалки
browser-use eval "document.querySelector('[class*=\"modal\"], [class*=\"popup\"]')?.querySelector('[class*=\"close\"], [aria-label=\"Закрыть\"]')?.click()"

# Проверить адрес
browser-use eval "document.querySelector('[class*=\"address\"], [class*=\"AddressButton\"]')?.textContent?.trim()?.length > 3"
# Если false → УСТАНОВИТЬ АДРЕС

# === ПРОВЕРИТЬ ЧЕКПОИНТ ===
# Если есть cart-progress.md со status: in_progress → предложить продолжить

# === BATCH: ШТУЧНЫЕ ТОВАРЫ ===
# Для каждого штучного товара (без state на каждой странице):
browser-use open "https://vkusvill.ru/search/?q=<товар>"
node -e "new Promise(r=>setTimeout(r,3*1000)).then(process.exit)"
browser-use eval "document.querySelector('[class*=\"modal\"], [class*=\"popup\"]')?.querySelector('[class*=\"close\"]')?.click()"
browser-use eval "document.querySelectorAll('[class*=\"product-card\"]').length"  # > 0?
browser-use eval "document.querySelector('[class*=\"add-to-cart\"], [class*=\"AddButton\"]')?.click() || 'no_btn'"
node -e "new Promise(r=>setTimeout(r,1*1000)).then(process.exit)"
# НЕ делать state! Только eval для проверки

# ЧЕКПОИНТ каждые 10 товаров

# === ВЕСОВЫЕ ТОВАРЫ (отдельно, после батча) ===
# Для каждого весового товара — полный алгоритм с тактиками из секции выше

# === VERIFY CART ===
browser-use open "https://vkusvill.ru/cart/"
node -e "new Promise(r=>setTimeout(r,3*1000)).then(process.exit)"
browser-use eval "document.querySelectorAll('.ProductCard, .cart-item, [class*=\"basket-product\"]').length"

# === SHARE LINK ===
# (см. секцию «Получение ссылки на корзину» с обработкой truncation)

Детали: проверка корзины (содержимое + итог) — references/05-batch-verify.md; чекпоинты и получение ссылки на корзину с обработкой truncation — references/06-checkpoints-share.md.

Обработка ошибок

ПроблемаРешение
Товар не найден (0 карточек)Упрости запрос. Попробуй синоним. Сообщи пользователю.
Модалка блокирует действияeval чтобы кликнуть close. Или Escape.
Кнопка «В корзину» не нажимаетсяПроверь адрес доставки — без адреса кнопка может не работать
Количество не вводитсяПопробуй кнопку «+». Если и она не работает — товар может быть unavailable
Корзина пустая после добавленияПроверь авторизацию. Без логина корзина не сохраняется.
Ссылка «Поделиться» не найденаВерни URL корзины. Ссылка может быть недоступна в некоторых регионах.
Страница долго грузитсяУвеличь sleep до 5 секунд. VkusVill — тяжёлый SPA.
«Element not found» после навигацииDOM перерисовался — запусти state заново для свежих индексов.
Сессия завислаbrowser-use close --all, начни заново.
Неверный товар добавленПерейди в корзину, удали (кнопка «−» до 0 или «Удалить»), и повтори поиск с уточнённым запросом.

JavaScript Eval Snippets

Готовые eval-сниппеты для типовых проверок (авторизация, товары, цена, адрес, счётчик, модалки) — в references/07-snippets.md.

Оптимизация: не злоупотребляй state

browser-use state дампит весь DOM. VkusVill SPA рендерит 5000+ px — state тормозит 10-30 секунд и забивает контекст. Правила (когда делать state, а когда eval) и быстрые eval-сниппеты для типовых проверок — в references/07-snippets.md.

Советы

  1. Всегда close --all первым — устаревшие сессии — причина #1 зависаний.
  2. Жди после навигации — VkusVill — тяжёлый SPA. sleep 3-4 после open.
  3. Проверяй модалки перед каждым действием — они появляются непредсказуемо.
  4. Не переиспользуй индексы — после любого действия DOM меняется, делай state заново.
  5. Адрес — обязателен — без адреса корзина работает некорректно.
  6. Авторизация — обязательна — без логина товары не сохраняются.
  7. Упрощай запросы — «Филе куриной грудки ВкусВилл» → «куриная грудка».
  8. Проверяй корзину в конце — убедись что все товары добавлены.
  9. Используй --profile — для сохранения сессии между запусками: browser-use --profile "vv" --headed open https://vkusvill.ru

Cleanup

browser-use close          # закрыть текущую сессию
browser-use close --all    # закрыть ВСЕ сессии (использовать между задачами)
Ресурсы (7)
references/
references/01-preflight-address.mdСправка
references/02-site-structure.mdСправка
references/03-add-to-cart.mdСправка
references/04-weight-tactics.mdСправка
references/05-batch-verify.mdСправка
references/06-checkpoints-share.mdСправка
references/07-snippets.mdСправка

Комментарии (0)

Войдите, чтобы оставить комментарий

Загрузка комментариев...

Корзина ВкусВилл: заказ продуктов через ИИ