NetSuite: извлечение информации с сайта Suitecommerce в сценарий пользовательских событий - PullRequest
0 голосов
/ 11 января 2019

У меня есть страница продукта сайта Suitecommerce, где к URL добавляется определенная информация в форме параметров запроса. Например: https://my-ecommerce.com/product/someProduct?referralId=someValue

Моя цель здесь - передать запись salesOrder какой-либо внешней конечной точке API при покупке продукта. Я достиг этого, развернув сценарий пользовательских событий следующим образом:

function afterSubmit(type) {
    // Url of the external api endpoint to push data
    var url = "http://external-url/endpoint/";

    // Get the new created record. It returns a nlRecordObj
    var record = nlapiGetNewRecord();

    // Get the record Id of that created record
    var recordId = record.getId();

    // Get the record of corresponding record Id and record type
    var nlobj = nlapiLoadRecord("salesOrder",recordId);

    // To log our request data
    nlapiLogExecution("DEBUG","Test",JSON.stringify(nlobj));

    // Set Headers for HTTP request
    var headers = {"Content-Type":"application/json"};

    // Performing HTTP request to our url with our newly created data as payload
    var response = nlapiRequestURL(url, JSON.stringify(nlobj), headers);
}

Но я также хочу передать referralId вместе с записью salesOrder из ссылки suitecommerce.

Одно из решений, о котором я подумал, - поместить параметры URL в локальное хранилище браузера, а затем извлечь их из suitescript. Но скрипт Suite не распознает window.localStorage.

Есть идеи, как мне это сделать? Фрагмент кода будет полезен.

1 Ответ

0 голосов
/ 28 апреля 2019

В сценарии реферала, если вам нужно по одному на заказ, вы можете создать одно Поле тела транзакции и заполнить это поле из внешнего интерфейса в момент добавления товара в корзину.

В случае, если вам нужно иметь код реферала по элементу, вы должны создать Опцию элемента транзакции и вручную добавить «значение» из URL в это поле.

Если вы собираетесь прочитать параметр URL-адреса и сохранить его в поле Backend NetSuite со значением SUPER CAREFUL с XSS Injection , удалите любое значение и подтвердите, что значение является правильным перед сохранением это.

...