Рекомендуемые сообщения

sseoh    6

Привет форумчани, подскажите как на опен карте 1.5 убрать рекомендуемость товаров в 2 стороны.

То есть если товар А рекомендует товар Б, тогда товар Б автоматически рекомендует товара А.

На просторах интернета я нашел статью "Баг или фича" из всего этого я понял что в admin/model/catalog/product.php

Есть запросы на удаление и добавление товара, эта статья писалась под 1.4 я так понимаю, потому что с 1.5 она работает не корректно.

В итоге если я рекомендую товрау А товар Б, то они прописываются в 1 сторону корректно, а если ещё добавить с Б на А, тогда рекомендуемость с А на Б слетит. Вот мои коды, подскажите что не так.

public function addProduct($data) {

  if (isset($data['product_related'])) {
   foreach ($data['product_related'] as $related_id) {
    //$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$product_id . "' AND related_id = '" . (int)$related_id . "'");
    $this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$product_id . "', related_id = '" . (int)$related_id . "'");
    //$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$related_id . "' AND related_id = '" . (int)$product_id . "'");
    //$this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$related_id . "', related_id = '" . (int)$product_id . "'");
   }
  }

public function editProduct($product_id, $data) {

  if (isset($data['product_related'])) {
   foreach ($data['product_related'] as $related_id) {
    //$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$product_id . "' AND related_id = '" . (int)$related_id . "'");
    $this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$product_id . "', related_id = '" . (int)$related_id . "'");
    //$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$related_id . "' AND related_id = '" . (int)$product_id . "'");
    //$this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$related_id . "', related_id = '" . (int)$product_id . "'");
   }
  }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
sseoh    6

Конечно помощи от сообщества я не дождался, но в глаза попали строки

Решение:

В public function addProduct($data) {

найдите и закоментрируйте как у меня 2 последнии строки:

if (isset($data['product_related'])) {
foreach ($data['product_related'] as $related_id) {
$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$product_id . "' AND related_id = '" . (int)$related_id . "'");
$this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$product_id . "', related_id = '" . (int)$related_id . "'");
//$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$related_id . "' AND related_id = '" . (int)$product_id . "'");
//$this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$related_id . "', related_id = '" . (int)$product_id . "'");
}
}

В public function editProduct($product_id, $data) {

найдите и закоментируйте как у меня:


$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$product_id . "'");
//$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE related_id = '" . (int)$product_id . "'");

if (isset($data['product_related'])) {
foreach ($data['product_related'] as $related_id) {
$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$product_id . "' AND related_id = '" . (int)$related_id . "'");
$this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$product_id . "', related_id = '" . (int)$related_id . "'");
//$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$related_id . "' AND related_id = '" . (int)$product_id . "'");
//$this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$related_id . "', related_id = '" . (int)$product_id . "'");
}
}

Получатся полноценные цепочки, товар А можно будет сослать на товар Б, а товар Б на товар А, и так далее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Yoda    458

делал реализацию вывода товаров из той же категории ближайших по цене в две стороны с лимитом в 4 штуки по моему - смотреть тут...

Это не модуль, а дописка в файлы продукта... если оно, могу ковырнуть файлы - а ты из них уже вытянешь то что те надо.

http://molotochek.com.ua/elektroinstrumenti/perforatory/perforator-makita-hr-2470

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Nativo    0

Добрый попытался такое сделать на версии 1.5.1.3

Теперь при выборе вкладки товары в админке выдает ошибку

Fatal error: Cannot redeclare class ModelCatalogProduct in /home/cvy/dvrstore.ru/docs/admin/model/catalog/product.php on line 1556

Перезапись чистыми файлами не помогает.

Подскажите плиз как быть?

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
sseoh    6

Откройте файл /home/cvy/dvrstore.ru/docs/admin/model/catalog/product.php и посмотрите строчку 1556 (можно через notepad ++)

Если сами не поймете в чем дело, скиньте её сюда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
yanpetr    9

ocstore 1.5.3 у меня не работает данная схема. Кто-нибудь знает решение как избавиться от двойной рекомендации???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
freelancer    1 420

ocstore 1.5.3 у меня не работает данная схема. Кто-нибудь знает решение как избавиться от двойной рекомендации???

в первом посту решение верное

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
yanpetr    9

в первом посту решение верное

Странно, но у меня если рекомендуешь товару А товар Б то Б автоматически рекомендует А.

Сделал по первому и второму способу

product.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Alexa    2

ocStore 1.5.2.1.

Я может что-то не допоняла, но, сделав изменения в admin/model/catalog/product.php по варианту #2 - всё осталось абсолютно по-прежнему - как была перелинковка в 2 стороны, так осталась.....

Вопрос снят - после этих изменений в файле экспорта-импорта нужно было удалить ссылочные id с ненужных позиций..

Изменено пользователем Alexa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marinka    0

Конечно помощи от сообщества я не дождался, но в глаза попали строки

Решение:

В public function addProduct($data) {

найдите и закоментрируйте как у меня 2 последнии строки:

if (isset($data['product_related'])) {
foreach ($data['product_related'] as $related_id) {
$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$product_id . "' AND related_id = '" . (int)$related_id . "'");
$this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$product_id . "', related_id = '" . (int)$related_id . "'");
//$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$related_id . "' AND related_id = '" . (int)$product_id . "'");
//$this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$related_id . "', related_id = '" . (int)$product_id . "'");
}
}

В public function editProduct($product_id, $data) {

найдите и закоментируйте как у меня:


$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$product_id . "'");
//$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE related_id = '" . (int)$product_id . "'");

if (isset($data['product_related'])) {
foreach ($data['product_related'] as $related_id) {
$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$product_id . "' AND related_id = '" . (int)$related_id . "'");
$this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$product_id . "', related_id = '" . (int)$related_id . "'");
//$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE product_id = '" . (int)$related_id . "' AND related_id = '" . (int)$product_id . "'");
//$this->db->query("INSERT INTO " . DB_PREFIX . "product_related SET product_id = '" . (int)$related_id . "', related_id = '" . (int)$product_id . "'");
}
}

Получатся полноценные цепочки, товар А можно будет сослать на товар Б, а товар Б на товар А, и так далее.

вот хоть хоть убейте, но у меня нет таких строк. 1.5.4.1

как в этой версии кто-нибудь знает?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Marinka    0

разобралась) к каталоге ковыряла вместо админки)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
djat    1

В итоге происходили удаления связывания товаров, начал разбираться, и в итоге сделал:

 

Все делаем как в первом посту

 

+ еще закоментировать надо строку

//$this->db->query("DELETE FROM " . DB_PREFIX . "product_related WHERE related_id = '" . (int)$product_id . "'");

И все заработало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
barrel    21

OcStore 1.5.4.1

2-й вариант прописал. Работает норм!

sseoh респект.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
sseoh    6

Рад помочь, я вернулся на форум, будут вопросы - с удовольствием отвечу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
qwert5005    4

Всем привет. У меня другая проблема. Связываю рекомендованные товары, но они стали отображаться как попало. Допустим связал один товар, назовем его 10 карандашей с товаром 20 карандашей. 20 карандашей связал с 30 карандашей и т.д. В итоге на той странице где 20 карандашей рекомендованные меняются почему то местами и отображается справа 10 карандашей, а слева 30.  На следующей странице отображение нормальное, т.е. большее количество справа, меньшее слева. 

 

Подскажите, как сделать что бы товар отображался нормально? Пробовал ваш способ, но он мне ничего не дал. По какой логике Опенкарт товар располагает в рекомендованных? Может надо id у товара где то поменять? А то винегрет получается, то слева товар который должен быть справа, то наоборот. Пробовал менять через админку последовательность добавления (что бы один товар был над другим и наоборот) но это тоже ничего не дало. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
qwert5005    4

