Перейти к содержанию
Форум Радиодар

Расширение Маркетплейс и b2b & b2c для Aimeos (Market places and complex B2B/B2C requirements)


omega80

Рекомендуемые сообщения

Расширение для Aimeos позволяющее сделать из интернет магазина полноценный маркетплейс с различными правилами и алгоритмами.

image.png

Название: Market places and complex B2B/B2C requirements

Цена: 1499 Евро

Файл с описанием и инструкцией: 

README.md

Ссылка на комментарий
Поделиться на другие сайты

Инструкция и описание модуля:

# Aimeos site tree extension

## Basic usage

The extension replaces the locale site handling in the data management layer
and in the administration interface. It enables you to add sub-sites to each
top level site ("default" is the standard one). Each sub-site can have own
sub-sites too, so you can create a tree of sites with unlimited width and depth.

By default, sub-sites inherit data from their parent sites, e.g.

```
|- default
 |- site-lvl-1
  |- site-lvl-2
```

the site "site-lvl-2" would inherit products and their data created in the sites
"default" and "site-lvl-1". This does work in all data domains but e.g. not in
the order domain where it makes no sense.

## Setup

Please make sure you execute the Aimeos database setup script afterwards to the
necessary tables will be created:

Laravel: php artisan aimeos:setup
Symfony: php bin/console aimeos:setup
TYPO3: php vendor/bin/typo3 aimeos:setup

For updating prices and stock levels of selection products, you need to configure
a cron job that executes two cron jobs every 5 minutes:

Laravel: php artisan aimeos:jobs "price/update stock/update"
Symfony: php bin/console aimeos:jobs "price/update stock/update"
TYPO3: php vendor/bin/typo3 aimeos:jobs "price/update stock/update"

## Market place configuration

The simplest setup for a market place is to create one sub-site for each vendor
below the "default" site. These vendor sub-sites will inherit e.g. delivery and
payment services as well as all other data created in the "default" site so each
vendor site is a completely usable shop of its own.

To aggregate the products added by the vendors in their own sites into your
market place, you have to add this configuration for the frontend and the
scheduled jobs but not for the backend (admin interface):

`mshop/locale/manager/sitelevel = 3`

If you only want to aggregate the data into the market place site ("default")
and don't want data to be inherited from parent sites, you have to set the
configuration option to

`mshop/locale/manager/sitelevel = 2`

Other possible values are:

Inheritance only (standard value):

`mshop/locale/manager/sitelevel = 1`

No inheritance or aggregation:

`mshop/locale/manager/sitelevel = 0`

For Laravel, you need to add in your `./config/shop.php` in the "mshop" section e.g.:

```
'mshop' => [
    'locale' => [
        'manager' => [
            'sitelevel' => 3
        ]
    ]
]
```

For TYPO3, add in your project-specific Aimeos extension to `./Resources/Private/Config/mshop.php`:

```
<?php
return [
    'locale' => [
        'manager' => [
            'sitelevel' => 3
        ]
    ]
];
```

## Dropshipping configuration

To enable dropshipping, only this setting is required:

`mshop/order/manager/sitemode = 2`

For Laravel, you need to add in your `./config/shop.php` in the "mshop" section e.g.:

```
'mshop' => [
    'order' => [
        'manager' => [
            'sitemode' => 2
        ]
    ]
]
```

For TYPO3, add in your project-specific Aimeos extension to `./Resources/Private/Config/mshop.php`:

```
<?php
return [
    'order' => [
        'manager' => [
            'sitemode' => 2
        ]
    ]
];
```

Dropshipping does also work in market place mode if you use this configuration:

```
mshop/locale/manager/sitelevel = 3
mshop/order/manager/sitemode = 2
```

## B2B configuration

If you want to control in the administration interface if inherited categories
or products are used in the sub-site or not, you have to add these configuration
settings for the **frontend** configuration section:

```
'mshop' => [
    'index' => [
        'manager' => [
            'decorators' => [
                'local' => [
                    'Site' => 'Site',
                ],
            ],
        ],
    ],
    'product' => [
        'manager' => [
            'decorators' => [
                'local' => [
                    'Site' => 'Site',
                ],
            ],
            'submanagers' => [
                'type' => 'type',
                'property' => 'property',
                'lists' => 'lists',
                'site' => 'site',
            ],
        ],
    ],
],
```

Then, products aren't used until you explicitly allow them to be shown.

As last step, you need to rebuild the product index (in the mshop_index_* tables)
for your market place site ("default"). Due to the settings above, the index
will then contain the products from the vendor sites too.

**Caution:**
If you use the extension in combination with the ai-elastic Extension, enabling/disabling
inherited products isn't possible in that setup and you have to remove the "Site" decorator
the the "site" submanager from the configuration:

```
'mshop' => [
    'catalog' => [
        'manager' => [
            'decorators' => [
                'local' => [
                    'Site' => 'Site',
                ],
            ],
            'submanagers' => [
                'lists' => 'lists',
                'site' => 'site',
            ],
        ],
    ],
    'product' => [
        'manager' => [
            'submanagers' => [
                'type' => 'type',
                'property' => 'property',
                'lists' => 'lists',
            ],
        ],
    ],
],
```

## TYPO3

In TYPO3, you can additionally assign a single site to a page or page tree via Typoscript.

Frontend (Setup TS):
`plugin.tx_aimeos.settings.mshop.locale.site = <sitecode>`

Backend: (Page TS in "Resource" tab):
`mshop.locale.site = <sitecode>`

## Overwrite inherited items

By default, items from parent sites are inherited and merged with the items from the
current site. If the items from the current site should overwrite inherited items,
add this macro to the bootstrap process of your application:

```php
\Aimeos\MShop\Common\Item\Base::macro( 'listFilter', function( array $list ) {
    return map( $list )->groupBy( fn( $item ) => $item->getSiteId() )->krsort()->first( [] );
} );
```

You can also apply this macro only to specific domains, e.g. for all referenced prices:

```php
\Aimeos\MShop\Price\Item\Standard::macro( 'listFilter', function( array $list ) {
    return map( $list )->groupBy( fn( $item ) => $item->getSiteId() )->krsort()->first( [] );
} );
```

## Setup seller e-mails

When using the extension for marketplaces, you usually want to inform the sellers about
sold products on your marketplace. This can be acomplished by using the `EmailMarket`
service provider as base for all your delivery options. It will care about splitting
the ordered products by seller and send them in a CSV file to each seller by e-mail.

To use the `EmailMarket` service provider:
* Log into the admin backend
* Go to Setup > Services
* Add a new delivery service option
* Select `EmailMarket` in the provider field
* The default configuration doesn't need to be changed
* Save the delivery service option

Then, place a successful order with products from different vendors and add a cronjob
executed regularly (every 15 to 60 minutes, depending on the amount of orders)
using this command:

```bash
php /path/to/artisan aimeos:jobs order/email/delivery
```
 

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...

Возникла сложность в оформлении индивидуальной страницы продавца (поставщика) на его адресе сайта.

Вот корневой маркет:

image.png

 

Вот адрес сайта продавца:

image.png

По логотипу видно, что страница именно продавца, но общий шаблон не меняется.

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Статистика пользователей

    365
    Пользователей
    311
    Максимум онлайн
    GeorgeChiem
    Новый пользователь
    GeorgeChiem
    Регистрация
×
×
  • Создать...