Jump to content
artem77777

Выделение товара,имеющего "опции"

Recommended Posts

Добрый день! необходим способ выделения из общего списка товара, имеющего  в наборе "опции". Занимаемся запасными частями кузова для автомобилей,как под покраску,так и уже окрашенными. Так клиент не всегда видит в описание товара "в цвет". Думал что то наподобие стикера,но не нашел подходящего модуля

Share this post


Link to post
Share on other sites

https://www.opencart.com/index.php?route=marketplace/extension/info&member_token=Omx9ZsPKY0OelaDQh7YXYAnDAdtetfcC&extension_id=38135

 

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

Edited by HasikBoy

Share this post


Link to post
Share on other sites

Можно что то типа такого

контроллер после
 

$data['products'][] = array(
'options'      => $options,

в тпл где нужно код стикера

<?php if ($product['options']) { ?>
<div class="options-sticker">бла бла бла</div>
<?php } ?>

или с языковой переменной, если мультриязычный

<?php if ($product['options']) { ?>
<div class="options-sticker"><?php echo $text_sticker; ?></div>
<?php } ?>

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

стилизовать по своему усмотрению

Share this post


Link to post
Share on other sites
В 14.02.2020 в 20:22, Castiil сказал:

Опишите детальнее 

вот пример. Два одинаковых продукта,НО один бампер продается уже крашенный в цвет(в опциях у него есть список выбора цвета). ЗАДАЧА: выделить продукт с опциями,так как слово "в цвет" сало кто замечает

Screenshot_6.png

Share this post


Link to post
Share on other sites
В 15.02.2020 в 12:47, Pascha сказал:

Можно что то типа такого

контроллер после
 


$data['products'][] = array(

'options'      => $options,

в тпл где нужно код стикера


<?php if ($product['options']) { ?>
<div class="options-sticker">бла бла бла</div>
<?php } ?>

или с языковой переменной, если мультриязычный


<?php if ($product['options']) { ?>
<div class="options-sticker"><?php echo $text_sticker; ?></div>
<?php } ?>

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

стилизовать по своему усмотрению

примерно понял,но не понял))))....можно чуть поподробнее?) пожалуйста

Share this post


Link to post
Share on other sites

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

Есть некая запчасть на замену, у этой запчасти есть несколько состояний, это :

Не окрашенная

Окрашенная в цвет кузова.

Почему не вывести это в опции, только в одном товаре?

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

Share this post


Link to post
Share on other sites
43 минуты назад, Tom сказал:

Почему не вывести это в опции, только в одном товаре?

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

указано "в цвет",но не все замечают. в одном нельзя,так как разные производители зачастую,это на скрине так совпало,что одинаковые

 

Share this post


Link to post
Share on other sites
4 часа назад, artem77777 сказал:

примерно понял,но не понял))))....можно чуть поподробнее?) пожалуйста

а чего там не понятного, кроме того что если есть опции - то на товаре (к примеру на картинке товара) автоматом появится стикер с какой то там надписью? Например "В цвет", или "Крашенные"...или "Под покраску". Если опций больше чем просто выбор цвета, то в условии можно прописать проверку на ID именно этой опции.
Или я не верно понял смысл Вашей фразы

В 14.02.2020 в 21:58, artem77777 сказал:

Думал что то наподобие стикера,но не нашел подходящего модуля


Ну а если не боитесь большого объема работы по ручной правке каждого товара для определения ему уникального стикера, то вот тут писал как сделать практически штатными методами

в принципе для других версий Опенкарт почти то же самое

Share this post


Link to post
Share on other sites

Еще вариант создать атрибут 

Окрашено да нет 

Вывод attribute_id = 5 ( если у вас 5) 

 Проверка да или нет если да вывод

Также будет реализации сделать в фильтре... Это вообще идеальный вариант 

  • +1 1

Share this post


Link to post
Share on other sites

А если будет другая опция то покажет в цвет и уже будет не к месту такой стикер 

Share this post


Link to post
Share on other sites
9 минут назад, Castiil сказал:

А если будет другая опция то покажет в цвет и уже будет не к месту такой стикер 

я уже писал об этом

43 минуты назад, Pascha сказал:

