In this type of scenario, the user may wish to limit the shipping methods that they see in the list.
Since the list set on the Shipping Method field could not be directly limited, one can make use of the alternate solution below:
1) Create a custom list
Name: <desired name>
Values > Value: <Name of the desired shipping method>
2) Create a custom transaction field:
Label: <desired name>
Type: List/Record
List/Record: <list in step 1>
Applies To: Sales
Display:
Subtab: Shipping
Display Type: Normal
Store Value: checked
3) Create a Client side script triggered on field change
// set the actual shipping method based on the selected value from the custom list
function clientFieldChanged(type, name, linenum){
nlapiLogExecution('debug','name', name);
if(name == 'custbody24') // custbody24 is the internal ID of the field in step 2
{
var custMethod = nlapiGetFieldValue('custbody24');
nlapiLogExecution('debug','custMethod', custMethod);
var shipMethod;
if (custMethod == '1') // if - else was used since switch is not working
{
shipMethod = '1465'; // internal ID of the shipping method
} else if (custMethod == '2'){
shipMethod = '248';
}
nlapiLogExecution('debug','shipMethod', shipMethod);
nlapiSetFieldValue('shipmethod', shipMethod,false);
}
}
4) Set the Ship Method display type to Inline Text
Custom Transaction Form > Screen Fields subtab > Shipping sub subtab > Shipping Method
Display Type = Inline Text
// set the Ship Method field's display type to Inline text for data consistency
No comments:
Post a Comment