Laravel کے ساتھ ملٹی وینڈر مارکیٹ پلیس کیسے بنائیں
مارکیٹ پلیس بنانا دراصل ڈیٹا کا مسئلہ ہے۔
زیادہ تر ڈویلپرز سمجھتے ہیں کہ مشکل حصہ سیلر ڈیش بورڈ ہے۔ ایسا نہیں ہے۔ اصل چیلنج ملٹی ٹیننسی (multi-tenancy) ہے۔ آپ کو اس بات کو یقینی بنانا ہوگا کہ ہر کوئری (query) ایک ہی سوال کا جواب دے: یہ ڈیٹا کس کا ہے؟
اگر آپ ایک عام دکان بناتے ہیں اور بعد میں اس میں وینڈرز شامل کرنے کی کوشش کرتے ہیں، تو آپ کو اسے دوبارہ لکھنے (rewrite) کا سامنا کرنا پڑے گا۔ آپ کو ہر ماڈل، ہر کوئری اور ہر کارٹ میں وینڈر آئی ڈی (vendor ID) شامل کرنی ہوگی۔ اگر آپ ایک فلٹر بھی بھول گئے، تو ایک سیلر دوسرے سیلر کے آرڈرز دیکھ سکے گا۔ یہ ڈیٹا لیک (data leak) ہے۔
آپ کے پاس تین انتخاب ہیں:
- خود بنائیں: آپ کو ہر اسکوپنگ کلاز (scoping clause) خود لکھنی ہوگی۔ یہ مہنگا اور پرخطر ہے۔
- ایڈ آنز کے ساتھ سنگل ٹیننٹ دکان استعمال کریں: آپ وینڈر کالمز کو ایسے اسکیما (schema) پر لگاتے ہیں جو ان کے لیے ڈیزائن نہیں کیا گیا۔ اس سے ڈیٹا کی علیحدگی (isolation) کمزور رہتی ہے۔
- ملٹی ٹیننٹ فاؤنڈیشن استعمال کریں: Aimeos جیسا پیکج استعمال کریں جو پہلے دن سے ہی ڈیٹا ماڈل میں علیحدگی (isolation) کو شامل کر دیتا ہے۔
Aimeos کا استعمال کرتے ہوئے ایک عام دکان کو مارکیٹ پلیس میں تبدیل کرنے کا طریقہ یہ ہے:
1. فاؤنڈیشن انسٹال کریں
شروع کرنے کے لیے یہ کمانڈ چلائیں:
composer create-project aimeos/aimeos myshop
2. ملٹی وینڈر موڈ فعال کریں
آپ کو اپنا ڈیٹا بیس دوبارہ لکھنے کی ضرورت نہیں ہے۔ بس اپنی .env فائل میں ایک لائن تبدیل کریں:
SHOP_MULTISHOP=true
یہ فلیگ خود بخود ہر روٹ (route)، API اور ایڈمن پینل کو ایک مخصوص سائٹ تک محدود کر دیتا ہے۔ سسٹم آپ کے لیے ڈیٹا کی علیحدگی کا کام خود سنبھال لیتا ہے۔
3. سیلف سروس آن بورڈنگ فعال کریں
وسعت دینے کے لیے، وینڈرز کو خود سائن اپ کرنے دیں۔ اپنی .env میں یہ شامل کریں:
SHOP_REGISTRATION=true
نئے سیلرز کو صرف اپنے کیٹلاگ، آرڈرز اور کسٹمرز تک رسائی حاصل ہوتی ہے۔ وہ کچھ اور نہیں دیکھ سکتے۔
یہ کیوں کام کرتا ہے:
Aimeos ہر چیز کو "سائٹ" (site) کے گرد ترتیب دیتا ہے۔ ہر پروڈکٹ، قیمت اور آرڈر کے ساتھ سائٹ آئی ڈی (site ID) ہوتی ہے۔ ڈیٹا لیئر اسے خود بخود فلٹر کر دیتی ہے۔ آپ کو where site_id = ? لکھنے کی ضرورت نہیں ہے کیونکہ سسٹم یہ آپ کے لیے خود کرتا ہے۔
یہ طریقہ کار تین بڑے مسائل حل کرتا ہے:
- سیکیورٹی: ڈیٹا کی علیحدگی (isolation) ڈیٹا بیس کی ایک خصوصیت ہے، نہ کہ کوڈ کا کوئی ایسا حصہ جسے آپ بھول سکیں۔
- پیچیدگی: وینڈرز آپ کے اسکیما (schema) کو تبدیل کیے بغیر سبسکرپشنز یا بنڈلز جیسی پیچیدہ مصنوعات کا انتظام کر سکتے ہیں۔
- ادائیگیوں: آپ ادائیگیوں کو فوری طور پر تقسیم کرنے کے لیے Stripe جیسی ایکسٹینشنز استعمال کر سکتے ہیں۔ پلیٹ فارم کمیشن لیتا ہے اور باقی رقم سیلر کو مل جاتی ہے۔
پلمبنگ بنانا بند کریں۔ اپنی مارکیٹ پلیس بنانا شروع کریں۔
ماخذ: https://dev.to/aimeos/how-to-implement-a-multi-vendor-e-commerce-marketplace-397a
