Magento产品:从产品名称中删除SKU

时间:2014-02-12 18:39:44

标签: php mysql magento replace

目前我的商店名称中包含SKU商店,现在我想从产品名称中删除它,但我该怎么办呢?

我发现这些查询列出了产品名称和sku,但是如何使用TRIM(REPLACE(product_name,SKU,''))?或者有没有比在phpmyadmin中运行mysql查询更好的方法?

SELECT `value` AS product_name
FROM catalog_product_entity_varchar
WHERE entity_type_id = (SELECT entity_type_id FROM eav_entity_type WHERE entity_type_code = 'catalog_product') 
AND attribute_id = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = 'name' AND entity_type_id = (SELECT entity_type_id FROM eav_entity_type WHERE entity_type_code = 'catalog_product'))

SELECT `sku` FROM `catalog_product_entity`

谢谢

4 个答案:

答案 0 :(得分:1)

<?php

require_once dirname(__FILE__) . '/app/Mage.php';
Mage::app();

$products = Mage::getModel('catalog/product')->getCollection()
                ->addAttributeToSelect(array('name', 'sku'));

foreach ($products as $product) {
    $product->setName(str_replace($product->getSku(), '', $product->getName()))->save();
}

将其保存在public_html文件夹中,然后访问该网址即可运行该文件夹。如果成功运行,页面应完成加载并为空。如果您的目录非常大,可能需要一点点。

答案 1 :(得分:1)

您也可以通过在循环中打印旧名称和新名称来查看它

<?php

require_once dirname(__FILE__) . '/app/Mage.php';
Mage::app();

$products = Mage::getModel('catalog/product')->getCollection()
                ->addAttributeToSelect(array('name', 'sku'));

foreach ($products as $product) {

echo  "old name".$product->getName();
    $product->setName(str_replace($product->getSku(), '', $product->getName()))->save();
echo  "new name".$product->getName();
}

答案 2 :(得分:1)

尝试根据商店ID进行过滤,将your_store_id中的商店ID替换为您想要的商店

<?php

require_once dirname(__FILE__) . '/app/Mage.php';
Mage::app();

$products = Mage::getModel('catalog/product')->getCollection()->->addAttributeToFilter('store_id',"your_store_id")
                ->addAttributeToSelect(array('name', 'sku'));

foreach ($products as $product) {

echo  "old name".$product->getName();
    $product->setName(str_replace($product->getSku(), '', $product->getName()))->save();
echo  "new name".$product->getName();
}

答案 3 :(得分:0)

我想也许你可以在你的服务器上写一些PHP代码来做到这一点,首先获得所有产品集合,然后为每个产品获取产品名称,用''替换SKU,然后重新设置产品名称并保存。