わたしの納品システム

mayumi

前回「使われていないMaix Amigoを活用して、バーコードリーダーにする」というエントリーを書きました。今回は、その勢いで作った 自社商品のAmazon倉庫への納品システム について紹介します。

自分が使うために開発したのでまだ荒削りな部分もありますが、すでに7回の納品実績があります。

納品方法

Amazonへの納品にはいくつか方法があります。

  • 手動入力:Amazon Seller CentralのWebフォームから商品ごとに数量を入力
  • Excelアップロード:テンプレートのExcelに商品と数量を入力し、アップロード

本当はAmazon SellerのAPIを使うのが理想ですが(存在するはず…?まだ調べたわけではない)、今回は時間優先で Excelアップロード前提 の仕組みにしました。

開発者としては作り込みたい一方、納品担当者としてはとにかく早く出荷したいので、今回はこの方法でいきます。

納品するまでの流れ

Amazonに納品するには、まず商品を梱包し、FNSKU(Amazon倉庫で管理するコード)ラベルを貼り付ける必要があります。その上で、商品と数量をAmazonに報告します。

今回の納品システムを使った流れは次のとおりです。

  1. 商品のFNSKUラベルをスキャン
  2. 商品をカウントアップ
  3. スキャン終了後、商品ごとの数量をCSV出力
  4. Amazon用Excelテンプレートに数量を転記
  5. Seller Centralでアップロード
  6. 商品を出荷(ヤマトなどで配送)

納品システムに欲しい機能

作るにあたり、利用者として以下のようなものが最低限あってほしいと考えました。

  • 商品確認
    スキャンした商品名・画像を表示して、ラベル貼り間違いを防止。完全ではないものの誤りを減らせます。
  • 商品のカウントアップ
    これは絶対に欲しかった機能です。
    バーコード(FNSKU)を確認しながら商品をひたすら数える作業は、単純作業なのに失敗するとAmazonからはペナルティが発生するので気を抜けない作業です。これが結構ストレスのある作業で、このシステムはこの機能のために作ったようなものです。
  • スキャン取り消し
    誤って二重に読み取った場合に備えた機能です。
  • 二重チェック
    出荷前に「スキャン忘れ」や「スキャンしすぎ」を確認するための機能です。
  • CSV出力
    Amazon用Excelに転記するため。
  • 商品マスタ管理(登録・編集・削除)
    Amazonへのアップロードに必要なのはFNSKUではなくSKUで、読み取ったコードを変換するためのマスタが必要です。

構成

前回のエントリと基本構成は変わりませんが、Node-REDをやめて Node.jsアプリ として書き直しました。 Maix Amigoのソフトは前回から流用し、バーコード読み取り+音を鳴らす部分はそのままです。

ハードウェア

RaspberryPi4B
出荷現場でディスプレイがないこともあるため、接続して利用します。

Maix Amigo
Kendryte K210搭載のエッジAI開発ボード。今回はバーコードリーダー専用機にします。 MaixAmigo - Sipeed Wiki

イメージ

こんな感じで接続してアプリを作っていきます。

ソフトウェア

WebSocketサーバー
Maix Amigoから受け取ったバーコードをクライアントへ送信。
APIサーバー
商品照会や出荷情報を管理。
フロント
最低限の管理UIを用意。

実装画面

出荷登録

バーコードをスキャンするとAPI経由で商品情報を取得して、表示しつつ、スキャンした数量カウントします。

二重チェック

スキャンした商品の1回目の枚数と現在の枚数を比較し、過不足がないかを確認します。

商品登録

商品の一覧画面です。とにかく、出荷作業をしたいのが優先だったので、自分がストレスを感じない程度のUIで最低限の機能だけ実装しました。

CSV出力

出荷詳細画面に作成したCSVダウンロードボタンクリックでCSVを生成するようにしました。

こんな感じで出力されます。

出荷のデモ

商品のバーコードをスキャンすると、その商品情報の表示と数量をカウントしています。

課題

確認漏れ

スキャンに集中すると画面確認を忘れがちになります。それでは、梱包ミスに気づけません。Maix Amigoは手元を見ないとスキャンできない構造であることが原因だと思われるので、今後は「手元を見なくても使えるスキャナ」に置き換えたいと思います。(せっかく、「使われていないMaix Amigoを活用して、バーコードリーダーにする」という思いつきで使い始めたのに…)

読み取りミス

まれにバーコードが正しく読めないことがあります。ちょっと鬱陶しいのですが、頻度が低く、画面でエラーとして検知できるので現在は様子を見ておくまでにしています。

おわり

一番大きな変化は、数え間違えのストレスから解放されたことです。
今までは「数える(結構神経を使う)→数が合わない(絶望感)→最初からやり直す」の繰り返しで、納品が終わる頃にはぐったり疲れていました。 今では、スキャンしていけば自然と出荷準備が整っていきます。 あんなに面倒だった納品作業が、こんなに気楽になるとは思いませんでした。これだけでも十分に役立っていますが、さらに改善を重ねて、より実務で使いやすい仕組みにしていきたいと思います。

将来的には、棚卸しや決算作業の効率化にも活用できると良いですね。

最近のエントリー

Hieronymus Ver 2.0.6 release

HieronymusとOJT後のgemini-cli

金曜ごはん #9 「お肉たっぷり700g!"欲張りハンバーグ"ディナー」

金曜ごはん #8 「ジェネリック山ちゃん再び」

金曜ごはん #7「冬の到来。カニとお鍋」

金曜ごはん #6 「最近忘れがちになっている金曜ごはん」

gemini-cliへの新人教育

手軽に台帳の作れるノーコードシステム「NocoBase」

金曜ごはん #5「ジェネリック山ちゃん」

決算が終わりました

金曜ごはん #4 「ご褒美ステーキ」

リゾート暮らし

金曜ごはん #3「冷蔵庫の材料で作るごちそう」

Orcinus のサイトオープンのお知らせ

CassetteOS のサイトオープンのお知らせ

金曜ごはん #2「おうちバル風ディナー」

オクラの初収穫

金曜ごはん #1「お寿司と筋焼肉の盛り合わせ」

オープンソースコラボレーションプラットフォーム「Mattermost」

事務所の住民たち