В этой статье я расскажу о том, как добавить товару дополнительные опции, которые имеют дополнительную стоимость и контролируемые остатки.
Virtuemart 2 - интернет-магазин на Joomla. Часть 8. Дочерние товары с контролем остатков (Stockable Variants Plugin).

Сегодня мы затронем одну из самых сложных и интересных возможностей Virtuemart 2 – составные товары. Что это такое? Простейшим примером может быть кухонный гарнитур или футболка, имеющая разные размеры и цвета. Такие товары состоят из нескольких позиций, причем важно контролировать остатки каждой их них. В этой статье я расскажу о том, как добавить товару дополнительные опции, которые имеют дополнительную стоимость и контролируемые остатки.

Для большего понимания опишу два вида представления товаров, которые могут использоваться в Virtuemart 2.

Задача: продавать футболку одного типа, но разных размеров и цветов. Разные размеры и цвета имеют разную стоимость. При этом остатки на складе всех видов футболки должны контролироваться.

Решение 1: Создать несколько товаров. Например: футболка зеленая M, футболка зеленая L, футболка зеленая XL, футболка красная M, футболка красная L, футболка красная XL, и т.д.

Решение 2: Создать один товар, в котором добавить опции, позволяющие выбирать размер и цвет.

Очевидно, решение 2 удобнее как для продавца, так и для покупателей. Реализация также вполне понятна: создаем два дополнительных поля «Размер» и «Цвет», являющихся атрибутами корзины и добавляем их для товара. Этот способ отлично работает, но только в том случае, когда не требуется контроль остатков. Если же он все-таки нужен, то этот метод не подходит.

Очевидно, чтобы контролировать остатки по каждой позиции, необходимо завести  соответствующие товары в магазине. Т.е. приходим к решению 1. Правда есть возможность упростить восприятие товара для покупателей. Т.е., хотя товаров и много, покупатель будет видеть всего одну футболку, но с выбором подходящих опций. Здесь мы приходим к термину «Дочерние товары».  Родительским товаром в нашем примере будет футболка. А дочерними – «зеленая M», «зеленая L», «зеленая XL», «красная M», «красная L», «красная XL», и т.д. Для дочерних товаров можно установить собственные цены и остатки. Остается главный вопрос: как настроить все это в Virtuemart 2? Для подобных ситуаций предназначено дополнительное поле типа «Stockable Variants Plugin».

Stockable Variants Plugin. Использование.

Прежде всего, необходимо создать дополнительное поле нужного типа.  Переходим в дополнительные поля Virtuemart 2 и добавляем новое поле.  В типе поля выбираем «Плагины». В появившимся списке плагинов выбираем «Stockable Variants». Для примера создадим опцию «Size» и добавим три варианта размеров: Small, Medium и Large. Каждый размер указываем с новой строки, как на рисунке:

virtuemart 2 stockable variants

Дополнительно установим опцию, «Атрибут корзины» в «Да». Сохраняем.

Всё. Поле создано.

Stockable Variants Plugin. Дочерние товары.

Теперь пришло время создать дочерние товары под данные опции. Для этого перейдем в список товаров Virtuemart, отметим галочкой нашу футболку (предполагается, что обычный товар «футболка» уже создан) и нажмем кнопку «Дочерний товар». После нажатия кнопки откроется форма добавления дочернего товара. Большинство из доступных полей можно не заполнять, но следует задать название товара «Футболка размера Small», артикул и остаток на складе. Цену можно не указывать, т.к. такая возможность еще будет доступна позднее. После этого сохраняем наш дочерний товар.

Вернувшись к списку товаров Virtuemart 2, вы можете увидеть 1 дочерний товар в колонке «Дочерние товары». Теперь вы можете кликнуть по нему и увидеть список дочерних товаров.

По аналогичному принципу добавляем к нашей футболке еще два дочерних товара – размеры Medium и Large.

Stockable Variants Plugin. Добавление дочерних товаров к родительскому через дополнительное поле.

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

virtuemart 2 stockable variants

Остается только задать для них опции размера и цену каждой из опций. Обратите внимание, что указанная здесь цена не будет окончательной ценой данного товара, она добавится к основной цене родительского товара. Т.е. к примеру, если родительский товар стоит 100 руб. и для дочерних вы указываете 10, 20 и 30 руб. соответственно, то при выборе покупателем опций он получит цену в 110, 120 и 130 руб.

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

Сделав шаги, описанные выше, вы получите товар «Футболка» с возможностью выбора размера и контролем остатков футболок каждого размера на складе.

Stockable Variants Plugin. Мультиопции.

А теперь немного усложним. Что если у нас есть зависимые опции? Скажем, пять размеров и три цвета футболки. Всего получается 15 разных видов футболки. Показывать покупателю выпадающий список из 15 различных позиций нехорошо, согласитесь. Совсем другое дело, если будет показано два списка «Размер» и «Цвет». В первом будет 5 размеров, во втором 3 цвета.  Это гораздо удобнее. Как этого добиться?

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

virtuemart 2 stockable variants

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

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

virtuemart 2 stockable variants

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

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

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

Об авторе
Об авторе
Wedal (Виталий). Веб-разработчик полного цикла (Full Stack). Создатель и автор сайта Wedal.ru.
Основной профиль – создание сайтов и расширений на CMS Joomla.

Добавить комментарий

Для отправки комментария введите код с картинки:
Защитный код
Обновить

Комментарии  

