Drupal Commerce 2 — это мощная платформа электронной коммерции, которая обеспечивает широкие возможности для настройки мультимагазинов. Если вам необходимо настроить магазин, где каждый продавец будет получать оплату на свою карту, вам потребуется выполнять дополнительные настройки.

Настраиваем мультимагазин в Drupal Commerce 2

Первым шагом для настройки мультимагазина в Drupal Commerce 2 является установка и активация модуля Commerce Marketplace. Этот модуль добавляет функциональность мультимагазина, позволяя продавцам создавать свои магазины и управлять своими товарами.

composer require drupal/commerce_marketplace
drush en commerce_marketplace

После активации модуля Commerce Marketplace вы можете создать магазин для каждого продавца. Для этого зайдите в раздел «Управление» → «Marketplace» и создайте новый магазин, указав все необходимые данные. После создания магазина продавец сможет добавлять и управлять своими товарами через свой личный кабинет.

Оплата каждому продавцу на его карту

Для настройки оплаты каждому продавцу на его карту вам потребуется модуль Commerce Stripe. Этот модуль интегрирует платежный шлюз Stripe и позволяет настраивать оплату на разные карты для каждого продавца мультимагазина.

composer require drupal/commerce_stripe
drush en commerce_stripe

После активации модуля Commerce Stripe вам необходимо добавить метод оплаты с использованием платежного шлюза Stripe. Для этого перейдите в раздел «Управление» → «Методы платы» и создайте новый метод платы с типом «Stripe». Затем настройте метод платы, указав ключи API Stripe для соединения с вашим аккаунтом.

Теперь вы можете настроить оплату для каждого продавца отдельно. При создании магазина для каждого продавца в разделе «Управление» → «Marketplace» найдите вкладку «Настройки магазина» и добавьте новую настройку оплаты. В настройках оплаты укажите информацию о карте продавца, а также комиссию, которую вы хотите взимать с каждой продажи.

Примеры программного кода в Drupal Commerce 2

Пример программного кода для создания магазина продавца:

function my_module_commerce_marketplace_create_shop_access(\Drupal\commerce_marketplace\Entity\StoreInterface $store) {
  $roles = ['seller', 'custom_role']; 
  $store_owner = $store->getOwner();
  foreach ($roles as $role) {
    if (!$store_owner->hasRole($role)) {
      $store_owner->addRole($role);
    }
  }
}

Пример программного кода для настройки оплаты продавцу:

function my_module_commerce_marketplace_seller_order_splits_saved(\Drupal\commerce_marketplace\Entity\SellerOrder $orderSplit) {
  $seller_payment = $orderSplit->get('seller_payment')->get(0);
  $seller = $seller_payment->getSellingEntity();
  $seller_commission = $seller_payment->get('seller_commission')->value;
  
  // Код для отправки оплаты на карту продавца
  // ...
}

Вопросы и ответы

Как настроить отправку уведомления о заказе продавцу в Drupal Commerce 2?

Для настройки отправки уведомления о заказе продавцу в Drupal Commerce 2 вы можете использовать модуль Commerce Notifications. Этот модуль позволяет создать правило для отправки сообщения продавцам при создании нового заказа.

Как добавить возможность продавцам редактировать свой магазин в Drupal Commerce 2?

Для добавления возможности редактирования магазина продавцом в Drupal Commerce 2 вам потребуется настроить соответствующие разрешения для ролей. Проверьте, что у роли продавца есть разрешение «Редактировать собственный магазин» в разделе «Права доступа».

Как настроить доставку для каждого продавца в мультимагазине Drupal Commerce 2?

Для настройки доставки для каждого продавца в мультимагазине Drupal Commerce 2 вы можете использовать модуль Commerce Shipping. Этот модуль позволяет создавать правила доставки для каждого продавца отдельно. В разделе «Управление» → «Методы доставки» создайте новый метод доставки и настройте его для каждого продавца отдельно.