UMIhelp

Разработка дополнительного функционала => Разработка модулей => Тема начата: shoto от 24 Апреля 2012, 08:33:01

Название: Вывод вариантов товара с изменением цены, 
Отправлено: shoto от 24 Апреля 2012, 08:33:01
Добрый день.
Требуется такой функционал: есть товар, у которого может быть несколько например цветовых решений. Необходимо в карточке товара выбирать вариант исполнения, при этом меняется цена, меняется значение "Наличие" и меняется фотография.
говорят что подобный функционал можно реализовать кастомно. Для этого нужно получать текущее значение поля со списком и в зависимости от его значения выводить соответствующее изображение и состояние.
"Это делается посредством API. Вам помогут разделы umiHierarchy и umiObjectTypesCollection."
Но для меня это темный лес.
Может кто то делал что то подобное и может поделиться примером или подскажет от какой "печки плясать".  Например как задавать другую картинку и наличие, создавать для этого дополнительную группу в шаблоне?
Буду рада любой помощи.
Спасибо.
Название: Re:Вывод вариантов товара с изменением цены, 
Отправлено: Vladimir от 24 Апреля 2012, 10:56:05
Насколько я помню, что-то подобное делала Надежда (http://umihelp.ru/forum/index.php?action=profile;u=25082) на
http://mastersil.ru/shop/silikonovie_germetiki/

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

---------------

Я бы пошел по проверенному пути, делая опции как тип данных "объект каталога", а товары - как тип данных "раздел каталога". При этом, конечно, появятся проблемы с фильтрами, с поиском, т.е., в первом варианте будет сложно наполнять каталог, во втором - много кастомизации.

-------------------

В общем случае, вам нужно где-то хранить опционные данные: цвет, цена, картинка, наличие, указатель на товар-владелец. Скрипт, которые подставляет нужные параметры считаем, что есть, пока это неважно. Хранить дополнительные параметры можно либо:
1) в справочнике (к каждому наименованию справочника привязывается набор указанных параметров; далее редактор в админке в свойствах товара выбирает несколько наименований из этого справочника; получается, мы привязали к товару несколько опционных комбинации; далее они выводятся в шаблон обычным
образом)
недостаток этого способа: в справочнике будут хранится опции для всего каталога, и если их много, то справочник очень разрастется и работать с ним станет невозможно. Конечно, можно создавать несколько дочерний типов данных, к каждому привязывать свой справочник, но это уже сильно усложняет разработку.
2) Можно хранить данные в дереве страниц как некие фиктивные страницы. Привязка в этом случае иерархическая: есть страница с товаром, у нее несколько дочерних с заданными свойствами "одна страница - одна комбинация свойств"; набор свойств страницы с товаром получаем как меню из дочерних.
Это наглядно, но стандартный каталог ЮМИ не предполагает, что у типа "объект каталога" будут дочерние страницы. Как при этом сработает импорт я не знаю.
При заказе у вас будет ссылка на страницу опции. а не товара-владельца, это придется как-то обрабатывать.
Название: Re:Вывод вариантов товара с изменением цены, 
Отправлено: admin от 24 Апреля 2012, 15:39:42
если вы этим не занимались наверно проще идти путем который описал Владимир

Цитировать
делая опции как тип данных "объект каталога", а товары - как тип данных "раздел каталога"

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

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

вот в общем основные моменты с которыми пришлось встретиться при реализации очень похожей задачи на сайте по продаже кресел с разными цветами, кол-вом, артикулом и фотографией
Название: Re:Вывод вариантов товара с изменением цены,
Отправлено: shoto от 25 Апреля 2012, 09:57:47
второй день читаю ответы и ... голова кругом...
Название: Re:Вывод вариантов товара с изменением цены,
Отправлено: shoto от 03 Мая 2012, 13:28:49
1 товар с 5 вариантами исполнения (5 разных основных картинок, 5 артикулов, 5 цен и 5 наличий)
итого создается Раздел каталога имеющий общее название товара и какую нибудь картинку.
создаю 5 объектов каталога, там заполняю каждому свое фото, артикул, цену, наличие.
Вопрос, как при клике на "подробнее" у общего товара"раздел каталога" отобразить например первый вариант "объект каталога"

