メインコンテンツまでスキップ

Shopify 連携(Re:port Flow Shopify アプリ)

Re:port Flow の Shopify アプリは、Shopify 上のイベント・条件・手動操作を起点に、Re:port Flow のテンプレートから任意の業務書類 PDF を出力する埋め込みアプリです。Shopify の管理画面の中で動き、注文のデータをテンプレートの項目へ差し込んで PDF にします。

どんな書類を出すかはアプリ側で決め打ちしません。「いつ・どんな条件で・どのテンプレートから出力するか」を PDF出力ルール として登録し、書類の中身はテンプレート、呼び名はルール名で決めます。請求書・納品書のような定番の書類も、お礼状や工場向けの製造指示書も、テンプレートさえあれば同じ仕組みで出力できます。

公開状況

Shopify アプリは Shopify App Store への公開準備中です。このページは現在の開発版の機能にもとづいて書いており、公開時に画面の表記や手順が変わることがあります。

できること​

機能内容
PDF出力ルールルールの作成・編集・有効/無効の切り替え・削除。よくある設定(プリセット)から作り始めることもできます
自動出力注文の作成・支払い完了・キャンセル、発送の作成・更新、返金の作成をきっかけに、条件に合う注文の PDF を出力します
条件注文タグ・顧客タグ・商品名・SKU・金額・配送先の国などで、出力する注文を絞り込みます
手動出力アプリ内の注文詳細画面から、ルールを選んで 1 件ずつ PDF をダウンロードします
一括出力アプリ内の注文一覧画面で注文を選び、まとめて ZIP でダウンロードします(一度に最大 50 件)
テスト実行ルールの編集画面から、最新の注文 1 件で試しに PDF を出力します
出力履歴直近の出力(最新 200 件)の日時・注文番号・ルール・きっかけ・状態を確認できます

事前に用意するもの​

  1. Shopify ストア
  2. Re:port Flow のワークスペース(re-port-flow.com で作成)
  3. ワークスペースの管理者(ADMIN)である Re:port Flow アカウント。接続の手続きで、自動出力の完了通知を受け取る Webhook エンドポイントを Re:port Flow 側へ登録するためです(Webhook 通知 > 必要な権限)
  4. PDF のもとになるテンプレート。まだ無い場合は、Re:port Flow の画面で作成するか、テンプレートギャラリーから複製してください

インストールと Re:port Flow への接続​

Shopify App Store への公開後に、インストール手順をこのページへ追記します。

アプリを開くと、最初の画面(PDF出力ルール)の上部に ReportFlow 接続設定 があります。

  1. ReportFlowに接続 を選ぶ
  2. 開いた画面で Re:port Flow にログインし、使うワークスペースを選んで認可する
  3. アプリの画面に 接続済み と表示されたら完了です。接続先のワークスペース ID も表示されます。接続テスト で Re:port Flow API に接続できることを確認できます

ブラウザがポップアップを止めた場合は、表示される 認可画面を開く から進めてください。接続をやめるときは 接続を解除 を選びます。

接続には OAuth 2.0 を使い、アプリが要求する Re:port Flow のスコープは openid と pdf:generate です(OAuth 2.0 > スコープ)。アプリケーションキーをアプリへ貼り付ける必要はありません。

アプリが Shopify に要求する権限​

スコープ使いみち
read_orders注文・明細・住所・金額の読み取り。注文・返金のイベントの受信
read_customers顧客の情報(表示名など)の読み取り
read_fulfillments発送(フルフィルメント)情報の読み取り。発送のイベントの受信

いずれも読み取りの権限で、Shopify のデータを書き換える権限は要求しません。

顧客の個人情報(保護された顧客データ)​

氏名・住所・メールアドレス・電話番号は、Shopify が「保護された顧客データ」として扱う項目です。アプリがこれらを読み取れるのは、Shopify がアプリにその項目の利用を許可している場合だけです。上の権限(スコープ)を承認しただけでは取得できません。この許可はアプリの提供元(Re:port Flow)が Shopify に申請して受けるもので、ストア側の操作はありません。

許可されていない項目があると、その注文のデータを取得できず、PDF の出力が失敗することがあります。本番で使う前に、テスト実行で氏名・住所などが差し込まれることを確認してください。

PDF出力ルールとは​

1 つのルールが「いつ・どんな条件で・どのテンプレートから出力するか」を表します。ルールは PDF出力ルール 画面の ルールを作成 から作ります。

