Получить простую цену продукта для настраиваемого продукта

magento.stackexchange https://magento.stackexchange.com/questions/4011

  •  16-10-2019
  •  | 
  •  

Вопрос

У нас есть настраиваемый продукт, вызванный SKU Test, а под ним-простые продукты (например) Red-Ven1, Red-Ven2, Blue-Ven3 и т. Д. Сам настраиваемый продукт не имеет цены, но каждый простой продукт. Мне нужно получить цену для простого продукта на основе выбранных атрибутов. Так что мне нужна цена на красный продукт с поставщиком 2. Как мне получить эту конкретную цену? В настоящее время я пытаюсь динамически отобразить цену рядом с атрибутом поставщика (поэтому атрибут поставщика не выбран). Придется ли мне «невидимо» выбрать значение атрибута поставщика, чтобы получить цену? Пожалуйста, порекомендуйте.

В настоящее время пытается:

<?php $_product    = $this->getProduct(); ?>
<?php $_price = $_taxHelper->getPrice($_product, $_product->getPrice()) ?>

<script>
var price = <?=$_price ?>;

            /...lots of non-applicable code
            for(var i=0; i < IDs.length; i++)//traversing the vendor detail nodes
            {   
                //Invisibly make selection of vendor so as to gather correct price
                var optionToSelect = $j('option', '#attribute136').filter(function() {
                    return $j(this).text().indexOf(data[i].vendor_id) != -1;
                }).val();
                var vals = $j('#attribute136').val() || [];
                vals.push(optionToSelect);
                $j('#attribute136').val(vals);

            $j('.details'+data[i].vendor_id).append('<li class="priceBlock">$'+price+'</li>');
            }

        }); 
</script>
Это было полезно?

Решение

Есть два расширения, которые делают это для вас:

Простые настраиваемые продукты

http://www.magentocommerce.com/magento-connect/simple-configerawing-products.html

BCP - лучшие настраиваемые продукты

http://www.magentocommerce.com/magento-connect/better-configeraility-products.html

Другие советы

Проверьте следующую ссылку. Это помогает вам. В этом посте может получить идентификатор продукта выбранного простого продукта настраиваемого продукта. И используя этот простой идентификатор продукта, вы можете получить цену, QTY, SKU и т. Д.

Простой продукт настраиваемого продукта

Я сделал это в list.phtmlАнкет Это взлом, но он работает (и это бесплатно!)

<?php
foreach ($_productCollection as $_product):
    $_modifiedProduct = $_product;
    ?>
    <?php
    if ($_product->isConfigurable()) {
        $conf = Mage::getModel('catalog/product_type_configurable')->setProduct($_product);
        $simple_collection = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions();
        $appliedFilters = Mage::getSingleton('catalog/layer')->getState()->getFilters();

        $itemArr = array();
        foreach ($appliedFilters as $item) {

            $itemArr[] = $item->getLabel();
        }

        $attributesToFilter = array();
        foreach ($simple_collection as $simple_product) {

            $productModel = Mage::getModel('catalog/product')->setProduct($simple_product);

            $sizeAttr = $productModel->getResource()->getAttribute("size");
            $qualityAttr = $productModel->getResource()->getAttribute("quality");
            $attributesToFilter[] = $sizeAttrName = $sizeAttr->getSource()->getOptionText($simple_product->getSize());
            $attributesToFilter[] = $qualityAttrName = $qualityAttr->getSource()->getOptionText($simple_product->getQuality());

            sort($attributesToFilter);
            sort($itemArr);

            if ($attributesToFilter == $itemArr) {
                $_modifiedProduct = $simple_product;
                break(1);
            }
            unset($attributesToFilter);
        }
    }
// continue in foreach.
endforeach;
?>

Теперь вы можете показать цену как это:

 <?php echo $this->getPriceHtml($_modifiedProduct, true) ?>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top