ساخت برنامه مدیریت سفارشها با پایتون: پروژهای خلاقانه و کاربردی
در دنیای تجارت، مدیریت صحیح سفارشها یکی از ارکان اصلی موفقیت است. یک سیستم مدیریت سفارش (Order Management System – OMS) کارآمد میتواند به کسبوکارها کمک کند تا فرآیند ثبت، پیگیری، و تکمیل سفارشها را به طور موثرتری انجام دهند. در این مقاله، به آموزش گام به گام ساخت یک برنامه مدیریت سفارش ساده با استفاده از زبان برنامهنویسی پایتون میپردازیم. این پروژه، یک تمرین عملی عالی برای تقویت مهارتهای برنامهنویسی و آشنایی با مفاهیم پایهای توسعه نرمافزار است.
پیشنیازها
برای شروع این پروژه، به موارد زیر نیاز دارید:
- نصب پایتون: اطمینان حاصل کنید که پایتون بر روی سیستم شما نصب شده است.
- آشنایی با مفاهیم پایهای پایتون: متغیرها، انواع داده، حلقهها، شرطها، توابع، و لیستها.
- یک ویرایشگر کد: میتوانید از ویرایشگرهای کد مختلفی مانند VS Code، PyCharm، یا Sublime Text استفاده کنید.
طراحی سیستم
قبل از شروع کدنویسی، بهتر است یک طرح کلی از سیستم خود داشته باشیم. برنامه ما باید قابلیتهای زیر را داشته باشد:
- ثبت سفارش جدید: امکان وارد کردن اطلاعات سفارش (نام مشتری، شماره تلفن، آدرس، لیست محصولات، قیمت کل).
- نمایش لیست سفارشها: نمایش تمام سفارشهای ثبت شده به همراه جزئیات آنها.
- جستجوی سفارش: امکان جستجوی سفارش بر اساس شماره سفارش یا نام مشتری.
- تغییر وضعیت سفارش: امکان تغییر وضعیت سفارش (در حال پردازش، ارسال شده، تکمیل شده).
- حذف سفارش: امکان حذف سفارشهای غیرضروری.
پیادهسازی سیستم
برای پیادهسازی سیستم، از یک لیست برای ذخیره اطلاعات سفارشها استفاده میکنیم. هر سفارش به صورت یک دیکشنری (dictionary) ذخیره میشود.
تعریف کلاس Order
برای سازماندهی بهتر کد، یک کلاس به نام Order تعریف میکنیم که اطلاعات مربوط به هر سفارش را در خود نگه میدارد.
class Order:
def __init__(self, order_id, customer_name, phone_number, address, products, total_price, status="در حال پردازش"):
self.order_id = order_id
self.customer_name = customer_name
self.phone_number = phone_number
self.address = address
self.products = products
self.total_price = total_price
self.status = status
def __str__(self):
return f"شماره سفارش: {self.order_id}nنام مشتری: {self.customer_name}nشماره تلفن: {self.phone_number}nآدرس: {self.address}nمحصولات: {', '.join(self.products)}nقیمت کل: {self.total_price}nوضعیت: {self.status}"
تابع ثبت سفارش
این تابع اطلاعات سفارش جدید را از کاربر دریافت کرده و یک شیء از کلاس Order ایجاد میکند و آن را به لیست سفارشها اضافه میکند.
def add_order(orders):
order_id = input("شماره سفارش را وارد کنید: ")
customer_name = input("نام مشتری را وارد کنید: ")
phone_number = input("شماره تلفن را وارد کنید: ")
address = input("آدرس را وارد کنید: ")
products = input("لیست محصولات را با کاما جدا کنید: ").split(",")
total_price = float(input("قیمت کل را وارد کنید: "))
order = Order(order_id, customer_name, phone_number, address, products, total_price)
orders.append(order)
print("سفارش با موفقیت ثبت شد.")
تابع نمایش لیست سفارشها
این تابع تمام سفارشهای موجود در لیست را نمایش میدهد.
def display_orders(orders):
if not orders:
print("هیچ سفارشی ثبت نشده است.")
return
for order in orders:
print(order)
print("-" * 20)
تابع جستجوی سفارش
این تابع امکان جستجوی سفارش بر اساس شماره سفارش یا نام مشتری را فراهم میکند.
def search_order(orders):
search_term = input("شماره سفارش یا نام مشتری را برای جستجو وارد کنید: ")
results = []
for order in orders:
if search_term in order.order_id or search_term in order.customer_name:
results.append(order)
if not results:
print("سفارشی با این مشخصات یافت نشد.")
return
for order in results:
print(order)
print("-" * 20)
تابع تغییر وضعیت سفارش
این تابع امکان تغییر وضعیت سفارش را فراهم میکند.
def update_order_status(orders):
order_id = input("شماره سفارشی که میخواهید وضعیت آن را تغییر دهید وارد کنید: ")
new_status = input("وضعیت جدید را وارد کنید (در حال پردازش، ارسال شده، تکمیل شده): ")
for order in orders:
if order.order_id == order_id:
order.status = new_status
print("وضعیت سفارش با موفقیت تغییر یافت.")
return
print("سفارشی با این شماره یافت نشد.")
تابع حذف سفارش
این تابع امکان حذف سفارش را فراهم میکند.
def delete_order(orders):
order_id = input("شماره سفارشی که میخواهید حذف کنید وارد کنید: ")
for i, order in enumerate(orders):
if order.order_id == order_id:
del orders[i]
print("سفارش با موفقیت حذف شد.")
return
print("سفارشی با این شماره یافت نشد.")
حلقه اصلی برنامه
این حلقه اصلی برنامه است که منوی اصلی را نمایش میدهد و بر اساس انتخاب کاربر، توابع مربوطه را فراخوانی میکند.
def main():
orders = []
while True:
print("nمنوی اصلی:")
print("1. ثبت سفارش جدید")
print("2. نمایش لیست سفارشها")
print("3. جستجوی سفارش")
print("4. تغییر وضعیت سفارش")
print("5. حذف سفارش")
print("6. خروج")
choice = input("انتخاب خود را وارد کنید: ")
if choice == "1":
add_order(orders)
elif choice == "2":
display_orders(orders)
elif choice == "3":
search_order(orders)
elif choice == "4":
update_order_status(orders)
elif choice == "5":
delete_order(orders)
elif choice == "6":
print("خداحافظ!")
break
else:
print("انتخاب نامعتبر است. لطفاً دوباره تلاش کنید.")
if __name__ == "__main__":
main()
توسعههای آتی
این برنامه یک نسخه ساده از یک سیستم مدیریت سفارش است. برای بهبود و توسعه آن، میتوانید قابلیتهای زیر را اضافه کنید:
- ذخیره اطلاعات در فایل: به جای ذخیره اطلاعات در حافظه، میتوانید آنها را در یک فایل (مانند CSV یا JSON) ذخیره کنید تا پس از بستن برنامه، اطلاعات از بین نروند.
- استفاده از پایگاه داده: برای ذخیره و مدیریت اطلاعات به صورت حرفهایتر، میتوانید از یک پایگاه داده (مانند SQLite، MySQL، یا PostgreSQL) استفاده کنید.
- رابط کاربری گرافیکی (GUI): به جای رابط کاربری متنی، میتوانید از یک رابط کاربری گرافیکی (مانند Tkinter، PyQt، یا Kivy) استفاده کنید تا برنامه را کاربرپسندتر کنید.
- گزارشگیری: میتوانید گزارشهای مختلفی (مانند گزارش فروش، گزارش پرفروشترین محصولات، گزارش وضعیت سفارشها) ایجاد کنید تا به کسبوکارها در تصمیمگیری کمک کنید.
- یکپارچهسازی با سیستمهای دیگر: میتوانید برنامه را با سیستمهای دیگر (مانند سیستم انبارداری، سیستم حسابداری، یا سیستم حمل و نقل) یکپارچه کنید تا فرآیند مدیریت سفارش را به طور کامل خودکار کنید.
نتیجهگیری
در این مقاله، به آموزش ساخت یک برنامه مدیریت سفارش ساده با استفاده از زبان برنامهنویسی پایتون پرداختیم. این پروژه، یک تمرین عملی عالی برای تقویت مهارتهای برنامهنویسی و آشنایی با مفاهیم پایهای توسعه نرمافزار است. با استفاده از این پایه، میتوانید برنامه را توسعه داده و قابلیتهای بیشتری به آن اضافه کنید تا یک سیستم مدیریت سفارش کامل و کارآمد داشته باشید.

بدون دیدگاه