Ресторан
VIDEOMENU.KZ
Стол №{{ tableNumber }}
Логотип заведения VM
ДОБРО ПОЖАЛОВАТЬ

{{ restaurantInfo.restaurant_name || restaurantInfo.name || '' }}

{{ restaurantInfo.welcome_tagline || restaurantInfo.tagline }}

Нажмите в любой точке для перехода
VM

Videomenu.kz

Интерактивный Kiosk & Видеоменю ресторана

Подключение стойки

Введите 6-значный код сопряжения стойки из веб-панели управления:

{{ pinDigits[idx-1] || '' }}
{{ pairingError }}
Стойки заведения:

Стойка временно недоступна

Терминал переведён администратором в сервисный режим. Приём заказов временно приостановлен.

Стойка: {{ currentTerminal.name }}
Зал: {{ currentTerminal.hall_zone || 'Основной зал' }}
Статус: Технический перерыв
Нет видео
Доставка • {{ restaurantInfo?.restaurant_name || 'Daysi lounge' }} Мин. заказ {{ deliverySettings?.min_order_amount || 3000 }} ₸ • {{ deliverySettings?.estimated_delivery_time || '45-60 мин' }}

{{ getDishDisplayName(currentDish) }}

{{ formatPrice(currentDish.discount_price) }} ₸ {{ formatPrice(currentDish.price) }} ₸ -{{ Math.round((1 - currentDish.discount_price / currentDish.price) * 100) }}%
{{ formatPrice(currentDish.price) }} ₸
✓
{{ aiCashierLang === 'kz' ? 'Тағамның видеосы қосылды. Оралу үшін «Мәзірге оралу» түймесін басыңыз' : (aiCashierLang === 'en' ? 'Playing dish video. Tap "Back to menu" to return' : 'Просмотр видео блюда. Нажмите «Назад», чтобы вернуться') }}
{{ t('languageWord', 'Язык меню') }}
{{ getCurrentDishCartQuantity(currentDish) }} {{ t('inOrder', 'в заказе') }}

{{ aiCashierLang === 'kz' ? 'Дауыстық ИИ-даяшы' : (aiCashierLang === 'en' ? 'Voice AI Waiter' : 'Голосовой ИИ-официант') }}

{{ aiCashierLang === 'kz' ? 'Тағамды атаңыз немесе сұрақ қойыңыз' : (aiCashierLang === 'en' ? 'Name a dish or ask a question' : 'Назовите блюдо или задайте вопрос') }}

{{ aiCashierLang === 'kz' ? 'Тілді таңдау' : (aiCashierLang === 'en' ? 'Language' : 'Язык') }}
{{ aiCashierLang === 'kz' ? 'Тыңдап тұрмын...' : (aiCashierLang === 'en' ? 'Listening...' : 'Слушаю вас...') }} {{ aiCashierLang === 'kz' ? 'Ойлануда...' : (aiCashierLang === 'en' ? 'AI is thinking...' : 'ИИ думает...') }} {{ aiCashierLang === 'kz' ? 'Жауап беруде...' : (aiCashierLang === 'en' ? 'AI is speaking...' : 'ИИ говорит...') }} {{ aiCashierLang === 'kz' ? 'Микрофонды басып сөйлеңіз' : (aiCashierLang === 'en' ? 'Tap microphone and speak' : 'Нажмите микрофон и говорите') }}
{{ aiCashierLang === 'kz' ? 'ИИ-Көмекші жауабы:' : (aiCashierLang === 'en' ? 'AI Assistant:' : 'Ответ ассистента:') }}

{{ typeof cleanAIText === 'function' ? cleanAIText(aiAssistantResponse) : aiAssistantResponse }}

✨ {{ aiMenuSetTitle || (aiCashierLang === 'kz' ? 'Сізге ұсынылған мәзір:' : (aiCashierLang === 'en' ? 'Recommended Menu:' : 'Рекомендованное меню:')) }}
{{ aiProposedDishes.length }} {{ aiCashierLang === 'kz' ? 'тағам' : (aiCashierLang === 'en' ? 'items' : 'блюда') }}
🍽️
▶
{{ getDishDisplayName(dish) }}
{{ formatPrice(dish.price) }} ₸ · {{ dish.ai_reason }}
✓ {{ aiLastActionNotice }}
{{ aiCashierLang === 'kz' ? 'Жылдам сұрақтар:' : (aiCashierLang === 'en' ? 'Quick suggestions:' : 'Быстрые подсказки:') }}
{{ getCategoryName(selectedModalDish.category_id) }}

