一括登録と商品名について
-
投稿者投稿
-
2011年6月6日 12:19 PM #50462chatii参加者
お世話になります。
ちょっと疑問点があったので質問します。
商品登録の際、CSVで一括登録しているのですが、
エラーなしで更新しても、商品名の表示が変わらない現象に出会いました。
(MySQLでごにょごにょしていたのが原因だと思うのですが、)
結果的には、沢山できていた postmeta の _itemName の古いもの
(meta_id の若いもの)を削除して解決しました。
ここで疑問・質問なのですが、
カスタムフィールドをupdateでなくaddしているのはあえてでしょうか?
編集画面上からの変更では update であることと、
現在400品目を毎日数回 在庫更新しないといけないので、
DBの肥大化がちょっと気になるので…
Welcart のバージョン:1.0.3
症状を確認したブラウザ:
サーバー(会社名、サービス名):自社検証サーバ、PHP5.3 MySQL5.1.54
SSLの利用: 無し
WordPress のパーマリンク設定:
2011年6月6日 11:58 PM #62162nanbuキーマスターこんにちは。
ご報告ありがとうございます。
PHP5.3 環境でエクセルファイルの取り込みがうまく行かない症状を確認しました。主な症状は全角文字の文字化けです。
取りあえずCSV でと言いたい所ですが、現在CSV の取り込みも完全ではありません。取り急ぎCSV で完全に取り込めるよう修正いたしますので、しばらくお待ちください。
エクセルファイルの対応ですが、現在利用しているライブラリがどうもPHP5.3 には対応していないようなので、もしかしたら今後この機能は外すかもしれません。
よろしくお願いいたします。
2011年6月9日 4:34 AM #62163chatii参加者nanbu さま
ウィジェット フィルタについてのご回答を頂いたので、
Development Verを入れて、CSVについても確認してみましたが、
「エラーなしで更新しても、商品名の表示が変わらない現象」のままです。
やはり、post_meta には同じ商品の情報がどんどん追加されています。
/functions/define_function.php:537~600 にて
post_meta の insert をしているので当たり前ですが…
おそらく、template_func.php の
usces_the_itemName() において、
$str = get_post_custom_values('_itemName', $post_id);
if( $out == 'return' ){
return $str[0];
}else{
echo esc_html($str[0]);
}と、get_post_custom_values で返る配列の先頭を見ているからだと思います。
Wordpressの中で返す配列の並び順がどうなっているかまではわかりませんが、
var_dumpしてみると、古い→新しい順のような気がします。
というわけで、いくらCSVで更新しても、古い情報しか出てこないのです。
できれば、postmeta を update するようにはできないでしょうか?
前回も書いたとおり、毎日数回の更新をしていますが、
商品数が400点なのに、 _itemName だけで 3000行あります…
2011年6月9日 5:09 AM #62164chatii参加者蛇足ですが、以下のような回避策を講じました。
define_function.php の
$query = "INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) VALUES $valstr";
これの手前に
post_id と meta_key like ‘_item%’
でDELETEのクエリを投げるようにしてしまいました。
2011年6月10日 12:36 AM #62165nanbuキーマスター今回、chatii さんのデータベースに余計なmeta ができてしまったのは、PHP5.3 環境でエクセルファイルを一括登録してしまったためです。
そのmetaのために更新されても新しいデータが適用されないというような現象が起こったのだと思います。
仰る通り、metaを一旦削除してしまって正解だと思います。ただ、正常であれば(エクセルファイルを使わなければ)余計なmetaが追加されるような事はないはずです。Development Version(r1106072)で動作確認いただけたらと思います。
2011年6月10日 3:23 AM #62166chatii参加者nanbuさん
ご回答ありがとうございます。
エクセルファイルというのは、 .xls ではないのでしょうか?
今まですべてCSVでしか登録していません。
USCES_VERSION 1.0.3.r1106081 のものを使い、
CSVにて更新しましたが、やっぱり meta が増えていきます。
// 一括登録の処理で、metaについてUPDATEしている箇所が
// 無いように思えるんです…
2011年6月10日 6:39 AM #62167nanbuキーマスターchatii さん、ありがとうございます。見落としていました。
修正してDevelopment Version をr1106101 に更新しました。
これで、CSVの登録も大丈夫だと思います。よろしくお願いします。
2011年6月10日 7:38 AM #62168chatii参加者nanbu さん
修正ありがとうございます。
動作確認できましたー。
今後ともよろしくおねがいします!
-
投稿者投稿
- このトピックに返信するにはログインが必要です。