Существуют три типа списков товаров:
Доступ к этим спискам осуществляется через объект nc_netshop:
Для совершения операций над отдельными объектами либо списками объектов необходимо использовать следующие методы:
add($item_id, $class_id) — добавление товара
remove($item_id, $class_id) — удаление товара из списка
remove_by_index($index, $sort = 'ASC') — удаление товара из списка, с указанием порядкового номера
clear() — удаление из списка всех товаров
get_all($sort = 'ASC', $limit = 3) — вывод списка товаров
get($index, $sort = 'ASC') — вывод товара из списка, с указанием порядкового номера
toggle($item_id, $class_id) — добавление или удаление товара в список, используя одну кнопку или ссылку
Приведём примеры использования методов.
Для вывода списка последних просмотренных товаров воспользуйтесь виджетом «Интернет-магазин: Последние просмотренные товары» либо самостоятельно настройте отображение списка товаров при помощи метода $netshop->goodslist_recent->get_all);
Пример формирования списка просмотренных товаров:
<?php require_once($nc_core->MODULE_FOLDER . 'netshop/function.inc.php'); $netshop = nc_netshop::get_instance(); $recent_goods = $netshop->goodslist_recent->get_all('DESC'); ?> <div class="tpl-block"> <? if (count($recent_goods)) { ?> <?php foreach ($recent_goods as $item) { $item = nc_netshop_item::by_id($item['Class_ID'], $item['Item_ID']); ?> <div class="item"> <a class="link" href="<?= nc_message_link($item['Message_ID'], $item['Class_ID']); ?>"> <div class="title"> <?= $item['Name']; ?> </div> <div class="description"><?= $item['Note']; ?></div> <div class="image"><img src="<?= $item['BigImage']; ?>"></div> </a> </div> <?php } ?> <?php } ?> </div>
Для того, чтобы добавить товар в избранное, в ссылке нужно прописать вызов метода $nc_netshop->goodslist_favorite и метод get_toggle_action_url. В метод get_toggle_action_url необходимо передать значения переменных $item_id, $class_id, номер объекта и номер класса.
Ссылка формируется следующим образом:
<a href='<?= $netshop->goodslist_favorite->get_toggle_action_url($item['Message_ID'], $item['Class_ID']); ?>'>В избранное</a>
Для вывода списка товаров воспользуйтесь виджетом «Интернет-магазин: Сравнение товаров», настроив его нужным вам образом, либо самостоятельно сформируйте вывод при помощи метода $netshop->goodslist_favorite->get_all();
Пример формирования списка просмотренных товаров:
<?php require_once($nc_core->MODULE_FOLDER . 'netshop/function.inc.php'); $netshop = nc_netshop::get_instance(); $recent_goods = $netshop->goodslist_favorite->get_all('DESC'); ?> <div class="tpl-block"> <? if (count($recent_goods)) { ?> <?php foreach ($recent_goods as $item) { $item = nc_netshop_item::by_id($item['Class_ID'], $item['Item_ID']); ?> <div class="item"> <a class="link" href="<?= nc_message_link($item['Message_ID'], $item['Class_ID']); ?>"> <div class="title"> <?= $item['Name']; ?> </div> <div class="description"><?= $item['Note']; ?></div> <div class="image"><img src="<?= $item['BigImage']; ?>"></div> </a> </div> <?php } ?> <?php } ?> </div>
Механизм сравнения товаров похож добавлению в избранное, за исключением того, что здесь необходимо использовать метод $nc_netshop->goodslist_compare.
Для добавления товара в список сравнения нужно использовать метод get_add_action_url($item_id, $class_id), для удаления из списка get_remove_action_url($item_id, $class_id), в методе необходимо передать значения переменных $item_id, $class_id, номер объекта и номер класса.
Пример формирования списка товаров, добавленных для сравнения:
<?php require_once($nc_core->MODULE_FOLDER . 'netshop/function.inc.php'); $netshop = nc_netshop::get_instance(); $recent_goods = $netshop->goodslist_compare->get_all('DESC'); ?> <div class="tpl-block"> <? if (count($recent_goods)) { ?> <?php foreach ($recent_goods as $item) { $item = nc_netshop_item::by_id($item['Class_ID'], $item['Item_ID']); ?> <div class="item"> <a class="link" href="<?= nc_message_link($item['Message_ID'], $item['Class_ID']); ?>"> <div class="title"> <?= $item['Name']; ?> </div> <div class="description"><?= $item['Note']; ?></div> <div class="image"><img src="<?= $item['BigImage']; ?>"></div> </a> </div> <?php } ?> <?php } ?> </div>
Комментарии 5
Для этих задач есть шаблоны компонентов и класс аггрегатор