Sync Master
ブログ

1枚のシートで複数ロケーションの在庫を同期する列設計

マルチロケーションGoogleシート

この記事の概要

倉庫ごとにファイルを分けるのをやめて、1枚のシートにすべてのロケーションを列として並べる。Shopifyの在庫同期が素直に回るようになる列レイアウトと、その形を保つための運用ルールをまとめました。

複数のロケーションで在庫を持つようになると、まず悩むのが「シートを何枚にするか」です。倉庫ごとにファイルを分けるやり方は一見わかりやすいのですが、Shopifyの在庫同期という観点で見ると、枚数が増えるほど運用は重くなっていきます。この記事では、1枚のシートにすべてのロケーションを列として並べ、そこからShopifyへ在庫を同期するための列設計を、考え方から日々の運用まで通してご紹介します。

テーマはあくまで在庫同期です。スプレッドシートは表計算の道具としてではなく、Shopifyの在庫数を決める正のソースとして扱います。どの列がどのロケーションの手元在庫を表すのかがはっきりしていれば、同期は驚くほど素直に動きます。逆に言えば、うまくいかない同期のかなりの部分は、シートのレイアウトそのものに原因があるのです。列の並びを決めることは、地味に見えて、在庫同期の成否をもっとも左右する準備です。難しい設定を覚える前に、まずシートの形を整えるほうが近道になります。

なぜ1枚のシートにまとめるのか

拠点が3つあるなら、シートも3枚に分けたほうが管理しやすいのではないか。最初はそう考えるのが自然です。ただ、実際に運用を始めてみると、分けたことによる手間のほうが目立ってきます。ここでは1枚にまとめることの利点を、3つの角度から見ていきましょう。マルチロケーションの全体像は、Googleシートでマルチロケーション在庫を扱うで先に俯瞰できます。

在庫の正解が1か所に集まる

在庫同期でいちばん怖いのは、どの数字が正しいのかわからなくなる状態です。倉庫ごとにファイルが分かれていると、同じSKUの情報が複数の場所に散らばり、それぞれが少しずつ違う更新日時を持つことになります。あるファイルは昨日の棚卸し済み、別のファイルは先週のまま、というズレは、気づかないうちに必ず生まれてしまいます。

1枚のシートにまとめておけば、そのSKUの在庫を知りたいときに開く場所は常に1つです。同期の設定も、参照するスプレッドシートは1つ、シート名も1つと単純になり、どのファイルを見に行っているのかを思い出す必要がなくなります。トラブルが起きたときの調査も、原因を探す範囲が1枚に限られるぶん、圧倒的に速く終わります。

Shopify側でも、在庫はロケーションごとに紐づく形で管理されています。シートの1行が1つのSKU、その行の各列が各ロケーションの手元在庫、という対応関係は、Shopifyの在庫の持ち方とそのまま重なります。データの形をそろえておくことが、同期を安定させるいちばんの近道です。

拠点ごとの差が横に並んで見える

1枚にまとめる二つ目の利点は、拠点ごとの偏りが一目でわかることです。同じ行を横に読むだけで、東京には30個あるのに大阪は0、といった状態がすぐ目に入ります。ファイルが分かれていると、この比較のために毎回2つの画面を行き来することになり、そもそも比べる習慣自体が続きません。

横並びの表になっていると、次のような気づきが日常の作業のなかで自然に生まれます。

  • 特定のロケーションだけが極端に多い、または少ないSKU
  • どの拠点にも在庫がなく、販売を止めるべき商品
  • 入力し忘れて空欄のまま残っているセル
  • 棚卸し直後なのに前回と数字が変わっていない、あやしい行

こうした気づきは、そのまま在庫同期の品質につながります。おかしな数字をシートの段階で拾えれば、Shopifyに反映される前に直せるからです。同期は書かれた内容を忠実に運ぶ仕組みですから、届く前に気づけるかどうかが分かれ目になります。

人と人の受け渡しが減る

三つ目は運用面の利点です。倉庫ごとにファイルが分かれていると、誰かが自分の担当ファイルを更新し、それを別の誰かが集約する、という受け渡しが発生しがちです。この受け渡しは、そのたびに「まだ届いていない」「どちらが最新か」といった確認のやり取りを生みます。件数が少ないうちは気になりませんが、拠点が増えるほど地味に効いてきます。

