Skip to content

Instantly share code, notes, and snippets.

@Mozu-CS
Created July 11, 2016 01:58
Show Gist options
  • Save Mozu-CS/f4ff9df36a603b06be6409fac5e4fe6b to your computer and use it in GitHub Desktop.
Save Mozu-CS/f4ff9df36a603b06be6409fac5e4fe6b to your computer and use it in GitHub Desktop.
[TestMethod]
public void Create_Order_Package_And_Fulfill()
{
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 filter = string.Format("OrderNumber eq '{0}'", "34");
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 = orderItem.Product.ProductCode,
Quantity = orderItem.Quantity,
FulfillmentItemType = "Physical"
});
}
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 = new List<Mozu.Api.Contracts.CommerceRuntime.Fulfillment.PackageItem>(),
PackagingType = "CUSTOM",
};
package.Items.AddRange(packageItems);
var availableShippingMethods = shipmentResource.GetAvailableShipmentMethodsAsync(existingOrder.Id).Result;
package.ShippingMethodCode = availableShippingMethods[0].ShippingMethodCode;
package.ShippingMethodName = availableShippingMethods[0].ShippingMethodName;
package.Code = "Package-01";
var updatedPackage = packageResource.CreatePackageAsync(package, existingOrder.Id).Result;
var packageIds = new List<string>() { 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;
//var updatedOrder = orderResource.UpdateOrderAsync(existingOrder, existingOrder.Id).Result;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment