Magento から Shopify への移行
DataEase は、Magento 2 ストア(Magento Open Source、Adobe Commerce、Mage-OS)を Magento の REST API から直接 Shopify へ移行します。拡張機能も CSV エクスポートもスプレッドシートも不要です。Magento でインテグレーションを作成してそのキーを貼り付け、移行する内容を選べば、あとは DataEase がすべて行います。旧URLからのリダイレクトも作成するため、ドメインを切り替えた後もリンクと検索順位はそのまま維持されます。
移行されるもの
Section titled “移行されるもの”| Magento | Shopify | 詳細 |
|---|---|---|
| シンプル商品、バーチャル商品、ダウンロード商品 | 商品 | 名前、説明、ステータス、表示設定、商品タイプとしての最初のカテゴリー、画像(メイン画像が先頭)、SKU、価格と特別価格(比較価格として)、原価、重量、税クラス、在庫数(メインロケーション)、取り寄せ注文、ブランド(manufacturer)、製造国、SEOタイトルと説明。 |
| コンフィギュラブル商品 | バリエーションのある商品 | コンフィギュラブル属性(Color、Size など)はオプションになり(最大3つ)、有効な子商品はそれぞれ独自の SKU、価格、在庫、画像を持つバリエーションになります。 |
| カテゴリー | コレクション | カテゴリーの商品、説明、画像、SEOを含む手動コレクション。入れ子のカテゴリーはそれぞれ別のコレクションになります。 |
| 顧客 | 顧客 | 氏名、メール、電話番号、すべての住所(デフォルトの配送先住所が先頭)、ニュースレターの購読。顧客グループはタグとして追加されます。例: magento-group-wholesale。 |
| 注文 | 注文 | 履歴としてのコピー: ラインアイテム(SKUで移行済みバリエーションに紐付け)、バリエーションのオプション、配送、割引、税、支払い、返金。顧客にメールは送信されません。 |
| カートプライスルール | ディスカウント | クーポン付きのルールはディスカウントコードに、クーポンなしのルールは自動ディスカウントになります: パーセント割引、商品ごとまたはカートの固定額割引、送料無料、最低小計または最低数量、配送先の国、商品とカテゴリーの条件、期間と使用回数制限。 |
| CMSページ | ページ | タイトル、本文、ステータス、SEO。 |
| 旧URL | URLリダイレクト | 商品とカテゴリー(ストア設定の .html サフィックス付き)、CMSページ、カート、顧客アカウント、検索は Shopify のアドレスへリダイレクトされます。 |
- 説明文やページ内の画像は Shopify → Content → Files にコピーされ、リンクも更新されるため、旧ストアを停止しても何も壊れません。
- Magento のテンプレートタグは変換されます:
{{media url="…"}}は画像のアドレスに、{{store url="…"}}はリンクになります。ウィジェットと CMS ブロックは削除されます。 - 各レコードの Magento ID は
magento.idメタフィールドに保存されます。 - 無効な商品は下書きとして移行されます。個別に表示されない商品や、ストアのウェブサイトに割り当てられていない商品は、移行されますがオンラインストアには公開されません。
移行されないもの: テーマとデザイン、拡張機能とそのデータ(ブログ、レビュー、ポイント)、バンドル商品、グループ商品、ギフトカード商品、カスタマイズ可能なオプション、階層価格とカタログ価格、他言語のストアビュー、決済・配送・税の設定、顧客のパスワード(顧客は Shopify で新しいパスワードを設定します)。
- Magento 2.3 以降(Magento Open Source、Adobe Commerce、Mage-OS)。
- インテグレーションを作成できる Magento 管理ユーザー(System → Extensions → Integrations)。
- ストアはインターネットからアクセス可能である必要があります。DataEase は
localhostやイントラネットのアドレスには接続できません。画像はストアからダウンロードされるため、移行が完了するまでストアをオンラインにしておいてください。 - Shopify ストアは Magento と同じ通貨を使用してください。価格は換算されずにそのままコピーされます。
ステップ1. Magento でインテグレーションを作成する
Section titled “ステップ1. Magento でインテグレーションを作成する”- Magento 管理画面で System → Extensions → Integrations を開き、Add New Integration をクリックします。
- 名前(例:
DataEase)を入力し、Your Password に管理者パスワードを入力します。 - API タブを開き、Resource Access を All に設定します。
- Save をクリックし、新しいインテグレーションの横にある Activate をクリックしてから Allow をクリックします。
- Magento に4つのキーが表示されます: Consumer Key、Consumer Secret、Access Token、Access Token Secret。4つすべてをコピーします。
これらのキーは API へのアクセスのみを許可し、いつでも取り消せます。DataEase はデータを読み取るだけで、Magento 内の何も変更しません。
アクセス範囲をもっと絞りたい場合は? All の代わりにリソースを個別に選択できます: ストア、カタログ(商品、カテゴリー、在庫)、顧客と顧客グループ、販売注文、カートプライスルール、CMSページ。不足しているものがあれば、DataEase がどの Magento リソースを追加すべきかを表示します。
ステップ2. DataEase でストアを接続する
Section titled “ステップ2. DataEase でストアを接続する”- Shopify で DataEase → Store transfers を開きます。
- From Magento タブを選択します。
- ストアのアドレス(例:
https://myshop.com)と、インテグレーションの4つのキーを入力します。 - Check connection をクリックします。
DataEase は、ストア名、読み取り元のストアビュー、ストアにある各タイプのレコード数を表示します。
ステップ3. 移行する内容を選んで開始する
Section titled “ステップ3. 移行する内容を選んで開始する”- 移行したいデータにチェックを入れます。ストアで見つかったものはデフォルトですべて選択されています。
- Start migration をクリックします。
移行はバックグラウンドで実行されるため、ページを閉じても問題ありません。Transfers 一覧には現在移行中のデータが表示され、いつでも Cancel できます。
ステップ4. 結果を確認する
Section titled “ステップ4. 結果を確認する”移行が完了すると、一覧にタイプごとの移行レコード数が、警告とエラー、およびその理由とともに表示されます。例: Orders: 1250 ⚠3。よくある警告は、Shopify がサポートしていない条件を持つカートプライスルールや、以前にすでに移行済みのレコードです。
- Shopify 管理画面で商品、コレクション、価格を確認します。
- 決済、配送、税を設定します。これらは移行されません。
- テーマを選んでカスタマイズし、移行したページとコレクションをナビゲーションメニューに追加します。
- ドメインを Shopify に接続します。
/joust-duffle-bag.htmlのような旧リンクは/products/joust-duffle-bagにリダイレクトされるようになります。 - Magento でインテグレーションを削除します(System → Extensions → Integrations)。DataEase は移行が完了した時点で、自身のデータベースからキーを削除します。
移行の再実行
Section titled “移行の再実行”移行はいつでも再実行できます。例えば、ドメインを切り替える直前に新しい注文を取り込むために実行できます。既存のレコードは重複せずに更新されます:
- 商品、コレクション、顧客、ページは handle またはメールで照合され、更新されます;
- 以前に移行済みの注文、既存のディスカウントコード、同じ名前の自動ディスカウント、既存のリダイレクトはスキップされます(件数とともに警告が表示されます);
- すでに Shopify Files にコピーされた画像は再利用されます。
データのマッピング
Section titled “データのマッピング”- Handle: 商品の URL キー。商品のアドレスはそのまま識別しやすい形で維持されます。
- ステータス: Enabled → Active、Disabled → Draft。
- 価格: 有効な特別価格が Shopify の価格になり、通常価格が比較価格になります。特別価格の期間は移行時点で判定されます。
- 在庫: 在庫数はメインロケーションに入ります。取り寄せ注文が許可されている商品は、在庫切れでも販売を続けます。
- オプション: コンフィギュラブル商品の属性は同じ順序でオプションになり、値は属性オプションの順序に従います。Shopify は1商品あたり最大3つのオプションと2048のバリエーションをサポートしています。それより多くのオプションを持つ商品は警告付きでスキップされます。無効な子商品は移行されません。
- 税: 税クラスが None の商品は非課税になります。
- 短い説明は
magento.short_descriptionメタフィールドに保存されます。
| Magento の状態 | Shopify の支払いステータス | フルフィルメント |
|---|---|---|
| Pending (new)、On hold | 保留中(請求書発行済みの場合は支払い済み) | 未発送 |
| Processing | 支払い済み(または一部支払い済み) | 未発送、またはすべて出荷済みの場合は発送済み |
| Complete | 支払い済み | 発送済み |
| Closed | 返金済み(または一部返金済み) | - |
| Canceled | 無効 | - |
支払いステータスは、Magento に支払い済み・返金済みとして記録された金額から計算されます。Pending payment または Payment review の注文は移行されません。移行されたすべての注文には magento タグと magento-<status> タグ(例: magento-complete)が付き、Magento の注文番号(#000000145)が維持されます。
カートプライスルール
Section titled “カートプライスルール”| Magento | Shopify |
|---|---|
| 特定のクーポン付きのルール | ディスカウントコード |
| クーポンなしのルール | 自動ディスカウント |
| Percent of product price discount | パーセント割引 |
| Fixed amount discount | 対象商品ごとに固定額を割引 |
| Fixed amount discount for whole cart | 注文から固定額を割引 |
| Free shipping(割引額 0) | 送料無料ディスカウント |
| 条件 Subtotal equals or greater than | 最低購入金額 |
| 条件 Total items quantity | 最低購入数量 |
| 条件 Shipping country(送料無料) | 選択した国への配送 |
| アクション条件 SKU または Category | 特定の商品またはコレクション |
| Uses per coupon / Uses per customer = 1 | 使用回数制限 / 顧客1人につき1回まで |
| Discard subsequent rules | 他のディスカウントと併用不可 |
DataEase が Magento より広い範囲のディスカウントを作成することはありません。一部の顧客グループに限定されたルール、Shopify で表現できない条件(支払い方法、カート属性、組み合わせ条件)を持つルール、Buy X get Y ルールは警告付きでスキップされます。これらは手動で作成し直してください。無効なルールと自動生成されたクーポンコードは移行されません。
トラブルシューティング
Section titled “トラブルシューティング”| メッセージ | 対処方法 |
|---|---|
| Magento rejected the integration keys | 4つのキーをすべて確認し、インテグレーションが Active になっていることを確認してください。再認証した場合は、新しいアクセストークンとシークレットをコピーしてください。 |
| The consumer isn’t authorized to access … | インテグレーションを編集し、Resource Access を All に設定して(またはメッセージに表示されたリソースを追加して)保存してください。 |
| Magento REST API endpoint … was not found | ストアのアドレスを確認してください。管理画面の URL ではなく、ストアフロントのアドレスを使用してください。 |
| returned a non-JSON response | ファイアウォール、メンテナンスモード、またはキャッシュが REST API をブロックしています。移行中は /rest/ へのリクエストを許可してください。 |
| must be reachable from the internet | localhost や内部IPではなく、ストアの公開アドレスを使用してください。 |
| Image … was not copied | 画像のURLにアクセスできませんでした。ページには旧リンクが残るため、Content → Files で画像を手動でアップロードしてください。 |
よくある質問
Section titled “よくある質問”顧客にメールは届きますか? いいえ。顧客と注文は、通知や招待なしで作成されます。
Magento ストアは変更されますか? いいえ。DataEase はストアから読み取るだけです。
インテグレーションのキーは保存されますか? 移行の実行中のみ、暗号化して保存されます。移行が完了、失敗、またはキャンセルされると削除されます。
複数のウェブサイトやストアビューがあります。どれが移行されますか? デフォルトのウェブサイトのデフォルトのストアビューです。その名前、説明、価格、URLが移行されます。
WordPress から、または2つの Shopify ストア間で移行したい場合は? WordPress / WooCommerce からの移行とストア転送をご覧ください。