はじめに
- カラーミーショップからShopifyへの乗り換えを検討している
- 検索から商品ページに来ているお客様を、移行で取りこぼしたくない
- ポイントや定期購入、会員価格がShopifyでどうなるのか知りたい
このような方のための記事です。
他カートからの移行全般の費用と期間はShopifyへの移行費用と期間にまとめました。この記事では、そこで書ききれなかったカラーミーショップ特有の話を3つに絞ります。旧URLの引き継ぎ、CSVの出し方、機能の置き換えです。
旧URLの話は、Shopifyの開発ストアで実際に試した結果をもとに書いています。カラーミーからの移行を解説した記事の多くは「旧URLから新URLへのリダイレクトをCSVで一括登録すればよい」と書いていますが、カラーミーのURLの形では、それだけでは引き継げません。
カラーミーの旧URLは、Shopifyの標準のリダイレクトでは引き継げない
カラーミーショップのURLは、商品もカテゴリーもフリーページも、すべてトップページ / の後ろにパラメータが付いた形です。実際に公開されているカラーミーの店で確かめると、次のようになっていました。
| ページ | カラーミーのURL | Shopifyでの移行先 |
|---|---|---|
| 商品 | /?pid=145792635 |
/products/商品のハンドル |
| カテゴリー | /?mode=cate&cbid=2533512&csid=0 |
/collections/コレクションのハンドル |
| グループ | /?mode=grp&gid=2089478 |
/collections/コレクションのハンドル |
| フリーページ | /?mode=f22 |
/pages/ページのハンドル |
| 特定商取引法に基づく表記 | /?mode=sk |
/policies/legal-notice |
一方、ShopifyのURLリダイレクトは、リンク切れのURL、つまり404になるURLからしか転送できません。クエリ文字列を含むURLは期待どおりに動かないことがある、とも公式ヘルプに書かれています。
カラーミーの旧URLは、Shopifyに移るとすべてトップページへのアクセスになります。トップページは存在するので404にならず、リダイレクトが発火しません。
開発ストアで実際に試しました。リダイレクト元に /?pid=123456789、リダイレクト先に商品ページを指定して保存すると、リダイレクト元は先頭のスラッシュが消えた ?pid=123456789 として保存されます。この状態で /?pid=123456789 を開くと、トップページがそのまま表示され、転送は起きませんでした。比較のために、存在しないパスにパラメータを付けた /colorme-redirect-test?pid=123456789 からのリダイレクトを作ると、こちらは商品ページへ転送されます。リダイレクトの機能自体は動いていて、トップページにパラメータが付いた形だけが転送されない、ということです。
商品数の多い店ほど、検索結果やSNS、ブログからのリンクで旧商品ページに来るお客様が多くいます。何もしないまま移行すると、その全員がトップページに着地し、探していた商品にたどり着けません。
旧URLを引き継ぐ2つの方法
1. トップページのJavaScriptで転送する
旧URLはすべてトップページに着地するので、トップページでパラメータを読み、対応する新しいURLへ移す方法です。ShopifyのテーマのLiquidにはURLのクエリ文字列を読む手段がないため、ブラウザで動くJavaScriptで判定します。
外部記事Liquid objects: requestInformation about the current URL and the associated page.shopify.dev
テーマの layout/theme.liquid の <head> の先頭に、次のコードを入れてください。トップページを開いたときだけ動き、対応表にある旧URLなら新しいURLへ移ります。
{%- if request.page_type == 'index' -%}
<script>
(function () {
var p = new URLSearchParams(location.search);
var key = null;
if (p.get('pid')) key = 'pid:' + p.get('pid');
else if (p.get('mode') === 'cate') key = 'cate:' + p.get('cbid') + ':' + (p.get('csid') || '0');
else if (p.get('mode') === 'grp') key = 'grp:' + p.get('gid');
else if (p.get('mode')) key = 'mode:' + p.get('mode');
if (!key) return;
var map = {
'pid:145792635': '/products/linen-shirt',
'cate:2533512:0': '/collections/tops',
'grp:2089478': '/collections/new-arrivals',
'mode:f22': '/pages/about',
'mode:sk': '/policies/legal-notice'
};
if (map[key]) location.replace(map[key]);
})();
</script>
{%- endif -%}
開発ストアで、/?pid=123456789 を商品ページへ移す対応表を入れて試したところ、商品ページへ転送されました。
対応表はカラーミーの商品CSVの「商品ID」と、Shopifyに取り込んだ商品のハンドルを突き合わせて作ります。商品が数百件までならこのままテーマに書いて問題ありません。数千件になると、トップページを開くすべての人がその対応表を読み込むことになるので、対応表をJSONファイルに分け、pid などのパラメータがあるときだけ読み込む形にしてください。
GoogleはJavaScriptでの転送も認識しますが、サーバー側の301リダイレクトを使えないときの手段という位置づけです。検索順位の評価をできるだけ確実に引き継ぎたい場合は、次の方法を検討してください。
2. Cloudflareを前に置いて、サーバー側で301を返す
独自ドメインのDNSをCloudflareで管理している場合、Shopifyの前段にCloudflareを置く構成が使えます。この構成ならCloudflareのリダイレクトルールで、パラメータ付きのURLを判定してサーバー側から301を返せます。
外部記事ShopifyLearn how to configure your zone with Shopify.developers.cloudflare.com
ブラウザがページを読み込む前に転送されるので、検索エンジンにもお客様にも本来のリダイレクトとして伝わります。ただしDNSの管理をCloudflareに移す作業と、ルールを保守する手間が増えます。検索からの流入が売上の大きな割合を占める店や、商品ページの数が多い店はこちら、そうでなければ1のJavaScriptで十分です。
どちらを選ぶにしても、最初に旧サイトのアクセス解析で、実際に流入のある旧URLを洗い出してください。流入のないURLまで対応表に入れる必要はありません。
カラーミーから出せるCSVと、出すときの注意
カラーミーのデータは、管理画面の「データダウンロード」からCSVで出します。初めて使うときは、先にダウンロード用のパスワードの設定が必要です。
外部記事help.shop-pro.jp/hc/ja/articles/115004705767help.shop-pro.jp
移行でよく使うのは、商品データ・顧客データ・受注一括データの3つです。出すときに引っかかりやすい点が3つあります。
受注一括データは、期間指定だと180日ずつしか出せません。 それより前の受注は「年月指定」で月ごとに出して、あとで1つにまとめます。また「配送不要」の商品を購入した受注は、受注一括データに入りません。デジタル商品やチケットを売っている店は、その受注を別に洗い出す必要があります。
外部記事help.shop-pro.jp/hc/ja/articles/360062479334help.shop-pro.jp
商品の画像は、CSVにはURLしか入っていません。 メイン画像とその他画像1〜9のURLの列があり、画像ファイルそのものは含まれません。ShopifyはCSVの画像URLから画像を取り込めるので、カラーミーの契約が残っているうちに取り込みを済ませてください。解約した後では、そのURLから画像を取れなくなります。
顧客データにパスワードは含まれません。 これはどのカートでも同じです。ただし今のShopifyのお客様アカウントは、メールアドレスに届く認証コードでログインする方式なので、お客様は旧サイトと同じメールアドレスでそのままログインできます。2022年に公開されたShopify公式のカラーミー移行ガイドには「パスワードを作り直してもらう必要がある」とありますが、今の方式ではその案内は要りません。
外部記事お客様アカウント新しいバージョンのお客様アカウントを使用すると、パスワードレスログインや B2B 卸売との統合などの機能を有効にできます。help.shopify.com
顧客データには「会員ランク」「確定ポイント」「メルマガ受信可否」の列もあります。会員ランクはShopifyの顧客タグに、ポイントはポイントアプリへの取り込みに、メルマガの受信可否はShopifyの顧客CSVのメール受信の同意の列に、それぞれ移します。
カラーミーの機能は、Shopifyでは何に置き換えるか
カラーミーで標準機能だったものが、Shopifyではアプリや設定の組み合わせになるものがあります。
| カラーミーの機能 | Shopifyでの置き換え | 移行で気をつけること |
|---|---|---|
| ポイント | ポイントアプリ | 標準機能がないのでアプリを選ぶ。残高はアプリにCSVで取り込み、有効期限の扱いを決める |
| 会員価格・会員ランク | 顧客タグと、顧客セグメントを対象にした自動割引 | ランクの判定と更新の方法を決める |
| 定期購入 | Shopify Subscriptions などの定期購入アプリ | 契約は移せないので、お客様に申し込み直してもらう |
| カラーミーペイメント | Shopifyペイメント | コンビニ払いとPayPayは別の決済アプリが必要 |
| メルマガ | Shopify Email | 月1万通まで無料。受信の同意を引き継ぐ |
ポイントは、カラーミーでは標準機能で有効期限もありませんが、Shopifyには標準のポイント機能がありません。アプリを入れるか、ポイント制度をやめてクーポンでの還元に切り替えるかを、移行前に決めてください。アプリによって月額費用と、取り込める項目が違います。
定期購入は、Shopify Subscriptionsで契約データを取り込めるのが、App Storeの他の定期購入アプリか別のShopifyストアからの移行に限られています。カラーミーの定期購入の契約は、そのままは移せません。移行日を決めたら、定期購入のお客様に申し込み直しの案内を早めに出してください。
会員ランクは、アプリを使わずに組むこともできます。BASEから移行した焼き菓子の店では、年間の購入額を顧客の項目に持たせ、Shopify Flowで注文ごとに加算し、金額に応じて顧客タグを付ける形で会員ランクを作りました。ランクごとの割引は、顧客セグメントを対象にした自動割引で出せます。
決済は、日本のShopifyペイメントで使えるのが、クレジットカード4ブランドとApple Pay、Google Pay、Shop Payです。カラーミーでコンビニ払いやPayPayを受け付けていた店は、別の決済アプリを入れる必要があります。
カラーミーからの移行の進め方
カラーミー特有の作業を、移行の流れの中に置くと次の順番になります。
- 旧サイトのアクセス解析で、流入のある旧URLを洗い出す
- データダウンロードから商品・顧客・受注のCSVを出す。受注は年月指定で月ごとに出す
- Shopifyに商品と顧客を取り込む。画像はカラーミーの契約中に、CSVの画像URLから取り込む
- ポイント・会員ランク・定期購入・決済の置き換えを決めて設定する
- 旧URLの対応表を作り、JavaScriptかCloudflareで転送を入れてテストする
- 定期購入のお客様への案内を出し、ドメインを切り替える
受注履歴をどこまで移すか、旧サイトを止めるかどうか、ドメインの切り替えの段取りは、カートによらず共通です。Shopifyへの移行費用と期間で詳しく書いています。
さいごに
カラーミーショップからShopifyへの移行は、商品・顧客・受注のデータはCSVで移せますが、旧URLは標準のリダイレクトでは引き継げません。トップページのJavaScriptで転送するか、Cloudflareを前に置いて301を返すかを、見積もりの段階で決めておくと、公開後に検索からの流入を落とさずに済みます。ポイントと定期購入は、Shopifyでは置き換えになるので、お客様への案内まで含めて計画してください。
自分のところでは、移行を含むストア構築を50万円から作業単位の見積もりで出しています。料金はサービスページからご覧ください。
カラーミーの商品数と会員数、使っている機能をお問い合わせから送っていただければ、移せるもの・旧URLの引き継ぎ方・おおよその費用を回答します。
