Magento API产品URL未更新

时间:2014-07-09 21:40:31

标签: php api magento

使用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只能在第一次运行?

1 个答案:

答案 0 :(得分:0)

没关系,解决了它。

我不得不再次加载产品,添加这些行

$my_product = Mage::getModel('catalog/product')->load($productID); 
$my_product_url = $my_product->getProductUrl();

获取产品页面的网址