背景
マルチロケーション対応の連携アプリを構築する際、注文連携や発送通知だけでなく、データ分析や在庫管理の効率化も求められました。
NextEngineのデータをスプレッドシートで集計・分析したい、逆にスプレッドシートで管理している在庫をNextEngineに反映したい——こうした要件に応えるため、Google Sheetsとの双方向連携機能を実装しました。
機能概要
受注データの自動エクスポート
NextEngineから受注データを定期的に取得し、スプレッドシートに自動記録する仕組みを構築しました。
毎日の売上集計や月次レポートの作成が、スプレッドシートを開くだけで完了します。
在庫データの自動更新
スプレッドシートで在庫数を編集すると、その変更がNextEngineに自動反映される仕組みも実装しました。
複数店舗で在庫を共有している場合でも、一箇所で更新すれば全店舗に反映されます。
複数の同期設定
目的に応じて複数の同期設定を作成できるようにしました。たとえば:
- 売上日報用 - 毎日朝9時に前日の売上を取得
- 在庫更新用 - 1時間ごとに在庫数を同期
- 月次レポート用 - 毎月1日に前月の全データを取得
データフロー(受注データエクスポート)
受注管理
変換・整形
スプレッドシート
データフロー(在庫同期)
在庫データ編集
2段階同期
在庫反映
3種類のデータ出力プリセット
用途に応じて3つのプリセットを用意しています:
| プリセット | データソース | 用途 | カラム数 |
|---|---|---|---|
| プリセット1 | 出荷確定済み注文 | 日次出荷レポート、売上集計 | 12カラム |
| プリセット2 | 全注文データ | 詳細分析、顧客情報管理 | 32カラム |
| プリセット3 | キャンセル注文 | キャンセル分析、返品管理 | 12カラム |
プリセット1(出荷データ)の出力項目
日々の売上集計に必要な基本項目を出力します:
- 注文番号、店舗ID、商品コード、出荷日
- メールアドレス、数量、税率、単価
- JANコード、支払方法、商品名、部門
プリセット2(詳細データ)の出力項目
顧客分析や詳細な売上分析に必要な全項目を出力します:
- 上記の基本項目に加えて
- 配送先情報(住所、氏名、電話番号)
- 顧客情報(会員番号、顧客ランクなど)
- 配送時間帯、内部ID、手数料、ポイント
プリセット3(キャンセルデータ)の出力項目
キャンセル理由の分析や返品処理に使用します:
- キャンセル日時、キャンセル理由
- 元の注文情報、返金金額
在庫同期の2段階方式
単純に「スプレッドシートの数値を送信」するだけでは、在庫の不整合が発生する可能性があります。そこで、確実な同期のために2段階方式を採用しました。
ステップ1: リセット
既存データの確認
クリーンな状態を作成
準備完了
ステップ2: 反映
在庫データの取得
大文字→小文字、/→- など
安全在庫の確保など
同期完了
この方式のメリット
- 累積誤差なし - 「差分」ではなく「絶対値」で同期するため
- 単一の情報源 - スプレッドシートが唯一の正しい在庫情報源(Single Source of Truth)になる
- 透明性 - スプレッドシートを見れば現在の在庫が分かる
同期設定の構成
各同期設定は以下の項目を持ちます:
| 設定項目 | 説明 | 例 |
|---|---|---|
| 設定名 | 管理用の名前 | "日次出荷データ" |
| スプレッドシートID | Google SheetsのID | "1ABC_XYZ_123" |
| シート名 | 書き込み先のシート | "出荷データ" |
| 開始セル | 書き込み開始位置 | "A2" |
| マッピングタイプ | 出力形式 | preset1/preset2/preset3 |
| 同期モード | 上書き or 追記 | overwrite/append |
| クリア範囲 | 上書き時の消去範囲 | "A2:L" |
| スケジュール | 自動実行の頻度 | "0 0 * * *"(毎日0時) |
| 対象店舗 | フィルタリング対象 | ["1", "2", "3"] |
重複排除機能(追記モード)
追記モードでは、同じデータが重複して書き込まれないよう、以下のロジックで重複を排除します:
NextEngineから取得
スプレッドシートから取得
重複チェック
重複なし
活用例
売上日報の自動生成
毎朝9時に前日の出荷データを自動取得。スプレッドシートの関数で売上合計や商品別集計を計算し、日報が自動で完成します。
在庫の一括更新
仕入れが入荷したら、スプレッドシートで在庫数を更新。ボタンひとつで全店舗のNextEngine在庫に反映されます。
月次レポートの自動作成
月初に前月の全データを取得。ピボットテーブルで月別推移や商品別分析を自動生成できます。
メリット
この機能により、以下のメリットが得られました:
- 作業時間削減 - データダウンロード・貼り付け作業が不要
- リアルタイム性 - 常に最新データがスプレッドシートに反映
- 柔軟な分析 - スプレッドシートの機能を活用した自由な分析
- 在庫精度向上 - 単一の情報源で在庫の不整合を防止
注意点
スプレッドシートの容量制限
Google Sheetsには行数や容量の制限があります。大量のデータを蓄積する場合は、定期的に古いデータをアーカイブすることをお勧めします。
同時編集の注意
在庫同期中にスプレッドシートを編集すると、データの不整合が発生する可能性があります。同期実行中は編集を控えるか、同期完了後に編集することをお勧めします。