Asilis Опубликовано 29 января, 2017 Жалоба Поделиться Опубликовано 29 января, 2017 (изменено) Прошу помочь с изменением способов доставки по нужным условиям. Например если добавлю чек бокс для клиента за мкад - доставка меняется на доставку с наценкой. Конкретно сейчас нужно чтобы по моему новому чекбоксу - самовывоз - он убирал доставку вообще при создании заказа. Чек бокс делал по аналогии с этим https://simplashop.com/article/simpla-21-dopolnitelnye-chekboksy-v-tovare Только у меня вместо is_new - pickup. Изменено 29 января, 2017 пользователем Asilis Цитата Ссылка на сообщение Поделиться на другие сайты
koteyka Опубликовано 29 января, 2017 Жалоба Поделиться Опубликовано 29 января, 2017 А зачем было добавлять чекбокс? Разве не достаточно добавить способ доставки "За МКАД" и указать в нем цену (наценку)? Цитата Ссылка на сообщение Поделиться на другие сайты
Asilis Опубликовано 29 января, 2017 Автор Жалоба Поделиться Опубликовано 29 января, 2017 А зачем было добавлять чекбокс? Разве не достаточно добавить способ доставки "За МКАД" и указать в нем цену (наценку)?Это для расширения функционала. Главная задача при присутствии в корзине любого товара с чекбоксом только самовывоз, автоматом скрывалась доставка. Чтобы люди не могли заказать с доставкой то, что только самовывоз. А чекбокс существующий делает в маркете.xml принт самовывоз онли. Цитата Ссылка на сообщение Поделиться на другие сайты
Asilis Опубликовано 29 января, 2017 Автор Жалоба Поделиться Опубликовано 29 января, 2017 Ну и соответственно будет высвечиваться сообщение - в заказе присутствуют товары только для самовывоза, доставка невозможна. И стиль товара с чекбоксом самовывоз меняется цветом например на зеленый. Это уж для лучшего исполнения данной доработки. Цитата Ссылка на сообщение Поделиться на другие сайты
koteyka Опубликовано 29 января, 2017 Жалоба Поделиться Опубликовано 29 января, 2017 (изменено) Не понятно, зачем так мудрить? Два способа доставки человек всё равно не выберет. Если выбрал самовывоз, то в заказе будет только самовывоз. Другого способа доставки всё равно не будет.P.S. Или у Вас есть товары, для которых доставки нет, а только самовывоз?Чекбокс у вас в товаре или у клиента добавлен? Изменено 29 января, 2017 пользователем koteyka Цитата Ссылка на сообщение Поделиться на другие сайты
Asilis Опубликовано 29 января, 2017 Автор Жалоба Поделиться Опубликовано 29 января, 2017 Не понятно, зачем так мудрить? Два способа доставки человек всё равно не выберет. Если выбрал самовывоз, то в заказе будет только самовывоз. Другого способа доставки всё равно не будет.P.S. Или у Вас есть товары, для которых доставки нет, а только самовывоз?Чекбокс у вас в товаре или у клиента добавлен? Ну и соответственно будет высвечиваться сообщение - в заказе присутствуют товары только для самовывоза, доставка невозможна. И стиль товара с чекбоксом самовывоз меняется цветом например на зеленый. Это уж для лучшего исполнения данной доработки. Это для расширения функционала. Главная задача при присутствии в корзине любого товара с чекбоксом только самовывоз, автоматом скрывалась доставка. Чтобы люди не могли заказать с доставкой то, что только самовывоз. А чекбокс существующий делает в маркете.xml принт самовывоз онли. Цитата Ссылка на сообщение Поделиться на другие сайты
koteyka Опубликовано 29 января, 2017 Жалоба Поделиться Опубликовано 29 января, 2017 А если человек выберет один товар с самовывозом, а второй без. Как тогда Вы будете отображать доставку? Цитата Ссылка на сообщение Поделиться на другие сайты
Asilis Опубликовано 29 января, 2017 Автор Жалоба Поделиться Опубликовано 29 января, 2017 (изменено) Чекбокс (только самовывоз) - у меня в карточке товара кнопка добавлена. Бул тип, тру \ фолсе. Соответственно привязана к товару. В корзину можно вывести с товаром (нашел как свойства выводить, так же можно). Дальше скил не прокачен.А если человек выберет один товар с самовывозом, а второй без. Как тогда Вы будете отображать доставку? Ну и соответственно будет высвечиваться сообщение - в заказе присутствуют товары только для самовывоза, доставка невозможна. И стиль товара с чекбоксом самовывоз меняется цветом например на зеленый. Это уж для лучшего исполнения данной доработки. =)) Изменено 29 января, 2017 пользователем Asilis Цитата Ссылка на сообщение Поделиться на другие сайты
koteyka Опубликовано 29 января, 2017 Жалоба Поделиться Опубликовано 29 января, 2017 (изменено) В корзине можно делать так (но это при условии, что в корзине будет один товар) {if !$purchase->ваш_чекбокс} Выводим способы доставки {/if} Изменено 29 января, 2017 пользователем koteyka Цитата Ссылка на сообщение Поделиться на другие сайты
Asilis Опубликовано 29 января, 2017 Автор Жалоба Поделиться Опубликовано 29 января, 2017 Затестирую сейчас... Цитата Ссылка на сообщение Поделиться на другие сайты
Asilis Опубликовано 29 января, 2017 Автор Жалоба Поделиться Опубликовано 29 января, 2017 Затестирую сейчас...Стоп, а если не один? Цитата Ссылка на сообщение Поделиться на другие сайты
koteyka Опубликовано 29 января, 2017 Жалоба Поделиться Опубликовано 29 января, 2017 Ну так а я о чем?А если человек выберет один товар с самовывозом, а второй без. Как тогда Вы будете отображать доставку? Цитата Ссылка на сообщение Поделиться на другие сайты
Asilis Опубликовано 29 января, 2017 Автор Жалоба Поделиться Опубликовано 29 января, 2017 Ну так а я о чем?Так я о том же. Если не один, то -> Ну и соответственно будет высвечиваться сообщение - в заказе присутствуют товары только для самовывоза, доставка невозможна. И стиль товара с чекбоксом самовывоз меняется цветом например на зеленый. Это уж для лучшего исполнения данной доработки. Цитата Ссылка на сообщение Поделиться на другие сайты
Asilis Опубликовано 29 января, 2017 Автор Жалоба Поделиться Опубликовано 29 января, 2017 Кстати, куда тот кусок кода вставлять? В каком файле? А то я не настолько знаток....(( Цитата Ссылка на сообщение Поделиться на другие сайты
koteyka Опубликовано 29 января, 2017 Жалоба Поделиться Опубликовано 29 января, 2017 Тогда Вам нужно проверить, есть ли в корзине товар с галкой.В шаблоне cart.tpl, в цикле {foreach from=$cart->purchases item=purchase} ............................... {/foreach} сделайте, например так {$ok = NULL} {foreach from=$cart->purchases item=purchase} {if $purchase->Ваш_чекбокс} {$ok = 1} {/if} ............................... {/foreach} Затем там, где выводятся доставки сделать условие {if !$ok} Выводим доставки {/if} Цитата Ссылка на сообщение Поделиться на другие сайты
Asilis Опубликовано 29 января, 2017 Автор Жалоба Поделиться Опубликовано 29 января, 2017 (изменено) У меня в шаблоне cart.tpl нет такого цикла.{foreach from=$cart->purchases item=purchase}...............................{/foreach}Попробую сам на усмотрение поставить. Изменено 29 января, 2017 пользователем Asilis Цитата Ссылка на сообщение Поделиться на другие сайты
Asilis Опубликовано 29 января, 2017 Автор Жалоба Поделиться Опубликовано 29 января, 2017 Тогда Вам нужно проверить, есть ли в корзине товар с галкой.В шаблоне cart.tpl, в цикле {foreach from=$cart->purchases item=purchase} ............................... {/foreach} сделайте, например так {$ok = NULL} {foreach from=$cart->purchases item=purchase} {if $purchase->Ваш_чекбокс} {$ok = 1} {/if} ............................... {/foreach} Затем там, где выводятся доставки сделать условие {if !$ok} Выводим доставки {/if} Почти сделал. Сейчас напишу как в общем. Единственное, как это сделать в аякс, добавил позитию, удалилась доставка, убрал позицию (которая только доставка) -> доставка вернулась, без перезагрузки страницы? Цитата Ссылка на сообщение Поделиться на другие сайты
koteyka Опубликовано 30 января, 2017 Жалоба Поделиться Опубликовано 30 января, 2017 Единственное, как это сделать в аяксНаписать аякс для этого. Как же еще? Цитата Ссылка на сообщение Поделиться на другие сайты
Asilis Опубликовано 30 января, 2017 Автор Жалоба Поделиться Опубликовано 30 января, 2017 (изменено) В общем вот так -> в cart.tpl после {if $cart->purchases}ставим -> {$ok = NULL}{foreach $cart->purchases as $purchase} {if $purchase->product->pickup - мой чекбокс в товаре} {$ok = 1} {/if}{/foreach} там же ниже <div id="fn-ajax_deliveries"> {include file='cart_deliveries.tpl'}</div> заменяем на -> {if !$ok} {* Доставка *} <div id="fn-ajax_deliveries"> {include file='cart_deliveries.tpl'} </div>{else}{* Самовывоз *} <div id="fn-ajax_deliveries"> {include file='cart_deliveries2.tpl'} </div>{/if}Все работает. Но статика. Как реализовать аякс? Изменено 30 января, 2017 пользователем Asilis Цитата Ссылка на сообщение Поделиться на другие сайты
koteyka Опубликовано 30 января, 2017 Жалоба Поделиться Опубликовано 30 января, 2017 Все работает. Но статика. Как реализовать аякс?Писать аякс. Для примера можете взять файл design/Ваш_шаблон/js/ajax_cart.js Цитата Ссылка на сообщение Поделиться на другие сайты
Asilis Опубликовано 30 января, 2017 Автор Жалоба Поделиться Опубликовано 30 января, 2017 Понял, спасибо! Буду учить ajax. Цитата Ссылка на сообщение Поделиться на другие сайты
Asilis Опубликовано 30 января, 2017 Автор Жалоба Поделиться Опубликовано 30 января, 2017 Писать аякс. Для примера можете взять файл design/Ваш_шаблон/js/ajax_cart.js Лол, но все работает и так))) Там ведь уже есть аякс на добавление и убирание товара, изменение цены в связи с этим. Собственно все норм работает. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.