NetSuite Development Notes
Monday, September 6, 2021
Thursday, February 18, 2021
Permission to Setup Tax Codes and/or Tax Groups
1. Navigate to Setup > Users/Roles > Manage Roles.
2. Edit the role.
3. Permissions > Lists > add Tax Items with at least Edit access level.
4. Click on Save.
Tuesday, December 22, 2020
Override Avatax in NetSuite
Once an Avatax tax code is used in a transaction, it can no longer be changed in the transaction because it is locked to the tax code since there is a document on the admin console reflecting the transaction. To further explain:
1. When a transaction is first created using Avatax Tax Item, Avatax computes the tax, sets the special field provided by NetSuite to avoid tax field being overidden by NetSuite. NetSuite's logic ignores NetSuite's computed tax and uses Avatax's computed tax if
this special field is set.
2. Now if the user changes the Tax Item from Avatax Tax Item to 'Non Avatax Item', in this case 'Non Taxable' or 'Exempt', Avalara does not calculate the tax and also does not blank out the special hidden field so that NetSuites Tax Engine can take over.
If this special hidden field is not blanked out by Avatax, NetSuite ends up using the value in this field and to the end user it appears that tax did not change.
The two options would be:
1. To cancel/close/offset the transaction and create a new one using a non-Avatax tax code.
2. Turn Avatax off, edit the transaction to change the tax code and turn Avatax back on.
Note: If there are many instances like this - where you need to change a tax code from Avatax to non-Avatax, the workaround you may want to consider is to create a User Event script that on Edit will set the taxamountoverride field to null if tax item is not Avatax. If you want this, you can review with your developers to create that script.
Monday, March 9, 2020
CSV Import: Sales Order > Error: Invalid item reference key xx.
Recommendations:
1. The CSV Import file shouldcontain the same Item Name format as shown in Transactions > Sales > Enter Sales Orders > Items tab > Items subtab> Item drop down field.
2. Internal ID can also beused instead of Item Name. Just make sure that on the field mapping page, clickon the pencil icon beside the Item field and ChooseReference Type = Internal ID.
3. Verify if theItem is Inactive. If the Item record is inactive, set it to active statusbefore importing.
-Navigate to Lists > Accounting > Items.
-Check the ShowInactives box.
-Uncheck the Inactive boxbeside the Item Name.
-Click on Submit.
Saturday, March 7, 2020
Sales Order Saved Search that Shows Billing Schedule and Revenue Recognition
1. Navigate to Lists > Search > Saved Searches > New> Transaction.
2. On the Criteria tab > Standard subtab add the following filters:
- Type = is Sales Order
- Billing Schedule = specify billing schedules.
3. On the Results tab > Columns subtab add the following fields:
- Number > Summary type = Group
- Name > Summary type = Group
- Account > Summary type = Group
- Reseller (Custom) > Summary type = Group
- Billing Schedule > Summary type = Group
- Next Bill Date > Summary type = Group
- Rev. Rec. Start Date > Summary type = Group
- Rev. Rec. End Date > Summary type = Group
4. Rename the search and click Save & Run.
Wednesday, February 26, 2020
Avoid "Attempting to access memorized transaction as a non-memorized transaction" when doing a search via Web Services.
User receives "Attempting to access memorized transaction as a non-memorized transaction" when performing Web Services search operation. One possible way to avoid this is to set Memorized = false on search filter, see sample SOAP request below:
<soap:Body>
<platformMsgs:search>
<platformMsgs:searchRecord xsi:type="tranSales:TransactionSearch">
<tranSales:basic>
<platformCommon:mainLine>
<platformCore:searchValue>true</platformCore:searchValue>
</platformCommon:mainLine>
<platformCommon:memorized>
<platformCore:searchValue>false</platformCore:searchValue>
</platformCommon:memorized>
<platformCommon:status operator="anyOf">
<platformCore:searchValue>_invoiceOpen</platformCore:searchValue>
</platformCommon:status>
<platformCommon:type operator="anyOf">
<platformCore:searchValue>_invoice</platformCore:searchValue>
</platformCommon:type>
</tranSales:basic>
</platformMsgs:searchRecord>
</platformMsgs:search>
</soap:Body>
Friday, February 21, 2020
Reference Checkout: Switch from Three-Step Checkout to One-Page Checkout
1. Navigate to Documents > Files > File Cabinet, then open this folder: Web Site Hosting Files > Live Hosting Files > SSP Applications > NetSuite Inc. - Checkout 2.02.0 > Reference Checkout.
Note: For Reference Checkout 2.0, the SSP Application folder to navigate to is Netsuite Inc. - Checkout.
2. Copy the files listed below from the Reference Checkout application folder to their corresponding folders in the Custom Checkout application folder: /js/src/app/Configuration.js
3. Navigate to Documents > Files > File Cabinet, then open this folder: Web Site Hosting Files > Live Hosting Files > SSP Applications > NetSuite Inc. - Checkout 2.02.0 > Custom Checkout > js > src > app. Click Edit next to the Configuration.js file, and click the Edit link in the file record.
4. Search for this comment in the code: /* the normal three step checkout */
5. Below this comment is the code which displays Reference Checkout as a three-step Checkout process.
6. Enclose the entire code in an HTML comment tag (/* {code} */) to comment out the entire code.
Sample:
/* , checkoutSteps: [
{
name: _('Shipping').translate()
.
.
.
this.wizard.application.trackTransaction(this.wizard.model);
}
}
]
}
] */
7. Next, search for this comment in the code: /* The One Page Checkout Scenario */
8. Below this comment is the code which displays Reference Checkout as a One-Page Checkout process.
9. Remove the HTML comment tags which encloses this entire code.
Sample:
, checkoutSteps: [
{
name: _('Place Order').translate()
, steps: [
.
.
.
this.wizard.application.trackTransaction(this.wizard.model);
}
}
]
}
]
10. Click Save to save the changes to the file.
Notes:
- In order for the customization to take effect, make sure that the Custom Checkout 2.02.0 SSP application has precedence over the Reference Checkout 2.02.0 SSP application. If Reference Checkout 2.0 is used, make sure that the Custom Checkout SSP application has precedence over the Reference Checkout SSP application.
- Kindly refer to the article, Changing SSP Application Precedence (Answer ID: 27494) for the steps.
- Depending on the Reference Checkout version used, make sure the Custom Checkout Touch Points are deployed in the web store.
- Kindly refer to the article, Deploying an SSP Application to Your Site (Answer ID: 27503) for steps on how to deploy the Touch Points to the web store.
Wednesday, February 19, 2020
Search to Get the Percentage of Fulfilled Quantity Out of Ordered Quantity
1. Navigate to Lists > Search > Saved Searches > New > Select Transaction.
2. Under Criteria tab, set the following:
Type is Sales Order
Date is (specify a specific period)
Main Line is false
Tax Line is false
COGS Line is false
Shipping Line is false
*Set other criteria needed.
3. Under Results tab, set the following:
Number
Name
Quantity
Quantity Fulfilled/Received
Formula (Percent) > Formula = nvl({quantityshiprecv},0)/nullif(nvl({quantity},0),0)
4. Enter a Search Title.
5. Hit Save & Run.
Sunday, February 16, 2020
Customer Records for PayPal Integration Without Express Checkout
When PayPal Express Checkout is enabled in NetSuite account, a new customer record is created each time the shopper uses express checkout.
When PayPal is integrated without Express Checkout, the same customer record is used upon log-in regardless of what PayPal email login was used after clicking on the Pay with PayPal button.
Thursday, February 6, 2020
Reprocess R03 Script to Add Additional Contract Items in Contract Record
View Contract with contract item> Go to Transaction tab> Click on Sales order> Add new item> Run the R03> Contract item not processing for additional item on to the Sales Order
1. Edit the sales Order
2. Under the Option & Log> Set the Check Log Status to Pending
3. Run again the R03 script in Setup> Customization> Scripts.
Tuesday, February 4, 2020
Effect on Sales Tax Liability Report and Pay Sales tax page if Credit memo for Sales Tax Refund is Issued
Given: Credit Memo for Sales Tax Refund was issued and this is to be reflected on Sales Tax Reports
The credit memo will just have the effect of offsetting the invoice for the customer for whom sales tax was refunded to. The effects will wash out in the report, since the tax due amount is cumulative.
The Pay sales tax page will have an amount once the amount of the credit memo has already been offset by a new sales tax invoice i.e. the page will only have an amount once the tax due column is positive again.
See below for sample computation:
In the example below, sales tax charged for the whole invoice = 9
(Periodic) | (Cumulative) | |
Tax Collected | Tax Due | |
Month 1 | ||
Invoice in Month 1 (to be refunded) | 9 | 9 |
Total Before payment, Month 1 | 9 | 9 |
Payment in Month 1 | 0 | -9 |
Total After payment, Month 1 | 9 | 0 |
Month 2 | ||
Other invoice 1 in Month 2 | 9 | 9 |
Other invoice 2 in Month 2 | ||
CM in Month 2 | -9 | -9 |
Total Before payment, Month 2 | 0 | 0 |
Payment in Month 2 | 0 | 0 |
Total After payment, Month 2 | 0 | 0 |
SUMMARY | Tax Collected | Tax Due |
Invoice | 18 | 18 |
Credit memo | -9 | -9 |
Payment | 0 | -9 |
9 | 0 |
Related article: Issue Credit Memo for Sales Tax Refund and Have It Reflected on Sales Tax Report
Difference between Resource Allocation Feature and Project Task Manager Bundle
The Resource Allocation feature helps resource managers allocate the right resources to projects based on availability, skill sets, and other criteria.
The Project task manager will allow you to manage and edit project task assignments using a graphic interface that displays project resources and assigned tasks.
In summary, the Resource Allocation feature helps you to allocate project resources to different projects based on certain criteria whereas, the Project Task Manager bundle enables you to allocate project resources to different tasks using a graphic interface.
Sunday, February 2, 2020
Reference My Account: Add space between State and Zip code in Order Details page
Reference My Account's Order Details page displays a Ship To section. Currently, the address is displayed where State and Zip Code are not separated.
To resolve this, users will need to modify the Address.Model.js file.
Requisites:
1. Custom My Account folder is already populated with files copied from the Reference My Account folder.
2. Setup > Site Builder > Set Up Web Site > Touch Points tab:
Name: View Customer Center
SSP Application: Custom My Account
Steps:
1. Navigate to Setup > Site Builder > Web Site Hosting Files.
2. Navigate to SSP Applications > NetSuite Inc. - My Account > Custom My Account > js > src > app > modules > Address folder.
3. Edit Address.Model.js.
4. On Line 29, add "+ ' ' +" between this.get('state')) and this.get('zip') to add a space like below:
this.get('city') + ' ' + (this.get('state') === null ? '' : this.get('state')) +' '+ this.get('zip') + ' ' + this.get('country');
5. Save.
After making the changes above, state and zip codes will now be separated by a space.
Note: State and Zip Code in Order Details is already separated by a space in Reference My Account 1.06.0