既存の注文で SKU を変更する方法を説明してくれる人はいますか? サードパーティから注文をインポートしますが、SKU にスペースが含まれているため、削除する必要があります。sales_flat_order_item を見ましたが、変更方法がわかりません。どんな助けでも大歓迎です!
2 に答える
注文商品の SKU の空白を削除する方法の 1 つは、次のような s/t です。
$iIncrementId = '911';
$oOrder = Mage::getModel('sales/order')->load($iIncrementId, 'increment_id');
foreach ($oOrder->getAllVisibleItems() as $oItem) {
$oItem
->setSku(str_replace(' ', '', $oItem->getSku()))
->save();
}
SKU は注文ではなく製品に関連しているため、注文番号を変更するつもりだと思います。
注文番号を変更する UI の方法はありません (拡張機能はいくつかありますが、どれも使用しないことを強くお勧めします) が、データベースにアクセスできる場合は自分で変更できます。テーブル sales_flat_order には、注文番号が格納される increment_id フィールドがあります。このフィールドは、英数字の値をサポートすることを意味する varchar(50) です。
Magento はフィールドに UNIQUE インデックスを保持するため、重複を保持することはできません.... 1.4.x より前の Magento バージョンを実行している場合を除きます (実際には 1.4.0.22 にします)。その場合は、increment_id を重複させないように注意し、可能な限り数値に固執してこのバグを防止してください http://www.magentocommerce.com/bug-tracking/issue?issue=13625
DB にアクセスできない場合は、ジョブを実行するアップグレード スクリプトをいつでも作成できますが、重複を避けるためにいくつかのロジックを追加するか、インストール スクリプトが顔をしかめ、修正するまで Web サイトが機能しません。