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

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    441

делал реализацию вывода товаров из той же категории ближайших по цене в две стороны с лимитом в 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 418

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

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

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


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

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

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

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

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

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

Войти

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

Войти


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

    • От paullugin
      Всем привет, ребят подскажите как сделать Авто-чередование товаров в "новинках", "рекомендуемых", "хитах продаж" и "акциях". Не как не могу найти решение для opencart 2.3
    • От kJlukOo

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


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

       
    • От cmd

      View File


      "Рекомендуемые товары" в стиле METRO
      Красивые "Рекомендуемые товары"
      Модуль не требует vqmod и не использует дополнительных библиотек. Просто копируйте файл на фтп и используйте. Заменять файлы тоже не надо.
      Допускается вывод нескольких модулей на одной странице.
      Демо в центральной колонке: http://opencart.work...m/nicefeatured/
      Демо в центральной и боковой колонке: http://opencart.work...t&product_id=49
      Админка
      http://opencart.work...efeatured/admin
      логин и пас: demo
      Модуль найдете в списке модулей под названием "Nice Featured Module"
      Размер шрифта и блоков расчитывается автоматически на основании размера thumbnail, но при необходимости можно задать размер шрифта из админки. Такая потребность может возмникнуть, если длинна названия товара больше 90 символов.
      Кроссбраузерность: IE8+, Firefox 4+, Opera, Chrome, Safari 5+
      Справочная информация:
      1. Если модуль находится "В левой колонке" или "В правой колонке", то он будет автоматически выстраиваться в столбик.
      2. Если размер thumbnail (миниатюры) меньше 100х100, то получается некрасиво. Самый хороший результат в промежутке между 130х130 - 220х220
      Посмотрите другие мои работы
      Submitter cmd Submitted 12/25/2012 Category Модули Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart Несовместим ocStore Несовместим OpenCart.Pro, ocShop  
  • Последние посетители   0 пользователей онлайн

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