Zahlungs- und Versandarten per REST API abfragen

Hallo Community,

ich würde gerne Bestellungen per REST API anlegen. Das funktioniert soweit mit der Shopwareversion 5.2.21.

Mein Problem ist, dass ich die Zahlungs- und Versandarten-IDs nicht zur Verfügung habe. Deshalb möchte ich diese mit bspw. den Namen (Rechnung, Vorkasse, Paypal, etc.) abfragen. Im Moment fällt mir nur dazu ein, die API per Plugin zu erweitern, um die IDs abzufragen.

Geht es auch einfacher bzw. eleganter?

Grüße

Mathias

Hier nochmal der Codeausschnitt, wie ich gerne eine Bestellung anlegen möchte:

$client->post ( 'orders', array (
		"customerId" => $customerId,
		"paymentId" => $status,
		"dispatchId" => 10,
		"partnerId" => "",
		"shopId" => 1,
		"invoiceAmount" => sprintf ( "%01.2f", ($amount) ),
		"invoiceAmountNet" => sprintf ( "%01.2f", ($amountNet) ),
		"invoiceShipping" => $invoice,
		"invoiceShippingNet" => sprintf ( "%01.2f", ($invoiceNet) ),
		"orderTime" => date ( "Y-m-d H:i:s" ),
		"net" => 0,
		"taxFree" => 0,
		"languageIso" => "1",
		"currency" => "EUR",
		"currencyFactor" => 1,
		"remoteAddress" => "11.11.11.11",
		"details" => $articles,
		"documents" => array (),
		"comment" => $comment,
		"customerComment" => "Bestellung von Marktplatz xyz",
		"billing" => array (
				"id" => '',
				"customerId" => $customerId,
				"countryId" => 2,
				"stateId" => 3,
				"company" => $company,
				"salutation" => "mr",
				"firstName" => $firstname,
				"lastName" => $lastname,
				"street" => $street,
				"zipCode" => $zipcode,
				"city" => $city 
		),
		"shipping" => array (
				"id" => 2,
				"countryId" => 2,
				"stateId" => 3,
				"customerId" => 1,
				"company" => $company,
				"salutation" => "mr",
				"firstName" => $firstname,
				"lastName" => $lastname,
				"street" => $street,
				"zipCode" => $zipcode,
				"city" => $city 
		),
		"paymentStatusId" => 17,
		"orderStatusId" => 0 
) );

An die $customerId komme ich noch ran:

$params = [
	'filter' => [
		[
			'property' => 'email',
			'value' => $mail
		]
	]
];

$data = $client->get('customers',$params);

Ich muss aber zwingend auch die dispatchId und paymentStatusId setzen können. Der Kunde hat hier die Auswahl der Zahlungsarten und Versandarten als Name. Die Ids stehen nicht zur Verfügung. Diese müsste ich irgendwie abfragen.

Für einen Ansatz wäre ich dankbar.

Grüße

Mathias

@shopware‍

So wie ich es mitbekommen habe, wird Shopware Partner des Marktplatzes werden. Thumb-Up

Meine Einschätzung bleibt, dass ich mit einem Plugin die API erweitern muss, um die ZahlungsartenIDs und VersandartenIDs auslesen zu können. Außerdem brauche ich min. Shopware 5.2.21. Einen anderen Weg sehe ich im Moment nicht. Oder habe ich etwas übersehen?

Grüße

Mathias