Содержание
Ответом на вопрос — штатными средствами пока никак. Однако, при помощи 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.
Во все решения включено: готовый код, инструкция по установке, обратная связь по общим вопросам
🎓 Решение 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 товаров \ Названию товаров
Стоимость: 6 000 ₽
Приобрести здесь: https://web4life.ru/curs-promo/uni-promo
💪 Решение 7: Определенные промокоды можно применять только на конкретные категории, но на эти категории, можно применять и другие промокоды (общие), которые для всех товаров разрешены
Стоимость: 3 000 ₽
Приобрести здесь: https://web4life.ru/curs-promo/seven
💪 Решение 8: Промокод применяется для одного конкретного товара, но расчет суммы скидки идет только для него, поэтому не важно сколько разных товаров в корзине, скидка по промокоду посчитается только для него
Стоимость: 3 000 ₽
Приобрести здесь: https://web4life.ru/curs-promo/eight
Как со мной связаться
Если вы не нашли вашего решения в текущей статье, а также на страницах моих онлайн — уроков по промокодам в Тильда https://web4life.ru/curs-promo/ Тогда присылайте ваше ТЗ задание под ваш проект.
Пишите https://t.me/vbalakin буду рад помочь с доработкой.
История обновлений
Обновлено 16.08.2024: Добавлено 8 решение, благодаря которому появилась возможность менять величину скидки по промокоду. Тем самым появилась возможность применять промокод на конкретный товар в корзине, так чтобы скидка считалась только для него и не важно сколько товаров в корзине, процент посчитается только для конкретного товара, а не всей суммы корзины..
Обновлено 10.07.2024: Полностью обновил все решения. Теперь управление активацией и видимостью промокодов стало еще функциональнее, проверки товаров осуществляются по SKU, по габаритам товаров, по названию из каталога , по ID товаров. Перераспределил все решения, чтобы вам было понятнее, какое именно подойдет. Все это оказалось возможным благодаря вашей обратной связи при использовании решений в своих проектах.
#Это позволит решить следующие проблемы: можно ли в тильде задавать условия промокодов от определенной суммы, как добавить промокод для покупателя на тильде, как убрать сумму в корзине тильда, форма пожертвований на сайт для тильда
Еще материалы
-
Изменение стоимости доната \ пожертвования в тильде для фонда помощи \ благотворительности
Начну пожалуй с самого главного, да, принимать оплаты для благотворительного фонда с изменением цены как в корзине так и на
-
СSS и Тильда, работаем правильно
Все что нужно знать для работы с CSS в онлайн — конструкторе сайтов Тильда. От удобного размещения и до синтаксиса с логикой работы.
-
Создаем табы (вкладки) внутри зероблок (zeroblock)
При помощи несложного кода, вы можете создать переключатель вкладок (табов) внутри зероблок. Причем кнопкой может быть что угодно!!!!!
-
Как сделать слайдер в Тильде внутри Zero block
Zero block tilda — это фантастический инструмент для интеграции пользовательских слайдеров в дизайн сайта. Он не только позволяет создавать слайды для демонстрации контента, но и позволяет контролировать
-
Создаем слайдер в Тильде из ZeroBlock (зеро блок) и html
Всем добрый день, вариантов создания слайдера в Тильде очень много, начиная от общедоступных и заканчивая теми, которые уже есть в
-
Управление видимостью полей в корзине через скрипт
Как изменить корзину в Тильда при помощи своего кода под скрытие и показ нужных полей
Обратились через телеграм к Владимиру за платной реализацией задачи: промокод + подарок + от определенной суммы. За два дня задача была решена, клиент доволен, мы — как представили агентства тоже довольны) Спасибо, Владимир!
Спасибо большое за ваш отзыв, благодаря вашей задаче теперь готовлю новое решение, так как ваша задача была довольно интересной и самое главное нужной для интернет — магазинов
Хотела поблагодарить за отличное решение по промокодам. Купила готовую реализацию для своего интернет — магазина. Возникли сложности с установкой, но написала Владимиру лично в телеграм. Он подсказал что нужно изменить в его готовом коде, чтобы заработало. На все ушло всего пару часов. большое вам спасибо!!!!!!!!!!
И вам большое спасибо за проявленный интерес. Если еще будут вопросы, пишите, я на связи.
А можно реализовать создание уникальных промокоды? Хочется доказать купон на скидку при первой покупке, но если сделать безлимитный промокод с фикс названием, то ведь покупатель может и во 2 раз его применить ? Можете подсказать как это решить ?
Поразмыслил я над вопросом. Нет нельзя. Например в ворпресс/woocommerce можно так как там есть контроль учетки и промокодов на его активацию конкретным юзером. В тильде ничего такого и нет. Да и кодом никак не отмледить даже если включили через JS передачу активаций в сессию.
Или я туплю, или тут есть лазейка:
если взять товар «стекло» применить промокод, выйти из корзины и закинуть товар «картон», то промокод применится.
применится и к картону)
Видимо есть ошибка, так как такой сценарий тестил в первую осередь:-). Но если что можно сделать очистку корзины при её зарытии
А можно сделать, чтобы при закрытии корзины не удалялись из неё все товары, а только сбрасывался промокод?
Данный комментарий не актуален, так как код я обновил 10.07.2024 и в нем теперь совершенно другой функционал. Но комментарий решил оставить для истории.
Данный комментарий не актуален, так как код я обновил 10.07.2024 и в нем теперь совершенно другой функционал. Но комментарий решил оставить для истории.
как быть, если нужно, чтобы при одновременном нахождении разных товаров в корзине, промокод применялся только на один товар?
Пока на мой взгляд никак. Промокоды применяются только ко всей сумме заказа. Мой вариант только не даст применить промокод в текущем исполнении.
Обновление от 16.08.24. Теперь в решении 8 появилась возможность реализовать такую штуку. Если в корзине пять товаров, а нам нужно применить промокод только на 1, то скидка посчитается только для него, остальные 4 товара будут идти по своей обычной цене
Добрый день.
Верно ли понимаю, что если при такой реализации покупатель сначала применит промокод (скидка зафиксируется в итоговой сумме), а потом вернется на страницы каталога и добавит товар в другой упаковке (на которую этот промокод распространяться не должен), то скидка все равно останется?
Вообще я тестировал такой вариант. И чтобы его исключить, настраивал уже саму корзину в тильда. Там есть опция удаления всего из заказа при закрытии корзины. А так можно скрипт допилить и на вариант отмены применения после закрытия корзины. Все зависит от вашей задачи
Данный комментарий не актуален, так как код я обновил 10.07.2024 и в нем теперь совершенно другой функционал. Но комментарий решил оставить для истории.