Magento小写所有产品

时间:2014-01-07 11:09:33

标签: php magento magento-1.8

出于某种原因,我的客户在其Magento商店中添加了所有带有资本头衔的产品。 现在,我正在重新设计他们的网店,我不想拥有资本头衔。

我正在考虑运行一个脚本,它正在替换数据库中小写标题的所有产品标题。但是,我害怕破坏数据库。

有谁知道,我怎么能做到这一点?

7 个答案:

答案 0 :(得分:3)

最好的方法(在我看来)是重写目录/产品模型并添加方法

<?php

    class Mynamespace_Module_Model_Product extends Mage_Catalog_Model_Product {

        public function getName() {
            $name = parent::getName();
            return strtolower($name);
        }
}

或者您只需运行此脚本:

UPDATE `catalog_product_entity_varchar` SET value=LOWER(value) 
where attribute_id = "XX"

其中XX是产品实体的属性ID;您需要找到产品名称属性的正确ID;

请记住在运行任何脚本之前始终备份数据库

答案 1 :(得分:1)

要更改所有产品名称(您调用的标题),您需要表catalog_product_entity_varchar。 在你的模型中,或者帮助者使用这样的函数来获取所有产品并使用lopp更改名称(标题)并将其保存回来。

public function renameProduct() {
    $products = Mage::getModel('catalog/product')->getCollection()
                ->addAttributeToSelect('name') //here you select all products name
                ));
    foreach ($products as $product) {
        $product->setName(strtolower($product->getName())); //here you make lowercase you products name
        $product->save();//here you save to DataBase new names
    }
}

答案 2 :(得分:0)

您可以使用strtolower(http://be2.php.net/strtolower)或仅在CSS中使用text-transform属性(http://www.w3schools.com/cssref/pr_text_text-transform.asp

答案 3 :(得分:0)

您可以运行此查询来更改产品标题的大小写。请备份数据库,并确保entity_type_id和attribute_id值

UPDATE catalog_product_entity_varchar SET value = LOWER(value) WHERE entity_type_id = '10' AND attribute_id = '96'

我测试了这个。它对我来说很好。

答案 4 :(得分:0)

如果要更正数据,请在数据库中更正它。无论如何,拥有适当的开发环境和最新备份是必须的,所以不必害怕任何事情。

但是,如果您只想在保持数据不变的情况下修复附加值,请考虑使用CSS来小写/标记数据。

答案 5 :(得分:0)

您还可以在前端phtml中更改产品名称案例。例如,如果要更改产品视图页面中显示的产品名称,请转至app / design / frontend /// template / catalog / product / view.phtml。只需编辑呈现产品名称的部分。

     <div class="product-name">
            <h1><?php echo strtolower($_helper->productAttribute($_product, $_product->getName(), 'name')) ?></h1>
        </div>

答案 6 :(得分:0)

也许不理想,但另一个简单的选择是使用CSS。

只需在产品标题元素中添加文本转换即可。

因此,假设产品标题为:

<h1 class="product-title">PRODUCT TITLE</h1>

对于所有小写,只需添加:

h1.product-title { text-transform: lowercase; } 

或者您可以将每个首字母大写:

h1.product-title { text-transform: capitalize; }