Affili.net - Produktdaten auslesen und in Datenbank speichern

Affili.net - Produktdaten auslesen und in Datenbank speichern

Die richtige Analyse und Strategie

Online Geld verdienen ohne sich um die Bezahlung von Kunden und den Versand der Artikel zu kümmern, ist das Möglich? Ja heutzutage gibt es mehrere Möglichkeiten ohne Warenwirtschaft Geld zu verdienen. Da gibt es zum Beispiel das sogenannte Dropshipping. Beim Dropshipping hat der Händler keinerlei Kontakt mit der Ware, da diese direkt vom Lager zum Kunden verschickt wird. allerdings muss er sich hier um die Beazhlung kümmern und die waren auch liefern können. Darauf will ich aber ganricht näher eingehen. Es geht ja schließlich um affili.net.

Was ist Affilinet?

Affilinet ist ein Netzwerk wo der Vertriebspartner mit einer Provision am Verkauf eines Artikels beteiligt ist. Es gehört zu den größten deutschen Partnerprogramm-Netzwerken. Außerdem ist Affilinet mittlerweile auch in Europa vertreten. Über 2.000 Partnerprogramme mit großen Firmen und bekannten Marken sind in dem System vorhanden. Weitere Informationen könnt Ihr euch direkt bei affili.net holen.

Wie kann ich bei Affilinet mitmachen?

Du gehst auf die Website affili.net und Registriest dich dort mit deiner Website. Nach erfolgreiche registrierung kannst du dich bei verschiedenen Partnerprogrammen bewerben.

Verkaufen und Provision über Affilinet erhalten?

Zum Beispiel verkaufst du ein paar Schuhe für Zalando über deine Website. Das würde dann so funktionieren das du den Artikel auf deiner Website präsentierst und der Benutzter mit einem Klick auf einem Button oder ähnlichem zum Shop von Zalando weiterleitest. Dort landet der Besucher dann direkt zu dem gewünschten Artikel. Wenn der Benutzter diesen oder einen anderen Artikel bei Zalando kauft, würdest du dafür eine Provision von 10% bekommen. Die Provison ist von Anbieter zu Anbieter unterschiedlich. Woher weiß Zalando jetzt aber das mir die Provision zugeordnet wird? Das sit ganz einfach. In dem Link der zu Zalnado weitergeleitet wird ist deine Partnerid gespeichert. Im Browser wird eine sogeannte Sessio gespeichert. Kauft der Besucher also zu einem späteren Zeitpunkt in diesem Shop ein und ist die Seesion noch gespeichert, dann erhält man trotzdem die Provsion unabhänig davon welcher Artikel gekauft wird.

Wie bekomme ich die Daten von Affilinet?

In der settings.php müssen Username und Password gesetzt werden und in meinem Beispiel auch die Id eines Partnerprogramm. Hier verwende ich die ID 4221 für das Partnerprogramm von ABOUt YOU.

<?php
// Set credentials
$username = '123456';
$password = 'myPassword';
$shopids = '4221';
$shopIdMode = 'Include';

// Set credentials
$params['PublisherId'] = $username; // your publisher ID 
$params['Password'] = $password; // your product web services password

// Narrow down results to specific Shops (optional) 
$params['ShopIds'] = $shopids; // enter one or more shop Ids as comma separated list. You can use "GetShopList" to receive Shop Ids
$params['ShopIdMode'] = 'Include';

// Set webservice endpoint (JSON)
$service = "https://product-api.affili.net/V3/productservice.svc/JSON/SearchProducts";

// Set webservice endpoints
define("WSDL_LOGON", "http://product-api.affili.net/Authentication/Logon.svc?wsdl");
define("WSDL_PRODUCT", "https://product-api.affili.net/V3/WSDLFactory/Product_ProductData.wsdl");


// Send a request to the Logon Service to get an authentication token
$soapLogon = new SoapClient(WSDL_LOGON);
$token = $soapLogon->Logon(array(
    'Username' => $username,
    'Password' => $password,
    'WebServiceType' => 'Product'
));

In meiner affilinet_import.php lade ich mir dann die ganzen Daten in meine Datenbank. Ich verwende hier übrigens das CMS Processwire.

<?php
include './lib/affilinet/settings.php';
$affilinet_products = wire('pages')->find("template=tpl_product, product_id>0");

foreach ($affilinet_products as $key => $product) {

    if (!empty($product->product_id)) {
            $productIds = array($product->product_id);

            // Set parameters
            $params = array(
                'CredentialToken' => $token,
                'PublisherId' => $username,
                'ProductIds' => $productIds,
                'ShopIds' => $shopids,
                'ImageScales' => array('OriginalImage', 'Image120', 'Image180'),
                'LogoScales' => array('Logo90', 'Logo150')
            );

            // Send request to Publisher Program Service
            $soapRequest = new SoapClient(WSDL_PRODUCT);
            $response = $soapRequest->GetProducts($params);

            $product_page = new Page();
            $product_page->template = "tpl_product";
            $product_page = $pages->get("id=$product->id");


            foreach ($response as $req_product) {
                if (isset($req_product->Product->Deeplink1)) {
                    $product_page->product_url_affili = $req_product->Product->Deeplink1;
                }

                if (isset($req_product->Product->Brand)) {
                    $product_page->product_brand = $req_product->Product->Brand;
                }

                if (isset($req_product->Product->DescriptionShort)) {
                    $product_page->product_features = $product_page->product_title = $req_product->Product->DescriptionShort;
                }

                if (isset($req_product->Product->Images->ImageCollection->Image[0]->URL)) {
                    $product_page->sm_image = $req_product->Product->Images->ImageCollection->Image[0]->URL;
                }
                if (isset($req_product->Product->Images->ImageCollection->Image[1]->URL)) {
                    $product_page->md_image = $req_product->Product->Images->ImageCollection->Image[1]->URL;
                }
                if (isset($req_product->Product->Images->ImageCollection->Image[2]->URL)) {
                    $product_page->lg_image = $req_product->Product->Images->ImageCollection->Image[2]->URL;
                }

                //$product->Product->PriceInformation->DisplayPrice;
                if (isset($req_product->Product->PriceInformation->PriceDetails->Price)) {
                    $product_page->product_lowest_price_affili = $req_product->Product->PriceInformation->PriceDetails->Price;
                }
                if (isset($req_product->Product->PriceInformation->PriceDetails->PriceOld)) {
                    $product_page->product_list_price_affili = $req_product->Product->PriceInformation->PriceDetails->PriceOld;
                }
            }

            $product_page->of(false);
            $product_page->save();
            $product_page->of(true);

            print_r($key . ': ' . $product->title . ' done');
            sleep(1);
    }
}

In Processwire habe ich zuvor die Produkte mit einem von mir erstellten Template Namens tpl_products angelegt. Dafür muss im Backend die ID des jeweiligen Produkts hinterlegt sein. Kurz zum Verständnis: Im Backend können die einzelnen Prdukte die ich auf meiner Website ausgeben will, mittels ID eingetragen werden. Wenn ich also ein neues Produkt anlege wird immer das Template tpl_product verwendet wo man die Möglichkeit hat die ID des Products zu übergeben. Alle weiteren Felder wie Artikelname, Marke, Preis, Bildpfad, URL zum Shop(Partnerprogramm) usw. bleiben leer und werden durch Ausführen von affilinet_import.php in der Datenbank gespeichert. Diese kann natürlich später auch im Backend überprüfen und bei bedarf bearbeiten.

Der Quellcode ist sicherlich nicht für jeden Verständlich, da Processwire ein nicht ganz so bekanntes CMS ist. Im Code ist aber zu erkennen wie ich die Produkte von meinem Partnerprogramm hole. Im Array $params werden die benötigten und optionalen Parameter übergeben, genaueres dazu ist in der Dokumentation von Affilinet zu finden. Im nächsten Schritt erstelle ich mir ein Objekt vom Typ SoapClient. Mit dem Objekt greife ich dann auf die Funktion GetProducts($params) zu, der ich mein Parameter-Array übergebe. Das ganze durchlaufe ich dann mit einer foreach() und speicher mir die benötigten Informationen in der Datenbank.

Wo oder wie erfahre ich wann ein Artikel verkauft wurde?

Wenn man sich bei Affili.net einloggt erhält man über Statistiken->Sales/Lead eine Übersicht der verkauften Artikel. Hier erhält man Inforamtionen über den Nettopreis und die Vergütung die man erhält. Außerdem gibt es unter Statistiken auch eine Klickauswertung in der man sieht von welcher URL der jeweilige Benutzter kam. Affilinet bietet aber noch viel mehr als das. Das alles zu erklären würde den Rahmen sprengen. In dem Artikel sollte es nur darum gehen wie ich mir die Daten meines Partnerprogramms hole. 

Viel Spaß beim ausprobieren ...

PS.: Als Beispiel zwei meiner Referenz frauen-styles.de und urbanyze.de. Achtung hier wird auch viel mit dem Partnerprogramm von Amazon gearbeitet, auf welches ich in einem weiteren Blog-Artikel auch noch eingehen kann.

Fix Magento "Error 503: Service Temporarily Unavailable"
ProcessWire als flexibles Open-Source-CMS