-1 # Vetal 10.03.2013 13:55
Здравствуйте,
и все равно в данном плагине цена "плюсуется" к основной?
Ответить | Ответить с цитатой | Цитировать
0 # Светлана 14.01.2016 20:37
Цену основного товара можно сделать 0,000001 коп.
Ответить | Ответить с цитатой | Цитировать
0 # web11 11.03.2013 04:47
спасибо, очень ценный материал!
Ответить | Ответить с цитатой | Цитировать
0 # Lelja_05 11.03.2013 08:57
Добрый день, отличная статья!
У меня возникла одна проблема. Делаю размеры для одежды, на каждый размер свой дочерний товар. В родительском товаре добавляю с помощью настраиваемого поля stockable variants дочерние товары. В карточке родительского товара появляется выпадающий список, выбираю нужный размер (если при для дочки была изменена цена, то изменяется цифра). Нажимаю кнопку "В корзину" (кстати, их выведено две), и вместо сообщения, что товар положен в корзину появляется сообщение, что товар есть в наличии. Подскажите плиз, как поправить добавление товара в корзину?
Посмотреть можно тут:
http://miabella.ru/index.php/swimwear/kupalnik-scarlett-detail
Буду очень признательна за комментарии, Ольга
Ответить | Ответить с цитатой | Цитировать
+1 # Lelja_05 13.03.2013 14:27
Я нашла решение - просто заменила 2 файла в папке /plugins/vmcustom/stockable
Новые файлы взяла из другого сайта ИМ.
Ответить | Ответить с цитатой | Цитировать
+1 # Alvisid 14.03.2013 13:21
Добрый день!
Спасибо, очень хорошая статья, как и все остальные на Вашем сайте.
Сейчас занимаюсь добавлением моделей обуви на новый сайт и очень интересует один главный вопрос:
Возможно ли как то через phpmyadmin или другим способом добавить во все модели необходимые дочерние товары(размеры с 35 по 41) или может быть есть способ перенести данные размеры(свойства товара) из vurtuemart 1.1.9 в virtuemart 2.0.12?
Заранее благодарен за совет!!!
Ответить | Ответить с цитатой | Цитировать
+2 # Wedal 15.03.2013 06:12
Alvisid, проще всего использовать экспорт/импорт CSV. Ставите компонент CSVI. Создаете один дочерний товар и поле для него по этой статье. Экспортируете. Смотрите формат данных. По образу и подобию добавляете в файл другие товары. Импортируете. Profit!
Ответить | Ответить с цитатой | Цитировать
0 # Алексей из Кингисепп 15.10.2013 01:14
Доброго вам времени суток хороший человек.
Не могли бы вы сделать статью о массовом импорте/экспорте дочерних товаров в VM2 при помощи CSVI с последующей подвязкой к плагину Stockable Variants Plugin.
При создании магазина женского белья я перенес в него товары (парсингом) с сайта поставщика. Поставщик прислал файл где для каждого товара есть дочка характеризующаяся размер/цвет, цена, остаток. И как подвязать этот файл к магазину через csvi для меня стало очень большой проблемой, ввиду отсутствия руководств на эту тему (импорт дочерних товаров через CSVI в VM2) ни на русском ни на английском. Для VM1 на сайте CSVI было руководство на английском языке для импорта дочерних товаров (где все понятно), а для VM2 руководстово по работе с настраиваимы полями (там многое непонятно).
Ответить | Ответить с цитатой | Цитировать
+1 # milenial 16.03.2013 11:14
Спасибо за статью.
Сделал все как здесь описано и вроде все нормльно, выводится список, выбраный товар попадает в корзину, но при смене выбора не меняется описание на соответствующее доченрнему товару, как это было в VM 1.
Так и должно быть или может это только проблема моего шаблона?

Уже решил, в моем случае надо использовать поле "Общий дочерний вид".
Работает как надо, я бы сказал, что реализовано даже лучше и удобней чем в VM 1.
Ответить | Ответить с цитатой | Цитировать
+1 # borro 22.03.2013 11:03
Цитирую milenial:

Уже решил, в моем случае надо использовать поле "Общий дочерний вид".

Здравствуйте. Скажите, а фотография товара меняется при выборе дочернего товара?
Ответить | Ответить с цитатой | Цитировать
+1 # Робинзон 01.05.2013 10:53
Да, фотография меняется. Мне кажется, очень удобное это поле. Если у вас футболки разных цветов, то желательно все-таки выводить разные фотографии.
Автору спасибо за статьи, очень помогают разбираться с Виртуемартом.
Ответить | Ответить с цитатой | Цитировать
+2 # stts 13.05.2013 16:36
можете подробней описать что вы делали??? желательно по-шагово
Ответить | Ответить с цитатой | Цитировать
+1 # smird 17.03.2013 19:27
Добрый день. У меня J2.5.9 и VM2.0.20a.
Столкнулся со следующей проблемой. Если у вас есть товар А, а к нему 2 дочерних товара А1 и А2. Количество в наличии для каждого дочернего товара указано по 1.
Так вот проблема в том, что дочерние товары добавляются в корзину столько раз, сколько вы нажмете на кнопку...
Есть ли какое-то решение проблемы или снова ждать очередного обновления?
Ответить | Ответить с цитатой | Цитировать
+1 # Wedal 18.03.2013 01:51
smird, а с обычным товаром такого не происходит?
Ответить | Ответить с цитатой | Цитировать
+1 # smird 18.03.2013 07:31
Нет, только с дочерними. Причем эта тема неоднократно поднималась на форуме VM2, но никакого ответа пока нет.
У вас подобная ошибка не возникает?
Ответить | Ответить с цитатой | Цитировать
+1 # Wedal 19.03.2013 02:06
smird, не пробовал. Раз тема поднималась на официальном форуме, то скорее всего баг.
Ответить | Ответить с цитатой | Цитировать
0 # cde 16.01.2015 13:12
Да, так и есть, это баг. И, к сожалению, разработчики до сих пор не могут его исправить. Хотя, я считаю, это стандартный функционал, и без него в моем случае вообще невозможно работать.
Но есть решение, не совсем корректное, но работает: http://www.rupostel.com/phpBB3/viewtopic.php?f=5&t=937&sid=1b5d2e395866210264df3bf3f077ebbc

