eBay-API mit PHP -
Verfasst: 12. Jan 2019 20:27
Ich versuche mich an einer eBay-API in PHP. Letztendlich soll das .php folgendes können:
1. Alle meine Artikel anzeigen, welche ich bei eBay gelistet habe.
2. Wie kann ich mir alle Artikel als csv downloaden? Die Datei soll mehr Infos zu den Artikeln enthalten als ein eBay-CSV Manager. (siehe Code Block 1)
3. Wie kann ich mit Hilfe der API die Versandkosten bei Artikeln mit Versandkosten i.H.v. 4,99 EUR auf 5,99 EUR erhöhen? (siehe Code Block 2)
FYI: Ich rufe die php-Datei nur über den Browser ohne eine SDK oder einer IDE ab.
Problem:
Die Ausgabe ist entweder ein weißer Bildschirm oder ein Syntaxfehler ( ' . $data['userToken'] . ' '220705951941' '; ** Ende des Tests **/ while ($main = mysqli_fetch_object($sql_main)) { $requestXmlBody_item = ' ' . $data['userToken'] . ' ' . $main->artikelNr . ' '; //build eBay headers using variables passed via constructor //initialise a CURL session $connection_item = curl_init(); curl_setopt($connection_item, CURLOPT_URL, ...)
Ich wäre für jede Hilfe sehr dankbar.
Folgend mein Code:
<?php
//***** Code-Block 1 *****
/*
List all my articles
*/
require_once('../../../func/central_test.php');
require_once('../../../db/intranet.php');
ini_set('max_execution_time', 9000);
$data_item['verb'] = "GetItemRequest";
$data['devID'] = "AAAA-AAAA-AAAA-AAAA";
$data['appID'] = "BBBB-BBBB-BBBB-BBBB";
$data['certID'] = "CCCC-CCCC-CCCC-CCCC";
$data['serverUrl'] = "https://api.ebay.com/ws/api.dll";
$data['userToken'] = "DDDD**DDDD**DDDD**DDDD";
$data['username'] = "EEE";
$data['siteID'] = 77;
$headers_item = array(
//Regulates versioning of the XML interface for the API
"X-EBAY-API-COMPATIBILITY-LEVEL: 967",
//set the keys
"X-EBAY-API-DEV-NAME: " . $data['devID'],
"X-EBAY-API-APP-NAME: " . $data['appID'],
"X-EBAY-API-CERT-NAME: " . $data['certID'],
"X-EBAY-API-CALL-NAME: " . $data_item['verb'],
"X-EBAY-API-SITEID: " . $data['siteID']
);
$sql_main = mysqli_query($connection, "SELECT Artikelnummer as artikelNr FROM nr_ebay_angebote WHERE up_kat = '1' AND disable = '0'");
/** Test mit einem Beispiel-Artikel **
$requestXmlBody_item = '<?xml version="1.0" encoding="utf-8"?>
<GetItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>' . $data['userToken'] . '</eBayAuthToken>
</RequesterCredentials>
<ItemID>'220705951941'</ItemID>
</GetItemRequest>';
** Ende des Tests **/
while ($main = mysqli_fetch_object($sql_main)) {
$requestXmlBody_item = '<?xml version="1.0" encoding="utf-8"?>
<GetItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>' . $data['userToken'] . '</eBayAuthToken>
</RequesterCredentials>
<ItemID>' . $main->artikelNr . '</ItemID>
</GetItemRequest>';
//build eBay headers using variables passed via constructor
//initialise a CURL session
$connection_item = curl_init();
curl_setopt($connection_item, CURLOPT_URL, $data['serverUrl']);
//stop CURL from verifying the peer"s certificate
curl_setopt($connection_item, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($connection_item, CURLOPT_SSL_VERIFYHOST, 0);
//set the headers using the array of headers
curl_setopt($connection_item, CURLOPT_HTTPHEADER, $headers_item);
//set method as POST
curl_setopt($connection_item, CURLOPT_POST, 1);
//set the XML body of the request
curl_setopt($connection_item, CURLOPT_POSTFIELDS, $requestXmlBody_item);
//set it to return the transfer as a string from curl_exec
curl_setopt($connection_item, CURLOPT_RETURNTRANSFER, 1);
//Send the Request
$response = curl_exec($connection_item);
//Send the Request
$response = curl_exec($connection);
$responseXml = $response;
echo $responseXml;
//close the connection
curl_close($connection_item);
}
echo "End of request."
?>
<?php
//***** Code-Block 2 *****
/*
change the shipping cost from 4.99 to 5.99 EUR
*/
require_once('../../../func/central_test.php');
require_once('../../../db/intranet.php');
ini_set('max_execution_time', 9000);
$data_item['verb'] = "ShippingCostSummary";
$data['devID'] = "AAAA-AAAA-AAAA-AAAA";
$data['appID'] = "BBBB-BBBB-BBBB-BBBB";
$data['certID'] = "CCCC-CCCC-CCCC-CCCC";
$data['serverUrl'] = "https://api.ebay.com/ws/api.dll";
$data['userToken'] = "DDDD**DDDD**DDDD**DDDD";
$data['username'] = "EEE";
$data['siteID'] = 77;
$headers_item = array(
//Regulates versioning of the XML interface for the API
"X-EBAY-API-COMPATIBILITY-LEVEL: 967",
//set the keys
"X-EBAY-API-DEV-NAME: " . $data['devID'],
"X-EBAY-API-APP-NAME: " . $data['appID'],
"X-EBAY-API-CERT-NAME: " . $data['certID'],
"X-EBAY-API-CALL-NAME: " . $data_item['verb'],
"X-EBAY-API-SITEID: " . $data['siteID']
);
$sql_main = mysqli_query($connection, "SELECT Artikelnummer as artNumb FROM nr_ebay_angebote WHERE up_kat = '1' AND disable = '0'");
while ($main = mysqli_fetch_object($sql_main)) {
$requestXmlBody_item = '<?xml version="1.0" encoding="utf-8"?>
<ShippingCostSummary>
<ListedShippingServiceCost currencyID="CurrencyCodeType"> currentCost </ListedShippingServiceCost>
<ShippingServiceCost currencyID="CurrencyCodeType"> newShippingCost </ShippingServiceCost>
</ShippingCostSummary>;
//build eBay headers using variables passed via constructor
//initialise a CURL session
$connection_item = curl_init();
curl_setopt($connection_item, CURLOPT_URL, $data['serverUrl']);
//stop CURL from verifying the peer"s certificate
curl_setopt($connection_item, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($connection_item, CURLOPT_SSL_VERIFYHOST, 0);
//set the headers using the array of headers
curl_setopt($connection_item, CURLOPT_HTTPHEADER, $headers_item);
//set method as POST
curl_setopt($connection_item, CURLOPT_POST, 1);
//set the XML body of the request
curl_setopt($connection_item, CURLOPT_POSTFIELDS, $requestXmlBody_item);
//set it to return the transfer as a string from curl_exec
curl_setopt($connection_item, CURLOPT_RETURNTRANSFER, 1);
//Send the Request
$response = curl_exec($connection);
$responseXml = $response;
echo $responseXml;
if ($response->currentCost == 4.99) {
newShippingCost == 5.99;
}
}
?>
1. Alle meine Artikel anzeigen, welche ich bei eBay gelistet habe.
2. Wie kann ich mir alle Artikel als csv downloaden? Die Datei soll mehr Infos zu den Artikeln enthalten als ein eBay-CSV Manager. (siehe Code Block 1)
3. Wie kann ich mit Hilfe der API die Versandkosten bei Artikeln mit Versandkosten i.H.v. 4,99 EUR auf 5,99 EUR erhöhen? (siehe Code Block 2)
FYI: Ich rufe die php-Datei nur über den Browser ohne eine SDK oder einer IDE ab.
Problem:
Die Ausgabe ist entweder ein weißer Bildschirm oder ein Syntaxfehler ( ' . $data['userToken'] . ' '220705951941' '; ** Ende des Tests **/ while ($main = mysqli_fetch_object($sql_main)) { $requestXmlBody_item = ' ' . $data['userToken'] . ' ' . $main->artikelNr . ' '; //build eBay headers using variables passed via constructor //initialise a CURL session $connection_item = curl_init(); curl_setopt($connection_item, CURLOPT_URL, ...)
Ich wäre für jede Hilfe sehr dankbar.
Folgend mein Code:
<?php
//***** Code-Block 1 *****
/*
List all my articles
*/
require_once('../../../func/central_test.php');
require_once('../../../db/intranet.php');
ini_set('max_execution_time', 9000);
$data_item['verb'] = "GetItemRequest";
$data['devID'] = "AAAA-AAAA-AAAA-AAAA";
$data['appID'] = "BBBB-BBBB-BBBB-BBBB";
$data['certID'] = "CCCC-CCCC-CCCC-CCCC";
$data['serverUrl'] = "https://api.ebay.com/ws/api.dll";
$data['userToken'] = "DDDD**DDDD**DDDD**DDDD";
$data['username'] = "EEE";
$data['siteID'] = 77;
$headers_item = array(
//Regulates versioning of the XML interface for the API
"X-EBAY-API-COMPATIBILITY-LEVEL: 967",
//set the keys
"X-EBAY-API-DEV-NAME: " . $data['devID'],
"X-EBAY-API-APP-NAME: " . $data['appID'],
"X-EBAY-API-CERT-NAME: " . $data['certID'],
"X-EBAY-API-CALL-NAME: " . $data_item['verb'],
"X-EBAY-API-SITEID: " . $data['siteID']
);
$sql_main = mysqli_query($connection, "SELECT Artikelnummer as artikelNr FROM nr_ebay_angebote WHERE up_kat = '1' AND disable = '0'");
/** Test mit einem Beispiel-Artikel **
$requestXmlBody_item = '<?xml version="1.0" encoding="utf-8"?>
<GetItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>' . $data['userToken'] . '</eBayAuthToken>
</RequesterCredentials>
<ItemID>'220705951941'</ItemID>
</GetItemRequest>';
** Ende des Tests **/
while ($main = mysqli_fetch_object($sql_main)) {
$requestXmlBody_item = '<?xml version="1.0" encoding="utf-8"?>
<GetItemRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>' . $data['userToken'] . '</eBayAuthToken>
</RequesterCredentials>
<ItemID>' . $main->artikelNr . '</ItemID>
</GetItemRequest>';
//build eBay headers using variables passed via constructor
//initialise a CURL session
$connection_item = curl_init();
curl_setopt($connection_item, CURLOPT_URL, $data['serverUrl']);
//stop CURL from verifying the peer"s certificate
curl_setopt($connection_item, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($connection_item, CURLOPT_SSL_VERIFYHOST, 0);
//set the headers using the array of headers
curl_setopt($connection_item, CURLOPT_HTTPHEADER, $headers_item);
//set method as POST
curl_setopt($connection_item, CURLOPT_POST, 1);
//set the XML body of the request
curl_setopt($connection_item, CURLOPT_POSTFIELDS, $requestXmlBody_item);
//set it to return the transfer as a string from curl_exec
curl_setopt($connection_item, CURLOPT_RETURNTRANSFER, 1);
//Send the Request
$response = curl_exec($connection_item);
//Send the Request
$response = curl_exec($connection);
$responseXml = $response;
echo $responseXml;
//close the connection
curl_close($connection_item);
}
echo "End of request."
?>
<?php
//***** Code-Block 2 *****
/*
change the shipping cost from 4.99 to 5.99 EUR
*/
require_once('../../../func/central_test.php');
require_once('../../../db/intranet.php');
ini_set('max_execution_time', 9000);
$data_item['verb'] = "ShippingCostSummary";
$data['devID'] = "AAAA-AAAA-AAAA-AAAA";
$data['appID'] = "BBBB-BBBB-BBBB-BBBB";
$data['certID'] = "CCCC-CCCC-CCCC-CCCC";
$data['serverUrl'] = "https://api.ebay.com/ws/api.dll";
$data['userToken'] = "DDDD**DDDD**DDDD**DDDD";
$data['username'] = "EEE";
$data['siteID'] = 77;
$headers_item = array(
//Regulates versioning of the XML interface for the API
"X-EBAY-API-COMPATIBILITY-LEVEL: 967",
//set the keys
"X-EBAY-API-DEV-NAME: " . $data['devID'],
"X-EBAY-API-APP-NAME: " . $data['appID'],
"X-EBAY-API-CERT-NAME: " . $data['certID'],
"X-EBAY-API-CALL-NAME: " . $data_item['verb'],
"X-EBAY-API-SITEID: " . $data['siteID']
);
$sql_main = mysqli_query($connection, "SELECT Artikelnummer as artNumb FROM nr_ebay_angebote WHERE up_kat = '1' AND disable = '0'");
while ($main = mysqli_fetch_object($sql_main)) {
$requestXmlBody_item = '<?xml version="1.0" encoding="utf-8"?>
<ShippingCostSummary>
<ListedShippingServiceCost currencyID="CurrencyCodeType"> currentCost </ListedShippingServiceCost>
<ShippingServiceCost currencyID="CurrencyCodeType"> newShippingCost </ShippingServiceCost>
</ShippingCostSummary>;
//build eBay headers using variables passed via constructor
//initialise a CURL session
$connection_item = curl_init();
curl_setopt($connection_item, CURLOPT_URL, $data['serverUrl']);
//stop CURL from verifying the peer"s certificate
curl_setopt($connection_item, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($connection_item, CURLOPT_SSL_VERIFYHOST, 0);
//set the headers using the array of headers
curl_setopt($connection_item, CURLOPT_HTTPHEADER, $headers_item);
//set method as POST
curl_setopt($connection_item, CURLOPT_POST, 1);
//set the XML body of the request
curl_setopt($connection_item, CURLOPT_POSTFIELDS, $requestXmlBody_item);
//set it to return the transfer as a string from curl_exec
curl_setopt($connection_item, CURLOPT_RETURNTRANSFER, 1);
//Send the Request
$response = curl_exec($connection);
$responseXml = $response;
echo $responseXml;
if ($response->currentCost == 4.99) {
newShippingCost == 5.99;
}
}
?>