سلام دوستان. امیدوارم حالتون عالی باشه.
دو تا سوال دارم در مورد بحث ارسال کالا.
فرقی نمیکنه که شما چه زبانی بلدید. منطق کار رو میخوام بدونم. به همین دلیل ممنون میشم هر نظری داشتید بگید. میتونه کمک کننده باشه.
من یه فروشگاه دارم طراحی میکنم.
یه مدل order دارم که اطلاعات سفارش توش ثبت میشه.
یه مدل payment دارم که اطلاعات پرداخت توش ثبت میشه.
طبق تحقیقاتی که کردم انگار باید یه مدل بک اندی دیگه هم برای ارسال کالا ایجاد کرد. مثلا میتونیم اسمش رو بزاریم shipment یا tracking
حالا سوالم اینه چرا باید این مدل شیپمنت رو داشته باشیم؟
چون اگه لیست محصولات رو اگه بخوایم، توی مدل اوردر هست.
اگه زمان تحویل رو بخوایم، اونم توی مدل اوردر هست.
وضعیت ارسال کالا هم که توی مدل اوردر هست ( در حال تامین، در حال بسته بندی، در حال ارسال، تحویل شده، مرجوع شده و لغو شده) .
فقط میمونه کد مرسوله که اونم میشه به مدل اوردر اضافهش کرد.
با این اوصاف چرا باید یه مدل برای برای بحث حمل و نقل داشته باشیم؟
اگه باید داشته باشیم، چه آیتم هایی باید داشته باشه؟
و سوال دومم هم اینه که باید چه زمانی ایجاد بشه؟ بلافاصله بعد از پرداخت موفق به صورت اتوماتیک باید ایجاد بشه یا اینکه مثلا ادمین باید بیاد سفارش رو ببینه، کالاهاش رو تامین کنه، بسته بندی بکنه بعد که رفت مثلا بسته رو تحویل پست بده، باید بیاد توی سایت و ایجادش بکنه?
برای سوال اول، موضوع ایجاد مدل جداگانهای برای shipment یا tracking به این دلیل هست که ممکنه در آینده به دلایلی نیاز داشته باشی که مدیریت ارسال کالا جدا از اطلاعات سفارش باشه. به طور مثال، ممکنه در پروژههای پیچیدهتر نیاز به ارتباطات بیشتری با شرکتهای حملونقل یا نیاز به پیگیری وضعیت دقیقتر ارسال کالا داشته باشی. همینطور ممکنه برای هر محصول در سفارش، ارسال از چندین انبار یا چندین روش ارسال متفاوت وجود داشته باشه. این وضعیتها میتونه باعث پیچیدگی بشه و جدا کردن این مدل به تو کمک میکنه که راحتتر بتونی مدیریت کنی.
علاوه بر این، اگر هر مشتری بتواند برای هر سفارش کد مرسولهای دریافت کند که در سامانههای خارجی قابل پیگیری باشد، داشتن مدل جداگانه برای "shipment" به تو این امکان رو میده که به راحتی این کد رو ذخیره و مدیریت کنی. در این مدل، ممکنه اطلاعاتی همچون تاریخ ارسال، شرکت حمل و نقل، زمان تخمینی تحویل، و حتی وضعیت دقیق ارسال هم ذخیره بشه.
اما برای سوال دوم، این بستگی به فرآیند کاری فروشگاه و نحوه مدیریت سفارشها داره. اگر پروسههای ارسال کالا به صورت دستی انجام میشه و نیاز به تایید و کنترل از طرف ادمین داری، بهتره که سفارشات اول توسط ادمین تایید بشه. اما اگر میخواهی پروسه خودکار و بهینه باشه، میتونی بعد از پرداخت موفق و تایید اطلاعات پرداخت، به صورت اتوماتیک مدل shipment رو ایجاد کنی و این کار رو با فیلدهایی مثل وضعیت کالا (در حال تامین، بسته بندی، ارسال و ...) به روز کنی.
در هر صورت، پیشنهاد میکنم که اگر سیستم شما ساده است و از پیچیدگیهای زیاد برخوردار نیست، شروع با یک مدل سادهی shipment برای ذخیره کد مرسوله کافی باشه، ولی در آینده وقتی که فروشگاه بزرگتر شد و نیاز به مقیاسپذیری بیشتری بود، میتونی مدلها رو جداگانه گسترش بدی و پیچیدگیهای بیشتری بهش اضافه کنی.
همه اینایی که گفتید رو می شه داخل همین مدل اوردر درستش کرد. اون جدول شیپینگ بیشتر برای نگهداری روش های ارسال و هزینه های ارسال هست . مثلا پست پیشتاز و ویژه و پیک موتوری و ....
ببینید در نگاه اول مشخصه که ایجاد مدل حمل و نقل به منظور مرتب تر و دسترس پذیر تر شدن روش های حمل و نقل شماست.
اگر شما همیشه از یک روش حمل و نقل استفاده میکنید نیازی به این کار نیست.
اما اگر در آینده قراره مدل های حمل و نقل خاصی اضافه کنید میتونید این مدل رو ایجاد کنید.
حالا یکم تخصصی تر بخوایم نگاه کنیم:
شما اگر بخواید یک روش حمل و نقل جدید اضافه کنید با جزییات زیاد مثل ارسال از این منطقه تا این منطقه، n تومان (طبق هر فرمولی که مد نظر هست) یا حتی بسته به مقیاس پروژه میتونه کوئری های دریافت سفارشات با یک روش خاص حمل و نقل ساده تر میشه.
برای سوال اول، موضوع ایجاد مدل جداگانهای برای shipment یا tracking به این دلیل هست که ممکنه در آینده به دلایلی نیاز داشته باشی که مدیریت ارسال کالا جدا از اطلاعات سفارش باشه. به طور مثال، ممکنه در پروژههای پیچیدهتر نیاز به ارتباطات بیشتری با شرکتهای حملونقل یا نیاز به پیگیری وضعیت دقیقتر ارسال کالا داشته باشی. همینطور ممکنه برای هر محصول در سفارش، ارسال از چندین انبار یا چندین روش ارسال متفاوت وجود داشته باشه. این وضعیتها میتونه باعث پیچیدگی بشه و جدا کردن این مدل به تو کمک میکنه که راحتتر بتونی مدیریت کنی.
علاوه بر این، اگر هر مشتری بتواند برای هر سفارش کد مرسولهای دریافت کند که در سامانههای خارجی قابل پیگیری باشد، داشتن مدل جداگانه برای "shipment" به تو این امکان رو میده که به راحتی این کد رو ذخیره و مدیریت کنی. در این مدل، ممکنه اطلاعاتی همچون تاریخ ارسال، شرکت حمل و نقل، زمان تخمینی تحویل، و حتی وضعیت دقیق ارسال هم ذخیره بشه.
اما برای سوال دوم، این بستگی به فرآیند کاری فروشگاه و نحوه مدیریت سفارشها داره. اگر پروسههای ارسال کالا به صورت دستی انجام میشه و نیاز به تایید و کنترل از طرف ادمین داری، بهتره که سفارشات اول توسط ادمین تایید بشه. اما اگر میخواهی پروسه خودکار و بهینه باشه، میتونی بعد از پرداخت موفق و تایید اطلاعات پرداخت، به صورت اتوماتیک مدل shipment رو ایجاد کنی و این کار رو با فیلدهایی مثل وضعیت کالا (در حال تامین، بسته بندی، ارسال و ...) به روز کنی.
در هر صورت، پیشنهاد میکنم که اگر سیستم شما ساده است و از پیچیدگیهای زیاد برخوردار نیست، شروع با یک مدل سادهی shipment برای ذخیره کد مرسوله کافی باشه، ولی در آینده وقتی که فروشگاه بزرگتر شد و نیاز به مقیاسپذیری بیشتری بود، میتونی مدلها رو جداگانه گسترش بدی و پیچیدگیهای بیشتری بهش اضافه کنی.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