WhatsApp-এর ছবি থেকে লাইভ অর্ডার বুক: ডিস্ট্রিবিউটরদের জন্য ERP আর অফলাইন ফিল্ড অ্যাপ
AIVCJ ERP, Tally + Excel + WhatsApp-এর ঘূর্ণির জায়গা নেয়: এমন একটি ফিল্ড অ্যাপ যা নেটওয়ার্ক ছাড়াই অর্ডার নেয় আর কখনও দু'বার sync করে না, ক্রেডিট হোল্ডের সিদ্ধান্ত কোডে, GST ইনভয়েস সহ FEFO পিকিং, আর সহজ ইংরেজিতে করা প্রশ্নের উত্তর এমন একটি read-only query দিয়ে যা আপনি নিজে দেখতে পান। দুটি ফোনের sync টেস্ট আর একটি blind NL-to-SQL সেট দিয়ে মাপা।

আমরা যে ডিস্ট্রিবিউটরদের সঙ্গে দেখা করি, তাঁদের বেশিরভাগের কাজ চলে তিনটি টুলে: ইনভয়েসের জন্য Tally, স্টক আর বকেয়ার জন্য Excel, আর বাকি সবকিছুর জন্য WhatsApp। সেলসম্যান দোকানে অর্ডার শিটের ছবি তুলে অফিসে পাঠান, পরদিন সকালে কেউ সেটা Tally-তে টাইপ করেন, আর তখনই কারও চোখে পড়ে যে ওই দোকানের ইতিমধ্যেই ₹50,000 বকেয়া, দু'মাস ধরে কোনও পেমেন্ট আসেনি। স্টক থাকে "মোটামুটি 20 কেস" — যেদিন পর্যন্ত সেটা আর থাকে না।
আমরা AIVCJ ERP বানিয়েছি এটা দেখাতে যে এই ঘূর্ণির জায়গায় কী আসতে পারে: এমন একটি ফিল্ড অ্যাপ যা নেটওয়ার্ক ছাড়াই চলে, এমন একটি অর্ডার বুক যা মাল বেরোনোর আগে ক্রেডিট যাচাই করে, ব্যাচ আর এক্সপায়ারি ধরে ট্র্যাক করা স্টক, এক ক্লিকে GST ইনভয়েস, আর মালিকের জন্য সহজ ইংরেজিতে প্রশ্ন করার উপায়। এটি চলে একটি নমুনা FMCG ডিস্ট্রিবিউটরের উপর — Northwind Distribution, যার 3টি ওয়্যারহাউস (Nagpur, Indore, Hubli), 396 জন রিটেলার, 8 জন ফিল্ড সেলসম্যান, 123টি SKU আর 100 দিনের ইতিহাস। প্রত্যেক ভিজিটর পান নিজের আলাদা কপি।
অর্ডারের যাত্রা: দোকান থেকে ইনভয়েস
- দোকানে — সেলসম্যান Northwind Sales অ্যাপে দিনের বিট খোলেন, দোকানের ক্রেডিট স্ট্যাটাস দেখেন, কেস যোগ করেন আর অর্ডার দেন। নেটওয়ার্ক নেই? অর্ডার ফোনেই সেভ হয়ে যায়, পাশে লেখা থাকে "নেটওয়ার্কের অপেক্ষায়"।
- Sync — ফোন অনলাইন হলেই কিউ নিজে থেকে আপলোড হয়ে যায়। ERP প্রতিটি লাইনের দাম নিজের প্রাইস লিস্ট থেকে বসায় আর ক্রেডিট যাচাই চালায় কোডে।
- ক্রেডিট হোল্ড — দোকান লিমিট ছাড়ালে বা কোনও ইনভয়েস শর্তের মেয়াদ পেরিয়ে গেলে, অর্ডার হোল্ডে যায় সুনির্দিষ্ট কারণসহ ("বকেয়া ₹49,917 + এই অর্ডার ₹12,147 = ₹62,064, ₹50,000 লিমিটের বেশি; ইনভয়েস NW/26-27/000993 74 দিন পুরনো")। মালিক কারণ লিখে সেটা রিলিজ করেন, বা বাতিল করেন। সেলসম্যানের অ্যাপ নিজে থেকেই আপডেট হয়।
- পিকিং আর ইনভয়েস — ওয়্যারহাউস ব্যাচ ধরে "আগে মেয়াদ, আগে বেরোবে" নিয়মে মাল তোলে, 15 দিনের মধ্যে মেয়াদ ফুরোবে এমন মাল বাদ দেয়, আর GST ট্যাক্স ইনভয়েস তৈরি হয় HSN কোড, ব্যাচ নম্বর, CGST + SGST বা IGST আর কথায় লেখা টাকার অঙ্ক সহ।
- রিঅর্ডার — বিক্রির গতি × সাপ্লায়ারের লিড টাইম দেখিয়ে দেয় কী ফুরিয়ে আসছে, সাপ্লায়ার আর ওয়্যারহাউস অনুযায়ী ভাগ করে; এক ক্লিকে পারচেজ অর্ডার তৈরি হয়, আর মাল এলে নতুন ব্যাচ স্টকে যোগ হয়।
আগে অফলাইন, আর কখনও দু'বার নয়
ভারতে ফিল্ড সেলস হয় গুদামে, বেসমেন্টে আর ছোট শহরে। যে অ্যাপের অর্ডার সেভ করতে নেটওয়ার্ক লাগে, সেটা অর্ডার হারায়। তাই Northwind Sales অ্যাপ (Expo / React Native দিয়ে তৈরি) প্রতিটি অর্ডার আর আদায় আগে ফোনে লেখে — Android-এ SQLite — আর পরে আপলোড করে।
অফলাইনের কঠিন দিকটা স্টোরেজ নয়; আসল কঠিন হল রিট্রাই। সেলসম্যান "অর্ডার দিন" চাপলেন, রিকোয়েস্ট সার্ভারে পৌঁছল, উত্তরটা হারিয়ে গেল নেটওয়ার্কহীন জায়গায়, আর ফোন আবার চেষ্টা করল। সাবধান না হলে সেটা দুটো অর্ডার হয়ে যায়। অ্যাপ যে আইটেমই কিউতে রাখে, তার নিজস্ব id থাকে, আর ERP একই id দু'বার দেখলে আগের অর্ডারটাই ফেরত দেয়। ফোনে দেখানো দাম আর ক্রেডিট শুধু একটা আভাস: অর্ডার পৌঁছলে ERP সব আবার প্রাইস করে আর আবার যাচাই করে, তাই পুরনো তথ্য নিয়ে বসে থাকা ফোন কখনও পুরনো দামে বা লিমিট পেরিয়ে বিক্রি করতে পারে না।
স্টক বরাদ্দ হয় যখন ওয়্যারহাউস মাল তোলে, সেলসম্যান অর্ডার নেওয়ার সময় নয় — দু'জন সেলসম্যান একই সময়ে শেষ 20 কেস বিক্রি করতে পারেন, দু'জনের কারও নেটওয়ার্ক না থাকলেও। তখন দ্বিতীয় পিকিং আটকে যায় স্পষ্ট ঘাটতি দেখিয়ে ("850 কম"), আর মালিক স্টক সরান বা PO তৈরি করেন। কিছুই বেশি বিক্রি হয় না, কোনও ব্যাচ মাইনাসে যায় না।
ক্রেডিট কন্ট্রোল কোডে, মডেলে নয়
ক্রেডিটের সিদ্ধান্ত মানে টাকার সিদ্ধান্ত, তাই এতে কোনও AI নেই। একটি ছোট নিয়ম-মডিউল সিদ্ধান্ত নেয়: মোট ঝুঁকি = বকেয়া ইনভয়েস + যে খোলা অর্ডারের এখনও ইনভয়েস হয়নি + এই অর্ডার, যা দোকানের লিমিটের সঙ্গে তুলনা করা হয়; আর দোকানের শর্তের চেয়ে পুরনো যেকোনও অপরিশোধিত ইনভয়েস অর্ডারটিকে হোল্ডে পাঠায়। (খোলা অর্ডারের এই ফাঁকটা আমরা টেস্টিংয়ের সময় পেয়েছিলাম — একই দোকানের দ্বিতীয় অর্ডার হোল্ডে থাকা প্রথম অর্ডারকে উপেক্ষা করছিল। এটা ঠিক করা হয়েছে, আর এখন এর নিজস্ব ইউনিট টেস্ট আছে।) হোল্ড রিলিজ করতে সবসময় কারণ লাগে, আর প্রতিটি রিলিজ, লিমিট বদল আর স্টক অ্যাডজাস্টমেন্ট অডিট লগে লেখা থাকে।
নিজের ডেটাকে প্রশ্ন করুন — সুরক্ষার বেড়া সহ
AI আমরা শুধু একটা জায়গায় ব্যবহার করি — যখন মালিক প্রশ্ন করেন: "Nagpur-এর কোন রিটেলারদের বকেয়া 60 দিনের বেশি?", "এই মাসে ক্যাটেগরি অনুযায়ী গ্রস মার্জিন"। Claude Haiku 4.5 একটি SQL query লেখে; তারপর ERP ঠিক করে সেটা চালানো যাবে কি না:
- query চলে একটি read-only ট্রানজ্যাকশনে, শুধু ভিজিটরের নিজের কপির 14টি view-এর উপর (টাকার অঙ্ক রুপিতে, কোনও ফোন নম্বর নেই);
- কোডের একটি গার্ড বাতিল করে দেয় এমন সবকিছু যা একক SELECT নয়, বা যা সিস্টেম টেবিল, সেটিংস বা ওই view-গুলোর বাইরের কিছু ছোঁয় — 28টি allow আর attack কেসে পরীক্ষিত;
- 5 সেকেন্ডের টাইমআউট, 200 সারির সীমা, প্রত্যেক ভিজিটরের দিনে 15টি প্রশ্ন;
- প্রতিটি উত্তরের সঙ্গে হুবহু query-টা দেখানো হয়, টেবিল হিসেবে, আর ডেটার গড়ন মিললে চার্ট সহ।
যে প্রশ্নের উত্তর ডেটায় নেই — প্রতিযোগীর দাম, আগামী মাসের বিক্রি, "সব বাতিল অর্ডার মুছে দাও" — তাতে ছোট্ট একটা উত্তর আসে, জানিয়ে দেয় এর বদলে কী কী উত্তর দিতে পারে। একটি প্রশ্নের খরচ প্রায় $0.002।
আমরা কী মেপেছি
| টেস্ট | ফলাফল | কীভাবে |
|---|---|---|
| অফলাইন sync — 2টি ফোন, হারানো উত্তরের পর রিট্রাই, দুটোই একই শেলফের ~70% অর্ডার করছে | 10/10 যাচাই, 6টি লোকাল রানে আর লাইভ সার্ভারে | কোনও ডুপ্লিকেট অর্ডার নেই; ERP আবার প্রাইস করে; প্রথম পিকিং শিপ হয়, দ্বিতীয়টি ঘাটতি দেখিয়ে আটকায়; কোনও মাইনাস স্টক নেই |
| নিজের ডেটাকে প্রশ্ন — blind সেট (20টি প্রশ্ন) | 17/20 (85%); n = 20-তে সৎ পরিসর মোটামুটি 64–95% | লিখেছেন আলাদা একজন লেখক যিনি আমাদের prompt কখনও দেখেননি; কোনও সংশোধনের আগে, একবার চালানো |
| নিজের ডেটাকে প্রশ্ন — আমাদের স্ক্রিপ্টেড সেট (30) | প্রথম রানে 17/30 → সংশোধনের পর 30/30 | আমরা এই সেটেই টিউন করেছি, তাই 30/30-কে ঊর্ধ্বসীমা ধরুন, নির্ভুলতার হিসেব নয় |
| নিয়ম, SQL গার্ড আর গ্রেডার | 20টি ইউনিট টেস্ট পাস | GST রাজ্যের ভিতরে/আন্তঃরাজ্য, ক্রেডিট, FEFO, রিঅর্ডার; 28টি SQL attack/allow কেস |
সততা নিয়ে দুটো কথা। প্রথমত, উত্তরের মূল্যায়ন হয় কোডে, কোনও AI বিচারকের হাতে নয়: মডেলের query আর হাতে লেখা সঠিক query একই ডেটায় চালানো হয়, আর ফলাফল মেলানো হয় (একই সারি, ±1%-এর মধ্যে একই সংখ্যা)। দ্বিতীয়ত, blind সেটের তিনটি ভুল সত্যিকারের ছিল: একটি তালিকা 50 সারিতে কেটে গিয়েছিল, একটি সিরিজ এসেছিল নতুন-থেকে-পুরনো ক্রমে, আর প্রতিযোগীর দাম নিয়ে একটি প্রশ্ন নাকচ না করে আমাদের নিজেদের ক্যাটালগে খোঁজা হয়েছিল। প্রথম আর তৃতীয়টি আমরা রানের পরে ঠিক করেছি; 17/20 যেমন মাপা হয়েছিল তেমনই থাকছে। প্রথম স্ক্রিপ্টেড রান আমাদের রেফারেন্স query-তেও চারটি ভুল ধরেছিল — একই নামের দোকানগুলো মিশে গিয়েছিল — তাই এখন নমুনা ডেটায় প্রতিটি দোকানের নাম আলাদা।
Tally-র সঙ্গে জুড়তে কী লাগে
বেশিরভাগ ডিস্ট্রিবিউটর প্রথম দিনেই Tally ছাড়বেন না, আর ছাড়ার দরকারও নেই। বাস্তবসম্মত পথ হল রাতে বা প্রতি ঘণ্টায় sync: মাস্টার (লেজার, স্টক আইটেম, গুদাম) আর বকেয়া বিল আসে Tally-র XML ইন্টারফেস থেকে, ইনভয়েস হওয়ার পর সেলস অর্ডার ভাউচার হয়ে ফেরত যায়, আর ERP রাখে সেইসব যা Tally রাখে না — বিট, ফিল্ড অর্ডার, ব্যাচ অনুযায়ী স্টক, হোল্ড আর অডিট ট্রেল। ডেমো Tally বা GST পোর্টালকে কল করে না; ই-ইনভয়েস (IRN) আর ই-ওয়ে বিলের ফিল্ড সেই ধাপের জন্য তৈরি।
চালিয়ে দেখুন: erp.demos.aivcj.com খুলুন, Sales অ্যাপে Shree Ganesh Kirana-র একটি অর্ডার নিন, দেখুন সেটা ক্রেডিট হোল্ডে যাচ্ছে, রিলিজ করুন, পিক করুন আর ইনভয়েস খুলুন। তারপর অ্যাপকে "নেটওয়ার্ক নেই" মোডে দিয়ে আবার একই কাজ করুন।
- #ERP
- #Distribution
- #Offline-first
- #React Native
- #Case study
- #Evaluation
সচরাচর জিজ্ঞাস্য প্রশ্ন
01ফিল্ড অ্যাপ কি সত্যিই ইন্টারনেট ছাড়া চলে?
02AI কি ডেটা বদলাতে পারে বা অন্য গ্রাহকদের ডেটা দেখতে পারে?
03আমাদের কি Tally ব্যবহার বন্ধ করতে হবে?
ERP — ইনভেন্টরি, ক্রেডিট ও অর্ডার
স্টক, বাকিতে বিক্রি, PO আর SO — এক পরিচ্ছন্ন সিস্টেমে।
আরও পড়ুন
ERP ও অপারেশনস4 মিনিটে পড়ুন
চ্যাটবট থেকে সহকর্মী: এমন একটি HR অ্যাসিস্ট্যান্ট যা নিরাপদে কাজ করে
AIVCJ HR শুধু ছুটির প্রশ্নের উত্তর দেয় না — ছুটির আবেদন করে, অনুমোদন পাঠায় এবং HR চিঠির খসড়া তৈরি করে। এখানে দেখানো হয়েছে কীভাবে আমরা AI-কে কাজ করতে দিয়েছি কিন্তু নিয়ম বানাতে দিইনি: কোডে পলিসি ইঞ্জিন, প্রতিটি কাজের আগে কনফার্মেশন কার্ড, ভূমিকা অনুযায়ী অনুমতি এবং অডিট লগ। একটি স্ক্রিপ্টেড ও একটি ব্লাইন্ড টেস্ট সেটে মাপা হয়েছে।
আরও পড়ুন1 মিনিটে পড়ুন
ক্রেডিট-ভিত্তিক ডিস্ট্রিবিউশন ব্যবসার জন্য ERP বাছাই
ডিস্ট্রিবিউশনে লাভ হয় কেনাকাটায়, আর ক্ষতি হয় বকেয়া আদায়ে। যখন বেশিরভাগ বিক্রি ধারে হয়, তখন একটি ERP-এর কাছে কী আশা করবেন।
আরও পড়ুন
AI ও RAG4 মিনিটে পড়ুন
বেশিরভাগ কোম্পানির চ্যাটবট কেন উত্তর বানিয়ে ফেলে — আর আমরা কীভাবে উৎস দেখানো একটি চ্যাটবট বানালাম
AIVCJ Knowledge-এর পেছনের গল্প: হাইব্রিড রিট্রিভাল, কোয়েরি প্ল্যানিং, প্রতিটি উত্তরে গ্রাউন্ডিং যাচাই, আর দুটি পাবলিক টেস্ট সেট — যার একটি ব্লাইন্ড সেট সাধারণ মানুষ যেভাবে টাইপ করেন সেভাবে লেখা। নমুনা HR, প্রোডাক্ট ও GST নথিতে, বা আপনার নিজের PDF-এ লাইভ চেষ্টা করুন।
আরও পড়ুন