【たまには農家らしい話】産直出荷の管理をクラウドで半自動で行う話

以前の記事では
ここまで実装していました。
特に書いていませんでしたが、自分で使うには問題なく使えていたので普通に使っていましたが、あまり詳しく書いていませんでしたのでちょっと説明したいと思います。
これの前はエクセルで表を作って、バインダーで手書き、手計算で処理していました。こちらに変えてずいぶん楽になりました。
何をしている?
スーパーの産直コーナーに出荷するにあたって、納品数量や売れ行きを管理したいと思っても、結局一元管理するのが少し面倒です。売れた数一つとっても、店で確認しないと分からない店、webで見れる店、メールが届く店などいろいろです。それをできるだけ確認したいと思いスプレッドシート管理かつ、出来るだけ自動化を行うこととしています。
具体的には出荷数を入力。売り上げはメールが届けばそちらを取り込む。自動計算で在庫管理をします。店で確認するしかない店は手入力です。webで見れる店は私は出していないので未対応。
品目によって、2日目以降の在庫をどうするか違うと思います。一応、複数日在庫対応させる処理としています。サンプルを作ってみました。
うちの場合、単一品目しか出荷管理しないので、複数品目はあまり対応することを考えていません。一応できるかなと想定はしていますが、一番上の生産量は複数品目対応していません。

見にくいので一部拡大

赤いところは手入力。青いところは自動入力する欄です。生産量は左から100(個数)、200(内容量 g)。20は自動計算で合計重量(kg)。
その下で店舗ごとの出荷量(赤欄)を手入力していく。販売数はメールが届く分に関しては、自動入力の設定が可能(青欄)。差し引きの在庫が当日分一番右の欄。
上の部分の話で、(納)の列で、産直出荷パック管理は当日の納品数量が合計計算されます。差し引きで、繰り越し在庫が計算されます。繰り越し在庫は翌日に繰り越されます。
在庫の持ち帰るする際には、持ち帰り日の在庫を手動でマイナスしてください。ただ、これは当日の最終計算後に手修正しないといけません。これは、20日の最終在庫はメールで販売数量が確定してからの数量を手修正しないといけない。これは自動計算の欄は、手修正した後は数式が消えてしまうので、そのあとの数量変更が反映されない。なので、最終の販売報告メールで数量確定したのちに手修正しないといけないということです。ですので、この修正は気を付けないといけません。
店舗ごとに複数種類販売することが無ければ2行準備しているので、数式を修正して返品数量を欄作成しても良いかも知れません。
多少面倒な処理の解説
基本これ以降の処理はGAS(Google Apps Script)を使用する。メニューバーの拡張機能→Apps Scriptから選択。プログラミング的な処理となりますのでそこそこ面倒くさいですが、今時ChatGPTに聞いて作業すれば何とかなるという話も。
メール処理
ここの部分に関しては、各自自分の今送られてくるメールに合わせて修正しないといけない部分。ですので、コピーしてそのまま使える部分でもないので、各自自分の環境に工夫しないといけない部分。ただ、ちょっと難しい部分ではある。気を付けたが方が良いのはメールの店舗名とスプレッドシートの店舗名は同じにしておくと問題が少ない。
処理時間に関してはスプレッドシートのトリガで関数ごとに処理時間を設定できるので、それでメールの時間に合わせて処理する。一応一時間単位で設定できるが、トリガの処理が指定時間1時間の中で処理されるので、22時過ぎに届くメールは最悪23時まで処理されない。ある程度詳しい方だったら対処方法あるのだが、難しいのでそのままが問題は少ない。
複数店舗の処理を行いたい場合は、メール処理の関数を複数用意する方がわかりやすい。恐らく、コード的には共通部分は共有する方が良いと思いますが、難しいことする必要があるかと言われれば簡単に動く方が良いので、無理しない方が良いかも。
枠追加
こちらに関しては毎日自動で翌日分を追加。単純な欄ではなく、数式を作成しないといけないので併せて作成する。手動でコピーするのは面倒くさいので自動でやるようにした。こちらもトリガで、毎日深夜(日が変わってから)に処理するようにしている。
書き込み禁止処理
上で説明していますが、書き込みを行うセルと書き込みを行わないセルがあります。なので、書き込みを行わないセルに関して書き込み禁止を設定するようにしています。これは枠追加に連動して処理されています。
書き込み禁止解除処理
こちらに関しては書き込み禁止解除用の関数を手動実行して解除します。主に、返品があった場合に在庫数を修正するときに使用します。Apps Scriptの画面で関数 function removeAllProtections()を選択して実行。
タブレットで処理
基本的にタブレットが見やすいです。個人的なお勧めはiPad。理由としては、セルラーモデルが安く手に入るし、スマホがiPhoneなら手元を離れたときに気が付ける。出荷の時に横に置いて忘れる可能性があるので、意外に重要。
今はiPad Pro 10.5 第一世代を使っています。一応アップデートは終わっていますが、セキュリティアップデートはまだ行われているはず。iPadはケースやフィルムなどが昔のものでも入手しやすいのでそこもポイント高い。
SIMに関しては各自好きなものを使えばいいし、最悪スマホでテザリングしても良いのですが、私はy.u mobileを使用しています。月々1,000円位で、さらにスマホ保険が付いている。詳細は各自お調べください。
y.u モバイル エントリーパッケージ SIM後日発送 YUM_ENTRYPKG
ただ、必ずしもタブレットじゃなくても良いのですが、スマホは画面が小さすぎて見にくいのであまりお勧めしません。ただ、そのつもりが無くて、ふらっとお店に寄った時は、クラウドデータなのでスマホで見れるので便利です。
ファイルの配布
まず、素人の作品です。あまり期待しないでください。一応問題ないはずですがうまく動かない可能性もあります。正直、ChatGPTに相談しながら作ればある程度知識があればそんなに苦労しません。初回実行時に認証で権限付与?を自分で設定できないと言われると苦労するかもしれないが、調べれば何とかなると思います。
また、各々の環境に対応させるのがちょっと面倒くさいかも知れません。と言っても、メールの取り込みのことなんですが、スーパーごとで形式が違うのでしょうがない。こればっかりはそれを理解したうえでよろしくお願いします。
ちなみに、webで見る形式の売上報告は想定していません。今時やりようでは行けると思いますが、私が使っている産直ではその形式がないので検証していません。
公開用に急いで修正しましたが、それが悪さしていたら申し訳ない。一応、年またぎを対応しているはずだが、本格的には初めてなので分かりません。
SwitchBot公式ページ
クーポン「AF-4903」で5%引き(アフィリエイトクーポンになりますのでご協力お願いします)
割引の詳しい仕組みに関してはこちらのページを参照ください。
大きいセールがある場合はAmazonもしくは楽天から購入するとお得です。
買い物情報はこちらからご確認ください。気分で紹介しています。
当ページにはアフィリエイトリンクを含む場合があります。
https://docs.google.com/spreadsheets/d/1rOqu1e0Ka_7NiPGWBdQ3h0Q3w_75MmcSpE7Sp7W65J0/edit?usp=sharing
こちらを開いて、メニューバー ファイル→コピーを作成で自分のGoogleDriveに保存ください。スプレッドシートデータ+GASデータが保存されます。
D~F列の日付は手入力してください。曜日は機種依存文字かも知れませんが一文字のものです。㈪㈫㈬㈭㈮㈯㈰
注意点は、D~F列は削除しないでください。ここだけ書式が違ったり、罫線のテンプレートになっていたりします。