Здравствуйте, я столкнулся с проблемой при добавлении SalesOrderAddRq в Quickbooks с помощью https://packagist.org/packages/consolibyte/quickbooks
Ниже приведен мой XML для добавления продавца в Quickbooks, а также здесь тег <ListID >
какова будет ценность этого поля!
еще больше я получаю эту ошибку при добавлении
Версия:
PHP QuickBooks SOAP Server v3.0 в / quickbooks / qbwc
Сообщение:
3140: недействительная ссылка на клиента QuickBooks
«Джон Доу» в SalesOrder. Сообщение об ошибке QuickBooks: Invalid
аргумент. Указанная запись не существует в списке.
Описание:
Сообщение об ошибке, полученное из приложения через getLastError (): 3140:
В клиенте QuickBooks «Джон Доу» имеется недействительная ссылка на
Заказ клиента. Сообщение об ошибке QuickBooks: неверный аргумент.
указанная запись не существует в списке.
public function _addSaleorderRequest($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale)
{
// Do something here to load data using your model
//$data = $this->yourmodel->getCustomerData($ID);
// Build the qbXML request from $data
$xml = '<?xml version="1.0"?>
<?qbxml version="4.0"?>
<QBXML>
<QBXMLMsgsRq onError="stopOnError">
<SalesOrderAddRq requestID="' . $requestID . '">
<SalesOrderAdd>
<CustomerRef> <!-- required -->
<ListID >' . $requestID . '</ListID> <!-- optional -->
<FullName >john Doe</FullName> <!-- optional -->
</CustomerRef>
<TxnDate>2013-05-23</TxnDate>
<RefNumber>$requestID</RefNumber>
<BillAddress>
<Addr1>China Town One</Addr1>
<Addr2>China Town Two</Addr2>
<City>Pta Nai</City>
<State>Dont Know</State>
<PostalCode>420420</PostalCode>
<Country>PK</Country>
</BillAddress>
<ShipAddress>
<Addr1>China Town One</Addr1>
<Addr2>China Town Two</Addr2>
<City>Houston</City>
<State>TX</State>
<PostalCode>77074</PostalCode>
<Country>US</Country>
</ShipAddress>
<SalesOrderLineAdd>
<ItemRef>
<FullName>Booklets:CB1-101</FullName>
</ItemRef>
<Desc>CHF</Desc>
<Quantity>15</Quantity>
<Amount>59.25</Amount>
</SalesOrderLineAdd>
<SalesOrderLineAdd>
<ItemRef>
<FullName>Booklets:CB3-101</FullName>
</ItemRef>
<Desc>High Blood Pressure</Desc>
<Quantity>15</Quantity>
<Amount>59.25</Amount>
</SalesOrderLineAdd>
<SalesOrderLineAdd>
<ItemRef>
<FullName>Booklets:DB1-101</FullName>
</ItemRef>
<Desc>Diabetes Type 1 or 2 with Insulin</Desc>
<Quantity>15</Quantity>
<Amount>59.25</Amount>
</SalesOrderLineAdd>
<SalesOrderLineAdd>
<ItemRef>
<FullName>Booklets:DB2-101</FullName>
</ItemRef>
<Desc>Diabetes Type 1 or 2 w/o Insulin</Desc>
<Quantity>15</Quantity>
<Amount>59.25</Amount>
</SalesOrderLineAdd>
</SalesOrderAdd>
</SalesOrderAddRq>
</QBXMLMsgsRq>
</QBXML>';
return $xml;
}
Это сообщение:
3140. В SalesOrder есть недопустимая ссылка на клиента QuickBooks «Джона Доу». Сообщение об ошибке QuickBooks: неверный аргумент.
указанная запись не существует в списке.
Означает, что вы говорите QuickBooks добавить заказ клиента John Doe
но этот клиент не существует в QuickBooks.
Вы не можете добавить заказ клиента к несуществующему клиенту.
Это похоже на то, как работает каждая система реляционных баз данных — у вас есть внешние ключи / зависимости между записями, которые вам нужно удовлетворить.
Это:
<ListID >' . $requestID . '</ListID>
Не является действительным ListID
значение. Вам необходимо пройти в действительный ListID
значение.
Вы проходите в $requestID
значение для конкретного запроса qbXML, который никоим образом не связан с ListID
для клиента.
Пожалуйста, передайте действительный клиент ListID
значение (или, в качестве альтернативы, передать действительный клиент Name
значение и не передавать ListID
тег на все).
Других решений пока нет …