項目内容
ルール名自由に付けられます(例: 支払い完了時の納品書 / お礼状 / 工場向け製造指示書)。出力した PDF のファイル名(<ルール名>_<注文番号>.pdf)と出力履歴に使われます。ファイル名では、ルール名と注文番号から / \ : * ? " < > | を取り除きます(ルール名がこれらの文字だけのときは document になります)
有効 / 無効無効にしたルールは、自動出力の対象からも、アプリ内の注文画面の出力ボタンからも外れます
発火トリガーいつ自動で出力するか。下の表から 1 つ選びます
条件(任意)出力する注文を絞り込みます。すべての条件を満たす注文だけが対象です
テンプレートRe:port Flow で作成・複製したテンプレートから選びます。テンプレートの中身は Re:port Flow のエディタで編集します
差し込み項目テンプレートの各項目に、Shopify の注文のどのデータを入れるか
出力アクション出力履歴に記録する(出力の成功・失敗を出力履歴に残す)。既定で有効です。無効にしても PDF は出力され、プランの出力上限も消費します。無効にすると、手動・一括の出力と、自動出力の「出力中」「失敗」は履歴に残りません。自動出力が成功したときは、Re:port Flow から完了通知を受け取った時点で成功の行が追加され、PDFを開く から開けます。失敗に気づけなくなるため、自動出力のルールでは有効のままにしてください

発火トリガー​

画面の表記きっかけになる Shopify のイベント
自動出力しない(手動実行のみ)なし。アプリ内の注文画面やテスト実行からだけ出力します
注文が作成されたとき注文の作成
支払いが完了したとき注文の支払い完了
注文がキャンセルされたとき注文のキャンセル
発送が作成されたとき発送(フルフィルメント)の作成
発送が更新されたとき発送(フルフィルメント)の更新
返金が作成されたとき返金の作成

自動のトリガーを選んだルールも、アプリ内の注文画面からいつでも手動で出力できます。

条件​

条件を付けない場合は、トリガーが発火したすべての注文で出力します。1 つのルールに付けられる条件は 20 件までで、複数の条件はすべて満たす必要があります(AND)。

条件項目使える比較
注文タグ / 顧客タグ一致する・一致しない・含む・いずれかと一致する・値がある・値がない
商品名 / SKU / ベンダー(明細のいずれか)同上
合計金額 / 小計一致する・一致しない・より大きい・より小さい・いずれかと一致する・値がある・値がない
通貨コード / 支払状況 / 配送状況 / 配送先の国コード / 注文メモ / 顧客メールアドレス一致する・一致しない・含む・いずれかと一致する・値がある・値がない
  • 文字列は、前後の空白と大文字・小文字の違いを無視して比べます
  • 「いずれかと一致する」はカンマ区切りで候補を並べます(例: gift, b2b, wholesale)
  • タグや明細のように値が複数ある項目では、「一致する」「含む」はいずれかの値が当てはまれば一致、「一致しない」はどの値も当てはまらないときに一致です
  • 評価できない条件(現在は使えない項目・比較・値)が残っているルールは、PDF を出力せず、出力履歴に「条件エラー」として残します

プリセット(よくある設定)​

ルールの作成画面では、次の設定を初期値として選べます。選んだあとも、名前・トリガー・条件は自由に変更できます。テンプレートは自分で選びます。

プリセットトリガー条件
支払い完了時にPDFを出力する支払いが完了したときなし
発送時に同梱用のPDFを出力する発送が作成されたときなし
特定タグの注文だけPDFを出力する支払いが完了したとき注文タグが gift と一致する
必要なときだけ手動で出力する自動出力しない(手動実行のみ)なし

テンプレートと差し込み項目​

テンプレートを選ぶと、そのテンプレートの項目名から差し込み項目が自動で設定されます。ルールの編集画面の 差し込み項目を編集 で、項目ごとに Shopify のデータを選び直せます。割り当てていない項目は空欄で出力されます。

差し込めるデータは次のとおりです。

  • 注文: 注文番号、注文日・処理日(YYYY-MM-DD)、注文メモ、メールアドレス、電話番号、支払状況、配送状況、支払方法
  • 金額・税: 小計、消費税、税率、送料、割引額、合計金額。金額は数値のまま渡すので、通貨記号や桁区切りはテンプレート側の書式で整えます
  • 顧客: 顧客名、メールアドレス、電話番号
  • 配送先・請求先: 宛名、会社名、電話番号、住所の各項目と、連結済みの住所文字列
  • 明細: テンプレートのテーブル項目に、注文の明細(line items)を行として渡します

顧客名・メールアドレス・電話番号・住所(宛名を含む)は保護された顧客データで、Shopify がアプリに利用を許可している場合だけ差し込めます。

ギャラリーから複製したテンプレートでも自作のテンプレートでも、項目名が一致すれば自動で設定されます。テンプレートのパラメータの考え方は変数の基本を参照してください。

注文詳細・注文一覧からの手動出力​

手動出力は、アプリ内の 注文一覧 画面と、そこから開く注文ごとの出力画面で行います。出力ボタンに並ぶのは、有効で、テンプレートが選ばれていてそのバージョンを確認できているルールだけです(ルール一覧で「要対応」の理由が「テンプレートが見つからない」のルールはボタンに並びますが、出力すると「失敗(テンプレート未検出)」になります)。

1 件ずつ出力する​

  1. アプリのメニューから 注文一覧 を開く
  2. 対象の注文の PDFを出力 を選ぶ
  3. 出力したいルールの (ルール名)を出力 ボタンを選ぶと、PDF がダウンロードされます

条件を付けたルールでは、手動出力でも条件を確認します。条件に合わない注文では出力せず、その旨を画面に表示します。

まとめて ZIP で出力する​

  1. 注文一覧 で、出力したい注文にチェックを入れる(一度に最大 50 件)
  2. PDF出力ルール の選択欄でルールを選ぶ
  3. 選択した注文を一括出力 を選ぶと、選んだ注文の PDF をまとめた ZIP(<ルール名>_bulk.zip)がダウンロードされます

注文一覧は 1 ページに 50 件ずつ表示し、チェックはページをまたいで保持しません。選んだ注文のうち 1 件でも取得できない、または条件に合わない注文があると、ZIP を作らずに処理を止め、対象の注文番号を表示します。欠けたファイルが混ざった ZIP を受け取って気づかない、ということを防ぐためです。表示された注文のチェックを外してやり直してください。

テスト実行​

ルールの編集画面の テスト実行 では、保存済みの設定のまま、最新の注文 1 件で PDF を出力してダウンロードします。テンプレートや差し込み項目の確認に使えます。ルールが無効のとき、テンプレートが選ばれていないとき、またはテンプレートのバージョンを確認できていないときは、ボタンを押せず、その理由が表示されます。

自動出力​

自動のトリガーを選んだ有効なルールは、Shopify からイベントを受け取るたびに条件を確認し、条件に合う注文の PDF を Re:port Flow で出力します。

  • 出力は非同期生成で行います。出力履歴には最初に「出力中」と記録され、Re:port Flow から完了通知を受け取ると「成功」に変わります。受付から 30 分たっても完了通知が届かない場合は「失敗(完了通知なし)」として表示します
  • 同じイベントで同じルールが二重に出力されないよう、重複を防いでいます
  • 条件に合わなかった注文は、出力履歴に残しません(条件付きのルールでは大半の注文が対象外になるため、履歴が埋まらないようにしています)
  • ルールのテンプレートのバージョンを確認できていないときは、条件に合った注文でも出力せず、出力履歴に「見送り」を残します(ルールの 出力履歴に記録する が有効な場合)。同じルール・同じ理由の見送りは 1 行にまとめ、見送った回数と最新の注文を表示します
  • テンプレートが選ばれていないルールは、自動出力の対象外です(出力も、出力履歴への記録もしません)。テンプレートが Re:port Flow の一覧に見つからないルールは出力を試み、出力履歴に「失敗(テンプレート未検出)」を残します

出力履歴​

アプリのメニューの 出力履歴 で、直近の出力(最新 200 件)を確認できます。手動・一括・自動のどの出力も、ルールの出力アクション 出力履歴に記録する が有効なら記録されます(既定で有効)。無効にしたルールでは、自動出力の成功(完了通知を受け取った時点で追加されます)を除いて記録されないため、下のトラブルシューティングで履歴を手がかりにできません。

列内容
出力日時ストアのタイムゾーンで表示します
注文番号対象の注文
ルール出力に使ったルールの名前
きっかけ出力のきっかけ(手動での出力、一括手動実行、または自動出力のトリガー名)
状態成功 / 出力中 / 失敗(失敗の場合は「接続エラー」「条件エラー」「完了通知なし」などの理由)/ 見送り(ルールの設定不足で自動出力しなかったもの)
操作PDFを開く(自動出力で成功したもの)/ 再実行(自動出力で失敗したもの)/ ReportFlow に再接続(接続が原因で失敗したもの)/ この注文を開く

手動・一括で出力した PDF はアプリに保存していません。もう一度必要な場合は、注文の出力画面から出力し直してください。

失敗した自動出力の再実行​

自動出力で失敗した行には 再実行 が表示され、同じ注文・同じルールの出力をやり直せます。手動・一括で出力した行には表示されません(注文の出力画面から出力し直してください)。

同じ PDF が二重に出力されないよう、再実行の前に次を確かめます。

  • 完了通知なしの行: 元の出力の状態を Re:port Flow に問い合わせます。元の出力が後から完了していた場合は、再実行せずに「成功」に更新します。まだ処理中の場合や、状態を確認できなかった場合も再実行しません
  • 通信の失敗やサーバーエラーで失敗した行: 元の出力が Re:port Flow 側で受け付けられていた可能性があるため、失敗から 30 分ほどは再実行できません。その間に完了通知が届けば「成功」に変わります
  • 同じ行の再実行を続けて押した場合: 2 回目以降は止めます。画面の案内に従ってページを再読み込みしてください

接続が原因で失敗した行(「接続エラー」など)は、ReportFlow に再接続 から接続し直してから 再実行 してください。

代表的な利用例​

ここに挙げるのは例です。ルール名とテンプレートを変えれば、ほかの書類も同じ手順で出力できます。

書類の例ルールの設定例
請求書トリガー「支払いが完了したとき」、条件「顧客タグが b2b と一致する」
納品書トリガー「発送が作成されたとき」、条件なし
お礼状トリガー「支払いが完了したとき」、条件「合計金額が 10000 より大きい」
ギフトレタートリガー「支払いが完了したとき」、条件「注文タグが gift と一致する」
工場向け製造指示書トリガー「注文が作成されたとき」、条件「ベンダーが(自社工場のベンダー名)と一致する」
出荷指示書トリガー「自動出力しない(手動実行のみ)」。注文一覧から当日分をまとめて ZIP で出力
返品案内トリガー「返金が作成されたとき」、条件なし

セキュリティとデータの扱い​

  • 接続情報はサーバー側だけで扱います。 Re:port Flow のアクセストークン・リフレッシュトークンは暗号化(AES-256-GCM)して保存し、ブラウザへは返しません。ルールにも接続情報を保存しません
  • ストアごとに分離しています。 ルール・出力履歴はストア単位で保存し、別のストアのデータを参照・変更できません
  • Shopify からの Webhook は署名を検証します。 署名が正しくない通知は処理しません
  • GDPR の必須 Webhook に対応しています。 customers/data_request・customers/redact・shop/redact を受け取ります。shop/redact を受け取ると、そのストアのルール・出力履歴・接続情報をすべて削除します
  • 顧客の個人情報をアプリに保存しません。 氏名・住所・メールアドレスなどは、PDF を出力するときに Shopify から読み取って Re:port Flow へ渡すだけです。出力履歴に残るのは注文 ID・注文番号・ルール名・きっかけ・日時などです。ただし、ルールの条件にマーチャント自身が入力した値(例: 顧客メールアドレスの条件値)は、ルールの一部として保存されます
  • アンインストール時に、Shopify のセッションと Re:port Flow への接続情報を削除します

出力した PDF と差し込んだデータは Re:port Flow 側で扱われます。保存場所・保存期間・暗号化についてはセキュリティとデータの取り扱いを参照してください。

制限事項​

  • 取得できる注文は直近 60 日分です。 Shopify の仕様により、read_orders スコープで読み取れる注文は直近 60 日分に限られます。それより古い注文は、注文一覧に出ず、出力もできません
  • アプリの画面は日本語表示です
  • ルールは 1 ストアあたり 50 件、条件は 1 ルールあたり 20 件までです
  • 一括出力は一度に 50 件までです。データ量が多く上限を超えた場合は、選ぶ注文を減らしてください
  • 出力履歴は最新 200 件までです
  • 条件の組み合わせは AND のみです。商品タイプ・商品タグ・メタフィールドは条件に使えません
  • 出力アクションは出力履歴への記録のみです。注文メタフィールドへの URL 保存やメール通知は行いません
  • ルールは、テンプレートを選んだ時点のテンプレートのバージョンで出力します。バージョンを確認できたルールは、同じテンプレートのまま保存し直してもバージョンは変わりません(テンプレートを更新しても、新しいバージョンには切り替わりません)
  • 明細が非常に多い注文(約 5,000 件超)では、明細(商品名・SKU・ベンダー)の条件を判定できず、出力しません
  • PDF の出力は Re:port Flow API を通して行うため、ワークスペースのプランの出力上限やリクエストの制限が適用されます(制限事項)

トラブルシューティング​

アプリ内の注文画面に出力ボタンが出ない​

