【问题标题】:Magento product: remove SKU from product nameMagento 产品:从产品名称中删除 SKU
【发布时间】:2014-03-11 07:09:27
【问题描述】:

目前我有一家商店,产品名称中包含 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`

谢谢

【问题讨论】:

    标签: php mysql magento replace


    【解决方案1】:

    试试这个根据store id过滤,把your_store_id里面的store id换成你想要的store

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

    【讨论】:

    • 改成: [code]FILE) 。 '/app/Mage.php';法师::app()->setCurrentStore(2); $products = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect(array('name', 'sku')); $i = 1; foreach ($products as $product) { echo '
      '; echo "$i 旧名称:".$product->getName().'
      '; $product->setName(trim(str_replace($product->getSku(), '', $product->getName())))->save(); echo 'New: '.str_replace($product->getSku(), '', $product->getName()).'
      '; $i++; }[/code]
    【解决方案2】:
    <?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 文件夹中,然后通过访问 url 运行它。如果它成功运行,页面应该完成加载并且是空白的。如果您的目录很大,则可能需要一点时间。

    【讨论】:

    • 谢谢!这就是我要找的。还要感谢 Rohit Goel。您认为学习 Magento 开发的最佳方式是什么?
    • 抱歉,另一个问题,我安装了 2 种语言(2 个商店视图)我应该如何使用这个脚本?
    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-01
        相关资源
        最近更新 更多