Шаг заказа
Стоит ли открыть форум? Напишите об этом по адресу admin@astracms.ru написав в теме "открыть форум". Я не автор движка и поэтому не могу консультировать так, как это делал бы он, но возможно у нас получится совместно находить решения.
Автор | Текст сообщения |
---|---|
Maksim |
24.08.2011 16:05
Подскажите пожалуйста, возможно ли каким-то способом сделать, "шаг заказа"? Например, цена указана за 1 метр, а заказать минимально можно 5 метров?
|
admin |
24.08.2011 18:18
Можно попробовать сделать доп. поле для указания шага. И потом его использовать в шаблоне корзины, например для умножения заданного количества на этот шаг.
|
Maksim |
25.08.2011 06:53
Отредактировано: 25.08.2011 06:54
Спасибо большое, сделал вычисления по этому принципу (последнее ваше сообщение). Но возникает проблема в итоговой сумме, и итоговой сумме в шаблоне уведомления о заказе. Подсчет идет от единицы товара и соответственно "умножение" пропадает в итоговой сумме, которая в том числе суммируется с доставкой. Может, есть выход из данной ситуации?
|
admin |
25.08.2011 11:45
Возможно лучше не просто умножать заданное количество на шаг. А корректировать само количество в зависимости от шага. Т.е. если задано количество товара 1, и у него шаг 5, то устанавливать принудительно количество кратное шагу и отправлять форму корзины для сохранения.
Либо пересчитывать общую сумму тоже в шаблоне. |
Maksim |
26.08.2011 08:37
Отредактировано: 26.08.2011 08:39
Не понял как это сделать. Подскажите пожалуйста, в каких шаблонах/файлах можно "откорректировать количество" в зависимости от шага? Если просто умножать количество на шаг в шаблоне корзина и заказа, то, не идет пересчет суммы, а при обновлении товар постоянно перемножается
|
admin |
26.08.2011 11:38
В шаблоне корзины, в цикле формируются записи о товарах с указание м количества.
... <input type="text" name="count_{$basket[i].id}" value="{$basket[i].count}"> ...Можно поставить условие чтобы проверять кратность количества заданному шагу. {if $basket[i].count % $basket[i].data.step >0} <input type="text" name="count_{$basket[i].id}" value="{$basket[i].count} + ($basket[i].data.step - $basket[i].count % $basket[i].data.step)}"> {assign var="recalc" value=true} {метка, что надо пересчитать заказ} {else} <input type="text" name="count_{$basket[i].id}" value="{$basket[i].count}"> {/if} ... {*где то после формы*} <script> {if $recalc} document.forms.basketform.submit(); {/if} </script> ...При первом открытии страницы, если количество задано некратное шагу, то оно увеличится до шага, и форма сразу обновится. Как-то так. |
Maksim |
29.08.2011 08:47
Спасибо большое за пример, только у меня ничего не получилось Просто скопировал этот код и исправил только - {$basket.count} + ($basket, убрав "}" после count и ничего не обновляется. <script> еще в literal заключил.
|
admin |
29.08.2011 13:05
Пробелы в выражениях лишние.
{if $basket[i].data.step>1 && $basket[i].count%5>0} <input type="text" name="count_{$basket[i].id}" value="{$basket[i].count+$basket[i].data.step-$basket[i].count%$basket[i].data.step}"> {assign var="recalc" value=true} {else} <input type="text" name="count_{$basket[i].id}" value="{$basket[i].count}"> {/if} |
Maksim |
29.08.2011 17:34
Спасибо большое все получилось, только кроме обновления самой страницы, добавляется изначально только один товар, но в корзине в количестве отображено 5, обновление происходит только когда нажать кнопку "обновить" в самой корзине.
{literal} <script> {if $recalc} document.forms.basketform.submit(); {/if} </script> {/literal}этот код запихнул в header страницы и в конце страницы, он также ни чего не дает |
admin |
29.08.2011 18:14
У формы надо чтобы был атрибут name="basketform"
Код скрита, должен быть где-то после формы, в конце страницы. |
admin |
29.08.2011 18:15
И в {literal} его брать не надо. Внутри же условие шаблонизатора стоит.
|
Maksim |
30.08.2011 09:10
Спасибо большое все здорово работает!
Подскажите пожалуйста, а как быть с блоком "корзина", есть ли возможность его обновлять? |
Maksim |
30.08.2011 09:10
Спасибо большое все здорово работает!
Подскажите пожалуйста, а как быть с блоком "корзина", есть ли возможность его обновлять? |
admin |
30.08.2011 20:38
При пересчете корзины меняется информация и в блоке.
|
Вы не можете добавить сообщение. Вам необходимо авторизироваться на сайте под своим логином либо зарегистрироваться.