Простая корзина. Шаблоны
ВНИМАНИЕ! Я предполагал использование только tpl-шаблонов.
В папке tpls/webforms/ создать папку basket
В нее помещаем шаблон корзины и блока заказов
<?php
$FORMS = array();
$FORMS['basket'] = <<<END
<form action="/webforms/basket_change/" method="post" name="basket_frm">
<h2>Товары в корзине</h2>
<table border="1" cellspacing="2" width="100%" rules="rows">
<tr style="background-color: #CCCCCC">
<td><b>ID</b></td>
<td><b>Наименование</b></td>
<td><b>Цена</b></td>
<td><b>Количество</b></td>
<td><b>Итого</b></td>
<td><b>Удалить</b></td>
</tr>
%items%
</table>
<b>Всего к оплате: %order_price%</b>
<br />
<br />
<input type="submit" class="button button_gray" value="Пересчитать корзину" name="recalc" />
<input type="submit" class="button button_red" value="Оформить заказ" name="order" />
<input type="hidden" name="from_page" value="%pre_lang%/webforms/basket" />
</form>
<br><br>
END;
$FORMS['basket_empty'] = <<<END
<p>Корзина пуста</p>
END;
$FORMS['basket_item'] = <<<END
<tr>
<td>%id%</td>
<td>%name%</td>
<td>%price% р.</td>
<td><input type="text" name="basket_items[%id%][count]" value="%count%" maxlength="3" style="width:30px; border:1px sold #CCCCCC;" /></td>
<td>%price_total%</td>
<td><input type="checkbox" name="basket_items[%id%][remove]" value="1" style="width: 15px; height: 15px;" /></td>
</tr>
END;
$FORMS['addtobasket'] = <<<END
<a class="a_button button_red" style="width: 60px" href="%link%">Заказать</a>
END;
$FORMS['order'] = <<<END
<form action="/webforms/order_do/" method="post" name="basket_frm">
<h2>Оформление заказа</h2>
%ordered_items%
<br />
<br />
<p>Укажите на выбор удобную вам контактную информацию, чтобы наши менеджеры могли связаться с вами</p>
<table>
<tr><td>Ваше имя</td><td><input type="text" name="fio"></td></tr>
<tr><td>Контактный e-mail</td><td><input type="text" name="email"></td></tr>
<tr><td>Телефон</td><td><input type="text" name="phone"></td></tr>
</table>
<textarea name="comments"></textarea>
<input type="submit" class="button button_red" value="Оформить заказ" name="order" />
<input type="hidden" name="from_page" value="%pre_lang%/webforms/basket" />
</form>
<br><br>
END;
$FORMS['items_block'] = <<<END
<table border="1" cellspacing="2" width="100%" rules="rows">
<tr style="background-color: #CCCCCC">
<td><b>ID</b></td>
<td><b>Наименование</b></td>
<td><b>Цена</b></td>
<td><b>Количество</b></td>
<td><b>Итого</b></td>
</tr>
%items%
</table>
<b>Всего к оплате: %order_price%</b>
END;
$FORMS['order_empty'] = <<<END
<p>Ваш заказ отправлен. Менеджер свяжется с вами в ближайшее время</p>
END;
$FORMS['order_item'] = <<<END
<tr>
<td>%id%</td>
<td>%name%</td>
<td>%price% р.</td>
<td>%count%</td>
<td>%price_total%</td>
</tr>
END;
?>
Собираем все вместе.
Поскольку в моем случае использовалась линейка PRO, в ней имеется модуль фотогалереи. Его и было решено использовать в качестве каталога.
К типу данных "Фотография" добавить поле "Цена", с именем "price" и типа "Цена".
В шаблоне вывода товара добавить вывод цены и ссылки на добавление в корзину
<p>Цена %price%P </p>
<p>%webforms addtobasket(%id%)%</p>
При необходимости вывести краткую форму корзины создать соотв. шаблон. Переход на страницу корзины /webforms/basket/
Конечно, не забыть в permissons.custom.php перечислить все вновь добавленные методы