Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Список свойств для товарного предложения

00 голосов
3
Добрый день! На сайте имеется каталог товаров с товарными предложениями, код отвечающий за вывод предложений:
<?foreach($arResult["OFFERS"] as $arOffer)://ЦИКЛ ПРЕДЛОЖЕНИЕ?>
<?foreach($arParams["OFFERS_FIELD_CODE"] as $field_code):?>
<small><?echo GetMessage("IBLOCK_FIELD_".$field_code)?>: <?
echo $arOffer[$field_code];?></small><br />
<?endforeach;?>
<?foreach($arOffer["DISPLAY_PROPERTIES"] as $pid=>$arProperty)://ЦИКЛ СВОЙСТВА?>
<small><?=$arProperty["NAME"]//НАИМЕНОВАНИЕ СВОЙСТВА?>: 

<?
if(is_array($arProperty["DISPLAY_VALUE"]))
echo implode(" / ", $arProperty["DISPLAY_VALUE"]);
else
echo $arProperty["DISPLAY_VALUE"];?></small><br />
<?endforeach//КОНЕЦ ЦИКЛА?>
<?foreach($arOffer["PRICES"] as $code=>$arPrice)://ЦИКЛ ЦЕНА?>
<?if($arPrice["CAN_ACCESS"]):?>
<p><?=$arResult["CAT_PRICES"][$code]["TITLE"];?>:  
<?if($arPrice["DISCOUNT_VALUE"] < $arPrice["VALUE"]):?>
<?=$arPrice["PRINT_VALUE"]?> <span class="catalog-price"><?=$arPrice["PRINT_DISCOUNT_VALUE"]?></span>
<?else:?>
<span class="catalog-price"><?=$arPrice["PRINT_VALUE"]?></span>
<?endif?>
</p>
<?endif;?>
<?endforeach;//КОНЕЦ ЦИКЛА?>

Требуется вывести свойства товарных предложений каталога списком, при выборе свойства из списка должна появляться соответствующая этому свойству цена!
Может кто сталкивался с подобной проблемой, подскажите что можно сделать в данной ситуации?!
спросил 15 Март, 13 от NextGen (620 баллов)

3 Ответы

00 голосов
В цикле выводите в select нужном виде предложения (то от чего у вас цена зависит: размер и т.д.)
Код
<select>
<?foreach($arResult["OFFERS"] as $arOffer) {?>
   <option value="<?=$arOffer['ID']?>"> <?=$arOffer[...]?></option>
<?}?>
</select>

Потом в таком же цикле выводите цены
Код
<?foreach($arResult["OFFERS"] as $arOffer) {?>
   <div id="price_<?=$arOffer['ID']?>" style="display:none;">
   Тут цены
   </div>
<?}?>


Вешаете javaScript событие onchange при выборе, определяете что было выбрано и показываете соответствующий div, меняя у него свойство display
Так же на javaScript нужно подменять поля, которые кладутся в корзину
ответил 15 Март, 13 от unik (2,560 баллов)
00 голосов
В итоге получилось следующее
Код
<script type="text/javascript">
var oldprice = "";

function showstuff(value){
    if (value=="razmer") document.getElementById("razmer").style.display = "block";
    else {
     document.getElementById("razmer").style.display = "none";
     if (oldprice)
        document.getElementById(oldprice).style.display = "none";
      document.getElementById(value).style.display = "block";
     oldprice = value;
   }  
}
</script>
   <?if(is_array($arResult["OFFERS"]) && !empty($arResult["OFFERS"]))://УСЛОВИЕ ПРЕДЛОЖЕНИЕ?>
   <select onchange="showstuff(this.value);"> 
     <option value="razmer">Размер</option>
<?foreach($arResult["OFFERS"] as $arOffer) {//ВЫВОДИМ СПИСОК РАЗМЕРОВ?> 
   <option value="price_<?=$arOffer["DISPLAY_PROPERTIES"]["razmer_kolco"]["VALUE_ENUM"]; ?>"><?=$arOffer["DISPLAY_PROPERTIES"]["razmer_kolco"]["DISPLAY_VALUE"];?></option> 
<?}?> 
</select> 
<?foreach($arResult["OFFERS"] as $arOffer) {//ВЫВОДИМ ЦЕНУ?> 
<div id="razmer" style="display:block;"></div>
   <div id="price_<?=$arOffer["DISPLAY_PROPERTIES"]["razmer_kolco"]["VALUE_ENUM"];?>" style="display:none;"> 
Цена
</div>
ответил 19 Март, 13 от NextGen (620 баллов)
00 голосов
Где можно почитать об этом подробно?  хочется сделать товарные предложения так как на этом сайте http://www.mpostel.ru/shop/list.php?SECTION_ID=19

Подскажите как это реализовывается? Данные действия производятся в коде шаблона компонента?
ответил 29 Май, 13 от Miss2008 (160 баллов)

Похожие вопросы

0 голосов
2 ответов
0 голосов
1 ответ
0 голосов
1 ответ
0 голосов
1 ответ