Netsuite trigger a script on inventory qty or bin info change - netsuite

Bin info or Inventory Qty change for an inventory item, I need to fire a suitscript. it needs to cover any way that inventory will be adjusted, PO received, Sales Orders, manual adjustments, etc.
I tried attaching a userevent script but it didnt get called on PO being created and receving items on it.

You need to attach a UserEvent script to every transaction type that affects user inventory. Your post doesn't say what "it" is that you attached your user event script to. Was it on Item Receipt?
Also as far as I know there is no User Event script for Inventory Worksheets so whatever you do you'll need some sort of manual reconciliation to pull current quantities.
Transactions that affect inventory include:
Assembly Build
Assembly Unbuild
Bin Putaway Worksheet
Bin Transfer
Inventory Adjustment
Inventory Distribution
Inventory Transfer
Inventory Worksheet
Invoice*
Cash Sale*
Item Fulfillment
Item Receipt
Purchase Order**
Return Authorization
Sales Order^
Transfer
Transfer Order^
Work Order^
* can cause changes to inventory when not sourced from a Sales Order
** May cause changes to inventory depending on your features/version and system configuration.
^ can cause changes to commited/available amounts depending on status.

Related

How to set open stock for Serial number Inventory Item first time for new NetSuite setup?

I am setting up New ERP setup with a serialized inventory in NetSuite. What is the best way to set open stock for serialized inventory? All I can see the option is Inventory Adjustment Record. Is there any other better way?
Thanks in advance.
An Inventory Adjustment or, Purchase Order and Item Receipt, or Work Order Completion / Assembly Build would all bring serialised inventory in to stock. Inventory Worksheets will not as per SuiteAnswer 99378. Inventory adjustments are relatively simple to import via CSV when working with serialised items. I found it works best if the item list, adjustment list, and serial number list (inventory detail), are all uploaded using the "Multiple files to upload" option. See SuiteAnswer 51417 for examples.

How can I update Customer Status when the last invoice for that customer is more than 24 months old

I want to set up a scheduled script or a workflow in NetSuite that will automatically change the customer status from "Customer-Closed Won" to "Customer-Closed Lost" if their last invoice is more than 2 years old.
Is this possible with the normal workflow setup or do I need to use a bundle?
You will want to create a scheduled script that runs at some interval - say every Sunday morning. This script can call a saved search that looks at all invoices grouped by customer and max invoice date. The customer status of "customer-closed won" could be a criterion so that you don't look at the ones you already set to "lost". The script can then update all such customer to the "lost" status.
You will also want to write a workflow or user-event on a SO so that if such a "lost" customer creates a new Sales Order, you reset their status to "won"
The simplest way to do this is with a pair of workflows.
One workflow triggers on a schedule and uses a saved search that identifies customer-closed-won where the last invoice (and sales order?) was earlier than your cutoff. It has just a single action that resets the customer status.
The other is a workflow on sales that sets the customer status back to customer-closed-won when a Sales Order is approved (or an invoice is created). This also has a single action that changes the status.
If you don't have workflows available under customization go to Setup > Company > Enable Features. Click SuiteCloud and enable SuiteFlow

Track unowned/Drop Ship inventory in NetSuite

Here is what we are trying to do:
We want to track our vendors Drop Ship inventory which we do not own in NetSuite and be able to use the inventory feed from NetSuite to feed our eCommerce channels for both our owned and unowned inventory.
Here is what we've tried:
1- Enabled multi-location inventory
2- Created a "Drop Ship" location
3- Did an inventory adjustment to allocate inventory to that location
Here is the main issue we are facing:
The inventory should not show up on our balance sheet as we do not actually own it. In the scenario above, our inventory feed works as it should. However, the inventory shows up on our balance sheet.
Any assistance on how to get this to work without having the inventory shown on our balance sheet would be very much appreciated.
You could set cost to zero on the item record to reduce the balance sheet value to zero. To correctly show COGS on your P&L, you would need to add a cost on POs for each drop ship item.
To partially automate the PO process, create a custom column field that stores cost. When a PO is created or on a schedule, use a saved search email notification that includes an import ready CSV with Internal ID, Line ID, the custom cost field and a link to a saved CSV import in the body of the email. When you get the email notification, click the link and proceed to import the attached file with the correct item cost.

On which context inventory gets changed in Netsuite

I have created a custom checkbox and I have to mark it to true whenever any thing is changed on the record. My problem is I do not have to use lastmodified date because lastmodified is not working as all the items are coming in search. Whenever an item is shipped, it's inventory is changed but i would like to know on which context it changes. It is possible to do with workflow. How?
Inventory change is via different record types in NetSuite, and will not be via item.
I think you will need to write User Event Script or workflow on following record types to detect all Inventory changes:
1) Item Fulfillment
2) Item Receipt
3) Item Transfer
4) Inventory Adjustment
Apart from these there are other mechanism to make an impact on inventory, I am not sure if NetSuite allows user event script or workflows on these:
1) Inventory worksheet
2) Physical Count
For the case of Item being shipped from a Sales Order an Item Fulfillment is created, so, you can deploye your workdlow or user event on Item Fulfillment in that case.
Edit: Transfer Order isn't applicable as #bknights suggested. Inventory alterations would be actually made by Item Fulfillment/Receipt records in case of Transfer Orders.

Non-Mandatory Location Field on Cash Sales in NetSuite

I am trying to disable the Location field so that it is not mandatory in NetSuite for Cash Sales. I customed the form and unchecked the Mandatory box and it still shows up. When I did this for Sales Orders I also had to update the Accounting Preferences to not require a Location.
Is it possible to perform what I am asking? Do I simply need to disable locations site wide (as opposed to making them non-mandatory on the cash sales form)?
Actually Locations are required on some transactions if Multi-location Inventory feature is enabled.
Though, you can make location non-mandatory using beforeLoad User event Script and using the code in there form.getField('location').setMandatory(false)
But, if you do that, you will get an error as location is required in this case:
Multi-location Inventory Error (MLI_LOCATION_REQUIRED): this
transaction or its items must have locations

Resources