public void Exercise_14_3_Fulfill_Order_Package() { var orderResource = new Mozu.Api.Resources.Commerce.OrderResource(_apiContext); var packageResource = new Mozu.Api.Resources.Commerce.Orders.PackageResource(_apiContext); var shipmentResource = new Mozu.Api.Resources.Commerce.Orders.ShipmentResource(_apiContext); var fulfillmentInfoResource = new Mozu.Api.Resources.Commerce.Orders.FulfillmentInfoResource(_apiContext); var fulfillmentActionResource = new Mozu.Api.Resources.Commerce.Orders.FulfillmentActionResource(_apiContext); var orderNumber = 6; var filter = string.Format("OrderNumber eq '{0}'", orderNumber); var existingOrder = (orderResource.GetOrdersAsync(startIndex: 0, pageSize: 1, filter: filter).Result).Items[0]; var existingOrderItems = existingOrder.Items; var packageItems = new List <Mozu.Api.Contracts.CommerceRuntime.Fulfillment.PackageItem>(); foreach (var orderItem in existingOrderItems) { packageItems.Add(new Mozu.Api.Contracts.CommerceRuntime.Fulfillment.PackageItem() { ProductCode = String.IsNullOrWhiteSpace(orderItem.Product.VariationProductCode) ? orderItem.Product.ProductCode : orderItem.Product.VariationProductCode, Quantity = orderItem.Quantity, FulfillmentItemType = "Physical" //LineId = orderItem.LineId }); } var package = new Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package() { Measurements = new Mozu.Api.Contracts.CommerceRuntime.Commerce.PackageMeasurements() { Height = new Mozu.Api.Contracts.Core.Measurement() { Unit = "in", Value = 10m }, Length = new Mozu.Api.Contracts.Core.Measurement() { Unit = "in", Value = 10m }, Width = new Mozu.Api.Contracts.Core.Measurement() { Unit = "in", Value = 10m }, Weight = new Mozu.Api.Contracts.Core.Measurement() { Unit = "lbs", Value = 10m }, }, Items = packageItems, PackagingType = "CUSTOM", }; var availableShippingMethods = shipmentResource.GetAvailableShipmentMethodsAsync(existingOrder.Id).Result; package.ShippingMethodCode = availableShippingMethods[0].ShippingMethodCode; package.ShippingMethodName = availableShippingMethods[0].ShippingMethodName; package.FulfillmentLocationCode = "WRH01"; package.Code = "Package-01"; Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package updatedPackage = null; try { updatedPackage = packageResource.CreatePackageAsync(package, existingOrder.Id).Result; } catch (Exception e) { System.Diagnostics.Debug.WriteLine(e.Message); } var packageIds = new List <string>(); if (updatedPackage == null) { packageIds.Add(existingOrder.Packages[0].Id); } else { packageIds.Add(updatedPackage.Id); } //var updatedPackageShipment = shipmentResource.CreatePackageShipmentsAsync(packageIds, existingOrder.Id).Result; var fulfilledShipment = fulfillmentActionResource.PerformFulfillmentActionAsync( new Mozu.Api.Contracts.CommerceRuntime.Fulfillment.FulfillmentAction() { ActionName = "Ship", // {Ship,Fulfill} DigitalPackageIds = new List <string>(), PackageIds = packageIds, PickupIds = new List <string>() }, existingOrder.Id) .Result; }
/// <summary> /// /// </summary> /// <param name="orderId">Unique identifier of the order.</param> /// <param name="packageId">Unique identifier of the package for which to retrieve the label.</param> /// <param name="responseFields">Filtering syntax appended to an API call to increase or decrease the amount of data returned inside a JSON object. This parameter should only be used to retrieve data. Attempting to update data using this parameter may cause data loss.</param> /// <param name="package">Properties of a physical package shipped for an order.</param> /// <returns> /// <see cref="Mozu.Api.MozuClient" />{<see cref="Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package"/>} /// </returns> /// <example> /// <code> /// var mozuClient=UpdatePackage( pkg, orderId, packageId, responseFields); /// var packageClient = mozuClient.WithBaseAddress(url).Execute().Result(); /// </code> /// </example> public static MozuClient <Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package> UpdatePackageClient(Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package pkg, string orderId, string packageId, string responseFields = null) { var url = Mozu.Api.Urls.Commerce.Orders.PackageUrl.UpdatePackageUrl(orderId, packageId, responseFields); const string verb = "PUT"; var mozuClient = new MozuClient <Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package>() .WithVerb(verb).WithResourceUrl(url) .WithBody <Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package>(pkg); return(mozuClient); }
/// <summary> /// Updates one or more properties of a package associated with a return replacement. /// </summary> /// <param name="packageId">Unique identifier of the package for which to retrieve the label.</param> /// <param name="responseFields">Use this field to include those fields which are not included by default.</param> /// <param name="returnId">Unique identifier of the return whose items you want to get.</param> /// <param name="package">Properties of a physical package shipped for an order.</param> /// <returns> /// <see cref="Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package"/> /// </returns> /// <example> /// <code> /// var package = new Package(); /// var package = await package.UpdatePackageAsync( pkg, returnId, packageId, responseFields); /// </code> /// </example> public virtual async Task <Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package> UpdatePackageAsync(Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package pkg, string returnId, string packageId, string responseFields = null) { MozuClient <Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package> response; var client = Mozu.Api.Clients.Commerce.Returns.PackageClient.UpdatePackageClient(pkg, returnId, packageId, responseFields); client.WithContext(_apiContext); response = await client.ExecuteAsync(); return(await response.ResultAsync()); }
public virtual Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package CreatePackage(Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package pkg, string returnId, string responseFields = null) { MozuClient <Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package> response; var client = Mozu.Api.Clients.Commerce.Returns.PackageClient.CreatePackageClient(pkg, returnId, responseFields); client.WithContext(_apiContext); response = client.Execute(); return(response.Result()); }
/// <summary> /// Updates one or more properties of a physical package of order items. /// <example> /// <code> /// var result = PackageFactory.UpdatePackage(handler : handler, pkg : pkg, orderId : orderId, packageId : packageId, responseFields : responseFields, expectedCode: expectedCode, successCode: successCode); /// var optionalCasting = ConvertClass<Package/>(result); /// return optionalCasting; /// </code> /// </example> /// </summary> public static Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package UpdatePackage(ServiceClientMessageHandler handler, Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package pkg, string orderId, string packageId, string responseFields = null, HttpStatusCode expectedCode = HttpStatusCode.OK, HttpStatusCode successCode = HttpStatusCode.OK) { SetSdKparameters(); var currentClassName = System.Reflection.MethodInfo.GetCurrentMethod().DeclaringType.Name; var currentMethodName = System.Reflection.MethodBase.GetCurrentMethod().Name; Debug.WriteLine(currentMethodName + '.' + currentMethodName); var apiClient = Mozu.Api.Clients.Commerce.Orders.PackageClient.UpdatePackageClient( pkg: pkg, orderId: orderId, packageId: packageId, responseFields: responseFields); try { apiClient.WithContext(handler.ApiContext).Execute(); } catch (ApiException ex) { // Custom error handling for test cases can be placed here Exception customException = TestFailException.GetCustomTestException(ex, currentClassName, currentMethodName, expectedCode); if (customException != null) { throw customException; } return(null); } return(ResponseMessageFactory.CheckResponseCodes(apiClient.HttpResponse.StatusCode, expectedCode, successCode) ? (apiClient.Result()) : null); }
/// <summary> /// /// </summary> /// <param name="orderId">Unique identifier of the order.</param> /// <param name="packageId">Unique identifier of the package for which to retrieve the label.</param> /// <param name="responseFields">Filtering syntax appended to an API call to increase or decrease the amount of data returned inside a JSON object. This parameter should only be used to retrieve data. Attempting to update data using this parameter may cause data loss.</param> /// <param name="package">Properties of a physical package shipped for an order.</param> /// <returns> /// <see cref="Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package"/> /// </returns> /// <example> /// <code> /// var package = new Package(); /// var package = await package.UpdatePackageAsync( pkg, orderId, packageId, responseFields); /// </code> /// </example> public virtual async Task <Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package> UpdatePackageAsync(Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package pkg, string orderId, string packageId, string responseFields = null, CancellationToken ct = default(CancellationToken)) { MozuClient <Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package> response; var client = Mozu.Api.Clients.Commerce.Orders.PackageClient.UpdatePackageClient(pkg, orderId, packageId, responseFields); client.WithContext(_apiContext); response = await client.ExecuteAsync(ct).ConfigureAwait(false); return(await response.ResultAsync()); }
public void Exercise_14_3_Fulfill_Order_Package() { var orderResource = new Mozu.Api.Resources.Commerce.OrderResource(_apiContext); var packageResource = new Mozu.Api.Resources.Commerce.Orders.PackageResource(_apiContext); var shipmentResource = new Mozu.Api.Resources.Commerce.Orders.ShipmentResource(_apiContext); var fulfillmentInfoResource = new Mozu.Api.Resources.Commerce.Orders.FulfillmentInfoResource(_apiContext); var fulfillmentActionResource = new Mozu.Api.Resources.Commerce.Orders.FulfillmentActionResource(_apiContext); var orderNumber = 6; var filter = string.Format("OrderNumber eq '{0}'", orderNumber); var existingOrder = (orderResource.GetOrdersAsync(startIndex: 0, pageSize: 1, filter: filter).Result).Items[0]; var existingOrderItems = existingOrder.Items; var packageItems = new List<Mozu.Api.Contracts.CommerceRuntime.Fulfillment.PackageItem>(); foreach (var orderItem in existingOrderItems) { packageItems.Add(new Mozu.Api.Contracts.CommerceRuntime.Fulfillment.PackageItem() { ProductCode = String.IsNullOrWhiteSpace(orderItem.Product.VariationProductCode) ? orderItem.Product.ProductCode : orderItem.Product.VariationProductCode, Quantity = orderItem.Quantity, FulfillmentItemType = "Physical" //LineId = orderItem.LineId }); } var package = new Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package() { Measurements = new Mozu.Api.Contracts.CommerceRuntime.Commerce.PackageMeasurements() { Height = new Mozu.Api.Contracts.Core.Measurement() { Unit = "in", Value = 10m }, Length = new Mozu.Api.Contracts.Core.Measurement() { Unit = "in", Value = 10m }, Width = new Mozu.Api.Contracts.Core.Measurement() { Unit = "in", Value = 10m }, Weight = new Mozu.Api.Contracts.Core.Measurement() { Unit = "lbs", Value = 10m }, }, Items = packageItems, PackagingType = "CUSTOM", }; var availableShippingMethods = shipmentResource.GetAvailableShipmentMethodsAsync(existingOrder.Id).Result; package.ShippingMethodCode = availableShippingMethods[0].ShippingMethodCode; package.ShippingMethodName = availableShippingMethods[0].ShippingMethodName; package.FulfillmentLocationCode = "WRH01"; package.Code = "Package-01"; Mozu.Api.Contracts.CommerceRuntime.Fulfillment.Package updatedPackage = null; try { updatedPackage = packageResource.CreatePackageAsync(package, existingOrder.Id).Result; } catch(Exception e) { System.Diagnostics.Debug.WriteLine(e.Message); } var packageIds = new List<string>(); if(updatedPackage == null) { packageIds.Add(existingOrder.Packages[0].Id); } else { packageIds.Add(updatedPackage.Id); } //var updatedPackageShipment = shipmentResource.CreatePackageShipmentsAsync(packageIds, existingOrder.Id).Result; var fulfilledShipment = fulfillmentActionResource.PerformFulfillmentActionAsync( new Mozu.Api.Contracts.CommerceRuntime.Fulfillment.FulfillmentAction() { ActionName = "Ship", // {Ship,Fulfill} DigitalPackageIds = new List<string>(), PackageIds = packageIds, PickupIds = new List<string>() }, existingOrder.Id) .Result; }