seomaniac написал(а): ↑Есть что-то подобное для версии 1.5.5.х?
поиск еще никто не запрещал https://www.opencart.com/index.php?...arch=Auto Related Product&filter_license=free
seomaniac написал(а): ↑Есть что-то подобное для версии 1.5.5.х?
Ален написал(а): ↑Автоматические рекомендуемые товары
на странице товара с учетом категории
Данный модификатор выводит автоматически рекомендуемые товары на странице товара.
Выборка происходит в зависимости от принадлежности товара к категории + случайная генерация 4 товаров.
Проверял только на версии opencart 2.3 , но думаю и на других заработает.
Источник тут, но пришлось переделать, так как автор "понапихал" в код лишнего в угоду раскрутки себя.
.
public function getProductRelated($product_id) {public function getProductRelatedCollection($product) {
$collection_field = 'ean';
$product_data = array();
if (!empty($product[$collection_field])) {
$query = $this->db->query("SELECT product_id FROM " . DB_PREFIX . "product WHERE product_id != '" . (int)$product['product_id'] . "' AND status = '1' AND `" . $this->db->escape($collection_field) . "` LIKE '" . $this->db->escape($product[$collection_field]) . "' ORDER BY sort_order");
foreach ($query->rows as $result) {
$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
}
}
return $product_data;
}$results = $this->model_catalog_product->getProductRelated($this->request->get['product_id']);$results = $this->model_catalog_product->getProductRelatedCollection($product_info);Tom написал(а): ↑Один из способов автоматической привязки товаров в некие серии , это использование полей типа mpn,isbn,jan,ean итп.
Решение не моё.
catalog/model/catalog/product.php
Найтиcodepublic function getProductRelated($product_id) {
ПЕРЕД этим добавитьcodepublic function getProductRelatedCollection($product) { $collection_field = 'ean'; $product_data = array(); if (!empty($product[$collection_field])) { $query = $this->db->query("SELECT product_id FROM " . DB_PREFIX . "product WHERE product_id != '" . (int)$product['product_id'] . "' AND status = '1' AND `" . $this->db->escape($collection_field) . "` LIKE '" . $this->db->escape($product[$collection_field]) . "' ORDER BY sort_order"); foreach ($query->rows as $result) { $product_data[$result['product_id']] = $this->getProduct($result['product_id']); } } return $product_data; }
В файле catalog/controller/product/product.php
Найтиcode$results = $this->model_catalog_product->getProductRelated($this->request->get['product_id']);
ЗАМЕНИТЬ НАcode$results = $this->model_catalog_product->getProductRelatedCollection($product_info);
Не требует адаптации под шаблоны, так как использует блок Сопутствующих товаров.
В данном примере используется поле ean. Вы же можете использовать любое нужное вам.
Достаточно сменить в примере выше $collection_field = 'ean';
Принцип работы простой. Вы у товаров , которые нужно собрать в некую Серию, в поле EAN (ну или то которое будете использовать) впишите некий одинаковый набор символов (ну например 777 или stul) , в итоге по этому схожему значению они и будут связаны между собой .
Спасибо за решение mpn2005.