WooCommerce の注文と商品をスキップする

最新の WooCommerce バージョンをご利用の場合、WooCommerce カスタムテーブル (HPOS) を有効化することで、本記事のほとんどの手順をスキップし、よりシンプルな指示に従うことができます。

代わりに以下の 2 つの記事をお読みください:
– 本番サイトから Staging サイトへ WooCommerce 商品と顧客を転送する方法
– HPOS を使用して WooCommerce の注文が本番サイトにコピーされるのを除外する方法

PUSH 時に WooCommerce の注文と商品が上書きされるのを防ぐ方法

WP STAGING を使って Staging サイトから本番サイトにデータを PUSH するときは、本番サイトの WooCommerce 注文・顧客・商品が一切影響を受けず、そのまま保たれるようにする必要があります。

では、PUSH 処理中にこれらのデータが上書きされるのを防ぐ最善の方法は何でしょうか?

短い答え: このデータが Staging サイトにコピーされることを排除することはできず、本番サイトと Staging サイトの WooCommerce 注文と商品を自動的にマージすることもできません。しかし幸いなことに、本番サイトの注文と商品を失わない方法はありますが、手動作業が必要です。

重要: 一部の Plugin は自動的にマージできると主張していますが、信じないでください。当社はそれらすべてをテストしましたが、そのようなマージを自動的かつ確実に実行することは技術的に不可能です。

 

さらに悪いことに、一部の Plugin はそのようなマージを実行できると主張しながら、警告なしに注文や商品を上書きしてしまうことが分かります。これによりデータの整合性が破壊される可能性があり、マージ後に各注文・商品をチェックしなければ気付くことすらできません。

まず、WooCommerce と WordPress が注文・商品・顧客住所などのユーザーデータ・投稿・ページなどのその他のデータをどこに保存するかを理解する必要があります:

  • 注文と商品は wp_postswp_postmeta テーブルに「orders」という名前のカスタム投稿タイプフィールドで区別されて保存されます。
  • WordPress 自身も、ページ・投稿・メニュー項目などほとんどのデータを同じ wp_postswp_postmeta テーブルに保存します。
  • ユーザーは wp_userswp_usermeta に保存されます。

その他多くの WooCommerce カスタムテーブルには、税率・注文アイテム・一般的な WooCommerce 設定などのデータが含まれます。

各 Staging サイトのテーブル名は wpstg(x)_ という接頭辞で始まります。

WooCommerce のテーブル名は同じテーブル接頭辞で始まりますが、さらに wpstg(x)_woocommerce_ のように _woocommerce でも始まります。

テーブル接頭辞の x は Staging サイトの番号です。複数の Staging サイトがある場合、その番号は wpstg1_wpstg2_ のようにカウントアップされます。

取引データに影響を与えずに、Staging サイトから本番サイトに特定のデータを移行したい場合、3 つの選択肢があります:

オプション 1) 本番サイトから注文・ユーザーデータ・その他の取引データをエクスポートし、Staging サイトを本番に移行する前に Staging サイトへインポートします。
これにより、Staging サイト全体をコピーできます。
内部データベース構造についての知識がない場合は、これが推奨される方法です。下記でその方法を説明します。

オプション 2) _options テーブル以外のすべてのデータベーステーブルを除外し、Staging サイトに PUSH したい Plugin と Theme のフォルダのみを選択します。この方法を取ることで、Staging サイト作成後に本番サイトで生成されたデータが上書きされたり失われたりすることがなくなります。ほとんどの Plugin は Plugin 設定も _options テーブルに保存します。そのため、Plugin 設定も本番サイトに移行されます。
重要: _posts_postmeta テーブルに含まれるその他の欠落データは、PUSH 後に本番サイトで手動で作成し直す必要があります。

オプション 3) 変更されたすべてのデータベーステーブルを PUSH 処理から除外します。この方法を取ると、データを含む Staging サイト全体を移行することはできません!
除外するテーブル (例: _posts、_postmeta) によっては、本番サイトで画像やレイアウト要素が欠落する可能性があります。これは主に WPBakery (旧 Visual Composer) や Elementor のようなビジュアルエディタを使っている場合に発生します。これらのエディタはデザインを _posts と _postmeta テーブルに保存するためです。

注: オプション 1 が推奨される方法です。

最善の選択肢は、本番サイトで別途のエクスポート / インポート Plugin を使用して注文と商品データをエクスポートし、PUSH を行う前にデータを Staging サイトへインポートし直すことです。

本番サイトから注文をエクスポート・インポートする前に、メインの Staging サイトでインポートとエクスポートを行う前に、別の Staging サイトを作成して全体の処理をテストすることを強くおすすめします!