При этом у основного товара должен быть остаток = 0.
Ответить | Ответить с цитатой | Цитировать
+1 # Андрей 18.03.2013 13:06
Спасибо! Очень доходчиво.
Подскажите, а обязательно ли в случае с плагином создавать дочерние товары для каждого сочетания свойств? Нельзя ли как в варианте с дополнительными полями просто добавить эти поля. Заинтересовался плагином как раз из-за различного сочетаний свойств и невозможности получения определенных комбинаций свойств. Контроль товаров для меня не критичен.
Ответить | Ответить с цитатой | Цитировать
+1 # Wedal 19.03.2013 02:02
Андрей, обязательно. Иначе как вы ограничите некоторые из комбинаций.
Ответить | Ответить с цитатой | Цитировать
+1 # borro 22.03.2013 11:51
Здравствуйте.
Если товары вводились до того, как появилась надобность сделать часть из них дочерними, то есть ли средства в панели управления, чтобы введенный товар сделать дочерним другого товара? Или только через Phpmyadmin? VM 2.0.18a
Ответить | Ответить с цитатой | Цитировать
+1 # Wedal 25.03.2013 05:17
borro, хороший вопрос, я не пробовал. Второй способ точно рабочий. Первый - нужно ставить опыты.
Ответить | Ответить с цитатой | Цитировать
+1 # Руслан 30.03.2013 16:49
Пример к какой версии Virtuemart?
2.0.20b - не так все
Ответить | Ответить с цитатой | Цитировать
+1 # Руслан 30.03.2013 17:04
как вывести просто разные размеры в 2.0.20b?
Ответить | Ответить с цитатой | Цитировать
+1 # Wedal 01.04.2013 08:05
Руслан, чтобы просто вывести разные размеры, нужно добавить одно и то же поле к товару несколько раз. Каждый раз указывать один из размеров.
Ответить | Ответить с цитатой | Цитировать
+1 # Руслан 01.04.2013 08:48
Спасибо уже розобрался ;-)
Ответить | Ответить с цитатой | Цитировать
+3 # borro 05.04.2013 11:19
Здравствуйте, Виталий. Не понятно как через админку удалить неправильно созданные дочерние товары. Вы знаете?
Ответить | Ответить с цитатой | Цитировать
0 # Sirooff 16.04.2013 13:36
В качестве дочерних выступают разные размеры джинс. По каждому из размеров указан запас: Размер 1" - 1шт, "Размер 2" - 1 шт. В родительском товаре указан общий запас (сумма джинс всех размеров).

Если продаётся 1 шт "Размера 1", то запас по нему уменьшается до 0.

А запас родительского товара при этом остаётся неизменным (2 шт), а должен тоже уменьшиться и стать 1 шт, ведь один размер уже продан.

Как это реализовать?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 17.04.2013 01:41
Sirooff, родительский товар и дочерние - это разные товары. Самый простой способ - не задавать родительскому товару остаток, задавать только дочерним. Если же нужно показывать общий остаток, то вычислить его, как сумму остатков дочерних прямо в макете.
Ответить | Ответить с цитатой | Цитировать
0 # Lelja 16.04.2013 13:38
Цитирую Sirooff:
В качестве дочерних выступают разные размеры джинс. По каждому из размеров указан запас: Размер 1" - 1шт, "Размер 2" - 1 шт. В родительском товаре указан общий запас (сумма джинс всех размеров).

Если продаётся 1 шт "Размера 1", то запас по нему уменьшается до 0.

А запас родительского товара при этом остаётся неизменным (2 шт), а должен тоже уменьшиться и стать 1 шт, ведь один размер уже продан.

Как это реализовать?

Действительно интересный вопрос, у меня та же проблема, пока решения не нашла. Если у вас что-то найдется, сообщите плиз.
Ответить | Ответить с цитатой | Цитировать
0 # cvoboda00 12.05.2013 04:07
Здравствуйте, подскажите, в след проблеме. У меня virt 2.0.6, через настраиваемое поле "Общий дочерний вид" создаю вывод дочернего товара (радиатор 350) в карточке товара (радиатор 500). Дочерний товар наследует от родительского вывод др настраиваемых полей (количество секций), которые были созданы ранее у родительского. У дочернего товара в этих полях меняю разницу в цене между свойствами (количество секций), так как дочерний стоит дешевле. У родительского товара селектор переключения дочерних товаров работает нормально, а если перейти в дочерний по этому селектору, то в селекторе остается только дочерний. Как это исправить, почему при смене унаследованных свойств в селекторе у дочернего товара пропадает выбор между товарами?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 13.05.2013 02:30
cvoboda00, как вам ответить... Чем дальше в лес, тем толще партизаны. Плохо пока обстоят дела с отображением дочерних товаров со свойствами. Очень уж специфическая и сложная тема.
Ответить | Ответить с цитатой | Цитировать
0 # cvoboda00 13.05.2013 14:29
Понятно... а возможно ли в настраиваемых полях (атрибут корзины) помимо сложения добавить умножение, чтобы свойства товара умножались когда ставишь знак * от начальной цены товара. Я так понимаю за это отвечает calculationh.php В строке 304 можно заменить в $basePriceShopCurrency = $basePriceShopCurrency + doubleval($variant); + на *, но тогда свойства будут просто умножаться, а как сделать, чтобы когда надо складывались, т.е например пишешь +100 либо *100...
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 14.05.2013 01:52
cvoboda00, варианты:
- хак ядра;
- просто прибавлять столько, сколько будет при умножении.
Ответить | Ответить с цитатой | Цитировать
0 # cvoboda00 14.05.2013 12:00
Цитирую Wedal:
cvoboda00, варианты:
- хак ядра;
- просто прибавлять столько, сколько будет при умножении.

