У меня есть страница 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
?>
Заранее спасибо за любую помощь!