Browse Source

Revert "perf(core): Improve order quantity update performance"

This reverts commit 3c208372
Michael Bromley 5 years ago
parent
commit
db693d92b4

+ 10 - 10
packages/core/src/service/helpers/order-modifier/order-modifier.ts

@@ -150,18 +150,18 @@ export class OrderModifier {
             if (!orderLine.items) {
                 orderLine.items = [];
             }
-            const newOrderItems = [];
             for (let i = currentQuantity; i < quantity; i++) {
-                newOrderItems.push(new OrderItem({
-                    listPrice: orderLine.productVariant.price,
-                    listPriceIncludesTax: orderLine.productVariant.priceIncludesTax,
-                    adjustments: [],
-                    taxLines: [],
-                    line: orderLine,
-                }));
+                const orderItem = await this.connection.getRepository(ctx, OrderItem).save(
+                    new OrderItem({
+                        listPrice: orderLine.productVariant.price,
+                        listPriceIncludesTax: orderLine.productVariant.priceIncludesTax,
+                        adjustments: [],
+                        taxLines: [],
+                        line: orderLine,
+                    }),
+                );
+                orderLine.items.push(orderItem);
             }
-            await this.connection.getRepository(ctx, OrderItem).createQueryBuilder().insert().values(newOrderItems);
-            orderLine.items = orderLine.items.concat(newOrderItems);
         } else if (quantity < currentQuantity) {
             if (order.active) {
                 // When an Order is still active, it is fine to just delete

+ 2 - 2
packages/core/src/service/services/order.service.ts

@@ -1329,8 +1329,8 @@ export class OrderService {
             updatedOrderLine ? [updatedOrderLine] : [],
         );
         await this.connection.getRepository(ctx, Order).save(order, { reload: false });
-        await this.connection.getRepository(ctx, OrderItem).createQueryBuilder().insert().values(updatedItems);
-        await this.connection.getRepository(ctx, ShippingLine).createQueryBuilder().insert().values(order.shippingLines);
+        await this.connection.getRepository(ctx, OrderItem).save(updatedItems, { reload: false });
+        await this.connection.getRepository(ctx, ShippingLine).save(order.shippingLines, { reload: false });
         return order;
     }