точнее для начала: как и где прописать выбор нового шаблона, что бы выводилось по другому виду, тот же самый товар"раздел каталога" выводился бы например с надписью "подробнее" нежели как получается сейчас.
http://umi.begemosha-shop.com/shop/prams/kolyaski_universalnye/.
т.е. мне надо что бы выводились только товары"раздел каталога"и не выводились бы при этом сами варианты"объект каталога"
Название: Re:Вывод вариантов товара с изменением цены, 
Отправлено: Vladimir от 03 Мая 2012, 19:10:30
это редактирование шаблона дизайна для вывода разделов каталога; убрать из него вывод объектов. Просто создать еще один шаблон, специально для общего товара, и использовать его только на этих страницах.
Название: Re:Вывод вариантов товара с изменением цены, 
Отправлено: shoto от 03 Мая 2012, 22:38:45
новый шаблон который прописывается в админке в Управлении шаблонами? или тот шаблон что в папке modules/catalog/(category-list.xsl, category-view.xsl)?
Название: Re:Вывод вариантов товара с изменением цены, 
Отправлено: admin от 04 Мая 2012, 08:53:03
я так понимаю Владимир говорит о tpl, а у вас xslt.

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

Например добавить подтип к типу данных "Раздел каталога" и руководствуясь новым type-id который будет виден в xml при заходе на страницу такого "псевдораздел " можно для него настроить свой шаблон который не будет выводить фильтр а будет выводить информацию из этого "псевдораздел" (общее название товара и какую нибудь картинку) и ниже выводим вариаций (то есть вывод товаров из этого псевдораздел )
Название: Re:Вывод вариантов товара с изменением цены,
Отправлено: shoto от 04 Мая 2012, 09:57:45
Подтип создан, даже шаблон вчера новый сделала, в админке прописала, и от него пляшу. Выводит уже один раздел/товар у которого внутри есть вариации.
http://umi.begemosha-shop.com/shop/prams/kolyaski_universalnye/

и дальше не понимаю как мне и где прописать что бы написать шаблон для вывода подробной информации этого псевдо-товара.
Для начала хотя бы вывести общее описание, а потом уже выводить картинки, характеристики и цены вариаций.
Название: Re:Вывод вариантов товара с изменением цены,
Отправлено: shoto от 04 Мая 2012, 15:02:35
точнее теперь я наковыряла что бы подцеплялся по выборке:
<xsl:template match="/result[@method = 'category'][/result/page/@type-id= 326]">
псевдо-товар
</xsl:template>
теперь надо вывести туда данные товаров...
Название: Re:Вывод вариантов товара с изменением цены,
Отправлено: shoto от 04 Мая 2012, 16:55:44
Не получается вывести перечень характеристик общих для данного товара.
xml код
<group id="2770" name="dopolnitelnye_harakteristiki">
<title>Дополнительные характеристики</title>
<property id="437" name="b_proizvoditel" type="relation">
<title>Производитель</title>
<value>
<item id="17108" name="Cosatto" type-id="321" ownerId="10" xlink:href="uobject://17108"/>
</value>
</property>
<property id="438" name="sity" type="relation">
<title>Страна</title>
<value>
<item id="17138" name="Великобритания" type-id="320" ownerId="10" xlink:href="uobject://17138"/>
</value>
</property>
<property id="439" name="age" type="relation">
<title>Возраст</title>
<value>
<item id="17150" name="С рождения" type-id="315" ownerId="10" xlink:href="uobject://17150"/>
</value>
</property>
<property id="442" name="b_artikul" type="string">
<title>Артикул</title>
<value>005949</value>
</property>
</group>

шаблон вывода псевдо-товара
<xsl:template match="/result[@method = 'category'][/result/page/@type-id= 326]">
псевдо-товар
<xsl:apply-templates select=".//group[@name = 'dopolnitelnye_harakteristiki']" mode="table_k" />
<xsl:apply-templates select=".//property[@name = 'descr']" />
<xsl:apply-templates select="document(concat('udata://catalog/getObjectsList/', page/@id, '////2/have/0'))/udata" mode="kolyaski_item"/>
</xsl:template>

