Jump to content
Sign in to follow this  
magneto2010

Товары в качестве опции.

Recommended Posts

Столкнулся с тем, что некоторые люди, продают товары которые состоят из нескольких товаров, которые можно заказать + к основному,(типо комплект), хотел такое же на opencart, думал есть какие то модули, но подходящего ничего не нашел.

 

Все что есть - оно выводит просто как опцию, (Фото + имя + цена) одной строкой - а хотелось бы чтобы был полноценный товар, т.е. можно было щелкнуть на ссылку и посмотреть характеристики дополнительного товара, и тд.

 

Не знаю почему еще этот модуль не создали еще. 

 

Вопрос - мог бы кто то создать такой модуль? или допилить существующие.

 

 

* в платном разделе отписался, но тишина. 

 

 

Пишите любо сюда, либо в лс. Спасибо.

Share this post


Link to post
Share on other sites

имеется в виду типа этого  http://joxi.ru/jcsZVP3JTJAoXfIBdmI

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

Share this post


Link to post
Share on other sites

есть нечто подобное

 

Share this post


Link to post
Share on other sites

To Pascha

 

Да да, что то типо этого, только чтобы у каждого доп товара что в комлекте, была видна своя цена и checkbox - для выбора, если он нужен...

И при выборе доп товара, цена сразу обновлялась в общую сумму. 

 

Как то так.

 

Вы предлагаете этот модуль или как?

 

To Einshtein

 

Да что то типо этого, только тоже не доработан - доп товары покупаются отдельно, а нужно желательно вместе - это комплект как ни как. 

 

Но все равно спасибо.

 

 

Вот тут неплохо реализовано после характеристик и описания вкладка дополнительно.

 

ps спасибо ребята за реагирование и ответы.

Share this post


Link to post
Share on other sites

открою маааааааленький секрет   :-D  это просто вывод рекомендуемых товаров...цена и кнопка купить там тупо убраны 

(в той карточке товара просто используется 4 клона рекомендуемых
1. для модификации (с обратнойсвязью) 
2. для товаров входящих в комплект (обратная связь пока существует, но будет удалена за ненадобностью)
3. для сопутствующих
4. для похожих...

не стоит выдумывать велосипед, если он уже есть)))

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

Share this post


Link to post
Share on other sites

открою маааааааленький секрет   :-D  это просто вывод рекомендуемых товаров...цена и кнопка купить там тупо убраны 

(в той карточке товара просто используется 4 клона рекомендуемых

1. для модификации (с обратнойсвязью) 

2. для товаров входящих в комплект (обратная связь пока существует, но будет удалена за ненадобностью)

3. для сопутствующих

4. для похожих...

не стоит выдумывать велосипед, если он уже есть)))

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

 

ггг... Молодец. А я почему то не подумал про это. Спасибо!!!!! 

Share this post


Link to post
Share on other sites
Вот тут неплохо реализовано после характеристик и описания вкладка дополнительно.

 

Тут вообще то предлагается прикупить к ванне еще пару девайсов

В моем случае сам товар и является комплектом - а  составляющие его просто можно приобрести отдельно...например только монитор...или крепление...типа этого....

Share this post


Link to post
Share on other sites

я так понял основная загвоздка, сделать покупку товара зависимой от выбора этой опции (аксессуара)
Ну тогда самый простой путь - в опциях (тип image) добавить поддержку поля для ссылки, которая будет служить ссылкой в опции на нужный товар.
Таким образом создаем опцию с названием товара, вставляем картинку этого товара, прописываем ссылку на сам товар и вуаля...

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

Share this post


Link to post
Share on other sites

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

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

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

Это если самый простой и неудобный путь.

Другие не рассматриваю, но жопа чует много гемороя

 

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

Share this post


Link to post
Share on other sites

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

не ближайшие 2 недели :)

Share this post


Link to post
Share on other sites

Einshtein тут я полностью с тобой согласен, просто нужно вернуться к первому вопросу: что нужно
1. разобрать товар по составляющим и дать возможность их просмотреть и купить отдельно
2. собрать товар из составляющих, которые можно просмотреть и купить отдельно
3. докупить к товару чегой то еще....

вот от этого и плясать...

Share this post


Link to post
Share on other sites

