将 WooCommerce 订单发送到 NetSuite

Posted

技术标签:

【中文标题】将 WooCommerce 订单发送到 NetSuite【英文标题】:Sending WooCommerce order to NetSuite 【发布时间】:2015-01-30 17:22:08 【问题描述】:

我正在尝试使用 Rest API 从 WooCommerce 获取订单,并将该信息作为销售订单添加到 NetSuite。我可以成功地从 WooCommerce 获取订单信息,但是使用 phpToolkit 将订单添加到 NetSuite 时失败。这是我目前所拥有的:

<?php

/*
 * Add a customer to Netsuite.
 * 
 * paramtypesmap
 *  
 */

require_once 'includes/functions.php';

// create array of fields
$itemArr = array();
$i = 0;
$service = new NetSuiteService();

$salesOrder = new SalesOrder();

$salesOrder->entity = new RecordRef();
$salesOrder->entity->internalId = 512;
$salesOrder->entity->type = 'customer';

$salesOrder->shipDate = formatDate('2014-10-06T07:12:57.000-07:00');

$service = new NetSuiteService();
$service->setSearchPreferences(false, 1000);

$siteCategory = new SearchMultiSelectField();
$siteCategory->operator = "anyOf";
$siteCategory->searchValue = array('internalId' => 512);

$search = new ItemSearchBasic();
$search->internalId = $siteCategory;

$request = new SearchRequest();
$request->searchRecord = $search;

$searchResponse = $service->search($request);
$products = $searchResponse->searchResult->recordList->record; 


$salesOrder->itemList = new SalesOrderItemList();
$item = new SalesOrderItem();
$item->item = new RecordRef();
$item->item->internalId = 531;
$item->quantity = 1;
//removeEmpty($item->item);
//removeEmpty($item);

$item->price = new RecordRef();
$item->price->internalId = 1;
$item->amount = 55.3;


$salesOrder->itemList->item=array(0=>$item);


//Equivalent too print_r
pr($item);

//Equivalent too print_r
pr($salesOrder);

removeEmpty($salesOrder);

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

//$service->setFields($purchaseOrderFields);

$response = $service->add($request);
if (!$response->writeResponse->status->isSuccess) 
    echo getErrors($response->writeResponse);
 else 
    echo success($response->writeResponse->baseRef->internalId);

?>

我只是试图从头开始工作,以查看需要哪些字段以及如何构建它们,但是在运行时我不断收到此错误:

Please choose a child matrix item

在过去的几天里,我一直在尝试用 Google Fu 来解决这个问题,但幸运的是,我一无所获。谁能帮我解决这个问题?

【问题讨论】:

【参考方案1】:

根据错误消息,您正在尝试提交父矩阵项而不是子项。通过检查内部 id 为 531 的项目记录来验证它。

【讨论】:

【参考方案2】:

获得正确内部 ID 的最佳方法是将矩阵项直接从 NetSuite 导入 WooCommerce 作为可变产品。为每个变体分配内部 id。

【讨论】:

以上是关于将 WooCommerce 订单发送到 NetSuite的主要内容,如果未能解决你的问题,请参考以下文章

节点js [ERR_HTTP_HEADERS_SENT]:将标头发送到客户端后无法设置标头

在保存订单并发送 WooCommerce 电子邮件通知之前,将订单 ID 添加到订单项目元数据

在 Woocommerce 中自动将订单状态从处理更改为完成

将默认 WooCommerce 订单状态更改为处理支票和银行付款

如何为 WooCommerce 添加电子邮件验证功能

如何调用woocommerce的订单列表