Laravel ਨਾਲ ਮਲਟੀ-ਵੈਂਡਰ ਮਾਰਕੀਟਪਲੇਸ ਕਿਵੇਂ ਬਣਾਇਆ ਜਾਵੇ
ਮਾਰਕੀਟਪਲੇਸ ਬਣਾਉਣਾ ਇੱਕ ਡਾਟਾ ਦੀ ਸਮੱਸਿਆ ਹੈ।
ਜ਼ਿਆਦਾਤਰ ਡਿਵੈਲਪਰ ਸੋਚਦੇ ਹਨ ਕਿ ਸਭ ਤੋਂ ਮੁਸ਼ਕਲ ਹਿੱਸਾ ਸੈਲਰ ਡੈਸ਼ਬੋਰਡ ਹੈ। ਅਜਿਹਾ ਨਹੀਂ ਹੈ। ਅਸਲ ਚੁਣੌਤੀ ਮਲਟੀ-ਟੈਨੈਂਸੀ (multi-tenancy) ਹੈ। ਤੁਹਾਨੂੰ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਹਰ ਕੁਐਰੀ (query) ਇੱਕ ਹੀ ਸਵਾਲ ਦਾ ਜਵਾਬ ਦੇਵੇ: ਇਹ ਡਾਟਾ ਕਿਸ ਦਾ ਹੈ?
ਜੇਕਰ ਤੁਸੀਂ ਇੱਕ ਸਟੈਂਡਰਡ ਸ਼ਾਪ ਬਣਾਉਂਦੇ ਹੋ ਅਤੇ ਬਾਅਦ ਵਿੱਚ ਵੈਂਡਰਾਂ ਨੂੰ ਜੋੜਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਨੂੰ ਸਭ ਕੁਝ ਦੁਬਾਰਾ ਲਿਖਣਾ ਪਵੇਗਾ। ਤੁਹਾਨੂੰ ਹਰ ਮਾਡਲ, ਹਰ ਕੁਐਰੀ ਅਤੇ ਹਰ ਕਾਰਟ ਵਿੱਚ ਵੈਂਡਰ ID ਨੂੰ ਜੋੜਨਾ ਪਵੇਗਾ। ਜੇਕਰ ਤੁਸੀਂ ਇੱਕ ਫਿਲਟਰ ਵੀ ਭੁੱਲ ਗਏ, ਤਾਂ ਇੱਕ ਸੈਲਰ ਦੂਜੇ ਸੈਲਰ ਦੇ ਆਰਡਰ ਦੇਖ ਸਕਦਾ ਹੈ। ਇਹ ਡਾਟਾ ਲੀਕ (data leak) ਹੈ।
ਤੁਹਾਡੇ ਕੋਲ ਤਿੰਨ ਵਿਕਲਪ ਹਨ:
- Build it yourself: ਤੁਸੀਂ ਹਰ ਸਕੋਪਿੰਗ ਕਲਾਜ਼ (scoping clause) ਲਿਖਦੇ ਹੋ। ਇਹ ਮਹਿੰਗਾ ਅਤੇ ਜੋਖਮ ਭਰਿਆ ਹੈ।
- Use a single-tenant shop with add-ons: ਤੁਸੀਂ ਵੈਂਡਰ ਕਾਲਮਾਂ ਨੂੰ ਅਜਿਹੇ ਸਕੀਮਾ (schema) 'ਤੇ ਲਗਾਉਂਦੇ ਹੋ ਜੋ ਉਹਨਾਂ ਲਈ ਨਹੀਂ ਬਣਾਇਆ ਗਿਆ ਸੀ। ਆਇਸੋਲੇਸ਼ਨ ਕਮਜ਼ੋਰ ਰਹਿੰਦੀ ਹੈ।
- Use a multi-tenant foundation: Aimeos ਵਰਗੇ ਪੈਕੇਜ ਦੀ ਵਰਤੋਂ ਕਰੋ ਜੋ ਪਹਿਲੇ ਦਿਨ ਤੋਂ ਹੀ ਡਾਟਾ ਮਾਡਲ ਵਿੱਚ ਆਇਸੋਲੇਸ਼ਨ ਬਣਾਉਂਦਾ ਹੈ।
ਇੱਥੇ ਦੱਸਿਆ ਗਿਆ ਹੈ ਕਿ Aimeos ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕ ਸਿੰਗਲ ਸ਼ਾਪ ਨੂੰ ਮਾਰਕੀਟਪਲੇਸ ਵਿੱਚ ਕਿਵੇਂ ਬਦਲਿਆ ਜਾਵੇ:
Install the foundation ਸ਼ੁਰੂ ਕਰਨ ਲਈ ਇਹ ਕਮਾਂਡ ਚਲਾਓ:
composer create-project aimeos/aimeos myshopEnable multi-vendor mode ਤੁਹਾਨੂੰ ਆਪਣਾ ਡਾਟਾਬੇਸ ਦੁਬਾਰਾ ਲਿਖਣ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ। ਬੱਸ ਆਪਣੀ .env ਫਾਈਲ ਵਿੱਚ ਇੱਕ ਲਾਈਨ ਬਦਲੋ:
SHOP_MULTISHOP=true
ਇਹ ਫਲੈਗ ਆਪਣੇ ਆਪ ਹਰ ਰੂਟ, API ਅਤੇ ਐਡਮਿਨ ਪੈਨਲ ਨੂੰ ਇੱਕ ਖਾਸ ਸਾਈਟ ਤੱਕ ਸੀਮਤ (scope) ਕਰ ਦਿੰਦਾ ਹੈ। ਸਿਸਟਮ ਤੁਹਾ
