先日から作成しているもしもの商品データ自動更新システムですが、いろいろと仕様変更およびバグ潰しを行いました。

まず、販売終了になった商品を自動で削除するようにしました。
これは暫定的に投稿から30時間経過した投稿を削除で対応。

次に、カスタムフィールドの値の価格情報の表示がおかしくなる現象があったのですが、wp_postmetaテーブルのmeta_valueカラムのデータ型がlongtextなのが原因でした。
これは、

ALTER TABLE wp_postmeta MODIFY meta_value varchar(255);

というクエリを発行して対応。
でも、これだと入りきらない値が発生するので悩みどころです。

でもって、登録商品の抽出方法を変更しました。
いったん、もしものカテゴリ毎にリクエストして、PHPでサイトのカテゴリに合わせた商品を抽出しています。
これによって、登録件数が倍に増えましたし、カテゴリ違いも大幅に減少しました。
ちょっと更新に時間がかかるようになりましたが、バックグラウンドでの作業なので問題ないでしょう。
さくらさん見逃して下さいw

で、次は楽しいデザインの時間です。
自動で商品情報をWordPressに投稿するシステムが完成しました。

仕様としては、CSVファイルにカテゴリ情報を持たせて、カテゴリとタグを作成、もしものカテゴリとキーワードで作成したカテゴリとタグに入れ込んでいくようにしました。
もちろん取得する情報は在庫ありのみです。
で、価格その他の情報はカスタムフィールドへ。
でもって、レンタルホストのcronを使って、1日1回更新させます。
これで、在庫切れや価格変動、新商品への対応が不要になりましたグッド!

ただ、商品名にアイテム種別が書いてない商品をかなり取りこぼしています。
もしものタグ付けがしっかり機能していればこのへんは解決なんですが…。

あと、OR検索が出来ないのが痛すぎますorz
一度、全情報をローカルに取り込んで、そこからカテゴリ毎に抽出すれば正規表現を使えるのでそうしようか悩みます…。
でも、PHPのメモリ的にどうなんだろうってのがあって躊躇しますね。

まあ、しばらくは現状のシステムで色々試行錯誤してみます。

PHPなんてほとんど分からなくても、正味3日で出来た。
検索すれば結構なんとかなるので、チャレンジする価値有り!と思います。
wp_postテーブルの追加・更新は完了しました。

次は、wp_postmetaテーブルとカテゴリとタグの処理です。
カテゴリとタグはCSVファイルから取り込む仕様にしようと思います。

というわけで、

実際に更新する在庫情報と価格情報を更新
データベースに商品IDが無い場合は、レコード追加
・在庫切れの場合は、データベースから削除
・カテゴリ管理
・XMLにないレコードの削除
・CRON書く