ルールが有効になっているか、テンプレートが選ばれているかを PDF出力ルール 画面で確認してください。無効のルールと、テンプレートが未選択またはバージョン未確認のルールはボタンに出ません。

ルール一覧に「要対応」が出る​

ルールが PDF を出力できない状態です。有効と表示されていても出力されません。表示される理由ごとの扱いは次のとおりです。

理由出力ボタン・テスト実行自動出力対処
テンプレートが未選択ボタンに出ず、テスト実行も押せません対象外(出力も履歴への記録もしません)編集画面でテンプレートを選んで保存する
テンプレートが Re:port Flow の一覧に見つからないボタンに出て押せますが、出力は「失敗(テンプレート未検出)」になります出力を試み、履歴に「失敗(テンプレート未検出)」を残します編集画面で一覧にある別のテンプレートを選んで保存する
テンプレートのバージョンを確認できないボタンに出ず、テスト実行も押せません出力せず、履歴に「見送り」を残します編集画面を開いて保存し直す(同じテンプレートのままでよい。下記)

テンプレートを選び直す から編集画面を開けます。Re:port Flow に接続していないときやテンプレートの一覧を取得できないときは、「見つからない」の判定は行いません。

出力履歴に「見送り」が出る​

Shopify のイベントで自動出力が発火しましたが、ルールのテンプレートのバージョンを確認できていないため出力しませんでした。ルール一覧の テンプレートを選び直す から編集画面を開き、保存し直してください。バージョンを確認できていないルールは、同じテンプレートのままでも、保存したときにバージョンを取り直します(このとき差し込み項目の対応は、テンプレートの既定の対応で作り直されます)。テンプレートが Re:port Flow の一覧に無い場合は保存できないので、一覧にあるテンプレートを選んでください。見送った回数は、Shopify から届いたイベントの数です(発送の更新などで 1 件の注文から複数回届くことがあります)。

ReportFlow への接続に失敗する​

接続に使った Re:port Flow アカウントがワークスペースの管理者か確認してください。管理者でない場合、同じアカウントで接続し直しても解消しません。管理者アカウントで接続するか、ワークスペースの管理者に接続を依頼してください。認可画面で「許可しない」を選んだ場合や、接続を始めたブラウザと別のブラウザで認可した場合も失敗します。アプリの画面から接続をやり直してください。

「接続エラー」と表示される​

Re:port Flow への接続が無効になっています。PDF出力ルール 画面の ReportFlow 接続設定(出力履歴の失敗した行の ReportFlow に再接続 からも開けます)から接続し直し、失敗した自動出力は 再実行 してください。

自動出力されない​

  • ルールの発火トリガーが「自動出力しない(手動実行のみ)」になっていないか
  • ルール一覧でそのルールに「要対応」が出ていないか
  • 条件に合っているか(条件に合わない注文は出力履歴に残りません)
  • 出力履歴に失敗が残っていないか(ルールの 出力履歴に記録する が無効だと履歴に残りません)

を確認してください。

出力履歴が「出力中」のまま、または「完了通知なし」になる​

Re:port Flow からの完了通知を待っています。受付から 30 分を過ぎても届かない場合は「失敗(完了通知なし)」に変わり、再実行 できます(失敗した自動出力の再実行)。完了通知が届かない原因は次のどちらかです。

  • 生成自体が失敗した: アプリは生成の失敗通知(file.failed)を受け取らないため、受付後に生成が失敗しても(例: テンプレートの項目と差し込むデータの型が合わない)、完了通知は届きません。この場合は再実行しても同じ結果になります。同じ注文をアプリ内の注文画面から同じルールで手動出力すると、失敗の理由が画面に表示されます。ルールの差し込み項目やテンプレートを見直してください
  • 完了通知を受け取れていない: 接続時に登録した Webhook エンドポイントが削除・無効化された可能性があります。ReportFlow 接続設定 から接続し直してください

「この注文はルールの条件に一致しない」と表示される​

手動出力でも条件を確認します。ルールの条件か、対象の注文を見直してください。タグや SKU は前後の空白と大文字・小文字を無視して比べます。

出力履歴に「条件エラー」「条件判定不能」が出る​

  • 条件エラー: ルールに、現在は使えない条件項目・比較・値が残っています。ルールの条件を編集して保存し直してください
  • 条件判定不能: 明細が非常に多い注文で、明細を最後まで取得できませんでした。再実行しても同じ結果になるため、明細以外の条件を使ってください

一括出力が止まる​

選んだ注文に、取得できない注文か条件に合わない注文が含まれています。画面に表示された注文のチェックを外して、もう一度実行してください。