Astra.CMS

 

 

Форум » Приемы конструирования и интеграции дизайна

Плагин "Доставка" - рассчет стоимости доставки

Стоит ли открыть форум? Напишите об этом по адресу admin@astracms.ru написав в теме "открыть форум". Я не автор движка и поэтому не могу консультировать так, как это делал бы он, но возможно у нас получится совместно находить решения.

Автор Текст сообщения
Stepan

Stepan
Сообщений: 47

Подскажите, пожалуйста, если к примеру у меня доставка товара стоит по разному для каждого товара, как мне это указать так, чтобы в корзине считалась, автоматически, стоимость доставки?

указать стоимость доставки в зависимости от суммы - не пойдет, потому как доставка рассчитывается исходя из тарифов, размера и веса товара и еще нескольких параметров, которые постоянно меняются.
 
aristoc

admin
Сообщений: 1159

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

Stepan
Сообщений: 47

ага, спасибо получилось вот что:
{if $basket}

<form method="post">
<table width="100%" border="1">
<tr>
<td>Наименование товара</td>
<td>Кол-во</td>
<td>Цена</td>
<td>Удалить</td>
</tr>
{section name=i loop=$basket}
<tr>
<td>{$basket[i].data.name}</td>
<td><input type="text" name="count_{$basket[i].id}" value="{$basket[i].count}"></td>
  <td>{if $courier.id==1}{$basket[i].sum} {$valute}
    
    </td>
  <td><a href="{$basket[i].deletelink}">Удалить</a></td>
</tr>
    {else}
  <b>Цена заказа:</b> {$basket[i].data.price}<br />
  <b>Стоимость доставки:</b> {$basket[i].data.cour}<br />
  <b>Итого:<b> {math equation="(x + y)*z" x=$basket[i].data.cour y=$basket[i].data.price z=$basket[i].count assign="summ"}
  {$summ} {$valute}
   
</td>
<td><a href="{$basket[i].deletelink}">Удалить</a></td>
</tr>
  
    {/if}
  {/section}

</table>
 
   {if $courier.id==1}  
<p>Товаров в корзине: {$all.count}, на общую сумму: {$all.sum} {$valute}.</p>

<p align="right">
{submit caption="Пересчитать"}
{hidden name="action" value="recalcbasket"}
</p>
    {else}
<p>Товаров в корзине: {$all.count}, на общую сумму:
   {$all.sum} {$valute}.</p>

<p align="right">
{submit caption="Пересчитать"}
{hidden name="action" value="recalcbasket"}
</p>
  {/if}
  
  <p>
  {if $couriers}
  <p>Доставка:</p>
<select name="courier" onchange="this.form.submit()">
{html_options options=$couriers selected=$courier.id}
</select>
{/if}
</p>
   
</form>
единственное что пока не дошел - как потом сложить $all.sum и все стоимости доставки, у меня в переменную $summ записываются и потом к сумме заказа добавляется только последняя стоимость доставки... как-то в массив записывать?
 
aristoc

admin
Сообщений: 1159

Ну так же и сложить, через math или assign.
{assign var="fullsum" value=$all.sum+$summ}
{$fullsum}
 
Stepan

Stepan
Сообщений: 47

да, конечно пробовал ))  но, если товаров несколько, то берется только последнее значение переменной $summ, а предыдущие не учитываются, те данные перезаписываются в эту переменную...
каким образом сделать чтобы значения записывались в массив? чтобы потом просто сложить все что записалось в $summ?
 
aristoc

admin
Сообщений: 1159

Нужно просто $summ не перезаписывать в цикле, а наращивать. В формулу где math надо добавить еще сложение с $summ. Это же арифметика.
 
Stepan

Stepan
Сообщений: 47

admin писал(а):
Нужно просто $summ не перезаписывать в цикле, а наращивать.
Это понятно.
admin писал(а):
В формулу где math надо добавить еще сложение с $summ.
это не понятно как реализовать.

 
aristoc

admin
Сообщений: 1159

Что тут непонятного? Добавить в формулу сложение с текущим значением summ.
 

Вы не можете добавить сообщение. Вам необходимо авторизироваться на сайте под своим логином либо зарегистрироваться.