スプレッドシート連携

Google Sheetsとの双方向データ同期で売上集計と在庫管理を効率化

スプレッドシートGoogle Sheetsデータエクスポート在庫同期API連携
読了時間: 10分

背景

マルチロケーション対応の連携アプリを構築する際、注文連携や発送通知だけでなく、データ分析や在庫管理の効率化も求められました。

NextEngineのデータをスプレッドシートで集計・分析したい、逆にスプレッドシートで管理している在庫をNextEngineに反映したい——こうした要件に応えるため、Google Sheetsとの双方向連携機能を実装しました。

機能概要

受注データの自動エクスポート

NextEngineから受注データを定期的に取得し、スプレッドシートに自動記録する仕組みを構築しました。

毎日の売上集計や月次レポートの作成が、スプレッドシートを開くだけで完了します。

在庫データの自動更新

スプレッドシートで在庫数を編集すると、その変更がNextEngineに自動反映される仕組みも実装しました。

複数店舗で在庫を共有している場合でも、一箇所で更新すれば全店舗に反映されます。

複数の同期設定

目的に応じて複数の同期設定を作成できるようにしました。たとえば:

  • 売上日報用 - 毎日朝9時に前日の売上を取得
  • 在庫更新用 - 1時間ごとに在庫数を同期
  • 月次レポート用 - 毎月1日に前月の全データを取得

データフロー(受注データエクスポート)

受注データエクスポート
NextEngine

受注管理

受注データ取得
連携アプリ

変換・整形

書き込み
Google Sheets

スプレッドシート

データフロー(在庫同期)

在庫同期
Google Sheets

在庫データ編集

在庫データ読取
連携アプリ

2段階同期

在庫更新
NextEngine

在庫反映

3種類のデータ出力プリセット

用途に応じて3つのプリセットを用意しています:

プリセット1
データソース出荷確定済み注文
用途日次出荷レポート、売上集計
カラム数12カラム
プリセット2
データソース全注文データ
用途詳細分析、顧客情報管理
カラム数32カラム
プリセット3
データソースキャンセル注文
用途キャンセル分析、返品管理
カラム数12カラム

プリセット1(出荷データ)の出力項目

日々の売上集計に必要な基本項目を出力します:

  • 注文番号、店舗ID、商品コード、出荷日
  • メールアドレス、数量、税率、単価
  • JANコード、支払方法、商品名、部門

プリセット2(詳細データ)の出力項目

顧客分析や詳細な売上分析に必要な全項目を出力します:

  • 上記の基本項目に加えて
  • 配送先情報(住所、氏名、電話番号)
  • 顧客情報(会員番号、顧客ランクなど)
  • 配送時間帯、内部ID、手数料、ポイント

プリセット3(キャンセルデータ)の出力項目

キャンセル理由の分析や返品処理に使用します:

  • キャンセル日時、キャンセル理由
  • 元の注文情報、返金金額

在庫同期の2段階方式

単純に「スプレッドシートの数値を送信」するだけでは、在庫の不整合が発生する可能性があります。そこで、確実な同期のために2段階方式を採用しました。

ステップ1: リセット

リセットフェーズ
現在のNextEngine在庫を取得

既存データの確認

すべての在庫を0にリセット

クリーンな状態を作成

NextEngineの在庫がクリーンな状態に

準備完了

ステップ2: 反映

反映フェーズ
スプレッドシートからSKU・数量を読取

在庫データの取得

SKUコードを変換

大文字→小文字、/→- など

調整値があれば加算

安全在庫の確保など

NextEngineに在庫数をアップロード

同期完了

この方式のメリット

  • 累積誤差なし - 「差分」ではなく「絶対値」で同期するため
  • 単一の情報源 - スプレッドシートが唯一の正しい在庫情報源(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には行数や容量の制限があります。大量のデータを蓄積する場合は、定期的に古いデータをアーカイブすることをお勧めします。

同時編集の注意

在庫同期中にスプレッドシートを編集すると、データの不整合が発生する可能性があります。同期実行中は編集を控えるか、同期完了後に編集することをお勧めします。

関連記事