使用Magento API和SOAP,我想要实现的是在外部网页中显示我页面中的产品。我显示了ID,名称,描述,图像和页面链接。一切正常,除了一件事:产品页面的链接都是相同的(它们都重定向到第一个产品)
到目前为止,这是我的代码:
<?php
$proxy = new SoapClient('http://127.0.0.1/magento/api/v2_soap/?wsdl'); // TODO : change url
$sessionId = $proxy->login('testUser', 'password'); // TODO : change login and pwd if necessary
$pageURL="categorytree.php/";
$result = $proxy->catalogProductList($sessionId);
//var_dump($result);
echo "<br><br>";
require_once('/magento/app/Mage.php'); //Path to Magento
umask(0);
Mage::app();
$productModel = Mage::getModel('catalog/product');
//var_dump($productModel->getProductUrl);
foreach($result as $product)
{
echo "ID: $product->product_id <br>";
$productID = $product->product_id;
echo "Name: $product->name <br>";
$p = $productModel->load($productID);
$description = $p->getDescription();
echo "Description: $description <br>";
$imageUrl = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $p->getImage();
$product_collection_url = $p->getProductUrl();
$product_collection_url = str_replace($pageURL,"",$product_collection_url);
echo "Image: <a href='$product_collection_url'><img src='$imageUrl'></a><br>";
echo "<a href='$product_collection_url'>link to page</a><br>";
echo "<br>";
}
echo "<br><br>";
?>
首先我认为它与for循环有关,但每个产品ID,名称,描述都是正确的,$ product_collection_url是导致麻烦的那个。
看起来$ p-&gt; getProductUrl只能在第一次运行?
答案 0 :(得分:0)
没关系,解决了它。
我不得不再次加载产品,添加这些行
$my_product = Mage::getModel('catalog/product')->load($productID);
$my_product_url = $my_product->getProductUrl();
获取产品页面的网址