Дочерние товары в детальном описании родительского товара

Тема в разделе "Управление товарами, атрибутами, свойствами и цена", создана пользователем cukama, 23.12.2014.

  1. Offline

    cukama Недавно здесь

    Регистрация:
    23.12.2014
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    Подскажите пожалуйста.
    Необходимо отобразить дочерние товары в виде обычных товаров в детальном описании товара.

    Вариант с кастомными полями в виде выпадающего списка не подходит.

     
  2.  
  3. Лучший ответ:
    Сообщение #3 от 24.12.2014, автор cukama
  4. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 310
    Симпатии:
    375
    Пол:
    Мужской
    Какая версия Virtuemart?
     
  5. Offline

    cukama Недавно здесь

    Регистрация:
    23.12.2014
    Сообщения:
    2
    Симпатии:
    0
    Пол:
    Мужской
    Лучший ответ
    Пишет Virtuemart 2.6.8
    Решил через глобальные методы... Мне проект подсунули - там еще и Yagendoo поверх поставили)))
    Пришлось прямо во вьюшке замутить перед выводом "Castom Fields". Если VirtueMart позволяет такое делать, то я больше за такие проекты браться не буду))))
    Код (PHP):
    1. <?php // Children products
    2.         $product_model = VmModel::getModel('product');
    3.    
    4.         $children = $product_model->getProductChilds($this->YagProduct->id);
    5.         if (!empty($children))
    6.         {
    7.             foreach($children as $key => $child){
    8.                 $vmProduct = $product_model->getProduct($child->virtuemart_product_id);
    9.                 //var_dump($vmProduct); //тонкий момент)))
    10.                 foreach(array_keys($vmProduct->images) as $i)
    11.                     {
    12.                         $images[$i] = ImageMapper::mapVirtuemartImage($vmProduct->images[$i]);
    13.                     }
    14.                 echo '
    15. <div class="yagVmCategoryViewProductRow">
    16. <table width="100%">
    17.    <tr>
    18.        <td width="20%" style="vertical-align: top;">
    19.            <a href="'.$vmProduct->link.'" title="'.$vmProduct->product_name.'">
    20.                <img src="';
    21.                 echo $images[0]->urlThumb;
    22.                 echo '" alt="'.$vmProduct->product_name.'" />
    23.            </a>
    24.        </td>
    25.        <td style="vertical-align: top;">
    26.            '.$vmProduct->product_name.'<br>
    27.            Item  #'.$vmProduct->virtuemart_product_id.'<br>
    28.            In stock:'.$vmProduct->product_in_stock.'
    29.        </td>
    30.        <td width="25%">';
    31.         if ($vmProduct->product_in_stock > 0){
    32.         echo '
    33.            <div class="PricesalesPrice" style="display : block;" >
    34.                <span class="PricesalesPrice" style="float: right;">'.$vmProduct->prices['basePriceWithTax'].' €</span>
    35.            </div>
    36.            <div class="yagVmCategoryListProdAtcBox">
    37.                <div class="yagVmCategoryAtc">
    38.                    <form method="post" class="product yagVmCategoryAtcForm js-recalculate" action="index.php" >
    39.                        <input name="quantity" type="hidden" value="1" />
    40.                        <div class="addtocart-bar yagVmCategoryAtcBar">
    41.                            <script type="text/javascript">
    42.                            function check(obj) {
    43.                                // use the modulus operator "%" to see if there is a remainder
    44.                                remainder=obj.value % 1;
    45.                                quantity=obj.value;
    46.                                if (remainder  != 0) {
    47.                                    alert("You can buy this product only in multiples of 1 pieces!!");
    48.                                    obj.value = quantity-remainder;
    49.                                    return false;
    50.                                }
    51.                                return true;
    52.                            }
    53.                            </script>
    54.                            <input type="hidden" class="quantity-input yagVmCategoryAtcBarQtyInpt js-recalculate" name="quantity[]" value="1"/>
    55.                            <span class="addtocart-button yagVmCategoryAtcBtn">
    56.                            <input type="submit" name="addtocart" class="addtocart-button" value="Add to Cart" title="Add to Cart" />
    57.                            </span>                              
    58.                            <div class="yagVmClear">&nbsp;</div>
    59.                        </div>
    60.                        <input type="hidden" class="pname" value="'.$vmProduct->product_name.'" />
    61.                        <input type="hidden" name="option" value="com_virtuemart" />
    62.                        <input type="hidden" name="view" value="cart" />
    63.                        <noscript><input type="hidden" name="task" value="add" /></noscript>
    64.                        <input type="hidden" name="virtuemart_product_id[]" value="'.$vmProduct->virtuemart_product_id.'" />
    65.                    </form>
    66.                    <div class="yagVmClear">&nbsp;</div>
    67.                </div>
    68.            </div>
    69.        </td>
    70.    </tr>
    71. </table>
    72. </div>
    73.    ';
    74.         } else {
    75.             echo '
    76.            <!--    Product prices    -->
    77.                <a class="yagVmCategoryAskQuestionLink" href="'.$vmProduct->link.'/askquestion?tmpl=component" title="Call for price" style="float: right;">
    78.                    Call for price
    79.                </a>
    80.            <!--    /Product prices    -->
    81.        </td>
    82.    </tr>
    83. </table>
    84. </div>
    85.    ';}
    86.  
    87.             }
    88.         }
    89.         // End Children products ?>
     
    Последнее редактирование: 24.12.2014

Поделиться этой страницей

Загрузка...