{{ getDishDisplayName(selectedModalDish) }}

⚠️ {{ t('noteWarningTitle', 'Внимание: Примечание к блюду') }}

{{ selectedModalDish.note_text }}

{{ formatPrice(selectedModalDish.discount_price) }} ₸ {{ formatPrice(selectedModalDish.price) }} ₸ -{{ Math.round((1 - selectedModalDish.discount_price / selectedModalDish.price) * 100) }}%
{{ formatPrice(selectedModalDish.price) }} ₸ {{ t('weight', 'Вес:') }} {{ selectedModalDish.weight_grams }} {{ t('grams', 'г') }} ⏱ {{ t('waitingTime', 'Время ожидания:') }} {{ selectedModalDish.cooking_time_minutes }} {{ t('minutesShort', 'мин') }}

{{ t('description', 'Описание:') }}

{{ getDishDisplayDescription(selectedModalDish) }}

{{ t('composition', 'Состав блюда:') }}

{{ getDishDisplayComposition(selectedModalDish) }}

👨‍🍳
{{ t('cookingVideo', 'Видео приготовления') }} {{ t('cookingVideoSub', 'Посмотрите, как шеф-повар готовит это блюдо') }}

{{ t('allergens', 'Аллергены:') }}

{{ a }}

{{ infoKbjuMode === 'per_100g' ? t('nutritionPer100g', 'Пищевая ценность (на 100 г):') : t('nutritionTitle', 'Пищевая ценность (КБЖУ на порцию):') }}

{{ t('kcal', 'Ккал') }} {{ getModalDishNutrition(selectedModalDish).calories || '-' }}
{{ t('proteins', 'Белки') }} {{ getModalDishNutrition(selectedModalDish).proteins ? getModalDishNutrition(selectedModalDish).proteins + 'г' : '-' }}
{{ t('fats', 'Жиры') }} {{ getModalDishNutrition(selectedModalDish).fats ? getModalDishNutrition(selectedModalDish).fats + 'г' : '-' }}
{{ t('carbs', 'Углев.') }} {{ getModalDishNutrition(selectedModalDish).carbohydrates ? getModalDishNutrition(selectedModalDish).carbohydrates + 'г' : '-' }}
👨‍🍳 {{ t('cookingProcess', 'Процесс приготовления') }}

{{ getDishDisplayName(cookingVideoDish) }}

📝
{{ t('ingredientReplacement', 'Замена ингредиентов') }}

{{ getDishDisplayName(selectedDishForNote) }}

⚠️ {{ t('chefInfo', 'Информация от шеф-повара') }}

{{ selectedDishForNote.note_text }}

🎁

{{ t('promotionsTitle', 'Акции и Спецпредложения') }}

{{ t('promotionsSub', 'Актуальные предложения и скидки нашего заведения') }}

{{ promo.title }}

{{ t('promoActive', 'АКТИВНА') }}

{{ promo.description }}

📅 {{ t('validUntil', 'Срок действия: до') }} {{ formatDate(promo.date_to) }}

{{ t('orderTitle', 'Ваш заказ') }}

{{ t('cartEmpty', 'Корзина пуста') }}

{{ t('cartEmptySub', 'Добавьте блюда из видеоменю, нажав на кнопку «+» или корзину') }}

{{ getDishDisplayName(item.dish) }} ({{ getVariantDisplayName(item.selected_variant) }})

{{ item.modifiersText }}

📝 {{ item.dish.note_text }}
{{ formatPrice(item.unit_price * item.quantity) }} ₸ ({{ formatPrice(item.unit_price) }} ₸/шт)
{{ item.quantity }}
Данные для доставки курьером {{ deliverySettings?.estimated_delivery_time || '45-60 мин' }}
QR
Оплата через Kaspi QR
После оформления заказа откроется QR-код для моментальной оплаты в приложении Kaspi.kz
{{ t('orderTypeLabel', 'Тип заказа:') }}
{{ t('tableNumberLabel', 'Номер стола:') }}
№ {{ tableNumber }}
{{ t('receivingLabel', 'Получение:') }}
{{ t('takeawayBadge', 'С собой (на вынос)') }}
Сумма блюд: {{ formatPrice(cartTotalPrice) }} ₸
Доставка: 📍 {{ currentDeliveryZone.name }} (бесплатно от {{ formatPrice(deliverySettings?.free_delivery_threshold || 10000) }} ₸) {{ calculatedDeliveryCost === 0 ? 'Бесплатно 🎉' : formatPrice(calculatedDeliveryCost) + ' ₸' }}
⚠️ Минимальная сумма заказа на доставку - {{ formatPrice(deliverySettings?.min_order_amount || 3000) }} ₸. Добавьте блюд на {{ formatPrice(deliveryShortfall) }} ₸
{{ t('totalToPay', 'Итого к оплате:') }} {{ formatPrice(cartFinalTotal) }} ₸
✓ {{ orderSuccessData.order_type === 'DELIVERY' ? 'Заказ на доставку принят' : t('orderSuccessTitle', 'Заказ успешно принят') }}
✓

