Модератор форума: Yuri_G  
Сообщество uCoz » Модули uCoz » Интернет-магазин » Опции товаров
Опции товаров
Модератор форума
Сообщение # 1 | 01:15:40
С последним обновлением в интернет-магазине появилась очень полезная и нужная функция - опции товаров.
С их помощью можно задать для товара цвет, размер,и т.д. добавить в заказ сопутствующие товары с наценками или без.
Опции могут быть 3-х видов:

1. Выпадающий список опций, которые влияют на цену.
2. Выпадающий список опций, которые не влияют на цену.
3. Чекбокс, который влияет на цену
4. Чекбокс, который не влияет на цену

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



И нажмите "Добавить опцию":



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

Порядком отображения опций на можно управлять, перемещая их синими стрелочками:



При добавлении/редактировании товара Опции выводятся в самом низу:



1 - список всех активных для категории опций. Те, которые отмечены галочками будут выводиться для данного товара
2 - список вариантов значений опции. Выводятся только отмеченные галочками
3 - наценка при выборе данной опции. Если стоит 0.00 то наценки не будет.

Действия которые необходимо произвести над шаблонами существующих магазинов, для полноценного функционирования опций товара:

Цитата
Корзина => Восстановить стандартный или скопировать в свой шаблон обновлённые JS-функции add2Basket() и buyNow()

Страница товара, Вид товара в каталоге, Вид товара в прайс-листе, Вид товара в печатной форме заказа => Восстановить стандартный или посмотреть как там используется код $OPTIONS$ и внедрить с cобственный шаблон

Вид товара в корзине => Восстановить стандартный или посмотреть как там используется код $OPTIONS$ и внедрить с cобственный шаблон. Так же обратить внимание, что в следствии утраты уникальности ID товара в корзине (один и тот же товар, но с разным набором выбранных опций можен несколько раз присуствовать в корзине) в данном шаблоне код $ID$ теперь принимает значения "товарной позиции в заказе", а ID товара можно получить отніне через код $GID$. Цена товара $PRICE$ включает в себя так же суммарную наценку от всех выбранных опций. Отдельно сумарную наценку можна получить через код $OVER$

Таблица стилей CSS => Восстановить стандартный или посмотреть новые селекторы .shop-options и внедрить с cобственные стили

Страница заказа => Восстановить стандартный или посмотреть как там используется код < ?$DIGITAL_GOODS$()? > и внедрить с cобственный шаблон.

Страница служебных форм => Восстановить стандартный или посмотреть как там используется код $PAGE_SELECTOR$ для страницы прайс-листа и внедрить с cобственный шаблон.

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

Напоминание по отображению пункта "Выбрать" в опциях товаров:
PitBacktner
Сообщений: 18
Репутация: 6

Сообщение # 811 | 20:42:03
Цитата sergeymitrichev ()
id-gphoto-$ID$

Ткните пальцем пожалуйста куда именно
sergeymitrichev
Сообщений: 1976
Репутация: 409

Сообщение # 812 | 22:53:40
PitBacktner, туда, где в шаблоне "Страница товара" установлено $THUMB$

Дурман
, //www.ucoz.ru/qa/index.php/67278/ это тот же вопрос насколько я понимаю и он уже решен?

PitBacktner
Сообщений: 18
Репутация: 6

Сообщение # 813 | 23:44:50
Цитата sergeymitrichev ()
PitBacktner, туда, где в шаблоне "Страница товара" установлено $THUMB$