- К сожалению не настолько в этом разбираюсь, чтобы сделать хак ядра, если бы кто ниб хотя бы направил что и как..
- прибавлять сколько нужно меня не выручит к сожалению.. Дело в том, что хочу организовать продажу алюминиевых радиаторов. У них идет отличие в межосевом расстоянии и количестве секций.
Поэтому хотел поставить зависимость количества секций через умножение: 2 секц - *2, 3секц - *3 и тд ,а зависимость между осевым расстоянием простым сложением: 350мм -0, 500мм - +10. Можно конечно сделать через плагин stockable variants и дочерних товаров, но делать 32 дочернего товара - не вариант ,да еще и глюк идет какой то при добавлении товара в корзину, почему то плюсуется лишняя сумма к стоимости товара.. короче в раздумьях, знаний не хватает...
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 15.05.2013 01:39
cvoboda00, зачем вам здесь вообще дочерние товары? Создайте 2 простых дополнительных поля, являющихся атрибутами корзины: "Количество секций" и "Межосевое расстояние". Далее просто в товаре добавляете это поле столько раз, сколько различных вариантов может быть. Для каждого варианта указываете отдельную стоимость.
Ответить | Ответить с цитатой | Цитировать
0 # cvoboda00 14.05.2013 12:01
Может можно добавить хотя бы чтобы программа проценты понимала: +100%, +200%, мне бы выручило
Ответить | Ответить с цитатой | Цитировать
0 # Анна 15.05.2013 15:12
Статья очень полезная!!! НО..

добавляем товар, оформляем заказ и выходит такая ошибка
Fatal error: Cannot use string offset as an array in /home/bewoman/bewoman-shop.ru/docs/plugins/vmcusto m/stockable/stockable.php on line 438

заказ не оформляется
может что не так поняли??? помогите пожалуйста!
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 17.05.2013 01:46
Анна, на каком этапе/странице?
Ответить | Ответить с цитатой | Цитировать
0 # Анна 17.05.2013 08:52
На этапе, когда я подтверждаю уже заказ, то есть когда мне должно выйти окно о том, что "Ваш заказ сформирован, спасибо..."
Ответить | Ответить с цитатой | Цитировать
0 # cvoboda00 17.05.2013 14:21
Увеличил поле "по умолчанию"

