问题描述
|
我有一个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,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
?>
在此先感谢您的帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)