WooCommerce 10.7リリース:HPOS高速化とFulfillment API刷新の全容

WooCommerce 10.7リリース:HPOS高速化とFulfillment API刷新の全容

WooCommerce 10.7リリース:HPOS高速化とFulfillment API刷新の全容

WooCommerce 10.7の正式リリースが、2026年4月14日に予定されている。今回のアップデートは、ショップの表示速度に直結するパフォーマンスの劇的な改善と、開発者が配送情報をより柔軟に扱える新しいAPIの導入が柱となっている。すでにベータ版が公開されており、開発コミュニティでは新機能の検証が進んでいる状況だ。

特筆すべきは、データベースクエリの大幅な削減である。HPOS(高性能注文ストレージ)環境における注文データの取得効率が向上し、特定の条件下ではクエリ数が半分以下にまで減少した。これは大規模な注文を抱えるストアにとって、サーバー負荷の軽減とレスポンスの向上をもたらす重要な変更といえる。

本記事では、WooCommerce 10.7で導入される主要な機能やAPIの変更点、そして開発者が注意すべきセキュリティの強化項目について詳しく解説していく。サイト運営者やエンジニアが、次期バージョンへの移行準備をスムーズに進めるためのガイドとして活用してほしい。

パフォーマンスの劇的な向上とクエリの最適化

パフォーマンスの劇的な向上とクエリの最適化

WooCommerce 10.7における最大のトピックは、システムの根幹に関わるパフォーマンスの最適化だ。特に、注文データを効率的に処理するための仕組みであるHPOS(High-Performance Order Storage / 高性能注文ストレージ)において、目覚ましい成果が得られている。

HPOSにおけるクエリ削減とN+1問題の解消

WooCommerce Developer Blogの報告によれば、REST APIの /wc/v4/orders エンドポイントにおけるクエリ数が、従来の271から132へと大幅に削減された。これは「キャッシュプライミング(Cache Priming)」と呼ばれる手法を導入したことによる成果だ。キャッシュプライミングとは、データが必要になる前にあらかじめキャッシュを準備しておく仕組みを指す。

具体的には、APIが注文データをシリアライズ(データ転送用の形式に変換)する際に発生していた「N+1問題」が解消された。N+1問題とは、1つの親データ(注文)を取得した後に、それに関連する複数の子データ(注文項目やメタデータ)を個別に取得するために大量のクエリが発行されてしまう現象だ。今回の改善により、必要なデータが一括でキャッシュされるようになり、データベースへの負荷が劇的に減少している。

データベースインデックスとストアAPIの高速化

データベースの検索効率を上げるための「インデックス」も強化された。新しく woocommerce_shipping_zone_methods テーブルにインデックスが追加されたことで、配送ゾーンの検索処理が高速化されている。配送設定が多い複雑なストアほど、その恩恵を強く感じられるはずだ。

また、フロントエンド向けの「Store API」では、商品エンドポイントにおいて Last-Modified タイムスタンプのキャッシュが導入された。これにより、データに変更がない場合はデータベースへの問い合わせ自体をスキップできるようになり、キャッシュヒット時のレスポンスがさらに速くなっている。さらに、高トラフィックなサイト向けに、注文数のカウント更新を一時的に無効化できる新しいフィルター woocommerce_pre_refresh_order_count_cache も追加された。

配送・フルフィルメント機能のAPI刷新(ベータ版)

配送・フルフィルメント機能のAPI刷新(ベータ版)

注文を受けた後の「フルフィルメント(発送業務)」に関するシステムが、今回の大規模なアップデートで刷新された。現在はベータ版という位置づけだが、配送情報をプログラムから制御するための強力なAPIが提供されている。

新しい配送プロバイダー用タクソノミーの導入

これまでのWooCommerceでは、配送業者の情報を管理するための標準的な仕組みが不足していた。10.7では、新しく wc_fulfillment_shipping_provider というタクソノミー(分類機能)が導入された。これにより、開発者はカスタムの配送プロバイダーをシステムに登録し、管理画面の「設定 > 配送 > 配送プロバイダー」から一元管理することが可能になる。

