VkusVill_KZ-Landings

Реализация типа лендинга “Под заказ”

Дата: 2026-01-09
Статус: ✅ Реализовано
Версия: 1.0


✅ Что реализовано

1. Поддержка типа “под-заказ” в валидации

2. Обновлена функция prepare_data()

3. Обновлен заголовок лендинга

4. Обновлена JavaScript логика

5. Обновлена команда генератора


📋 Отличия типов лендингов

Тип “В Наличии”

Тип “Под заказ”


🔧 Технические детали

Валидация файла:

validate_excel_structure(df, landing_type='обычный')
# Для типа 'под-заказ': колонка 'Остаток' не требуется
# Для типа 'в-наличии': колонка 'Остаток' обязательна

Подготовка данных:

prepare_data(df, landing_type='обычный')
# Для типа 'под-заказ': остатки не читаются (stock = None)
# Для типа 'в-наличии': остатки читаются из столбца M

JavaScript проверка остатков:

const LANDING_TYPE = "под-заказ";  // или "в-наличии"

// Проверка остатков только для типа "в-наличии"
if (LANDING_TYPE === 'в-наличии' && stock !== null) {
    // проверка остатка
}

🧪 Тестирование

Пример создания лендинга “Под заказ”:

python3 generate_landing.py "файл.xlsx" "Название Клиента" "short-name" --type под-заказ

Или с интерактивным запросом:

python3 generate_landing.py "файл.xlsx" "" "" --type под-заказ
# → Генератор спросит название клиента

Ожидаемый результат:

  1. ✅ Файл валидируется без требования колонки “Остаток”
  2. ✅ Остатки не читаются из файла
  3. ✅ Заголовок: “Название клиента” + “Под заказ”
  4. ✅ В карточках товаров не показываются остатки
  5. ✅ В корзине не показывается доступный товар
  6. ✅ При добавлении в корзину не проверяются остатки

📝 Изменения в коде

Файл: Inbox/generate_landing.py

  1. Функция validate_excel_structure():
    • Добавлена нормализация типа лендинга
    • Для типа “под-заказ” колонка “Остаток” не требуется
  2. Функция prepare_data():
    • Добавлен параметр landing_type
    • Остатки читаются только для типа “в-наличии”
  3. Функция generate_html():
    • Обновлен заголовок: “Под заказ” вместо “В наличии на [дата]”
    • Добавлена константа LANDING_TYPE в JavaScript
  4. JavaScript функции:
    • addToCart() - проверка остатков только для типа “в-наличии”
    • updateQuantity() - проверка остатков только для типа “в-наличии”
    • renderCart() - отображение доступного товара только для типа “в-наличии”
    • updateCartStock() - выполняется только для типа “в-наличии”
    • showCategory() - отображение остатков только для типа “в-наличии”
  5. Функция main():
    • Добавлена поддержка --type под-заказ
    • Запрос названия клиента для типа “под-заказ”
    • Обновлены сообщения о типе лендинга

✅ Статус

Реализовано:
Протестировано: ⏳ Требуется тестирование
Готово к использованию:


Последнее обновление: 2026-01-09