Прикол в том, что я хочу спарсить товар с этого сайта, импортирую через модуль import/export pro, а там помойму нет привязки товара с рекомендуемыми. 

 

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Einshtein тут я полностью с тобой согласен, просто нужно вернуться к первому вопросу: что нужно

1. разобрать товар по составляющим и дать возможность их просмотреть и купить отдельно

2. собрать товар из составляющих, которые можно просмотреть и купить отдельно

3. докупить к товару чегой то еще....

вот от этого и плясать...

 

По сути вы написали, все что нужно... как бы одно и тоже.

 

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

Share this post


Link to post
Share on other sites

опции то да...сможете...а чем спарситься ссылка на этот товар? )))
опять ручная работа после парсинга...

Share this post


Link to post
Share on other sites

опции то да...сможете...а чем спарситься ссылка на этот товар? )))

 

Хороший вопрос, не знаю если получиться их слинковать, т.е. этот товар есть отдельно и он будет спарсен как отдельный товар если это ножки для ванной, то он находиться в категории аксессуары для ванной. 

 

Но вот вопрос к Einshtein - ваш способ как будет реализован? Ссылка у опции появиться откуда? Из БД ? т.е. на этот товар что в отдельной категории? 

Share this post


Link to post
Share on other sites

может тогда посмотреть в сторону этого модуля https://opencartforum.com/files/file/637-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%BA%D0%B8-vqmod/ и поработать напильником?

Share this post


Link to post
Share on other sites

может тогда посмотреть в сторону этого модуля https://opencartforum.com/files/file/637-%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C-%D0%BC%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%BA%D0%B8-vqmod/ и поработать напильником?

 

Может быть, я честно не знаю как Einshtein-y будет удобней.  Но думаю не плохая основа.

Share this post


Link to post
Share on other sites

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

 

 

Спасибо, буду благодарен $$$. 

Share this post


Link to post
Share on other sites

Хороший вопрос, не знаю если получиться их слинковать, т.е. этот товар есть отдельно и он будет спарсен как отдельный товар если это ножки для ванной, то он находиться в категории аксессуары для ванной. 

 

Но вот вопрос к Einshtein - ваш способ как будет реализован? Ссылка у опции появиться откуда? Из БД ? т.е. на этот товар что в отдельной категории? 

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

ну а в пользовательской части уже дело не хитрое вывести ссылку

Share this post


Link to post
Share on other sites

Ну значения будут браться со стандартных опций или нет? 

 

Как мне загнать товар, как опции? 

Share this post


Link to post
Share on other sites

Инструкция
(Делаем внимательно, сохраняем последовательность и расположения кода..я из-за невнимательности намаялся не мало)

 

1) Добавляем новое поле (links) в базе данных в таблицу option_value_description, после поля "name" , с параметрами varchar / 255 / utf8_general_ci  (все остальные параметры не трогаем)
В итоге получится должно вот так:
864a0baa1c75.png

или запросом
 

ALTER TABLE `префикс_option_value_description` ADD `links` varchar(255) NOT NULL; 

не забудьте префикс поменять на свой

2) открываем admin/model/catalog/option.php 

 

ищем

foreach ($option_value['option_value_description'] as $language_id => $option_value_description) {
					$this->db->query("INSERT INTO " . DB_PREFIX . "option_value_description SET option_value_id = '" . (int)$option_value_id . "', language_id = '" . (int)$language_id . "', option_id = '" . (int)$option_id . "', name = '" . $this->db->escape($option_value_description['name']) . "'");
				}

заменяем на
 

foreach ($option_value['option_value_description'] as $language_id => $option_value_description) {
					$this->db->query("INSERT INTO " . DB_PREFIX . "option_value_description SET option_value_id = '" . (int)$option_value_id . "', language_id = '" . (int)$language_id . "', option_id = '" . (int)$option_id . "', name = '" . $this->db->escape($option_value_description['name']) . "', links = '" . $this->db->escape($option_value_description['links']) .  "'");
				}

ищем

foreach ($option_value['option_value_description'] as $language_id => $option_value_description) {
					$this->db->query("INSERT INTO " . DB_PREFIX . "option_value_description SET option_value_id = '" . (int)$option_value_id . "', language_id = '" . (int)$language_id . "', option_id = '" . (int)$option_id . "', name = '" . $this->db->escape($option_value_description['name']) . "'");
				}

заменяем на

