Шаг заказа
Стоит ли открыть форум? Напишите об этом по адресу 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
Спасибо большое за пример, только у меня ничего не получилось
|
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
При пересчете корзины меняется информация и в блоке.
|
Вы не можете добавить сообщение. Вам необходимо авторизироваться на сайте под своим логином либо зарегистрироваться.
