Loja IntegradaからShopifyへ止めずに移行する:カタログ、301、DNS
Loja IntegradaからShopifyへの移行手順。XLSXのエクスポート、Shopify用CSVへの変換、管理画面での301設定、DNSの切り替えまで、ストアを落とさずに進める方法を解説します。
要点(BLUF)
Loja IntegradaからShopifyへの移行は、「エクスポートして祈る」作業ではありません。Loja Integrada(以下LI)は、Visão de Negócios > Relatórios(ビジネス概要 > レポート)からデータをXLSX形式のスプレッドシートで書き出します。Exportar produtos(商品をエクスポート)レポートは無料プランでも使えます。Googleにとって重要な Lista de URLs de produtos(商品URLリスト)は有料プラン限定です。1シートあたりの上限は 10万行 です(エクスポートのヘルプ)。
LIの標準301は プラットフォームの乗り換えを解決しません。リダイレクトできるのは 同一ドメイン内 の商品だけです。カテゴリ、固定ページ、別ホストは対象外です(LIの301)。Shopify管理画面にURLマップを用意しないままドメインをShopifyに向けると、Googleにも過去の広告にも404がばらまかれます。
一方Shopifyには、/products/{handle} という商品の正規URL(Liquidのproductオブジェクト)、独自の列を持つCSV(CSVガイド)、そして一括インポートに対応した Content > Menus > URL redirects の301があります(リダイレクト)。
停止を減らす手順はこうです。*.myshopify.com でストアを構築してテストし、カタログを取り込み、チェックアウトとERPを検証し、301を登録し、そのあとで初めて DNSを向けます。ShopifyのTLS証明書は 最大48時間 かかることがあります(ドメイン接続、TLS)。これは「ダウンタイムゼロ」ではありません。落ち着くまでLIを動かしたままにしておく、管理されたウィンドウです。
まだ「TrayかShopifyか」「WooかShopifyか」を検討中なら、公開中の記事は Tray vs Shopify と WooCommerceのリスク です。この記事は移行先がすでにShopifyと決まっている前提で書いています。
ストアの概要は oailton.dev/ja/contato から送ってください。
よくある場面です。LIのストアは「動いてはいる」。でもテーマはもうブランドの要件に合わず、スマホのチェックアウトは手順が多すぎ、ERPはすでにBlingかTiny。そこへ誰かが「金曜に移行すれば、月曜にはShopifyで売れますよ」と約束します。
金曜、カタログはバリエーションが重複した状態でアップロードされます。月曜、ドメインが向けられます。火曜、Search Consoleが404で埋まります。水曜、PIX(ブラジルの即時決済)は myshopify.com のテストでは通ったのに、SSLがまだ保留中のため本番ドメインでは失敗します。
以下のチェックリストは、この流れを避けるための順番です。「ワンクリック移行」の宣伝ではありません。
1. 移行元の棚卸し:実際に何を持っているか
Shopifyのストアを作る前に、代理店が「エクスポートできると思っているもの」ではなく、LIが公式に文書化しているものを取り出します。
エクスポートのヘルプによると:
- Visão de Negócios > Relatórios > Exportar produtos(ビジネス概要 > レポート > 商品をエクスポート)。全件、日付フィルタなし、無料プラン。ファイルはメールと通知センターに届きます。
- 有料プランなら Lista de URLs de produtos(商品URLリスト)。スラッグの推測ではなく、公開URLの一覧です。
- 無料プランで Exportar todos os clientes(全顧客をエクスポート)と Relatório de pedidos(注文レポート)。
これで できない こと:
- Shopify形式のCSVは生成されない
- バリエーションを
Option1 Name/Option1 Valueのモデルに対応づけない - 新しいドメインに301を作らない
商品APIを見ると、データの構造がはっきりします。nome、apelido、sku、gtin、descricao_completa、url です。url の公式例は https://loja-exemplo.lojaintegrada.com.br/produto/{apelido}.html です。一方、URLのヘルプでは、管理画面の実際の操作として別の説明をしています。編集するのは スラッシュ以降 の部分で、小文字、ハイフン区切りです。/produto/slug.html のストアもあれば、/slug のストアもあります。パターンを決めつけないでください。 URLリスト、サイトマップ、またはSearch Consoleを使います。
エクスポート前の整理(移行後ではなく、LI側で):
- テスト商品、終わったセット商品、存在しないSKUを無効化する
- 実在するバリエーション1つにSKUを1つ。SKUが重複すると移行先のERPが壊れる
- 移行元で404の画像は、Shopifyでも404になる
- 未完了の注文は請求が済むまでLIに残す。「処理途中の注文を移行」しない
顧客と過去の注文は、ファイルにエクスポートしておきます。ERPがすでに業務の基準データなら、ERPを正とします。新しいShopifyストアは、明日から売るために5年分の注文を抱えて生まれる必要はありません。
2. カタログ:LIのXLSXをShopifyのCSVに変換する
ShopifyはLIのスプレッドシートを読み込めません。公式CSVガイドは厳格で、ヘッダーは正確な名前で、大文字と小文字も区別されます。商品を作成するのに最低限必要な列は Title です。バリエーションがあれば Handle も必要です。あとで更新するときは Handle と Title を使います。
私が実務で使っている対応表(LI → Shopify):
| 移行元(LI / API) | 移行先(Shopify CSV) |
|---|---|
apelido(スラッグ) |
Handle |
nome |
Title |
descricao_completa |
Body (HTML) |
| バリエーション(色、サイズ) | Option1 Name / Option1 Value(Option2、Option3も同様) |
| 販売価格 | Variant Price |
| 通常価格(割引前) | Variant Compare-at Price |
| バリエーションの在庫 | Variant Inventory Qty |
sku |
Variant SKU |
gtin |
Variant Barcode |
| 画像URL | Image Src |
近道を自作するとインポートが壊れるルール:
- 同じ
Handleがバリエーションの行をまとめる。handleが違えば別の商品になる - オプションのない商品は
Option1 Name=Title、Option1 Value=Default Titleを使う(Shopifyの標準であって、気まぐれではない) - あとから
Option1 Valueを変えるとバリエーションIDが 作り直され、そのIDに依存するアプリやERPとの連携が外れることがある(CSVガイド) - ヘッダーの誤り(
Variant Compare-at Priceの代わりにcompare at price)があると、ファイル自体がインポートで拒否される
テストの順番:
- 5商品:単品、オプション2つ、画像あり、compare-atあり、SKU/GTINあり。
- 「overwrite(上書き)」なしでインポート。
- テーマ上で、スマホで、各バリエーションを開く。
- そのあとで全カタログ。
テーマ、コレクション、メニューはカタログが安定した あと に作ります。構成の悪いコレクションの上に2,000 SKUを取り込むのは、スピードではなく手戻りです。
3. URL:重要なのはShopify側の301
Shopifyでは、商品の正規URLは /products/{handle} です(Liquidのproduct.url)。コレクションは /collections/{handle}、ページは /pages/{handle} です。このプレフィックスは変更できません。
LIでは、古いパスこそGoogleがすでにインデックスしているものです。/vestido-floral の場合も、/produto/vestido-floral.html の場合も、年月を経て両方ある場合もあります。LIの301ヘルプは限界をはっきり書いています。LIの301は ドメインをまたぎません。AレコードがShopifyを向いた時点で、移行元の301は 応答しなくなります。古いクリックを受け止めるのはShopifyの管理画面です。
マップの作り方:
- 古いURLの取得元:有料の Lista de URLs(URLリスト)レポート、LIのサイトマップ、またはSearch Consoleのカバレッジ(インデックス済みページ)。
- 新しいURLの取得元:CSVの
Handle。必ず/products/を前に付ける。 - 相対パスごとに1行。現実的な例:
- 元:
/produto/vestido-floral.html - 先:
/products/vestido-floral - 元:
/vestido-floral - 先:
/products/vestido-floral
- 元:
- カテゴリ(
/categoria/...→/collections/...)とページ(/sobre→/pages/sobre)も同じようにする。LIはカテゴリを301 しません。これらの行が必要です。
Shopify管理画面では Content > Menus > URL redirects > Import から行います(ドキュメント)。公式テンプレートの列(Redirect from、Redirect to)を持つCSVです。DNSの 前に、*.myshopify.com 上で curl -I を使って20行をテストします。Shopifyのサブドメインで301が動かなければ、ブランドのドメインでも動きません。
トップページ、ポリシー、旧ブログも、インデックス済みのURLがあれば同じCSVに入れます。行がなければ404です。初日に404が出れば、オーガニック流入は「勝手に順応」してはくれません。
「SEOを100%維持」とは約束しないでください。提供できるのは あなたが洗い出したURLの1対1マップ を301で返すことです。Googleは自分のペースで再処理します。
4. 移行先:ドメインより先に決済、配送、ERP
*.myshopify.com のストアは、切り替えの 前に 実際に売れる状態でなければなりません。PIXが壊れたまま見栄えのいいドメインを載せても、それはDNSではなく商売の停止です。
移行先の最低限のチェックリスト:
- ブラジルの決済ゲートウェイを導入し、サンドボックスだけでなく 実際に支払ったテスト注文(PIXとカード)を通す
- CPF/CNPJ(ブラジルの個人・法人の納税者番号)を標準チェックアウトで取得し、ERPに対応づける
- 実在するCEP(郵便番号)、箱のサイズ、送料無料ルールで送料見積もりを確認する
- BlingまたはTinyがスプレッドシートと同じSKUを読むこと。Shopify注文に関するBlingのヘルプでは、商品を認識するために同一SKUが求められている
- 送信元を認証したShopifyのトランザクションメール(サイトのAレコードを変えても、会社のメールのMXは 消えない)
- ピクセルとコンバージョンを
myshopify.comドメインでテストし、本番ドメインではSSL後にもう一度確認する
外部チェックアウト(「透明性」のためにお客様をShopifyの外へ出す)は、急ぎの移行で私が最もよく目にする近道です。ある項目の問題を別の問題に置き換えるだけです。広告イベント、第三者の稼働率、そして多くの場合、標準チェックアウトとの競合が起きます。ストアの方針がShopifyなら、チェックアウトもShopifyに置きます。
5. DNS:切り替えまでLIは動かしたまま
外部ドメインの公式な設定方法(マニュアル):
- Settings > Domains > Connect existing domain で、ルートドメイン(
wwwなし)を登録する。 - レジストラのDNS(Registro.br、DNS onlyモードのCloudflare、その他利用中の事業者)で:
- A
@→23.227.38.65 - AAAA
@→2620:0127:f00f:5:: - CNAME
www→shops.myshopify.com.
- A
- AとAAAAは各1件。LIの古いAレコードが残っているとトラフィックが分かれ、あるときはShopify、あるときはLIに届きます。
- このホストについて、Cloudflareの プロキシ(オレンジの雲)は有効にしない。トラブルシューティングのページは、Cloudflareのプロキシを失敗の原因に挙げています。
- MX、SPF、DKIMには触らない。サイトとメールは別のレコードです。
TLS証明書はDNSが向いたあとに発行されます。Shopifyは 最大48時間 と記載しています(TLS)。「SSL pending」の間、一部のお客様には証明書の警告が表示されます。これはウィンドウであり、「即時」ではありません。
嘘をつかずにウィンドウを短くする方法:
- 数日前にA/AAAAのTTLを下げる(レジストラが許せば300〜600秒)
- 広告の出稿中ではなく、注文の少ない時間帯に切り替える
- ドメインが安定してHTTPSを返し、4G回線でのテスト注文が通るまで、LIを 契約したまま稼働 させる
- 切り替えに失敗したら、LIのAレコードに戻すのがロールバック。だから古いIPは削除する 前に 控えておく
「ダウンタイム0分」はShopifyのドキュメントが保証するものではありません。この手順が保証するのは、新しいストアがすでにサブドメインで売れていたこと、DNSが最後のステップであること、そしてロールバックの手段があることです。
6. ドメインを向けてからの24時間
Shopify管理画面でドメインが接続済みと表示され、鍵マークが有効になったら:
- スマホ、4G回線で、PIXとカードによる実際の注文。
- ERPでNF(ブラジルの電子請求書)を確認。チェックアウトと同じSKU、同じ納税者番号であること。
- Search Consoleから旧URLを15件抽出。すべて新しいパスへ301し、チェーン(A→B→C)がないこと。
- トップページ、主要コレクション、商品ページ5件をPageSpeedと実機のスマホで確認。オフィスのWi-Fiだけで済ませない。
- Search ConsoleにShopifyのサイトマップを送信。LIはDNSから消えますが、Googleはまだ古いリストを持っています。
LIを当日に解約しないでください。オーガニックと広告で1週間きれいな301が続き、移行元に取り残された注文がゼロになってから解約します。
7. まだ移行すべきでないとき
自社サイトがショーケースで、売上はマーケットプレイスにある。カタログが小さく、今のテーマで要件を満たせている。チーム内にShopifyでLiquid、アプリ、ERPを運用する人がいない。この場合はLIにとどまってください。
ブランドの要件がテーマの限界を超えた。チェックアウトとピクセルを自分で管理したい。業務がすでにBling/Tinyと本格的なSKU管理に依存している。DNSのウィンドウをスローガンではなく手順で乗り切る覚悟がある。この場合はShopifyへ移りましょう。
ブラジルの別プラットフォームとの技術的な上限の比較は Tray vs Shopify に、プラグインのリスクについては WooCommerce の記事にまとめています。
よくある質問
Loja IntegradaはShopifyへ自動でリダイレクトしてくれますか?
いいえ。LIの301は 同じ ドメイン内の商品が対象です(301のヘルプ)。DNSを切り替えたあとに応答するのはShopifyです。マップは Content > Menus > URL redirects に登録します。
ダウンタイムをゼロにできますか?
できません。Shopifyを myshopify.com で販売できる状態にしておき、TTLを下げてDNSを切り替えることはできます。それでもTLSには最大48時間かかることがあります(ドメインのマニュアル)。
過去の注文はすべて移行する必要がありますか?
販売を始めるためには不要です。未完了の注文はLIで締めます。履歴はERPかエクスポートファイルに残ります。処理途中の注文を移行するのは、在庫を二重計上する一番の近道です。
LIのスプレッドシートはそのままShopifyで使えますか?
使えません。LIは独自の形式でXLSXを書き出します(レポート)。Shopifyは独自のCSVを要求します(ガイド)。
まとめ
ストアを止めない移行は地味な作業です。LIが実際にエクスポートできるものを書き出し、ShopifyのCSVに変換し、本当の旧URLを洗い出し、新しい管理画面で301を設定し、決済とERPをサブドメインでテストし、DNSは最後。HTTPSと301がスマホで問題なく動くまでLIは生かしておきます。
壊れるのは、この順番を逆にしたときです。カタログが半分しか入っていないのにドメインを向ける、あるいはAレコードがすでに移ったあとで移行元の301に頼る、といったケースです。
あなたのストアのマップ(URL 20件のサンプル、バリエーション付き商品5件のサンプル、ご利用のレジストラでのDNS手順)が必要なら、現在のURL、LIのプラン、ERPを添えて oailton.dev/ja/contato からご連絡ください。