Содержание
Ответом на вопрос — штатными средствами пока никак. Однако, при помощи Java Script можно внедрить на странице с корзиной пользовательский код, который позволит контролировать введенное значение в поле ввода промокода. Готовый код и демонстранция ниже
Создаем промокод
Чтобы создать промокод, нужно перейти в «Настройки сайта«, Далее «Платежные системы». Далее «Промокоды»
Нажимаем «Добавить промокод» и заполняем форму
Здесь все интуитивно понятно. Единственное обратите внимание на пункт «Скидка», если вы указываете сумму в рублях, то просто пишите число. если скидка в процентах то пишите число и символ %, например 10%
Устанавливаем код модификации
По факту код устанавливать надо туда где есть корзина. Это либо общий footer сайта и footer товара — тогда у вас будет две копии кода, либо размещаем код в header в настройках сайта — тогда у вас будет один код. Здесь уже смотрите сами как удобно вам для вашего проекта
Первым делом определяемся с тем на какой товар можно будет активировать промокод. В моем примере это будет «Шапка с шерстью»
Внутри кода в переменную «my_name_tovar1» прописываем название товара, так как указано в карточке товара, либо так, как отображается внутри просмотрщика кода при попытке проверить товар.
<script>
//console.log для тестирования
//!!!!Здесь между кавычек вводим название товара на который будет разрешен ввод промокода!!!!
var my_name_tovar1 = "Шапка с шерстью";
Это все базовые корректировки которые вы должны сделать.
Демонстрация работы применения промокода на уникальный товар и сам код
Ниже весь код для того, чтобы применялся промокод на уникальный товар:
<script>
//console.log для тестирования
//!!!!Здесь между кавычек вводим название товара на который будет разрешен ввод промокода!!!!
var my_name_tovar1 = "Шапка с шерстью";
//далее идет код и в нем по факту ничего менять не надо
//глобальная переменная проверки обмана
var rouge_chek_var = "false";
//глобальная переменная активирован промокод или нет
var status_aktivate_promocode = "false"
//глобальная переменная получения введенного промокода
var status_value_promocode ="none";
window.addEventListener('load', (event) => {
//ЗАПУСКАЕМ ФУНКЦИЮ ПРОВЕРКИ ОТКРЫТИЯ КОРЗИНЫ каждую 200 = 0.2 сек
let timer_cart_check = setInterval(check_open_cart, 200);
//ищем кнопку активации промокода чтобы повесить функцию активации
promocode_button = document.querySelector(".t-inputpromocode__btn");
promocode_button.onclick = function() {
promocode_aktive();
//console.log(status_value_promocode);
//console.log(status_aktivate_promocode);
};
});
//ФУНКЦИЯ ПРОВЕРКИ ОТКРЫТИЯ КОРЗИНЫ
function check_open_cart(){
//глобальный маркер открытия КОРЗИНЫ
//var my_cart_opened = "korzina_otkrita";
//ищем тег body для отслеживания его изменения
my_popup = document.querySelector(".t-body");
//проверяем имеет ли тег body нужный класс
isVisiblePOPUP = my_popup.classList.contains("t706__body_cartwinshowed");
//проверяем открыта ли корзина
if( isVisiblePOPUP == true){
//console.log("КОРЗИНА ОТКРЫТА");
//запускаем функцию проверки совпадения товаров
cart_vse_tovary();
}
//console.log(isVisible);
//console.log("ТЕСТ ЗАПУСКА 1 сек");
};
//ФУНКЦИЯ ОБНАРУЖЕНИЯ И СОВПАДЕНИЯ ТОВАРОВ В КОРЗИНЕ
function cart_vse_tovary(){
//Ищем контейнер в корзине со всеми товарами
vse_tovari_container = document.querySelectorAll(".t706__product .t706__product-title");
//console.log(vse_tovari_container);
//console.log(vse_tovari_container.length);
//проверка длины массива если больше 1 значит в корзине кроме промо - товара может быть еще. Поэтому деактивируем ввод промокода
if (vse_tovari_container.length > 1){
//console.log("БОЛЬШЕ ОДНОГО ТОВАРА В КОРЗИНЕ");
//запускаем функцию поиска промокода
find_promocode_area();
//прячем ввод промокода
promocode_area.style.display = "none";
//деактивируем промокод
deactivate_promocode()
//проверка условия если промокод активирован чтобы включить обман
if (status_aktivate_promocode == "true"){
rouge_check();
};
}
//если в корзине только 1 товар то можем активировать промокод
else if(vse_tovari_container.length = 1){
//console.log("1 ТОВАР В КОРЗИНЕ");
//перебираем все товары внутри массива полученных названий
vse_tovari_container.forEach(my_tovar => {
//console.log(my_tovar.innerText);
// проверка наличия названия товара из глобальной переменной my_name_tovar1
if (my_tovar.innerHTML.indexOf(my_name_tovar1) >= 0){
//console.log("Нашел ТОВАР");
//запускаем функцию поиска промокода
find_promocode_area();
//показываем ввод промокода
promocode_area.style.display = "block";
//проверка условия если промокод активирован и был активирован обман
if (status_aktivate_promocode == "true" && rouge_chek_var == "true"){
//скрываем ввод промокода
promocode_area.style.display = "none";
};
}
else if (my_tovar.innerHTML.indexOf(my_name_tovar1) == -1){
//console.log("ТОВАР НЕ ТОТ");
//запускаем функцию поиска промокода
find_promocode_area();
//прячем ввод промокода
promocode_area.style.display = "none";
//деактивируем промокод
deactivate_promocode()
//проверка условия если промокод активирован чтобы включить обман
if (status_aktivate_promocode == "true"){
rouge_check();
};
}
});
}
//проверка длины массива если больше 1 значит в корзине кроме промо - товара может быть еще. Поэтому деактивируем ввод промокода
if (vse_tovari_container.length == 0){
//console.log("В КОРЗИНЕ НЕТ НИ ОДНОГО ТОВАРА");
}
};
//ФУНКЦИЯ НАХОЖДЕНИЯ ПОЛЯ ДЛЯ ВВОДА ПРОМОКОДА
function find_promocode_area(){
promocode_area = document.querySelector('.t-input-group_pc');
//console.log(promocode_area.innerHTML);
};
//ФУНКЦИЯ ДЕАКТИВАЦИИ ПРОМОКОДА
function deactivate_promocode(){
window.tcart.promocode = "";
tcart__reDrawTotal();
tcart__updateTotalProductsinCartObj();
};
//ФУНКЦИЯ ПРОВЕРКИ ОБМАНА
function rouge_check(){
rouge_chek_var = "true";
};
//ФУНКЦИЯ ВКЛЮЧЕНИЯ РЕЖИМА АКТИВНОГО ПРОМОКОДА
function promocode_aktive(){
promocode_input = document.querySelector('.t-inputpromocode');
status_value_promocode = promocode_input.value;
status_aktivate_promocode = "true"
}
</script>
Готовые решения по промокодам Тильды
Я знаю, как трудно найти полезную информацию о промокодах Tilda в этом океане цифрового творчества. Сам, как веб-дизайнер, сталкивался с нехваткой реально рабочего кода по этой теме.
Я создал цикл решений по промокодам под различные сценарии — это не просто сборник базовых знаний. Это погружение в тонкости реализации разных схем использования уникальных промокодов на Tilda.
Во все решения включено: готовый код, инструкция по установке, обратная связь по общим вопросам
Решение 8:
💪 Промокоды можно применить для множества товаров и вариаций, которые указываются по их ID. Расчет суммы скидки идет только для указанных товаров, поэтому не важно сколько разных товаров в корзине, скидка по промокоду посчитается только для них. Однако, если на какой-либо из указанных товаров стоит цена со скидкой, то такой товар не учитывается при расчете, а скидка посчитается для остальных с нормальной ценой.
Совместимость:
+Автоматическое добавление дополнительного товара в корзину, при добавлении основного
Стоимость: 3 500 ₽ (включена инструкция по установке и настройке)
Приобрести здесь: https://web4life.ru/curs-promo/eight
Решение 9 (платформа ЛК):
— Вы можете создавать любое число уникальных промокодов, которые можно активировать только 1 раз на одного пользователя, при этом эти промокоды общие на все товары
— Можно создавать любое число промокодов, которые делают скидку только на свои определенные товары, при этом они делают скидку только на свои товары, даже если в корзине есть сторонние товары. Управление лимитом активаций на пользователя также доступно для них
Данное решение включает в себя:
— базовая платформа, готовая для установки последующих модулей
— уже рабочий модуль (установлен вместе с платформой) по работе с промокодами (контроль за количеством активаций, промокоды на определенные товары, общие промокоды)
— пошаговая инструкция по установке и работе с платформой (читать здесь)
Что входит дополнительно:
— консультация по общим вопросам, того что нет в инструкции или просто подсказать
— если у вас домен куплен в сервисе который не указан в инструкции и вы не знаете как создать поддомен lk, я помогу его создать бесплатно
Что не входит в стоимость:
— хостинг для размещения платформы, средняя цена хостинга на 12 месяцев варьируется от 2000 до 3000 ₽
Стоимость: 4 500 ₽
Приобрести здесь: https://web4life.ru/platform
Инструкция + подробности здесь: https://webvova.ru/blog/tilda/nastoyashhij-lichnyj-kabinet-dlya-internet-magazina-na-tilde/
Решение 1:
Видео — демонстрация
🎓 Промокоды можно применить только на определенные категории товаров. Неважно сколько товаров внутри категорий, на всех них будет применяться логика проверки применения \ запрета промокода.
Стоимость: 3 000 ₽ (включена инструкция по установке и настройке)
Приобрести здесь: https://web4life.ru/curs-promo/first
Решение 2:
Видео — демонстрация
🚀 Определенные промокоды можно применить для получения заданного подарка, если в корзине набрано товаров на заданную минимальную сумму
Стоимость: 6 000 ₽
Приобрести здесь: https://web4life.ru/curs-promo/second
Решение 3:
Видео — демонстрация
🔍Промокоды можно активировать на определенные один или несколько товаров, проверка идет по SKU \ Габаритам \ ID товаров \ Названию товаров
Стоимость: 3 000 ₽
Приобрести здесь: https://web4life.ru/curs-promo/third
Решение 4:
Видео — демонстрация
👜 Промокоды нельзя активировать на определенные один или несколько товаров, проверка идет по SKU \ Габаритам \ ID товаров \ Названию товаров
Стоимость: 3 000 ₽
Приобрести здесь: https://web4life.ru/curs-promo/forth
Решение 5:
Видео — демонстрация
😱 Промокоды можно применить, только когда есть 2 определенных товара в корзине одновременно, проверка идет по SKU \ Габаритам \ ID товаров \ Названию товаров
Стоимость: 3 000 ₽
Приобрести здесь: https://web4life.ru/curs-promo/fifth
Решение 6:
Видео — демонстрация
😱 Две группы (одна или несколько штук в каждой) промокодов можно применить, каждая группа на свои один или несколько товаров, проверка идет по SKU \ Габаритам \ ID товаров \ Названию товаров
Стоимость: 3 000 ₽
Приобрести здесь: https://web4life.ru/curs-promo/uni-promo
Решение 7:
Видео — демонстрация
💪 Определенные промокоды можно применять только на конкретные категории, но на эти категории, можно применять и другие промокоды (общие), которые для всех товаров разрешены
Стоимость: 3 000 ₽
Приобрести здесь: https://web4life.ru/curs-promo/seven
Как со мной связаться
Если вы не нашли вашего решения в текущей статье, а также на страницах моих онлайн — уроков по промокодам в Тильда https://web4life.ru/curs-promo/ Тогда присылайте ваше ТЗ задание под ваш проект.
Пишите https://t.me/vbalakin буду рад помочь с доработкой.
История обновлений
Обновлено 8 решение + добавлено 9 решение 28.11.2024:
+ добавлен альтернативный вариант кода для 8 решения. Иногда на некоторых магазинах стоит сторонний код, который препятствует корректной обработке проверки условий выполнения по товарам. Поэтому переструктурировал логику проверки, чтобы если не работает основной, то альтернативный может помочь
+ для 8 решения введена корректировка количества загружаемых за раз товаров, установил по умолчанию 500 штук, так как большее количество вызывало в некоторых магазинах ошибки
+ добавлено 9 решение, которое является модулем будущей полноценной платформы для интернет — магазина на Тильде. Туда будут входить контроль отзывов, история покупок, бонусная программа, управление промокодами. 9 решение как раз и является модулем управления и контролем за активацией промокодов. Теперь есть возможность давать пользователю активировать промокод только 1 раз, например на первую покупку, а также создавать множество промокодов, каждый на свою группу товаров. Расчет скидки идет только на указанные товары. Своего рода сильно улучшенное 8 решение с внешней базой данных, обмен идет через API
Обновлено 8 решение + общее 05.11.2024:
+ добавлена поддержка учета вариаций товаров, если в качестве id на который работает промокод указана вариация товара, то тогда расчет скидки идет для нее, ранее код работал только на основной товар без вариаций. Если у вариации товара указана старая цена, то тогда она выбывает из расчета скидки
+ 1,2,3,4,5,6,7 решения, теперь самостоятельно определяют какая корзина установлена (окном, страница или пошаговая)
+ для всех решений по промокодам добавлена оптимизация расхода ресурсов. Когда корзина закрыта код неактивен
Обновлено 8 решение 31.10.2024:
+ теперь в переменную my_name_tovar1 можно добавлять много товаров, указывая только их ID, сумма скидки процентах будет считаться в зависимости от их наличия, а не от всей корзины
+ теперь скидка по промокоду не считается для указанных в переменной товарах, если у них стоит скидочная цена. Например 3 товара на которые можно применить промокод. 1 из них идет со скидкой, поэтому при наличии в корзине 3 товаров на которые действует промокод, скидка будет считать только для 2х из них, у которых обычная цена.
+ в переменную my_name_pomocode1 можно вводить любое количество промокодов, они все будут учитываться в корзине
+ теперь код сам определяет, какая перед ним корзина. Окном, пошаговая или отдельная страница
+ добавлена совместимость с решением по автоматическому добавлению дополнительных товаров при добавлении основного в корзину https://webvova.ru/blog/tilda/kak-dobavit-dopolnitelnye-tovary-v-korzine-v-tilda-pri-dobavlenii-osnovnogo/
Общее обновление от 16.08.2024
Добавлено 8 решение, благодаря которому появилась возможность менять величину скидки по промокоду. Тем самым появилась возможность применять промокод на конкретный товар в корзине, так чтобы скидка считалась только для него и не важно сколько товаров в корзине, процент посчитается только для конкретного товара, а не всей суммы корзины..
Общее обновление от 10.07.2024
Полностью обновил все решения. Теперь управление активацией и видимостью промокодов стало еще функциональнее, проверки товаров осуществляются по SKU, по габаритам товаров, по названию из каталога , по ID товаров. Перераспределил все решения, чтобы вам было понятнее, какое именно подойдет. Все это оказалось возможным благодаря вашей обратной связи при использовании решений в своих проектах.
#Это позволит решить следующие проблемы: можно ли в тильде задавать условия промокодов от определенной суммы, как добавить промокод для покупателя на тильде, как убрать сумму в корзине тильда, форма пожертвований на сайт для тильда
Еще материалы
-
Настоящий личный кабинет для Интернет — Магазина на Тильде
Готовые модули для расширения функционала интернет — магазина на Тильде. Промокоды, отзывы, история покупок, бонусная программа
-
Как добавить дополнительные товары в корзине в Tilda при добавлении основного
При добавлении основного товара в корзину Тильды, автоматически добавляем дополнительные товары
-
Изменение стоимости доната \ пожертвования в тильде для фонда помощи \ благотворительности
Начну пожалуй с самого главного, да, принимать оплаты для благотворительного фонда с изменением цены как в корзине так и на
-
Создаем табы (вкладки) внутри зероблок (zeroblock)
При помощи несложного кода, вы можете создать переключатель вкладок (табов) внутри зероблок. Причем кнопкой может быть что угодно!!!!!
-
СSS и Тильда, работаем правильно
Все что нужно знать для работы с CSS в онлайн — конструкторе сайтов Тильда. От удобного размещения и до синтаксиса с логикой работы.
-
Как сделать слайдер в Тильде внутри Zero block
Zero block tilda — это фантастический инструмент для интеграции пользовательских слайдеров в дизайн сайта. Он не только позволяет создавать слайды для демонстрации контента, но и позволяет контролировать
Купила решение номер 8. Понятная пошаговая инструкция, настроила все минут за 10. Очень рекомендую, 10 из 10 ⭐️
Большое спасибо Владимиру за помощь во внедрении решения 8, очень оперативно ответил на все вопросы, объяснил нюансы и очень быстро все настроил! Будем рекомендовать и обращаться! Успехов и новых клиентов 🙂
Благодарю за «решение 8». Быстро внедрили на сайт, Владимир очень заботливо и оперативно ответил на все вопросы и помог настроить. Теперь у нас супер-система с промокодами на конкретные товары и больше никакой путаницы. Все акции не суммируются с промокодами и все счастливы) алиллуйя, благодарю от души)
Я безмерно благодарна Владимиру за помощь в разработке кода под нас и помощи по внедрению кода в наш сайт. Оперативно, качественно, с душой и нацеленностью на результат. Очень рекомендую. С Владимиром у вас точно будет результат как у меня.
Все работает, связался с Владимиром, супер специалист — огромное, человеческое спасибо, помог настроить кастомное решение за один час
Обратились через телеграм к Владимиру за платной реализацией задачи: промокод + подарок + от определенной суммы. За два дня задача была решена, клиент доволен, мы — как представили агентства тоже довольны) Спасибо, Владимир!
Спасибо большое за ваш отзыв, благодаря вашей задаче теперь готовлю новое решение, так как ваша задача была довольно интересной и самое главное нужной для интернет — магазинов
Хотела поблагодарить за отличное решение по промокодам. Купила готовую реализацию для своего интернет — магазина. Возникли сложности с установкой, но написала Владимиру лично в телеграм. Он подсказал что нужно изменить в его готовом коде, чтобы заработало. На все ушло всего пару часов. большое вам спасибо!!!!!!!!!!
И вам большое спасибо за проявленный интерес. Если еще будут вопросы, пишите, я на связи.
А можно реализовать создание уникальных промокоды? Хочется доказать купон на скидку при первой покупке, но если сделать безлимитный промокод с фикс названием, то ведь покупатель может и во 2 раз его применить ? Можете подсказать как это решить ?
Поразмыслил я над вопросом. Нет нельзя. Например в ворпресс/woocommerce можно так как там есть контроль учетки и промокодов на его активацию конкретным юзером. В тильде ничего такого и нет. Да и кодом никак не отмледить даже если включили через JS передачу активаций в сессию.
Или я туплю, или тут есть лазейка:
если взять товар «стекло» применить промокод, выйти из корзины и закинуть товар «картон», то промокод применится.
применится и к картону)
Видимо есть ошибка, так как такой сценарий тестил в первую осередь:-). Но если что можно сделать очистку корзины при её зарытии
А можно сделать, чтобы при закрытии корзины не удалялись из неё все товары, а только сбрасывался промокод?
Данный комментарий не актуален, так как код я обновил 10.07.2024 и в нем теперь совершенно другой функционал. Но комментарий решил оставить для истории.
как быть, если нужно, чтобы при одновременном нахождении разных товаров в корзине, промокод применялся только на один товар?
Пока на мой взгляд никак. Промокоды применяются только ко всей сумме заказа. Мой вариант только не даст применить промокод в текущем исполнении.
Обновление от 16.08.24. Теперь в решении 8 появилась возможность реализовать такую штуку. Если в корзине пять товаров, а нам нужно применить промокод только на 1, то скидка посчитается только для него, остальные 4 товара будут идти по своей обычной цене
Добрый день.
Верно ли понимаю, что если при такой реализации покупатель сначала применит промокод (скидка зафиксируется в итоговой сумме), а потом вернется на страницы каталога и добавит товар в другой упаковке (на которую этот промокод распространяться не должен), то скидка все равно останется?
Вообще я тестировал такой вариант. И чтобы его исключить, настраивал уже саму корзину в тильда. Там есть опция удаления всего из заказа при закрытии корзины. А так можно скрипт допилить и на вариант отмены применения после закрытия корзины. Все зависит от вашей задачи
Данный комментарий не актуален, так как код я обновил 10.07.2024 и в нем теперь совершенно другой функционал. Но комментарий решил оставить для истории.