🎯 はじめに
こんにちは、ベトナム発のIT企業BinaryTechで物流システムを担当している元エンジニアです。
近年、日本の中小物流企業では「在庫の可視化」「作業効率の改善」「紙・Excelからの脱却」といった課題が多く見受けられます。
本記事では、私たちが オープンソースERP「Odoo」 をベースに構築したクラウド型WMSの設計・実装について共有します。
主に以下のような課題を解決しました:
- 手書き帳票によるミス
- 在庫のロケーション管理が曖昧
- リアルタイムな在庫状況の把握が困難
🧩 システム構成図
構成要素:
- Odoo Backend(Community Edition)
- PostgreSQL DB
- React.jsベースのカスタムUI
- 倉庫内のラベル発行:Zebraプリンタ連携
- ハンディ端末:Android + WebViewアプリ
- API連携:受注データを外部ECから自動取得(Shopifyなど)
🧪 技術選定理由
項目 | 選定技術 | 理由 |
---|---|---|
ERP基盤 | Odoo | オープンソースで柔軟。物流モジュールが充実 |
UI/UX | React.js | 倉庫作業員でも使いやすい画面設計が可能 |
DB | PostgreSQL | Odooデフォルト。高速&安定 |
モバイル端末 | Android + WebView | 安価で導入しやすく、現場に馴染みやすい |
🛠️ 実装ポイントとコード例
在庫ロケーションのQRコード管理
# Python (Odoo ORM)でQRコード生成モジュールを実装
from odoo import models, fields
import qrcode
import io
import base64
class StockLocation(models.Model):
_inherit = 'stock.location'
qr_image = fields.Binary("QR Code", compute='_generate_qr')
def _generate_qr(self):
for rec in self:
qr = qrcode.make(f"Location: {rec.name}")
buf = io.BytesIO()
qr.save(buf, format='PNG')
rec.qr_image = base64.b64encode(buf.getvalue())
📈 効果と成果
- 📉 人的ミス:30%削減
- 🕒 棚卸作業時間:2日→6時間
- 📦 在庫精度:85% → 98%
- 🌐 遠隔からの在庫状況確認が可能
💡 まとめ
本記事では、中小規模倉庫に向けたクラウドWMS構築事例として、Odooベースの構成や実装ポイントをご紹介しました。
BinaryTechでは、Odooをベースにした「BWMS(Binary WMS)」というWMSパッケージも提供中です。
業務にフィットしたカスタマイズをご希望の企業様は、ぜひご相談ください!