yonet77的な雑記帳

日々思いついたネタなどを書き留めておきます

Glovia Order Management (on Salesforce) を使ってみようか (11)

実に久々の投稿となると、その投稿に対して自身でハードルを上げてしまって良くないですね。(反省

それはともかく、gOMネタの紹介を細々と再開しようと思います。
今回は「在庫予約」オブジェクトに関するネタでも、と。

在庫予約オブジェクトは影に潜む

まず、gOMにおける在庫予約オブジェクト(以下、「在庫予約」とします)はどう使われているでしょうか?
商品在庫と主従関係にある(従側)オブジェクトで、あまり表立って目立たない存在ですし、在庫予約オブジェクトを編集することはほとんどない、と思います。(変にいじるとデータの整合性が崩れます...)
それでも、受注〜出荷にかけて、非常に重要なオブジェクトとして位置づけられています。

そのライフサイクルをサラッと振り返ると、大体こんな感じです。

在庫予約の誕生

販売オーダーラインを作成した後、在庫予約オブジェクトは誕生します。
※1 ただし「自動で在庫予約しない」が有効になっていると在庫予約を自分で作る必要があります
※2 「Glovia System Setting」または商品関連情報にて「自動で在庫予約しない」を制御します


商品在庫の状況と合わせて、だいたいこんな感じで在庫予約が作成されます。

# 条件 在庫予約オブジェクトの作成
(1) オーダー数 <= 商品在庫.利用可能数 「予約済」として在庫予約が作成
(2) オーダー数 > 商品在庫.利用可能数 商品在庫.利用可能数 > 0 1. 利用可能数分で、「予約済」の在庫予約を作成
2. 残りは「受注残」として在庫予約を作成
(3) 商品在庫.利用可能数 == 0 「受注残」として在庫予約が作成

在庫予約の消し込み

予約ステータスが「受注残」として存在する在庫予約は、在庫の不足分として登録されているものです。
したがって、在庫を補充(サプライヤから購入するとか)してから、消し込みする必要があります。

なお、上記(2)で分割が発生するのは、在庫予約できた分だけでも予約して、後の受注に取られないようにするとか、先に出荷に向けた作業に着手できるようにするとか、そんな事情を考慮したものだと思います。

もし「分割させたくない」という事情があるならば、こんなカスタマイズが必要になるかな、と思います。

  1. 在庫予約処理しても在庫予約を作成させないようにする
    • 入力規則で制限するなど
  2. 全て「受注残」として作成する
    • 在庫が補充されたのちに、受注残消し込みする感じです
  3. 販売オーダーラインを分割してから、在庫予約処理する

出庫指示/梱包指示/出荷

業務プロセスにもよりますが、物流業務として「出庫を指示」して「梱包を指示」して「出荷を登録」する、という具合になります。

# プロセス 予約ステータス 備考
(0) - 在庫予約済
(1-a) 出庫指示 出庫指示作成済
(1-b) 出庫指示確認 出庫指示確認済
(2-a) 梱包指示 出庫指示作成済 Quick梱包でココにスキップ
(2-b) 梱包指示確認 梱包指示確認済
(3) 出荷確認 出荷済 Quick出荷でココにスキップ

在庫予約の予約ステータスが「出荷済」になると、めでたくその役目を終了、となります。

在庫予約オブジェクトの応用例

さて、在庫予約は販売オーダーラインから作成される、というのが通常の流れです。
販売オーダーラインから作成される、ということは、顧客からの注文があって初めて作成される、ということになります。

「注文はないけど在庫を確保しておきたい...!」という場合に対応できません。(そんな要求があれば、の話で)

では、本当に販売オーダーラインがなければ、在庫予約は作成できないのでしょうか?
いやまぁ、実際にはそんなことなくて、例えばこんな感じに在庫予約を手で作成してみましょう。


f:id:yonet77:20170318131756p:plain

# 項目 備考
(1) 商品在庫 親オブジェクトなんで必須です
(2) 商品 商品在庫の商品を指定します
(3) 在庫場所 商品在庫の在庫場所を指定します
(4) 単位 商品の単位を指定します
(5) 予約数 予約したい数(ただし、商品在庫.利用可能数以下になるように...!)
(6) ステータスコード "Reserved" を指定

こんな感じで販売オーダーラインへの参照なしに作成してみます。
商品在庫画面をみると、予約数が集計されて利用可能数がちゃんと計算されています。

f:id:yonet77:20170318132016p:plain

これであれば、注文はないけど在庫を確保しておきたい...!という事情に対応できそうですね。

この在庫予約に、例えばユーザーへの参照を貼っておいて、どのユーザーが確保したものかが分かるようにすると、ユーザーごとに注文なしに確保した分が集計できるかと思います。

この後、おそらく各ユーザーで注文が入り次第、確保した分から注文に対して在庫を引き当てていくようになると思います。
そんなときは、確保した在庫予約の予約数を必要な分だけマイナスしておいて、販売オーダーラインに対して在庫予約するとかすれば良いでしょう。

ちなみに、自身で在庫予約を作成するときは、商品在庫の利用可能数以上の数を指定しないよう気をつけましょう。
gOM側では特にチェックしてないので、気がついたら「実際には在庫がないのに、システム上は在庫予約されててなんじゃこりゃ!?」という状況になってしまい、阿鼻叫喚です。

おわりに

上記の話以外にも、販売見積ラインと紐つけるようにすれば、見積段階で在庫を確保するようなことも可能になります。

在庫予約をうまく操作すれば、gOMの活用方法もさらに広がると思いますので、色々と試してみてください。
ただし、在庫予約を自分で操作するときには、商品在庫の状況を常にチェックしながら自己責任でお願いします...!

gOMネタは、まだ今後も続く予定ですが、次回更新は未定です。