Suitescript 2.0 установка купонов и партнерских кодов
Мы создали скрипт suitescript 2.0 в нашей среде netsuite. Мы используем RESTlet для доступа к нему.
Наш скрипт создает заказ на продажу с различными полями. Он работает нормально, но мы не можем установить код купона или код партнера, мы получаем одинаковую ошибку для обоих. Мы используем Internal ID и также попробовали сам код купона.
Любая идея?
Ошибка:
{
"type":"error.SuiteScriptError",
"name":"INVALID_FLD_VALUE",
"message":"You have entered an Invalid Field Value 18 for the following field: couponcode",
"stack":[
"<anonymous>(N/record/recordService.js)",
"setSalesOrderData(adhoc$-1$debugger.user:71)",
"saveSaleOrder(adhoc$-1$debugger.user:17)",
"<anonymous>(adhoc$-1$debugger.user:107)",
"<anonymous>(adhoc$-1$debugger.user:6)"
],
"cause":{
"type":"internal error",
"code":"INVALID_FLD_VALUE",
"details":"You have entered an Invalid Field Value 18 for the following field: couponcode",
"userEvent":null,
"stackTrace":[
"<anonymous>(N/record/recordService.js)",
"setSalesOrderData(adhoc$-1$debugger.user:71)",
"saveSaleOrder(adhoc$-1$debugger.user:17)",
"<anonymous>(adhoc$-1$debugger.user:107)",
"<anonymous>(adhoc$-1$debugger.user:6)"
],
"notifyOff":false},"id":"","notifyOff":false
}
}
Код RESTlet:
var objRecord = record.create({
type: record.Type.SALES_ORDER,
isDynamic: true
});
/* add other values.....*/
objRecord.setValue({ fieldId: 'couponcode', value: 538 });
var recordId = objRecord.save({
enableSourcing: false,
ignoreMandatoryFields: false
});
2 ответа
Эти коды купона вы пытаетесь установить коды одноразового использования? Или они связаны с рекламой?
Какой внутренний идентификатор вы используете в couponcode
поле?
Можете ли вы также поделиться соответствующими частями своего кода RESTlet?
Я протестировал следующее в консоли (т. Е. В клиентском скрипте) для заказа на продажу и, похоже, установил соответствующий промо-код и код купона:
require(["N/currentRecord"], function(c) {
c.get().setValue({
"fieldId": "couponcode",
"value": 1
});
});
где 1
является внутренним идентификатором Акции. Если я использую внутренний идентификатор, не связанный с рекламой, я не получаю сообщение об ошибке, но в обоих полях ничего не заполняется.
Мы наконец-то получили рабочий код от службы поддержки Netsuite, так как в этой теме так мало помощи, я делюсь ею здесь. Мы взяли то, что нам было нужно, в наш собственный скрипт, но этот основной тоже работает,
От агента поддержки netsuite:
Я создал простой код SuiteScript 2.0 для ввода значений в поле "Партнер" (идентификатор: "партнер") и код купона (идентификатор: "код купона"). Оба поля являются выпадающими, а не полиселектными. Поле Код купона зависит от поля Акция, поэтому мы должны ввести значение в поле "промокод" вместо "код купона".
/**
*@NApiVersion 2.x
*@NScriptType usereventscript
*/
define(['N/record'],
function(record) {
function AfterSubmit(context) {
var result = record.load({
type: 'salesorder',
id: 71040,
isDynamic: true
});
result.setValue ({
fieldId : 'partner',
value : 45140
});
result.setValue ({
fieldId : 'couponcode',
value : 'AMARILLO16'
});
result.save({
enableSourcing : false,
ignoreMandatoryFields : true
});
return true;
}
return {
afterSubmit: AfterSubmit
};
});
Мы должны были сделать одну модификацию, чтобы она работала на нас:
result.setValue ({
fieldId : 'partner',
value : 45140
});
result.setText ({
fieldId : 'couponcode',
text : 'AMARILLO16'
});
result.save({
enableSourcing : false,
ignoreMandatoryFields : true
});