我有一个 php 页面,其中包含一个包含已订购项目门户的订单。每个订购的项目都会循环并通过 XML 发送以从 Metasite 中删除。在循环中,Metasite 返回一个我想添加到数据库中项目状态的响应。这就是我卡住的地方 -
我不知道如何获取代码来识别项目的记录,以便在循环内添加/编辑。
这是到目前为止的代码 -
<?php
require_once('Connections/invoices.php');
require_once('MetaSiteBooks/post_xml.php');
$ids_find = clone($invoices);
$ids_find->layout = 'orders';
$ids_findCriterions = array('orderID'=>$_REQUEST['orderid'],);
foreach($ids_findCriterions as $key=>$value) {
$ids_find->AddDBParam($key,$value);
}
fmsSetPage($ids_find,'ids',35);
$ids_result = $ids_find->FMFind();
if( is_a($ids_result,'FX_Error') || $ids_result['errorCode'] != "0")
fmsTrapError($ids_result,"error.php");
fmsSetLastPage($ids_result,'ids',35);
$ids_row = current($ids_result['data']);
$ids_row_key = key($ids_result['data']);
$ids_orderlineitem_portal_row = 0;
$ids_orderpaypalvars_portal_row = 0;
好的,所以这标识了包含订购项目列表的记录。
接下来开始循环 -
$ids_orderlineitem_portal_rownum = 1;
foreach($ids_row['order_line_item::bookID'] as
$ids_orderlineitem_portal_row=>$ids_orderlineitem_portal)
{
$xml =
'<?xml version="1.0" encoding="ISO-8859-1"?>
<inventoryUpdateRequest version="1.0">
<action name="bookupdate">
</action>
<transactionType>delete</transactionType>
<vendorBookID>' . $ids_row['order_line_item::bookID']
[$ids_orderlineitem_portal_row].'</vendorBookID>
</inventoryUpdateRequest>';
$url ='https://inventoryupdate.metasite.com';
$port = 80;
$response = xml_post($xml, $url, $port);
$data = simplexml_load_string($response);
$code = (string) $data->Metasite>code;
发送并响应 XML。接下来我想将响应代码添加到我的项目记录中 -
$inventory_status_edit = clone($invoices);
$inventory_status_edit->layout = 'order_line_item';
$inventory_status_edit->AddDBParam('-recid',
$ids_row['order_line_item::bookID'][$ids_orderlineitem_portal_row]);
这就是我卡住的地方,DBParam 不正确。无论如何,这是其余的代码 -
$inventory_status_fields =
array('Metasite_status'=>'$code',
'inventory_status'=>'dltd',);
foreach ( $inventory_status_fields as $key=>$value) {
$inventory_status_edit->AddDBParam($key,$value);
}
$inventory_status_result = $inventory_status_edit->FMEdit();
if(is_a($inventory_status_result,"FX_Error") ||
$inventory_status_result['errorCode'] != "0")
fmsTrapError($inventory_status_result,"error1.php");
$inventory_status_row = current($inventory_status_result['data']);
$inventory_status_row_key = key($inventory_status_result['data']);
if($ids_orderlineitem_portal_rownum == 0)
break;
else
$ids_orderlineitem_portal_rownum++;
}//portal_end
?>
提前感谢您的帮助!