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