Настраиваемые цены на товары показывают 0,00 фунта стерлингов
На странице моей корзины у меня есть рекламные товары, на которых отображаются изображения товаров, названия и цены, однако, когда я добавляю настраиваемый товар в список, цена отображается в размере 0,00 фунта стерлингов. Это код, который я использую, чтобы показать цену.
<?php
$specialPrice = Mage::helper('core')->formatPrice($_product->getFinalPrice());
$normalPrice = Mage::helper('core')->formatPrice($_product->getPrice());
if ($normalPrice != $specialPrice){?>
<div class="sale-price">
<?php echo 'Now';
echo $specialPrice;?></div>
<?php }else{?>
<div class="norm-price"><br>
<?php echo $normalPrice;}?</div>
Я предполагаю, что он показывает 0,00 фунта стерлингов, поскольку он ищет цену продуктов, и поскольку это сгруппированный продукт, сам продукт не имеет фактической цены, так как цены исходят от продуктов в сгруппированных продуктах.
Итак, мой вопрос в том, как я могу проверить, является ли продукт сгруппированным продуктом, и если да, то мне нужно проверить самую низкую цену, а затем отобразить эту цену?
Я нашел некоторый код, который проверяет, является ли продукт сгруппированным продуктом, и если да, то он захватывает связанные продукты, поэтому теперь все, что мне нужно сделать, это создать чек, который проверяет самую низкую цену в связанных продуктах
<?php if($_product->getTypeId() == "grouped"):
$associatedProducts = $product->getTypeInstance(true)->getAssociatedProducts($product);
endif; ?>
Если вам нужна дополнительная информация или я не совсем ясно выразился, пожалуйста, просто дайте мне знать.
Заранее благодарю вас
1 answers
Предполагая, что ваш приведенный выше код верен в том, как получить цену продажи от продукта, этот код ниже позволит получить соответствующие продукты, повторить их цены продажи и обычные цены и вернуть наименьшее значение.
function getLowest($product){
$associatedProducts = $product->getTypeInstance(true)->getAssociatedProducts($product);
$lowPrice=inf;
foreach($associatedProducts as $associatedProduct){
$specialPrice = $associatedProduct->getFinalPrice();
$associatedPrice = $associatedProduct->getPrice();
if($lowPrice>$associatedPrice){
$lowPrice=$associatedPrice;
}
if($lowPrice>$specialPrice && ($specialPrice!=null||$specialPrice!=0)){
$lowPrice=$specialPrice;
}
}
return Mage::helper('core')->formatPrice($lowPrice);
}
Затем просто используйте низкую цену, как вы бы использовали цену, которая у вас есть в настоящее время:)
Надеюсь, это поможет!