Осваиваю ocStore не так давно, возникла необходимость использовать имеющиеся дисконтные карты розничного магазина (на базе которого создан интернет-магазин), номер одной из которых покупатель должен вводить при регистрации.
Имеющиеся модули по этой тематике не совсем подходят, так как отсутствует нужный для меня функционал.
Нашел следующий выход - взял неиспользуемую ранее переменную "fax" (номер факса) в регистрационных данных покупателя, заменил текст в форме на "Дисконтная карта", и покупатель сам вводит номер имеющейся у него дисконтной карты, выданной ранее в розничном магазине.
Номер 13-значный, первые 7 цифр - префикс (если нет на руках дисконтной карты и просто захочется ввести произвольный набор цифр - скидки не будет).
При оформлении заказа в поле "Купон" (название поменяно на "Дисконтная карта") должен подставиться номер введенной ДК из переменной "fax", т.е.
Подскажите, какой код надо добавить в файл \catalog\view\theme\default\template\checkout\card.tpl (и в каком месте)
Мои видение алгоритма:
1. Новой переменной "coupon_temp" присвоим значение переменной "fax".
2. Если переменная "coupon_temp" не пустая (заполнено значение "fax" или покупатель ввел номер карты при оформлении заказа без регистрации), имеющейся переменной "coupon" (может быть, имя немного отличается - это переменная, хранящая значение купона, введенное в поле "Купон") присвоим первые 7 символов переменной "coupon_temp".
Все.
Дальше идет стандартный алгоритм - по полученному значению в базе ищется ищется подходящий купон ,если находится - применяется определенная для него скидка.
В моем случае маски дисконтных карт следующие:
2000001хххххх - 3%
2000002хххххх - 5%
2000003хххххх - 7%
В базе заведены такие купоны:
"2000001" - 3%
"2000002" - 5%
"2000003" - 7%