Курс 2016 года “Разработка на UMI.CMS от 0 до готового сайта”
%total% для %data doSelection()%

Автор albionРаздел Макросы UMI.CMS

Ответов: 5
Просмотров: 3024
Последний ответ 24 Июль 2011, 10:29:40
от albion
Фильтр по полю

Автор mihdanРаздел Шаблоны XSLT

Ответов: 1
Просмотров: 1263
Последний ответ 18 Октябрь 2013, 22:53:46
от PHOENIX-75
autothumbs.php версии 2,8,4

Автор albionРаздел Настройка системы и модулей

Ответов: 6
Просмотров: 4050
Последний ответ 21 Июль 2011, 18:00:19
от admin
webforms & XSLT & модальное окно

Автор graveРаздел JS и AJAX

Ответов: 8
Просмотров: 5529
Последний ответ 13 Июнь 2011, 00:41:56
от talanter
Кастомный макрос

Автор thecoderРаздел Шаблоны XSLT

Ответов: 1
Просмотров: 1088
Последний ответ 22 Июль 2013, 17:50:14
от admin

0 Пользователей и 1 Гость просматривают эту тему.

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
Добрый день.
Требуется такой функционал: есть товар, у которого может быть несколько например цветовых решений. Необходимо в карточке товара выбирать вариант исполнения, при этом меняется цена, меняется значение "Наличие" и меняется фотография.
говорят что подобный функционал можно реализовать кастомно. Для этого нужно получать текущее значение поля со списком и в зависимости от его значения выводить соответствующее изображение и состояние.
"Это делается посредством API. Вам помогут разделы umiHierarchy и umiObjectTypesCollection."
Но для меня это темный лес.
Может кто то делал что то подобное и может поделиться примером или подскажет от какой "печки плясать".  Например как задавать другую картинку и наличие, создавать для этого дополнительную группу в шаблоне?
Буду рада любой помощи.
Спасибо.

*

Vladimir

  • ****
  • 271
  • +46/-0
    • Просмотр профиля
Re:Вывод вариантов товара с изменением цены, 
« Ответ #1 : 24 Апрель 2012, 10:56:05 »
Насколько я помню, что-то подобное делала Надежда (http://umihelp.ru/forum/index.php?action=profile;u=25082) на
http://mastersil.ru/shop/silikonovie_germetiki/

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

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

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

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

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

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
Re:Вывод вариантов товара с изменением цены, 
« Ответ #2 : 24 Апрель 2012, 15:39:42 »
если вы этим не занимались наверно проще идти путем который описал Владимир

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

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

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

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

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
Re:Вывод вариантов товара с изменением цены,
« Ответ #3 : 25 Апрель 2012, 09:57:47 »
второй день читаю ответы и ... голова кругом...

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
1 товар с 5 вариантами исполнения (5 разных основных картинок, 5 артикулов, 5 цен и 5 наличий)
итого создается Раздел каталога имеющий общее название товара и какую нибудь картинку.
создаю 5 объектов каталога, там заполняю каждому свое фото, артикул, цену, наличие.
Вопрос, как при клике на "подробнее" у общего товара"раздел каталога" отобразить например первый вариант "объект каталога"

точнее для начала: как и где прописать выбор нового шаблона, что бы выводилось по другому виду, тот же самый товар"раздел каталога" выводился бы например с надписью "подробнее" нежели как получается сейчас.
http://umi.begemosha-shop.com/shop/prams/kolyaski_universalnye/.
т.е. мне надо что бы выводились только товары"раздел каталога"и не выводились бы при этом сами варианты"объект каталога"

*

Vladimir

  • ****
  • 271
  • +46/-0
    • Просмотр профиля
это редактирование шаблона дизайна для вывода разделов каталога; убрать из него вывод объектов. Просто создать еще один шаблон, специально для общего товара, и использовать его только на этих страницах.

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
новый шаблон который прописывается в админке в Управлении шаблонами? или тот шаблон что в папке modules/catalog/(category-list.xsl, category-view.xsl)?

*

admin

  • *****
  • 2421
  • +172/-1
    • Просмотр профиля
я так понимаю Владимир говорит о tpl, а у вас xslt.

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

Например добавить подтип к типу данных "Раздел каталога" и руководствуясь новым type-id который будет виден в xml при заходе на страницу такого "псевдораздел " можно для него настроить свой шаблон который не будет выводить фильтр а будет выводить информацию из этого "псевдораздел" (общее название товара и какую нибудь картинку) и ниже выводим вариаций (то есть вывод товаров из этого псевдораздел )

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
Подтип создан, даже шаблон вчера новый сделала, в админке прописала, и от него пляшу. Выводит уже один раздел/товар у которого внутри есть вариации.
http://umi.begemosha-shop.com/shop/prams/kolyaski_universalnye/

и дальше не понимаю как мне и где прописать что бы написать шаблон для вывода подробной информации этого псевдо-товара.
Для начала хотя бы вывести общее описание, а потом уже выводить картинки, характеристики и цены вариаций.
« Последнее редактирование: 04 Май 2012, 11:03:58 от shoto »

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
точнее теперь я наковыряла что бы подцеплялся по выборке:
<xsl:template match="/result[@method = 'category'][/result/page/@type-id= 326]">
псевдо-товар
</xsl:template>
теперь надо вывести туда данные товаров...

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
Не получается вывести перечень характеристик общих для данного товара.
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

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
судя по всему я никогда не сдам этот сайт...

*

Vladimir

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

*

KTI

  • **
  • 72
  • +1/-0
    • Просмотр профиля
вы сами поставили проверку
<xsl:apply-templates select="property[not(value='')]" mode="table_k" />
поэтому выводит только артикул, уберите эту проверку, туда и так попадут не пустые поля

*

shoto

  • ***
  • 233
  • +4/-0
    • Просмотр профиля
вы сами поставили проверку
<xsl:apply-templates select="property[not(value='')]" mode="table_k" />
поэтому выводит только артикул, уберите эту проверку, туда и так попадут не пустые поля


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


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

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