Создание SalesOrder в NetSuite с группами товаров
Я ищу интеграции с NetSuite из внешней системы цитирования. Все работает нормально, если я использую стандартные не инвентарные товары и могу создать заказ на продажу.
Проблема, с которой я сталкиваюсь, заключается в том, что, когда я добавляю строку, которая является Группой элементов, она создает новую копию всех элементов, входящих в эту группу элементов, которые не имеют всех значений по умолчанию, необходимых для правильного сохранения.
Я попытался извлечь SalesOrder, который я вручную создал в NetSuite с группами товаров, и затем сопоставить его с новым запросом SalesOrder, что также приводит к той же ошибке.
Я хотел бы иметь возможность использовать группы элементов, любопытно узнать, есть ли способ для этого работать через API, или мне нужно будет написать SuiteScript?
2 ответа
TLDR; Да, группы элементов работают в SuiteScript на стороне сервера. Их можно добавлять так же, как и обычные предметы. Описанное вами поведение « создает новую копию всех элементов, входящих в эту группу элементов », является преднамеренным.
Более длинная версия:
Для тех, кто может наткнуться на это в 2021 году... Я могу подтвердить, что успешно интегрировался с Netsuite, используя множество групп элементов, уже более года. Так что их можно создавать с помощью серверных скриптов!
Тем не менее, мы должны уточнить, что вы имеете в виду, когда говорите «есть ли способ, чтобы это работало через API ». Netsuite позволяет вам писать пользовательские сценарии, называемые RESTlets, которые в основном представляют собой собственный API. Netsuite также имеет встроенные API SOAP и интерфейс REST API. Моя интеграция была выполнена через RESTlet, написанный на SuiteScript и размещенный на Netsuite.
Вы также должны знать, что группы элементов в Netsuite предназначены для одновременного добавления множества элементов. Таким образом, поведение, которое вы описываете, когда вы добавляете одну строку, но затем Netsuite разбивает эту одну строку на элементы группы, - это то, как группы элементов предназначены для работы. В результате сложнее управлять пользовательскими ценами или другими параметрами для групп товаров. Нет почти никакой разницы между добавлением группы элементов и простым добавлением элементов-членов вручную по одному, когда все сказано и сделано. Вместо этого вы можете попробовать использовать элемент комплекта, который позволяет вам устанавливать собственную цену, учетную запись дохода, класс и другие параметры. Вы можете прочитать эту замечательную статью Марти Зигмана о разнице между комплектами и группами предметов.
Если группы товаров действительно то, что вам нужно, и вы хотите добавить их в заказ на продажу с помощью SuiteScript, вы можете добавить их так же, как и любой обычный товар. Сложная часть заключается в попытке изменить значения в строках элементов элементов, которые динамически добавляются Netsuite. В этом случае я рекомендую создать заказ на продажу в динамическом режиме, добавить группы элементов (Netsuite автоматически расширит их в динамическом режиме), а затем вернуться к элементам, чтобы внести необходимые изменения следующим образом:
Помните, что группы элементов могут иметь строку верхнего/нижнего колонтитула в дополнение к строкам для элементов-членов. Это будет иметь место, если вы отметили опцию ССЫЛКА НА НАЧАЛЬНУЮ/КОНЕЧНУЮ ЛИНИЮ НА СБОРНЫЕ ЗАКАЗЫ при создании группы товаров.
Таким образом, "Группа элементов" - это не что иное, как предварительно запеченный сценарий "Только на стороне клиента". Он просто сохраняет идентификаторы элементов в группе... затем, когда вы выбираете его, он заполняет строки (в браузере) этими идентификаторами элементов.
Из-за этого группы товаров нельзя использовать на стороне сервера. Таким образом, вы не можете использовать их в сценариях или интеграции.