我已经搜索了几天试图找到这样做的方法,但找不到答案,希望有人可以帮助我。
基本上我们希望将SKU插入产品页面网址
实施例 SKU = ST500DM002
所以 domain.co.uk/seagate-barracuda-500gb-sata3.html
会变成 domain.co.uk/seagate-barracuda-500gb-sata3-ST500DM002.html
我查看了这个How to customize product URL?
它有点工作,但它会创建一个像http://www.domain这样的路径。 co.uk/catalog/product/ST500DM002/seagate-barracuda-500gb-sata3.html而不是将其添加到最后
此外,我们还有很多带有#的SKU导致问题并抛出404 有没有办法以编程方式添加SKU并删除#
由于
答案 0 :(得分:0)
复制代码并将其粘贴到文件“script.php”并将其移至magento根文件夹并尝试使用以下URL在浏览器中运行它, http://localhost.com/script.php
<?php
require 'app/Mage.php';
Mage::app();
$amount = 0;
$model = Mage::getModel('catalog/product');
$products = $model->getCollection();
foreach ($products as $product) {
$model->load($product->getId());
$urlkey = $product->getUrlKey();
$sku = $product->getSku();
$product->setUrlKey($urlkey."/".$sku)->save();
set_time_limit();
$amount++;
}
运行文件时,将使用新的url键重写所有URL。 您可以随处找到更新的密钥。
答案 1 :(得分:0)
创建观察者以捕获事件catalog_product_save_after_handler
$product = $observer->getProduct();
$urlkey = $product->getUrlKey();
$sku = $product->getSku();
if(substr($urlkey, strlen($sku) * (-1)) != $sku){
$product->setUrlKey($urlkey."/".$sku)->save();
}