質問

すべての製品で SKU を 34 文字より長くできるようにするには (単純な製品の場合) どうすればよいですか?

新しい製品(シンプル)を追加して34文字を超える文字を入力すると、Magentoは保存後に文字数を34文字にカットします。

データベースでは、eav_attribute テーブルの「sku」属性 (クエリ項目、注文項目、請求書項目、出荷項目) は varchar(255) を保持します。Catalog_Product_Entity の場合、属性は VarChar(64) です。いずれの場合も 34 文字以上です。したがって、データベースを変更せずに SKU を 64 文字に変更できますね。

それ、どうやったら出来るの?ユーザー側の magento コードについてはよく理解していますが、管理者側については理解していません。この質問を自分で理解するのに役立つ、管理者側での変更に関する良いチュートリアルを提案していただけますか。

ありがとう、マーゴット

役に立ちましたか?

解決

それはコアのインストールとの互換性を破壊し、コアをアップグレードするとき、それは将来的に予測できない動作を作成するように、

@latvianあなたが解決策として提案することを修正の種類は非常に良いアイデアではありません。このの迅速かつ汚いの唯一の将来に問題を作成する問題を解決する方法。

私はと呼ばれる製品オブジェクトにカスタム属性を追加してお勧めは何の custom_sku の文字列にすることができ、あなたは限り、あなたが望むようにそれを作ることができます。 ここでは、インストールにカスタム属性を追加する方法についてはリンクのです。

他のヒント

ありますより多くのそれにこれ以上でも....

の変更SKUフィールド:VARCHARにcatalog_product_entity(255)の変更SKUフィールドに:VARCHARにcatalog_product_flat_some_number(255)

そして、あなたは編集する必要がありますSku.php管理における検証習慣トリガとてもます。

変更:const SKU_MAX_LENGTH = 64;

へ:const SKU_MAX_LENGTH = 255;

MAX_LENGTHは255ではなく64できるようになります。 ..あなたが好きなものは何でもそれを作るています。

これは自分で入手しました。これが私がやったことです。

まず、上記の数え方を間違えました。デフォルトでは、Magento では SKU 番号の長さを最大 64 に設定します。これは、DB 内の最も短い SKU 属性 (catalog_product_entity テーブル内) が varchar(64) に設定されているためです。

  1. catalog_product_entity テーブルの SKU 属性を varchar(255) または任意の長さに変更します。この長さが 255 未満の場合は問題ありません。そうでない場合は、DB 内の Order SKU、Quote SKu などの他の SKU 属性を変更する必要があります。

  2. SKU の長さを大きく設定しすぎると、カタログ -> 製品管理のグリッドが壊れます。解決策の 1 つは、/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 が表示されます。

お役に立てば幸いです。

最高

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top