Купон в checkout
Добрый день!
Вывел содержимое корзины (cart.html) в checkout.html через:
{$mycart = $wa->shop->cart()} {$mycart_items = $mycart->items()} {$mycart_total = $mycart->total()} {$mycart_discount = $mycart->discount()}
Проблема с применением купона - никак не получается, он его просто не обрабатывает. Отрывок из checkout.html:
{$checkout_data = $wa->storage('shop/checkout')} {$coupon_code = $checkout_data.coupon_code} <form method="post"> <tr class="no-border" id="discount-row"> <td colspan="2" id="apply-coupon-code" class="codecoupon no-border"> <input type="text" name="coupon_code" value="{$checkout_data.coupon_code|escape}" class="form-control"> <input type="submit" value="[`Apply`]"> </td> </tr> </form>
Через cart.html всё работает, а в checkout.html не хочет. Как исправить? Не понимаю, как передать значение value и куда? В $wa->storage('shop/checkout') хранится скидка в абсолютной величине без указания купона
cart.js схож с тем, что у темы default
4 ответа
для form сделайте action в cart
И еще:
{$mycart = $wa->shop->cart()}
Эта строка получает достаточно информации о товарах и т.д.
не дергайте лишний раз базу
{$mycart|wa_dump} Вам в руки :)
Точно, забыл про <form action... только возникает другая проблема - после Submit справедливо, но совершенно не нужно перекидывает на /cart/, от которого мне надо избавиться. Я проверял через редирект в nginx: /cart/ -> /checkout/ - скрипты корзины перестают работать, ведь все данные сливаются в /cart/.
Есть ли более простой способ без костылей использовать данные, подгружаемые в cart.html, в checkout.html?
Предполагается, что пользователь попадает только в /checkout/ без возможности посещения /cart/ и последующих /checkout/[shipping/payment/confirmation]
Не совсем понял про достаточность информации, здесь мне не хватает квалификации... $cart = NULL в checkout.html, поэтому приходится запрашивать корзину. Купоны вообще лежат не вне корзины.
На {$mycart|wa_dump} в checkout.html получил:
А вот {$cart|wa_dump} в cart.html выводит полноценный массив данных
именно полноценный массив данных из необходимой переменной
совет: AJAX отправка форм
посмотрите кк реализовано добавление в корзину товара без перезагрузки страницы. сделайте то же самое.
да, много JS надо писать, если хотите все сделать красиво
еще вариант: load или AJAX загрузка данных со страницы (снова JS)
но я б остановился на первом варианте. страшно не люблю работать с подгрузкой страниц
Застрял в cart.js - не знаю, что передавать в $.post для data? coupon_name существует, лог 'test' в консоли есть.
Для других действий (удаление товара, изменение количества) берется data-id, то здесь мне непонятно, как и что передавать?
Как запустить updateCart?