Set Up Initial Field Sets
Field sets expose information from NetSuite records to your website. Before you can use your Commerce website effectively, you need to set up field sets in your Web Site Setup record. How you do this depends on your implementation:
-
Initial Field Sets for SuiteCommerce MyAccount – You only need to set up one field set for SCMA implementations, as described below. We currently offer no set up script, but this set up is minimal.
-
Initial Field Sets for SuiteCommerce and SuiteCommerce Advanced – Best practice is to use a pre-defined script (below) to quickly populate your new site with required Field Sets. Use this field set setup script to get started. Later, you can add fields specific for your business to this script or accept the defaults to begin.
Initial Field Sets for SuiteCommerce MyAccount
Before you can use SuiteCommerce MyAccount, you must set up the order fields in your Web Site Setup record. Failure to set these fields prevents the Order History section of My Account from working as expected. For more information about field sets, see Define Field Sets.
To add the order field to the Web Site Setup Record:
-
In NetSuite, go to Commerce > Websites > Web Site List.
-
Click Edit next to the website to which you are setting up SuiteCommerce MyAccount.
-
Go to the Field Sets subtab.
-
Add the orders field sets:
-
In the Name column, add: Order
-
In the fieldset id column, add: order
-
In the Fields Included in Field Set column, click the Set button.
-
Select the fields listed below from the Field Name list and click Add for each.
Name
Field Set ID
Fields Included in Field Set
Order
order
itemimages_detail: Item Images (Detail)
itemoptions_detail: Item Options (Detail)
onlinecustomerprice_detail: Price for Current Customer (Detail)
displayname: Display Name
internalid: Internal ID
itemid: Name
isfulfillable: Can be Fulfilled/Received
storedisplayname2: Store Display Name 2
urlcomponent: URL Component
outofstockmessage: Out Of Stock Message
showoutofstockmessage: Display Out-of-Stock Message
isinstock: In Stock
isbackorderable: Available for Backorder
ispurchasable: Available for Purchase
pricelevel1: Base Price
pricelevel1_formatted: Base Price (Formatted)
stockdescription: Stock Description
matrixchilditems_detail: Matrix Child Items (Detail)
itemtype: Type
minimumquantity: Minimum Quantity
maximumquantity: Maximum Quantity
isonline: Available Online
isinactive: Inactive
-
After adding the fields to all of the field sets, click Submit.
-
-
Click Save to save the Website record.
Initial Field Sets for SuiteCommerce and SuiteCommerce Advanced
If implementing SuiteCommerce or SuiteCommerce Advanced, you can get started with a pre-defined set up script. This script defines a standard set of fields to expose to your web store. Later, you can add fields specific for your business to this script or accept the defaults to begin. For advanced field set overview and setup instructions, see Define Field Sets.
Take great care when editing field sets, as this may cause unintended results and compromise site integrity.
To set up the Field Set Setup script:
-
Copy the contents of the Field Set Script below to a text editor.
-
Edit the
siteID
variable with the site id you want to use.The site id is displayed in the URL when you go to the Web Site Setup page for the desired site.
Note:The default value of
9999
fails, since no site is ever assigned an ID of 9999. -
Set the configurable options as required.
Each Field Set Setup Script includes a few options you can set. The default options add fields for using Product Reviews but not for Pickup In Store. Set the
has_store_pickup
flag totrue
if you intend to use Pickup In Store in your web store. -
Optionally, add any field set definitions as needed for your site.
The script includes all required fields and provides a good starting point for your website.
Important:The Field Set to return item details is named details. If you decide to use a different name, you must configure that change as described in Items Fields Advanced Name on the Backend Subtab.
-
Save your modified script.
Your modified script can be used to quickly replicate a site setup during development.
-
Execute the script in the SuiteScript debugger.
-
Go to Customization > Scripting > Script Debugger.
-
Enter the SuiteScript Debugger domain (by clicking the link as indicated) and then re-enter your login credentials if prompted.
-
From the API Version dropdown, select 1.0.
Important:This script can only be run against SuiteScript Version 1.0.
-
Copy and paste your modified script code into the debugger.
-
Click Debug Script and then hit the Continue button.
-
After the script has executed, field sets are properly populated and can be verified in the Field Sets tab of the Web Site Setup record.
When you have completed this initial field set setup, you should now set up a rudimentary item search index for your web store. See Set Up a Initial Search Index.
Field Set Script
If you have previously set up fields for your site, before running this script delete any field sets that are currently defined for the website where you want to run the script. Use caution when doing this as deleting field sets required for your site can have unintended results.
var siteID = 99999 // change to the site id you want to use
, has_product_reviews = true
, has_store_pickup = false
, siteRecord = nlapiLoadRecord('website', siteID);
siteRecord.selectNewLineItem('fieldset');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetname', 'Search');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetid', 'search');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetrecordtype', 'ITEM');
var search_fields = 'urlcomponent,itemimages_detail,itemoptions_detail,internalid,matrixchilditems_detail,onlinecustomerprice,onlinecustomerprice_detail,onlinecustomerprice_formatted,onlinematrixpricerange,onlinematrixpricerange_formatted,quantityavailable,displayname,itemid,outofstockbehavior,outofstockmessage,stockdescription,storedescription,storedisplaythumbnail,storedisplayname2,isinstock,isbackorderable,ispurchasable,showoutofstockmessage,ispricevisible,ispricevisible_detail,ispurchasable_detail,isdisplayable_detail';
if(has_product_reviews)
{
search_fields += ',custitem_ns_pr_count,custitem_ns_pr_rating';
}
if(has_store_pickup)
{
search_fields += ',isstorepickupallowed,isfulfillable';
}
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetfields', search_fields);
siteRecord.commitLineItem('fieldset');
siteRecord.selectNewLineItem('fieldset');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetname', 'details');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetid', 'details');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetrecordtype', 'ITEM');
var details_fields = 'urlcomponent,itemimages_detail,itemoptions_detail,internalid,matrixchilditems_detail,onlinecustomerprice_detail,quantityavailable,displayname,itemtype,itemid,outofstockbehavior,outofstockmessage,pagetitle,rate,rate_formatted,relateditemsdescription,stockdescription,storedetaileddescription,storedisplayimage,storedisplayname2,isinstock,isbackorderable,ispurchasable,showoutofstockmessage,metataghtml,minimumquantity,maximumquantity,ispricevisible,ispricevisible_detail,ispurchasable_detail,isdisplayable_detail';
if(has_product_reviews)
{
details_fields += ',custitem_ns_pr_count,custitem_ns_pr_rating,custitem_ns_pr_item_attributes,custitem_ns_pr_rating_by_rate';
}
if(has_store_pickup)
{
details_fields += ',isfulfillable,isstorepickupallowed,quantityavailableforstorepickup_detail';
}
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetfields', details_fields);
siteRecord.commitLineItem('fieldset');
siteRecord.selectNewLineItem('fieldset');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetname', 'matrixchilditems');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetid', 'matrixchilditems');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetrecordtype', 'ITEM');
var matrix_fields = 'onlinecustomerprice_detail,internalid,quantityavailable,outofstockbehavior,outofstockmessage,stockdescription,isinstock,isbackorderable,ispurchasable,showoutofstockmessage,itemid,minimumquantity,maximumquantity,itemtype,ispricevisible,ispricevisible_detail,ispurchasable_detail,isdisplayable_detail';
if(has_store_pickup)
{
matrix_fields += ',isfulfillable,isstorepickupallowed,quantityavailableforstorepickup_detail';
}
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetfields', matrix_fields);
siteRecord.commitLineItem('fieldset');
siteRecord.selectNewLineItem('fieldset');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetname', 'matrixchilditems_search');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetid', 'matrixchilditems_search');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetrecordtype', 'ITEM');
var matrix_fields = 'onlinecustomerprice_detail,internalid,outofstockbehavior,outofstockmessage,stockdescription,isinstock,isbackorderable,ispurchasable,showoutofstockmessage,itemid,minimumquantity,maximumquantity,itemtype,ispricevisible,ispricevisible_detail,ispurchasable_detail,isdisplayable_detail';
if(has_store_pickup)
{
matrix_fields += ',isfulfillable,isstorepickupallowed,quantityavailableforstorepickup_detail';
}
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetfields', matrix_fields);
siteRecord.commitLineItem('fieldset');
siteRecord.selectNewLineItem('fieldset');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetname', 'Correlated Items');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetid', 'correlateditems');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetrecordtype', 'ITEM');
var correlated_fields = 'urlcomponent,itemimages_detail,itemoptions_detail,internalid,onlinecustomerprice,onlinecustomerprice_detail,onlinecustomerprice_formatted,onlinematrixpricerange,onlinematrixpricerange_formatted,quantityavailable,displayname,itemid,outofstockbehavior,outofstockmessage,stockdescription,storedescription,storedisplaythumbnail,storedisplayname2,isinstock,isbackorderable,ispurchasable,showoutofstockmessage,ispricevisible,ispricevisible_detail,ispurchasable_detail,isdisplayable_detail';
if(has_product_reviews)
{
correlated_fields += ',custitem_ns_pr_count,custitem_ns_pr_rating';
}
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetfields', correlated_fields);
siteRecord.commitLineItem('fieldset');
siteRecord.selectNewLineItem('fieldset');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetname', 'Related Items');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetid', 'relateditems');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetrecordtype', 'ITEM');
var related_fields = 'urlcomponent,itemimages_detail,itemoptions_detail,internalid,onlinecustomerprice,onlinecustomerprice_detail,onlinecustomerprice_formatted,onlinematrixpricerange,onlinematrixpricerange_formatted,quantityavailable,displayname,itemid,outofstockbehavior,outofstockmessage,stockdescription,storedescription,storedisplaythumbnail,storedisplayname2,isinstock,isbackorderable,ispurchasable,showoutofstockmessage,ispricevisible,ispricevisible_detail,ispurchasable_detail,isdisplayable_detail';
if(has_product_reviews)
{
related_fields += ',custitem_ns_pr_count,custitem_ns_pr_rating';
}
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetfields', related_fields);
siteRecord.commitLineItem('fieldset');
siteRecord.selectNewLineItem('fieldset');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetname', 'Order');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetid', 'order');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetrecordtype', 'ITEM');
var order_fields = 'itemimages_detail,itemoptions_detail,onlinecustomerprice_detail,displayname,internalid,itemid,isfulfillable,storedisplayname2,urlcomponent,outofstockmessage,showoutofstockmessage,isinstock,isbackorderable,ispurchasable,pricelevel1,pricelevel1_formatted,stockdescription,matrixchilditems_detail,itemtype,minimumquantity,maximumquantity,isonline,isinactive,ispricevisible,ispricevisible_detail,ispurchasable_detail,isdisplayable_detail';
if(has_store_pickup)
{
order_fields += ',isstorepickupallowed,quantityavailableforstorepickup_detail,isfulfillable';
}
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetfields', order_fields);
siteRecord.commitLineItem('fieldset');
siteRecord.selectNewLineItem('fieldset');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetname', 'Type Ahead');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetid', 'typeahead');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetrecordtype', 'ITEM');
var typeahead_fields = 'itemid,displayname,storedisplayname2,urlcomponent,itemimages_detail,ispricevisible,ispricevisible_detail,ispurchasable_detail,isdisplayable_detail';
if(has_product_reviews)
{
typeahead_fields += ',custitem_ns_pr_count,custitem_ns_pr_rating';
}
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetfields', typeahead_fields);
siteRecord.commitLineItem('fieldset');
siteRecord.selectNewLineItem('fieldset');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetname', 'Items Searcher');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetid', 'itemssearcher');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetrecordtype', 'ITEM');
var items_searcher_fields = 'itemimages_detail,displayname,itemid,storedisplayname2,urlcomponent,minimumquantity,maximumquantity,itemoptions_detail,matrixchilditems_detail,isinstock,showoutofstockmessage,outofstockmessage,onlinecustomerprice_detail,pricelevel1,pricelevel1_formatted,itemtype,ispurchasable,isbackorderable,ispricevisible,ispricevisible_detail,ispurchasable_detail,isdisplayable_detail';
if(has_product_reviews)
{
items_searcher_fields += ',custitem_ns_pr_count,custitem_ns_pr_rating';
}
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetfields', items_searcher_fields);
siteRecord.commitLineItem('fieldset');
siteRecord.selectNewLineItem('fieldset');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetname', 'Related Items Details');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetid', 'relateditems_details');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetrecordtype', 'ITEM');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetfields', 'relateditems_detail');
siteRecord.commitLineItem('fieldset');
siteRecord.selectNewLineItem('fieldset');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetname', 'Correlated Items Details');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetid', 'correlateditems_details');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetrecordtype', 'ITEM');
siteRecord.setCurrentLineItemValue('fieldset', 'fieldsetfields', 'correlateditems_detail');
siteRecord.commitLineItem('fieldset');
recId = nlapiSubmitRecord(siteRecord);