в файле administrator\components\com_virtuemart\helpers\html.php
в строчке public static function input($name,$value,$class='class="inputbox"',$readonly='',$size='37',$maxlength='255',$more=''){

Поле увеличилось, но при сохранении обрезается текст, такое ощущение, что где то еще ограничение, не подскажите в каком файле, все облазил уже...
Ответить | Ответить с цитатой | Цитировать
0 # neofiles 14.06.2013 07:42
если создать товар "кухня" - и сделать поля из следующих вариантов - кол-во модулей(10 видов);тип покрытия(100 видов); цвет покрытия(20 видов); материал(5 видов) - это ж сколько дочек? Получается можно в 1 товаре весь магазин расписать?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 17.06.2013 03:24
neofiles, да можно. Но нужно учитывать на сколько это будет удобно для вас и для пользователей. Иногда проще создать несколько отдельных товаров.
Ответить | Ответить с цитатой | Цитировать
0 # neofiles 17.06.2013 07:52
Ко мне обратился знакомый, с просьбой, возможно ли создать подобное http://estel-mebel.ru/furniture/kitchens/show_34/ на joomla. Пока лучшего варианта чем этот не нашел.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 19.06.2013 03:18
neofiles, можно, конечно, но придется много доделывать/переделывать. Если есть хорошие знания PHP и JS, то можно делать, если нет, то не стоит даже пытаться.
Ответить | Ответить с цитатой | Цитировать
0 # Робинзон 20.06.2013 09:07
Добрый день. У меня в шаблоне DarkMart список связанных товаров, описание товара и оценки выводятся в виде вкладок. Выглядит это так http://tatro2.bget.ru/internet-shop/chajnaya-posuda/chajniki-zavarochnye/chajnik-pelikan-detail.html (ссылку уберите потом, пожалуйста). По умолчанию открыта вкладка описание, а надо, чтобы была открыта вкладка выбрать декоры(там связанные товары).Пробовал поменять местами (передвинул код вкладки связанных товаров наверх и поставил его над кодом описания, вкладки сдвинулись, но все равно при заходе в карточку открыта вкладка описание,хотя стояла на втором месте. Не подскажете, как поменять код, чтобы при заходе была открыта нужная вкладка? Могу скинуть на почту отрывок кода файла дефолт карточки товара.
Заранее извиняюсь за ссылку и за вопрос.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 21.06.2013 03:54
Робинзон, в макете, где выводятся эти вкладки, у первой скорее всего в li есть класс "selected". Его нужно перенести на второй li.
Ответить | Ответить с цитатой | Цитировать
0 # Робинзон 25.06.2013 07:15
Добрый день. Спасибо. Меню изменяется, но надо еще править код, чтобы в таблице менялось содержимое по умолчанию. Там каша (для меня) изрядная. Пока отложу.
Простите, еще вопрос. Вот тут http://alanart.spb.ru/catalog.html на сайте есть каталог (джумла 1.5).Интернет-магазин тоже есть.Надо создать такой же каталог на J 2.5 Не посоветуете, какой компонент для этого подходит? Может, сможете по внешнему виду "узнать" старый компонент для 1.5? По названию определить не могу, компонент каталога называется, как и сайт "дизайн студия алан" Я уже голову сломал.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 26.06.2013 02:44
Робинзон, похоже, что самописный.
Ответить | Ответить с цитатой | Цитировать
0 # Abr0 24.08.2013 12:25
Добрый день. Спасибо за инструкцию, но после всех манипуляций появилась одна проблема: При смене параметров (например размер и цвет) не меняется карточка товара, фото, описание, артикул. Так и должно быть?

Joomla 2.5 + VM 2.0.22a
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 26.08.2013 06:32
Abr0, в данном варианте - да. Чтобы карточка менялась нужно использовать просто дочерние товары, не это поле. Да и меняется она не очень удобно.
Ответить | Ответить с цитатой | Цитировать
0 # Андрей Карпов 01.09.2013 13:57
Всё сделал по инструкции. Цена меняется, фото - нет. (Уже прочитал, что это есть в другом плагине, но неудобно)
А что с остатками? Сделал 16 дочерних товаров (4 цвета и 4 размера), поставил наличие по нескольким. Тем не менее, даёт выбирать всё подряд. Контроль остатков включён. Кстати, пришлось поставить наличие виртуальному родительскому товару.
Что не так?
Ответить | Ответить с цитатой | Цитировать
0 # JediG 14.09.2013 15:26
Сайт www.saltaim.ru
Joomla! 2.5.14
VM 2.0.22c
Разбираюсь с этой замечательной функцией которую давно хотел, но руки не доходили.
Вроде все сделал по инструкции, но что-то не то.
Самостоятельный товар A800 работает замечательно, а вот родитель A660 имеет две дочки, но не сам родитель, не дочки не кладутся в корзину. Да и не понятно почему дочки отображаются, ведь их наверно не должно быть видно как самостоятельные товар в категории? Хотя возможно их нужно просто из категории удалить, но товар все-равно в корзинку не лезет.
Ответить | Ответить с цитатой | Цитировать
0 # JediG 16.09.2013 04:54
У родителя и дочек под кнопкой "Добавить в корзину" формируется какой-то неправильный код, точнее его там почти нет, вот и кидает на главную страницу. Понять бы причину, да совсем я не программист.
Ответить | Ответить с цитатой | Цитировать
0 # JediG 18.09.2013 11:35
А Вы в курсе что этот плагин уже не такой как в этом описании, он изменился и похоже в связке Joomla! 2.5.14 VM 2.0.22c он не работает. Было бы не плохо если бы какой-нибудь гуру попробовал свежую версию в деле и помог разобраться. Плагин то полезный.
Ответить | Ответить с цитатой | Цитировать
0 # JediG 18.09.2013 12:12
В данный момент эту проблему обсуждают вот тут http://forum.virtuemart.net/index.php?topic=118677.0
Если конечно мой английский меня не подвел.
Ответить | Ответить с цитатой | Цитировать
0 # JediG 29.09.2013 09:23
VM 2.0.22e проблема о которой я писал выше исправлена. Так что если кому-то интересен этот плагин то можно с ним разбираться.

В моем случае он не решает задачи на 100%. Но мне с моим английским похоже не найти взаимопонимания. Не уверен что правильно задаю вопрос и не уверен что правильно понимаю то что мне пишут
http://forum.virtuemart.net/index.php?topic=118931.0
Ответить | Ответить с цитатой | Цитировать
0 # JediG 01.10.2013 09:06
Хочу чтобы у родителя отображалось изображение выбранного ребенка.
Вот сайт на котором пытаюсь это получить
http://saltaim.ru/index.php/smartphones
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 02.10.2013 02:41
JediG, можете начать с этой темы: http://joomlaforum.ru/index.php/topic,218871.0.html
Ответить | Ответить с цитатой | Цитировать
0 # JediG 02.10.2013 03:23
Цитирую Wedal:
JediG, можете начать с этой темы: http://joomlaforum.ru/index.php/topic,218871.0.html

Буду разбираться в том что там написано, может поможет. Но то что я вижу в первом посте не то что я бы хотел получить в результате. Кое-какие мысли у меня уже появились, но второй вопрос: Как сделать так чтобы "дети" не отображались в категории я еще не нашел, а без него никак. Пока они видны все это не имеет смысл. Хочется чего-то подобного:
http://www.mountaingear.com/webstore/Clothing/Jackets/Marmot/PreCip-Jacket-Women-s/_/R-227127.htm
В данном случае, как мне кажется, "родитель" не является носителем цвета, а все цвета это цвета "дочек".
Ответить | Ответить с цитатой | Цитировать
0 # JediG 01.10.2013 09:08
http://saltaim.ru/index.php/smartphones

В категории в которой живет родитель есть его дети. Хочется дети не отображались, но убрать их из категории не могу, т.к. планируется привязка базы к 1С и все товары одной категории и должны быть в этой категории.
Ответить | Ответить с цитатой | Цитировать
0 # DSB 10.10.2013 10:41
Ну на конец-то что-то полезное по поводу полей.
Только столкнулся с таким глюком.
Действующие лица)))
Товар - пальто (родитель)
Дочерние товары - Варианты, отличающиеся размером и цветом (2 опции)
Ядро - VM 2.0.24
Шаблон GK StoreBox.
Суть:
Сделал все по инструкции - заработало, счастью нет предела))), только появились кнопки + и -, коих раньше не было, но так даже лучше. Неприятно другое: все работает, если не авторизоваться. У авторизовавшихся пользователей список размеров норм, а список цветов пуст, кнопки + и - исчезают. В корзину добавляет товар с первым цветом в опциях. Товар заказной т.е. остаток 0, опции на цену не влияют. Подобная реализация необходима в связи с особенностями поставок товара.
Если можете помочь - плз. Уже мозги сломал.
Ответить | Ответить с цитатой | Цитировать
0 # DSB 10.10.2013 13:55
Эксперименты показали, что для незарегистрированного пользователя кнопка добавить в корзину отображается независимо от контроля остатков и наличия товара, рядом с ней успешно раполагается кнопка Уведомить меня. Также, при наличии дочерних товаров на остатках, но нулевом остатке родителя, товар отображается как отсутствующий в наличии.
P.S. Дочерним товарам группа не присвоена.
Ответить | Ответить с цитатой | Цитировать
0 # S.E. 01.12.2013 20:50
Помогите определиться с логикой построения:
Магазин специй, товар для покупки выбирается по весу упаковки: 100г, 150г...
Что использовать: свойство или дочерние товары?
Учет количества не нужен (указывается только для главного товара), вроде бы можно использовать свойство товара, НО тогда не получится автоматически рассчитать стоимость доставки (+ раздражающий вывод списка свойств, когда показывается прибавленная стоимость).
Если делать дочерние товары - то необходимо для каждого дочернего товара заполнять много лишней информации.
Как лучше поступить?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 02.12.2013 03:47
S.E., вы сами описали плюсы и минусы каждого из способов. Далее просто решите, что для вас важнее. Если автоматический расчет стоимости доставки, то используйте дочерние товары, если удобство наполнения, то свойства.
Ответить | Ответить с цитатой | Цитировать
0 # DSB 02.12.2013 08:18
Расчет стоимости доставки - это да, трудность, но на самом деле не такая уж. Как по мне, модуль доставки Вирта не очень удобен, по крайней мере в моем случае.
К стати, если не используешь систему расчета налогов и для доставки используется только один способ, то можно использовать ее для этих целей, исходя из стоимости. Конечно, придется посидеть с калькулятором и поправить файлы локализации, но это вариант, сам эту систему не по назначению использую, удобно)))
А по поводу прибавки к стоимости, это легко решается правкой кода, а точнее удалением кода, отвечающего за вывод этих данных.
Ответить | Ответить с цитатой | Цитировать
0 # borro 28.12.2013 05:50
Доброго утра, Виталий. Нужно продавать картины, с возможностью выбора типа багета, чтобы информация о выбранном багете также отобразилась в формируемом pdf или письме о заказе. Это как раз показание к применению дочерних товаров? Тип выбранного багета не влияет на стоимость картины, но в перспективе может. VM 2.0.18a. Есть ли возможность отображать и менять картинку багета на странице описания товара в зависимости от выбранного багета?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 30.12.2013 02:44
borro, в стандартном варианте - нет. Встречал платный плагин, который позволял это делать, либо можно использовать дочерние товары и перепилить код макета, как описано здесь:http://www.joomla-create.net/item/tovar-table.html .
Ответить | Ответить с цитатой | Цитировать
0 # borro 31.12.2013 07:50
Доброго дня. Счастья вам и обитателям вашего сайта, на всю жизнь! :) Виталий, я переделал так, что настраиваемое поле,являющееся атрибутом корзины, стало выводиться не радио кнопками, а выпадающим списком. И выбранное значение поля перестало передаваться в корзину. Вы в курсе, какой код определяет, что передавать в корзину(заказ), а что нет?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 05.01.2014 07:06
borro, в макетах VM есть макет customfields.php(или сейчас его совместили с макетом добавления в корзину, уже не помню). В нем можно найти в том числе все параметры, которые передаются.
Ответить | Ответить с цитатой | Цитировать
0 # borro 11.01.2014 06:45
Доброе утро, Виталий.
В файле com_virtuemart\productdetails\tmpl\default_addtocart.php подредактировал вывод настраиваемых полей с вида радиокнопок на выпадающий список таким образом:
заменил
Код:<span class="product-field-display"><?php echo $field->display ?></span>
на
Код:
<span class="product-field-display">
  <?php if($field->custom_title=="Тип багета"){
     $baget_types = explode(';', $field->custom_value);
     ?>
     <select name="baget_type" required>
        <option disabled>Выбирите багет</option>
        <?php foreach($baget_types as $value){
           echo '<option value="'.$value.'">'.$value.'</option>';
        }
        unset($value);
        ?>
     </select>
   <?php }
   else {
      echo $field->display; }
   ?>
