我正在为我的公司开发一个新网站。我们有各种各样的产品。每个变体都有自己的SKU编号。选择产品时,购物车中会显示正确的商品和正确的SKU(分配给变体的SKU)。
我正在使用另一个插件,为我创建托管订单,然后可以下载到我们的ERP系统,所有这些都可以正常工作,除了一件事。传递到托管订单的SKU是父项SKU,而不是变体。
我需要一种方法来确定产品是否有变体,并且变体SKU成为其他插件拾取的产品SKU。我试过if/else
新插件中的函数,但它没有更改结果。
我相信创建托管订单的代码就是这个代码片段。
$items = $this->order->get_items();
// Line items can be added to a Transaction individually or as an array
$lineItems = array();
$itemcount = 0;
foreach($items as $item_id => $item_data) {
array_push($lineItems, new ConnectLineItem);
$product = wc_get_product($item_data[\'product_id\']);
$lineItems[$itemcount]->ProductCode = $product->get_sku();
$lineItems[$itemcount]->Category = "";
$lineItems[$itemcount]->Description = substr($item_data[\'name\'], 0, 50);
$lineItems[$itemcount]->Quantity = $item_data[\'quantity\'];
$lineItems[$itemcount]->UnitOfMeasure = "PCE";
$lineItems[$itemcount]->LineAmount = $item_data[\'total\'];
$lineItems[$itemcount]->UnitPrice = $item_data[\'total\'] / $item_data[\'quantity\'];
$lineItems[$itemcount]->LineTaxAmount = $item_data[\'subtotal_tax\'];
$lineItems[$itemcount]->LineDiscountAmount = "0.00";
$itemcount = $itemcount + 1;
}
$trans->addLineItemArray($lineItems);
诚然,我是这方面的新手,所以任何建议都会很有帮助。
SO网友:Chuck B
因此,我能够得到我正在寻找的结果,但在这样做的过程中,php错误日志中出现了一个错误。在我认为需要设置的地方,我在上面显示的部分中添加了以下代码。代码如下。
$items = $this->order->get_items();
// Line items can be added to a Transaction individually or as an array
$lineItems = array();
$itemcount = 0;
foreach($items as $item_id => $item_data) {
array_push($lineItems, new ConnectLineItem);
***$product_variation_id = $item_data[\'variation_id\'];
if ($product_variation_id) {
$product = wc_get_product($item_data[\'variation_id\']);}
else {
$product = wc_get_product($item_data[\'product_id\']); }***
$lineItems[$itemcount]->ProductCode = $product->get_sku();
$lineItems[$itemcount]->Category = "";
$lineItems[$itemcount]->Description = substr($item_data[\'name\'], 0, 50);
$lineItems[$itemcount]->Quantity = $item_data[\'quantity\'];
$lineItems[$itemcount]->UnitOfMeasure = "PCE";
$lineItems[$itemcount]->LineAmount = $item_data[\'total\'];
$lineItems[$itemcount]->UnitPrice = $item_data[\'total\'] / $item_data[\'quantity\'];
$lineItems[$itemcount]->LineTaxAmount = $item_data[\'subtotal_tax\'];
$lineItems[$itemcount]->LineDiscountAmount = "0.00";
$itemcount = $itemcount + 1;
我收到的错误消息是:[2021 4月6日21:24:16 UTC]状态调用不正确。不应直接访问订单属性。回溯:require(\'wp-blog-header.php\')、require\\u once(\'wp-includes/template loader.php\')、do\\u action(\'template\\u redirect\')、wp\\u Hook->;do\\u action,WP\\u Hook->;apply\\u filters,WC\\u AJAX::do\\u WC\\u AJAX,do\\u action(\'WC\\u AJAX\\u checkout\'),WP\\u Hook->;do\\u action,WP\\u Hook->;应用\\u筛选器,WC\\u AJAX::签出,WC\\u签出->;process\\u checkout,WC\\u checkout->;process\\u order\\u payment,WC\\u CL\\u CONNECT\\u Gateway->;process\\u payment,WC\\u CL\\u CONNECT\\u Gateway->;do\\u order\\u complete\\u tasks,WC\\u Abstract\\u Legacy\\u order->__get,wc\\u do\\u it\\u做错了。此消息是在版本3.0中添加的。
如何解决此问题。