Недействительные позиции Netsuite Item Fulfillment

Я пытаюсь настроить SalesOrder на выполнение с помощью PHP Netsuite Api, но все равно получаю следующую ошибку:

VALID_LINE_ITEM_REQD - You must have at least one valid line item for this transaction.

Я использую библиотеку https://github.com/ryanwinchester/netsuite-php.

У меня пока есть следующее. Я также пробовал использовать методы инициализации, которые видел в некоторых примерах, но все они, похоже, дают одну и ту же ошибку. Если это помогает, мы используем Advanced Inventory Management.

$itemFulfillment = new ItemFulfillment();

// Sales Order
$itemFulfillment->createdFrom = new RecordRef();
$itemFulfillment->createdFrom->internalId = <SALES_ORDER_ID>;

$itemFulfillment->shipStatus = ItemFulfillmentShipStatus::_shipped;

// Customer
$itemFulfillment->entity = new RecordRef();
$itemFulfillment->entity->internalId = <CUSTOMER_ID>;

// List
$fullfillmentList = new ItemFulfillmentItemList();
$fullfillmentList->replaceAll = true;

foreach($salesOrder->itemList->item as $saleItem) {
    $item = new ItemFulfillmentItem();
    $item->location = new RecordRef();
    $item->location->internalId = 4;
    $item->item = new RecordRef();
    $item->item->internalId = $saleItem->item->internalId;
    $item->itemIsFulfilled = true;
    $item->itemReceive = true;
    $item->quantity = $saleItem->quantity;
    $item->orderLine = $saleItem->line;           

    // Department Reference
    $departmentRec = new RecordRef();
    $departmentRec->internalId = 5;
    $item->department = $departmentRec;

    $fullfillmentList->item[] = $item;
}

$itemFulfillment->itemList = $fullfillmentList;


$request = new AddRequest();
$request->record = $itemFulfillment;

$client->add($request);

Любая помощь была бы замечательной. :)

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
4
0
2 277
2

Ответы 2

  • убедитесь, что предмет находится в инвентаре
  • убедитесь, что товар доступен для вашей дочерней компании
  • убедитесь, что вы правильно фиксируете подсписки, если применимо
  • dump $ saleItem, чтобы увидеть, что в нем, чтобы убедиться, что пометка имеет значение null

Преобразование заказа на продажу в

Cross-Subsidiary Item Fulfillment Record will return a "VALID_LINE_ITEM_REQD >

У вас должен быть хотя бы один допустимый элемент строки для этой ошибки "транзакции", если мы не указали inventoryLocation в параметре defaultValue.

function createIF(soId, invLocation) { var itemFulfillment = record.transform({ fromType: record.Type.SALES_ORDER, fromId: soId, toType: record.Type.ITEM_FULFILLMENT, defaultValues: { inventorylocation: invLocation } }); /** * You can insert other script logic here */ var ifID = itemFulfillment.save(); return ifID; }

Другие вопросы по теме