Перейти к содержанию
Официальный форум поддержки Simpla

Изменение И Способы Доставки По Своим Условиям


Рекомендуемые сообщения

Прошу помочь с изменением способов доставки по нужным условиям. Например если добавлю чек бокс для клиента за мкад - доставка меняется на доставку с наценкой. Конкретно сейчас нужно чтобы по моему новому чекбоксу - самовывоз - он убирал доставку вообще при создании заказа.

 

Чек бокс делал по аналогии с этим https://simplashop.com/article/simpla-21-dopolnitelnye-chekboksy-v-tovare

 

Только у меня вместо is_new - pickup.

Изменено пользователем Asilis
Ссылка на сообщение
Поделиться на другие сайты

А зачем было добавлять чекбокс? Разве не достаточно добавить способ доставки "За МКАД" и указать в нем цену (наценку)?

Ссылка на сообщение
Поделиться на другие сайты

А зачем было добавлять чекбокс? Разве не достаточно добавить способ доставки "За МКАД" и указать в нем цену (наценку)?

Это для расширения функционала. Главная задача при присутствии в корзине любого товара с чекбоксом только самовывоз, автоматом скрывалась доставка. Чтобы люди не могли заказать с доставкой то, что только самовывоз. А чекбокс существующий делает в маркете.xml принт самовывоз онли.

Ссылка на сообщение
Поделиться на другие сайты

Ну и соответственно будет высвечиваться сообщение - в заказе присутствуют товары только для самовывоза, доставка невозможна. И стиль товара с чекбоксом самовывоз меняется цветом например на зеленый. Это уж для лучшего исполнения данной доработки. 

Ссылка на сообщение
Поделиться на другие сайты

Не понятно, зачем так мудрить? Два способа доставки человек всё равно не выберет. Если выбрал самовывоз, то в заказе будет только самовывоз. Другого способа доставки всё равно не будет.

P.S. Или у Вас есть товары, для которых доставки нет, а только самовывоз?

Чекбокс у вас в товаре или у клиента добавлен?

Изменено пользователем koteyka
Ссылка на сообщение
Поделиться на другие сайты

Не понятно, зачем так мудрить? Два способа доставки человек всё равно не выберет. Если выбрал самовывоз, то в заказе будет только самовывоз. Другого способа доставки всё равно не будет.

P.S. Или у Вас есть товары, для которых доставки нет, а только самовывоз?

Чекбокс у вас в товаре или у клиента добавлен?

 

Ну и соответственно будет высвечиваться сообщение - в заказе присутствуют товары только для самовывоза, доставка невозможна. И стиль товара с чекбоксом самовывоз меняется цветом например на зеленый. Это уж для лучшего исполнения данной доработки. 

 

Это для расширения функционала. Главная задача при присутствии в корзине любого товара с чекбоксом только самовывоз, автоматом скрывалась доставка. Чтобы люди не могли заказать с доставкой то, что только самовывоз. А чекбокс существующий делает в маркете.xml принт самовывоз онли.

Ссылка на сообщение
Поделиться на другие сайты

А если человек выберет один товар с самовывозом, а второй без. Как тогда Вы будете отображать доставку?

Ссылка на сообщение
Поделиться на другие сайты

Чекбокс (только самовывоз) - у меня в карточке товара кнопка добавлена. Бул тип, тру \ фолсе. Соответственно привязана к товару. В корзину можно вывести с товаром (нашел как свойства выводить, так же можно). Дальше скил не прокачен.



А если человек выберет один товар с самовывозом, а второй без. Как тогда Вы будете отображать доставку?

 

Ну и соответственно будет высвечиваться сообщение - в заказе присутствуют товары только для самовывоза, доставка невозможна. И стиль товара с чекбоксом самовывоз меняется цветом например на зеленый. Это уж для лучшего исполнения данной доработки. 

=))

Изменено пользователем Asilis
Ссылка на сообщение
Поделиться на другие сайты

В корзине можно делать так (но это при условии, что в корзине будет один товар)

{if !$purchase->ваш_чекбокс}
    Выводим способы доставки
{/if}
Изменено пользователем koteyka
Ссылка на сообщение
Поделиться на другие сайты

Ну так а я о чем?

А если человек выберет один товар с самовывозом, а второй без. Как тогда Вы будете отображать доставку?

Ссылка на сообщение
Поделиться на другие сайты

Ну так а я о чем?

Так я о том же. Если не один, то ->

 

Ну и соответственно будет высвечиваться сообщение - в заказе присутствуют товары только для самовывоза, доставка невозможна. И стиль товара с чекбоксом самовывоз меняется цветом например на зеленый. Это уж для лучшего исполнения данной доработки. 

Ссылка на сообщение
Поделиться на другие сайты

Тогда Вам нужно проверить, есть ли в корзине товар с галкой.

В шаблоне 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}
Ссылка на сообщение
Поделиться на другие сайты

У меня в шаблоне cart.tpl нет такого цикла.

{foreach from=$cart->purchases item=purchase}

...............................
{/foreach}

Попробую сам на усмотрение поставить.

Изменено пользователем Asilis
Ссылка на сообщение
Поделиться на другие сайты

 

Тогда Вам нужно проверить, есть ли в корзине товар с галкой.

В шаблоне 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}

Почти сделал. Сейчас напишу как в общем. Единственное, как это сделать в аякс, добавил позитию, удалилась доставка, убрал позицию (которая только доставка) -> доставка вернулась, без перезагрузки страницы?

Ссылка на сообщение
Поделиться на другие сайты

В общем вот так ->

 

 

в 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}
Все работает. Но статика. Как реализовать аякс?
Изменено пользователем Asilis
Ссылка на сообщение
Поделиться на другие сайты

Все работает. Но статика. Как реализовать аякс?

Писать аякс. Для примера можете взять файл design/Ваш_шаблон/js/ajax_cart.js

 

Ссылка на сообщение
Поделиться на другие сайты

Писать аякс. Для примера можете взять файл design/Ваш_шаблон/js/ajax_cart.js

 

Лол, но все работает и так))) Там ведь уже есть аякс на добавление и убирание товара, изменение цены в связи с этим. Собственно все норм работает.

Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...