この変更により、外部の配送サービスや独自の追跡システムとの連携がよりスムーズになる。これまで独自のメタデータとして管理していた配送情報を、WooCommerceの標準的なデータ構造に乗せることができるようになるため、プラグイン間の互換性も向上するだろう。

PHP APIによるトラッキング情報の操作

開発者向けのPHP APIも強化され、型定義されたメソッドが利用可能になった。例えば、注文の追跡番号を取得する get_tracking_number() や、設定する set_tracking_number()、配送業者を取得する get_shipping_provider() などが追加されている。これにより、コードの可読性が高まり、バグの混入を防ぎやすくなる。

また、フルフィルメントの進捗状況(ライフサイクルイベント)が、自動的に注文ノートとして記録されるようになった。新しい定数 FULFILLMENT を使った注文ノートグループが導入され、いつ発送準備が整い、いつ追跡番号が発行されたのかといった履歴が管理画面から一目で確認できるようになる。

Store APIの強化:フロントエンド開発の効率化

Store APIの強化:フロントエンド開発の効率化

モダンなフロントエンド開発(ヘッドレス構成など)で利用される「Store API」にも、実用的な新機能が多数追加されている。フロントエンドアプリケーションがより少ないリクエストで、必要な情報を取得できるように設計が工夫されている。

商品スペックの取得とリレーションの埋め込み

Store APIで取得できる商品データに、新しく「重量(weight)」と「寸法(dimensions)」のフィールドが追加された。これらはフォーマット済みの値も含めて提供されるため、フロントエンド側で複雑な計算や整形処理を行う必要がない。1回のリクエストで商品の詳細な仕様をすべて取得できるのは、ユーザー体験の向上に寄与するだろう。

さらに、アップセル、クロスセル、関連商品のデータを _links フィールドに埋め込むことが可能になった。リクエスト時に ?_embed パラメーターを付与するだけで、関連商品の詳細データも同時に取得できる。これにより、関連商品を表示するために追加のAPIコールを行う必要がなくなり、ページの読み込み速度が向上する。

カート・チェックアウトブロックの安定性向上

ブロックベースのカートページで発生していた、特定のキャッシュ環境下での403エラーが修正された。これは「nonce(一度だけ使われる使い捨てのトークン)」の有効期限が切れてしまうことが原因だったが、10.7ではページ読み込み時に最新のnonceを自動で再取得し、その完了を待ってから処理を継続する仕組みに改善された。

また、支払い方法の選択画面において、支払いオプションが1つしかない場合でもラジオボタンが常に表示されるようになった。これにより、ユーザーは「現在どの支払い方法が選択されているか」を視覚的に確信できるようになり、UIの一貫性が保たれる。ダークモードを採用しているテーマ向けの配色調整も行われており、フォームの視認性が向上している。

以前のUI
クレジットカード(ボタンなし)
10.7のUI
クレジットカード

支払い方法が1つの場合でも、選択状態を示すラジオボタンが表示されるように改善された。

ブロックベースのメールエディターと分析機能の拡張

ブロックベースのメールエディターと分析機能の拡張

WooCommerceが現在注力している「ブロックベースのメールエディター」にも、将来のフルサイト編集を見据えた改善が加えられている。この機能はまだ実験的な段階だが、メールのカスタマイズ性を大きく広げる可能性を秘めている。

メールレイアウトの自由度向上

最新バージョンでは、ブロックをメールの幅いっぱいに表示する alignfull 設定のサポートに向けた基礎工事が行われた。これにより、将来的にインパクトのあるヒーロー画像や背景色の塗りつぶしなどが、メール内でも実現可能になる。また、WordPressの投稿をメール内に埋め込む際、単なるリンクではなく、アイキャッチ画像や抜粋が含まれた「リッチなカード形式」で表示されるようになった。