foreach ($option_value['option_value_description'] as $language_id => $option_value_description) {
					$this->db->query("INSERT INTO " . DB_PREFIX . "option_value_description SET option_value_id = '" . (int)$option_value_id . "', language_id = '" . (int)$language_id . "', option_id = '" . (int)$option_id . "', name = '" . $this->db->escape($option_value_description['name']) . "', links = '" . $this->db->escape($option_value_description['links']) . "'");
				}

ищем
 

foreach ($option_value_description_query->rows as $option_value_description) {				
				$option_value_description_data[$option_value_description['language_id']] = array('name' => $option_value_description['name']);
				
			}

после вставляем

$option_value_description_data2 = array();
			
			$option_value_description_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "option_value_description WHERE option_value_id = '" . (int)$option_value['option_value_id'] . "'");			
			foreach ($option_value_description_query->rows as $option_value_description) {				
				$option_value_description_data2[$option_value_description['language_id']] = array('links' => $option_value_description['links']);
				
			}

после 
 

'option_value_description' => $option_value_description_data,

вставляем

'option_value_description2' => $option_value_description_data2,	

3) открываем admin/controller/catalog/option.php

ищем

'option_value_description' => $option_value['option_value_description'],

после вставляем

'option_value_description2' => $option_value['option_value_description2'],

4) открываем admin/view/template/catalog/option_form.tpl

ищем
 

<td class="left"><div class="image"><img src="<?php echo $option_value['thumb']; ?>" alt="" id="thumb<?php echo $option_value_row; ?>" />

перед ним вставляем

 <td class="left"><input type="hidden" name="option_value[<?php echo $option_value_row; ?>][option_value_id]" value="<?php echo $option_value['option_value_id']; ?>" />
                <?php foreach ($languages as $language) { ?>
                <input type="text" name="option_value[<?php echo $option_value_row; ?>][option_value_description][<?php echo $language['language_id']; ?>][links]" value="<?php echo isset($option_value['option_value_description'][$language['language_id']]) ? $option_value['option_value_description2'][$language['language_id']]['links'] : ''; ?>" />
                <img src="view/image/flags/<?php echo $language['image']; ?>" title="<?php echo $language['name']; ?>" /><br />
                <?php } ?></td>

ищем

html += '    </td>';

после него вставляем

  html += '    <td class="left"><input type="hidden" name="option_value[' + option_value_row + '][option_value_id]" value="" />';
	<?php foreach ($languages as $language) { ?>
	html += '<input type="text" name="option_value[' + option_value_row + '][option_value_description][<?php echo $language['language_id']; ?>][links]" value="" /> <img src="view/image/flags/<?php echo $language['image']; ?>" title="<?php echo $language['name']; ?>" /><br />';
    <?php } ?>
	html += '    </td>';

ищем

 <td class="left"><?php echo $entry_image; ?></td> 

до него вставляем

<td class="left">ссылка</td> 

С админкой покончили, теперь если все правильно сделано - в админке - каталог - опции - изменить - добавить значение - появится дополнительное поле, которое будет служить ссылкой для нашей опции. То есть - выбираем тип опции "изображение",  добавляем новое значение опции, называем его например, "Iphone", напротив этого имени значения добавляем любую ссылку (например на страницу этого товара), добавляем изображение товара и сохраняем. Если все было сделано правильно - то сохранение пройдет успешно и при повторном заходе в эту опцию - имя, ссылка и картинка сохранятся на своих местах. Если нет - ищем, где мы накосячили, возможно код вставили не в том месте.

 

Теперь пользовательская часть

1) открываем catalog/model/catalog/product.php
ищем
 

'name'                    => $product_option_value['name'],

после вставляем
 

'links'                   => $product_option_value['links'],

2) открываем catalog/controller/product/product.php
 

после

'name'                    => $option_value['name'],

вставляем 

'links'                    => $option_value['links'],

3) открываем catalog/view/theme/Ваша_тема/template/product/product.tpl

 

ищем

<?php echo $option_value['name']; ?>

и заменяем во всех местах на 

<?php if ($option_value['links']) { ?><a href="<?php echo $option_value['links']; ?>"><?php echo $option_value['name']; ?></a> <?php } else { ?><?php echo $option_value['name']; ?><?php } ?>

Если нужно чтобы ссылка открывалась в новой вкладке, то после <a  нужно прописать target="_blank"

 

Share this post


Link to post
Share on other sites

А как сделать просто поле (с текстом)

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  

  • 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.