Anthony
Anthony

Reputation: 123

How to "partially" fulfill a sales order?

I have tried creating itemFulfillment records in multiple ways, but no matter what I do, sales orders always end up "completely" fulfilled (regardless of whether all items were actually fulfilled.)

In cases where only "some" of the items in the sales order have been shipped, we need to set those items only to be fulfilled so the appropriate purchase order(s) can be billed and tracking gets sent to customers. When we try to fulfill those items only, the sales order always ends up with ALL items being fulfilled. This creates numerous problems for us.

Things I've tried:

In every case, every item in the SalesOrder is marked completely fulfilled (every item is set to fulfilled.)

If anyone has been able to "partially" fulfill a sales order, could you give idea how to do it?

Upvotes: 8

Views: 7349

Answers (5)

Richard F.
Richard F.

Reputation: 67

Another possible solution to this problem that I just figured out for myself.

I'm using NetSuite 2021.1 and could not get the partial fulfillment to work properly until I turned on "DEFAULT ITEMS TO ZERO RECEIVED/FULFILLED".

This is a checkbox in NetSuite that you can find in Setup --> Accounting --> Accounting Preferences on the Order Management tab in the Fulfillment section.

Check this box to default items to unfulfilled when you open a fulfillment transaction. Then you can just feed in the item you want fulfilled and it will ignore the ones you don't.

Upvotes: 0

Tyler Cone
Tyler Cone

Reputation: 9

Try yourRecObj.setLineItemValue('item", "quantity", 1, "0") instead of yourRecObj.setLineItemValue('item", "quantity", 1, 0)

Upvotes: 0

xpeldev
xpeldev

Reputation: 2080

  1. Transform sales order into an itemfulfillment
  2. Fulfill the line items you need, set qty, etc
  3. Set fulfillment status to shipped
  4. Save fulfillment
  5. Sales order should now be partially fulfilled

Upvotes: 1

Joshua Fricke
Joshua Fricke

Reputation: 265

Followed the above answer and it worked, though could not find quantitySpecified in the spec for 2016.1 endpoint nor in the initialized fulfillment object, so omitted it and it worked fine.

Another thing to consider is that if your Sales Order has multiple locations for the items on it and you have initialized the fulfillment, you will need to remove all items with different locations than those you are currently fulfilling. Otherwise, you will get an error message regarding fulfilling from multiple locations the same as you would using the UI. We accomplished this by defaulting quantity to 0 and only adding a quantity for the actual shipment currently fulfilling.

Upvotes: 1

Anthony
Anthony

Reputation: 123

I got this working today by doing the following:

  1. Set ReplaceAll to false
  2. Avoid setting a quantityRemaning value (after grabbing a reference to the Item fulfillment)
  3. Set the quantity to the quantity shipped (be sure to set quantitySpecified to true as well)

If you are new to processing itemFulfillment records, be sure that you set the Line to the appropriate line in the sales order. This is done for you automatically if you initialize the record.

See an example of creating an itemFulfillment record using initialize here (PDF file available on NetSuite website).

Then you just need those three steps above to "partially" fulfill a sales order.

Upvotes: 2

Related Questions