Jump to content
Sign in to follow this  
4ever

Как добавить несколько производителей одному товару.

Recommended Posts

Добрый день,уважаемое Сообщество.
Возникла небольшая проблема,необходим Ваш совет :
Есть сайт на опенкарте 1.5.6 ,мне нужно сделать так чтобы к одному товару можно было добавить несколько производителей.Проблема в том,что с опенкартом работаю недавно (3 дня) и не могу полностью представить логику работы такой модификации.
Посоветуйте как лучше это реализовать или где посмотреть пример,если есть готовые наработки - поделитесь,или хотя бы опишите,вкратце,как делали,Вам зачтется это в карму)).
Спасибо,за внимание. 

p.s.Способы типа "решить за деньги",пожалуйста не предлагайте.Я бедный джуниор,которому надо как-то расти и качать скиллы.

Share this post


Link to post
Share on other sites

Один товар - один производитель.

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

Если компании выпускают какой-то продукт совместно (был такой опыт в начале 2000-х среди мобилопроизводителей), например:

Sony&Ericsson, Siemens&Benq, то именно так и стоит занести запись производителя и привязывать к товару именно такое название.

То есть, не может один товар (единица товара) производиться несколькими компаниями. Партии - могут, а единицы товара производятся одним производителем. Так что, если у вас идентичные товары, но от производителей Panasound, Panisonac, Panasonik и т.п. - просто создайте товары с привязкой к каждому производителю отдельно. 

Share this post


Link to post
Share on other sites

Один товар - один производитель.

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

Если компании выпускают какой-то продукт совместно (был такой опыт в начале 2000-х среди мобилопроизводителей), например:

Sony&Ericsson, Siemens&Benq, то именно так и стоит занести запись производителя и привязывать к товару именно такое название.

То есть, не может один товар (единица товара) производиться несколькими компаниями. Партии - могут, а единицы товара производятся одним производителем. Так что, если у вас идентичные товары, но от производителей Panasound, Panisonac, Panasonik и т.п. - просто создайте товары с привязкой к каждому производителю отдельно. 

Я бы так и сделал...но заказчик хочет указывать именно несколько производителей (не знаю зачем).

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

Я бы так и сделал...но заказчик хочет указывать именно несколько производителей (не знаю зачем).

Вы бы лучше переубедили заказчика. А то с привязками намучаетесь.

Задумайтесь:

1. фильтры (наверняка ведь будет фильтр по производителю в категории)

2. страница производителя (как будет выводиться товар, привязанный сразу к двум и более производителям?)

3. возможно я еще что-то упустил. Но и того, что привел в пример - уже не мало.

Share this post


Link to post
Share on other sites

p.s.Способы типа "решить за деньги",пожалуйста не предлагайте.Я бедный джуниор,которому надо как-то расти и качать скиллы.

Я бы так и сделал...но заказчик хочет указывать именно несколько производителей (не знаю зачем).

малосовместимо ;)

 

Создать доп колонки в бд тогда и выводить в карточку

если только в карточке выводить - достаточно доп.поле создать

или вообще - задействовать под это дело любое из неиспользуемых полей (isbn, jan и тд)

 

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

Share this post


Link to post
Share on other sites

Создать доп колонки в бд тогда и выводить в карточку

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

 

О, AlexDW на секунду опередил :)

Share this post


Link to post
Share on other sites

малосовместимо ;)

 

если только в карточке выводить - достаточно доп.поле создать

или вообще - задействовать под это дело любое из неиспользуемых полей (isbn, jan и тд)

 

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

Нужен просто вывод в карточку товара,насколько я понял.Спасибо,буду пробовать реализовать.

Share this post


Link to post
Share on other sites

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

 

О, AlexDW на секунду опередил :)

Спасибо,за уделенное время.

Share this post


Link to post
Share on other sites

Добрый вечер.
Получилось задавать несколько производителей,через дополнительную таблицу product_to manufacturer (product_id,manufacturer_id)...
Т.е. у нас например есть товар с id 2 и ему заданы производители с id 3,4,5 в таблице это запишется как отдельные записи,
 
product_id                 manufacturer_id

      2                                     3

      2                                     4

      2                                     5

