Magento,getProductUrl() 返回相同 url
Magento, getProductUrl() returning same url
我正在努力在购物车页面上显示 x 数量的相关产品。
这是我当前的代码
$cart = Mage::getModel('checkout/cart')->getQuote();
$c = count($cart);
if($c != 0) {
$c = $c - 1;
$rand = rand(0, $c);
$i = 0;
foreach ($cart->getAllItems() as $item) {
if($i == $c) {
$productId = $item->getProduct()->getId();
$model = Mage::getModel('catalog/product');
$product = $model->load($productId);
$allRelatedProductIds = $product->getRelatedProductIds();
$rc = count($allRelatedProductIds) - 1;
$rand = rand(0, $rc);
$relatedProduct = $model->load($allRelatedProductIds[$rand]);
echo "<div class='page-title'><h1>Maybe you would like to try one of these</h1></div>";
foreach($allRelatedProductIds as $prod) {
$p = $model->load($prod);
echo "<a href='".$p->getProductUrl()."'>";
echo "<div style='float:left; font-size:1.3em; width:33%; line-height:1.25; font-family:\"karlaregular\"'>";
echo "<img src='".Mage::helper('catalog/image')->init($p, 'small_image')->resize(300,300) ."' style='width:100%; height:100%;'>";
echo "<h2 class='product-name' style='text-align:center;'>".$p->getName()."</h2>";
echo "<div class='pricebox' style='text-align:center;'><span class='regular-price'><span class='price'>£".number_format($p->getPrice(), 2)."</span></span></div>";
echo "</div>";
echo "</a>";
}
}
$i++;
}
}
这几乎 100% 有效,问题是 $p->getProductUrl() 仅由循环中的第一个产品填充,并且给所有顺序产品提供了错误的 url。
我看不出上面有任何问题,希望有人看一下。
谢谢
请尝试以下代码
$cart = Mage::getModel('checkout/cart')->getQuote();
$c = count($cart);
if($c != 0) {
$c = $c - 1;
$rand = rand(0, $c);
$i = 0;
foreach ($cart->getAllItems() as $item) {
if($i == $c) {
$productId = $item->getProduct()->getId();
$model = Mage::getModel('catalog/product');
$product = $model->load($productId);
$allRelatedProductIds = $product->getRelatedProductIds();
$rc = count($allRelatedProductIds) - 1;
$rand = rand(0, $rc);
$relatedProduct = $model->load($allRelatedProductIds[$rand]);
echo "<div class='page-title'><h1>Maybe you would like to try one of these</h1></div>";
foreach($allRelatedProductIds as $prod) {
$p = Mage::getModel("catalog/product")->load($prod);
echo "<a href='".$p->getProductUrl()."'>";
echo "<div style='float:left; font-size:1.3em; width:33%; line-height:1.25; font-family:\"karlaregular\"'>";
echo "<img src='".Mage::helper('catalog/image')->init($p, 'small_image')->resize(300,300) ."' style='width:100%; height:100%;'>";
echo "<h2 class='product-name' style='text-align:center;'>".$p->getName()."</h2>";
echo "<div class='pricebox' style='text-align:center;'><span class='regular-price'><span class='price'>£".number_format($p->getPrice(), 2)."</span></span></div>";
echo "</div>";
echo "</a>";
}
}
$i++;
}
}
我正在努力在购物车页面上显示 x 数量的相关产品。
这是我当前的代码
$cart = Mage::getModel('checkout/cart')->getQuote();
$c = count($cart);
if($c != 0) {
$c = $c - 1;
$rand = rand(0, $c);
$i = 0;
foreach ($cart->getAllItems() as $item) {
if($i == $c) {
$productId = $item->getProduct()->getId();
$model = Mage::getModel('catalog/product');
$product = $model->load($productId);
$allRelatedProductIds = $product->getRelatedProductIds();
$rc = count($allRelatedProductIds) - 1;
$rand = rand(0, $rc);
$relatedProduct = $model->load($allRelatedProductIds[$rand]);
echo "<div class='page-title'><h1>Maybe you would like to try one of these</h1></div>";
foreach($allRelatedProductIds as $prod) {
$p = $model->load($prod);
echo "<a href='".$p->getProductUrl()."'>";
echo "<div style='float:left; font-size:1.3em; width:33%; line-height:1.25; font-family:\"karlaregular\"'>";
echo "<img src='".Mage::helper('catalog/image')->init($p, 'small_image')->resize(300,300) ."' style='width:100%; height:100%;'>";
echo "<h2 class='product-name' style='text-align:center;'>".$p->getName()."</h2>";
echo "<div class='pricebox' style='text-align:center;'><span class='regular-price'><span class='price'>£".number_format($p->getPrice(), 2)."</span></span></div>";
echo "</div>";
echo "</a>";
}
}
$i++;
}
}
这几乎 100% 有效,问题是 $p->getProductUrl() 仅由循环中的第一个产品填充,并且给所有顺序产品提供了错误的 url。
我看不出上面有任何问题,希望有人看一下。
谢谢
请尝试以下代码
$cart = Mage::getModel('checkout/cart')->getQuote();
$c = count($cart);
if($c != 0) {
$c = $c - 1;
$rand = rand(0, $c);
$i = 0;
foreach ($cart->getAllItems() as $item) {
if($i == $c) {
$productId = $item->getProduct()->getId();
$model = Mage::getModel('catalog/product');
$product = $model->load($productId);
$allRelatedProductIds = $product->getRelatedProductIds();
$rc = count($allRelatedProductIds) - 1;
$rand = rand(0, $rc);
$relatedProduct = $model->load($allRelatedProductIds[$rand]);
echo "<div class='page-title'><h1>Maybe you would like to try one of these</h1></div>";
foreach($allRelatedProductIds as $prod) {
$p = Mage::getModel("catalog/product")->load($prod);
echo "<a href='".$p->getProductUrl()."'>";
echo "<div style='float:left; font-size:1.3em; width:33%; line-height:1.25; font-family:\"karlaregular\"'>";
echo "<img src='".Mage::helper('catalog/image')->init($p, 'small_image')->resize(300,300) ."' style='width:100%; height:100%;'>";
echo "<h2 class='product-name' style='text-align:center;'>".$p->getName()."</h2>";
echo "<div class='pricebox' style='text-align:center;'><span class='regular-price'><span class='price'>£".number_format($p->getPrice(), 2)."</span></span></div>";
echo "</div>";
echo "</a>";
}
}
$i++;
}
}