К сожалению в шаблоне "Страница товара" нет этого кода $THUMB$ ((
Дурман
Сообщений: 19
Репутация: 0

Сообщение # 814 | 23:45:01
Цитата sergeymitrichev ()
Дурман, //www.ucoz.ru/qa/index.php/67278/ это тот же вопрос насколько я понимаю и он уже решен?

Вопрос этот, проблема решена, но не так как планировалось, есть в ней и минусы
от первоначального варианта, теперь на всех товарах отображается Наличие
в количестве, а не просто надписть Есть/нет в наличии(к примеру), дело в
том что некоторые товары требуют буквенного отображения потому что в
наличии их быть не может. И пришлось сделать возможным добавление
товаров с нулевым наличием, что может создавать сложности вдальнейшем. А
так же Наличие если =0 оно сразу может совсем не отображаться, а
появляется только при выборе опции. Вообщем вопросы еще есть, как под
этот вариант теперь сделать Наличие чтоб в числах отображалось только для администрации а
пользователи\гости видели надписи Есть\нет?
Сообщение отредактировал Дурман - Суббота, 30 Янв 2016, 00:12:18
sergeymitrichev
Сообщений: 1976
Репутация: 409

Сообщение # 815 | 11:54:20
PitBacktner, а $PHOTO$ есть? :)

Дурман, попробуйте следующее
Код
Наличие: <?if $GROUP_ID$ = 4?> $STOCK$ <?else?> <?if $STOCK$?> есть <?else?> нет <?endif?> <?endif?>

Дурман
Сообщений: 19
Репутация: 0

Сообщение # 816 | 12:09:31
Цитата sergeymitrichev ()
Наличие: <?if $GROUP_ID$ = 4?> $STOCK$ <?else?> <?if $STOCK$?> есть <?else?> нет <?endif?> <?endif?>
Почти, теперь всегда показывает Есть при любом значении Наличие, а как сделать чтоб при переменной = 0, показывало Нет?
sergeymitrichev
Сообщений: 1976
Репутация: 409

Сообщение # 817 | 15:14:24
Дурман, Вот так:

Код
Наличие: <?if $GROUP_ID$ = 4?> $STOCK$ <?else?> <?if $STOCK$>0?> есть <?else?> нет <?endif?> <?endif?>

Дурман
Сообщений: 19
Репутация: 0

Сообщение # 818 | 19:25:35
Цитата sergeymitrichev ()
Дурман, Вот так:
Наличие: <?if $GROUP_ID$ = 4?> $STOCK$ <?else?> <?if $STOCK$>0?> есть <?else?> нет <?endif?> <?endif?>

получилось вот так <li><span class="opt"><!--<s4377>-->Наличие<!--</s>-->:</span><?if $GROUP_ID$ = 4?> $STOCK$ <?else?> <?if $STOCK$>0?><b> Есть </b><?else?><b> Нет </b><?endif?> <?endif?>

+вам в карму, спасибо за помощь smile
PitBacktner
Сообщений: 18
Репутация: 6

Сообщение # 819 | 00:21:43
Цитата sergeymitrichev ()
PitBacktner, а $PHOTO$ есть? :)

Да, так заработало) НО вот этот код,

Код<div class="product-info">
<div class="left product-image">
<span class="image"><img id="cloud-zoom" src="$PHOTO$" width="350" height="350" title="$ENTRY_TITLE$" alt="$ENTRY_TITLE$" data-zoom-image="$PHOTO$" /></span>
<div class="additional-carousel">
<div class="customNavigation">
<a class="btn prev"> </a>
<a class="btn next"> </a>
</div>
и если вместо img id="cloud-zoom" вставить img id="id-gphoto-$ID$", то работают опции как надо, но не работает клоуд-зум этот. Можно ли их вместе заставить работать?
sergeymitrichev
Сообщений: 1976
Репутация: 409

Сообщение # 820 | 08:52:41
PitBacktner, думаю надо копаться в скрипте cloud-zoom
Как вариант, попробовать перенести cloud-zoom из id в класс, но надо в скрипте делать замену "#cloud-zoom" на ".cloud-zoom"

Если посмотреть на странице с документацией http://www.starplugins.com/cloudzoom/quickstart то можно увидеть, что там используется именно класс

Код
<!-- Setup the zoomImage property to point to the big image. -->
        <img class = "cloudzoom" src = "images/small/image1.jpg"             data-cloudzoom = "zoomImage: 'images/large/image1.jpg'" />

PitBacktner
Сообщений: 18
Репутация: 6

Сообщение # 821 | 00:21:06
Цитата sergeymitrichev ()
Как вариант, попробовать перенести cloud-zoom из id в класс, но надо в скрипте делать замену "#cloud-zoom" на ".cloud-zoom"

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

