Перейти к содержанию
efremovxp

Сопутствующие товары

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

Здравствуйте.

Есть товары - Бензопилы. К ним имеются аксессуары - масло, свеча зажигания и т.д.

Так вот, когда я привязываю сопуствующим товаром масло к бензопиле, мне не нужно, чтобы на странице масла появилась бензопила, так не правильно, человек не покупает к маслу бензопилу. Нужно только масло к бензопиле.

Что и где подправить, чтобы у категории товаров Аксессуары не было вообще вкладки Сопутствующих товаров.

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


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

чтобы убрать перелинковку между товарами, в admin\model\catalog\product.php

найти и закомментировать код (встречается два раза)

                $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 . "'");

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

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


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

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

Т.е. чехлы для телефонов между собой залинковать с обратной связью, а к телефону чехлы - без нее.

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


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

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

Т.е. чехлы для телефонов между собой залинковать с обратной связью, а к телефону чехлы - без нее.

Теперь можно.

После исправлений кода, если были уже проставлены связи, надо через админку в товары заходить и нажимать сразу сохранить. С этих товаров связь будет оставлена, а с противоположного из базы удалится. А потом связи можно добавлять хоть с обраткой хоть без.

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


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

Да, спасибо, AlexDW. Проблема решена )

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


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

Теперь можно.

После исправлений кода, если были уже проставлены связи, надо через админку в товары заходить и нажимать сразу сохранить. С этих товаров связь будет оставлена, а с противоположного из базы удалится. А потом связи можно добавлять хоть с обраткой хоть без.

только про эту обратную сторону медали не забывайте, если двусторонняя перелинковка нужна

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


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

только про эту обратную сторону медали не забывайте, если двусторонняя перелинковка нужна

Я теперь забуду как раньше было. :)  А то и для СЕО было плохо, когда взаимные ссылки у товаров.

Кстати, от меня Вам тоже, СПАСИБО за решение.

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


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

Теперь можно.

После исправлений кода, если были уже проставлены связи, надо через админку в товары заходить и нажимать сразу сохранить. С этих товаров связь будет оставлена, а с противоположного из базы удалится. А потом связи можно добавлять хоть с обраткой хоть без.

Как-то сумбурно написано, я ничего не понял, если честно :(

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


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

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

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


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

Надо зайти в товар, нажать сохранить и посмотреть что случилось со связью. 

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


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

а ничего хорошего ))

либо пропадет вовсе, либо станет опять двусторонней.

этот вопрос уже обсуждался.

единственное правильное решение - добавить новый функционал именно с односторонней привязкой.

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


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

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

Так прочтите что именно я хочу. Мне нужны оба варианта сразу.

Если я линкую чехол для айфона с чехлом для айфона - 2 сторонняя, если чехол к самому айфону - 1 сторонняя.

Понимаю, что можно использовать модуль "сопуствующие товары" + "похожие товары", а там еще 100500 модулей, но это уже нагромождение, лучше когда все в одном.

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


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

Блииин, проверил. Не делается двусторонняя теперь, ставлю обратную, а у второго она пропадает. А я то был уверен, что можно. Вот на ровном месте же проблема. :-(

 В том файле наверно ещё надо строки коментировать.

 

2 одинаковых куска кода: Строки с 96 по 103 и с 242 по 249

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 . "'");
}
}

Я так понимаю DELETE FROM работает когда сам удаляешь связь в админке. А что же тогда удаляет её автоматически?

Как-то ведь можно сделать. Логику бы только понять.

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


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

единственное правильное решение - добавить новый функционал именно с односторонней привязкой.

Так это в базе отдельная таблица появится. И у товара 2 блока будет: Связанные и Рекомендуемые. Можно ведь сделать 2 в одном: Сопутствующие товары.

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


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

возможно в какой-то степени подойдет модуль Сопутствующие товары

 

единственное правильное решение - добавить новый функционал именно с односторонней привязкой.

 

вот эти модули на основе "родных" рекомендуемых, но с односторонней привязкой, может тоже кому-то пригодятся :)

 Модуль "Рекомендуемые товары"

 Клон модуля "Рекомендуемые товары"

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


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

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

О результате сообщу ;)

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


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

Сделал модуль RelatedLinks - теперь можно выбирать тип перелинковки при назначении товара (односторонняя или двусторонняя) :D

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


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

DELETE FROM работает когда сам удаляешь связь в админке. А что же тогда удаляет её автоматически?

Как-то ведь можно сделать. Логику бы только понять.

 

Как-то получилось решить вопрос чтоб не удаляло автоматически?

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


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

а как бы сделать чтобы все товары перелинковывались? то есть в одном товаре ввел например 5 сопутствующих, и все всех пяти эти же сопуствующие тоже отображались?

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


Ссылка на сообщение
Поделиться на другие сайты
В 03.04.2015 в 20:44, AlexDW сказал:

чтобы убрать перелинковку между товарами, в admin\model\catalog\product.php

найти и закомментировать код (встречается два раза)


                $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 . "'");

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

 Да но при таком варианте, если изменить товар на который ссылаются связь пропадает, или это только у меня так?

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


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

потому что при редактировании подчиненного товара никак не учитываются его связи

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

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


Ссылка на сообщение
Поделиться на другие сайты
В 03.04.2015 в 00:44, AlexDW сказал:

чтобы убрать перелинковку между товарами, в admin\model\catalog\product.php

найти и закомментировать код (встречается два раза)


                $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 . "'");

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

А закомментировать надо этот код оба раза? Я их оба закомментил-ничего не изменилось.

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


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

если движок 2х - после правок файлов нужно кеш модификаторов обновлять

 

и вариант с комментированием - не вариант,

В 24.01.2017 в 16:11, AlexDW сказал:

потому что при редактировании подчиненного товара никак не учитываются его связи

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

 

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


Ссылка на сообщение
Поделиться на другие сайты
В 09.04.2015 в 08:16, ochag сказал:

 

 В том файле наверно ещё надо строки коментировать.

 

 

Да, для корректной работы еще нужно закомментировать:

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

Сделал модуль под это дело, теперь сопутствующие товары работают корректно, без двусторонней привязки и без автоматического удаления когда связаны товары.

Устанавливая данное дополнение, остается только односторонняя привязка.  Делал для 2.х

product_related.ocmod.xml

 

Изменено пользователем IvanKK
  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
В 27.10.2018 в 19:24, IvanKK сказав:

Сделал модуль под это дело, теперь сопутствующие товары работают корректно, без двусторонней привязки и без автоматического удаления когда связаны товары.

Устанавливая данное дополнение, остается только односторонняя привязка.  Делал для 2.х

product_related.ocmod.xml

Огромное спасибо! Все работает и связи сами не удаляются!

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


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

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

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

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

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

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

Войти

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

Войти

  • Последние посетители   0 пользователей онлайн

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.