1.4.2 で開発していた Magento を 1.6 に移行する作業を年末年始で行っていたのですが、だいたい完了したかなーと思った時に、困ったエラーに遭遇してしまいました。
カタログー商品管理で、商品を編集すると、編集は完了するのですが下記の警告が表示されます。
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ‘n-0-1’ for key 1
(n は、データベース上の商品ID)
意味としては、データベース上にエントリが重複しているということです。
放っておくと大変なことになりかねません。
移行作業で商品データをCSVでインポートしたり、データベース上でSQLで商品データを削除したりしているので、「何かやっちゃったかなー」と、かなり焦りました。
でも、どうやら私のせいではなかったようです。
警告メッセージの内容でググったら、こんな記事を見つけました。
Issues with Special Price and SQL error on product save (+ editing in cart?)
https://github.com/organicinternet/magento-configurable-simple/issues/52
URLを見てピンとくる方もいらっしゃるかもしれませんが、この記事はエクステンション「Simple Configurable Products」に関するものです。
このエクステンションは、Configurable Products の価格を割合ではなく価格で設定できるという、地味に便利なものです。
1.5 に対応していると明記してあるので、1.6 でも使えると思っていれていたのですが、どうやらダメだったようです。
対策としては、プログラムを1行書き換えるだけです。
(対象ファイル)
app/code/community/
OrganicInternet/SimpleConfigurableProducts/
Catalog/Model/Resource/Eav/Mysql4/Product/Indexer/Price.php の58行目
(旧)
$this->cloneIndexTable(true);
(新)
$this->clearTemporaryIndexTable();
いやー、新年早々、ビビリました。
何が起こったかと思って、データベースの内容をしらみつぶしに見ちゃいましたからねー。
でも、1.6 は、1.4にはない便利なエクステンションが多くて結構いいですよ。
良いところについては、また後ほど記事を書きたいと想います。
この記事を書いた人
-
FAシステムメーカー、国内最大手印刷会社製版部、印刷・ウェブ制作会社を経て、家庭の事情で実家に帰省して独立
現在はフリーランスと制作会社シニアディレクターのマルチワーク
ウェブ制作のほぼ全般を見渡せるディレクター業務が主だが、デザイン・コーディングも好き
1997年ブログ開設
WordPressコミュニティには2011年から参加
WordCamp Kansai 2016 セッションスピーカー
WordCamp Tokyo 2023 パネルディスカッションパネラー
WordBench京都、WordBench神戸、WordPress Meetup八王子など登壇多数
最新の投稿
ご質問・ご相談などありましたら
お気軽にお問い合わせください
資料請求・お問い合わせにはメールアドレスが必要です
コメントを残す