我怎么能允许SKU得超过34个字符的(为简单的产品)的所有产品?

当我加入新的产品(简单)并且输入超过34人物,Magento削减到34后的节省。

数据库中的'商品'的属性(为quete项,以便项目,项目的发票、装运项目)从eav_attribute表举行varchar(255).为Catalog_Product_Entity的归于是VarChar(64).在任何一种情况下,它比34characters.因此,我可以改变SKU到64人物没有作出任何改变数据库,是否正确?

我要怎么做?我有很好的理解的用户侧magento代码,但不是管理边。你可以给我建议的良好的教程作出的改变管理方可以帮助我找到这个问题我自己。

谢谢你, Margots

有帮助吗?

解决方案

@latvian的一种修改,你提出的解决方案是不是一个很好的主意,因为它打破兼容性与核心安装和升级的核心时,可能会在未来创造不可预测的行为。这的快速和肮脏的解决问题,只会造成对未来问题的方式。

我建议什么是添加自定义属性称为产品对象的 custom_sku ,可以是一个字符串,你可以把它只要你想要的。 这里是href="http://www.magentocommerce.com/wiki/doc/installing_custom_attributes_with_your_module" rel="nofollow如何自定义属性添加到您的安装noreferrer">链接一个

其他提示

有比这甚至....

更给它

在更改SKU字段:catalog_product_entity为varchar(255)改变SKU字段:catalog_product_flat_some_number为varchar(255)

然后你必须编辑Sku.php因此在验证时不会在管理触发。

变化:const SKU_MAX_LENGTH = 64;

于:const SKU_MAX_LENGTH = 255;

这将使MAX_LENGTH是255,而不是64 ..使它无论你想。

我得到这个我自己。这里是我做了什么。

第一,我犯了错误,在计算上面。通过默认Magento让SKU#64最大长。这是因为最短的商品属性(在表catalog_product_entity)在数据库是设varchar(64).

  1. 改变商品属性在catalog_product_entity表varchar(255)或任何你想要的。如果这种长度小于255你的罚款,否则你必须改变其它商品属性,例如为SKU,报价商品和其他数据库

  2. 通过设定商品的长度太大,它破坏了电网的目录->产品的管理。一个解决方案是插入以下代码在/设计/adminhtml/default/default/template/部件/电网。phtml线157(后这一行: <?php foreach ($this->getCollection() as $_index=>$_item): ?>)

    <?php //truncates SKU when too large
    $sku = $_item->getData('sku');
    if(strlen($sku)>60){
        $sku = substr($sku,0,60);
    }
    $_item->setData('sku',$sku);
    ?>
    

现在即使你就不能看到完整的库存数量目录->的产品管理,你会看到完整的商时,双击/编辑的产物。

我希望这是有用的。

最好的

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top