{{ t('orderNumberLabel', 'Номер заказа:') }} {{ orderSuccessData.order_number }}

{{ orderSuccessData.order_type === 'DELIVERY' ? 'Повар уже готовит блюда, после чего курьер доставит заказ по вашему адресу' : t('orderSuccessMsg', 'Спасибо за заказ, ожидайте официанта для подтверждения заказа.') }}

Получение: Доставка курьером
Адрес: {{ deliveryAddress }} , кв. {{ deliveryApartment }} , под. {{ deliveryEntrance }} , эт. {{ deliveryFloor }}
Получатель: {{ deliveryCustomerName }} • {{ deliveryCustomerPhone }}
Доставка: {{ calculatedDeliveryCost === 0 ? 'Бесплатно 🎉' : formatPrice(calculatedDeliveryCost) + ' ₸' }}
{{ t('totalToPay', 'Итого к оплате:') }} {{ formatPrice(orderSuccessData.total_amount) }} ₸
QR Оплата через Kaspi QR
К оплате: {{ formatPrice(orderSuccessData.total_amount) }} ₸
Получатель: {{ deliverySettings?.kaspi_name || 'Daysi lounge' }}
ОПЛАТИТЬ ЧЕРЕЗ KASPI QR ↗
Нажмите кнопку выше или отсканируйте Kaspi QR в приложении Kaspi.kz
{{ t('statusLabel', 'Статус:') }} Заказ принят рестораном
{{ t('table', 'Стол') }}: № {{ tableNumber }}
{{ t('receivingLabel', 'Получение:') }} {{ (orderSuccessData.order_type === 'TAKEAWAY' || orderType === 'TAKEAWAY') ? t('takeawayBadge', 'С собой (на вынос)') : t('dineIn', 'В зале') }}
{{ t('commentLabel', 'Комментарий:') }} {{ takeawayComment.trim() }}
{{ t('totalToPay', 'Итого к оплате:') }} {{ formatPrice(orderSuccessData.total_amount) }} ₸
{{ t('statusLabel', 'Статус:') }} {{ t('orderSentKitchen', 'Ожидает подтверждения официанта') }}
{{ t('itemsInOrder', 'Позиции в заказе:') }}
{{ getDishDisplayName(it.dish) }} × {{ it.quantity }}
{{ it.modifiersText }}
📝 {{ it.dish.note_text }}
{{ formatPrice(it.unit_price * it.quantity) }} ₸

{{ currentLang === 'kz' ? '№' + tableNumber + ' үстелге шақыру' : (currentLang === 'en' ? 'Call to table #' + tableNumber : 'Вызов к столу №' + tableNumber) }}

{{ t('selectStaffAction', 'Выберите действие для персонала') }}

{{ t('paymentMethod', 'Способ оплаты:') }}
{{ grpBlock.group || t('categoriesMenu', 'Категории меню') }} {{ grpBlock.categories.length }} {{ t('categoriesCountWord', 'категорий') }}
{{ getCategoryDishesCount(cat.id) }}

{{ cleanCategoryTitle(getCategoryDisplayName(cat)) }}

{{ getCategoryDishesCount(cat.id) }} {{ t('dishesWord', 'блюд') }} →

{{ t('noDishesInCat', 'В этой категории нет блюд') }}

{{ t('changeSearchPrompt', 'Выберите другую категорию или измените поисковый запрос') }}

Видео 9:16
{{ t('noVideo', 'Нет видео') }}

{{ getDishDisplayName(dish) }}

