2

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

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

データベースでは、eav_attributeテーブルの「sku」属性(queteアイテム、orderアイテム、invoiceアイテム、shipmentアイテム)はvarchar(255)を保持します。Catalog_Product_Entityの場合、属性はVarChar(64)です。いずれの場合も34文字以上です。したがって、データベースを変更せずにSKUを64文字に変更できますか?

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

ありがとう、マーゴット

4

3 に答える 3

2

これ以上のものがあります....

次のSKUフィールドを変更します:catalog_product_entityをvarchar(255)に変更します:catalog_product_flat_some_numberのSKUフィールドをvarchar(255)に変更します

次に、管理者で検証がトリガーされないようにSku.phpを編集する必要があります。

変更:const SKU_MAX_LENGTH = 64;

に:const SKU_MAX_LENGTH = 255;

これにより、max_lengthを64ではなく255にすることができます。好きなように作成してください。

于 2012-01-17T18:18:30.230 に答える
1

@latvianソリューションとして提案する種類の変更は、コアインストールとの互換性を損ない、将来コアをアップグレードするときに予期しない動作を引き起こす可能性があるため、あまり良い考えではありません。問題を解決するこの迅速で汚い方法は、将来問題を引き起こすだけです。

私がお勧めするのは、custom_skuというカスタム属性を製品オブジェクトに追加することです。これは文字列にすることができ、好きなだけ作成できます。インストールにカスタム属性を追加する方法に関するリンクは次のとおりです。

于 2010-03-23T09:37:21.700 に答える
0

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

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

  1. catalog_product_entityテーブルのSKU属性をvarchar(255)または任意の長さに変更します。この長さが255未満の場合は問題ありません。それ以外の場合は、DB内のOrder SKU、QuoteSKuなどの他の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が表示されます。

お役に立てば幸いです。

一番

于 2010-01-27T22:05:08.410 に答える