Подскажите,пожалуйста как правильно составить sql запрос, чтобы вывести название производителя и ссылку в карточку товара.Понимаю что нужно сравнить значение manufacturer_id из таблицы manufacturer  и manufacturer_id из моей...понимаю что делать это нужно в модели продукта в функции getProduct(), 
но разобрать sql запрос,который там указан не могу(((

$query = $this->db->query("SELECT DISTINCT *, pd.name AS name, p.image, m.name AS manufacturer, (SELECT price FROM " . DB_PREFIX . "product_discount pd2 WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "' AND pd2.quantity = '1' AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < NOW()) AND (pd2.date_end = '0000-00-00' OR pd2.date_end > NOW())) ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount, (SELECT price FROM " . DB_PREFIX . "product_special ps WHERE ps.product_id = p.product_id AND ps.customer_group_id = '" . (int)$customer_group_id . "' AND ((ps.date_start = '0000-00-00' OR ps.date_start < NOW()) AND (ps.date_end = '0000-00-00' OR ps.date_end > NOW())) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special, (SELECT points FROM " . DB_PREFIX . "product_reward pr WHERE pr.product_id = p.product_id AND customer_group_id = '" . (int)$customer_group_id . "') AS reward, (SELECT ss.name FROM " . DB_PREFIX . "stock_status ss WHERE ss.stock_status_id = p.stock_status_id AND ss.language_id = '" . (int)$this->config->get('config_language_id') . "') AS stock_status, (SELECT wcd.unit FROM " . DB_PREFIX . "weight_class_description wcd WHERE p.weight_class_id = wcd.weight_class_id AND wcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS weight_class, (SELECT lcd.unit FROM " . DB_PREFIX . "length_class_description lcd WHERE p.length_class_id = lcd.length_class_id AND lcd.language_id = '" . (int)$this->config->get('config_language_id') . "') AS length_class, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating, (SELECT COUNT(*) AS total FROM " . DB_PREFIX . "review r2 WHERE r2.product_id = p.product_id AND r2.status = '1' GROUP BY r2.product_id) AS reviews, p.sort_order FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) LEFT JOIN " . DB_PREFIX . "manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");

manufacturer m ON (p.manufacturer_id = m.manufacturer_id) WHERE p.product_id = '" . (int)$product_id . - не пойму как переписать под мои условия.

Спасибо,за помощь.
 

Share this post


Link to post
Share on other sites

структура БД такова, что у товара предусмотрен один и только один производитель

 

если идти по вашему пути - придется туеву хучу не только запросов, но и кода переписывать :?

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

 

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

Share this post


Link to post
Share on other sites

структура БД такова, что у товара предусмотрен один и только один производитель

 

если идти по вашему пути - придется туеву хучу не только запросов, но и кода переписывать :?

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

 

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

А если расширить таблицу product_to manufacturer....передавать туда имя,ссылку,картинку и т.д....и просто подменять стандартный вывод в карточке на свой и в модель продукта функцию под это все написать??? Что думаете??

 

Edited by 4ever

Share this post


Link to post
Share on other sites
В 29.05.2015 в 19:00, 4ever сказал:

А если расширить таблицу product_to manufacturer....передавать туда имя,ссылку,картинку и т.д....и просто подменять стандартный вывод в карточке на свой и в модель продукта функцию под это все написать??? Что думаете??

 

Добрый вечер. Вы решили эту проблему? Если да, поделитесь пожалуйста как.

Share this post


Link to post
Share on other sites
В 28.05.2015 в 12:05, Helloween сказал:

Один товар - один производитель.

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

Если компании выпускают какой-то продукт совместно (был такой опыт в начале 2000-х среди мобилопроизводителей), например:

Sony&Ericsson, Siemens&Benq, то именно так и стоит занести запись производителя и привязывать к товару именно такое название.

То есть, не может один товар (единица товара) производиться несколькими компаниями. Партии - могут, а единицы товара производятся одним производителем. Так что, если у вас идентичные товары, но от производителей Panasound, Panisonac, Panasonik и т.п. - просто создайте товары с привязкой к каждому производителю отдельно. 

Но если такая ситуация, есть  1 товар но его делают 3 разные страны 3 разные конторы - тайвань, польша, италия. И покупатель знает что есть 3 производителя и ему надо показать какие есть в наличии, да можно и другим способом  донести такую информацию но было бы визуально красиво и понятно указать это именно в производителях, а если еще сделать при выборе производителя менялась цена, было вообще классно

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.

Sign in to follow this  

  • Similar Content

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


      Блок - Производители
      Модуль выводит выбранное количество производителей для выбранных страниц.
      Работа модуля проверена на Opencart и OcStore v1.5.3.1, v1.5.4.1, v1.5.5.1
      Не заменяет файлы движка.
      Возможности:
      Для каждой страницы указывается лимит производителей и размер изображения (иконка производителя) Иконка в блоке является ссылкой на все товары этого производителя Установка:
      Файлы из папки upload закинуть в корневой каталог магазина. В меню админки "Дополнения->Модули" нажать [Установить] напротив модуля "Блок - Производители". В меню админки "Дополнения->Модули" нажать [Изменить] и настроить модуль. Добавил mpn2005 Добавлено 02.07.2013 Категория Модули Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 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 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 OpenCart.Pro, ocShop OcShop 1.5.6.4.х Обращение к серверу разработчика Старая цена  
    • By mpn2005
      Модуль выводит выбранное количество производителей для выбранных страниц.
      Работа модуля проверена на Opencart и OcStore v1.5.3.1, v1.5.4.1, v1.5.5.1
      Не заменяет файлы движка.
      Возможности:
      Для каждой страницы указывается лимит производителей и размер изображения (иконка производителя) Иконка в блоке является ссылкой на все товары этого производителя Установка:
      Файлы из папки upload закинуть в корневой каталог магазина. В меню админки "Дополнения->Модули" нажать [Установить] напротив модуля "Блок - Производители". В меню админки "Дополнения->Модули" нажать [Изменить] и настроить модуль.
    • By SergeTkach
      Скачать/Купить дополнение


      Полный путь в ссылке производителя (фикс для SEO PRO)
      Данный фикс делает полные ссылки для производителей.
       
      По умолчанию SEO PRO генерирует ссылки отдельно взятого производителя так, что в URL отсутствует родительская страница (brands). Это вряд ли повлияет на SEO Вашего сайта, но раньше Google рекомендаовал делать именно так (была PDF-инструкция "Руководство по поисковой оптимизации для начинающих"). В данный момент такой рекомендации не обнаружено - https://support.google.com/webmasters/answer/7451184?hl=ru#hierarchy
       
      В общем, раз уж модификатор существует по просьбе отдельно взятого клиента, то решил его выложить
       
      Внимание!
      Данный фикс работает только для ветки 2.x и только при использовании модуля SEO PRO!
       
      ---
      Раз уж мы задели тему ЧПУ, то посмотрите еще одно мое бесплатное расширение - SEO URL Generator FREE, для автоматического заполнения ЧПУ в момент работы с товаром в админке. Для массовой генерации ссылок одним нажатием кнопки - воспользуйтесь PRO-версией.
       
      Добавил SergeTkach Добавлено 26.10.2018 Категория SEO, карта сайта, оптимизация Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Opencart.pro 2.3 Обращение к серверу разработчика Старая цена  
    • By SergeTkach
      Данный фикс делает полные ссылки для производителей.
       
      По умолчанию SEO PRO генерирует ссылки отдельно взятого производителя так, что в URL отсутствует родительская страница (brands). Это вряд ли повлияет на SEO Вашего сайта, но раньше Google рекомендаовал делать именно так (была PDF-инструкция "Руководство по поисковой оптимизации для начинающих"). В данный момент такой рекомендации не обнаружено - https://support.google.com/webmasters/answer/7451184?hl=ru#hierarchy
       
      В общем, раз уж модификатор существует по просьбе отдельно взятого клиента, то решил его выложить
       
      Внимание!
      Данный фикс работает только для ветки 2.x и только при использовании модуля SEO PRO!
       
      ---
      Раз уж мы задели тему ЧПУ, то посмотрите еще одно мое бесплатное расширение - SEO URL Generator FREE, для автоматического заполнения ЧПУ в момент работы с товаром в админке. Для массовой генерации ссылок одним нажатием кнопки - воспользуйтесь PRO-версией.
       
  • 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.