MarcinPaul.pl

Archiwum z miesiąca Lipiec 2012

Lip/12

18

Opinie w Magento

Kod pobierający opinie o produkcie w dowolnym miejscu w Magento:

<?php
$_reviews = Mage::getModel('review/review')->getResourceCollection();
$_reviews->addStoreFilter(Mage::app()->getStore()->getId())
	->addEntityFilter('product', $product->getId())
	->addStatusFilter(Mage_Review_Model_Review::STATUS_APPROVED)
	->setDateOrder()
	->addRateVotes();
$avg = 0;
$ratings = array();
if(count($_reviews) > 0) {
	foreach($_reviews->getItems() as $_review):
		foreach($_review->getRatingVotes() as $_vote):
			$ratings[] = $_vote->getPercent();
		endforeach;
	endforeach;
	$avg = array_sum($ratings)/count($ratings);
}
?>
<?php if($avg > 0): ?>
	<div class="ratings">
		<div class="rating-box">
			<div class="rating" style="width:<?php echo ceil($avg); ?>%;"></div>
		</div>
	</div>
<?php endif; ?>

Pobieranie średniej oceny każdego produktu:

<?php
$storeId = Mage::app()->getStore()->getId();
$summaryData = Mage::getModel('review/review_summary')->setStoreId($storeId)->load($_product->getId());
?>                                                                          
<div class="rating">(<?php echo $summaryData['rating_summary']; ?>%)</div> 

Pobieranie ilości ocen każdego produktu:

$reviewData = Mage::getModel('review/review/summary');
echo $reviewcount = $reviewData->getTotalReviews($_product->getId());

·

Prosty kawałek kodu, który wyłącza wszystkie pozostałe metody wysyłki w przypadku, gdy w sklepie mamy aktywną darmową dostawę (np. od konkretnej wartości – kwoty zamówienia):

if(array_key_exists('freeshipping', $_shippingRateGroups)) {
	$_shippingRateGroups = array('freeshipping' => $_shippingRateGroups['freeshipping']);
}

Powyższy kod należy umieścić na początku pliku:
app/design/frontend/default/your_design/template/checkout/onepage/shipping_method/
available.phtml
, tuż przed linią:

<dl class="sp-methods">

·