1枚のシートを全員で共有していれば、各担当は自分の列に数字を書くだけで作業が完了します。集約という工程そのものがなくなり、同期のタイミングまでに書き込まれた内容が、そのままShopifyに反映されます。関わる人数が増えるほど、この差は大きくなっていきます。更新の履歴も1か所に残るので、いつ誰がどの数字を書いたのかを後から確かめられます。これは同期の結果を検証するときにも役立ちます。

同期しやすい列レイアウト

ここからが本題の列設計です。同期がうまく回っているシートには、共通の型があります。左端に鍵となる列、その隣にロケーションごとの数量列、そこから離れた場所に人間用の列。この並びを最初に決めてしまえば、あとは日々埋めていくだけになります。

キー列は左端に固定する

まず、行を特定するためのキー列を左端に置きます。ふつうはSKUです。同期は「このSKUの、このロケーションの数量を、この値にする」という形で動くので、キーが読めなければ何も始まりません。左端にあると、人が目で追うときも、横にスクロールしたときも、常に視界に残ってくれます。

キー列で守りたいルールは多くありません。空欄を作らないこと、重複させないこと、前後に余計な空白を入れないこと。この3つです。とくに前後の空白は見た目ではわからないため、同じSKUのつもりが別物として扱われる原因になります。見出し行とキー列を固定表示にしておくと、下のほうの行を編集しているときも、どの商品を触っているのか見失いません。バーコードなど別の識別子をキーにする場合も、考え方はまったく同じです。大切なのは、1行を1つのSKUに確実に結びつけられる値が、いつも同じ場所にあることです。列の3層構造という考え方は、在庫管理シートの列設計で詳しく説明しています。

ロケーションごとに1列ずつ用意する

次に、Shopifyのロケーション1つにつき、数量の列を1つ用意します。列の見出しはどのロケーションかが判別できる名前にして、そこに入れるのは手元在庫の数だけにします。1つの列に複数の意味を持たせないこと。これが、複数拠点の在庫同期でいちばん大事な原則です。

列を用意するときの決めごとを、あらかじめ書き出しておくと迷いません。

  • 1列は1ロケーション。兼用や共用の列はつくらない
  • 見出しはShopifyのロケーションと対応づけられる名前にする
  • 入れるのは整数の数量だけ。単位や「個」などの文字は書かない
  • 新しい拠点が増えたら、既存列の間に割り込ませず末尾に追加する
  • 使わなくなった列は、消す前にまず同期の対象から外す

空欄と0の使い分けも、この段階で決めておきましょう。0はこの拠点の在庫はゼロという明確な意思表示、空欄はまだ数えていないという意味に統一しておくと、後から見返したときに迷いません。チーム内で言葉にして共有しておくと、担当が交代しても解釈がぶれにくくなります。

人が読むための列は離して置く

シートには、同期に使わない情報も必ず入ってきます。商品名、仕入先、棚番、担当者のメモ、次回入荷予定。どれも業務には欠かせませんが、Shopifyへ送る値ではありません。だからこそ、数量列とは明確に離れた場所へまとめて置きます。

おすすめは、キー列と数量列のブロックをシートの左側に固め、1列だけ空けてから、右側に人間用のブロックを置く形です。境目に空列があるだけで、ここから右は同期しないという了解が全員に共有されます。見出しに「メモ」「参考」といった言葉を入れておくのも効果的です。

この分離は、事故を防ぐためだけのものではありません。数量列がひとかたまりになっていると、範囲の指定も、条件付き書式の設定も、合計の計算もすべて楽になります。レイアウトが素直だと、運用のあらゆる場面が軽くなっていきます。

同期する値は数式ではなく確定した数値で

作業を効率化しようとすると、数量列にも数式を入れたくなります。前回の在庫に入荷を足して出荷を引く、といった計算です。気持ちはよくわかるのですが、同期の対象になるセルについては、最終的に確定した数値が入っている状態を目指すことをおすすめします。

理由は単純で、数式は結果が動くからです。参照先の行を消した、並べ替えをした、別のシートのデータが更新された。そのたびに数量列の値も変わります。人が見ていない時間帯に同期が走る運用では、いつの計算結果が送られたのかが誰にもわからなくなってしまいます。

計算そのものをやめる必要はありません。計算用の列は人間用ブロックの側に置き、結果を確認したうえで数量列へ値として貼り付ける。この一手間を挟むだけで、同期に渡る数字は人が確認して確定させたものに変わります。数字の責任の所在がはっきりするので、後から振り返るときにも助かります。

この形をどう運用するか

レイアウトが決まっても、運用のルールがなければ、シートは半年で元の混沌に戻ります。列設計を保つために必要なのは、担当の線引き、レイアウトを守る仕組み、そして定期的な見直しの3つです。

誰がどの列を編集するかを決める

1枚のシートを全員で使う以上、最初に決めるべきは編集の担当範囲です。基本の考え方はとてもシンプルで、各ロケーションの数量列は、その拠点の在庫に責任を持つ人が書く。それ以外の人は読むだけにする、というものです。

実際に決めるときは、次の順番で整理すると漏れがありません。

  1. 01Shopify側のロケーションを一覧にする
  2. 02それぞれの数量列に、編集する担当者を1人または1チーム割り当てる
  3. 03キー列と見出し行を触れるのは誰かを、別途決める
  4. 04人間用の列は、誰でも書いてよい範囲として開放する
  5. 05決めた内容をシートの端か運用ドキュメントに書き残す

担当が決まっていると、数字がおかしいときに誰へ聞けばよいかがすぐわかります。これは責任を追及するためではなく、確認を早く終わらせるための仕組みです。在庫同期のトラブルは、原因の切り分けに時間がかかるほど傷が広がりますから、この線引きは想像以上に効きます。

保護と入力規則でレイアウトを守る

決めたルールを、人の善意だけに頼らせないようにしましょう。Googleスプレッドシートには、シートや範囲を保護して編集できる人を限定する機能があります。見出し行とキー列を保護しておくだけでも、レイアウトが崩れる事故はほとんど防げます。

あわせて、数量列にはデータの入力規則を設定します。0以上の整数だけを受け付けるようにしておけば、全角の数字やマイナス値、うっかりの文字入力がその場ではじかれます。同期のあとにエラーを追いかけるより、入力した瞬間に止めてしまうほうがずっと楽です。入力規則には注意メッセージを添えておくと、なぜはじかれたのかがその場で伝わり、担当者が自分で直せます。ルールを覚えてもらうより、シートが教えてくれるほうが確実です。

保護と入力規則は、いわばレイアウトの設計図を紙の上からシートの上へ移す作業です。設定した内容は、担当が交代しても残り続けます。引き継ぎのたびに口頭で説明していたことが、シート自身の性質になってくれるわけです。

定期同期と定期点検をセットにする

ここまで整えたら、同期はスケジュールに任せてしまいましょう。手動で走らせる運用は、忙しい日ほど後回しになり、結果として在庫のズレが大きくなります。1日1回でも決まった時刻に走る仕組みがあれば、シートに書いた内容は必ずShopifyへ届きます。実行の時刻は、棚卸しや入荷作業が終わったあとに設定しておくと、その日の最新の数字が反映されます。

はじめて設定するときや、列を増やしたときは、本番の前に接続テストを実行してください。どの列がどのロケーションとして読まれているかを実際のデータで一度確認しておくと、安心して自動化に任せられます。

そして、自動化したあとこそ点検が要ります。月に一度でかまいませんので、次の点をざっと見直しましょう。

  • 列の並びが当初の設計どおりか(割り込みや削除がないか)
  • 同期の対象列とShopifyのロケーションの対応が今も正しいか
  • 空欄のまま放置されているセルがないか
  • 担当表と実際に書いている人が一致しているか

1枚のシートで複数ロケーションの在庫を同期する仕組みは、特別な技術ではなく、列の並べ方をきちんと決めるだけで手に入ります。左端にキー列、その隣にロケーションごとの数量列、離れた場所に人間用の列。あとは担当を決め、保護をかけ、定期同期と点検を回す。この形にたどり着けば、拠点がいくつに増えても、在庫の正解はいつも同じ1枚のなかにあります。点検用のレポートは、ロケーション別在庫の可視化の作り方が使えます。

関連記事

あわせて読みたい記事

在庫数を手で打ち込むのは、もうやめましょう。

Sync MasterをShopifyにインストールして、5分以内に最初の同期を実行。