public Guid CreateOrUpdateBasket(Guid userId, string branchId, Basket basket, List <LineItem> items, bool runPipelines = false) { var updateOrder = new CommerceUpdate <Basket, CommerceModelSearch <Basket>, CommerceBasketUpdateOptionsBuilder>(); updateOrder.SearchCriteria.Model.UserId = userId.ToString(); updateOrder.SearchCriteria.Model.BasketType = 0; if (!string.IsNullOrEmpty(basket.Id)) { updateOrder.SearchCriteria.Model.Id = basket.Id; } else { updateOrder.SearchCriteria.Model.Name = basket.Name; } updateOrder.Model = basket; updateOrder.UpdateOptions.ToOptions().ReturnModel = (new Basket()).ToCommerceEntity(); updateOrder.UpdateOptions.RefreshBasket = runPipelines; if (items != null) { foreach (var item in items) { if (string.IsNullOrEmpty(item.Id) || item.Id == Guid.Empty.ToCommerceServerFormat()) { var lineItemCreate = new CommerceCreateRelatedItem <LineItem>(Basket.RelationshipName.LineItems); lineItemCreate.Model = item; updateOrder.RelatedOperations.Add(lineItemCreate); } else { var lineItemUpdate = new CommerceUpdateRelatedItem <LineItem>(Basket.RelationshipName.LineItems); lineItemUpdate.SearchCriteria.Model.Id = item.Id; lineItemUpdate.Model = item; updateOrder.RelatedOperations.Add(lineItemUpdate); } } } // create the request var response = FoundationService.ExecuteRequest(updateOrder.ToRequest()); if (response.OperationResponses.Count != 1) { return(Guid.Empty); } return(((CommerceUpdateOperationResponse)response.OperationResponses[0]).CommerceEntities[0].Id.ToGuid()); }
public void UpdateItem(Guid userId, Guid cartId, LineItem updatedItem, bool runPipelines = false) { var updateOrder = new CommerceUpdate <Basket, CommerceModelSearch <Basket>, CommerceBasketUpdateOptionsBuilder>(); updateOrder.SearchCriteria.Model.UserId = userId.ToString(); updateOrder.SearchCriteria.Model.BasketType = 0; updateOrder.SearchCriteria.Model.Id = cartId.ToCommerceServerFormat(); updateOrder.UpdateOptions.RefreshBasket = runPipelines; var lineItemUpdate = new CommerceUpdateRelatedItem <LineItem>(Basket.RelationshipName.LineItems); lineItemUpdate.SearchCriteria.Model.Id = updatedItem.Id; lineItemUpdate.Model = updatedItem; updateOrder.RelatedOperations.Add(lineItemUpdate); FoundationService.ExecuteRequest(updateOrder.ToRequest()); }
protected override void UpdateRelatedItem(CommerceUpdateRelatedItem updateRelatedItemOperation) { OrderForm orderForm = CachedOrderGroup.GetDefaultOrderForm(); CommerceEntity model = updateRelatedItemOperation.GetModel(updateRelatedItemOperation.Model.ModelName); string paymentId = GetSearchModelId(updateRelatedItemOperation, MetadataDefinitions.Payment.EntityName, true); if (!String.IsNullOrEmpty(paymentId)) { Payment updatingPayment = GetPaymentFromCachedOrderGroup(paymentId); Translate(model, updatingPayment); } else { foreach (Payment payment in orderForm.Payments) { Translate(model, payment); } } }
protected override void UpdateRelatedItem(CommerceUpdateRelatedItem updateRelatedItemOperation) { OrderForm orderForm = CachedOrderGroup.GetDefaultOrderForm(); CommerceEntity model = updateRelatedItemOperation.GetModel(MetadataDefinitions.Shipment.EntityName); string shipmentId = GetSearchModelId(updateRelatedItemOperation, MetadataDefinitions.Shipment.EntityName, true); if (!String.IsNullOrEmpty(shipmentId)) { Shipment updatingShipment = GetShipmentFromCachedOrderGroup(shipmentId); Translator.ToExternalEntity(model, updatingShipment); UpdateShippingLineItemsAssociation(updatingShipment, orderForm); } else { foreach (Shipment shipment in orderForm.Shipments) { Translator.ToExternalEntity(model, shipment); } } }