Как в Netsuite REST как назначить местоположение товара для строки товара в заказе клиента? - PullRequest
0 голосов
/ 26 марта 2020

Я использую коллекцию почтальонов Netsuite (которая заботится о вещах Oauth1) и отправляю сообщение в эту конечную точку:

{{proto}}://{{host}}/rest/platform/{{version}}/record/salesorder

... и тело выглядит примерно так:

{
  "customForm": "999",
  "entity": {
    "id": "1111"
  },
  "department": {
    "id": "2222"
  },
  "subsidiary": {
    "id": "33"
  },
  "otherRefNum": "TEST-PO",
  "location": {
    "id": "444"
  },
  "item": {
    "items": [
        {
          "item": { "id": "555555" },
          "inventorylocation": {  "id": "444" },
          "price": { "id": "-1" },
          "grossAmt": 999,
          "quantity": 1
        }
    ]
  }
}

Я пытаюсь назначить место на уровне предмета. Приведенный выше запрос создает заказ на продажу нормально (без назначения местоположения на уровне строки), если я удаляю строку inventorylocation, но с этим там я получаю эту ошибку: Unknown reference or subrecord field inventorylocation in request body.

Документация REST API Netsuite здесь: https://system.netsuite.com/help/helpcenter/en_US/APIs/REST_API_Browser/record/v1/2019.2/index.html#tag -salesorder

Я также попытался заменить location и немного переместить поля, но безуспешно. (либо продавец создается без назначения местоположения на уровне строки, либо я получаю сообщение об ошибке, аналогичное приведенному выше.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 26 марта 2020

Из документации, которую вы связали, выясняется, что идентификатор поля, который вам нужен, это inventorylocation, а не itemlocation.

salesorder-itemElement

...
giftCertRecipientName Имя получателя: строка
id [Недостающая метка: id]: строка
инвентаризация: деталь-продавца-инвентаря-детали
инвентаризациярасположение: местоположение
инвентаризация дочерняя компания : дочерняя компания
isClosed Закрыто: логическое значение
...

0 голосов
/ 29 апреля 2020

Исходя из документации для salesOrder-itemElement, похоже, что ключ правильный.

Вы пробовали вариант "location": "{ID}"?

In LedgerSyn c похоже, что запрос на создание счета-фактуры приводит к этому телу:

{
    "entity": "309",
    "location": "1",
    "sublist": {
        "items": [
            {
                "amount": 12345,
                "description": "Test Line Item FLURYAOLJLFADYGR-1"
            },
            {
                "amount": 12345,
                "description": "Test Line Item FLURYAOLUFUTBYJD-2"
            }
        ]
    }
}

Также существует объект salesOrder-item-inventorydetail, который также содержит location. Возможно, вы могли бы использовать это так:

{
  "customForm": "999",
  "entity": {
    "id": "1111"
  },
  "department": {
    "id": "2222"
  },
  "subsidiary": {
    "id": "33"
  },
  "otherRefNum": "TEST-PO",
  "location": {
    "id": "444"
  },
  "item": {
    "items": [
        {
          "item": { "id": "555555" },
          "inventorydetail": {
            "location": "444"
          },
          "price": { "id": "-1" },
          "grossAmt": 999,
          "quantity": 1
        }
    ]
  }
}
...