{{ formatPrice(dish.discount_price) }} ₸ {{ formatPrice(dish.price) }}
{{ formatPrice(dish.price) }} ₸
{{ getCartQuantity(dish.id) }} +
{{ formatPrice(dish.discount_price) }} ₸ {{ formatPrice(dish.price) }}
{{ formatPrice(dish.price) }} ₸
✨ {{ t('recommendedForDish', 'Рекомендуем к блюду') }}

{{ getDishDisplayName(currentModifierDish) }}

{{ t('basePriceLabel', 'Базовая цена:') }} {{ formatPrice(getEffectivePrice(currentModifierDish)) }} ₸
📝 {{ t('noteWarningTitle', 'Внимание: Примечание к блюду') }}

{{ currentModifierDish.note_text }}

{{ formatModifierGroupName(group.name) }}

{{ t('requiredBadge', 'Обязательно') }} {{ t('optionalBadge', 'Опционально') }}
{{ (group.max_selected === 1 || group.type === 'single') ? '1 вариант' : (group.max_selected && group.max_selected > 1 ? 'до ' + group.max_selected : (group.items?.length > 1 ? 'до ' + group.items.length : 'по выбору')) }}
Логотип VM

{{ t('aboutVenue', 'О заведении') }}

{{ t('guestInfo', 'Информация для гостей') }}

{{ t('venueLabel', 'Заведение:') }} {{ restaurantInfo.restaurant_name || restaurantInfo.name || 'Daysi lounge&terrace' }}
{{ t('addressLabel', 'Адрес:') }} {{ restaurantInfo.address }}
{{ t('workingHoursLabel', 'Время работы:') }} {{ restaurantInfo.working_hours || (currentLang === 'kz' ? 'Күн сайын 12:00 – 02:00' : (currentLang === 'en' ? 'Daily 12:00 – 02:00' : 'Ежедневно 12:00 – 02:00')) }}
{{ t('phone', 'Телефон:') }} {{ formatDisplayPhone(restaurantInfo.phone) }}
{{ t('in2gisLabel', 'Мы в 2ГИС:') }} {{ t('buildRoute', 'Построить маршрут') }} ↗
{{ t('taxiLabel', 'Такси (Яндекс Go):') }} 🚕 {{ t('callTaxi', 'Вызвать такси') }} ↗
Wi-Fi: {{ displayWifiSSID }} ({{ displayWifiPassword }})

{{ t('moreTitle') }}

{{ t('callTaxi') }} {{ t('callTaxiDesc') }}
{{ t('viewVirtualTour') }} {{ t('virtualTourDesc') }}
{{ t('guestWifi', 'Wi-Fi') }}
{{ t('wifiNetwork') }} {{ displayWifiSSID }} • {{ t('wifiPass') }} {{ displayWifiPassword }}
VM

{{ t('installIosTitle', 'Установка PWA на iPhone / iPad') }}

{{ currentLang === 'kz' ? '«' + (restaurantInfo.restaurant_name || 'Видеоменю') + '» басты экранға қосу' : (currentLang === 'en' ? 'Add «' + (restaurantInfo.restaurant_name || 'VideoMenu') + '» to Home Screen' : 'Добавление «' + (restaurantInfo.restaurant_name || 'Видеоменю') + '» на экран Домой') }}

1
Нажмите кнопку «Поделиться» Иконка квадрата со стрелкой вверх ⎋ в нижней панели браузера Safari.
2
Выберите «На экран «Домой»» Прокрутите список действий вниз до пункта «На экран «Домой»» ⊞.
3
Нажмите «Добавить» В правом верхнем углу окна подтверждения.
📱 {{ t('openOnPhone', 'Открыть на телефоне') }}

{{ t('shareDishTitle', 'Поделиться блюдом') }}

🍽️
{{ shareQrDish.name }}
{{ formatPrice(shareQrDish.discount_price) }} ₸ {{ formatPrice(shareQrDish.price) }} ₸
{{ formatPrice(shareQrDish.price) }} ₸ • {{ shareQrDish.weight || shareQrDish.weight_grams }} г

{{ t('scanQrHint', 'Наведите камеру телефона на QR-код, чтобы открыть это блюдо у себя') }}

🎓
{{ restaurantInfo.restaurant_name || 'Аттестация персонала' }}

{{ waiterTestStep === 'setup' ? 'Тестирование по меню' : (waiterTestStep === 'quiz' ? (waiterTestIsRetryMistakes ? 'Работа над ошибками' : 'Вопрос по блюду') : 'Результаты теста') }}

