コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }