6

问题很简单。如果我知道我的产品的 sku 而没有别的,我怎样才能检索到该项目的 url。这对于远程服务的唯一 ID 与产品 ID 不匹配的第三方集成通常很有用。或者,也许您想创建一个搜索框以仅按 sku 搜索。

4

4 回答 4

11

你可以这样做:

$sku = 'ecco'; // SKU you want to load. 'ecco' is a sku in the Magento demo data

$url =  Mage::getModel('catalog/product')->loadByAttribute('sku',$sku)->getProductUrl();
echo $url;
于 2013-03-06T17:16:45.403 回答
3

另外....您可以将其添加到magento根目录中名为“geturlbysku.php”的文件中。此代码可以轻松提取代表产品的少量 json,从而实现小型 javascript 集成。产品 URL 是数据集的一部分

<?php

require_once '/app/Mage.php';
umask(0);
Mage::app('admin');

$actual_link = "http://$_SERVER[HTTP_HOST]";

$sku = $_GET['sku'];
$product =  Mage::getModel('catalog/product')->loadByAttribute('sku',$sku);
$fullUrl = "/catalog/product/view/id/" . $product->getId();

header("Content-Type: application/json");

    echo $_GET['callback'] . '('.json_encode($product->getData()).')';
?>

像这样使用... www.yoursite.com/geturlbysku.php?sku=theskuoftheproduct

返回的部分数据包括“url_path”:“your-product-name.html”,它对应于真实的url。

于 2015-03-10T13:48:11.630 回答
2

您可以使用加载方法。这比所有其他解决方案更快、更容易。

Mage::getModel('catalog/product')->load('sku', 'sku');

有关加载产品的更多信息,请单击此处

于 2013-03-06T04:53:35.820 回答
1
$product = Mage::helper('catalog/product')->getProduct($this->getData('sku'), Mage::app()->getStore()->getId(), 'sku');

$url = Mage::getUrl($product->getUrlPath());

您可以根据产品的 sku 访问产品的完整 url,方法是将此添加到方法中,然后将类上的 sku 属性设置为您希望搜索的 sku。

于 2013-03-05T22:03:03.067 回答