Jump to content
efremovxp

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

Recommended Posts

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

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

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

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

Share this post


Link to post
Share on other sites

чтобы убрать перелинковку между товарами, в 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 . "'");

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

 

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 работает когда сам удаляешь связь в админке. А что же тогда удаляет её автоматически?

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
В 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 . "'");

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
В 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 . "'");

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

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

Share this post


Link to post
Share on other sites

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

 

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

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

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

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

 

Share this post


Link to post
Share on other sites
В 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

 

Edited by IvanKK
  • +1 2

Share this post


Link to post
Share on other sites
В 27.10.2018 в 19:24, IvanKK сказав:

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

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

product_related.ocmod.xml

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.