</span>

В результате выбранное значение настраиваемого поля перестало попадать в корзину. Где искать причину затора?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 13.01.2014 03:09
borro, нужно понять, что выводилось в переменной $field->display. Там, вероятно, были еще какие-то input'ы с данными для корзины. Посмотрите через Firebug и сравните с тем, что передаете вы.
Ответить | Ответить с цитатой | Цитировать
0 # mario052 18.01.2014 16:59
Здрастя! :lol:
нужна помощь, делаю инет магазин, на вм 2,026д, и поставлена задача, чтобы выбор товара выглядел приблизительно так!
http://www.florist.ru/bouquet-600203.html
это реально сделать?
остаток товара не имеет значения!
Спасибо!
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 20.01.2014 03:42
mario052, реально только при условии, что вы достаточно хорошо знаете PHP. Стандартными опциями VM2 - нет.
Ответить | Ответить с цитатой | Цитировать
0 # mario052 20.01.2014 08:10
Ясно, спасибо за ответ!
Хороший сайт! Подписался!
Ответить | Ответить с цитатой | Цитировать
0 # Дмитрий2 08.03.2014 14:15
Возможно ли реализовать выбор цвета не его названием а выбором из нескольких вариантов изображения или превьюшки товара нужного цвета или хотя бы изображений представленных цветов?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 10.03.2014 03:12
Дмитрий, http://virtuemart2.info/prodazha-tovarov-raznyx-cvetov-v-virtuemart-2/
Ответить | Ответить с цитатой | Цитировать
0 # Дмитрий2 10.03.2014 09:34
Цитирую Wedal:
Дмитрий, http://virtuemart2.info/prodazha-tovarov-raznyx-cvetov-v-virtuemart-2/