вывожу тем же кодом что и выводила для товаров:
<xsl:template match="group" mode="table_k">
<xsl:apply-templates select="property[not(value='')]" mode="table_k" />
</xsl:template>

<xsl:template match="property" mode="table_k">
<p style="font-size: 80%;">
<strong><span>
<xsl:apply-templates select="document(concat('utype://', ../../../@type-id, '.', ../@name))/udata/group/field[@name = ./@name]/tip" mode="tip" />
<xsl:value-of select="title" />:
</span></strong>
&nbsp;
<xsl:apply-templates select="." />
</p>
</xsl:template>

Выводит только Артикул, т.е. поле, у которого значение хранится непосредственно в Value
Название: Re:Вывод вариантов товара с изменением цены, 
Отправлено: shoto от 10 Мая 2012, 13:59:02
судя по всему я никогда не сдам этот сайт...
Название: Re:Вывод вариантов товара с изменением цены, 
Отправлено: Vladimir от 11 Мая 2012, 13:11:07
К сожалению, по xslt я не помошник( Вы его как фрилансер делаете или в студии?
Сдать-то, конечно, сдадите, вы уже часть пути прошли самостоятельно, значит, и оставшейся разберетесь. Надо только вам выбить себе дополнительно времени. Задача же була нестандартная, не из штатного функционала, логично, что это потребовало дополнительных затрат времени.
Название: Re:Вывод вариантов товара с изменением цены,
Отправлено: KTI от 11 Мая 2012, 15:13:42
вы сами поставили проверку
<xsl:apply-templates select="property[not(value='')]" mode="table_k" />
поэтому выводит только артикул, уберите эту проверку, туда и так попадут не пустые поля
Название: Re:Вывод вариантов товара с изменением цены,
Отправлено: shoto от 11 Мая 2012, 18:53:58
вы сами поставили проверку
<xsl:apply-templates select="property[not(value='')]" mode="table_k" />
поэтому выводит только артикул, уберите эту проверку, туда и так попадут не пустые поля


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


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

увы я не фрилансер и даже не в студии, и сдать сайт должна была 6 апреля. и объяснить руководству что мне требуется еще время, к тому же его как видно из вышеуказанной даты, терпение на данный момент руководство уже исчерпано. ну во всяком случае о понижении зарплаты уже заявили.
Название: Re:Вывод вариантов товара с изменением цены,
Отправлено: KTI от 12 Мая 2012, 11:27:38
почему тогда пришлось делать эту проверку что бы не выводились незаполненные поля у товаров?!...

Вы меня спрашивайте? это у вас (в коде) стоит проверка, если вы ее уберете, будет срабатывать другие шаблоны, а так срабатывает только там где не пустое value, т.е. артикул
Название: Re:Вывод вариантов товара с изменением цены,
Отправлено: shoto от 15 Мая 2012, 12:24:45
я спросила к тому, что данный код, в другом месте, выводя такие же параметры для нормальных товаров, а не псевдо, выводит значения с заполненными данными, только при таком условии. иначе выводит и пустые, не заполненные поля.
Название: Re:Вывод вариантов товара с изменением цены, 
Отправлено: korogan от 16 Июля 2012, 14:50:19
Добрый день!

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

То что не получается сделать:

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

2. Есть статья Динамическое обновление цены при выборе опционных свойств (http://wiki.umisoft.ru/%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D0%B1%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%86%D0%B5%D0%BD%D1%8B_%D0%BF%D1%80%D0%B8_%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%B5_%D0%BE%D0%BF%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D1%8B%D1%85_%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2)

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

3. Как для товаров у которых цена такая же как и у основного товара, то есть наценка равно "0" вывести стоимость с наценкой "0" Что бы приплюсовало, цена = 0

_http://elgp.ru.xsph.ru/nasha_produkciya/beguwaya_stroka/monohromnaya_beguwaya_stroka/8_pikselej/beguwaya_stroka_s_vysotoj_simvola_80_mm/tbs08064x803/

Появился еще ряд вопросов: