Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php//$Id: index.php 3361 2011-02-24 15:34:41Z tiefland $/*** ALTE VERSION NICHT NUTZEN!** NEUE VERSION IST ebay_auktionsimport.php*//*** @author Patirck Lautsch <lautsch@weban.de>* @copyright 2009 Webagentur Niewerth* @package Content-management* @version $Rev: 3361 $* @license propietary* @filesource**//**** @author Patirck Lautsch <lautsch@weban.de>* @copyright 2009 Webagentur Niewerth* @package Content-management*/// Wenn $_GET['shops_id'] nicht gesetzt ist oder leer ist -> Fehlermeldung und dieif ( empty( $_GET['shops_id'] ) ){die( "Es wurde vergessen die Shop ID anzugeben!<br />Bitte geben Sie die Datenbank über die Get-Variable \"shops_id\" an." );}// Wenn $_GET['bestellart_id'] nicht gesetzt ist oder leer ist -> Fehlermeldung und dieif ( empty( $_GET['bestellart_id'] ) ){die( "Es wurde vergessen die Bestellart ID anzugeben!<br />Bitte geben Sie die Datenbank über die Get-Variable \"bestellart_id\" an." );}// connect-Datei einbindenrequire_once "../../Online-Shop/connect2.php";// Binde Funktionen einrequire_once "includes/funktionen.inc.php";// hole den Ort der Config-Datei aus 'eBay_settings'$sql = "SELECTInhaltFROMeBay_settingsWHERETyp = 'confDatei'AND shops_id = '" . $_GET['shops_id'] . "'";$result = mysql_query( $sql ) or die( mail("info@weban.de","eBay-Cronjob Fehler", mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );$row = mysql_fetch_assoc( $result );$confDatei = $row[Inhalt];$_GET["confDatei"] = $confDatei;// hole die XML-Datei in der die Transactions sindob_start();require_once "/web/apache/content-management/cronjobs/ebay/holeXML.php";$file = ob_get_contents();ob_end_clean();// Definition welcher Teil der XML-Datei gelesen werden soll$start = "<TransactionArray>";$ende = "</TransactionArray>";// speichere den XML-Ausschnitt in Treffer$treffer = get_string_between( $file, $start, $ende );// Sonderzeichen wie spitze Klammern werden in Entities geschrieben,// deshalb müssen diese mit html_entity_decode() zurückverwandelt werden$treffer = html_entity_decode( $treffer );// packe ein Root-Tag um den ausgeschnitten XML-Teil$treffer = "<ebay>" . $treffer . "</ebay>";// erzeuge ein Objekt aus dem ausgeschnitten XML-Teil$xml = simplexml_load_string( $treffer );// Gehe alle Transactions durchforeach ( $xml->Transaction as $ta ){/*** Notiz:* When an item is listed as a Chinese auction type ( the default value of the AddItem.Item.ListingType property), the TransactionID* always returns a value of '0' as described in the online document :* http://developer.ebay.com/DevZone/XML/docs/Reference/eBay/GetItemTransactions.html**/// Wenn das ListingType = "chinese" ist, nehme die ItemID als TransactionIDif ( "Chinese" == $ta->Item->ListingType ){$ta->TransactionID = $ta->Item->ItemID;}// Überprüfe ob die Transaction schon in der Datenbank ist$sql = "SELECTTransactionIdFROMeBay_BestellungWHERETransactionId = '" . $ta->TransactionID . "'";$result = mysql_query( $sql ) or die( mail("info@weban.de","eBay-Cronjob Fehler", mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );$row = mysql_fetch_assoc( $result );// Transaction vorhanden?if ( NULL == $row[TransactionId] ){// Transaction nicht vorhanden:// Trage Transaction und dazugehörige Daten in die Datenbank// Attribut-Inhalt löschen wenn Inhalt gleich "Invalid Request"if ( $ta->Buyer->Email == "Invalid Request" ){$ta->Buyer->Email = "";}if ( $ta->Buyer->RegistrationAddress->Phone == "Invalid Request" ){$ta->Buyer->RegistrationAddress->Phone = "";}if ( $ta->Buyer->BuyerInfo->ShippingAddress->Phone == "Invalid Request" ){$ta->Buyer->BuyerInfo->ShippingAddress->Phone = "";}// ME: bei Usern aus dem Ausland wird die Rechnungsadresse nicht korrekt gefüllt// das muss hier behoben werden:// wenn keine Rechnungsadresse eingetragen ist, wird die Rechnungsadresse mit den Daten der// Lieferadresse gefülltunset($RegistrationAddress_Name);if ( strlen($ta->Buyer->RegistrationAddress->Name) == 0 ){$RegistrationAddress_Name = $ta->Buyer->BuyerInfo->ShippingAddress->Name;}unset($RegistrationAddress_Street);if ( strlen($ta->Buyer->RegistrationAddress->Street) == 0 ){$RegistrationAddress_Street = $ta->Buyer->BuyerInfo->ShippingAddress->Street1;}unset($RegistrationAddress_PostalCode);if ( strlen($ta->Buyer->RegistrationAddress->PostalCode) == 0 ){$RegistrationAddress_PostalCode = $ta->Buyer->BuyerInfo->ShippingAddress->PostalCode;}unset($RegistrationAddress_CityName);if ( strlen($ta->Buyer->RegistrationAddress->CityName) == 0 ){$RegistrationAddress_CityName = $ta->Buyer->BuyerInfo->ShippingAddress->CityName;}unset($RegistrationAddress_CountryName);if ( strlen($ta->Buyer->RegistrationAddress->CountryName) == 0 ){$RegistrationAddress_CountryName = $ta->Buyer->BuyerInfo->ShippingAddress->CountryName;}// Ist der eBay-Benutzer schon vorhanden in der Datenbank?$sql = "SELECTID,ebay_UserIDFROMLoginsWHEREebay_UserID = '" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->UserID) ) . "'";$result = mysql_query( $sql ) or die( mysql_errno() . ': ' . mysql_error() .'<hr />' . $sql );$row = mysql_fetch_assoc( $result );if ( $row['ebay_UserID'] == mysql_real_escape_string(deutsche_umlaute($ta->Buyer->UserID)) ){// eBay-Benutzer ist schon vorhanden$user_id = $row['ID'];// UPDATE der Logins-Tabelle$sql = "UPDATELoginsSETName1 = '" . mysql_real_escape_string( deutsche_umlaute(($RegistrationAddress_Name) ?$RegistrationAddress_Name : $ta->Buyer->RegistrationAddress->Name) ) . "',Strasse = '" . mysql_real_escape_string( deutsche_umlaute(($RegistrationAddress_Street) ?$RegistrationAddress_Street : $ta->Buyer->RegistrationAddress->Street) ) ."',PLZ = '" . mysql_real_escape_string( deutsche_umlaute(($RegistrationAddress_PostalCode) ?$RegistrationAddress_PostalCode : $ta->Buyer->RegistrationAddress->PostalCode) ) . "',ORT = '" . mysql_real_escape_string( deutsche_umlaute(($RegistrationAddress_CityName) ?$RegistrationAddress_CityName : $ta->Buyer->RegistrationAddress->CityName) ) ."',Land = '" . mysql_real_escape_string( deutsche_umlaute(($RegistrationAddress_CountryName) ?$RegistrationAddress_CountryName : $ta->Buyer->RegistrationAddress->CountryName) ) . "',E_Mail = '" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->Email) ) . "',Telefon = '" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->BuyerInfo->ShippingAddress->Phone) ) . "',liefer_Name = '" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->BuyerInfo->ShippingAddress->Name) ) . "',liefer_Strasse = '" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->BuyerInfo->ShippingAddress->Street1) ) . "',liefer_PLZ = '" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->BuyerInfo->ShippingAddress->PostalCode) ) . "',liefer_Ort = '" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->BuyerInfo->ShippingAddress->CityName) ) . "',letzte_Aenderung_am = NOW(),ebay_FeedbackScore = '" . $ta->Buyer->FeedbackScore . "',ebay_PositiveFeedbackPercent = '" . $ta->Buyer->PositiveFeedbackPercent . "'WHEREID = $user_id;";mysql_query( $sql ) or die( mysql_errno() . ': ' . mysql_error() .'<hr />' . $sql );}else{// eBay-Benutzer ist noch nicht vorhanden// SQL: Benutzer anlegen$sql = "INSERT INTO Logins(Name1,Strasse,PLZ,ORT,Land,E_Mail,Telefon,liefer_Name,liefer_Strasse,liefer_PLZ,liefer_Ort,erstellt_am,erstellt_von,letzte_Aenderung_am,letzte_Aenderung_von,ebay_UserID,ebay_FeedbackScore,ebay_PositiveFeedbackPercent)VALUES('" . mysql_real_escape_string( deutsche_umlaute(($RegistrationAddress_Name) ?$RegistrationAddress_Name : $ta->Buyer->RegistrationAddress->Name) ) . "','" . mysql_real_escape_string( deutsche_umlaute(($RegistrationAddress_Street) ?$RegistrationAddress_Street : $ta->Buyer->RegistrationAddress->Street) ) ."','" . mysql_real_escape_string( deutsche_umlaute(($RegistrationAddress_PostalCode) ?$RegistrationAddress_PostalCode : $ta->Buyer->RegistrationAddress->PostalCode) ) . "','" . mysql_real_escape_string( deutsche_umlaute(($RegistrationAddress_CityName) ?$RegistrationAddress_CityName : $ta->Buyer->RegistrationAddress->CityName) ) ."','" . mysql_real_escape_string( deutsche_umlaute(($RegistrationAddress_CountryName) ?$RegistrationAddress_CountryName : $ta->Buyer->RegistrationAddress->CountryName) ) . "','" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->Email) ) . "','" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->BuyerInfo->ShippingAddress->Phone) ) . "','" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->BuyerInfo->ShippingAddress->Name) ) . "','" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->BuyerInfo->ShippingAddress->Street1) ) . "','" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->BuyerInfo->ShippingAddress->PostalCode) ) . "','" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->BuyerInfo->ShippingAddress->CityName) ) . "',NOW(),'ebay-cronjob',NOW(),'ebay-cronjob','" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->UserID) ) . "','" . $ta->Buyer->FeedbackScore . "','" . $ta->Buyer->PositiveFeedbackPercent . "');";mysql_query( $sql ) or die( mail("info@weban.de", "eBay-Cronjob Fehler",mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );// Speichere die gerade eingefügte UserID$user_id = mysql_insert_id();}// eBay-Shops sind unter "shops.ebay = 1" markiert$shops_id = $_GET['shops_id'];// SQL: Bestellung$jetztBezahlen = ( $ta->Status->CheckoutStatus == "CheckoutComplete" ) ?"Der Käufer hat die Kaufabwicklung nach dem Kauf abgeschlossen\nZahlungsart: " .$ta->Status->PaymentMethodUsed :"Der Käufer hat die Kaufabwicklung nach dem Kauf noch nicht abgeschlossen";$erstellt_am = $ta->ExternalTransaction->ExternalTransactionTime;// Wenn $erstellt_am nicht gesetzt, dann nehme das aktuelle Datum$ts = ( $erstellt_am ) ? strtotime( $erstellt_am ) : time();$ts = date( "Y-m-d g:i:s", $ts );$sql = "INSERT INTO Bestellung(Bemerkung,Login,shops_ID,bestellart_id,erstellt_am,erstellt_von,liefer_Name,liefer_Strasse,liefer_PLZ,liefer_Ort,liefer_Land)VALUES('eBay-Benutzername: " . deutsche_umlaute( $ta->Buyer->UserID ) . "\n" . $jetztBezahlen . "','" . $user_id . "','" . $shops_id . "','" . $_GET['bestellart_id'] . "','$ts','" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->UserID) ) . " (" . $ta->Buyer->FeedbackScore . " - " . $ta->Buyer->PositiveFeedbackPercent . "%)','" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->BuyerInfo->ShippingAddress->Name) ) . "','" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->BuyerInfo->ShippingAddress->Street1) ) . "','" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->BuyerInfo->ShippingAddress->PostalCode) ) . "','" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->BuyerInfo->ShippingAddress->CityName) ) . "','" . mysql_real_escape_string( deutsche_umlaute($ta->Buyer->BuyerInfo->ShippingAddress->CountryName) ) . "');";mysql_query( $sql ) or die( mail("info@weban.de", "eBay-Cronjob Fehler",mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );// Speichere die gerade eingefügte BestellID$bestell_id = mysql_insert_id();// Wenn der CheckoutStatus auf "CheckoutComplete" steht, setzte $checkoutStatus = 1$checkoutStatus = $ta->Status->CheckoutStatus == "CheckoutComplete" ? 1 : 0;// SQL: ebay_Bestellung$sql = "INSERT INTO eBay_Bestellung(Bestellung_ID,PaymentMethodUsed,TransactionId,eBay_Auktionen_ID,CheckoutAfterSales)VALUES('" . $bestell_id . "','" . $ta->Status->PaymentMethodUsed . "','" . $ta->TransactionID . "','" . $ta->Item->ItemID . "','" . $checkoutStatus . "');";mysql_query( $sql ) or die( mail("info@weban.de", "eBay-Cronjob Fehler",mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );// SQL: artikel_to_Bestellung$sql = "INSERT INTO artikel_to_Bestellung(artikel,Bestellung,Menge,Preis_pro_Stueck,status,Bezeichnung)VALUES('999999'," . $bestell_id . "," . $ta->QuantityPurchased . "," . $ta->TransactionPrice . ",'offen','" . deutsche_umlaute( $ta->Item->Title ) . "');";mysql_query( $sql ) or die( mail("info@weban.de", "eBay-Cronjob Fehler",mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );// Versand angegeben?if ( isset($ta->ShippingServiceSelected->ShippingService) ){// SQL: Hole die ID des eBay-Versandartikels$sql = "SELECTInhaltFROMeBay_settingsWHERETyp = 'static'AND shops_ID = $shops_id";$result = mysql_query( $sql ) or die( mail("info@weban.de","eBay-Cronjob Fehler", mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );$row = mysql_fetch_assoc( $result );// eBay Versandartikel$ebay_versandartikel_id = $row['Inhalt'];// Falls der Bezeichnung "DE_Paket" für den Versandartikel in der XML ist,// dann nenne ihn "Vorkasse / Versandkosten"$va_bez = ( deutsche_umlaute($ta->ShippingServiceSelected->ShippingService) =="DE_Paket" ) ? "Vorkasse / Versandkosten" : deutsche_umlaute( $ta->ShippingServiceSelected->ShippingService );// SQL: Versandartikel in die Bestellung übernehmen$sql = "INSERT INTO artikel_to_Bestellung(artikel,Bestellung,Menge,Preis_pro_Stueck,Bezeichnung,status)VALUES('" . $ebay_versandartikel_id . "'," . $bestell_id . "," . 1 . "," . $ta->ShippingServiceSelected->ShippingServiceCost .",'" . $va_bez . "','');";mysql_query( $sql ) or die( mail("info@weban.de", "eBay-Cronjob Fehler",mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );}}else{// Transaction ist vorhanden:// CheckoutAfterSales in der Tabelle 'eBay_Bestellung' = 0 und $ta->Status->CheckoutStatus = "CheckoutComplete", dann update die Tabelle 'eBay_Bestellung' und 'Bestellung'$sql = "SELECTCheckoutAfterSales,Bestellung_IDFROMeBay_BestellungWHERETransactionId = '" . $ta->TransactionID . "'";$result = mysql_query( $sql ) or die( mmail("info@weban.de","eBay-Cronjob Fehler", mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );$row = mysql_fetch_assoc( $result );$CheckoutAfterSales = $row[CheckoutAfterSales];$Bestellung_ID = $row[Bestellung_ID];// Wenn '$Bestellung_ID' nicht vorhanden ist, heißt das der Transaktion nicht vorhanden ist,// in diesem Fall soll auch kein Update gefahren werden.if ( $Bestellung_ID ){// Wenn der CheckoutStatus verändert wurdeif ( 0 == $CheckoutAfterSales && "CheckoutComplete" == $ta->Status->CheckoutStatus ){$sql = "UPDATEeBay_BestellungSETCheckoutAfterSales = 1,PaymentMethodUsed = '" . $ta->Status->PaymentMethodUsed . "'WHERETransactionId = '" . $ta->TransactionID . "'";mysql_query( $sql ) or die( mail("info@weban.de", "eBay-Cronjob Fehler",mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );$jetztBezahlen = ( $ta->Status->CheckoutStatus == "CheckoutComplete" ) ?"Der Käufer hat die Kaufabwicklung nach dem Kauf abgeschlossen\nZahlungsart: " .$ta->Status->PaymentMethodUsed : "";$sql = "UPDATEBestellungSETBemerkung = 'eBay-Benutzername: " .deutsche_umlaute( $ta->Buyer->UserID ) . "\n" . $jetztBezahlen . "',liefer_Name = '" . deutsche_umlaute( $ta->Buyer->BuyerInfo->ShippingAddress->Name ) . "',liefer_Strasse = '" . deutsche_umlaute( $ta->Buyer->BuyerInfo->ShippingAddress->Street1 ) . "',liefer_PLZ = '" . deutsche_umlaute( $ta->Buyer->BuyerInfo->ShippingAddress->PostalCode ) . "',liefer_Ort = '" . deutsche_umlaute( $ta->Buyer->BuyerInfo->ShippingAddress->CityName ) . "',liefer_Land = '" . deutsche_umlaute( $ta->Buyer->BuyerInfo->ShippingAddress->CountryName ) . "'WHEREID = '" . $Bestellung_ID . "'";mysql_query( $sql ) or die( mail("info@weban.de", "eBay-Cronjob Fehler",mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );// Versand angegeben?if ( isset($ta->ShippingServiceSelected->ShippingService) ){// SQL: Hole die ID des eBay-Versandartikels$sql = "SELECTIDFROMartikelWHEREkurzbezeichnung = 'eBay-Versand'ANDFather = -3";$result = mysql_query( $sql ) or die( mail("info@weban.de","eBay-Cronjob Fehler", mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );$row = mysql_fetch_assoc( $result );// eBay Versandartikel$ebay_versandartikel_id = $row[ID];// Falls der Bezeichnung "DE_Paket" für den Versandartikel in der XML ist,// dann nenne ihn "Vorkasse / Versandkosten"$va_bez = ( deutsche_umlaute($ta->ShippingServiceSelected->ShippingService) =="DE_Paket" ) ? "Vorkasse / Versandkosten" : deutsche_umlaute( $ta->ShippingServiceSelected->ShippingService );// SQL: Versandartikel in die Bestellung übernehmen$sql = "INSERT INTO artikel_to_Bestellung(artikel,Bestellung,Menge,Preis_pro_Stueck,Bezeichnung,status)VALUES('" . $ebay_versandartikel_id . "'," . $Bestellung_ID . "," . 1 . "," . $ta->ShippingServiceSelected->ShippingServiceCost . ",'" . $va_bez . "','');";mysql_query( $sql ) or die( mail("info@weban.de", "eBay-Cronjob Fehler",mysql_errno() . ': ' . mysql_error() . '<hr />' . $sql) );}}}}}?>