private OrderEntity InsertOrder(PsOrder psOrder) { var customer = customerRepository.GetByWebId((int)psOrder.id_customer); PrestaShopSynchronizeException.TrowIfNull(customer, $"Customer not found (WebId: {psOrder.id_customer})"); var order = OrderEntity.Create(customer, OrderSourceType.WWW); order.InvoiceAddress = customer.GetMainAddress(); order.DeliveryAddress = customer.GetDefaultDeliveryAddress(); SetOrderStateToDefault(order); SynchronizeOrderDetails(order, psOrder); return(order); }
private OrderRowEntity AddNewRow(OrderEntity order, int productId, int quantity) { var product = productRepository.GetByWebId(productId); if (product == null) { var psProduct = prestaShopClient.ProductFactory.Get(productId); if (psProduct.associations.product_bundle.Count == 1) { var pack = psProduct.associations.product_bundle.First(); return(AddNewRow(order, (int)pack.id, quantity * pack.quantity)); } } PrestaShopSynchronizeException.TrowIfNull(product, $"Product not found (WebId:{productId})"); return(order.AddRow(product, quantity, pricePolicy)); }