Вывод списка продуктов из БД на страницу магазина
Здравствуйте. Вот задача: нужно сделать выборку продуктов из БД(здесь все понятно) и средствами вебасиста вывести все это дело на страницу магазина. Средствами вебасиста - это значит что вебасист будет работать с этим набором продуктов как с результатом поиска или просомтра категории... Вот собственно вопрос - как ему подсунуть этот набор? Нашел класс - shopProductsCollection. Что он делает? Я так понял, что в конструктор передается запрос для выборки, так? Если да - то в каком виде должен быть представлен запрос? Выборка будет осуществляться по категориям и характеристикам(как минимум, то есть нужны сложные SQL запросы). Заранее спасибо
Эта тема в архиве. Добавление комментариев к ней отключено.
23 ответа
array(12,23,34) — массив id товаров
'id/12,23,34' — альтернативная запись того же самого
'related/cross_selling/12' — рекомендуемые (cross-selling) товары для товара с id=12
'related/upselling/23' — рекомендуемые (upselling) товары для товара с id=23
'category/208' — товары из категории с id = 208
'search/query=style' — результат поиска товаров по слову 'style'
'search/tag=style' — результат поиска товаров по тегу 'style'
'search/type_id=1' — результат поиска по любому полю таблицы shop_product, например, type_id
'search/name=SuperProduct' — аналогичный поиск по полю name (точное совпадение)
'search/color.value_id=6' — поиск по значению с id=6 характеристики типа "чекбокс" с кодом color
'tag/style' — аналог 'search/tag=style'
'type/2' — выбор товаров, которым присвоен тип с id=2
Вся эта информация взята из исходного кода методов класса коллекции, имена которых заканчиваются на Prepare: categoryPrepare, idPrepare, relatedPrepare, searchPrepare, tagPrepare, typePrepare.
Добрый день!
А можете расшифровать что означает
offset, limit, options ?
То же самое, но через API, не работает или ограниченно работает. Добавил такое предложение по доработке.
Создал экшен класса shopFrontendAction, в нем - примерно следующее:
$model = new shopProductModel();
$products = $model->query('SELECT id FROM shop_product');
$hash = 'id/';
foreach($products as $product)
{
$hash .= $product['id'] . ', ';
}
$this->setCollection(new shopProductsCollection($hash));
if($_POST['searchName'] != null)
$this->view->assign('title', $_POST['searchName']);
else
$this->view->assign('title', '');
$this->view->assign('frontend_search', shopMysearchPlugin::viewSearch());
$this->setThemeTemplate('search.html');
Как и хотел - отображает выбранные товары(в данном случае все) средствами вебасиста.
Можете написать мне на danyfir@ya.ru , нужна ваша помощь (заплачу)
{$discounted = $wa->shop->products("search/compare_price>0")}
Пример:
$collection = new shopProductsCollection($hash);
$collection->orderBy('sku_count', 'DESC'); //сортировка по убыванию кол-ва артикулов у товара
Такой же вопрос. Вам удалось найти решение?
Всем привет, шарюсь в phpMyAdmin так вот у меня почему то нету таблицы товаров в SQL, то есть нету таблицы shop_product, может она как то по другому называется но я все проверил, и ни где нет записей о продуктах
В 5 и 6 версии именно эта таблица используется.
Вы можете сделать дамп базы и в текстовом файле поиском найти где у вас товары. Возможно еще используется более старая версия.
Всем привет, проблема следующая: есть необходимость с генерировать XML файл для выгрузки (сторонние плагины не подходят!). Как с генерировать URL товара и URL его изображения из БД. то есть примерно так:
<offer id="" productId="">
</offer>
За ранее спасибо.
Есть как минимум 2 варианта, один затрагивает shopProductsCollection, другой - нет.
Вариант с использованием shopProductsCollection
Вариант без использования коллекции
Воспользуйтесь функцией shopImage::getUrl, например так:
В обоих случаях есть вероятность, что в начале пути будет не нужное вам имя исполняемого файла. Так при выполнении скрипта из консоли в начале пути постоянно дописывается cli.php. Если у Вас возникнет такая же ошибка, рекомендую сделать так:
Привет всем, есть задача получить по аналогии артикулы по весу, сортировка в таблице.
search/color.value_id=6
делаю так
$collection = new shopProductsCollection('search/weight.value=20');
но не получаю требуемого результата, что не так делаю?
понятно что color.value_id для id чекбокса, но как по тексту характеристики получить?