Если опций больше чем просто выбор цвета, то в условии можно прописать проверку на ID именно этой опции.

<?php if ($product['options']) { ?>

<?php foreach ($options as $option) { ?>

<?php if ($option['option_id'] == 27) { ?> 

<div class="options-sticker">В цвет</div> 

<?php } ?>

<?php } ?>

<?php } ?>

где 27 = ID нужной опции

Share this post


Link to post
Share on other sites
9 минут назад, Pascha сказал:

я уже писал об этом


<?php if ($product['options']) { ?>

<?php foreach ($options as $option) { ?>

<?php if ($option['option_id'] == 27) { ?> 

<div class="options-sticker">В цвет</div> 

<?php } ?>

<?php } ?>

<?php } ?>

где 27 = ID нужной опции

Ну тут да 2 варика 100% 

Опции с проверкой 

Атрибут с проверкой 

Share this post


Link to post
Share on other sites

думаю,вариант с "Атрибут с проверкой" мне больше подойдет, так как опций порядка 20,и я так понимаю,для каждой придется прописывать проверку??

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

Edited by artem77777

Share this post


Link to post
Share on other sites

    в контролере:

$data['products'][] = array(
            
                    
                    'attribute_id=16'   => $result['attribute_id=16'],
                    'manufacturer_img' => $manufacturer_img,
                    'product_id'  => $result['product_id'],
                    'thumb'       => $image,
                    'name'        => $result['name'],
                    'model'          => $result['model'],
                    'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..',
                    'price'       => $price,
                    'special'     => $special,
                
               в шаблоне:

 

 <?php if ($product['attribute_id=16']) { ?>
         бла бла бла
            <?php } ?></br>
      

 

 

результат:

 

Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382 
       

Edited by artem77777

Share this post


Link to post
Share on other sites
23 минуты назад, artem77777 сказал:

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

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

Share this post


Link to post
Share on other sites
9 минут назад, Pascha сказал:

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

но это лесть надо и искать их id)))да и редактировать код тогда при добавлений опций)) проще тогда же прописать код только для одного нужного атрибута

Edited by artem77777

Share this post


Link to post
Share on other sites
10 минут назад, Pascha сказал:

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

я имел ввиду,у меня 20 опций,и для каждой этой опции должно действовать это правило

 

Share this post


Link to post
Share on other sites
22 минуты назад, artem77777 сказал:

    в контролере:

$data['products'][] = array(
            
                    
                    'attribute_id=16'   => $result['attribute_id=16'],
                    'manufacturer_img' => $manufacturer_img,
                    'product_id'  => $result['product_id'],
                    'thumb'       => $image,
                    'name'        => $result['name'],
                    'model'          => $result['model'],
                    'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get($this->config->get('config_theme') . '_product_description_length')) . '..',
                    'price'       => $price,
                    'special'     => $special,
                
               в шаблоне:

 

 <?php if ($product['attribute_id=16']) { ?>
         бла бла бла
            <?php } ?></br>
      

 

 

результат:

 

Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382Notice: Undefined index: attribute_id=16 in /home/c/cd76988/ronexavto/public_html/system/storage/modification/catalog/controller/product/category.php on line 382 
       

 

 

 

что тут я не правильно делаю???

Share this post


Link to post
Share on other sites
2 минуты назад, artem77777 сказал:

но это лесть надо и искать их id)))да и редактировать код тогда при добавлений опций))

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

 'attribute_id=16'   => $result['attribute_id=16'],

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

Share this post


Link to post
Share on other sites
2 минуты назад, Pascha сказал:

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


 'attribute_id=16'   => $result['attribute_id=16'],

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

 

не надо!!! я все го лишь попытался догадаться......Но вышел "промах"))))

Share this post


Link to post
Share on other sites

подскажите пжл,как реализовать данную идею?))

 

Share this post


Link to post
Share on other sites
7 минут назад, Pascha сказал:

опять промах...

а то мы с вами как в "поле чудес"......вы как я якубович:"опять промах...".....а я барабан кручу и репу чешу..."как реализовать этот код"))))

Edited by artem77777

Share this post


Link to post
Share on other sites

В админке полно неиспользуемых полей типа  mpn, isbn, jan  итп. Будет мне кажется проще вывести.

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.