将SKU添加到Magento URL的末尾

时间:2015-08-21 13:49:44

标签: magento url

我已经搜索了几天试图找到这样做的方法,但找不到答案,希望有人可以帮助我。

基本上我们希望将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并删除#

由于

2 个答案:

答案 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();                
}