diff --git a/src/RecurringOrderManager.php b/src/RecurringOrderManager.php index 826a416226d352a485a3bb5f1e8d47492539ed7b..4a55c9b4fa45a9601ebc1a686b7d83c47e90c8a8 100644 --- a/src/RecurringOrderManager.php +++ b/src/RecurringOrderManager.php @@ -349,10 +349,6 @@ class RecurringOrderManager implements RecurringOrderManagerInterface { $prorated_unit_price = $prorater->prorateOrderItem($order_item, $charge->getBillingPeriod(), $charge->getFullBillingPeriod()); $order_item->setUnitPrice($prorated_unit_price, TRUE); } - // Avoid setting unsaved order items for now, to avoid #3017259. - if ($order_item->isNew()) { - $order_item->save(); - } $order->addItem($order_item); } diff --git a/tests/src/Kernel/RecurringKernelTestBase.php b/tests/src/Kernel/RecurringKernelTestBase.php index ebfc1fa04831db1f519db60b3585da2f2906f91a..7ed6d2795d8d9e4d5e6bb931620b4428d03b0f1d 100644 --- a/tests/src/Kernel/RecurringKernelTestBase.php +++ b/tests/src/Kernel/RecurringKernelTestBase.php @@ -4,6 +4,7 @@ namespace Drupal\Tests\commerce_recurring\Kernel; use Drupal\commerce_order\Entity\Order; use Drupal\commerce_order\Entity\OrderItem; +use Drupal\commerce_order\OrderItemStorage; use Drupal\commerce_payment\Entity\PaymentGateway; use Drupal\commerce_payment\Entity\PaymentMethod; use Drupal\commerce_product\Entity\ProductVariation; @@ -173,15 +174,16 @@ abstract class RecurringKernelTestBase extends OrderKernelTestBase { 'quantity' => 1, ]); $first_order_item->save(); - $second_order_item = OrderItem::create([ - 'type' => 'default', - 'purchased_entity' => $this->variation, - 'unit_price' => [ - 'number' => '2.00', - 'currency_code' => 'USD', - ], - 'quantity' => '3', - ]); + $order_item_storage = $this->entityTypeManager + ->getStorage('commerce_order_item'); + assert($order_item_storage instanceof OrderItemStorage); + $second_order_item = $order_item_storage->createFromPurchasableEntity( + $this->variation, + [ + 'type' => 'default', + 'quantity' => '3', + ] + ); $second_order_item->save(); $initial_order = Order::create([ 'type' => 'default',