gpt4 book ai didi

Magento-通过URL加载产品

转载 作者:行者123 更新时间:2023-12-04 05:00:10 25 4
gpt4 key购买 nike

如果产品ID不可用,而只有产品的url,则如何在Magento中加载产品模型?例如,我要从友好的网址中检索产品模型,例如

electronics/cameras/olympus-stylus-750-7-1mp-digital-camera.html

我在 another post中找到了以下代码:
$oRewrite = Mage::getModel('core/url_rewrite')->loadByRequestPath(
$path
);

但它似乎无法正常工作。 Magento文档在这方面非常缺乏。有谁知道如何做到这一点?

最佳答案

这是一个替代解决方案。

首先使用URL重写模型来查找与您的产品匹配的路由:

    $vPath = 'electronics/cameras/olympus-stylus-750-7-1mp-digital-camera.html';
$oRewrite = Mage::getModel('core/url_rewrite')
->setStoreId(Mage::app()->getStore()->getId())
->loadByRequestPath($vPath);

然后,您可以在路线上调用getProductId()来找到产品的ID:
    $iProductId = $oRewrite->getProductId();

最后,如果您需要产品模型对象本身,则可以很简单地调用:
    $oProduct = Mage::getModel('catalog/product')->load($iProductId);

上面与您发布的代码示例之间的主要区别是对setStoreId的调用。同一产品可能取决于其所在商店而具有不同的URL,因此路由组件在找到要显示的产品之前需要具有适当的商店上下文。

与Zachary Schuessler解决方案相比,此方法的优势在于,如果不同产品的url尾部相同,则每次使用URL重写器都会找到正确的产品(例如,folder1/my-product-name和folder2/my-product-名称是不同的产品)。使用URL重写器还可以在“folder1/my-product”引用不同商店中的不同产品的情况下使用。这可能适用于您的环境,也可能不适用于您的环境。

关于Magento-通过URL加载产品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9254789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com