Я пытаюсь добавить элемент в quickbooks онлайн, используя Keith Palmer/Consolibyte sdk. Я основал мой пример в примере, представленном в sdk, однако, похоже, что в версии sdk недостаточно информации, поэтому «добавить элемент» не удается. Просматривая документацию из intuit, кажется, что мне нужно добавить несколько дополнительных полей. Однако, когда я их добавляю, они просто игнорируются sdk и не добавляются в xml, переданный в quickbooks.consolibyte sdk add item
<?php
$ItemService = new QuickBooks_IPP_Service_Item();
$Item = new QuickBooks_IPP_Object_Item();
$Item->setName('My 1st Item');
$Item->setIncomeAccountRef('66');
$Item->setExpenseAccountRef('67');
$Item->setAssetAccountRef('65');
$Item->setType('Inventory');
$Item->setTrackQtyOnHand = ('true'); //MISSING FROM XML OUTPUT
$Item->setQtyOnHand = ('10'); //MISSING FROM XML OUTPUT
$Item->setInvStartDate = ('2015-01-01'); //MISSING FROM XML OUTPUT
if ($resp = $ItemService->add($Context, $realm, $Item))
{
print('Our new Item ID is: [' . $resp . ']');
}
else
{
print($ItemService->lastError($Context));
print("\n\n\n\n");
print('REQUEST: <code>' . htmlspecialchars($ItemService->lastRequest()) . '</code><br><br><br>');
print("\n\n\n\n");
print('RESPONSE: <code>' . htmlspecialchars($ItemService->lastResponse()) . '</code><br><br><br>');
}
print('<br><br><br><br>');
print("\n\n\n\n\n\n\n\n");
print('Request [' . $IPP->lastRequest() . ']');
print("\n\n\n\n");
print('Response [' . $IPP->lastResponse() . ']');
print("\n\n\n\n\n\n\n\n\n");
?>
</pre>
<?php
require_once dirname(__FILE__) . '/views/footer.tpl.php';
Если я вручную добавить элементы в XML и войти в API Explorer, то он работает, как ожидалось, так что проблема, кажется, получает необходимые дополнительные услуги в XML.
Вот вывод XML из моего кода выше:
<Item xmlns="http://schema.intuit.com/finance/v3">
<Name>My 3rd Item</Name>
<Type>Inventory</Type>
<IncomeAccountRef>66</IncomeAccountRef>
<ExpenseAccountRef>67</ExpenseAccountRef>
<AssetAccountRef>65</AssetAccountRef>
</Item>
Это не удается добавить элемент в последние 3 ниже поля отсутствуют на выходе XML
$Item->setTrackQtyOnHand = ('true');
$Item->setQtyOnHand = ('10');
$Item->setInvStartDate = ('2015-01-01');
Если я ввожу этот кода непосредственно в API-интерфейс, тогда элемент добавляется в быстрые книги, как ожидалось.
<Item xmlns="http://schema.intuit.com/finance/v3">
<Name>My 2nd Item</Name>
<Type>Inventory</Type>
<IncomeAccountRef>66</IncomeAccountRef>
<ExpenseAccountRef>67</ExpenseAccountRef>
<AssetAccountRef>65</AssetAccountRef>
<TrackQtyOnHand>true</TrackQtyOnHand>
<QtyOnHand>10</QtyOnHand>
<InvStartDate>2015-01-01</InvStartDate>
</Item>
Я просмотрел папку SDK, но я не уверен, где я, чтобы найти код, который строит вывод XML.
Aaargh Копирование и вставка ошибок! Я даже не заметил их там! Большое спасибо за указание на это! Я замечаю, что ваши форумы не работают. Есть ли планы оживить их? – red1974