ইনভেন্টরি পুনঃঅর্ডার সুপারিশ অ্যাপ: মিন/ম্যাক্স থেকে ড্রাফট অর্ডার
প্রতিটি SKU-র জন্য মিন/ম্যাক্স সংরক্ষণ করে পুনরায় অর্ডারের পরিমাণ হিসাব করা এবং একটি ড্রাফট ক্রয় তালিকা তৈরি করার জন্য একটি ইনভেন্টরি পুনঃঅর্ডার সুপারিশ অ্যাপ তৈরি করুন, যাতে আপনার টিম সেটি পর্যালোচনা করতে পারে।

এই অ্যাপটি কী সমস্যার সমাধান করে (এবং কী করে না)
দোকান চালানো মানে সাধারণত দুই ধরনের ব্যয়বহুল ভুলের মধ্যে দৌড়ানো: দ্রুত বিক্রি হওয়া আইটেমগুলো শেষ হয়ে যাওয়া (হারানো বিক্রি, ক্ষুব্ধ গ্রাহক) অথবা অতিরিক্ত কেনা (ধীরে বিক্রি হওয়া স্টকে নগদ আটকে থাকা)। দৈনন্দিন সমস্যা হল “আমাদের কি ইনভেন্টরি আছে?” না—এটি হল “পরবর্তী বার কী কেনা উচিত, এবং কতটুকু?”, সেটা ঘন্টার গাণিতিক স্প্রেডশিট ছাড়াই।
মিন/ম্যাক্স সেটআপ সেই সিদ্ধান্তকে সহজ রাখে। প্রতিটি SKU-এর জন্য আপনি দুইটি সংখ্যা রাখেন:
- Min: আপনি যেটা পর্যন্ত পৌঁছালে পুনরায় অর্ডার করবেন না।
- Max: আপনি পুনরায় অর্ডার করলে যেই স্তরে পূরণ করতে চান।
উদাহরণ: যদি কোনো SKU-তে অন-হ্যান্ড 6 ইউনিট, মিন 10, এবং ম্যাক্স 25 থাকে, তাহলে সাজেশন হবে 19 অর্ডার করা। এটা মনে থেকে অনুমান নয় — একটি সুস্পষ্ট নিয়ম অনুসরণ করা হচ্ছে যা সপ্তাহ থেকে সপ্তাহে স্থির থাকে।
একটি ইনভেন্টরি পুনঃঅর্ডার সুপারিশ অ্যাপ আপনার বর্তমান অন-হ্যান্ড কাউন্ট (এবং ঐচ্ছিকভাবে যা ইতিমধ্যে অর্ডারে আছে) নিয়ে প্রতিটি SKU-র উপর মিন/ম্যাক্স নিয়ম প্রয়োগ করে এবং একটি ড্রাফট ক্রয় তালিকা তৈরি করে। সেই ড্রাফটই প্রধান আউটপুট: একটি সংক্ষিপ্ত, পর্যালোচনাযোগ্য তালিকা যা “আমরা কী অর্ডার করব এবং কতটুকু?” এর উত্তর দেয়, কারোই সরাসরি সাপ্লায়ার পোর্টাল খুলতে বা রিপকে ইমেইল করতে আগে।
এটি স্বয়ংক্রিয়ভাবে কেনা করে না। এটা গুরুত্বপূর্ণ কারণ বাস্তব ক্রয়-প্রক্রিয়ায় ব্যতিক্রম থাকে: সাপ্লায়ারের স্টক শেষ হতে পারে, কেস প্যাক সাইজ রাউন্ডিং প্রয়োজন হতে পারে, মৌসুমি আইটেম স্কিপ করা দরকার হতে পারে, বা একটি প্রোমো আসছে। অ্যাপটি দ্রুত সাজেশন জেনারেট করবে, তারপর একজন মানুষ লাইন্স অনুমোদন, সম্পাদনা বা মুছে দিতে পারবে।
এই ধরনের টুল সাধারণত স্টোর ম্যানেজার, অপারেশন লিড, এবং পারচেসিং স্টাফ ব্যবহার করে। ছোট টিমেও যেখানে একজন একাধিক দায়িত্ব পালন করেন, সেখানে এটি নির্ভরযোগ্য শুরুর বিন্দু দেয়।
প্রতিটি SKU-তে আপনি কোন ডাটা সংরক্ষণ করবেন
ভালো সাজেশন খাড়া, ধারাবাহিক SKU ডাটা থেকে আসে। যদি মৌলিক ডাটা এলোমেলো থাকে, আপনার ড্রাফট ক্রয় তালিকা অর্পিত হবে এবং মানুষ সেটায় বিশ্বাস করা বন্ধ করে দেবে।
প্রক্রিয়া বদলালেও SKU রেকর্ডের একই “আকৃতি” রাখা লক্ষ্য করুন।
কোর SKU ক্ষেত্র (শুরু করার জন্য ন্যূনতম)
দিন এক থেকে ব্যবহার যোগ্য হতে আপনার দরকার:
- একটি SKU আইডেন্টিফায়ার (যা আপনি স্ক্যান বা টাইপ করেন) এবং একটি ছোট নাম যা সবাই চিনবে
- ইউনিট অফ মেজার (each, bottle, box, kg) যাতে কাউন্ট ও অর্ডার একই অর্থ বহন করে
- স্ট্যাটাস (active/inactive) যাতে ডিসকনটিনিউড আইটেম বারবার দেখায় না
- মিন ও ম্যাক্স লেভেল (এবং ঐচ্ছিকভাবে আলাদা রিইঅর্ডার পয়েন্ট)
- নোটস এবং “শেষে আপডেট”—ইনফো (টাইমস্ট্যাম্প এবং/অথবা কার দ্বারা আপডেট করা হয়েছে)
মিন ও ম্যাক্সই গার্ডরেইল। আলাদা একটি রিইঅর্ডার পয়েন্ট উপকারী হতে পারে যদি লিড টাইম দীর্ঘ বা সাপ্লাই অনিয়মিত হওয়ার কারণে আপনি আগে অর্ডার করতে চান।
অ্যাভেলিবিলিটি ও অর্ডারিং বিবরণ (কী করে গাণিতিক বাস্তবসম্মত হয়)
নিচের বিবরণগুলো “কত কিনব” কে বাস্তবে “আপনি কী কিনতে পারবেন” এ রূপান্তর করে:
- অন-হ্যান্ড পরিমাণ, স্পষ্ট উৎস সহ (এখন ম্যানুয়াল কাউন্ট, পরে সিঙ্ক করা হতে পারে)
- প্রেফারড সাপ্লায়ার (অথবা প্রাইমারি ভেন্ডর)
- প্যাক সাইজ (কেস ক্বান্টিটি) যাতে আপনি বৈধ মাল্টিপলসে অর্ডার করেন
- লিড টাইম (দিনে)
- ন্যূনতম অর্ডার পরিমাণ (MOQ)
“অন-হ্যান্ড” কোথা থেকে আসে সেটা স্পষ্ট করুন। যদি শুরুতে ম্যানুয়াল এন্ট্রি হয়, শেষ কাউন্ট ডেট সংরক্ষণ করুন। পরে POS বা ওয়্যারহাউস টুল থেকে সিঙ্ক করলে শেষ সিঙ্ক সময়ও রাখুন। সেই এক তথ্য অনেক “কেন এটা সাজেস্ট করলো?” প্রশ্নের উত্তর দেয়।
মিন/ম্যাক্স সাজেশনগুলো কিভাবে হিসাব করা হয়
মিন/ম্যাক্স একটি সরল নিয়ম: আপনি কেবলমাত্র তখনই রিইঅর্ড করবেন যখন স্টক কম, এবং পুনরায় অর্ডার করলে যথেষ্ট পরিমাণ অর্ডার করবেন যাতে সেটা নিরাপদ স্তরে পৌঁছে যায়। ফলাফল একটি ড্রাফট লিস্ট যা বুঝতে সহজ এবং অডিট করা সহজ।
1) কখন রিইঅর্ড trigger করবেন?
একটি ট্রিগার বেছে নিন এবং তা ধারাবাহিক রাখুন। সবচেয়ে প্রচলিত:
- যদি On Hand Min-এ বা তার নিচে থাকে (কখনো কখনো এটিকে reorder point বলা হয়), আইটেমটি যোগ্য হবে।
- যদি On Hand Min-এর উপরে থাকে, সাজেশন হবে শূন্য এবং আইটেম ড্রাফট লিস্টে থাকবে না।
এটি ইতিমধ্যেই সুস্থ থাকা আইটেমগুলোর জন্য অনাকাঙ্ক্ষিত সুপারিশ এড়ায়।
2) কতটুকু সাজেস্ট করবেন?
একবার আইটেম যোগ্য হলে, মূল ধারণা হলো “Max পর্যন্ত অর্ডার করা।” সহজ সূত্রটি:
base_suggested = max - on_hand
suggested = max(0, base_suggested)
উদাহরণ: Min = 10, Max = 40, On Hand = 14.
- On Hand (14) Min (10)-এর উপরে, তাই suggested = 0.
যদি On Hand 8-এ নেমে আসে:
- base_suggested = 40 - 8 = 32
- suggested = 32
ড্রাফটকে বাস্তবসম্মত করার সহজ সমন্বয়
বেস হিসাবের পরে কিছু ছোট নিয়ম যোগ করুন যাতে কেনাকাটা বাস্তব অবস্থা মেলে:
- কেস প্যাক রাউন্ডিং: যদি আপনাকে 12-এর প্যাকগুলো কিনতে হয়, 32-কে উপরে রাউন্ড করে 36 করুন।
- MOQ: যদি MOQ 50 হয়, 36-কে 50-এ বাড়ান।
- নেগেটিভ কখনই সাজেস্ট করবেন না: যদি On Hand 55 ও Max 40 হয়, বেস -15 হবে, কিন্তু suggested অবশ্যই 0।
- ঐচ্ছিক ক্যাপ: যদি বিশাল কেনাকাটা এড়াতে চান, একটি সর্বোচ্চ অর্ডার পরিমাণ (cap) নির্ধারণ করুন।
প্রাথমিকভাবে হ্যান্ডেল করার জন্য এজ-কেসগুলো
খারাপ ডাটা খারাপ সাজেশন তৈরি করে, তাই নিচের পরিস্থিতিগুলো স্পষ্ট করুন:
- ডিসকনটিনিউড SKU: স্টক কম থাকলেও সবসময় সাজেশন 0 দিন।
- নেগেটিভ ইনভেন্টরি: এটি একটি রেড ফ্ল্যাগ হিসেবে বিবেচনা করুন; হিসাব নিকাশ করুন কিন্তু পর্যালোচনার জন্য সতর্কতা দেখান।
- মিসিং মিন/ম্যাক্স: অনুমান করবেন না। suggested = 0 এবং SKU-টিকে “needs setup” হিসেবে চিহ্নিত করুন।
ব্যবহারকারীর প্রবাহ: ইনভেন্টরি কাউন্ট থেকে ড্রাফট ক্রয় তালিকা
সবচেয়ে ভাল ফ্লো হচ্ছে যেটা আপনার টিম সত্যিই ব্যবহার করবে। সহজ রাখুন: আপনার কাছে যা আছে সেটা রেকর্ড করুন, তারপর সাজেশন জেনারেট করুন। পরবর্তীতে (লেবেল, ড্যাশবোর্ড, অ্যানালিটিক্স) যোগ করা যাবে।
একটি সাধারণ সেশন দেখায়: ইউজার দ্রুত গণনা করে, লোকেশন বাছাই (যদি প্রয়োজন), SKU অনুযায়ী কাউন্ট এন্ট্রি করে, সেভ করে, তারপর একটি বাটন ট্যাপ করে ড্রাফট ক্রয় তালিকা তৈরি করে। বায়ার সেই ড্রাফট রিভিউ করে ও সামঞ্জস্য করে অনুমোদন করার আগে।
স্ক্রিনকে শান্ত রাখতে একটি ব্যবহারিক ফিল্টার দিন: শুধু মিন-এর নিচে থাকা SKU দেখান, বা সমস্ত SKU দেখান স্পষ্ট স্ট্যাটাসসহ। “শুধু মিন-এর নিচে” ব্যস্ত দিনে দ্রুত; “সব দেখাও” সাহায্য করে নিশ্চিত হতে কিছু মিস হয়নি।
সাধারণ ফ্লো যা বেশিরভাগ ছোট টিমের জন্য কাজ করে:
- অন-হ্যান্ড কাউন্ট এন্টার বা ইম্পোর্ট করুন
- সাজেশন জেনারেট করুন
- ড্রাফট লিস্ট রিভিউ করুন (শুধু মিন-এর নিচে বা স্ট্যাটাসসহ সব)
- সাজেশন কিউনটিটিজ এডিট করুন এবং নোট যোগ করুন
- ড্রাফট অনুমোদন করুন এবং ক্রয় করার জন্য এক্সপোর্ট বা শেয়ার করুন
ওভাররাইড গুরুত্বপূর্ণ কারণ বাস্তবতা জটিল। বায়ার কোনো প্রোমো varten অতিরিক্ত অর্ডার করতে পারে, বা নগদ সমস্যা/সাপ্লায়ারের দেরি থাকায় কম অর্ডার করতে পারে। সাজেস্ট করা পরিমাণকে শুরু হিসাবে দেখুন, নিয়ম হিসাবে নয়।
কয়েকটা ছোট কন্ট্রোল অনেক বিরক্তি রোধ করে:
- ম্যানুয়াল ওভাররাইড পরিমাণ (কার দ্বারা পরিবর্তন করা হয়েছে সেটিও দেখান)
- “হোল্ড” ফ্ল্যাগ যাতে এখনো আইটেম পুনরায় অর্ডার না হয়
- ঐচ্ছিক কারণ ক্ষেত্র (মৌসুমি, ভেন্ডর সমস্যা, ক্লিয়ার্যান্স)
অবশেষে, ড্রাফট জেনারেট হলে একটি স্ন্যাপশট সংরক্ষণ করুন: টাইমস্ট্যাম্প, যে অন-হ্যান্ড কাউন্ট ব্যবহার হয়েছে, সেই মুহূর্তের মিন/ম্যাক্স মান, এবং ওভাররাইডের আগে সাজেস্ট করা পরিমাণ। যখন কেউ জিজ্ঞেস করে “আমরা কেন এটা 24 অর্ডার করেছি?”, আপনি ড্রাফট খুলে দেখাতে পারবেন ঠিক কোন ইনপুটগুলো এটির পিছনে ছিল।
একটি সহজ ডাটাবেস স্ট্রাকচার যা নমনীয় থাকে
ভালো একটি রিইঅর্ডার অ্যাপ শুরু করে ছোট টেবিল সেট থেকে যেগুলো বিশ্বাস যোগ্য। লক্ষ্য নয় একটি পারফেক্ট ERP; বরং একটি পরিষ্কার ভিত্তি যাতে আপনি সাপ্লায়ার, লোকেশন, অথবা স্মার্টার নিয়ম যোগ করতে পারেন।
শুরু করার কোর টেবিলগুলো
একটি একক দোকানের জন্য, “আইটেম কি” এবং “আপনার যা আছে” ও “আপনি কিভাবে অর্ডার করবেন” আলাদা রাখুন:
- SKUs: প্রতিটি আইটেমের জন্য এক রো (SKU কোড, নাম, ইউনিট, ক্যাটাগরি, active/inactive)
- Suppliers: সাপ্লায়ারের নাম ও কন্ট্যাক্ট (যদি লিড টাইম ট্র্যাক করেন তবে সেই তথ্য)
- Reorder settings: প্রতিটি SKU-র জন্য মিন, ম্যাক্স, রিইঅর্ডার পয়েন্ট, প্রেফারড সাপ্লায়ার, প্যাক সাইজ
- Inventory levels: প্রতিটি SKU-এর বর্তমান অন-হ্যান্ড (ভবিষ্যতে লোকেশন অনুযায়ী) এবং শেষ কাউন্ট তারিখ
- Draft orders: একটি হেডার (সাপ্লায়ার, স্ট্যাটাস, তৈরি করা কারা) এবং লাইন্স (SKU, সাজেস্টেড পরিমাণ, চূড়ান্ত পরিমাণ)
এটি নমনীয় থাকে কারণ আপনি রিইঅর্ডার নিয়ম বদলাতে পারেন SKU তালিকা লেখার দরকার ছাড়াই, এবং ড্রাফট অর্ডারগুলো সেই পরামর্শ বনাম অনুমোদিত কৃত্য হিসেবে রেকর্ড রেখে দেয়।
আজ যদি আপনার একটি দোকানই থাকে, অতিরিক্ত লোকেশন তৈরি করে ওভারবিল্ড করবেন না। প্রথমে প্রতিটি SKU-র জন্য একটি সংখ্যা রাখুন; যখন দ্বিতীয় দোকান বা গুদাম যোগ করবেন, তখন Locations টেবিল যোগ করে Inventory levels-কে SKU প্রতি লোকেশন অনুযায়ী বদলান।
গার্ডরেইল, রোল এবং এক্সপোর্ট
কয়েকটা ছোট ভ্যালিডেশন রুল বাজে ইনপুটকে বাজে অর্ডারে পরিণত হওয়া থেকে রোধ করে। উদাহরণ: min অবশ্যই max-এ কম হতে হবে, রিইঅর্ডার পয়েন্ট নেগেটিভ হতে পারবে না, এবং প্যাক সাইজ শূন্য হতে পারবে না। সিদ্ধান্ত নিন মিসিং সেটিংস থাকার সময় কী হবে: সাজেশন ব্লক করা হবে, না SKU-কে “needs setup” চিহ্নিত করে ছেড়ে দেওয়া হবে।
রোলগুলো তখন কাজে লাগে যখন একাধিক লোক স্টক কাউন্ট করে এবং নিয়ম পরিবর্তন করে:
- Viewer: SKU ও ড্রাফট অর্ডার দেখতে পারে
- Editor: কাউন্ট ও রিইঅর্ড সেটিংস আপডেট করতে পারে
- Approver: পরিমাণ চূড়ত করতে পারে ও ড্রাফট অর্ডারকে Approved চিহ্ন দিতে পারে
আপনি কিভাবে অর্ডার পাঠাবেন সেটাও পরিকল্পনা করুন। যদিও পরে অটোমেশন করা যেতে পারে, বেশিরভাগ টিম সরল এক্সপোর্ট দিয়ে শুরু করে: CSV ডাউনলোড বা একটি সাপ্লায়ার-রেডি তালিকা যা ড্রাফট অর্ডার স্ক্রিন থেকে কপি করা যায়।
ধাপে ধাপে: অ্যাপ স্ক্রিন ও লজিক বানানো
দুটি সরল তালিকা থেকে শুরু করুন: আপনার SKU ক্যাটালগ এবং আপনার সাপ্লায়ার তালিকা। প্রতিটি SKU-র একটি চেনার মতো নাম, ডিফল্ট সাপ্লায়ার, এবং একটি বায়িং ইউনিট থাকা উচিত (each, case, carton)। ব্যবহারিক রাখুন — এই তালিকা আপনার টিম প্রতিদিন সার্চ করবে।
পরের ধাপে SKU রেকর্ডে রিইঅর্ড সেটিংস যোগ করুন। মিন ও ম্যাক্স হচ্ছে বেসিক, কিন্তু প্যাক সাইজ ও লিড টাইম রাখলে সাজেশন আরও ভাল হবে। একই আইটেম যদি দুইটি সাপ্লায়ার থেকে কেনা যায়, একটিকে ডিফল্ট হিসেবে চিহ্নিত করুন এবং ড্রাফট অর্ডারে পরে পরিবর্তন করার অপশন রাখুন।
ইনভেন্টরি কাউন্টের জন্য একটি দ্রুত স্ক্রিন বানান যা গতি-কে অগ্রাধিকার দেয়। একটি দ্রুত এডিট গ্রিড ভাল কাজ করে: aisle বা ক্যাটাগরি দিয়ে ফিল্টার করুন, কাউন্ট টাইপ করুন, ও সেভ করুন।
অধিকাংশ টিমকে এই কোর স্ক্রিনগুলো লাগে:
- SKU তালিকা ও SKU ডিটেইল (মিন, ম্যাক্স, প্যাক সাইজ, লিড টাইম সহ)
- সাপ্লায়ার তালিকা ও ডিটেইল
- ইনভেন্টরি কাউন্ট এন্ট্রি (গ্রিড + ফিল্টার)
- রিইঅর্ড সাজেশন (রেজাল্ট টেবিল + সহজ একশন)
- ড্রাফট ক্রয় অর্ডার (এডিটেবল লাইন্স + অনুমোদন)
তারপর সাজেশন লজিক ইমপ্লিমেন্ট করুন: প্রতিটি SKU-র জন্য “on hand” (এবং ঐচ্ছিকভাবে “on order”) কে আপনার রিইঅর্ড নিয়মের সাথে তুলনা করুন, সাজেস্টেড পরিমাণ হিসাব করুন যাতে সেটা ম্যাক্স-এর দিকে নিয়ে যায়, এবং প্যাক সাইজ রাউন্ডিং প্রয়োগ করুন যেন 13 ইউনিট সাজেস্ট করা না হয় যখন সাপ্লায়ার শুধুই কেসে 12 বিক্রি করে।
পর্যালোচনার জন্য একটি ড্রাফট অর্ডার জেনারেট করুন এবং এটিকে Draft, Approved, Sent-এর মতো স্ট্যাটাস দিন। যখন কেউ একটি ড্রাফট তৈরি করে, সাগেশনের লাইন্সগুলো কপি করে সাপ্লায়ার অনুযায়ী গ্রুপ করুন, তারপর মানুষ পরিমাণ এডিট, সাপ্লায়ার বদলানো, বা আইটেম রিমুভ করতে পারবে।
শেষে একটি পরিষ্কার আউটপুট স্টেপ দিন। কিছু টিম ড্রাফট প্রিন্ট করে ম্যানুয়ালি অর্ডার দেয়, অন্যরা ফাইল এক্সপোর্ট করে। যাই হোক, কী অনুমোদিত হয়েছে তা সংরক্ষণ করুন যাতে পরে “সাজেস্ট করা বনাম অর্ডার করা” তুলনা করে নিয়মগুলো উন্নত করা যায়।
সাধারণ ভুল যা সাজেশনকে অবিশ্বাস্য করে তোলে
রিইঅর্ড গাণিতিকটি সহজ। যা বিশ্বাসঘাতক করে তা হলো এলোমেলো সেটআপ। বেশিরভাগ সমস্যা দেখা দেয় যখন ড্রাফট লিস্টটি “ভুল লাগছে”, যদিও সূত্র সঠিক।
শ্রেষ্ঠ সমস্যা হল মিশ্রিত ইউনিট। আপনি “each” কাউন্ট করছেন, কিন্তু অর্ডার করছেন “cases”-এ, অথবা রিসিভিং হচ্ছে “packs”-এ। যদি SKU-র ইউনিট অস্পষ্ট হয়, অ্যাপ 24 সাজেস্ট করতে পারে যখন আপনি 24 কেস বলতে চেয়েছিলেন। প্রতিটি SKU-র জন্য একটি বেস ইউনিট (অften “each”) বেছে নিন এবং একটি কনভার্সন রাখুন যেমন “1 case = 24 each” যাতে চূড়ান্ত অর্ডার পরিমাণ সঠিকভাবে ট্রান্সলেট করা যায়।
মিন ও ম্যাক্সও অনুমান করে সেট করা হয়। যদি আপনি বিক্রির গতি ও সাপ্লায়ার লিড টাইম অযথা উপেক্ষা করেন, নিয়ম সুন্দর দেখালেও বাস্তবে ব্যর্থ হবে। ধীরে বিক্রি হওয়া আইটেমে উচ্চ ম্যাক্স নগদ আটকে রাখে, দ্রুত বিক্রি হওয়া আইটেমে নিম্ন মিন স্টকআউট তৈরি করে।
অন্যান্য সাধারণ ভুল:
- লোকেশন ট্র্যাক না করা (ব্যাক রুম বনাম শেলফ, স্টোর A বনাম স্টোর B) এবং পরে কেন অন-হ্যান্ড মেলে না ভাবা
- যে কোনেই মিন/ম্যাক্স এডিট করায় দেয়া — অনুমোদন প্রক্রিয়া না রাখা
- অতীত মানগুলি ওভাররাইট করা যাতে আপনি গত সপ্তাহের অর্ডার ব্যাখ্যা করতে না পারেন
- ক্ষতিগ্রস্ত, রিজার্ভড বা ইন-ট্রানজিট স্টককে উপলব্ধ ধরা
- দিন পুরনো কাউন্ট ব্যবহার করা, তারপর সাজেশনকে দোষ দেওয়া
সরল একটি দৃশ্য: আপনি কফি পড বিক্রি করেন। তাক-এ 6 বক্স, ব্যাক রুমে 18, আর দ্বিতীয় দোকানে 12 আছে। যদি আপনি কেবল একটি “অন-হ্যান্ড” সংখ্যা ট্র্যাক করেন, কেউ 6 গুনে কেবল সিস্টেম সাজেস্ট করবে, যদিও বাস্তবে আপনার মোট 36 আছে। লোকেশন ফিল্ডগুলো এই সমস্যা দ্রুত ঠিক করে।
ড্রাফট লিস্ট বিশ্বাস করার আগে দ্রুত চেকলিস্ট
মিন/ম্যাক্স সিস্টেম সহজ, কিন্তু ড্রাফট লিস্ট তার পেছনের ডাটার সমানটাই ভাল। কোনো কিছু সাপ্লায়ারকে পাঠানোর আগে সাইলেন্ট ভুলগুলো স্ক্যান করতে এক মিনিট নিন যা সাজেশনকে আত্মবিশ্বাসী কিন্তু ভুল করে তোলে।
শুরু করুন সেটআপ চেক করে: প্রতিটি রিইঅর্ডেবল SKU-তে মিন, ম্যাক্স, এবং সঠিক প্যাক সাইজ থাকা উচিত। কোনোটার অনুপস্থিতি থাকলে অ্যাপ SKU-কে ফ্ল্যাগ করা উচিত ও স্কিপ করা উচিত। একটি খালি ফিল্ড গোপনে একটি বিশাল অর্ডার বা কোনো অর্ডারই করতে পারে না।
এরপর অন-হ্যান্ড পরিমাণগুলো সামঞ্জস্য করে দেখুন। নেগেটিভ স্টক ঘটে (রিটার্ন দেরিতে প্রসেস হয়েছে, রিসিভিং পোস্ট করা হয়নি, ইউনিট মিশ্রণ), কিন্তু এটি বিরল হওয়া উচিত। যদি কোনো ধীর আইটেমে -12 দেখেন, সাজেশনকে “investigate” হিসেবে নিন, কিনতে নয়। একটি পুনঃগণনা বা ট্রানজেকশন রিভিউ অতিরিক্ত উন্মোচন থেকে সস্তা।
একটি সংক্ষিপ্ত চেকলিস্ট যা বেশিরভাগ সমস্যা ধরে:
- সেটআপ: প্রতিটি রিইঅর্ডেবল SKU-তে মিন, ম্যাক্স, প্যাক সাইজ, এবং সাপ্লায়ার ভরা আছে
- পরিমাণ: অন-হ্যান্ড বাস্তবসম্মত দেখছে (স্পষ্ট টাইপো নেই যেমন 500 বদলে 50)
- প্যাকেজিং: সাজেশন কেস প্যাক এ রাউন্ড এবং MOQ মানছে
- নীতি: সবাই জানে আপনি ম্যাক্স পর্যন্ত অর্ডার করবেন নাকি কোনো নিরাপদ টার্গেটে পৌঁছাবেন
- ট্রেসেবিলিটি: এডিট দেখায় কে ও কখন পরিবর্তন করেছে
প্যাকেজিং রুলগুলো বিশেষ মনোযোগ দাবি করে। যদি আপনার সাপ্লায়ার 24 কেসে বিক্রি করে এবং ড্রাফট 13 সাজেস্ট করে, সিস্টেমটি আপনার পলিসি অনুযায়ী (সাধারণত স্টকআউট এড়াতে উপরে রাউন্ড) অ্যাডজাস্ট করা উচিত। MOQ-র ক্ষেত্রেও মূল সাজেশন এবং অ্যাডজাস্ট হওয়া সাজেশন দুটো দেখান যাতে রিভিউয়ার বুঝতে পারে কী পরিবর্তিত হয়েছে।
এছাড়া ঠিক সিদ্ধান্ত নিন আপনার টিমের কাছে “ভাল পর্যাপ্ত” কী মানে। ম্যাক্স পর্যন্ত অর্ডার করা আগ্রেসিভ এবং নগদ আটকে দিতে পারে। একটি সংরক্ষিত লক্ষ্য (উদাহরণ: শুধুমাত্র টপ মুভারদের জন্য ম্যাক্স পর্যন্ত অর্ডার এবং ধীর আইটেমের জন্য মাঝামাঝি টার্গেটে অর্ডার) ওভারস্টক কমাতে সাহায্য করে যতক্ষণ আপনি বিশ্বাস তৈরি করেন।
অবশেষে, অডিট ট্রেইল রাখুন। এমনকি একটি সরল “Last changed by” এবং “Last changed at” প্রতিটি লাইনে বিশ্বাস বাড়ায় এবং পরে বাকবিতণ্ডা সমাধান করে।
উদাহরণ: একটি ছোট দোকানের সাপ্তাহিক রিইঅর্ডার
একটি ছোট পাড়ার দোকান ভাবুন যাঁরা 30 SKU রাখে। মালিক প্রতি সোমবার একটি ফিজিক্যাল কाउंट করে এবং একটি ইনভেন্টরি পুনঃঅর্ডার সাজেশন অ্যাপ চান যাতে তারা দ্রুত ড্রাফট ক্রয় তালিকা স্যানিটি-চেক করতে পারে।
তারা দুইটি সাপ্লায়ার থেকে কেনাকাটা করে: Supplier A (snacks এবং drinks) এবং Supplier B (household basics)।
তিনটি SKU এবং সাজেশনের গণিত
SKU 1: Sparkling Water 12-pack (Supplier A)
On hand: 8 packs. Min: 10. Max: 30. Pack size: 6.
8 মিনের নিচে হওয়ায়, অ্যাপ ম্যাক্স পর্যন্ত অর্ডার সাজেস্ট করে।
ম্যাক্স পৌঁছাতে প্রয়োজন = 30 - 8 = 22 packs.
প্যাক সাইজ (6)-এ রাউন্ড করলে 22 হয় 24.
সাজেশট অর্ডার: 24 packs.
SKU 2: Potato Chips (Supplier A)
On hand: 14 bags. Min: 12. Max: 36. Pack size: 12.
14 মিন-এর উপরে, তাই সাজেশন 0। যদিও এটি ম্যাক্স-এ নেই, তবুও এই সপ্তাহে পুনরায় পূরণ করা দরকার নেই।
SKU 3: Dish Soap 500 ml (Supplier B)
On hand: 3 bottles. Min: 6. Max: 18. Pack size: 6.
3 মিনের নিচে, তাই ম্যাক্স পর্যন্ত অর্ডার করুন।
ম্যাক্স পৌঁছাতে প্রয়োজন = 18 - 3 = 15 bottles.
প্যাক সাইজ (6)-এ রাউন্ড করলে 15 হয় 18.
সাজেশট অর্ডার: 18 bottles.
বায়ারের সমন্বয় (বাজেট ও সাধারণ জ্ঞান)
ড্রাফট তালিকা একটি শুরু; কম্যান্ড নয়। এই সপ্তাহে মালিকের বাজেটটা কম এবং জানে যে বৃষ্টির দিনে স্পার্কলিং ওয়াটারের বিক্রি কমে।
তারা Sparkling Water-কে 24 থেকে 18 packs-এ নামিয়ে দেয় (এটাও 6-এর গুণিতক)। চিপস 0-ই থাকে। ডিশ সোপ 18 থাকে কারণ সেটি স্টেডি বিক্রি করে ও ঝুঁকিপূর্ণ দেখায়।
এই রিভিউ-এডিট ধাপই ড্রাফটকে প্রায়ই স্বয়ংক্রিয় অর্ডারের থেকে বেশি কাজে লাগে।
পরিষ্কার ড্রাফট ক্রয় তালিকা (সাপ্লায়ার অনুযায়ী গ্রুপ করা)
Supplier A
- Sparkling Water 12-pack: 18 packs (24 থেকে সমন্বয়)
- Potato Chips: 0
Supplier B
- Dish Soap 500 ml: 18 bottles
শুধু 30 SKU-র মধ্যে, এই সাপ্তাহিক লুপটি প্রায় 10 মিনিট নিতে পারে: কাউন্ট, সাজেশন রিভিউ, কয়েকটি এডিট, তারপর প্রতিটি সাপ্লায়ারের জন্য গ্রুপড ড্রাফট শেয়ার করা।
পরবর্তী ধাপ: ছোট করে লঞ্চ করুন, পরে নিয়ম উন্নত করুন
দ্রুত মান নেয়ার সহজ উপায় হল সরল রাখা। এক স্টোর (অথবা এক লোকেশন) এবং একটি নিয়ন্ত্রিত সাপ্লায়ার গ্রুপ বেছে নিন যাদের SKU-গুলির সংখ্যা manageable। পরিষ্কার, রিভিউ করা ড্রাফট তালিকা থেকে আপনি বেশি শিখবেন বাজে এজ-কেসগুলো শুরুর দিন সব কভার করার চেয়ে।
শুরুতেই কীভাবে অন-হ্যান্ড কাউন্ট ধরে রাখবেন তা সিদ্ধান্ত নিন। প্রথমে ম্যানুয়াল এন্ট্রি ঠিক আছে, যতক্ষণ তা ধারাবাহিক। একটি সরল নিয়ম যেমন “অর্ডারের আগে প্রতি বৃহস্পতিবার কাউন্ট আপডেট” একটি জটিল সেটআপের চেয়ে ভালো।
একটি বাস্তবিক রোল আউট প্ল্যান:
- 20-50 SKU দিয়ে শুরু করুন যা কাউন্ট করা সহজ এবং রাজস্ব-জনিতভাবে গুরুত্বপূর্ণ
- 2-3 সাইকেল ধরে ম্যানেজারের সাথে ড্রাফট লিস্ট রিভিউ করুন আগে অর্ডার বসানো
- প্রতিটি SKU-র জন্য একটি সংক্ষিপ্ত নোট ফিল্ড রাখুন (উদাহরণ: “মৌসুমি” বা “কেস প্যাক 12”)
- প্রথম গ্রুপ স্থিতিশীল হলে পরবর্তী সাপ্লায়ারে সম্প্রসারণ করুন
বেসিক কাজ করলে ধীরে ধীরে গণিতে উন্নতি করুন। সাধারণত দুইটি আপগ্রেড দ্রুত ফল দেয়: গড় ডিমান্ড (যেমন "গত 4 সপ্তাহের গড় সাপ্তাহিক বিক্রি") এবং লিড টাইম ভিত্তিক কিছু সেফটি স্টক। যদি সাপ্লায়ার 10 দিন নেয়, রিইঅর্ডার পয়েন্টকে অতিরিক্ত এক সপ্তাহের ডিমান্ড কভার করার মতো বাড়ালে দেরি মোকাবিলা সহজ হয়।
নিয়মগুলো রাখতে একটি কেডেন্স নির্ধারণ করুন। সাপ্তাহিকভাবে ড্রাফট রিভিউ করে স্পষ্ট ভুল ঠিক করুন। মাসিকভাবে মিন/ম্যাক্স মানগুলো টিউন করুন, টপ মুভার ও বড় আকারের ওভারস্টক রিস্কে ফোকাস করে।
আপনি যদি এটিকে নো-কোড ইনভেন্টরি অ্যাপ হিসাবে তৈরি করছেন, AppMaster (appmaster.io) একটি অপশন যা ওয়ার্কফ্লো-র সঙ্গে মানানসই: SKU ও সাপ্লায়ার ডাটাবেসে মডেল করুন, মিন/ম্যাক্স লজিক ভিজ্যুয়াল প্রসেসে রাখুন, এবং স্টাফ রিভিউ ও অনুমোদনের আগে গ্রুপড ড্রাফট অর্ডার জেনারেট করুন।
প্রশ্নোত্তর
একটি মিন/ম্যাক্স সিস্টেম প্রতিটি SKU-র জন্য দুইটি স্তর সংরক্ষণ করে: একটি সর্বনিম্ন যা আপনি নিচে দেখতে চান না, এবং একটি সর্বোচ্চ যা আপনি পূর্ণ করে রাখতে চান। যখন অন-হ্যান্ড সর্বনিম্নে বা তার নিচে পড়ে, অ্যাপটি স্টককে আবার লক্ষ্য স্তরে ফিরিয়ে আনতে একটি পরিমাণ সাজেশন করে।
একটি স্পষ্ট নিয়ম বেছে নিন এবং সেটার সঙ্গে একসঙ্গে চলুন: যখন অন-হ্যান্ড মিন (অথবা আপনি যদি reorder point ব্যবহার করেন তা) সমান বা তার নিচে থাকে, তখন সাজেশন ট্রিগার হবে। অন-হ্যান্ড যদি ওই ট্রিগার পয়েন্টের উপরে থাকে, তবে সাজেশন শূন্য হওয়া উচিত, যাতে ড্রাফট লিস্ট শান্ত এবং পর্যালোচনাযোগ্য থাকে।
সবচেয়ে সরল গণনা হচ্ছে suggested = max(0, max_level - on_hand), যখন আইটেমটি রিইঅর্ডারের যোগ্য হয়। এটি ব্যাখ্যা করা সহজ রাখে, কারণ আপনি কেবল একটি নির্দিষ্ট লক্ষ্য পর্যন্ত পূরণ করছেন।
হ্যাঁ — যদি আপনি “on order” নির্ভরযোগ্যভাবে ট্র্যাক করেন, তাহলে সেটাকে আপনার প্রয়োজনীয় পরিমাণ থেকে বিয়োগ করুন যেন দিইকল-দুইবার অর্ডার না হয়। একটি সাধারণ পদ্ধতি হলো ব্যবহারযোগ্য স্টককে on_hand + on_order হিসেবে ধরা এবং ওই সংখ্যার থেকে রিফিল পরিমাণ হিসাব করা।
সাজেশনগুলোকে আপনি বাস্তবে কী কিনতে পারবেন তা অনুযায়ী রাউন্ড করুন এবং সমন্বিত সংখ্যাটি স্পষ্টভাবে দেখান। উদাহরণস্বরূপ, যদি সাপ্লায়ার কেসে 12 বিক্রি করে এবং গণনা দেখায় 32 প্রয়োজন, আপনার পলিসি যদি স্টকআউট এড়াতে উপরে রাউন্ড করা হয় তবে সেটি 36 হবে।
অনুমান করবেন না এবং চুপ করে ভুল অর্ডার তৈরি করবেন না। যদি মিন বা ম্যাক্স অনুপস্থিত থাকে, সাজেশনকে 0 সেট করুন এবং SKU-টিকে “needs setup” হিসেবে ফ্ল্যাগ করুন যাতে কেউ ডাটা ঠিক করে নেয়।
নেগেটিভ অন-হ্যান্ডকে একটি সতর্কবার্তা হিসেবে দেখুন, সাধারণ ইনপুট নয়। আপনি এখনও সাজেশন হিসাব করতে পারেন যাতে বায়ার ঝুঁকিটা দেখে, কিন্তু UI-তে এটি হাইলাইট করা উচিত যে এই কাউন্টটি সম্ভবত পুনঃগণনা বা ট্রানজেকশন ক্লিনআপ দরকার।
আপনার স্টক যদি একাধিক জায়গায় থাকে (ব্যাক রুম, শেলফ, একাধিক দোকান), তাহলে আলাদাভাবে ট্র্যাক করুন; নাহলে আপনার সাজেশনগুলো সঠিক হবে না। কমপক্ষে শেলফ ও ব্যাক রুম আলাদা রাখুন, পরে স্টোর-বরি বা গুদাম লোকেশন যোগ করুন।
ড্রাফট জেনারেট করার সময় ব্যবহৃত ইনপুটগুলোর স্ন্যাপশট সংরক্ষণ করুন — অন-হ্যান্ড ভ্যালু, সেই মুহূর্তের মিন/ম্যাক্স এবং অনুমোদন করার আগে করা এডিটগুলো। এতে “কেন আমরা এটা অর্ডার করেছি?” জবাব দেওয়া সহজ হয় এবং সিস্টেমে মানুষের বিশ্বাস বাড়ে।
ডিফল্টভাবে ক্রয়কে মানব-অনুমোদিত রাখুন: একটি ড্রাফট অর্ডার জেনারেট করুন, কেউ পরিমাণ এডিট করবে, তারপর অনুমোদন করে ফাইনাল তালিকাটি এক্সপোর্ট বা কপি করুন। আপনি AppMaster-এ SKU ও ড্রাফট অর্ডারগুলো ডাটাবেসে মডেল করে এবং মিন/ম্যাক্স লজিককে একটি ভিজ্যুয়াল বিজনেস প্রসেসে রেখে এই ওয়ার্কফ্লো তৈরি করতে পারেন।