テンプレート管理機能も強化され、カスタマイズした内容をいつでも初期状態に戻せる「デフォルトにリセット」アクションが追加された。開発者向けには、リセット時のコンテンツをカスタマイズするための woocommerce_email_block_template_html フィルターなども用意されている。なお、これらの機能を利用するには、現在も機能フラグを有効にする必要がある点に注意してほしい。

分析レポートのエクスポートフィルター

ストアの運営状況を把握するための分析機能(Analytics)では、データのエクスポート処理に新しいフィルターが追加された。収益統計、税金、バリエーションなどのデータをCSV等で書き出す際に、特定の列をカスタマイズしたり、出力内容を調整したりできるようになった。

特にマルチ通貨(多通貨)対応のショップを構築している場合、通貨パラメーターやカスタムフィルターの情報をバックグラウンドのエクスポート処理に正しく引き継げるようになった点は大きい。これにより、特定の通貨のみに絞った詳細なレポート作成などが、外部ツールを使わずともスムーズに行えるようになる。

開発者が注意すべき変更点とセキュリティ強化

開発者が注意すべき変更点とセキュリティ強化

WooCommerce 10.7へのアップデートにあたり、開発者が必ず確認しておくべき重要な変更点がある。特に名前空間の変更は、既存のプラグインやカスタマイズコードに影響を与える可能性がある。

名前空間の変更と後方互換性

フルフィルメント(Fulfillments)機能に関連するクラスの名前空間が変更された。以前の Automattic\WooCommerce\Internal\Fulfillments から、Automattic\WooCommerce\Admin\Features\Fulfillments へと移動している。もし独自の拡張機能でこれらのパスを直接参照している場合は、リリース前にコードを修正する必要がある。

こうした名前空間の変更は、内部構造の整理と将来的な機能拡張のために行われるものだ。開発環境でデバッグモードを有効にし、非推奨の警告が出ていないかチェックすることをお勧めする。

セキュリティ対策の強化

セキュリティ面でも、複数の箇所で「ハードニング(堅牢化)」が行われている。まず、v4 REST APIの注文ノートエンドポイントに、XSS(クロスサイトスクリプティング)対策として wp_kses_post() によるサニタイズ処理が追加された。これはすでにv1からv3までのAPIには導入されていたものだが、最新のv4でも同等の保護が適用される形となった。

また、商品やカテゴリーの並び替えを行うAJAXハンドラーに対して、CSRF(クロスサイトリクエストフォージェリ)検証が追加された。これにより、悪意のある第三者が管理者に代わって商品の表示順を不正に操作するといった攻撃を防ぐことができる。さらに、支払いゲートウェイのパスワードフィールドで % 文字が含まれている場合に値が壊れてしまう問題も修正されており、認証情報の取り扱いに関する信頼性が向上している。

この記事のポイント

  • HPOSの最適化:キャッシュプライミングにより注文クエリが約50%削減され、表示速度が向上した。
  • Fulfillment API刷新:配送プロバイダーを管理する標準的な仕組みが導入され、開発効率が高まった。
  • Store APIの強化:商品スペックの追加や関連データの埋め込み(_embed)により、フロントエンドの開発がよりスムーズになった。
  • セキュリティの堅牢化:REST APIやAJAX処理におけるXSS・CSRF対策が強化され、ストアの安全性が向上した。
  • 名前空間の変更:フルフィルメント関連のパスが変更されたため、開発者は既存コードの確認が必要だ。
海田 洋祐

・ 複数業界における17年間のデジタルビジネス開発経験 ・ ウェブサイト開発のためのHTML、PHP、CSS、Java等の実用的知識 ・ 15ヶ国語対応の多言語SaaSの開発経験 ・ 17年間にも及ぶ、Eコマース長期運営経験 ・ 幅広い業界でのSEO最適化の豊富な経験

メッセージを残す