クイックガイド:

  1. サイトをメンテナンスモードにします。
  2. 本番サイトと Staging サイトに「WooCommerce Sequential Order Numbers」Plugin をインストールします。
  3. 本番サイトと Staging サイトに「Order Export & Order Import for WooCommerce」Plugin をインストールします。
  4. 本番サイトから WooCommerce の注文をエクスポートします。
  5. Staging サイト上のすべての注文を削除します。
  6. 注文を Staging サイトにインポートします。
  7. Staging サイトを本番サイトに PUSH します。

ステップバイステップガイド

先に進む前に、2 つのサードパーティ Plugin をインストールする必要があります:

「WooCommerce Sequential Order Numbers」Plugin をインストールする必要があるのは、インポート時に注文番号が変更されないようにするためです。

WooCommerce の注文 ID は WordPress の投稿 ID (WordPress 上で一意の番号) を基にしているため、注文のエクスポート・インポートでインポートされた注文の注文 ID が変わる可能性があります。Staging サイトの投稿 ID がすでに投稿などの他の項目で使用されている場合、インポートされた注文には新しい ID が割り当てられます。これにより、インポートされた注文に新しい注文 ID が付与される結果になり得ます。

そのため、注文 ID をそのまま保持するには、「WooCommerce Sequential Order Numbers」Plugin を使う必要があります。

この Plugin は、注文 ID を別のフィールドに保存するための新しいデータベースエントリを追加します。これにより、注文 ID を投稿 ID から分離して独立した状態に保てます。

  • 本番サイトにログインします。
  • WebToffee Import Export > Export に移動します。
  • 次のスクリーンショットのように「Order」を選択します:

次のステップで「Quick」を選び、「Export」をクリックします。これによりコンピューターに保存できる CSV ファイルが生成されます。

  • Staging サイト > WooCommerce > Orders に移動します。
  • そこですべての注文を選択し、ゴミ箱に移動します。(これは重要です。次のステップで、本番サイトからエクスポートしたファイルからすべてをもう一度インポートするためです)。
  1. Staging サイトに移動します。
  2. WebToffee Import Export > Import を開きます。

  3. 次に「Quick」を選び、上記でエクスポートした .csv ファイルをアップロードし、このスクリーンショットのように「Import」をクリックします:

このステップ後、すべての注文が Staging サイトにインポートされ、こちらのガイドに従って本番サイトに PUSH する準備が整います。

重要: 注文を Staging サイトにインポートする際、注文 ID と投稿 / ページ / 添付ファイル ID の競合が発生することがあります。これは、Staging サイトに新しい投稿 / ページやその他のコンテンツを追加したために起こります。

そうなった場合、インポート処理中にこのスクリーンショットのような表示が出ます:

その場合、Excel または LibreOffice の表計算ソフト Calc を使ってエクスポートした .csv ファイルを編集する必要があります。なお、LibreOffice Calc の方がこれらのファイルをうまく扱えますが、ファイルを開いて保存する際は必ず UTF-8 エンコーディングを選択してください。ファイルを開いたら、競合している注文 ID を WordPress サイトの投稿 ID でまだ使用されていないより大きな番号に変更するか、値を削除すれば、インポート時に新しい値が付与されます:

その後、ファイルを再度インポートすると、すべての注文が正常にインポートされるはずです。

ヒント: WooCommerce の商品やユーザーについても同じことを行う必要があるかもしれません。これを行うには、以下の Plugin をおすすめします:

注文が上書きされるのを除外するもう 1 つの選択肢は、WooCommerce の注文と商品が含まれるすべてのテーブルを PUSH からスキップすることです。Staging サイトを本番サイトに PUSH する前に、少なくとも以下のテーブルを除外する必要があります:

  • wpstg1_posts
  • wpstg1_postmeta
  • wpstg1_users
  • wpstg1_usermeta
    以下で始まるすべてのテーブル:
  • wpstg1_woocommerce_

残念ながら、このテーブル選択では WordPress サイトの _posts と _postmeta テーブルに保存される投稿・記事・その他のデータが除外されてしまいます。たとえば、ページ・投稿・メニュー項目・その他の投稿関連データが除外され、本番サイトにコピーされません。

そのため、本番サイトに移行する必要のあるデータを Staging サイトで変更していない場合にのみ、この手順に従ってください。

参考: WooCommerce データベーステーブルリファレンス

キーワード: WooCommerce、WooCommerce 注文を除外、WooCommerce 商品を除外

関連記事

Updated on 5月 23, 2026

Rene Hermenau

著者: Rene Hermenau

About the author: René Hermenau is the founder of WP STAGING. He works on WordPress backups, staging, migrations, database handling, and safe deployment workflows.