You are here

protected function RecurringOrderManager::createOrder in Commerce Recurring Framework 8

Creates a recurring order for the given subscription.

Parameters

\Drupal\commerce_recurring\Entity\SubscriptionInterface $subscription: The subscription.

\Drupal\commerce_recurring\BillingPeriod $billing_period: The billing period.

Return value

\Drupal\commerce_order\Entity\OrderInterface The created recurring order, unsaved.

3 calls to RecurringOrderManager::createOrder()
RecurringOrderManager::renewOrder in src/RecurringOrderManager.php
Renews the given recurring order.
RecurringOrderManager::startRecurring in src/RecurringOrderManager.php
Starts the recurring process for the given subscription.
RecurringOrderManager::startTrial in src/RecurringOrderManager.php
Starts the trial for the given subscription.

File

src/RecurringOrderManager.php, line 245

Class

RecurringOrderManager
Provides the default recurring order manager.

Namespace

Drupal\commerce_recurring

Code

protected function createOrder(SubscriptionInterface $subscription, BillingPeriod $billing_period) {
  $payment_method = $subscription
    ->getPaymentMethod();

  /** @var \Drupal\commerce_order\Entity\OrderInterface $order */
  $order = $this->entityTypeManager
    ->getStorage('commerce_order')
    ->create([
    'type' => 'recurring',
    'store_id' => $subscription
      ->getStoreId(),
    'uid' => $subscription
      ->getCustomerId(),
    'billing_profile' => $payment_method ? $payment_method
      ->getBillingProfile() : NULL,
    'payment_method' => $payment_method,
    'payment_gateway' => $payment_method ? $payment_method
      ->getPaymentGatewayId() : NULL,
    'billing_period' => $billing_period,
    'billing_schedule' => $subscription
      ->getBillingSchedule(),
  ]);
  return $order;
}