Northstar WMS Web Services API

This document describes the available methods of the Northstar WMS Web Services API. The API supports both a standard WCF service interface, and a REST interface. For each API method, the c# syntax of calling the method using the standard WCF service interface is provided, as well as the full REST interface request URL, minus the base web service address. The web service URL for both the WCF service interface and the REST interface is as follows, which does not include the base web service address:

REST Service Interface

Integration/NorthstarWmsIntegrationRest.svc/AuthenticationREST

Integration/NorthstarWmsIntegrationRest.svc/AuthenticationREST

For the WCF Service Interface, you would need to create a Service Reference or EndpointAddress containing the base address (for example, https://localhost/NorthstarWMS/) and the URL shown above appended to the base address, to give a full URL like https://Your server name or IP.local/NorthStarWMS/integration/NorthstarWmsIntegration.svc

https://Your IP address/NorthstarWMS/NorthstarWmsMobile.svc

https://Your IP Address/NorthstarWMS/Integration/NorthstarWmsIntegrationRest.svc

For the REST interface, you would append the URL given in the REST Syntax for each of the methods below to the base address to create the full URL for the request.

Be sure to review the sample application for further details on this.

Logging into the Web Services

c# Syntax

User Login();

void Logout();

While calling the Login and Logout methods are not necessary for calling the Service API methods when not using the REST interface, the Login method will return the User object, as shown below. When calling any of the Service API methods, it is necessary to set the Username and Password properties of the Username property of the ClientCredentials object. The ClientCredentials object is part of the proxy class, of type ClientBase, created when a Service Reference is added to the project from Visual Studio to the Service API web service. This is the same proxy class you would be using to make calls to the Service API. This Username and Password must be a valid login for the Northstar WMS website, and it also determines which customer database will be used when calling each of the Service API methods. When an API method is called, the Username and Password set in the ClientCredential object is passed to the web service and they are validated before the Service API method is called. Each API method requires that the login be authenticated before calling it.

When using the REST interface, the application will need to call the Login method of the Authentication service. This will return an authentication ticket, stored in a cookie, from the website, and this authentication ticket will then be used on all subsequent REST API method calls to let the website know that caller of the method is already authenticated and authorized to call the API method. See the sample test application, in the file RestServiceSecurityManager.cs, to see how to setup the client application during the login process. The Login method of the Authentication service has the same c# syntax as shown above. It takes no data on the request and returns a User object in the response in JSON format. The Logout REST API call takes no data on the request and returns no data on the response.


public class user
{
	public string FirstName { get; set; }
	public string LastName { get; set; }
	public string Email { get; set; }
	public string Username { get; set; }
	public string Password { get; set; }
	public string Phone { get;   set; }
	public string Department { get ;  set; }
}
Property Description
string FirstName First name of User
string LastName Last name of User
string Email Email address
string Username Username used for login
string Password Password used for login
string Phone Phone number of User
string Department Department of User

Error Processing during Imports

A list of Response objects is returned for each Import method. The list of response objects indicate any errors and/or warnings that have occurred for each object being imported. Below is what is returned, along with descriptions of each property.


public class Response
{
	public bool Success { get; set; }
	public string EntityId { get; set; }
	public string LineNo { get; set; }
	public string ItemNo { get; set; }
	public  List<string> WarningMessages { get; set; }
	public  List<string> ErrorMessages { get;   set; }	
}
Property Description
bool Success Indicates whether import of the entity was successful or not (true = Success, false = Failure)
string EntityId Identifier of entity being operated on
string LineNo
string ItemNo
List WarningMessages Warning messages that indicate non-breaking issues with operation. If there are warnings, but no errors, then the import of the entity being processed was successful and saved to the database.
List ErrorMessages Error message for breaking issues with operation. If errors are present for the entity being processed, then the import of that entity was not successful, nor saved to the database.

Exception Handling

While making a call to one of the Service API methods, it is possible that an exception may occur while the method on the server is being executed. Each Service API method is configured to return a Fault Exception. This Fault Exception is of type NorthstarWmsFault and has the following structure and description.


public class  NorthstarWmsFault
{		
	public string ExceptionMessage { get; set; }		
	public IList <string>  InnerExceptionMessages { get ;  set; } 
}
Property Description
string ExceptionMessage The top-level exception message
IListInnerExceptionMessages A list of the messages from any inner exceptions that occurred.

When calling any of the Service API methods, it is recommended that a try/catch block be constructed as follows:


try
{
}	
	catch ( FaultException<NorthstarWmsFault>northstarWmsFault)
{
}	
	catch ( MessageSecurityException  msEx)
{
}
	catch ( Exception   ex)
{
}

In the try block, the call to the Service API method would be made, and then up to one of three catch blocks will be executed, depending on whether an exception occurred, and what type of exception. The first catch block catches any exceptions of type FaultException which is the type of fault exception that each Service API method will return. Assuming that the variable holding the exception object is named norhtstarWmsFault, as in the code above, then the NorthstarWmsFault object can be accessed by calling the Detail property of northstarWmsFault. The last two catch blocks in the example above will catch any MessageSecurityException and any other Exception that may occur, respectively.

Notes on the NorthstarWmsIntegrationTestClient Sample Application

The NorthstarWmsIntegrationTestClient sample application demonstrates the use of both the standard web services API, as well as the REST API. The app.config file sets a couple application settings that configures the base web service address, whether to use the REST interface, and the content type of the REST service calls (JSON or XML). The main form of the application is the TestPage1.cs form. The form contains buttons that call each web service method, using either the standard web service interface or the REST interface. The INorthstarIntegration.cs file contains the INorthstarIntegration interface used by both the standard web service and REST interfaces, and includes method, as well as data, declarations described in this document. The IServiceMethods.cs, ServiceMethodsNet.cs, and ServiceMethodsRest.cs files implement the actual web service and REST interface method calls used by the TestPage1 form. The RestServiceClientBase.cs file contains the base class for the ServiceMethodsRest class and defines some methods used by the ServiceMethodsRest class. The RestServiceSecurityManager.cs file contains the logic used for the REST services to login to the web services using an Authentication service. This file is very important in that it contains all the logic necessary for authenticating with the API’s using the REST interface. Please look at this file very closely when using the REST interface. The ServiceClient.cs file contains the ServiceClient class used by both the standard and REST web services to setup the service client. If you notice, there are no Service References used by the sample application. The client interfaces are configured inside the ServiceMethodsNet, RestServiceClientBase, and RestServiceSecurityManager classes.

Purchase Orders

c# Syntax

	
	List <Response> SavePurchaseOrders(List<PurchaseOrder>purchaseOrders);
	
    List <PurchaseOrder> GetPurchaseOrders(DateTime? fromDate,DateTime? toDate, bool qtyEaches, string warehouse,DateTime? fromRecvDate,DateTime? toRecvDate);    
    
    List<PurchaseOrder> GetPurchaseOrdersForPoNo( string poNo,bool qtyEaches, string warehouse);

REST syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/PurchaseOrders/Save

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/PurchaseOrders

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/PurchaseOrders/PoNo

The SavePurchaseOrders method saves one or more new Purchase Orders with their details, or updates existing Purchase Orders and their details. The PurchaseOrder class contains the properties for the Purchase Order header, and a list of the order details, each being a PurchaseOrderDetail type. The list of Response objects contains any warnings or errors that occurred while saving or updating the Purchase Orders. The EntityId property of the Response object will be set to the PoNo property of the PurchaseOrder type. The PurchaseOrder and PurchaseOrderDetail classes, along with the descriptions of their properties, are shown below.

The GetPurchaseOrders method returns a list of Purchase Orders that have been closed, but not yet exported. A From Date and a To Date can be specified to retrieve a list of Purchase Orders within a particular date range.

Date range is not required, when left blank all orders that have been received where receive qty > export qty will be returned, unless you want a specific range of orders leaving the date fields blank is the best approach.

Also, the quantities returned can be returned in Eaches if the qtyEaches parameter is set to true, otherwise, if set to false, it will return the quantities using UOM quantities. The quantities affected by the qtyEaches parameter are the OrderQty and RecvQty properties. After the Purchase Orders are retrieved, the Purchase Order details are marked as being exported by setting the Exported quantity to the Received quantity.

For the REST interface, the /PurchaseOrders/Save REST call, the equivalent of the SavePurchaseOrders c# method, expects an array of PurchaseOrder objects, serialized to JSON, on the request, and returns an array of Response objects, in JSON format, on the response to the REST API call. The /PurchaseOrders REST call, the equivalent of the GetPurchaseOrders c# method, takes a GetPurchaseOrdersRequest object, serialized to JSON, on the request, and returns an array of PurchaseOrder objects, in JSON format.


public class PurchaseOrder
{
	  public string WarehouseName { get; set; }
	  public string PoNo { get; set; }
	  public string VendorId { get; set; }
	  public string VendorName { get; set; }
	  public string VendorAddress { get; set; }
	  public string Phone { get;   set; }
	  public string VendorAddress2 { get ;  set; }
	  public string VendorCity { get ;  set; }
	  public string VendorState { get ;  set; }
	  public string VendorZip { get ;  set; }
	  public string VendorCountry { get ;  set; }
	  public string Status { get ;  set; }
	  public string OrderDate { get ;  set; }
	  public string DueDate { get ;  set; }
	  public string Carrier { get ;  set; }
	  public string ShipModeName { get ;  set; }
	  public string CustOwnerName { get ;  set; }
	  public decimal? ShipCost { get ;  set; }
	  public string Comment { get ;  set; }
	  public string ShipToId { get ;  set; }
	  public string ShipToName { get ;  set; }
	  public string ShipToAddress { get ;  set; }
	  public string ShipToAddress2 { get ;  set; }
	  public string ShipToCity { get ;  set; }
	  public string ShipToState { get ;  set; }
	  public string ShipToZip { get ;  set; }
	  public string ShipToCountry { get ;  set; }
	  public String ProjectNo { get ;  set; }
	  public List<PurchaseOrderDetail> PurchaseOrderDetails { get ;  set; }
	  public string CustOwnerId { get ;  set; }
	  public string TrackingNo { get ;  set; }
	  public string Market { get ;  set; }
      public string HLID { get ;  set; }
	  public string Misc1 { get ;  set; }
	  public string Misc2 { get ;  set; }
	  public string Misc3 { get ;  set; }
	  public string Misc4 { get ;  set; }
	  public string Misc5 { get ;  set; }
	  public string Misc6 { get ;  set; }
	  public string Misc7 { get ;  set; }
	  public string Misc8 { get ;  set; }
      public bool? IgnoreImportLock { get ;  set; }
      public byte[] OrderPicture1 { get ;  set; }
      public byte[] OrderPicture2 { get ;  set; }
      public bool? DropShip { get ;  set; }
	  public bool? ChangePODetailLine { get ;  set; }
	  public string VendorDocNumber { get; set; }
}
Property Description
string WarehouseName *Warehouse Name
string PONo *Purchase Order Number of Order. This uniquely identifies the Purchase Order
string VendorID *Vendor ID
string VendorName Vendor Name
string VendorAddress Vendor Address Line 1
string VendorAddress2 Vendor Address Line 2
string VendorCity Vendor City
string VendorState Vendor State
string VendorZip Vendor Zip/Postal Code
string VendorCountry Vendor Country
string Status *Order Status (can be set to “Open”, “Closed”, or “Partial”) Default to Open for new orders, leave status as is if updating an existing order
string OrderDate *Order Date as MM-dd-yyyy (Needed Only for new orders.Default to current date. Leave OrderDate as is if updating an existing order)
string DueDate Due Date as MM-dd-yyyy
string Carrier Carrier
string ShipModeName Ship Mode, like UPS, Fedex, or USPS. Must match what is in the WMS database.
string CustOwnerName Customer Owner Name
decimal? ShipCost Ship Cost
string Comment Comment about Purchase Order
string CustOwnerId Customer Owner ID
string ShiptoName Shipto Name
string ShiptoAddress Shipto Address Line 1
string ShiptoAddress2 Shipto Address Line 2
string ShiptoCity Shipto City
string ShiptoState Shipto State
string ShiptoZip Shipto Zip/Postal Code
string TrackingNo Tracking Number
string Market Market
string HLID HLID (Max Length 16 )
string Misc1 Miscellaneous #1
string Misc2 Miscellaneous #2
string Misc3 Miscellaneous #3
string Misc4 Miscellaneous #4
string Misc5 Miscellaneous #5
string Misc6 Miscellaneous #6
Miscellaneous #7
string Misc8 Miscellaneous #8
bool? IgnoreImportLock When True, Order update will be continued even if ImportLock is true. Default false
byte[] OrderPicture1 Order Picture 1
byte[] OrderPicture2 Order Picture 2
bool? DropShip Flag for DropShip orders
bool? ChangePODetailLine Flag for ChangePODetailLine orders
string VendorDocNumber Vendor Document Number

public class PurchaseOrderDetail
{
	public int? PoLine { get; set; }
	public string ItemNo { get; set; }
	public string ItemDesc { get; set; }
	public decimal? UnitCost { get; set; }
	public decimal? UnitWgt { get; set; }
	public decimal? CaseCost { get;   set; }
	public decimal? CaseWeight { get ;  set; }
	public string SerialNo { get ;  set; }
	public string ExpirationDate { get ;  set; }
	public string BestByDate { get ;  set; }
	public string LotNo { get ;  set; }
	public string ItemUomName { get ;  set; }
	public long? ItemUnitQuantity { get ;  set; }
	public decimal? OrderQty { get ;  set; }
	public decimal? RecvQty { get ;  set; }
	public string ReceiveDate  { get ;  set; }
	public string Misc1 { get ;  set; }
	public string Misc2 { get ;  set; }
	public string Misc3 { get ;  set; }
	public string Misc4 { get ;  set; }
	public string InvMisc1 { get ;  set; }
	public string InvMisc2 { get ;  set; }
	public string InvMisc3 { get ;  set; }
	public string InvMisc4 { get ;  set; }
	public string OrderNo { get ;  set; }
	public string VendorDetailId { get ;  set; }
	public string VendorDetailName { get ;  set; }
	public string VendorDetailAddress { get ;  set; }
	public string VendorDetailAddress2 { get ;  set; }
	public string VendorDetailCity { get ;  set; }
	public string VendorDetailState { get ;  set; }
	public string VendorDetailZip { get ;  set; }
	public string VendorDetailCountry { get ;  set; }
	public decimal? DamageQty { get ;  set; }
	public string DamageComment { get ;  set; }
	public byte[] DamagePicture { get ;  set; }
    public string Location { get ;  set; }
	public bool? QAItem { get ;  set; }
    public string QALoc { get ;  set; }
    public string QAWhse { get ;  set; }
	public bool? CrossDock { get ;  set; }
	public string PromiseDate { get ;  set; }
}
Property Description
int? POLine *Purchase Order Detail Line Number (Detail)
string ItemNo *Item Number (Detail)
string ItemDesc *Item Description (Detail)
decimal? UnitCost Unit Cost of Item (Detail)
decimal? UnitWgt Unit Weight of Item (Detail)
decimal? CaseCost Case Cost of Item (Detail)
decimal? CaseWeight Case Weight of Item (Detail)
string SerialNo Serial Number of Item (Detail)
string ExpirationDate Expiration Date of Item (Detail) (MM-dd-yyyy)
string BestByDate Best By Date of Item (Detail) (MM-dd-yyyy)
string LotNo Lot Number of Item (Detail)
string ItemUOMName *Unit of Measure Name of Item (Detail)
long? ItemUnitQuantity *Unit Quantity of Item, or Each Count, default to 1
decimal? OrderQty Ordered Quantity (Detail)
decimal? RecvQty Received Quantity (Detail)
string ReceiveDate Receive Date (Detail) (MM-dd-yyyy)
string Misc1 Miscellaneous information #1 (Detail)
string Misc2 Miscellaneous information #2 (Detail)
string Misc3 Miscellaneous information #3 (Detail)
string Misc4 Miscellaneous information #4 (Detail)
string InvMisc1 Inventory Miscellaneous information #1 (Detail)
string InvMisc2 Inventory Miscellaneous information #2 (Detail)
string InvMisc3 Inventory Miscellaneous information #3 (Detail)
string InvMisc4 Inventory Miscellaneous information #4 (Detail)
string OrderNo Vendor Order Number (Detail)
string ShiptoZip Shipto Zip/Postal Code
string VendorDetailID Vendor ID for Item (Detail)
string VendorDetailName Vendor Name for Item (Detail)
string VendorDetailAddress Vendor Address Line 1 for Item (Detail)
string VendorDetailAddress Vendor Address Line 1 for Item (Detail)
string VendorDetailAddress2 Vendor Address Line 2 for Item (Detail)
string VendorDetailCity Vendor City for Item (Detail)
string VendorDetailState Vendor State for Item (Detail)
string VendorDetailZip Vendor Zip/Postal Code for Item (Detail)
string VendorDetailCountry Vendor Country for Item (Detail)
decimal DamageQty Damage Quantity
string DamageComment Damage Comment
byte[] DamagePicture Damage Picture
string Location Returns Location where the Item line was received each time when flag for PO with Locations is true
bool? QAItem Flag Order Line as QAItem
string QALoc QA Location for the Order Line
QA QAWhse QA Warehouse for th Order Line
bool? CrossDock Flag Order Line as CrossDock
string PromiseDate Promise Date of Item (Detail) (MM-dd-yyyy)

public class GetPurchaseOrdersRequest
{
	public DateTime? FromDate { get ;  set; }
	public DateTime? ToDate { get ;  set; }
	public bool  QtyEaches  { get; set; }
	public string  Warehouse  { get; set; }
   	public DateTime? FromRecvDate { get ;  set; }
	public DateTime? ToRecvDate { get ;  set; }    
 	public string StringRecvFromDate  { get ;  set; }
	public string StringRecvToDate  { get ;  set; }

}
Property Description
DateTime? FromDate The From Order Date of the GetPurchaseOrders method
DateTime? ToDate The To Order Date of the GetPurchaseOrders method
bool QtyEaches Same as the QtyEaches parameter of the GetPurchaseOrders method
String Warehouse Warehouse name
DateTime? FromDate the FromReceive Date parameter of the GetPurchaseOrders method
DateTime? ToDate The To Receive Date parameter of the GetPurchaseOrders method
string StringRecvFromDate The From Receive Date of order in string format MM-dd-yyyyy
string StringRecvToDate The To Receive Date of order in string format MM-dd-yyyyy

public class GetPurchaseOrdersForPoNoRequest
{
	public String PoNo { get ;  set; }
	public bool? QtyEaches { get ;  set; }
	public string Warehouse  { get ;  set; }	
}
Property Description
String PoNo Same as the PoNo parameter of the GetGetPurchaseOrdersPoNo method
bool? QtyEaches Same as the QtyEaches parameter of the GetGetPurchaseOrdersPoNo method.
String Warehouse Warehouse name

Inventory Adjustment Export

c# Syntax


	 List< InventoryHistory>GetInventoryAdjustments(DateTime? fromDate DateTime? toDate, string warehouse);

REST Syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/InventoryAdjustments

The GetInventoryAdjustments method gets the list of records from Item History where Inventory has been adjusted. A date range can be specified using the optional fromDate and toDate parameters. The InventoryHistory class, along with the descriptions of its properties, is shown below. Unless you want a specific range of adjustments returned, the best approach is to leave the toDate blank and set the fromDate/datetime to the date/time of the last call.

For the REST interface, the /InventoryAdjustments REST call, the equivalent of the GetInventoryAdjustments c# method, takes a GetInventoryAdjustmentsRequest object, serialized to JSON, in the request, and returns an array of InventoryHistory objects, in JSON format, in the response.


public class InventoryHistory
{
	public string TransactionType { get ;  set; }
	public string SoNo { get ;  set; }
	public int ? SoLine { get; set; }
	public string PoNo { get; set; }
	public string PoLine { get; set; }
	public string ItemNo { get; set; }
	public string Status { get; set; }
	public string FromWhouse { get; set; }
	public string FromBin { get; set; }
	public string ToWhouse { get; set; }
	public string ToBin { get; set; }
	public string Qty { get; set; }
	public string LotNo { get; set; }
	public string SerialNo { get; set; }
	public string Container { get; set; }
	public string RecvDate { get; set; }
	public string Comment { get; set; }
	public string CustOwner { get; set; }
	public string Misc1 { get; set; }
	public string Misc2 { get; set; }
	public string Misc3 { get; set; }
	public string Misc4 { get; set; }
	public string Misc5 { get; set; }
	public string Misc6 { get; set; }
	public string Misc7 { get; set; }
	public string Misc8 { get; set; }
	public string Misc8 { get; set; }
	public string Reason { get; set; }
	public string BatchNo { get; set; }
	public string BatchDate { get; set; }
	public string ProcessDate { get; set; }
	public string ProcessStatus { get; set; }
	public string NewItemNo { get; set; }
	public string NewLotNo { get; set; }
	public string InventoryAdjusted { get; set; }
	public long? HistID { get; set; }
}
Property Description
string TransactionType *Transaction Type
string SoNo Shipping Order number
int? SoLine Shipping Order line number
string PoNo Purchase Order number
string PoLine Purchase Order line number
string ItemNo *Item Number
string Status Status
string FromWhouse From warehouse
string FromBin From bin/location
string ToWhouse To warehouse
string ToBin To bin/location
string Qty Quantity
string LotNo Lot number
string LotNo Serial number
string Container Container name
string RecvDate Receive Date
string Comment Comment
string CustOwner Customer Owner
string Misc1 Miscellaneous #1
string Misc2 Miscellaneous #2
string Misc3 Miscellaneous #3
string Misc4 Miscellaneous #4
string Misc5 Miscellaneous #5
string Misc6 Miscellaneous #6
string Misc7 Miscellaneous #7
string Misc8 Miscellaneous #8
string Reason Reason
string BatchNo Batch number
string BatchDate Batch date
string ProcessDate Process date
string ProcessStatus Process status
string NewItemNo New Item number
string NewLotNo New Lot number
string InventoryAdjusted Indicates which direction inventory was adjusted (‘-‘ = adjusted down, ‘+’ = adjusted up, ‘+/-‘ = not adjusted
long? HistID Unique History ID

public class GetInventoryAdjustmentsRequest
{
	publicDateTime? FromDate { get ;  set; }
	public DateTime? ToDate { get ;  set; }
	public string Warehouse { get ;  set; }
}
Property Description
DateTime? FromDate Same as the FromDate parameter of the GetInventoryAdjustments method
DateTime? ToDate Same as the ToDate parameter of the GetInventoryAdjustments method
String Warehouse Warehouse name

Inventory Adjustment Import

c# Syntax


List<Response> SaveInventoryAdjustments( List<InventoryAdjustment> items);

REST Syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/InventoryAdjustments/Save

The SaveInventoryAdjustments method saves one or more Item adjustments. The list of Response objects contains any warnings or errors that occurred while updating the Items. The EntityId property of the Response object will be set to the ItemNo property of the InventoryAdjustment type. The InventoryAdjustment class, along with the descriptions of its properties, is shown below.

For the REST interface, the /InventoryAdjustments/Save REST call, the equivalent of the SaveInventoryAdjustments c# method, takes an array of InventoryAdjustment objects, serialized into JSON format, in the request, and returns an array of Response objects, in JSON format, in the response.


public class InventoryAdjustment
{
	

    public string ItemNo { get; se; }
    public string WarehouseName { get; set; }
    public string Bin { get; set; }
    public string Container { get; set; }
    public string LotNo { get;set; }
    public string CustOwner { get; set; }
    public string ItemUomName { get; set; }
    public long? ItemUnitQuantity { get; set; }
    public DateTime? ReceiveDate { get; set; }
    public string Reason { get; set; }
    public string SerialNo { get; set; }
    public string ItemStatus { get;set; }
    public string ItemDesc { get; set; }
    public decimal? Quantity { get; set; }
    public string Misc1 { get; set; }
    public string Misc2 { get; set; }
    public string Misc3 { get; set; }
    public string Misc4 { get; set; }
    public string AdjustAllocated { get; set; }	
	public string AdjustPlusOrMinus { get; set; }	
	public bool? IgnoreMisc1Check { get; set; }

}
Property Description
string ItemNo *Item Number
string WarehouseName *Ware House
string Bin *Location
string Container Container name
string LotNo Lot Number
string CustOwnerName Customer Owner name
string ItemUomName Item UOM Name
long? ItemUnitQuantity Item Unit Quantity
DateTime RecvDate Receive Date
string Reason Reason for adjustment
string SerialNo Serial Number
string ItemStatus Status
string ItemDesc Item Description
descimal Quantity Quantity
string Misc1 Misc1
string Misc2 Misc2
string Misc3 Misc3
string Misc4 Misc4
string AdjustAllocated Allocated SoNo.If value, Adjust Allocated inventory to SONo.
string AdjustPlusOrMinus + or - direction of adjustment
bool? IgnoreMisc1Check Flag for not to check Misc1 value for Inventory filter during adjustments, default false

Item Import

c# Syntax


public class GetInventoryAdjustmentsRequest
{
	List<Response> SaveItems( List<Item>items);
}

c# Syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServicesREST/Items/Save

The SaveItems method saves one or more new Items, or updates existing Items. The list of Response objects contains any warnings or errors that occurred while saving or updating the Items. The EntityId property of the Response object will be set to the ItemNo property of the Item type. The Item class, along with the descriptions of its properties, is shown below.

For the REST interface, the /Items/Save REST call, the equivalent of the SaveItems c# method, takes an array of Item objects, serialized into JSON format, in the request, and returns an array of Response objects, in JSON format, in the response.


public String Item
{
	public string ItemNo { get ;  set; }
	public string UpcNo { get ;  set; }
	public string ItemXRef { get ;  set; }
	public string ItemDesc { get ;  set; }
	public decimal? StockWgt { get ;  set; }
	public string  WeightUom { get ;  set; }
	public long? RopMin { get ;  set; }
	public long? OrderQty { get ;  set; }
	public string  StockUom { get ;  set; }
	public decimal? SalesPrice { get ;  set; }
	public decimal? VendCost { get ;  set; }
	public string  Comment { get ;  set; }
	public long ? QtyRequired { get ;  set; }
	public char? AbcCode { get ;  set; }
	public string Misc1 { get ;  set; }
	public string Misc2 { get ;  set; }
	public string Misc3 { get ;  set; }
	public string Misc4 { get ;  set; }
	public string Misc5 { get ;  set; }
	public string Misc6 { get ;  set; }
	public string Misc7 { get ;  set; }
	public string Misc8 { get ;  set; }
	public string SccCaseUpc { get ;  set; }
	public string PackUpc { get ;  set; }
	public string VendorId { get ;  set; }
	public string Vendor1Name { get ;  set; }
	public string Vendor1Country { get ;  set; }
	public string Vendor1City { get ;  set; }
	public string Vendor1Address2 { get ;  set; }
	public string Vendor1Address { get ;  set; }
	public string Vendor1State { get ;  set; }
	public string Vendor1Zip { get ;  set; }
	public string PrimeBinName { get ;  set; }
	public string PickBinName { get ;  set; }
	public string Vendor { get ;  set; }
	public string PrimeBin { get ;  set; }
	public string PickBin { get ;  set; }
	public string ContUom { get ;  set; }
	public string WarehouseName { get ;  set; }
	public string VendorId2 { get ;  set; }
	public string Vendor2Country { get ;  set; }
	public string Vendor2City { get ;  set; }
	public string Vendor2Address2 { get ;  set; }
	public string Vendor2Name { get ;  set; }
	public decimal? VendCost2 { get ;  set; }
	public string Vendor3Name { get ;  set; }
	public decimal? VendCost3 { get ;  set; }
	public string Vendor2Address { get ;  set; }
	public string Vendor2State { get ;  set; }
	public string Vendor2Zip { get ;  set; }
	public string VendorId3 { get ;  set; }
	public string Vendor3Country { get ;  set; }
	public string Vendor3Address2 { get ;  set; }
	public string Vendor4Name { get ;  set; }
	public decimal? VendCost4 { get ;  set; }
	public string Vendor3Address { get ;  set; }
	public string Vendor3State { get ;  set; }
	public string Vendor3Zip { get ;  set; }
	public string Vendor3City { get ;  set; }
	public string VendorId4 { get ;  set; }
	public string Vendor4Country { get ;  set; }
	public string Vendor4Address2 { get ;  set; }
	public string Vendor4Address { get ;  set; }
	public string Vendor4State { get ;  set; }
	public string Vendor4Zip { get ;  set; }
	public string Vendor4City { get ;  set; }
	public string CaseUpc { get ;  set; }
	public string ProductGrade { get ;  set; }
	public string CountryOrigin { get ;  set; }
	public string ProductCommodity{ get ;  set; }
	public string ProductVariety { get ;  set; }
	public string SuperItem { get ;  set; }
	public string ItemSubstitute { get ;  set; }
	public string ItemSubstituteName { get ;  set; }
	public string OwnerName { get ;  set; }
	public string ItemUomName { get ;  set; }
	public long? ItemUomQuantity { get ;  set; }
	public decimal? CaseSalesPrice { get ;  set; }
	public decimal? CaseWeight { get ;  set; }
	public decimal? CaseWeight { get ;  set; }
	public decimal? VendCaseCost { get ;  set; }
	public decimal? VendCaseCost2 { get ;  set; }
	public decimal? VendCaseCost3 { get ;  set; }
	public decimal? VendCaseCost4 { get ;  set; }
	public bool? DoubleBox { get ;  set; }
	public string  BoxID { get ;  set; }	 
	public bool? ProductSN { get ;  set; }
	public string Manufacture { get ;  set; }
	public string CubeID { get ;  set; }
   	public double? CubeHeight { get ;  set; }
	public double? CubeWidth { get ;  set; }
	public double? CubeLength { get ;  set; }
    public bool? IsTransparency { get ;  set; }
    public decimal? UnitCost { get ;  set; }
    public decimal? UnitSalesPrice { get ;  set; }
    public string Status { get ;  set; }
	public DateTime? LastCount { get ;  set; }
	public int? Recount { get ;  set; }
	public string RecountIntervalType { get ;  set; }
	public string RecvUOM { get ;  set; }
	public string ShipUOM { get ;  set; }
	public int? ConversionQty { get ;  set; }
	public bool? ViceVersa { get ;  set; }
	
}    
	
Property Description
string ItemNo *Item number, used to identify item
string UpcNo UPC number
string ItemXRef Item Cross-reference
string ItemDesc *Item description
decimal? StockWgt Stock weight
string WeightUom UOM weight
long? RopMin Reorder minimum
long? OrderQty Order Quantity for Vendor
string StockUom Stock Unit of Measure
decimal? SalesPrice Sales Price
decimal? VendCost Vendor 1 Cost
string Comment Comment
char? AbcCode ABC code (possible values are null/empty string, ‘O’, ‘A’, ‘B’, ‘C’, ‘D’)
string Misc1 Miscellaneous #1
string Misc2 Miscellaneous #2
string Misc3 Miscellaneous #3
string Misc4 Miscellaneous #4
string Misc5 Miscellaneous #5
string Misc6 Miscellaneous #6
string Misc7 Miscellaneous #7
string Misc8 Miscellaneous #8
string SccCaseUpc SCC Case UPC
string PackUpc Pack UPC
string VendorId Vendor 1 ID
string Vendor1Name Vendor 1 Name
string Vendor1Country Vendor 1 Country
string Vendor1City Vendor 1 City
string Vendor1Address2 Vendor 1 Address2
string Vendor1State Vendor 1 State
string Vendor1Zip Vendor 1 Zipcode
string PrimeBinName Prime Bin name
string PickBinName Pick Bin name
string PrimeBin Prime Bin
string PickBin Pick Bin
string ContUom Container UOM
string WarehouseName Warehouse Name
string VendorId2 Vendor 2 ID
string Vendor2Country Vendor 2 Country
string Vendor2City Vendor 2 City
string Vendor2Address2 Vendor 2 Address2
string Vendor2Name Vendor 2 Name
decimal? VendCost2 Vendor 2 Cost
decimal? VendCost2 Vendor 2 Cost
string Vendor3Name Vendor 3 Name
decimal? VendCost3 Vendor 3 Cost
string Vendor2Address Vendor 2 Address
string Vendor2State Vendor 2 State
string Vendor2Zip Vendor 2 Zipcode
string VendorId3 Vendor 3 ID
string Vendor3Country Vendor 3 Country
string Vendor3Address2 Vendor 3 Address 3
string Vendor4Name Vendor 4 Name
decimal? VendCost4 Vendor 4 Cost
string Vendor3Address Vendor 3 Address
string Vendor3State Vendor 3 State
string Vendor3Zip Vendor 3 Zipcode
string Vendor3City Vendor 3 City
string VendorId4 Vendor 4 ID
string Vendor4Country Vendor 4 Address
string Vendor4Address2 Vendor 4 State
string Vendor4Address Vendor 4 Zipcode
string Vendor4State Vendor 4 State
string Vendor4Zip Vendor 4 Zipcode
string Vendor4City Vendor 4 City
string CaseUpc Case UPC
string ProductGrade Product Grade
string CountryOrigin Country of Origin
string ProductCommodity Product Commodity
string ProductVariety Product Variety
string SuperItem Super Item, if Item is part of a Kit
string ItemSubstitute Item Substitute
string ItemSubstituteName Item Substitute Name
string OwnerName Owner Name
string ItemUomName *Item UOM name, for Item Unit Quantity
long? ItemUomQuantity *Item UOM Quantity, for Item Unit Quantity, default to 1
decimal? CaseSalesPrice Case Sales Price
decimal? CaseWeight Case Weight
decimal? VendCaseCost Vendor 1 Case Cost
decimal? VendCaseCost2 Vendor 2 Case Cost
decimal? VendCaseCost3 Vendor 3 Case Cost
decimal? VendCaseCost4 Vendor 4 Case Cost
bool? DoubleBox Double Box
string BoxID Box ID
string Manufacture Manufacture
string CubeID CubeID
double? CubeHeight Height for Cube
double? CubeWidth Width for Cube
double CubeLength Length for Cube
bool? IsTransparency Value for IsTransparency true or false
decimal? UnitCost Value for UnitCost true or false
decimal? UnitSalesPrice Value for UnitSalesPrice true or false
string Status Status value for the Item
DateTime? LastCount Last cycle count date for the Item
int? Recount Recount value for the Item
string RecountIntervalType Recount every(day, week, month…etc) value for the Item
string RecvUOM Receive UOM name for the item
string ShipUOM Ship UOM name for the item
int? ConversionQty Conversion Qty
bool? ViceVersa Indicates if conversion is reversible (ViceVersa)

Vendor Import

c# Syntax


	List<Response> SaveVendors( List<Vendor> vendors);

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/Vendors/Save

The SaveVendors method saves one or more new Vendors, or updates existing Vendors. The list of Response objects contains any warnings or errors that occurred while saving or updating the Vendors. The EntityId property of the Response object will be set to the VendorId property of the Vendor type. The Vendor class, along with the descriptions of its properties, is shown below.

For the REST interface, the /Vendors/Save REST call, the equivalent of the SaveVendors c# method, takes an array of Vendor objects, serialized to JSON, in the request, and returns an array of Response objects, in JSON format, in the response.


public class Vendor
{
	public string VendorId { get ;  set; }
	public string Company { get ;  set; }
	public string Contact { get ;  set; }
	public string Phone { get ;  set; }
	public string Fax { get ;  set; }
	public string Email { get ;  set; }
	public string Address { get ;  set; }
	public string Address2 { get ;  set; }
	public string City { get ;  set; }
	public string State { get ;  set; }
	public string ZipCode { get ;  set; }
	public string Country { get ;  set; }
	public string Misc1 { get ;  set; }
	public string Misc2 { get ;  set; }
}
Property Description
string VendorId *Vendor ID, used to identify Vendor
string Company Company name
string Contact Contact name
string Phone Contact Phone
string Fax Contact Fax
string Email Contact Email address
string Address Vendor Address
string Address2 Vendor Address2
string City Vendor City
string State Vendor State
string ZipCode Vendor ZipCode
string Country Vendor Country (2-letter ISO country code)
string Misc1 Miscellaneous #1
string Misc2 Miscellaneous #2

Customer BillTo Import

c# Syntax


	List<Response> SaveCustomerBillTos( List<CustomerBillTo> CustomerBillTos);

REST Syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/Customers/BillTo/Save

The SaveCustomerBillTos method saves one or more new Customer BillTo’s, or updates existing Csutomer BillTo’s. The list of Response objects contains any warnings or errors that occurred while saving or updating the CustomerBillTo’s. The EntityId property of the Response object will be set to the CustomerId property of the CustomerBillTo type. The CustomerBillTo class, along with the descriptions of its properties, is shown below.

For the REST interface, the /Customers/BillTo/Save REST call, the equivalent of the SaveCustomerBillTos c# method, takes an array of CustomerBillTo objects, serialized to JSON, in the request, and returns an array of Response objects, in JSON format, in the response.


public class CustomerBillTo
{
	public string CustomerId { get ;  set; }
	public string Company { get ;  set; }
	public string Contact { get ;  set; }
	public string Phone { get ;  set; }
	public string Fax { get ;  set; }
	public string Email { get ;  set; }
	public string Address { get ;  set; }
	public string Address2 { get ;  set; }
	public string Address3 { get ;  set; }
	public string City { get ;  set; }
	public string State { get ;  set; }
	public string ZipCode { get ;  set; }
	public string Country { get ;  set; }
	public string Misc1 { get ;  set; }
	public string Misc2 { get ;  set; }
	public string UpsAccountNumber { get ;  set; }
	public string UspsAccountNumber { get ;  set; }
	public string FedexAccountNumber { get ;  set; }
	public string SpeeDeeAccountNumber { get ;  set; }
}
Property Description
string VendorId *Customer BillTo ID, used to identify Customer BillTo
string Company Company name
string Contact Contact name
string Phone Contact Phone
string Fax Contact Fax
string Email Contact Email address
string Address BillTo Address
string Address2 BillTo Address2
string Address3 BillTo Address3
string City BillTo City
string State BillTo State
string ZipCode BillTo Zipcode
string Country BillTo Country (2-letter ISO Country code)
string Misc1 Miscellaneous #1
string Misc2 Miscellaneous #2
string UpsAccountNumber BillTo UPS Account number
string UspsAccountNumber BillTo USPS Account number
string FedexAccountNumber BillTo Fedex Account number
string SpeeDeeAccountNumber BillTo SpeeDee Account number

Customer ShipTo Import

c# Syntax


	List<Response> SaveCustomerShipTos( List<CustomerShipTo> customerShipTos);

REST Syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/Customers/ShipTo/Save

The SaveCustomerShipTos method saves one or more new Customer ShipTo’s, or updates existing Customer ShipTo’s. The list of Response objects contains any warnings or errors that occurred while saving or updating the CustomerShipTo’s. The EntityId property of the Response object will be set to the CustomerId property of the CustomerShipTo type. The CustomerShipTo class, along with the descriptions of its properties, is shown below.

For the REST interface, the /Customers/ShipTo/Save REST call, the equivalent of the SaveCustomerShipTos c# method, takes an array of CustomerShipTo objects, serialized to JSON, in the request, and returns an array of Response objects, in JSON format, in the response.


public class CustomerShipTo
{
	public string CustomerId { get ;  set; }
	public string Company { get ;  set; }
	public string Contact { get ;  set; }
	public string Phone { get ;  set; }
	public string Fax { get ;  set; }
	public string Email { get ;  set; }
	public string Address { get ;  set; }
	public string Address2 { get ;  set; }
	public string Address3 { get ;  set; }
	public string City { get ;  set; }
	public string State { get ;  set; }
	public string ZipCode { get ;  set; }
	public string Country { get ;  set; }
	public string Misc1 { get ;  set; }
	public string Misc2 { get ;  set; }
	public string UpsAccountNumber { get ;  set; }
	public string UspsAccountNumber { get ;  set; }
	public string FedexAccountNumber { get ;  set; }
	public string SpeeDeeAccountNumber { get ;  set; }
	public string BillToId { get ;  set; }
	public string BillToName { get ;  set; }
}
Property Description
string VendorId *Customer ShipTo ID, used to identify Customer ShipTo
string Company Company name
string Contact Contact name
string Phone Contact Phone
string Fax Contact Fax
string Email Contact Email address
string Address ShipTo Address
string Address2 ShipTo Address2
string Address3 ShipTo Address3
string City ShipTo City
string State ShipTo State
string ZipCode ShipTo Zipcode
string Country ShipTo Country (2-letter ISO Country code)
string Misc1 Miscellaneous #1
string Misc2 Miscellaneous #2
string UpsAccountNumber ShipTo UPS Account number
string UspsAccountNumber ShipTo USPS Account number
string FedexAccountNumber ShipTo Fedex Account number
string SpeeDeeAccountNumber ShipTo SpeeDee Account number
string BillToId Related BillTo ID
string BillToName Related BillTo Company Name

Customer MarkTo Import

c# Syntax


	List<Response> SaveCustomerMarkTos( List<CustomerMarkTo> customerMarkTos);

REST Syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/Customers/MarkTo/Save

The SaveCustomerMarkTos method saves one or more new Customer MarkTo’s, or updates existing Customer MarkTo’s. The list of Response objects contains any warnings or errors that occurred while saving or updating the Customer MarkTo’s. The EntityId property of the Response object will be set to the CustomerId property of the CustomerMarkTo type. The CustomerMarkTo class, along with the descriptions of its properties, is shown below.

For the REST interface, the /Customers/MarkTo/Save REST call, the equivalent of the SaveCustomerMarkTo c# method, takes an array of CustomerMarkTo objects, serialized to JSON, in the request, and returns an array of Response objects, in JSON format, in the response.


public class CustomerMarkTo
{
	public string CustomerId { get ;  set; }
	public string Company { get ;  set; }
	public string Contact { get ;  set; }
	public string Phone { get ;  set; }
	public string Fax { get ;  set; }
	public string Email { get ;  set; }
	public string Address { get ;  set; }
	public string Address2 { get ;  set; }
	public string Address3 { get ;  set; }
	public string City { get ;  set; }
	public string State { get ;  set; }
	public string ZipCode { get ;  set; }
	public string Country { get ;  set; }
	public string Misc1 { get ;  set; }
	public string Misc2 { get ;  set; }
	public string UpsAccountNumber { get ;  set; }
	public string UspsAccountNumber { get ;  set; }
	public string FedexAccountNumber { get ;  set; }
	public string SpeeDeeAccountNumber { get ;  set; }
	public string BillToId { get ;  set; }
	public string BillToName { get ;  set; }
}
Property Description
string VendorId *Customer MarkTo ID, used to identify Customer MarkTo
string Company Company name
string Contact Contact name
string Phone Contact Phone
string Fax Contact Fax
string Email Contact Email address
string Address MarkTo Address
string Address2 MarkTo Address2
string Address3 MarkTo Address3
string City MarkTo City
string State MarkTo State
string ZipCode MarkTo Zipcode
string Country MarkTo Country (2-letter ISO Country code)
string Misc1 Miscellaneous #1
string Misc2 Miscellaneous #2
string UpsAccountNumber MarkTo UPS Account number
string UspsAccountNumber MarkTo USPS Account number
string FedexAccountNumber MarkTo Fedex Account number
string SpeeDeeAccountNumber MarkTo SpeeDee Account number
string BillToId Related BillTo ID
string BillToName Related BillTo Company Name

ERP Inventory Import

c# Syntax


List<ResponseDto> SaveInvERP( List<InvERPDto> invERPs);
List<ResponseDto> LiveInventoryImport( List<InvERPDto> invERPs);

REST Syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/InventoryERP/Save

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/InventoryERP/LiveInventoryImport

The SaveInvERP method saves one or more new ERP Inventories without any update instead it will delete all previous ERP Inventory first. The list of Response objects contains any warnings or errors that occurred while saving or deleting the new or old ERP Inventory. The InvERPDto class, along with the descriptions of its properties, is shown below.

For the REST interface, the /InventoryERP/Save REST call, the equivalent of the SaveInvERP c# method, takes an array of InvERPDto objects, serialized to JSON, in the request, and returns an array of Response objects, in JSON format, in the response.

The LiveInventoryImport method, inports the inventory lines based on the parameters sent as request.


public class InvERPDto
{	
	public string Warehouse { get ;  set; }
	
	public string Location { get ;  set; }
	
	public string ItemNo { get ;  set; }
	
	public string ItemDesc { get ;  set; }
	
	public string UOM { get ;  set; }
	
	public string EachCount { get ;  set; }
	
	public string Qty { get ;  set; }
    
	public string ReceiveDate { get ;  set; }
   
	public string Misc1 { get ;  set; }
	
	public string Misc2 { get ;  set; }

	public string Misc3 { get ;  set; }
	
	public string Misc4 { get ;  set; }
	
	public string SerialNo { get ;  set; }
}
Property Description
string VendorId Warehouse name
string Location Location name
string ItemNo Item number
string ItemDesc Item decsription
string UOM Item’s inventory Unit of measure
string EachCount Item’s inventory Unit of measure each count
string Qty Item’s inventory in ERP
string ReceiveDate Receive Date "MM/dd/yyyy"
string Misc1 Miscellaneous #1
string Misc2 Miscellaneous #2
string Misc3 Miscellaneous #3
string Misc4 Miscellaneous #4
string SerialNo Serial Number

Ship Orders

c# Syntax


	List<ResponseDto> SaveShipOrders( List<ShipOrder> ShipOrder);
	
	List<ShipOrder> GetShipOrders( DateTime? fromDate, DateTime? toDate, bool qtyEaches, string warehouse);
	
	List<ShipOrderDto> GetShipOrdersForSoNo( string soNo,bool qtyEaches, string warehouse);

REST Syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/ShipOrders/Save

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/ShipOrders

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/ShipOrders/SoNo

The SaveShipOrders method saves one or more new Ship Orders with their details, or updates existing Ship Orders and their details. The ShipOrder class contains the properties for the Ship Order header, and a list of the order details, each being a ShipOrderDetail t ype. The list of Response objects contains any warnings or errors that occurred while saving or updating the Ship Orders. The EntityId property of the Response object will be set to the SoNo property of the ShipOrder type. The ShipOrder and ShipOrderDetail classes, along with the descriptions of their properties, are shown below.

The GetShipOrders method returns a list of Ship Orders that have been closed, but not yet exported. A From Date and To Date can be specified to retrieve a list of Ship Orders within a particular date range. Date range is not required, when left blank all orders that have been shipped where ship qty > export qty will be returned, unless you want a specific range of orders leaving the date fields blank is the best approach.

Also, the order and shipped quantities returned can be returned in Eaches if the qtyEaches parameter is set to true, otherwise, if set to false, it will return order and shipped quantities using UOM quantities. The quantities affected by the qtyEaches parameter are the OrderQty and ShippedQty properties. After the Ship Orders are retrieved, the Ship Order details are marked as being exported by setting the Exported quantity to the Pick quantity. The GetShipOrdersForSoNo is the same as the GetShipOrders method, but retrieves any Ship Orders based on the SoNo of the ship order. Also, there are no date range parameters to the method.

For the REST interface, the /ShipOrders/Save REST call, the equivalent of the SaveShipOrders c# method, expects an array of ShipOrder objects, serialized to JSON, in the request, and returns an array of Response objects, in JSON format, in the response to the REST API call. The /ShipOrders REST call, the equivalent of the GetShipOrders c# method, takes a GetShipOrdersRequest object, serialized to JSON, in the request, and returns an array of ShipOrder objects, in JSON format. The /ShipOrders/SoNo REST call, the equivalent of the GetShipOrdersForSoNo c# method, takes a GetShipOrdersForSoNoRequest object, serialized to JSON, in the request, and returns an array of ShipOrder objects, in JSON format.

public class ShipOrder
{
        public string SoNo { get ;  set; }
        public string ShipInstructions { get ;  set; }
        public string Status { get ;  set; }
        public string ShipWarehouseName { get ;  set; }
        public string ShipMode { get ;  set; }
        public string Email { get ;  set; }
        Public string CustOwnerName { get ;  set; }
	    
        public string OrderDate { get ;  set; }
        public string ShipDate { get ;  set; }
        public string DelivDate { get ;  set; }            
	    public string Address3 { get ;  set; }
	    public string City { get ;  set; }
	    public string ProNo { get ;  set; }
	    public string TrailerNo { get ;  set; }
	    public string CustPo { get ;  set; }
	    public string BolNo { get ;  set; }
	    public string SealNo { get ;  set; }
	    public string InvoiceNo { get ;  set; }
	    public string ProjectNo { get ;  set; }
	    public string ShipMethod { get ;  set; }
	    public string CBol { get ;  set; }
	    public string ShipToId { get ;  set; }
	    public string ShipToName { get ;  set; }
	    public string ShipToAddress { get ;  set; }
	    public string ShipToAddress2 { get ;  set; }
	    public string ShipToCity { get ;  set; }
	    public string ShipToState { get ;  set; }
	    public string ShipToZipCode { get ;  set; }
	    public string ShipToCountry { get ;  set; }
	    public string ShipToPhone { get ;  set; }
	    public string ShipToFax { get ;  set; }
	    public string ShipToContact { get ;  set; }
	    public string ShipToEmail { get ;  set; }
	    public string MarkToId { get ;  set; }
	    public string MarkToName { get ;  set; }
	    public string MarkToAddress { get ;  set; }
	    public string MarkToAddress2 { get ;  set; }
	    public string MarkToCity { get ;  set; }
	    public string MarkToState { get ;  set; }
	    public string MarkToZipCode { get ;  set; }
	    public string MarkToCountry { get ;  set; }
	    public string MarkToPhone { get ;  set; }
	    public string MarkToFax { get ;  set; }
	    public string MarkToContact { get ;  set; }
	    public string MarkToEmail { get ;  set; }
	    public string BillToId { get ;  set; }
	    public string BillToName { get ;  set; }
	    public string MarkToPhone { get ;  set; }
	    public string BillToAddress { get ;  set; }
	    public string BillToAddress2 { get ;  set; }
	    public string BillToCity { get ;  set; }
	    public string BillToState { get ;  set; }
	    public string BillToZipCode { get ;  set; }
	    public string BillToCountry { get ;  set; }
	    public string BillToPhone { get ;  set; }
	    public string BillToFax { get ;  set; }
	    public string BillToContact { get ;  set; }
	    public string BillToEmail { get ;  set; }
	    public double? LoadSeq { get ;  set; }
	    public bool? Transfer  { get ;  set; }
	    public string CustOwnerId { get ;  set; }
	    public string CaseWeight { get ;  set; }
	    public decimal? CaseWeight { get ;  set; }
	    public decimal? CaseSalesPrice { get ;  set; }
	    public List<ShipOrderDetail> ShipOrderDetails { get ;  set; }
        public string Misc1 { get ;  set; }
        public string Misc2 { get ;  set; }
        public string Misc3 { get ;  set; }
        public string Misc4 { get ;  set; }
        public string Misc5 { get ;  set; }
        public string Misc6 { get ;  set; }
        public string Misc7 { get ;  set; }
        public string Misc8 { get ;  set; }
        public string Ecommerce { get; set; }	  
        public string Document { get ;  set; }
        public string TrackingNo { get ;  set; }
        public bool? ShipLTL { get ;  set; }
        public bool? IgnoreImportLock { get ;  set; }
        public bool? Signature { get ;  set; }
        public decimal? TaxRate { get ;  set; }
        public decimal? HandlingCharges { get ;  set; }
        public string WaveNo { get ;  set; }
        public bool? DropShip { get ;  set; }
		public stringPackageType { get ;  set; }
		public bool?SaturdayDelivery { get ;  set; }
		public string PickType { get ;  set; }
		public string PackStageLocation { get ;  set; }
}
Property Description
string SoNo *Ship Order number, used to identify Ship Order
string ShipInstructions Shipping instructions
string Status *Ship Order Status (possible values are “Open”, “Partial”, “Closed”, “Shipped”), new orders default to Open
string ShipWarehouseName *Warehouse name
string ShipMode Ship Mode (Carrier), like UPS, USPS, Fedex, etc.
string CustOwnerName Customer Owner name
string OrderDate *Order Date in "MM-dd-yyyy" format
string StringOrderDate Order Date in "MM-dd-yyyy" format (Not Need if OrderDate [above] has value )
string ShipDate Ship Date in "MM-dd-yyyy" format
string DelivDate Delivery Date in "MM-dd-yyyy" format
string ProNo Pro Number
string TrailerNo Trailer Number
string CustPo Customer PO number
string BolNo BOL Number
string SealNo Seal Number
string InvoiceNo Invoice Number
string ProjectNo Project Number
string ShipMethod Shipping Method of Ship Mode/Carrier
string CBol CBOL
string ShipToId *Customer ShipTo ID
string ShipToName Customer ShipTo Company Name
string ShipToAddress Customer ShipTo Address
string ShipToAddress2 Customer ShipTo Address2
string ShipToCity Customer ShipTo City
string ShipToState Customer ShipTo State
string ShipToZipCode Customer ShipTo Zipcode
string ShipToCountry Customer ShipTo Country (2-letter ISO Country code)
string ShipToPhone Customer ShipTo Contact Phone
string ShipToFax Customer ShipTo Contact Fax
string ShipToContact Customer ShipTo Contact name
string ShipToEmail Customer ShipTo Email address
string MarkToId Customer MarkTo ID
string MarkToName Customer MarkTo Company Name
string MarkToAddress Customer MarkTo Address
string MarkToAddress2 Customer MarkTo Address2
string MarkToCity Customer MarkTo City
string MarkToState Customer MarkTo State
string MarkToZipCode Customer MarkTo Zipcode
string MarkToCountry Customer MarkTo Country (2-letter ISO Country Code)
string MarkToPhone Customer MarkTo Contact Phone
string MarkToFax Customer MarkTo Contact Fax
string MarkToContact Customer MarkTo Contact name
string MarkToEmail Customer MarkTo Email address
string BillToId Customer BillTo ID
string BillToName Customer BillTo Company Name
string BillToAddress Customer BillTo Address
string BillToAddress2 Customer BillTo Address2
string BillToCity Customer BillTo City
string BillToState Customer BillTo State
string BillToZipCode Customer BillTo Zipcode
string BillToCountry Customer BillTo Country (2-letter ISO Country code)
string BillToPhone Customer BillTo Contact Phone
string BillToFax Customer BillTo Contact Fax
string BillToContact Customer BillTo Contact name
string BillToEmail Customer BillTo Email address
double? LoadSeq Load Sequence
bool? Transfer Transfer (true, false)
string CustOwnerId Customer Owner ID
decimal? CaseWeight Case Weight
decimal? CaseSalesPrice Case Sales Price
List List of Ship Order details
ShipOrderDetails
string Misc1 Miscellaneous #1
string Misc2 Miscellaneous #2
string Misc3 Miscellaneous #3
string Misc4 Miscellaneous #4
string Misc5 Miscellaneous #5
string Misc6 Miscellaneous #6
Miscellaneous #7
string Misc8 Miscellaneous #8
String Ecommerce Ecommerce (name of provider)
String Ecommerce Ecommerce (name of provider)
String Document Document (name of a documnet [Max Length 30])
String TrackingNo Tracking Numbers of the Shipped Orders(if any)
bool? ShipLTL When True, Order will Ship Via LTL. Default false
bool? IgnoreImportLock When True, Order update will be continued even if ImportLock is true. Default false
bool? Signature When True, Order Signature flag will be added to integrator API Call. Default false
decimal? TaxRate Tax Rate for the items on the Orders
decimal? HandlingCharges Handling Charges for the Order
string WaveNo WaveNo assoiciated with the Order
bool? DropShip Flag for DropShip orders
string PackageType Package Type
bool? SaturdayDelivery Saturday Delivery
String PickType Pack/Stage/Ship
string PackStageLocation Location/Bin Name

public class ShipOrderDetail
{
	public int? SoLine  { get ;  set; }
	public string ItemNo { get ;  set; }
	public string LotNo { get ;  set; }
	public string SerialNo { get ;  set; }
	public decimal? OrderQty { get ;  set; }
	public decimal? PickQty { get ;  set; }
	public decimal? ShippedQty { get ;  set; }
	public string DispMsg { get ;  set; }
	public string Misc1 { get ;  set; }
	public string Misc2 { get ;  set; }
	public string Misc3 { get ;  set; }
	public string Misc4 { get ;  set; }
	public string Misc5 { get ;  set; }
	public string Misc6 { get ;  set; }
	public string Misc7 { get ;  set; }
	public string Misc8 { get ;  set; }
	  
    public string PickDate { get ;  set; }
	public decimal? AllocatedQty { get ;  set; }
	public decimal? PackedQty { get ;  set; }
	public decimal? RecvQty { get ;  set; }
	public string ItemUomName { get ;  set; }
	public string VendorId { get ;  set; }
	public string VendorIdName { get ;  set; }
	public string VendorIdAddress { get ;  set; }
	public string VendorIdAddress2 { get ;  set; }
	public string VendorIdCity { get ;  set; }
	public string VendorIdState { get ;  set; }
	public string VendorIdZip { get ;  set; }
	public string VendorIdCountry { get ;  set; }
	public string ContainerName { get ;  set; }
	public long? ItemUnitQuantity  { get ;  set; }
	public string ItemDesc { get ;  set; }
	public long? CaseSalesPrice { get ;  set; }
	public decimal? CaseWeight { get ;  set; }
	public string BoxID { get ;  set; }
    public string TransparencyNum { get ;  set; }
	public string Location { get ;  set; }
	public decimal? UnitSalesPrice { get ;  set; }
    public decimal? UnitCost { get ;  set; }
	public bool? CrossDock { get ;  set; }
}
Property Description
int? SoLine *Ship Order Line number
string ItemNo *Item Number
string LotNo Lot number
string SerialNo Serial Number
decimal? OrderQty *Ordered Quantity
decimal? PickQty Pick Quantity, in eaches
decimal? ShippedQty Shipped Quantity
string DispMsg Display Message
string Misc1 Miscellaneous #1
string Misc2 Miscellaneous #2
string Misc3 Miscellaneous #3
string Misc4 Miscellaneous #4
string Misc5 Miscellaneous #5
string Misc6 Miscellaneous #6
string Misc7 Miscellaneous #7
string Misc8 Miscellaneous #8
string PickDate Pick Date "MM-dd-yyyy" format
decimal? AllocatedQty Allocated Quantity
decimal? PackedQty Packed Quantity
decimal? RecvQty Receive Quantity
string ItemUomName *Item Unit of Measure name
string VendorId Vendor ID
string VendorIdName Vendor Company Name
string VendorIdAddress Vendor Address
string VendorIdAddress2 Vendor Address2
string VendorIdCity Vendor City
string VendorIdState Vendor State
string VendorIdZip Vendor Zipcode
string VendorIdCountry Vendor Country (2-letter ISO Country code)
string ContainerName Container Name
long? ItemUnitQuantity *Item Unit Quantity, default to 1
string ItemDesc Item Description
long? CaseSalesPrice Case Sales Price
decimal? CaseWeight Case Weight
string BoxID Box ID
string TransparencyNum Transparency Number
string Location Location/Bin Name
decimal? UnitSalesPrice Value for UnitSalesPrice
decimal? UnitCost Value for UnitCost
bool? CrossDock Flag Order Line as CrossDock

public class GetShipOrdersRequest
{
	public DateTime? FromDate { get ;  set; }
	public DateTime? ToDate { get ;  set; }
	public bool QtyEaches { get ;  set; }
	public string Warehouse  { get ;  set; }
    public string StringFromDate  { get ;  set; }
    public string StringToDate  { get ;  set; }
}
Property Description
DateTime? FromDate Same as the FromDate parameter of the GetShipOrders method
DateTime? ToDate Same as the ToDate parameter of the GetShipOrders method
bool QtyEaches Same as the QtyEaches parameter of the GetShipOrders method.
String Warehouse Warehouse name
string StringFromDate Starting Order Date in string format MM-dd-yyyy
string StringToDate End Order Date in string format MM-dd-yyyy

public class GetShipOrdersForSoNoRequest
{
	public String SoNo { get ;  set; }
	public bool? QtyEaches { get ;  set; }
	public string Warehouse  { get ;  set; }
	public DateTime? FromDate { get ;  set; }
}
Property Description
String SoNo Same as the SoNo parameter of the GetShipOrdersForSoNo method
bool? QtyEaches Same as the QtyEaches parameter of the GetShipOrdersForSoNo method.
String Warehouse Warehouse name
DateTime? FromDate Same as the FromDate parameter of the GetPurchaseOrders method

GenWaves

c# Syntax


ResponseDto GenWaves(WaveDto Wave );

REST Syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/GenWaves

The GenWaves method, picking multiple order on Wave. The list of Response objects contains any warnings or errors that occurred while saving the new Wave. The GenWaves class, along with the descriptions of its properties, is shown below.

The GenWaves method, imports the picking order based on the parameters sent as request.


public class WaveDto
{	
	public string Warehouse { get ;  set; }
	
	public string FromOrder { get ;  set; }
	
	public string ToOrder { get ;  set; }
	
	public DateTime FromShipDate { get ;  set; }
	
	public DateTime ToShipDate { get ;  set; }
	
	public string OrderStatus { get ;  set; }
    
	public int FromLineCount { get ;  set; }
   
	public int ToLineCount { get ;  set; }
	
	public int FromPieceCount { get ;  set; }

	public int ToPieceCount { get ;  set; }
	
	public string Carrier { get ;  set; }
	
	public string CarrierMethod { get ;  set; }
	
	public bool ProductSN { get ;  set; }
	
	public bool Doublebox { get ;  set; }
	
	public bool NoBox { get ;  set; }
	
	public string ItemNo { get ;  set; }
	
	public string Ecommerce { get ;  set; }
	
	public int NoOfOrderOnWave { get ;  set; }
}
Property Description
string Warehouse Warehouse name
string FromOrder The FromOrder of the GenWaves Method
string ToOrder The ToOrder of the GenWaves Method
DateTime FromShipDate The FromShipDate Date parameter of the GenWaves method
DateTime ToShipDate The ToShipDate Date parameter of the GenWaves method
string OrderStatus Order Status (possible values are “Open”, “Partial”, “Closed”, “Shipped”)
int FromLineCount FromLineCount
int ToLineCount ToLineCount
int FromPieceCount FromPieceCount
int ToPieceCount ToPieceCount
string Carrier Carrier like UPS, Fedex, USPS or Best Way.
string CarrierMethod CarrierMethod like Ground, By air, Standard or By Train
bool ProductSN ProductSN
bool Doublebox Doublebox
bool NoBox NoBox
string ItemNo Item number
string Ecommerce Ecommerce (name of provider)
int NoOfOrderOnWave Number of Order on Wave

Inventory Export

c# Syntax


[Serializable]
public classGetInventoryRequest
{
        public  DateTime? FromDate { get ;  set; }
        public  DateTime? ToDate { get ;  set; }
        public bool QtyEaches { get ;  set; }  
        public string Warehouse { get ;  set; } 
        public string CustOwner { get ; set; }  
}

REST Syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServicesREST/GetInventory

The GetInventory method exports available inventory as per given dates range. The list of Inventory objects contains all exported data details. The Inventory class, along with the descriptions of its properties, is shown below. For the REST interface, the GetInventory REST call, the equivalent of the GetInventory c# method, takes from date, to date, qty in eaches and warehouse parameters, serialized into JSON format, in the request, and returns an array of Inventory objects, in JSON format.


[DataContract(
        Name = "Inventory",
        Namespace = "http://wms.northstar-automation.com/NorthstarWmsIntegration/DTO/2015/03")]

public class Inventory
{	
  public string  Warehouse { get ;  set; }  
  public string  Location { get ;  set; }  
  public string  LocationTypes { get ;  set; }  
  public string  BinType { get ;  set; }  
  public string  ItemNo { get ;  set; }  
  public string  UpcNo { get ;  set; }  
  public string  ItemDesc { get ;  set; }  
  public decimal ? Quantity { get ;  set; }  
  public decimal ? StockWeight { get ;  set; }  
  public string  ItemUomName { get ;  set; }  
  public long? ItemUnitQuantity { get ;  set; }  
  public string  RopMin { get ;  set; }  
  public string  CustOwnerName { get ;  set; }  
  public string  CustOwnerName{ get ;  set; }
  public long? RopMin { get ;  set; }   
  public decimal? SalesPrice { get ;  set; }  
  public decimal? UnitCost { get ;  set; }  
  public string  Container { get ;  set; }  
  public string  LotNo { get ;  set; }    
  public DateTime? ReceiveDate { get ;  set; }  
  public string  SerialNo { get ;  set; }  
  public string  Allocated Order# { get ;  set; }  
  public string  Misc1 { get ;  set; }  
  public string  Misc2 { get ;  set; }  
  public string  Misc3 { get ;  set; }  
  public string  Misc4 { get ;  set; }  
  public string  Misc5 { get ;  set; }  
  public string  Misc6 { get ;  set; }  
  public string  Misc7 { get ;  set; }  
  public string  Misc8 { get ;  set; }    
  public string  AllocatedSO { get ;  set; }    
}
Property Description
Warehouse Warehouse pulled from
Location Inventory location
LocationTypes Comma Separated Inventory Location/Bin Types
Bin Type Location Type
string ItemNo *Item number, used to identify item
string UpcNo UPC number
string ItemDesc *Item description
long? OnhandQty Quantity onhand
decimal? StockWgt Stock weight
string ItemUomName *Item UOM name, for Item Unit Quantity
long? ItemUomQuantity *Item UOM Quantity, for Item Unit Quantity, default to 1
string OwnerName Owner Name
long? RopMin Reorder minimum
Decimal SalesPrice Sale price
Decimal UnitCost Unit Cost
string Container Pallet/container
string Lotno Lot number
string Lotno Serial number
DateTime ReceiveDate Receive date of item
string AllocatedOrder Order items is allocated to
string Misc1 Miscellaneous #1
string Misc2 Miscellaneous #2
string Misc3 Miscellaneous #3
string Misc4 Miscellaneous #4
string Misc5 Miscellaneous #5
string Misc6 Miscellaneous #6
string Misc7 Miscellaneous #7
string Misc8 Miscellaneous #8
decimal? CaseSalesPrice Case Sales Price
string AllocatedSO Allocated SO No

Inventory By ItemNumber

c# Syntax


publicList<Inventory> GetInventoryByItemNo( string itemNo,  string warehouse = "", string bin = "", string misc1 = "")
{	
	var getInvsRequestByItemNo = new GetInventoryRequestByItemNo
	{
        ItemNo = itemNo;
		Warehouse = warehouse;
        Bin = bin;
        Misc1 = misc1;
	};
	var requestData = SerializeToJson(getInvsRequest);
	var request = string.Format("{0}/GetInventoryByItemNo", RestServiceAddress);
	var response = ExecuteTwoWayRequest <Inventory[]>(request, HttpMethod.Post, requestData);
	return response.ToList();
}
[Serializable]
public classGetInventoryRequestByItemNo
{
  public  string ItemNo { get ;  set; }
  public  string Warehouse { get ;  set; }
  public string Bin { get ;  set; }  
  public string Misc1 { get ;  set; }  
}

REST Syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServicesREST/GetInventoryByItemNo

The GetInventoryByItemNo method exports available inventory as per given parameters. The list of Inventory objects contains all exported data details. The Inventory class, along with the descriptions of its properties, is shown below. For the REST interface, the GetInventoryByItemNo REST call, the equivalent of the GetInventoryByItemNo c# method, takes ItemNo, Warehouse, Bin and Misc1 parameters, serialized into JSON format, in the request, and returns an array of Inventory objects, in JSON format.


[DataContract(
        Name = "Inventory",
        Namespace = "http://wms.northstar-automation.com/NorthstarWmsIntegration/DTO/2015/03")]

public class Inventory
{	
    public string  Warehouse { get ;  set; }  
    public string  Location { get ;  set; }  
    public string  LocationTypes { get ;  set; }  
    public string  BinType { get ;  set; }  
    public string  ItemNo { get ;  set; }    
    public string  ItemDesc { get ;  set; }  
    public decimal ? Quantity { get ;  set; }    
    public string  ItemUomName { get ;  set; }  
    public long? ItemUnitQuantity { get ;  set; }  
    public string  CustOwnerName { get ;  set; }
    public string  RopMin { get ;  set; }  
    public decimal? SalesPrice { get ;  set; }  
    public string  Container { get ;  set; }  
    public string  LotNo { get ;  set; }    
    public DateTime? ReceiveDate { get ;  set; }  
    public string  SerialNo { get ;  set; }  
    public string  Misc1 { get ;  set; }  
    public string  Misc2 { get ;  set; }  
    public string  Misc3 { get ;  set; }  
    public string  Misc4 { get ;  set; }     
}
Property Description
Warehouse Warehouse pulled from
Location Inventory location
LocationTypes Comma Separated Inventory Location/Bin Types
Bin Type Location Type
string ItemNo *Item number, used to identify item
string ItemDesc *Item description
decimal? Quantity Quantity onhand
string ItemUomName *Item UOM name, for Item Unit Quantity
long? ItemUomQuantity *Item UOM Quantity, for Item Unit Quantity, default to 1
string OwnerName Owner Name
long? RopMin Reorder minimum
Decimal SalesPrice Sale price
string Container Pallet/container
string Lotno Lot number
DateTime? ReceiveDate Receive date of item
string SerialNo Serial number
string Misc1 Miscellaneous #1
string Misc2 Miscellaneous #2
string Misc3 Miscellaneous #3
string Misc4 Miscellaneous #4

KitImport

c# Syntax


public void btnImportKits_Click ( object, sender, EventArgse);
{	
	var items = new List<Kit>();
	var item1 = new Kit();
	 {
                KitItemNo = "Kit011519_02", /// this is a kit
                KitItemDescription = "The Kit desc",  /// this is a kit desc
                KitUOM = "Dozen",  /// this is a kit uom primary setup
                KitEachCount = 2, /// this is a kit uom qty primary setup
                LotNo = "LT-new",  /// created lot under kit tab
                KitYield = 2.45M, /// yield under kit tab
                MixInstruction = "mix ins",
                PackingInstruction = "pack ins",
                BakersInstruction = "handle ins",
 
                KitCost = 2.10M,  /// not showing on screen, kitunitcost is in kit table
                KitDescription = "kit desc under kit table",  //not showing on screen, is in kit table
            };
				var items = new List<KitItems>();
			var kitDetail1  = new KitItems();
	            {
	                ItemNo = "Kit012219_00",
	                ItemDescription = "kit first sub comp",
	                KitItemEachCount = 3,
	                KitItemUOM = "Pall",
	                BakersPercentage = 3.01M,
	                ProdPercent = .023M,
	                KitQty = 2,
	            };
	            item1.KitItems.Add(kitDetail1);
	            var kitDetail2 = new KitItems
	            {
	                ItemNo = "Kit012219_01",
	                ItemDescription = "kit second sub comp",
	                KitItemEachCount = 4,
	                KitItemUOM = "Case",
	                BakersPercentage = 5.01M,
	                ProdPercent = .05M,
	                KitQty = 6,
	            };
	            item1.KitItems.Add(kitDetail2);
	            items.Add(item1);
	            
	            var response = ServiceMethods.SaveKits(items);
	            if (response == null) return;
	 
	            ShowResults(response, "Kit");
	        }

	Service Method:

	public List<Response> SaveKits(List<Kit> kits)
	        {
	            var requestData = SerializeToJson(kits.ToArray());
	            var request = string.Format("{0}/Kits/Save", RestServiceAddress);
	            var response = ExecuteTwoWayRequest<Response[]>(request, HttpMethod.Post, requestData);
	            return response.ToList();
	        }

	Classes: 

	 [DataContract(
	         Name = "Kit",
	         Namespace = "http://wms.northstar-automation.com/NorthstarWmsIntegration/DTO/2015/03")]
	    public class Kit
	    {
	        private List<KitItems> _KitItems;
	 
	        [DataMember(Name = "KitItemNo", IsRequired = true, Order = 0)]
	        public string KitItemNo { get; set; }
	 
	        [DataMember((Name = "KitItemDescription", IsRequired = true, Order = 1)]
	        public string( KitItemDescription { get; set; }
	 
	        [DataMember(Name = "KitItems", IsRequired = true, Order = 2)]
	        public List<KitItems> KitItems
	        {
	            get { return _KitItems ?? (_KitItems = new List<KitItems>()); }
	            set { _KitItems = value; }
	        }
	 
	        [DataMember(Name = "KitUOM", IsRequired = false, Order = 3)]
	        public string KitUOM { get; set; }
	 
	        [DataMember(Name = "KitEachCount", IsRequired = false, Order = 4)]
	        public long? KitEachCount { get; set; }
	 
	        [DataMember(Name = "BakersInstruction", IsRequired = false, Order = 5)]
	        public string BakersInstruction { get; set; }
	 
	        [DataMember(Name = "KitYield", IsRequired = false, Order = 6)]
	        public decimal? KitYield { get; set; }
	 
	        [DataMember(Name = "MixInstruction", IsRequired = false, Order = 7)]
	        public string MixInstruction { get; set; }
	 
	        [DataMember(Name = "PackingInstruction", IsRequired = false, Order = 8)]
	        public string PackingInstruction { get; set; }
	 
	        [DataMember(Name = "LotNo", IsRequired = false, Order = 9)]
	        public string LotNo { get; set; }
	 
	        [DataMember(Name = "KitCost", IsRequired = false, Order = 10)]
	        public decimal? KitCost { get; set; }
	 
	        [DataMember(Name = "KitDescription", IsRequired = false, Order = 11)]
	        public string KitDescription { get; set; }
	    }
	 
	    [DataContract(
	        Name = "KitItems",
	        Namespace = "http://wms.northstar-automation.com/NorthstarWmsIntegration/DTO/2015/03")]
	     public class KitItems
	    {
	        public long SoId { get; set; }
	 
	        [DataMember(Name = "ItemNo", IsRequired =  true, Order = 0)]
	        public string ItemNo { get; set; }
	 
	        [DataMember(Name = "ItemDescription", IsRequired =  true, Order = 1)]
	        public string ItemDescription { get; set; }
	 
	        [DataMember(Name = "KitItemEachCount", IsRequired =  true, Order = 2)]
	        public long? KitItemEachCount { get; set; }
	 
	        [DataMember(Name = "KitItemUOM", IsRequired =  true, Order = 3)]
	        public string KitItemUOM { get; set; }
	 
	        [DataMember(Name = "KitQty", IsRequired =  true, Order = 4)]
	        public decimal? KitQty { get; set; }
	 
	        [DataMember(Name = "BakersPercentage", IsRequired =  false, Order = 5)]
	        public decimal? BakersPercentage { get; set; }
	 
	        [DataMember(Name = "ProdPercent", IsRequired =  false, Order = 6)]
	        public decimal? ProdPercent { get; set; }
	    
}

Item Image Import

c# Syntax

		Response SaveItemImage(ItemImage itemImage)		

REST Syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/Items/Image/Save

The SaveItemImage method saves an image for a given Item. Both the c# and REST interfaces take an ItemImage class and is detailed below. Both return a Response object containing any warnings or errors that occurred while saving the image. The Image property of the SaveItemImage class takes an array of byte data. The binary data of the image file can be set using the following code. It is assumed that the imageFileName variable in the code below has already been set to the full path and file name of the image to be saved, perhaps by using the File Open dialog box control.

				
				const string itemNo = "TEST ITEM 10001";
				const int imageNo = 1;
				const string itemFilename = "TestItem10001Image.jpg";

				var fileStream = new FileStream(imageFilename, FileMode.Open, FileAccess.Read); 
				var binaryReader = new BinaryReader(fileStream);												
				var totalBytes = new FileInfo(imageFilename).Length;
				var image = binaryReader.ReadBytes((int) totalBytes);
				fileStream.Close();
				fileStream.Dispose();
				binaryReader.Close();

				var itemImage = new ItemImage
				{
				ItemNo = itemNo,
				ImageNo = imageNo,
				FileName = itemFilename,
				Image = image
				};
				Below is the description of the ItemImage class.


				public class ItemImage
				{
				public string ItemNo { get; set; }
				public int ImageNo { get; set; }
				public string FileName { get; set; }
				public byte[] Image { get; set; }
				}
Property Description
string ItemNo Item Number of the Item the image is to be saved to
int ImageNo Item Image Number (1, 2, or 3)
string FileName File name of the image, including image file extension, without the file path
byte[] Image Binary data of the image file

Delete SO/Lines

Calling demo code


var data = newList<DeleteShipOrder>();
	var order  = newDeleteShipOrder
		{
			SoNo = "API_test",
			ShipWarehouseName = "17FR",
			DeleteOrder = true,// if true, the entire order would deleted including every line and other dependencies, otherwise only lines that have ‘Picked Qty’ less than or equal to 0 would be delete. Will not delete lines that have been picked.
            ReturnInv = true,// if true, the picked Inventory will be added back to Its original location from it was last picked.
		};
		var details = new List<DeleteShipOrderDetail>();
		/// as per current implemented logic, line/s is/are not required to be passed 
		
		 order.DeleteShipOrderDetails = details;
		 
		 data.Add(order);
		 
		  var  response = ServiceMethods.DeleteShipOrders(data);
		 

Calling signature

					public List<Response>DeleteShipOrders(ListdeleteShipOrders)
					{
						var requestData = SerializeToJson(deleteShipOrders.ToArray());
						var request = string.Format("{0}/ShipOrders/Delete", RestServiceAddress);
						var response = ExecuteTwoWayRequest <Response[]>(request, HttpMethod.Post, requestData);
						return response.ToList();
					}
				

Classes

					[DataContract(
						Name = "DeleteShipOrder",
						Namespace = "http://wms.northstar-automation.com/NorthstarWmsIntegration/DTO/2015/03")]
						public class DeleteShipOrder
						{
							[DataMember(Name = "SoNo", IsRequired = true, Order = 0)]
							
							public string SoNo{ get;  set; }
							
							
							[DataMember(Name = "ShipWarehouseName", IsRequired = true, Order = 1)]
							
							public string ShipWarehouseName{ get;  set; }
							
							
							[DataMember(Name = "DeleteOrder", IsRequired = true, Order = 2)]
							
							public bool  DeleteOrder{ get;  set; }
							
							
							[DataMember(Name = "DeleteShipOrderDetail", IsRequired = true, Order = 3)]
							
							public List<DeleteShipOrderDetails>{ get;  set; }						
							
							
						}
						
							[DataContract(
							Name = "DeleteShipOrderDetail",
							Namespace = "http://wms.northstar-automation.com/NorthstarWmsIntegration/DTO/2015/03")]
							public class DeleteShipOrderDetail
							
							{
							
								[DataMember(Name = "SoLine", IsRequired = true, Order = 0)]
							
								 public int? SoLine { get;  set; }

								
								[DataMember(Name = "ItemNo", IsRequired = true, Order = 1)]
							
								 public string ItemNo { get;  set; }								
							
								
								[DataMember(Name = "ItemUomName", IsRequired = true, Order = 1)]
							
								 public string ItemUomName { get;  set; }
																
								
								[DataMember(Name = "ContainerName", IsRequired = true, Order = 1)]
							
								 public string ContainerName { get;  set; }
																
								
								[DataMember(Name = "SoNo", IsRequired = true, Order = 1)]
							
								 public string SoNo { get;  set; }
							}
					

Delete PO/Lines

Calling demo code


var data = newList<DeletePurchaseOrder>();
	var order  = newDeletePurchaseOrder
		{
			PoNo  = "API_test",
			WarehouseName  = "17FR",
			DeleteOrder  = true,// if true, entire order would delete including every line and other dependencies if status is Closed or Open, otherwise only lines which have ‘Received Qty’ less than or equal to 0 will be deleted.
            DeleteAll = true,// if true, entire order would delete including every line and other dependencies Regardless of the Sataus and Recv Qty.
		};
		var details = new List<DeletePurchaseOrderDetail>();
		/// as per current implemented logic, line/s is/are not required to be passed
		
		 order.DeletePurchaseOrderDetails = details;
		 
		data.Add(order);
		 
		  var  response = ServiceMethods.DeletePurchaseOrders(data);
		 

Calling signature

					public List<Response>DeleteShipOrders(ListdeleteShipOrders)
					{
						var requestData = SerializeToJson(deleteShipOrders.ToArray());
						var request = string.Format("{0}/ShipOrders/Delete", RestServiceAddress);
						var response = ExecuteTwoWayRequest <Response[]>(request, HttpMethod.Post, requestData);
						return response.ToList();
					}
					
					public List<Response>DeletePurchaseOrders(ListDeletePurchaseOrders)
					{
						var requestData = SerializeToJson(DeletePurchaseOrders.ToArray());
						var request = string.Format("{0}/PurchaseOrders/Delete", RestServiceAddress);
						var response = ExecuteTwoWayRequest <Response[]>(request, HttpMethod.Post, requestData);
						return response.ToList();
					}
				

Classes

					[DataContract(
						Name = "DeletePurchaseOrder",
						Namespace = "http://wms.northstar-automation.com/NorthstarWmsIntegration/DTO/2015/03")]
						public class DeletePurchaseOrder
						{
							
							[DataMember(Name = "WarehouseName", IsRequired = true, Order = 0)]
							
							 public string  WarehouseName { get;  set; }
							
							
							[DataMember(Name = "PoNo", IsRequired = true, Order = 1)]
							
							 public string PoNo { get;  set; }								
							
							
							[DataMember(Name = "DeleteOrder", IsRequired = true, Order = 1)]
							
							 public string DeleteOrder { get;  set; }
															
							
							[DataMember(Name = "DeletePurchaseOrderDetail", IsRequired = true, Order = 1)]
							
							 public string DeletePurchaseOrderDetail { get;  set; }
							
							
							public List<DeletePurchaseOrderDetail > DeletePurchaseOrderDetails  { get;  set; }
							
							
							[DataContract(
							Name = "DeletePurchaseOrderDetail",
							Namespace = "http://wms.northstar-automation.com/NorthstarWmsIntegration/DTO/2015/03")]
							public class DeletePurchaseOrderDetail
							
							{
							
								[DataMember(Name = "PoLine", IsRequired = true, Order = 0)]
							
								 public int? PoLine { get;  set; }

								
								[DataMember(Name = "ItemNo", IsRequired = true, Order = 1)]
							
								 public string ItemNo { get;  set; }								
							
								
								[DataMember(Name = "ItemUomName", IsRequired = true, Order = 1)]
							
								 public string ItemUomName { get;  set; }
																
								
								[DataMember(Name = "LotNo", IsRequired = true, Order = 1)]
							
								 public string LotNo { get;  set; }
																
								
								[DataMember(Name = "PoNo", IsRequired = true, Order = 1)]
							
								 public string PoNo { get;  set; }
							}
						}
					

Delete Item

Calling demo code


var data = newList<DeleteItem>();
	var erp   = newDeleteItem
		{
			ItemNo  = "API_test",
			
		};
			data.Add(erp);
			
		  var  ServiceMethods.DeleteItems(data);
		 

Calling signature

					public List<Response>DeleteItems(List<DeleteItem>deleteItems)
					{
						var requestData = SerializeToJson(deleteItems.ToArray());
						var request = string.Format("{0}/Items/Delete", RestServiceAddress);
						var response = ExecuteTwoWayRequest <Response[]>(request, HttpMethod.Post, requestData);
						return response.ToList();
					}
					
					
				

Classes

					[DataContract(
						Name = "DeleteItem",
						Namespace = "http://wms.northstar-automation.com/NorthstarWmsIntegration/DTO/2015/03")]
						public class DeleteItem
						{
							
							[DataMember(Name = "ItemNo", IsRequired = true, Order = 0)]
							
							 public string  ItemNo { get;  set; }
						}
					
				

Cube Import

c# Syntax

	public List<Response> SaveCubes(List<CubeMasterdto> cube)
				{
					return NorthstarWmsIntegrationImpl.SaveCubes(cube);
				} 

REST syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/Cubes/Save

		
	 public  class CubeMasterdto
	{
		 public string CubeId {  get;  set; }
		 public string CubeDesc { get;  set; }
		 public bool? LocationType { get;  set;}
		 public bool? ContainerPalletType {  get;  set; }
		 public bool? ItemType { get;  set;}
		 public bool? BoxType { get;  set;}
		 public bool? CubeByVolume { get;  set;}
		 public bool? CubeByEaches { get;  set;}
		 public bool? CubeByWeight { get;  set;}
		 public double? Length {  get;  set;}
		 public double? Width {  get;  set; }
		 public double? Height {  get;  set; }
		public string UOMEaches { get;  set; }
		public double? Weight {  get;  set; }
	}

Property Description
string CubeId Cube Id
string CubeDesc Cube Description
bool? LocationType Location Type
bool? ContainerPalletType Container Pallet Type
bool? ItemType Item Type
bool? BoxType Box Type
bool? CubeByVolume Cube By Volume
bool? CubeByEaches Cube By Eaches
bool? CubeByWeight Cube By Weight
double? Length Length
double? Width Width
double? Height Height
string UOMEaches UOM Eaches
double? Weight Weight

ASN

c# Syntax

	
	
	List<ASNInfo> GetASN( GetASNRequest request);	

REST Syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/ASN

The GetASN method return ASN details.

The GetASN method returns a list of Ship Orders that have been shipped QTy greater than Exported Qty. All orders that have been shipped where ship qty > export qty will be returned.

For the REST interface, the /ASN REST call, the equivalent of the GetASN c# method, expects an GetASNRequest object, serializable to JSON, in the request, and returns an array of ASNInfo objects, in JSON format, in the response to the REST API call.


public class ASNInfo
{
    public string WhouseName { get ;  set; }
    public string OrderNumber { get ;  set; }
    public string ItemNumber { get ;  set; }
    public string LineNo { get ;  set; }
    public int ActualQty { get ;  set; }
    public string CustomerName { get ;  set; }
    public string ShipToID { get ;  set; }
    public string ShipToName { get ;  set; }
    public string OrderDate { get ;  set; }
    public decimal? ShippingCharges { get ;  set; }
    public string TrackingNo { get ;  set; }
    public string Carrier { get ;  set; }
    public string BoxSSCCNo { get ;  set; }
    public int BoxNo { get ;  set; }
    public string PalletNo { get ;  set; }
    public decimal? Weight { get ;  set; }
    public string PalletSSCCNo { get ;  set; }
    public string BOLNo { get ;  set; }       
    public string ShipMethod { get ;  set; }
    public DateTime? DateTime { get ;  set; }
    public string UTCTimeZone { get ;  set; }
    public string Misc1 { get ;  set; }
    public string Misc2 { get ;  set; }
    public string Misc3 { get ;  set; }
    public string Misc4 { get ;  set; }
    public string Misc5 { get ;  set; }
    public string Misc6 { get ;  set; }
    public string Misc7 { get ;  set; }
    public string Misc8 { get ;  set; }
    public string DetailMisc1 { get ;  set; }
    public string DetailMisc2 { get ;  set; }
    public string DetailMisc3 { get ;  set; }
    public string CarrierDesc { get ;  set; }
    public string TransparencyNum { get ;  set; }
    public string SerialNo { get ;  set; }
    public DateTime? ShipDate { get ;  set; }
}
Property Description
string WhouseName Ware House Name
string OrderNumber Ship Order Number
string ItemNumber SO Line Item number
int LineNo SO Line Number
decimal? ActualQty Total QTY
string CustomerName Name of Bill To Customer
string ShipToID Ship To customer ID
string ShipToName Shipto Company name
string OrderDate Date of Order
decimal? ShippingCharges Shipping Charges
string TrackingNo Shipping Tracking Number
string Carrier Shipping mode
string BoxSSCCNo SSCCBoxNo
int BoxNo Box Number
string PalletNo Pallet number
decimal? Weight Weight
string PalletSSCCNo SSCCPalletNo
string BOLNo Bol Number
string ShipMethod Method of Shipping
DateTime? DateTime Current DateTime as Per Warehouse Setting
string UTCTimeZone Time Zone as per Ware House Setting
string Misc1 SO Master Misc1
string Misc2 SO Master Misc2
string Misc3 SO Master Misc3
string Misc4 SO Master Misc4
string Misc5 SO Master Misc5
string Misc6 SO Master Misc6
string Misc7 SO Master Misc7
string Misc8 SO Master Misc8
string DetailMisc1 SO Detail Msc1
string DetailMisc2 SO Detail Msc2
string DetailMisc3 SO Detail Msc3
string CarrierDesc SO Master Ship Type Description
string TransparencyNum SO Detail TransparencyNum
string SerialNo SO Detail SerialNo
DateTime? ShipDate Order Ship Date

public class GetASNRequest
{
    public string Warehouse { get ;  set; }
    public bool? UpdateSOOrderExportQuantityfromASN { get ;  set; }	
    public bool?? ALLShippedOrders { get ;  set; }	
    public string FromShipDate { get ;  set; }	
    public string ToShipDate { get ;  set; }	
}
Property Description
string Warehouse * Warehouse Name
bool UpdateSOOrderExportQuantityfromASN True if need to update Update SOOrder Export Quantity from ASN, Default False
bool? ALLShippedOrders When false all shipped orders in date range are returned, when true orders with ship qty > export qty and within date range if there is a range otherwise only orders where ship qty > export qty
string FromShipDate Starting Shipped Date of Order
string ToShipDate End Shipped Date of Order

Item History

c# Syntax


	 List<ItemHistory>GetItemHistory(GetItemHistoryRequest request);

REST Syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/GetItemHistory

For the REST interface, the /GetItemHistory REST call, the equivalent of the GetItemHistory c# method, takes a GetItemHistoryRequest object, serialized to JSON, in the request, and returns an array of ItemHistory objects, in JSON format, in the response.


public class GetItemHistoryRequest
{
	public string FromDate { get ;  set; }
	public string ToDate { get ;  set; }
	public string Warehouse { get ;  set; }
   	public string ItemNo { get ;  set; }    
   	public string TransType { get ;  set; }    
   	public string Misc8 { get ;  set; }    
   
}
Property Description
string FromDate Start History Date in MM/dd/yyyy format
string ToDate End History Date in MM/dd/yyyy format
String Warehouse Warehouse name
string ItemNo Item Number
string TransType Transanction Type
string Misc8 Misc8r

public class ItemHistory
{
    public string  UserID  { get ;  set; }
    public string  StartDatetime  { get ;  set; }    
    public string  HistDate  { get ;  set; }
    public string  ItemNo  { get ;  set; }
    public string  TransactionType  { get ;  set; }
    public string  ProjectNo  { get ;  set; }
    public int?  POLine  { get ;  set; }
    public int?  SOLine  { get ;  set; }
    public string  SoNo  { get ;  set; }
    public string  PoNo  { get ;  set; }
    public decimal  Qty  { get ;  set; }
    public string  FromBin  { get ;  set; }
    public string  ToBin  { get ;  set; }
    public decimal?  FromQty  { get ;  set; }
    public decimal?  ToQty  { get ;  set; }
    public string  UOM  { get ;  set; }
    public decimal  RunningBalance  { get ;  set; }
    public string  FromWhouse  { get ;  set; }
    public string  ToWhouse  { get ;  set; }
    public string  ShipDate  { get ;  set; }
    public string  LotNo  { get ;  set; }
    public string  Container  { get ;  set; }
    public string  NewItemNo  { get ;  set; }
    public string  NewLotNo  { get ;  set; }
    public string  Reason  { get ;  set; }
    public string  ReasonComment  { get ;  set; }
    public string  CustOwner  { get ;  set; }
    public string  Location  { get ;  set; }
    public string  RecvDate  { get ;  set; }
    public string  Misc1  { get ;  set; }
    public string  Misc2  { get ;  set; }
    public string  Misc3  { get ;  set; }
    public string  Misc4  { get ;  set; }
    public string  Misc5  { get ;  set; }
    public string  Misc6  { get ;  set; }
    public string  Misc7  { get ;  set; }
    public string  Misc8  { get ;  set; }
    public string  Whouse  { get ;  set; }
    public string  SubTask  { get ;  set; }
	public long? HistID { get; set; }
	
}
Property Description
string UserId User Name
string StartDatetime Start DateTime for History
string HistDate End DateTime of History
string ItemNo Item Number
string TransactionType Transaction Type
string SoNo Shipping Order number
int? SoLine Shipping Order line number
string PoNo Purchase Order number
int? PoLine Purchase Order line number
Decimal Qty Quantity
string FromBin From bin/location
string ToBin To bin/location
Decimal? FromQty Previuos Quantity
Decimal? ToQty New Quantity
string FromWhouse From warehouse
string ToWhouse To warehouse
string ShipDate Ship Date
string LotNo Lot number
string Container Container name
string NewItemNo New Item number
string NewLotNo New Lot number
string Reason Reason
string ReasonComment ReasonComment
string RecvDate Receive Date
string CustOwner Customer Owner
string Misc1 Miscellaneous #1
string Misc2 Miscellaneous #2
string Misc3 Miscellaneous #3
string Misc4 Miscellaneous #4
string Misc5 Miscellaneous #5
string Misc6 Miscellaneous #6
string Misc7 Miscellaneous #7
string Misc8 Miscellaneous #8
string Whouse Warehouse Name
string SubTask Sub Task
long? HistID Unique History ID

Delete Inventory

c# Syntax


public<Response> DeleteInventory(DeleteInventory DeleteInvParameter);

REST Syntax

Integration/NorthstarWmsIntegrationRest.svc/IntegrationServiceREST/InventoryERP/DeleteInventory

The DeleteInventory method deletes the Inventories based on the Warehouse name.


public class DeleteInventory
{	
    public string WarehouseName { get ;  set; }
}