API-Beispielaufrufe für Bestellungen
Abfrageoptionen FÜR BESTELLUNGEN
Hier sind weitere Beispiele, wie Sie die Bestell-API verwenden können, um das gewünschte Ergebnisset abzufragen und zu erhalten.
Diese Abfrage gibt alle Pos mit PO zurück, die noch nicht exportiert wurden:
https://<instance url>/api/purchase_orders?exported=false
Diese Abfrage gibt alle Bestellungen zurück, die nach dem 1. Januar 2011, 12:00:00 Uhr, erstellt wurden
https://<instance url>/api/purchase_orders?created-at[gt]= 2011-01-01T 12:00:00
Diese Abfrage gibt alle nicht exportierten Bestellungen zurück, die nach dem 1. Januar 2011 erstellt wurden
https://<instance url>/api/purchase_orders?exported=false&created_at[gt]=2011-01-1
Diese Abfrage gibt alle nicht exportierten Bestellungen für Lieferanten-ABS-Services 1 zurück:
https://<instance url>/api/purchase_orders?exported=false&supplier[name]=ABS Services 1
Diese Abfrage gibt alle Lieferanten zurück, deren PO-Methode auf cXML eingestellt ist und bei denen der Domainwert des Käufers das Wort "domain" enthält:
https://<instance url>/api/suppliers? po-method = cxml&cxml-domain [contains]=domain
Diese Abfrage gibt alle Lieferanten zurück, denen eine cXML-Rechnungsstellung erlaubt ist und bei denen die cXML-Rechnungseinrichtung des Lieferanten-Domainwerts das Wort "Lieferant" enthält:
https://<instance>.coupahost.com/api/suppliers?allow-cxml-invoicing=true&cxml-supplier-domain[contains]=supplier
Diese Abfrage gibt alle Lieferanten zurück, deren primäre Kontakt-E-Mail den Wert "coupa.com" und die Lieferantenadresse enthält, an der sich die Stadt Charleston befindet:
https://<instance url>/api/suppliers? primary-contact [email][contains]= coupa.com&primary-address [city]=Charleston
Diese Abfrage gibt alle Lieferanten zurück, die mindestens 5 Benutzerbewertungen im System haben.
https://<instance url>/api/suppliers?reviews-count[gt]=5
Diese Abfrage gibt alle Bestellungen mit Zahlungsmethode als "pcard" zurück und der Status ist nicht gleich "closed"
https://<instance url>/api/purchase_orders?payment_method=pcard&status[not_eq]=geschlossen
Bestellung ABRUFEN
In diesem Beispiel haben wir eine einzelne Bestellsatznummer 2400 abgefragt
Wir sind zur URL gelangt:
https://<instance url>/api/purchase_orders/2400
oder
https://<instance url>/api/purchase_orders?id=2400
Hier ist die Antwort, die den Suchkriterien entspricht:
<?xml version="1.0" encoding="UTF-8"?>
<order-headers type="array">
<order-header>
<acknowledged-flag type="boolean">false</acknowledged-flag>
<created-at type="datetime">2010-12-21T12:08:43-08:00</created-at>
<id type="integer">2400</id>
<status>ausgestellt</status>
<transmission-status>sent_via_email</transmission-status>
<updated-at type="datetime">2010-12-21T14:16:03-08:00</updated-at>
<version type="integer">1</version>
<exported type="boolean">false</exported>
<attachment type="integer" />
<received type="boolean" />
<custom-field-2 type="string" />
<buyer type="string" />
<custom-field-4 type="string" />
<date type="datetime" />
<project2 type="string">DBA1</project2>
<created-by>
<email>upgrade90@coupa.com</email>
<employee-number />
<firstname>Coupa</firstname>
<id type="integer">1</id>
<lastname>Support</lastname>
<login>coupasupport</login>
</created-by>
<requisition-header>
<id type="integer">1902</id>
<requester>
<email>upgrade90@coupa.com</email>
<employee-number />
<firstname>Coupa</firstname>
<id type="integer">1</id>
<lastname>Support</lastname>
<login>coupasupport</login>
</requester>
</requisition-header>
<ship-to-address>
<attention />
<city>Redwood City</city>
<id type="integer">1</id>
<name nil="true" />
<postal-code>94029</postal-code>
<state>CA</state>
<street1>250 Sycamore Avenue</street1>
<street2 />
<country>
<code>US</code>
<id type="integer">223</id>
<name>Vereinigte Staaten</name>
</country>
</ship-to-address>
<ship-to-user>
<email>upgrade90@coupa.com</email>
<employee-number />
<firstname>Coupa</firstname>
<id type="integer">1</id>
<lastname>Support</lastname>
<login>coupasupport</login>
</ship-to-user>
<supplier>
<id type="integer">2</id>
<name>ABS-Services 1</name>
<number>28</number>
<primary-contact>
<email>ben.mlynash@coupa.com</email>
<id type="integer">327</id>
<name-additional nil="true" />
<name-family>Rodriguez</name-family>
<name-fullname nil="true" />
<name-given>Paul</name-given>
<name-prefix nil="true" />
<name-suffix nil="true" />
<notes nil="true" />
<phone-fax>
<area-code>232</area-code>
<country-code>1</country-code>
<extension nil="true" />
<number>2321192</number>
</phone-fax>
</primary-contact>
<primary-address>
<attention nil="true" />
<city>Palo Alto</city>
<id type="integer">385</id>
<name>ABS-Services 1</name>
<postal-code>94301</postal-code>
<state>CA</state>
<street1>500 Hauptstraße</street1>
<street2 />
<country>
<code>US</code>
<id type="integer">223</id>
<name>Vereinigte Staaten</name>
</country>
</primary-address>
</supplier>
<updated-by>
<email>upgrade90@coupa.com</email>
<employee-number />
<firstname>Coupa</firstname>
<id type="integer">1</id>
<lastname>Support</lastname>
<login>coupasupport</login>
</updated-by>
<payment-term>
45 <code>Tage netto</code>
<days-for-discount-payment type="integer" nil="true" />
<days-for-net-payment type="integer" nil="true" />
<discount-rate type="float" nil="true" />
<id type="integer">2</id>
</payment-term>
<shipping-term>
<code>UPS -Grund</code>
<id type="integer">1</id>
</shipping-term>
<attachments />
<order-lines>
<order-line>
<accounting-total type="decimal">500,00</accounting-total>
<created-at type="datetime">2010-12-21T12:08:43-08:00</created-at>
<description>rechtsberatung für Q4</description>
<id type="integer">1325</id>
<invoiced type="float">0,00</invoiced>
<line-num type="integer">1</line-num>
<need-by-date type="datetime">2010-12-24T00:00:00-08:00</need-by-date>
<order-header-id type="integer">2400</order-header-id>
<price type="decimal">500,00</price>
<quantity type="float" />
<received type="float">0,00</received>
<source-part-num />
<status>erhalten</status>
<sub-line-num type="integer" />
<supp-aux-part-num />
<total type="decimal">500,00</total>
<type>OrderAmountLine</type>
<updated-at type="datetime">2010-12-30T13:03:56-08:00</updated-at>
<version type="integer" />
<options type="string" />
<family type="string" />
<family1 type="string" />
<test-date type="datetime" />
<tax-id type="string" />
<custom-field-2 type="boolean" />
<custom-field-1 type="boolean" />
<buyer type="string" />
<dept type="string" />
<account>
<active type="boolean">wahr</active>
<code>01-100-8000</code>
<id type="integer">26</id>
<name>USA -Marketing, Assets</name>
<segment-1>01</segment-1>
<segment-10 nil="true" />
<segment-11 nil="true" />
<segment-12 nil="true" />
<segment-13 nil="true" />
<segment-14 nil="true" />
<segment-15 nil="true" />
<segment-16 nil="true" />
<segment-17 nil="true" />
<segment-18 nil="true" />
<segment-19 nil="true" />
<segment-2>100</segment-2>
<segment-20 nil="true" />
<segment-3>8000</segment-3>
<segment-4 nil="true" />
<segment-5 nil="true" />
<segment-6 nil="true" />
<segment-7 nil="true" />
<segment-8 nil="true" />
<segment-9 nil="true" />
<account-type>
<id type="integer">2</id>
<name>Kontenplan</name>
</account-type>
</account>
<accounting-total-currency>
<code>USD</code>
<id type="integer">1</id>
</accounting-total-currency>
<currency>
<code>USD</code>
<id type="integer">1</id>
</currency>
<commodity>
<active type="boolean">wahr</active>
<created-at type="datetime">2007-11-26T16:03:18Z</created-at>
<id type="integer">2</id>
<name>Büromaterial</name>
<updated-at type="datetime">2009-10-08T23:45:03Z</updated-at>
<created-by>
<email>bmlynash@gmail.com</email>
<employee-number>12</employee-number>
<firstname>Bob</firstname>
<id type="integer">33</id>
<lastname>Admin</lastname>
<login>admin</login>
</created-by>
<updated-by>
<email>bmlynash@gmail.com</email>
<employee-number>12</employee-number>
<firstname>Bob</firstname>
<id type="integer">33</id>
<lastname>Admin</lastname>
<login>admin</login>
</updated-by>
<category type="string" />
</commodity>
<created-by>
<email>upgrade90@coupa.com</email>
<employee-number />
<firstname>Coupa</firstname>
<id type="integer">1</id>
<lastname>Support</lastname>
<login>coupasupport</login>
</created-by>
<supplier>
<id type="integer">2</id>
<name>ABS-Services 1</name>
<number>28</number>
<primary-contact>
<email>ben.mlynash@coupa.com</email>
<id type="integer">327</id>
<name-additional nil="true" />
<name-family>Rodriguez</name-family>
<name-fullname nil="true" />
<name-given>Paul</name-given>
<name-prefix nil="true" />
<name-suffix nil="true" />
<notes nil="true" />
<phone-fax>
<area-code>232</area-code>
<country-code>1</country-code>
<extension nil="true" />
<number>2321192</number>
</phone-fax>
</primary-contact>
<primary-address>
<attention nil="true" />
<city>Palo Alto</city>
<id type="integer">385</id>
<name>ABS-Services 1</name>
<postal-code>94301</postal-code>
<state>CA</state>
<street1>500 Hauptstraße</street1>
<street2 />
<country>
<code>US</code>
<id type="integer">223</id>
<name>Vereinigte Staaten</name>
</country>
</primary-address>
</supplier>
<updated-by>
<email>upgrade90@coupa.com</email>
<employee-number />
<firstname>Coupa</firstname>
<id type="integer">1</id>
<lastname>Support</lastname>
<login>coupasupport</login>
</updated-by>
<asset-tags />
<attachments />
</order-line>
</order-lines>
</order-header>
</order-headers>
Bestellung AUFGEGEBEN (Aktualisiert)
Übersicht
Unsere Bestell-API ermöglicht es Ihnen, Header-Kundenfelder zu aktualisieren oder die Bestellung einer bestehenden Bestellung in Coupa zu schließen oder zu stornieren. Es unterstützt auch das Hinzufügen, Löschen und Aktualisieren von Zeilendatensätzen.
Dies ist die URL, unter der SIE diese Informationen eingeben können:
https://<instance url>/api/purchase_orders/<order id>
Erfolgreiche Anfragen geben http 200 OK zurück. Der Text der Antwort enthält die Rechnung, die gerade aktualisiert wurde.
Bei nicht erfolgreichen Anfragen wird http 400 Bad Request zurückgegeben. Der Text der Antwort enthält Validierungsfehler, die als XML formatiert sind.
Notizen
Mit dieser API können Sie die folgenden Aktionen ausführen:
Bestellung schließen oder stornieren
Eine Bestellung kann versuchen, in storniert geändert zu werden, indem eine PUT-ANFORDERUNG an die Bestellung mit der folgenden Anforderung gesendet wird.
PO stornieren
<?xml version="1.0" encoding="UTF-8"?>
<order-header>
<_cancel>wahr</_cancel>
</order-header>
In ähnlicher Weise kann eine Bestellung versuchen, in geschlossen geändert zu werden, indem eine PUT-ANFORDERUNG an die Bestellung mit der folgenden Anforderung gestellt wird.
Bestellung schließen
<?xml version="1.0" encoding="UTF-8"?>
<order-header>
<_close>wahr</_close>
</order-header>
Beide Aktionen folgen allen Validierungen, als ob die Anfrage von einem Benutzer über die Website gestellt wurde. Alle Fehler werden im Antworttext zurückgegeben.
Bestellposition hinzufügen
Eine PO-Zeile kann zu einer bestehenden PO durch eine Anfrage hinzugefügt werden, die wie folgt aussieht:
Bestellposition Nr.
<?xml version="1.0" encoding="UTF-8"?>
<order-header>
<order-lines>
<order-line>
<type>OrderQuantityLine</type>
<description>Linienbeschreibung des neuen Artikels</description>
<quantity>2</quantity>
<price>30,33</price>
<currency>
<code>USD</code>
</currency>
<account>
<code>USA-Entwicklungsberatung</code>
<account-type>
<name>US-Kontenplan</name>
</account-type>
</account>
</order-line>
</order-lines>
</order-header>
Wenn die Linie alle Validierungen besteht, wird die Bestellversion inkrementiert und, falls konfiguriert, erhält der Lieferant automatisch die neue Version der Bestellung.
Bearbeiten Sie eine Bestellposition
Sie können eine vorhandene PO-Zeile bearbeiten, indem Sie die Zeilennummer in das Bestellzeilenelement aufnehmen.
Bestehende Bestellposition bearbeiten
<?xml version="1.0" encoding="UTF-8"?>
<order-header>
<order-lines>
<order-line>
<id>213</id>
Artikelbeschreibung <description>aktualisieren</description>
<quantity>5</quantity>
<price>35,33</price>
<account>
<code>USA-Sales-Consulting</code>
<account-type>
<name>US-Kontenplan</name>
</account-type>
</account>
Benutzerdefinierten Feldwert<some-custom-field> aktualisieren</some-custom-field>
</order-line>
</order-lines>
</order-header>
Abhängig von den vorgenommenen Änderungen kann eine neue Version der PO erstellt und an den Lieferanten gesendet werden. Einige dieser Änderungen umfassen die Änderung der bestellten Menge, des Stückpreises oder des Artikels. Andere Änderungen führen möglicherweise nicht zu einer erneuten Übermittlung an den Lieferanten, z. B. Änderungen am Konto.
Eine Bestellposition löschen
Sie können eine vorhandene Bestellzeile löschen, indem Sie sowohl die zu löschende Zeilen-ID als auch die Löschanforderung an das Bestellzeilenelement übergeben.
Bestellposition löschen
<?xml version="1.0" encoding="UTF-8"?>
<order-header>
<order-lines>
<order-line>
<id>3214</id>
<_delete>wahr</_delete>
</order-line>
</order-lines>
</order-header>
Diese Änderung würde dazu führen, dass eine neue PO-Version erstellt und die PO erneut gesendet wird.
Hinzufügen einer neuen Position zu einer bestehenden Bestellung
Hinzufügen einer neuen Bestellposition mit Gebührenerfassung/-abrechnung. Wenn Sie eine neue Zeile mit Kontoinformationen hinzufügen, wird empfohlen, den Kontocodewert und die einzelnen Segmente zu senden, insbesondere wenn die Segmente spezielle Zeichen in den Werten haben.
<?xml version="1.0" encoding="UTF-8"?>
<order-header>
<id>4552</id>
<order-lines>
<order-line>
<type>OrderQuantityLine</type>
<description>test</description>
<need-by-date>2015-02-05T00:00:00</need-by-date>
<price>20,00</price>
<quantity>2.000000</quantity>
<account>
<code>51110000-N/A--61W2/07001O001-1-002</code>
<segment-1>51110000</segment-1>
<segment-2>Nicht zutreffend</segment-2>
<segment-3 />
<segment-4>61W2/07001O001-1-002</segment-4>
</account>
<currency>
<code>USD</code>
</currency>
<commodity>
<name>01080001 51236000 GEBÄUDE & C</name>
</commodity>
<uom>
<code>EA</code>
</uom>
</order-line>
</order-lines>
</order-header>