【问题标题】:Size SKU in MagentoMagento 中的 SKU 大小
【发布时间】:2010-01-18 21:32:57
【问题描述】:

如何允许所有产品的 SKU 长度超过 34 个字符(对于简单产品)?

当我添加新产品(简单)并输入超过 34 个字符时,Magento 会在保存后将其削减为 34。

在数据库中,来自 eav_attribute 表的“sku”属性(用于 quete 项目、订单项目、发票项目、装运项目)包含 varchar(255)。对于 Catalog_Product_Entity,属性是 VarChar(64)。无论哪种情况,它都超过 34 个字符。因此,我可以在不更改数据库的情况下将 SKU 更改为 64 个字符,对吗?

我该怎么做?我对用户端的 magento 代码有很好的理解,但对管理端却没有。您能否建议我在管理方面进行更改的好教程,这可以帮助我自己解决这个问题。

谢谢你, 玛戈特

【问题讨论】:

    标签: php magento skus


    【解决方案1】:

    还有比这更多的......

    将 catalog_product_entity 中的 SKU 字段更改为 varchar(255) 将 catalog_product_flat_some_number 中的 SKU 字段更改为 varchar(255)

    然后您将不得不编辑 Sku.php,以便验证不会在管理员中触发。

    更改:const SKU_MAX_LENGTH = 64;

    到:const SKU_MAX_LENGTH = 255;

    这将允许 max_length 为 255 而不是 64.. 随意设置。

    【讨论】:

      【解决方案2】:

      @latvian 您作为解决方案提出的那种修改不是一个好主意,因为它破坏了与核心安装的兼容性,并且在将来升级核心时可能会产生不可预测的行为。这种快速而肮脏的解决问题的方式只会在未来制造问题。

      我建议向产品对象添加一个名为 custom_sku 的自定义属性,该属性可以是字符串,您可以根据需要设置任意长度。 这是一个link,介绍了如何为您的安装添加自定义属性。

      【讨论】:

      • 谢谢 Elzo...这是一个很好的解决方案,但是,不太实用...如果公司有超过 80k 的零件和其他模块在 sku 上中继,那么切换到 custom_sku 你将不得不重写其他模块并为每个产品添加 custom_sku。 ......很多工作。我的解决方案可能容易受到升级的影响,但是升级会改变 SKU 等数据库字段的可能性有多大(至少我想不出为什么)。其他更改可以在布局 xml 文件中覆盖,现在担心了。
      • 简而言之,我不同意你的看法。您的解决方案更好,但在我们的情况下不太实用......我们可能会后悔,然后我会来找你:)
      【解决方案3】:

      我自己得到了这个。这就是我所做的。

      首先,我在上面的计数时犯了错误。默认情况下,Magento 允许 SKU# 最长为 64。这是因为数据库中最短的 SKU 属性(在表 catalog_product_entity 中)设置为 varchar(64)。

      1. 将 catalog_product_entity 表中的 SKU 属性更改为 varchar(255) 或您想要的任何长度。如果此长度小于 255,则可以,否则您必须更改其他 SKU 属性,例如数据库中的 Order SKU、Quote SKu 和其他

      2. 将 SKU 长度设置得太大会破坏目录->产品管理中的网格。一种解决方案是在 /design/adminhtml/default/default/template/widget/grid.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);
        ?>
        

      现在即使您无法在目录->产品管理中看到完整的 SKU 编号,当您单独双击/编辑产品时也会看到完整的 SKU。

      我希望它有用。

      最好的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-14
        • 1970-01-01
        • 2011-10-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多