Добрый день, спасибо то, что нужно.
Подскажите как можно вывести кнопку купить на страницу категории? И как вообще правильно изменять вывод товара на странице категории?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 11.03.2014 02:36
Дмитрий, нужно взять код кнопки добавления в корзину из макета страницы товара, изменить в нем все:
Код:$this->product->
на:
Код:$product->
и вставить в макет категории.
Ответить | Ответить с цитатой | Цитировать
0 # Andrey85 16.03.2014 10:46
Подскажите пожалуйста VM 2.0.24 сделал через плагин все цвета, при нажатии на цвет у меня высвечивается нужный мне товар но при попытке добавить в корзину, у меня добавляется товар другого цвета тоесть тот что стоиит первым в списке цветов , помогите решить проблему
Ответить | Ответить с цитатой | Цитировать
+1 # Мирослав 01.04.2014 11:50
попытался реализовать схему по которой бы можно было выбирать цвет и размер. НО есть один ньюанс, нужно чтобы цвету красный соответствовал размер 44,46,48 а цвету белый размер 50,56,48 - получилось что есть общий набор сочетаний цветов и размеров. Т.е. для красного есть и 44,46,48 И 50,56,48 - точно так же и для белого.
Подскажите как решить проблему?
Ответить | Ответить с цитатой | Цитировать
+1 # Маша 02.04.2014 07:21
Присоединяюсь к вопросу.
Ответить | Ответить с цитатой | Цитировать
0 # Toha 06.05.2014 04:19
Отличная статья, сейчас переделываю у себя.
Вот как заведен был товар:
http://ellie.kz/index.php/ru/front-page/malysh-0-24-mesyatsa/10-5-13-sm-pinetki-227-2014-03-24-229-230-2014-03-24-233-234-detail

И как завел его при помощи статьи:
http://ellie.kz/index.php/ru/front-page/malysh-0-24-mesyatsa/10-5-13-sm-pinetki-227-2014-03-24-229-2014-04-28-337-338-339-340-detail

Огромное спасибо за статью)))
5+++
Ответить | Ответить с цитатой | Цитировать
0 # alextretyakov 09.05.2014 18:14
Цитирую Робинзон:
Да, фотография меняется. Мне кажется, очень удобное это поле. Если у вас футболки разных цветов, то желательно все-таки выводить разные фотографии.
Автору спасибо за статьи, очень помогают разбираться с Виртуемартом.

Может с заподанием написал, но как решить всё-таки? При выборе этих выпадающих списков меняется цена, но не изображение. Как сделать, чтоб при этом вместо родительского изображения появлялось изображение дочернего товара?
Ответить | Ответить с цитатой | Цитировать
0 # Toha 22.05.2014 03:37
Добрый день.
Завел футболки:
http://ellie.kz/index.php/ru/malysh-0-24-mesyatsa/kostyumy-rubashki-futbolki/9mes-5-let-80-120sm-kostyum-i-love-mama-papa-detail

каждой модели по 1 шт, пришел заказ с разницей в 10 минут, на одну модель, одного размера(MAMA 116см), и заказ оформился- без проблем. Причем в дочернем товара(ту модель которую заказали):
в наличии-1
заказано-2.

В родительском:
в наличие -10
заказано-0.