Код
<div class="product-info">
<div class="left product-image">
<span class="image"><img class = "cloud-zoom" img id="id-gphoto-$ID$" src="$PHOTO$" width="350" height="350" title="$ENTRY_TITLE$" alt="$ENTRY_TITLE$" data-zoom-image="$PHOTO$" /></span>
<div class="additional-carousel">
<div class="customNavigation">
<a class="btn prev"> </a>
<a class="btn next"> </a>
</div>


И вот такой вот скрипт


Код
<script>
$(".cloud-zoom").elevateZoom({gallery:'additional-carousel', cursor: 'pointer', galleryActiveClass: 'active', imageCrossfade: true, loadingIcon: '/images/spinner.gif'});
$(".cloud-zoom").bind("click", function(e) {
var ez = $('.cloud-zoom').data('elevateZoom');
$.fancybox(ez.getGalleryList());
return false;
});
</script>


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


Но если выбрать эту картинку из списка фотографий товара то увеличение проходит именно этой картинки.
Код для фотографий товара сейчас выглядит вот так:
Код
<div id="additional-carousel" class="image-additional product-carousel">
<?if($PHOTO$)?><a href="$PHOTO$" title="$ENTRY_TITLE$" class="elevatezoom-gallery" data-image="$PHOTO$" data-zoom-image="$PHOTO$"><br /><br /><br /></a><?else?><?endif?>
<?if($PHOTO_1$)?><div class="slider-item">
<div class="product-block">
<a href="$PHOTO$" title="$ENTRY_TITLE$" class="elevatezoom-gallery" data-image="$PHOTO$" data-zoom-image="$PHOTO$"><img id="cloud-zoom" src="$PHOTO$" width="74" height="74" title="$ENTRY_TITLE$" alt="$ENTRY_TITLE$" /></a>
</div>
</div><?else?>
<?if($PHOTO$)?><a href="$PHOTO$" title="$ENTRY_TITLE$" class="elevatezoom-gallery" data-image="$PHOTO$" data-zoom-image="$PHOTO$"><br /><br /><br /></a><?endif?>
<?endif?>

<?if($PHOTO_1$)?>
<div class="slider-item">
<div class="product-block">
<a href="$PHOTO_1$" title="$ENTRY_TITLE$" class="elevatezoom-gallery" data-image="$PHOTO_1$" data-zoom-image="$PHOTO_1$"><img id="cloud-zoom" src="$PHOTO_1$" width="74" height="74" title="$ENTRY_TITLE$" alt="$ENTRY_TITLE$" /></a>
</div>
</div>
<?endif?>

и т.д. для каждой фото
sergeymitrichev
Сообщений: 1976
Репутация: 409

Сообщение # 822 | 00:58:33
PitBacktner, можно попробовать с помощью AjaxComplete отлавливать все запросы на изменение опций и переинициализировать cloud-zoom для нового изображения

AVC0786
Сообщений: 12
Репутация: 0

Сообщение # 823 | 00:51:29
Все здравствуйте!
Друзья, помогите, пожалуйста!
Может кто знает, можно ли как-то сделать фильтр товаров по опциям товаров, т.е. у меня задана опция товара - цвет: белый, черный, серый... и вот я хочу понять, можно ли вывести фильтрацию по этим самым опциям товара?
Сообщение отредактировал AVC0786 - Суббота, 06 Фев 2016, 19:20:25
sergeymitrichev
Сообщений: 1976
Репутация: 409

Сообщение # 824 | 19:48:20
AVC0786, в данный момент такой возможности нет. По фильтрам много вопросов, вероятно, через некоторое время что-то изменится smile

AVC0786
Сообщений: 12
Репутация: 0

Сообщение # 825 | 19:54:26
Цитата sergeymitrichev ()
AVC0786, в данный момент такой возможности нет. По фильтрам много вопросов, вероятно, через некоторое время что-то изменится
Спасибо, я понял, это, конечно, грустно.. А может Вам встречались какие-то идеи реализации? Я ломаю голову уже два дня, начал даже изучать php =))
Сообщество uCoz » Модули uCoz » Интернет-магазин » Опции товаров
Поиск: