如何从Magento的SKU获取产品的Url

时间:2013-03-05 22:03:03

标签: magento

问题很简单。 如果我知道我的产品的sku而没有别的,我怎么能检索该项目的URL。这对于第三方集成通常很有用,其中远程服务的唯一ID不匹配产品ID。或者您可能想要一个搜索框来仅通过sku搜索。

4 个答案:

答案 0 :(得分: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;

答案 1 :(得分:3)

另外....你可以将它添加到magento root dir中名为'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”,它对应于真实的网址。

答案 2 :(得分:2)

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

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

有关加载产品Click Here

的详细信息

答案 3 :(得分:1)

$product = Mage::helper('catalog/product')->getProduct($this->getData('sku'), Mage::app()->getStore()->getId(), 'sku');

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

您可以根据其sku访问产品的完整网址,方法是将其添加到方法中,然后将课程上的sku属性设置为您要搜索的sku。