После изменений которые вы рекомендовали, становиться невозможным отредактировать название товара. Вернул все как было

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
H3blade    0

Opencart 1.5.5.1.2 все работает нормально. Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
knopic    0

Добрый вечер!

Что-то не пойму разницу) Сделала как во втором посте. До изменения товар А ссылается на товар Б, автоматически товар Б ссылается на товар А. После изменения файла все то же самое. В чем суть изменения

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Maknae    0

как можно сделать вот это все как карусель? как цепочку???

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От louise170

      650.00 руб
      Скачать/Купить дополнение


      Рекомендуемые плюс
      Модуль дает возможность выводить неограниченное кол-во модулей типа Новинки, Рекомендуемые товары и Бестселлеры.
      Но имеет более расширенный функционал - все блоки можно выводить в зависимости от категории, т.е. вы
      можете вывести несколько блоков с новинками из разных категорий или вывести несколько разных списков рекомендуемых товаров.
      Никакие системные файлы не затираются, модуль использует vqmod.
      Модуль тестировался на
      Opencart
      1.5.1.3 1.5.4.1 1.5.6 2.1.0.2 2.3.0.2 3.0.2.0
        Поддерживаемые языки:
      русский
       
      Пример работы модуля:
      http://ocstore1541.opencartplus.ru/mp3-players
      http://opencart2.opencartplus.ru/mp3-players
      http://ocstore2302.opencartplus.ru/
      http://opencart3020.opencartplus.ru/
       
      Демо админки:
      http://ocstore1541.opencartplus.ru/admin/
      http://opencart2.opencartplus.ru/admin/
      http://ocstore2302.opencartplus.ru/admin/
      http://opencart3020.opencartplus.ru/admin/
       
      доступ
      demo / demo
       
      Пример работы модуля на реальном магазине:
      http://magazintrav.ru/
       
      Установка
      Инструкция по установке и настройке находится в архиве модуля в файле readme.txt
       
      Добавил louise170 Добавлено 27.03.2014 Категория Прочее Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.4.1
      1.5.3.1 ocStore 2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х  
    • От louise170
      Модуль дает возможность выводить неограниченное кол-во модулей типа Новинки, Рекомендуемые товары и Бестселлеры.
      Но имеет более расширенный функционал - все блоки можно выводить в зависимости от категории, т.е. вы
      можете вывести несколько блоков с новинками из разных категорий или вывести несколько разных списков рекомендуемых товаров.
      Никакие системные файлы не затираются, модуль использует vqmod.
      Модуль тестировался на
      Opencart
      1.5.1.3 1.5.4.1 1.5.6 2.1.0.2 2.3.0.2 3.0.2.0
        Поддерживаемые языки:
      русский
       
      Пример работы модуля:
      http://ocstore1541.opencartplus.ru/mp3-players
      http://opencart2.opencartplus.ru/mp3-players
      http://ocstore2302.opencartplus.ru/
      http://opencart3020.opencartplus.ru/
       
      Демо админки:
      http://ocstore1541.opencartplus.ru/admin/
      http://opencart2.opencartplus.ru/admin/
      http://ocstore2302.opencartplus.ru/admin/
      http://opencart3020.opencartplus.ru/admin/
       
      доступ
      demo / demo
       
      Пример работы модуля на реальном магазине:
      http://magazintrav.ru/
       
      Установка
      Инструкция по установке и настройке находится в архиве модуля в файле readme.txt
       
    • От AndreyAndrey
      Всем привет. может быть есть такой модуль, который будет выводить на странице категорий сначала избранные товары, а потом уже остальные. 
      Или может кто подскажет решение.
    • От kJlukOo

      555.00 руб
      Скачать/Купить дополнение


      Авто-подбор рекомендуемых товаров
      Модуль не отвечает за вывод рекомендуемых. За это отвечает ваш шаблон.
      Модуль лишь помогает подобрать рекомендуемые товары по заданным параметрам
       

       
      Описание
      Модуль дает возможность подобрать рекомендуемые ко всем товарам автоматически по НАЖАТИЮ КНОПКИ "ПОДОБРАТЬ" в настройках модуля.
      У модуля есть следующие критерии подбора
      Разброс цены (Фиксированная или проценты). Например: товар стоит 1000р разброс 500. в рекомендуемые попадут все товары от 500р до 1500р Кол-во совпадений атрибутов. Например у процессоров есть атрибут частота. Так вот если этот атрибут будет присутствовать у нескольких процессоров, то они попадут в рекомендуемые к друг другу. В этом поле указывается, сколько необходимо совпадающих атрибутов для попадания в рекомендуемые. Кол-во совпадений значений атрибутов. Например у процессоров есть атрибут частота. Так вот если этот значение этого атрибута будет совпадать у нескольких процессоров, то они попадут в рекомендуемые к друг другу. В этом поле указывается, сколько необходимо совпадающих атрибутов для попадания в рекомендуемые. Кол-во совпадений значений опций. Аналогично аттрибутам Кол-во одинаковых тэгов. Если в товарах совпадет больше(или равно) тэгов чем в этом поле они попадут друг другу в рекомендованные. Лимит рекомендуемых. Это максимальное количество рекомендуемых у одного товара. Товары из одной категорию. Это чекбокс, при активации которого, модуль подберет рекомендуемые товары из одинаковых категорий Новые товары. Подбирает рекомендуемые товарам, у которых нет рекомендуемых. Установка
      Перед работой с модулем сделайте бэкап базы данных. Если разбираетесь, то лучше просто бэкап таблицы product_related Установка через установщик расширений Зайти в модуль и генерировать рекомендуемые Добавил kJlukOo Добавлено 31.07.2016 Категория Модули Системные требования Сайт разработчика cleanphp.ru Старая цена 650 Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х  
    • От kJlukOo
      Модуль не отвечает за вывод рекомендуемых. За это отвечает ваш шаблон.
      Модуль лишь помогает подобрать рекомендуемые товары по заданным параметрам
       

       
      Описание
      Модуль дает возможность подобрать рекомендуемые ко всем товарам автоматически по НАЖАТИЮ КНОПКИ "ПОДОБРАТЬ" в настройках модуля.
      У модуля есть следующие критерии подбора
      Разброс цены (Фиксированная или проценты). Например: товар стоит 1000р разброс 500. в рекомендуемые попадут все товары от 500р до 1500р Кол-во совпадений атрибутов. Например у процессоров есть атрибут частота. Так вот если этот атрибут будет присутствовать у нескольких процессоров, то они попадут в рекомендуемые к друг другу. В этом поле указывается, сколько необходимо совпадающих атрибутов для попадания в рекомендуемые. Кол-во совпадений значений атрибутов. Например у процессоров есть атрибут частота. Так вот если этот значение этого атрибута будет совпадать у нескольких процессоров, то они попадут в рекомендуемые к друг другу. В этом поле указывается, сколько необходимо совпадающих атрибутов для попадания в рекомендуемые. Кол-во совпадений значений опций. Аналогично аттрибутам Кол-во одинаковых тэгов. Если в товарах совпадет больше(или равно) тэгов чем в этом поле они попадут друг другу в рекомендованные. Лимит рекомендуемых. Это максимальное количество рекомендуемых у одного товара. Товары из одной категорию. Это чекбокс, при активации которого, модуль подберет рекомендуемые товары из одинаковых категорий Новые товары. Подбирает рекомендуемые товарам, у которых нет рекомендуемых. Установка
      Перед работой с модулем сделайте бэкап базы данных. Если разбираетесь, то лучше просто бэкап таблицы product_related Установка через установщик расширений Зайти в модуль и генерировать рекомендуемые
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу