【welcart】welcartのメジャーアップデートにようやく対応

当店のWebサイトはWordPressで作られおり、ショッピングカート部分はwelcartというECプラグインを使用しています。Wordpressは強力なCMSで、さまざまなプラグイン(welcartもその一つ)が用意されている他、カスタマイズも比較的容易でSEO対策も優秀なため、そのWordpress上で動き、原則無料(制作・カスタマイズの有料オプションあり)のwelcartはとてもありがたいプラグインなのです。

そのwelcartが、このたびVer. 2.7へアップデートを行ったのですが、そのアップデートがデータ構造まで変更するというメジャーなものだったため、当HPもその煽りを受けて様々不具合が発生する事態となりました。

以下備忘録として、症状と行った対策を書き記しておきます。

1. welcartデータの更新が途中で止まる
Ver. 2.7へアップデートした後、welcartデータの更新が必須となりますが、その更新作業が25%ほどで止まってしまいます。実はこの症状、Ver. 2.6の時にも起こりましたが、その時はwelcartレスキューへ連絡したところ修正されましたので、今回はバージョンアップを待ちましたが、Ver. 2.7.2になっても対応されなかったため、再びwelcartレスキューへ連絡。Ver. 2.7.3で無事データ変換が完了しました。

2. NEW ARRIVALリストが表示されなくなる
次の検索結果が表示されなくなる原因と同じなのですが、当WebpageはWelcartがカスタムフィールド(メタキー)に作っている「_itemCode」という項目を参照して、welcartのアイテムか通常の記事なのかを判断していた他、「NEW ARRIVAL」では並べかえ用のキーに使用していました。
この「_itemCode」が原因と分かるまでに少し苦労しましたが、実は随分前から「Welcart 2.7 のためのカスタマイズ修正」というドキュメントが発表されていたようです。マニュアル・ドキュメント類はきちんと読まないといけません。
NEW ARRIVALの並べかえは日付がメインで「_itemCode」は同一日時だった場合にのみ意味のある値でしたので、Wordpressのメタキー「ID」で代用することにしました。

3. レコード(welcartアイテム)の検索結果が表示されなくなる
上記同様「_itemCode」をwelcartアイテムの確認に使用していたのが原因でした。上手い具合に、すべてのwelcartアイテムに並べかえのためのメタキー文字列「Sorting」が埋め込んでありましたので、「_itemCode」の代わりに「Sorting」を参照することで解決しました。「Sorting」はWelcart内部のメタキーではなく、独自に追加したメタキーだったため問題なく使用できました。

4. 通常記事の検索結果が表示されなくなる
前述の通り当Webpageは「_itemCode」の参照によってWelcartアイテムの場合と通常記事の場合とで表示方法を変えていたのですが、検索用窓も別々に設定しており、通常記事検索とレコード(商品)検索が個別に行えるようになっていました。上記の通りレコード検索の方は復旧したのですが、通常記事検索は復旧しませんでした。
これは原因に気づくのに苦労しました。あれこれと勘でいじくってみても復旧しなかったのですが、ふと検索後のURLを見てみると、

 https://classicus.jp/category/[homeurl]?noitem=y&s=シェーンベルク

となっています。どうやら<form>内のショートコードで設定した「action=”[homeurl]“」が上手く働いていないようです。ひとしきり何が原因か考えたりソースコードを眺めたりしてみたのですが、よくわからず、さりとてステップ・バイ・ステップで原因を探るのも面倒なため、「action=”/”」としてお茶を濁してしまいました。デバッガーを使えばたちどころに判明するのかもしれませんが、使ったことがないものですから…。これは、welcartのアップデートが原因ではなかったかもしれません。

以上、ほぼ丸一日を費やしてようやく通常状態へと復旧した次第。今回はWelcartが使用していたメタキーの扱いが大幅に変更されたため、カスタマイズした部分で大きく影響を受けてしまいました。