Shopifyにポイント制度や会員別価格、独自の予約方法を追加したい。しかし、アプリストアを探しても条件に合うものが見つからない。
このような場合は、自社ストア専用の機能を開発する方法があります。ただし、欲しい機能をそのまま伝えるだけでは、開発範囲や見積もりが定まりません。
まずは、既存アプリで対応できない理由と、実際の業務の流れを整理します。
独自開発の前に3つの方法を比べる
Shopifyへ機能を追加する方法は、独自アプリの開発だけではありません。
大きく分けると、次の3つがあります。
| 方法 | 向いている内容 |
|---|---|
| 既存アプリを導入する | 一般的なレビュー、ポイント、予約、定期購入 |
| テーマを変更する | 商品ページの表示、入力欄、ボタン、レイアウト |
| 独自機能を開発する | 自社独自の計算、会員制度、業務システムとの連携 |
見た目を変えたいだけなら、テーマの修正で済むことがあります。
一方、注文情報を外部システムへ自動送信する、顧客ごとに異なる処理を行うなど、データを使った動きが必要なら、アプリやAPIを使う開発が候補になります。
ShopifyのAPIは、ストアのデータを読み書きし、外部のシステムと連携したり、新しい機能を追加したりするために使われます。
既存アプリで対応できない理由を整理する
アプリが見つからないときは、「必要な機能がない」とまとめず、何が合わないのかを書き出します。
たとえば、ポイント機能でも条件はさまざまです。
- 商品によって付与率を変えたい
- 会員ランクごとに付与率を変えたい
- 実店舗とオンラインでポイントを共有したい
- 有効期限を顧客ごとに変えたい
- キャンペーン期間だけ計算方法を変えたい
- 既存会員の残高を引き継ぎたい
- 外部の会員管理システムと同期したい
市販アプリで一部だけ実現できる場合は、足りない機能を追加開発するのか、運用方法を変えるのかを比べます。
すべてを独自開発すると費用と管理の手間が増えます。既存アプリで大部分をまかない、どうしても足りない部分だけを作る方法もあります。
欲しい画面ではなく業務の流れを伝える
開発を依頼するときは、「このようなボタンが欲しい」だけでは情報が足りません。
そのボタンを押したあと、誰が何をするのかまで説明します。
例として、会員限定商品の販売なら、次のような流れです。
- 顧客が会員登録する
- 管理者が会員資格を確認する
- 対象者へ会員ランクを設定する
- 会員だけに特定の商品を表示する
- 会員価格で注文を受ける
- 資格が切れたら通常表示へ戻す
この流れが分かれば、必要なのが表示の変更だけなのか、顧客情報の保存や自動判定まで含むのかを判断できます。
画面の見た目より先に、処理の始まりと終わりを整理してください。
誰が使う機能なのかを分ける
同じ機能でも、使う人によって作る場所が変わります。
- 購入者が商品ページで使う
- スタッフがShopify管理画面で使う
- 倉庫担当者が外部システムで使う
- 実店舗のスタッフがPOSで使う
- 管理者だけが設定を変更する
Shopifyでは、アプリの機能を管理画面、商品や顧客のページ、POSなどへ追加できる仕組みがあります。
「スタッフが毎回CSVをダウンロードしているので自動化したい」など、現在の作業も伝えると、必要な画面を減らせることがあります。
自動化するタイミングを決める
外部サービスと連携するときは、いつデータを送るのかを決めます。
たとえば注文情報なら、候補は次のとおりです。
- 注文が作成されたとき
- 支払いが完了したとき
- 商品を発送したとき
- 注文がキャンセルされたとき
- 返金されたとき
「注文を外部システムへ送る」だけでは、どの段階で送るのか分かりません。
Shopifyには、注文や在庫などに変化があったとき、アプリへ通知するWebhookという仕組みがあります。外部の在庫管理や会計システムを更新するときにも使われます。
二重送信や通信失敗が起きた場合の扱いも必要です。
- 失敗したら自動で再送する
- 管理者へ通知する
- 管理画面から手動で再送できる
- 同じ注文を二重登録しない
正常に動く場合だけでなく、失敗した場合の流れも決めておきます。
連携するデータの項目を決める
外部システムと連携する場合は、「顧客情報を連携する」ではなく、送る項目を指定します。
顧客情報なら、次のような項目があります。
- 顧客番号
- 氏名
- メールアドレス
- 電話番号
- 住所
- 会員ランク
- 保有ポイント
- 注文回数
- 購入金額
- 顧客タグ
注文情報には、商品名、数量、割引、送料、税金、配送先などが含まれます。
すべての情報を送る必要はありません。使わない個人情報まで外部へ渡すと、管理する範囲が広がります。
連携先で何に使うのかを確認し、必要な項目だけに絞ります。
管理画面から変更したい項目を決める
独自機能を作ったあと、設定を変えるたびに開発者へ依頼する状態は避けたいところです。
日常的に変える項目は、管理画面から操作できるようにします。
たとえば、次のような設定です。
- ポイントの付与率
- 会員ランクの条件
- キャンペーンの開始日と終了日
- 対象商品
- 表示する文章
- 通知先メールアドレス
- 外部連携を一時停止するスイッチ
反対に、ほとんど変更しない項目まで画面化すると、開発する量が増えます。
誰が、どのくらいの頻度で変更するのかを基準に決めます。
権限の渡し方を先に決める
開発者が作業するには、Shopifyストアやアプリ開発に関する権限が必要です。
必要以上に広い権限を渡すのではなく、作業内容に合わせて設定します。Shopifyでは、カスタムアプリの作成や管理に関する権限と、アプリや販売チャネルを管理する権限が分かれています。
依頼前には、次の点を決めておきます。
- コラボレーターとして招待するか
- 本番ストアへいつ接続するか
- テスト用ストアを使うか
- 顧客や注文情報へのアクセスが必要か
- 納品後に権限を削除するか
本番データを使わなくても開発できる部分は、テスト用の環境で進めます。
開発後も管理費がかかることがある
カスタムアプリは、一度作れば永久に手入れが不要とは限りません。
外部のサーバーでアプリを動かす場合は、サーバー代や監視の費用がかかることがあります。外部サービス側の仕様が変われば、連携部分の修正も必要です。
ShopifyのAPIにはバージョンがあり、安定版は定期的に更新されます。古いバージョンが使えなくなる前に、アプリ側を更新する運用が必要です。
見積もり時には、制作費だけでなく次の内容も聞いてください。
- サーバー代
- 保守費用
- 障害時の連絡先
- Shopify更新時の対応
- 外部サービス更新時の対応
- 軽微な修正の扱い
- 開発者と連絡が取れなくなった場合の引き継ぎ
公開後の管理者が決まっていない場合は、開発前に相談します。
ソースコードとアカウントの扱いを確認する
完成した機能が誰の管理下に置かれるのかも確認が必要です。
最低限、次の点を見積もりや契約時に整理します。
- ソースコードを受け取れるか
- ソースコードを保管する場所
- サーバーの契約者
- ドメインや外部サービスの契約者
- アプリの管理者
- APIキーの保管方法
- 開発用アカウントの削除方法
- 別の開発者へ引き継げるか
開発会社名義のサーバーでしか動かせない場合、契約終了後も使えるのかを聞いておきます。
自社名義で契約すべきものと、開発者が管理するものを一覧にすると、納品時の混乱を防げます。
見積もり相談時に伝える内容
最初から専門的な仕様書を作る必要はありません。
次の内容を文章や箇条書きでまとめます。
- 現在のShopifyストアの状態
- 追加したい機能
- その機能を使う人
- 現在行っている作業
- 自動化したい部分
- 連携したい外部サービス
- 参考にしているサイト
- 希望する公開時期
- 必ず必要な機能
- なくても運営できる機能
簡単な図や手書きの画面案があれば、文章だけより伝わりやすくなります。
「Aの処理が終わったらBへ送る」のように、矢印でつなぐだけでも構いません。
制作を依頼する場合
こちらにて、制作を丸投げ依頼可能です。自分で実装するのが手間な場合や困難な場合には、得意な誰かに任せることも選択肢の一つでしょう。
まとめ
Shopifyの既存アプリで希望する機能を実現できない場合は、自社ストア専用の機能を開発する方法があります。
ただし、最初から独自開発に決める必要はありません。既存アプリ、テーマ修正、独自開発の順に比べ、足りない部分を明確にします。
依頼前に整理するのは、画面の見た目だけではありません。
誰が使うのか、どのデータを扱うのか、いつ処理するのか、失敗したときにどうするのかまで決めます。
公開後の保守、サーバー、ソースコード、アカウントの管理も含めて確認しておけば、完成後に動かし続けられる仕組みを作りやすくなります。

