目前我的商店名称中包含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`
谢谢
答案 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,然后重新设置产品名称并保存。