По каждому блюду будет задан 1 вопрос на знание состава и описания приготовления. По окончании теста результат автоматически отправится руководителю.
Вопрос {{ waiterTestCurrentIndex + 1 }} из {{ waiterTestQuestions.length }} Верно: {{ waiterTestCorrectCount }} • Ошибок: {{ waiterTestMistakes.length }}
🍽️
▶
{{ currentWaiterQuestion.categoryName }} ▶ Смотреть видео

{{ currentWaiterQuestion.dishName }}

Укажите правильный состав и описание подачи блюда:

{{ waiterTestScorePercent }}%
{{ waiterTestScorePercent >= 80 ? '🎉 Отлично! Тест успешно сдан!' : (waiterTestScorePercent >= 60 ? '⚠️ Хорошо, но нужно закрепить ошибки' : '❌ Тест не сдан — повторите состав блюд') }}
Правильных ответов: {{ waiterTestCorrectCount }} из {{ waiterTestQuestions.length }} • Время: {{ formatTestDuration(waiterTestDurationSec) }}
✓ {{ waiterTestSubmitting ? 'Отправка отчёта руководителю...' : 'Результат отправлен руководителю' }}

Допущенные ошибки ({{ waiterTestMistakes.length }} шт.):

Изучите правильный состав
{{ m.dishName }}
Ваш ответ: {{ m.chosenAnswer }}
Правильно: {{ m.correctAnswer }}
{{ t('madeIn', 'Сделано в') }}
Videomenu.kz ↗

{{ t('bookTableTitle', 'Забронировать столик') }}

{{ t('bookTableSub', 'Выберите столик по списку или на схеме заведения') }}

🪑

В этом зале пока нет столиков

👥 до {{ tbl.capacity || 4 }} мест

{{ tbl.name }}

✓

{{ tbl.notes }}

Уютный столик

{{ elem.label }}
{{ elem.label }}
{{ elem.label }}
{{ elem.label }}
{{ elem.label }}
{{ elem.label || '' }}
{{ tbl.name }} {{ isTableOccupied(tbl) ? 'Занят' : ((tbl.capacity || 4) + ' мест') }}
{{ selectedBookingTable.name }} {{ selectedBookingTable.zone || 'Основной зал' }}

Вместимость: до {{ selectedBookingTable.capacity || 4 }} гостей

{{ t('bookingFormTitle', 'Оформление бронирования') }}

Заполните контактные данные для бронирования столика

{{ selectedBookingTable.name }}
{{ selectedBookingTable.zone || 'Основной зал' }} • до {{ selectedBookingTable.capacity || 4 }} мест
{{ selectedBookingTable.notes }}
{{ bookingForm.guests_count }} чел.
С:
ПО:
{{ t('optionalText', 'необязательно') }}
✓

Столик успешно забронирован!

Мы получили вашу заявку и уже резервируем столик.

Стол: {{ lastConfirmedBooking?.table_number }} ({{ lastConfirmedBooking?.table_zone }})
Дата и время: {{ formatDate(lastConfirmedBooking?.date) }} • {{ lastConfirmedBooking?.time_from }} - {{ lastConfirmedBooking?.time_to }}
Гостей: {{ lastConfirmedBooking?.guests_count }} чел.
Гость: {{ lastConfirmedBooking?.client_name }}
Телефон: {{ lastConfirmedBooking?.phone }}
Пожелания / Комментарий: {{ lastConfirmedBooking?.comment }}

Администратор свяжется с вами по указанному телефону для подтверждения. До встречи!

{{ t('leaveReviewTitle', 'Оставить отзыв') }}

{{ t('reviewModalSub', 'Ваше мнение помогает нам стать лучше') }}

🍽️ {{ t('rateDishes', 'Оценка блюд') }}
{{ reviewRatingLabels[reviewForm.rating_dishes] || '' }}
🛎️ {{ t('rateService', 'Оценка сервиса') }}
{{ reviewRatingLabels[reviewForm.rating_service] || '' }}
{{ formatReviewVoiceDuration(reviewVoiceSeconds) }}
🎤
{{ t('voiceReviewRecorded', 'Голосовой отзыв записан') }}
Фото отзыва
{{ t('contactMeLabel', 'Свяжитесь со мной') }} {{ t('contactMeSub', 'Для обратной связи или уточнения деталей') }}
@
{{ notificationToast }}