
この記事の要約
PHP 5系の在庫・受発注管理システムを約6ヶ月で再構築。倉庫物流会社の既存業務を引き継ぎ、表示の遅さを改善した事例です。バージョンアップではなくリビルドを選んだ理由、AI活用と仕様・テスト結果の確認について紹介します。
倉庫物流会社の業務を支えていたPHP 5系の在庫・受発注管理システムを、React・Next.js・Node.js・Vercelを用いた構成へ再構築しました。
きっかけは、サポートが終了した技術を使い続けることへの不安と、保守運用の対応、データ表示の遅さに関するご相談です。株式会社Ouverは、現行システムの調査と業務のヒアリングから始め、要件定義を含めて約6ヶ月でリビルドを行いました。
本記事では、バージョンアップではなく再構築を選んだ理由と、AIを活用するなかで特に時間をかけた仕様・テスト結果の確認について紹介します。
プロジェクトの概要
- 業種
- 倉庫・物流業
- 対象
- 在庫・受発注管理システム
- 刷新前
- PHP 5系
- 刷新後の使用技術
- React、Next.js、Node.js、Vercel
- 期間
- 約6ヶ月(要件定義・調査を含む)
- 対応内容
- 現行仕様の確認、業務ヒアリング、再構築、テスト
全国への発送を支える在庫・受発注管理
お客様は、企業のキャンペーン資材やオフィス向け消耗品などを預かり、日本全国へ発送する倉庫物流会社です。商品を保管するだけでなく、必要な時期に必要な数量を確保し、指定された場所へ届けるための管理が求められていました。
特に、季節やイベントに伴う繁忙期には必要な在庫数が変わります。既存システムでは、時期に応じて在庫の基準値を変更し、不足が見込まれる際に仕入れのアラートを出す仕組みを運用していました。
また、「どこに、何の商品があるのか」「どこに送るのか」をバーコードで一元管理。専用の管理シールを商品に貼ることで、輸送先も一目で分かるようになっていました。
発注システムとも連動し、仕入れアラートをもとに発注書の雛形を自動作成します。担当者が内容を確認し、問題がなければ発注。商品到着後は、納品書を読み込むことで在庫数が自動加算される流れです。
これらは、今回新しく考案した機能ではありません。長年の業務を支えてきた仕組みを正しく理解し、必要な機能を引き継ぐことが、刷新の出発点でした。

保守運用への不安と表示の遅さが相談のきっかけ
既存システムはPHP 5系で構築されていました。PHP公式ではPHP 5系はサポート終了済みのバージョンに分類されており、古いバージョンの利用は、後続バージョンで修正された脆弱性や不具合にさらされるおそれがあると案内されています。
参考:PHP公式「Unsupported Branches」
お客様は、利用している技術のサポート状況や必要な対応について十分な情報共有がないことに不安を感じ、保守運用会社の変更を検討されていました。あわせて、障害時の回答に時間がかかることや、データ表示の遅さも課題になっていました。
そのため、単に使用技術を更新するだけでは、相談の背景にある困り事は解消しません。Ouverでは、現行の仕様とともに、日々の業務で不便に感じている点を改めて伺いました。
PHP 8への更新ではなく再構築を選んだ理由
対応方針として、既存のPHP 5系システムをPHP 8系へバージョンアップする方法も検討しました。
ただし、この案件では、既存コードを引き継いで更新する場合も、大幅な改修が必要になる可能性が高いと判断しました。互換性の確認に加え、修正の実装やテストまで含めると、相応の工数が見込まれたためです。
そこでOuverは、AIを調査・開発に活用しながら新しい構成でリビルドする方が、期間と費用を抑えやすいと見込み、再構築を提案しました。
これは、今回のシステムの状態と必要な対応を踏まえた判断です。PHP 5からPHP 8への移行が、必ず作り直しになるわけではありません。また、AIを使えばどの案件でも再構築の方が安くなる、という意味でもありません。既存システムを活かす範囲と作り直す範囲は、調査結果に基づいて判断する必要があります。
調査の結果、既存資産を活かしてPHP 8系へ更新した事例は「PHP 5からPHP 8へ、既存資産を活かして刷新|オンライン研修システムの保守引き継ぎ事例」でご紹介しています。

AIで解析しても仕様の正しさは人が確認する
本プロジェクトで特に時間と労力をかけたのは、現行システムの理解でした。
AIを活用すると、コードの解析や仕様の整理を進めやすくなります。しかし、AIが出した分析結果をそのまま正しい仕様として扱うことはできません。読み取った処理が実際の業務に合っているか、重要な条件を見落としていないかを、お客様と確認する必要がありました。
たとえば、このシステムでは、在庫数だけでなく、時期によって変わる基準値や発注に至る流れが業務に関わっています。画面やコードを読み解くだけでなく、そこで扱う情報が現場でどう使われているのかまで理解することが重要でした。
OuverはAIによる分析を活用しつつ、仕様の確認とテスト結果の確認に大きな時間を割きました。「プログラムが動くこと」と「業務上期待する結果になること」を分けて考え、確認を重ねながら再構築を進めています。
AIは調査や実装を支援する手段です。お客様の業務に合っているかを判断する工程まで、省略できるわけではありません。

既存機能を引き継ぎながら困り事も改善
再構築では、React・Next.js・Node.jsを用い、Vercelを利用する構成を採用しました。ここでは、特定の新しい技術へ置き換えること自体を目的とせず、必要な業務機能を引き継ぎ、日々の利用で感じていた課題を見直すことを重視しました。
仕様確認と並行して、現在のシステムで困っていることも再度ヒアリングしています。そのなかで、今回の開発範囲に追加費用なしで組み込める機能や改善点については、再構築にあわせて反映しました。
なお、これは本案件で対応可能だった範囲での取り組みです。すべての追加機能を無償で実装するというものではありません。
約6ヶ月でリリースしその後も運用を継続
要件定義と調査を含め、再構築にかかった期間は約6ヶ月です。リリース後には多少のお問い合わせがありましたが、大きなトラブルはなく、その後も運用が続いています。
課題だったデータ表示も改善され、お客様からは「ストレスがない」とのお声をいただいています。改善前後の表示時間を数値で比較したものではありませんが、日常的に使う方の負担を軽くする改善につながりました。

古いシステムの刷新は業務の理解から
今回の支援で重要だったのは、PHP 5系のシステムを別の構成へ置き換えることだけではありません。既存の在庫・受発注業務を理解し、継承すべき機能と改善すべき点を整理したうえで、再構築の方法を選んだことです。
保守運用への不安、サポート終了、表示の遅さなどが重なっている場合も、最初から全面刷新と決める必要はありません。現状を調査し、バージョンアップ、部分改修、再構築のどれが適しているかを検討することが大切です。
Ouverでは、古い業務システムの調査から、保守運用・改修・刷新の検討までご相談いただけます。「今のシステムを使い続けられるか分からない」「保守運用会社を見直したい」という方は、現在の状況をお聞かせください。