И доступность в выпадающем списке остается. Куда смотреть, чтобы понять, почему не ведется учет и почему не проверяется наличие вещей на складе?
Спасибо.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 23.05.2014 04:13
Toha, смотрите настройки VM. Там есть опции по доступности.
Ответить | Ответить с цитатой | Цитировать
0 # Quantum-ws 14.08.2014 18:45
Как осуществить, чтобы при мене цвета, менялось и фото товара по цвету?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 18.08.2014 03:30
Quantum-ws, если вы не владеете PHP и Javascript, то проще всего обратиться к фрилансеру. Это достаточно сложная задачка.
Ответить | Ответить с цитатой | Цитировать
0 # Элеонора 29.08.2014 09:27
Дочерний товар добавляю через табличку внизу, захожу на дочерний товар, например: туалетная вода ставлю объем 50 мл, ставлю цену, но мне нужно чтобы цена высвечивалась окончательная а не основная потому что стоит наценка, а программа ставит мне основную цену, смогу ли я добиться своего или не.
Ответить | Ответить с цитатой | Цитировать
0 # Эльмира 24.10.2014 19:45
СОРАТНИКИ! по данному плагину практически нет материалов. Подскажите, пожалуйста,почему может не быть контроля остатков. У дочерних товаров остатки в карточке прописаны, опция "Overwrite plugin values of the parent" активирована.В настройках VM установка при отсутствии товара убирать кнопку "купить" и выводить кнопку "уведомлять". Но почему то ВСЕ РАВНО плагин дает выбирать дочерние товары с 0-ым остатком и кнопку "уведомить" не выводит.КУДА КОПАТЬ?!))
Ответить | Ответить с цитатой | Цитировать
0 # Gremlin 11.12.2014 10:17
Чистая установка Joomla 2.5.27 + VM 2.6.12/
Создал товар, к нему сделал 2 дочерних товара, все строго по статье. Добавил поле Размер. На сайте поле не появилось. Все снес, сделал в точности (по буквенно) как в статье - выводится один родительский товар :(.
Похоже, что в новой версии VM плагин или не работает, или работает не так.
Ответить | Ответить с цитатой | Цитировать
0 # Gremlin 11.12.2014 10:42
Цитирую Gremlin:
Чистая установка Joomla 2.5.27 + VM 2.6.12/
Создал товар, к нему сделал 2 дочерних товара, все строго по статье. Добавил поле Размер. На сайте поле не появилось. Все снес, сделал в точности (по буквенно) как в статье - выводится один родительский товар :(.
Похоже, что в новой версии VM плагин или не работает, или работает не так.

Разобрался сам. Не обратил внимания на чек-боксы Parent Variant - они должны быть включены конечно-же!
Ответить | Ответить с цитатой | Цитировать
0 # Женя 19.03.2015 20:18
При нажатии на кнопку добавить В Корзину, выдает сообщение "undefined", хотя дочерний товар есть на складе
Ответить | Ответить с цитатой | Цитировать
0 # george007ua 03.04.2015 17:54
Доброго времени суток. Проблема аналогичная. Временно решилась указанием количества в родительском товаре. Стоит опция "Показывать 'Известить меня' вместо кнопки 'Добавить в корзину'"
Второй вариант:поставить галку: Товары, которых нет в наличии, могут заказываться. Никаких специальных действий.
К сожалению ни тот ни тот вариант не идеальный. ПРосто будем счастливы если кто-то подскажет как решить эту проблемму.
Она кроется в том что если товар родитель"отсутствует на складе" - не дает заказать дочерние товары
Ответить | Ответить с цитатой | Цитировать
0 # george007ua 05.04.2015 19:36
Уважаемый Виталий, Ваша статья просто спасла множество людей. В рунете работа этого плагина больше особо нигде не описана, и Ваша статья, без преувеличения практически единственный истичник адекватной информации.
В virtuemart 2.6.12.2 (о других версиях судить не могу), проблема описана в 2х последних комментариях ну очень мешает дышать и жить. Если в опциях указать что при отсутствии товара на складе менять кнопку купить, или в корзину на "уведомить меня", а количество родительского товара = 0 кнопка купить отображается, но при попытке нажатии - пишет что товара нет в наличии. При положительном количестве родительского товара на складе - заказ оформляется, но это сбивает с толку при формировании остатков товара, подсчетах и так далее. Если Вас не затруднит подскажите решение.
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 06.04.2015 04:30
george007ua, боюсь, что изначально так и задумано. Решением будет правка кода, либо подсчет остатков родительского товара, как его количество + сумма дочерних. Что и где править - не знаю. Нужно анализировать код.
Ответить | Ответить с цитатой | Цитировать
0 # george007ua 06.04.2015 20:50
Спасибо, Виталий за предоставленную информацию. Я все-таки склонен считать что изначально задумано было как раз вариант что родитель равен 0. Потому что когда проставляешь родителя =>0 возникают неувязки в отображении.
Я постараюсь решить эту проблему, скорее всего придется обращаться за помощью так как не силен в коде... Когда найду решение - обязательно выложу. Плагин конечно своеобразный, но настолько заморочистый настолько и интересный. Я очень надеюсь что в Virtuemart 3 его допилили.
Спасибо за статью. Очень полезный материал и доступное изложение.
Ответить | Ответить с цитатой | Цитировать
0 # serguei_s_u 06.05.2015 12:04
Подскажите плиз, а где сие диво скачать ???
Ответить | Ответить с цитатой | Цитировать
0 # george007ua 06.05.2015 18:17
Плагин уже установлен с Virtuemart. В настраиваемых полях Создать, тип поля: плагины, в появившемся списке плагинов выбираем Stockable Variants plugin. Читайте статью, весьма толковая.
В принципе, боль мень описание нашел на буржуйском сайте, если пропустят ссылку, я не помню точно что, но что-то я и здесь нашел полезного https://www.flexiblewebdesign.com/forum-virtuemart-2-template-puremart-support/152-tutorial-custom-field-with-stockable-variants
Ответить | Ответить с цитатой | Цитировать
0 # Илья 33 23.07.2015 14:54
Добрый вечер! Спасибо большое за статью, сэкономила кучу времени ;) Попросили настроить групповые товары уже на настроенной до меня джумле, и вот делаю все описано выше, но...
когда, выбрав плагин, я заношу название и список опций, то после сохранения они пропадают. Все остальное есть, а эти поля девственно чисты получаются. Причем не важно на каком языке пишешь эти переменные. Куда смотреть не подскажите? Может я где-то что-то упустил?

Заранее спасибо за любой ответ )
Ответить | Ответить с цитатой | Цитировать
+1 # Ян 29.07.2015 18:52
Здравствуйте, после того как я добавляю больше 80ти дочерних товаров и определяю им настраиваемое поле с цветом и размеров - после сохранения перестает работать все настраиваемые поля и перестает выводиться селект в товаре. В чем может быть проблема, почему только после 80 товаров?, так же происходит после импорта товара все 80 добавляются нормально, вместе с полями, а вот ели больше 80ти товаров не работает...
Ответить | Ответить с цитатой | Цитировать
+1 # Ян 30.07.2015 11:15
Отвечаю сам же на свой вопрос по скольку лень покинула меня и сам решил разобраться в этом вопросе. Путем импорта с помощью ЦСВ импорт я залил 80 товаров - зашел в БД _virtuemart_product_customfields которое отвечает за сохранение параметров назначенных для товара в моем случае цвет и размер, нашел мне нужный товар по айди, и увидел что в поле custom_param 80 строк со свойствами для моих товаров, за тем я попробовал залить уже больше 80 позиций, затем проверив еще раз custom_param у этого товара я увидел что больше 80 полей так и не прибавилось. Решение конечно очень простое, для custom_param поле varchar с ограничением количества полей, нам нужно перейти _virtuemart_product_customfields изменить custom_param и в поле длина значения выставить нужное вам число
Ответить | Ответить с цитатой | Цитировать
0 # Александр 332 17.02.2016 09:24
На шаблонах от Smartaddons при правильной настройке Stockable Custom Field (все работает на чистой связке vm3+j3.48) - не меняется основное фото в карточке товара.
Через Фаербаг -В ответе сервера 304 и видно в строчке фото дочернего товара которое надо выводить в основное фото.
Что нужно добавить в настройках?
Ответить | Ответить с цитатой | Цитировать
0 # djbu 27.08.2017 13:10
может я туплю но почему я не вижу этого плагина в списке ВМ 3.2.4?
Ответить | Ответить с цитатой | Цитировать
0 # Wedal 28.08.2017 05:50
djbu, в Virtuemart 3 это поле называется Multi Variant.
Ответить | Ответить с цитатой | Цитировать