Alles was mit Programmierung zu tun hat.

[Magento] Pflichtfelder bei der Registrierung ändern

Da sind wir mal wieder beim Magento-Shopsystem. Ich kann nicht sagen das ich von dem System sehr begeistert bin. Um da durchzusteigen muss man Magento studiert haben. Aber egal.

Das Problem heute: Wie ändere ich Pflichtfelder bei der Registrierung.

Aktueller Fall ist das nur der Vorname, Nachname, E-Mail und Passwort.

Magento Version: 1.4.1.1

Als erstes nehmen wir uns die Registrierungsform vor. Die ist unter “/app/design/frontend/base/default/template/checkout/onepage/billing.phtml“.
Hier suchen wir alle Felder die wir nicht als Pflichtfelder haben wollen und entfernen in der entsprechenden Zeile erst einmal die “<em>*</em>“. Dann noch im Formularfeld selbst den CSS-Code in ändern.
Wenn man Pflichtfelder hinzufügen möchte, dann natürlich andersrum.
Das war es in der Datei auch schon.
Bei der Postleitzahl ist noch eine änderung ganz unten vorzunehmen. Aus der Zeile:

var billingRegionUpdater = new RegionUpdater('billing:country_id', 'billing:region', 'billing:region_id', countryRegions, undefined, ''billing: postcode');

machen wir

var billingRegionUpdater = new RegionUpdater('billing:country_id', 'billing:region', 'billing:region_id', countryRegions, undefined, '');

Das gleiche muss auch in der Datei “/app/design/frontend/base/default/template/checkout/onepage/shipping.phtml” gemacht werden.

Jetzt müssen wir die Prüfung durch PHP deaktivieren, für die Nicht-Pflichtfelder. Das passiert in der “/app/code/core/Mage/Customer/Model/Address/Abstract.php”. Ganz unten die Prüfungen auskommentieren die nicht erfolgen sollen.

Das sollte es gewesen sein. Bei mir funktioniert es :-)

[PHP] Dateiupload und Dateidownload

Jeder macht das eine und einige machen auch das andere. Die Rede ist vom Hoch- und Runterladen von Dateien im Internet. Jeder kann etwas herunter laden. Ob die Bedienungsanleitung, im PDF-Format, für den Fernseher oder ein schickes Bildchen als Bildschirmhintergrund oder oder oder… die Möglichkeiten sind schier unbegrenzt. Auf der anderen Seite gibt es natürlich auch I-Net Nutzer die auch Dinge hochladen.

Hier möchte ich kurz erklären wie man es als PHP Programmierer lösen kann. Viele Wege führen bekanntlich nach Rom. Hier mein Weg.
Als erstes der Upload. Hier brauchen wir natürlich überhaupt erst einmal eine HTML-Form mit einem Dateifeld. In seiner einfachsten Form würde das so aussehen:

<form enctype="multipart/form-data" method="post">
<input name="file" type="file" />
<input name="Submit" type="submit" value="Senden" />
</form>

Hier kann der User dann seine Datei auswählen und die Form abschicken. Damit wird, in diesem Fall, die Datei erneut aufgerufen und die Formulardaten mit übergeben. Sprich die Dateidaten. Diese können nun mit PHP erfasst und ausgewertet werden.

if(!empty($_FILES["file"]["name"])) {
	$UploadFolder = "./uploads/";

	//Dateinamen auf ungueltige Zeichen pruefen
	$Dateiname = preg_replace('/[^a-z0-9.-_]/', '', strtolower($_FILES["file"]["name"]));

	//Existiert die Datei auch noch nicht
	if(!file_exists($UploadFolder.$Dateiname)) {
		//An die richtige Stelle kopieren
		move_uploaded_file($_FILES['file']['tmp_name'], $UploadFolder.$Dateiname);
		if(!file_exists($UploadFolder.$Dateiname)) {
			echo "Datei konnte nicht hochgeladen werden. Bitte wenden Sie sich an einen Administrator.";
		} else {
			//Datei ist hochgeladen
		}
	} else {
		echo "Es existiert bereits eine Datei mit diesem Dateinamen. Bitte bennenen Sie die Datei um.";
	}
}

So. Damit haben wir die Datei hochgeladen und in dem Ordner „Uploads“ abgelegt. Das ist natürlich nicht alles. Jeder muss hier seinen eigenen Weg gehen.
Der Dateiname muss z.B. irgendwo (Datenbank) gespeichert werden, damit sich das System später daran “erinnert”. Aber für den Upload selbst reicht das.

Kommen wir zum 2. Teil. Dem Download der Datei.

Ein User hat jetzt eine Bedienungsanleitung auf einer Webseite hochgeladen und für andere Benutzer zum Download zur Verfügung gestellt. Jetzt kommt ein anderer User und möchte die Datei downloaden.

Als Programmierer wäre es das einfachste einfach einen Link zu veröffentlichen der auf die Datei, im Dateisystem, zeigt. Das hätte aber den Nachteil das dieser Link kopiert werden könnte und jeder die Datei einfach herunterladen kann. Schlecht wenn das vielleicht eigentlich nur registrierte Mitglieder dürfen sollen.
Also muss eine andere Lösung her. Hier wieder mein Weg nach Rom ;-)

$UploadFolder = "./uploads/"; //Name des Ordners mit der Downloaddatei
$FileName = "musterdatei.pdf"; //Name der Downloaddatei

header("Content-Type: ".$mimeType);
header("Content-Length: ".filesize($UploadFolder.$FileName));
header("Content-Disposition: attachment; filename="".$FileName.""");
readfile($UploadFolder.$FileName);
exit;

Ja, das war es schon ;-) Aber es ist etwas komplizierter als es auf den ersten Blick scheint. Ich denke die ersten beiden Variablen sind klar. Der Content-Type beschreibt die Datei. Ob es ein Bild, PDF, Word-Dokument oder sonst was ist. Am besten ist hier diesen beim Upload gleich mit zu speichern. Denn das ist der einzige Zeitpunkt wo Du den Content Type “geliefert” bekommst. Sonst könnte man ihn noch über die Dateierweiterung rausbekommen.

Content-Length ist die Länge der Datei. Vorsicht, nicht wirklich die Größe. Da 1 Zeichen aber einem Byte entspricht – wie praktisch – können wir einfach die Dateigröße in Byte (!) angeben. ;-)

Bei Content-Disposition wird einfach gesagt Dateianhang und den Dateinamen. Hier muss nicht der Originale Dateiname angegeben werden, es könnte auch ein fiktiver angegeben werden.

Und zu guter letzt noch mit readfile die Datei einlesen und gleichzeitig ausgeben.

Ganz wichtig ist hier noch das vor diesem Code keine Ausgabe an den Browser gemacht werden darf. Am besten ist es für den Download eine eigene Datei zu erstellen und vor diesem Code nur das nötigste zu tun. Zum Beispiel checken ob der User, der den Download starten möchte, auch die Berechtigung hat oder die Variablen aus einer Datenbank auslesen. Aber keinerlei ausgaben an den Browser machen, sonst erscheinen ganz viele komische Zeichen im Browser ;-)

.htaccess – Webseite mit oder ohne WWW

Hallo,

da meine Lieblingsseite, zur Frage “www erzwingen bei einer Webseite durch .htaccess”, anscheinend nicht mehr online ist, nehme ich mir einfach mal die Freiheit raus hier selbst einen Artikel darüber zu schreiben und den Ansatz zu kopieren.

Also, es ist ja (hoffentlich) allseits bekannt das Google keinen Dublicated Contant mag (also mehrfach die gleichen Texte). Das passiert natürlich auch wenn man eine Webseite einmal mit “www” und einmal ohne aufrufen kann. Deswegen gibt es eine Umleitung. Wenn ein User die Webseite ohne “www” aufruft dann wird er gleich zur Webseite mit “www” Umgeleitet.

Das ist jedoch auch interessant wenn man mit seiner Webseite von http://www.domainA.de zu http://www.domainB.de umgezogen ist.
Der unten stehende Code ist einer der besten die ich jemals im Netz gesehen habe. Denn er funktioniert 1a und ist flexibel. Außerdem werden auch Parameter mit übergeben. Es geht also nichts verloren bei der Umleitung (Dateinamen, Parameter, etc.)

Hier nun der Code. Einfach die Domain anpassen und in die eigene .htaccess einbauen:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domainA.de$ [NC]
RewriteRule ^(.*) http://www.domainA.de%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} ^domainA.de$ [NC]
RewriteRule ^(.*) http://www.domainA.de/ [L,R=301]

[PrestaShop] Rechnungs-PDF in Bestell-E-Mail

Hallo zusammen,

heute gab es mal wieder ein problem zu lösen das evtl. auch andere interessieren könnte. Zumindest jeden der einen PrestaShop im einsatz hat.

Das problem: Wenn ein kunde etwas im shop bestellt dann erhält er natürlich eine bestellbestätigung per email. Nur wird hier die rechnung nicht mitgeschickt.

Die lösung: Recht einfach, nur nicht einfach zu finden. :-)

Schritt 1) In den administrationsbereich des shops gehen und hier auf “orders” -> “statuses” klicken (sorry, ist bei mir die englische version). Dann in der tabelle bei “invoice” alles anklicken außer “Chanceled” und “Payment error”. – Das müssen wir machen da sonst die rechnung nicht direkt bei der bestellung generiert wird.

Schritt 2) Jetzt müssen wir ein bisschen in den quellcode. Suche die datei “/classes/paymentmodule.php” und suchen sie die folgende passage (ungefähr bei zeile 350):

// Join PDF invoice
if (intval(Configuration::get('PS_INVOICE')) AND Validate::isLoadedObject($orderStatus) AND $orderStatus->invoice AND $order->invoice_number)
{
	$fileAttachment['content'] = PDF::invoice($order, 'S');
	$fileAttachment['name'] = Configuration::get('PS_INVOICE_PREFIX', intval($order->id_lang)).sprintf('%06d', $order->invoice_number).'.pdf';
	$fileAttachment['mime'] = 'application/pdf';
}
else
	$fileAttachment = NULL;

und mache daraus:

// Join PDF invoice
//if (intval(Configuration::get('PS_INVOICE')) AND Validate::isLoadedObject($orderStatus) AND $orderStatus->invoice AND $order->invoice_number)
//{
	$fileAttachment['content'] = PDF::invoice($order, 'S');
	$fileAttachment['name'] = Configuration::get('PS_INVOICE_PREFIX', intval($order->id_lang)).sprintf('%06d', $order->invoice_number).'.pdf';
	$fileAttachment['mime'] = 'application/pdf';
//}
//else
//	$fileAttachment = NULL;

Jetzt wird immer eine Rechnung an die mail angehängt. Es gibt aber noch einen kleinen schönheitsfehler. Den bügeln wir so aus… ca. zeile 300 suchen… sieht in etwa so aus.

...
	// Send an e-mail to customer
	if ($id_order_state != _PS_OS_ERROR_ AND $id_order_state != _PS_OS_CANCELED_ AND $customer->id)
	{
		$invoice = new Address(intval($order->id_address_invoice));
		$delivery = new Address(intval($order->id_address_delivery));
		$carrier = new Carrier(intval($order->id_carrier));
		$delivery_state = $delivery->id_state ? new State(intval($delivery->id_state)) : false;
		$invoice_state = $invoice->id_state ? new State(intval($invoice->id_state)) : false;
...

und hängen da einfach die folgende (letzte) zeile dran

...
	// Send an e-mail to customer
	if ($id_order_state != _PS_OS_ERROR_ AND $id_order_state != _PS_OS_CANCELED_ AND $customer->id)
	{
		$invoice = new Address(intval($order->id_address_invoice));
		$delivery = new Address(intval($order->id_address_delivery));
		$carrier = new Carrier(intval($order->id_carrier));
		$delivery_state = $delivery->id_state ? new State(intval($delivery->id_state)) : false;
		$invoice_state = $invoice->id_state ? new State(intval($invoice->id_state)) : false;
		$order = new Order(intval($order->id));
...

Damit sollte es funktionieren und schön aussehen :-)

Wer nun, wie ich, noch änderungen an der rechnung selbst vornehmen möchte der muss leider auch in den code. Die datei ist “/classes/PDF.php”. Aber bitte nur für änderungen die sonst nicht vorgenommen werden können. Adresse und footer und so kann alles im admin eingestellt werden ;)

Soweit erst einmal dazu. Bei fragen, bitte gleich fragen… bevor ich wieder vergessen hab wie das war :-)

Achso… prestashop 1.3.0.10

Affiliate Tracking Code in PrestaShop einbinden

Hallo zusammen,

da ich jetzt meinen ersten eigenen Online-Shop eröffnet habe bin ich auch schnell auf die Frage gestoßen wie die Kunden zu mir finden. Oder wer mir dabei helfen kann.
Schnell war eine Antwort gefunden… Affiliate Marketing. Das gefällt mir im Moment eh am besten von den Marketingmethoden die ich so kenne und wofür mein Geldbeutel reicht. Alles andere ist entweder unwirtschaftlich oder schlicht zu teuer… meist beides.

Also habe ich bei beim Affiliatenetzwerk meines Vertrauens eine neue Kampagne gestartet und dann die große Frage… wie kriege ich den Tracking-Code in meinen Presta Shop System? :-o
Das ist gar nicht so einfach da ja auch noch variablen übergeben werden müssen.

Zum Glück gibt es ja das Internet :-) Und so wurde ich in einem Forum fündig. Hier das Zitat der Zusammenfassung von PaoloPinkel

 

1.) In die init.php gehört folgendes:

@session_start();
if(Tools::getValue('belboon')){
  $_SESSION['belboonSession'] = Tools::getValue('belboon');
}

2.) In die order-confirmation.php gehört:

$smarty->assign('belboon',$order->getTotalProductsWithTaxes());
$smarty->assign('belboonSession',$_SESSION['belboonSession']);

3.) In die order-confirmation.tpl, gehört der von Belboon vorgegebene Code. In diesem Code-Schnipsel ersetzt man NETTOWARENWERT durch {$belboon}, ORDERCODE durch {$id_order} und xxxx,yyyy durch {$belboonSession}.

Das war’s. Wer Umsatzsteuer abführt, muß von getTotalProductsWithTaxes() irgendwie noch die Steuern abziehen, sonst zahlt er zu viel Provision.

(Zitat von http://www.homepage-community.de/…)

PaoloPinkel hat sich bei Belboon angmeldet. Ich nutze ein anders Netzwerk. Ist aber das gleiche Prinzip. Man muss nur die Variablen anpassen.

Danke an PaoloPinkel und Chris.

Viele Grüße
Gordon

Größe von Bildern einfach ändern

Hallo zusammen,

immer wieder gelangt man zu einem bestimmten problem… man möchte bilder in das internet laden und dann dauert es ewig, der upload bricht ab oder die Seite macht einfach gar nichts mehr bzw. gibt fehler aus. Oder sie quitiert den dienst einfach mit der folgenden (oder änlichen) fehlermeldung “Bilder sind zu groß”.

Digitalkameras machen heutzutage sehr gute bilder in einer sehr großen auflösung. Generell ist das gut da so eine bessere qualität bei herauskommt. Für den upload in das internet ist dies aber negativ. Die dateien werden immer größer und brauchen somit länger für den upload und auch mehr speicherplatz auf dem server.

Also gibt es nur eine lösung, die schönen neuen großen bilder doch wieder kleiner machen. Zumindest für den upload in das internet.

Nun gibt es tausende von programmen die dies ermöglichen. Von professionellen bildbearbeitungsprogrammen wie z.B. Photoshop (sehr teuer!) oder Gimp (kostenlos) bis zu kleinen helferlein wie z.B. VSO Image Resizer. Das letztere möchte ich hier einmal vorstellen da ich damit arbeite und es für gut befinde. Es ist sehr einfach und hat den großen vorteil das mit dem programm auch mehrere bilder in einem rutsch geändert werden können. Und für den privaten gebrauch ist es kostenlos. Für kommerzielle anwendung kostet es aktuell auch nur 15 USD.

Erst einmal müssen sie sich die datei natürlich runterladen. Die herstellerwebseite findest du hier. Einfach die kostenlose version herunterladen und installieren.

Beim starten fragt das programm immer erst einmal natürlich ob man kostenlos weitermachen möchte oder ob man es vielleicht doch kaufen möchte. Einfach auf “Fortfahren” klicken und weiter gehts.
Danach öffnet sich ein neues fenster “Öffnen” in dem du die bilder auswählen kannst die du ändern möchtest. Wenn es mehrere bilder sind dann habe ich mir angewöhnt ein neues verzeichnis auf der festplatte anzulegen und dort erst einmal alle bilder reinzukopieren die ich ändern möchte. Hat den vorteil das ich im programm dann nicht extra noch suchen muss und – wenn die bilder in mehreren verzeichnissen liegen – auch noch mehrere durchgänge machen muss. Alles in einem rutsch und fertig.
Also bilder auswählen. Möchte man nur eines ändern dann einfach drauf klicken, mehrere kann man mit der STRG-Taste auswählen und alle am besten indem man die linke maustaste gedrückt hält und über alle bilder zieht… oder STRG+A. Nachdem man alle gewünschten bilder markiert hat einfach auf “Öffnen” klicken.

Nun kann man bei “Profil” ein vordefiniertes profil auswählen, oder auch nicht. :-) Die auflösung ist wichtig. Hier sollte man zwischen 640×480 bis 1024×768 eingeben… ich nehme meist 800×600. Reicht meist völlig aus für das web. Und natürlich dahinter in “px” (Pixeln).

Sollte hinter der Auflösung ein “>> mehr…” stehen so bitte drauf klicken. Dann erscheinen darunter noch ein paar weitere einstellmöglichkeiten.

Uns interessiert hier erst einmal nur der reiter “Allgemein”.
“Filtering” ist immer “am besten” :-)
Bei “Format” kann ein neues Dateiformat eingestellt werden. Für internetbilder empfehle ich immer jpg da es die beste komprimierung hat und dabei die beste qualität.
Apropos “Qualität”… diese kann man hier noch einmal seperat einstellen. Standartwert würde ich 75% vorschlagen. Sollten die bilder dann noch zu groß sein kann man noch weiter runter gehen. Bis 50% sollte die qualität einigermaßen ok sein. Darunter wird es dann schlechter.
“Original Seitenverhältnis beibehalten” sollte angeklickt sein damit keine metamorphosen bei rauskommen ;-) “Auflösung für Portrait anpassen” habe ich noch nie ausprobiert… ob man es braucht… who knows.
Bei der “Dateinamenmaske” kann man noch bestimmen wie der dateiname aussehen soll… ob das programm nach dem dateinamen noch ein “(Kopie)” anhängt oder sonstiges. Hier sind die voreinstellungen schon ok. Man braucht hier nicht unbedingt noch etwas ändern.

Dann noch zwei wichtige sachen. Bei “Aktion” kann man wählen ob man eine “Kopie erstellen” möchte – also das original bleibt erhalten und das geänderte bild wird in einer neuen datei gespeichert (wie in “Dateinamenmaske” vorgegeben) – oder ob man das “Original ersetzen” möchte – die original bild datei wird überschrieben und ist weg(!!) – oder ob man “Verschieben” möchte – hab ich noch nie gemacht… vermute das die neue bilddatei in einem anderen ordner gespeichert wird.
Und darunter gibt es dann noch das “Ziel”. Hier gibt man an wo die neue bilddatei gespeichert werden soll.

Dann einfach auf “OK” klicken und das programm tut seine arbeit. Das schöne, wenn man (z.B.) 50 Bilddateien ausgewählt hat dann arbeitet das programm alle 50 mit einem mal ab. Ohne jedes mal neu alles eingeben zu müssen.

Wenn das programm seine arbeit getan hat findet man seine neuen bilder – je nachdem was man eingestellt hat – in dem entsprechenden ordner wieder und kann sie nun getrost ins internet laden. ;-)

[PHP] Alle belegten Variablen anzeigen/ausgeben

Hallo,

heute habe ich mich spaßeshalber mal gefragt wie eigentlich die variablen am Ende meines Skripts aussehen. Ich meine da wird eine variable vergeben, Skripte included, datenbankabfragen gemacht… und ich bemühe mich immer die variablen wieder frei zu geben wenn ich sie nicht mehr brauche. Aber erwische ich auch alle… oder Frist mein Skript mehr und mehr speicher? Und wie kann ich das kontrollieren?

Es gibt auch hier eine Funktion in PHP die das beantworten kann. get_defined_vars() gibt alle aktuell belegten variablen aus.

print_r(get_defined_vars());

Dieser Aufruf am Ende eines Skriptes (oder irgendwo mittendrin) und man weiß sofort welche Variablen belegt sind und wo man noch aufräumen muss/kann.

Sehr schön :-)

Gruss
Gordon

[PHP] Array in ein String umwandeln

Hallo zusammen,

heute mal wieder etwas das ich des öfteren benötige. Ein Array in einen String umwandeln… um ihn dann, zum Beispiel, in eine Datenbank oder ein Cookie zu schreiben.

Das geht zum einen sehr einfach mit implode und mit explode um ihn wieder in ein Array zu verwandeln.

$String = implode(";", $Array);

und

$Array = explode(";", $String);

 

Soweit, sogut. Kommt man nun aber mit einem multidimensionalen Array daher, sieht es mit dieser Methode schon schwierig aus. Man müsste jetzt das ganze rekursiv machen und das ist umständlich und stößt auch ganz schnell an seine Grenzen.

Hier gibt es aber noch eine andere schöne Funktion in PHP. Das Zauberwort heißt serialize bzw. unserialize. Diese Funktion macht jedes Array zu einem String… oder wie das PHP Handbuch sagt ‘speicherbare Repräsentation’… schönes Wort :-)

$String = serialize($Array);

und

$Array = unserialize($String);

Einfach und simpel… so wie es sein soll ;-)

Gruss
Gordon

Warum nicht ein bisschen sparen? Nicht nur weil Weltwirtschaftskriese ist!

Hallo liebe Internetgemeinde,

heute mal ein bisschen Werbung für mein neues Projekt ;-) Aber bitte erst lesen und dann evtl. weiter klicken! :-)

Not macht ja bekanntlich erfinderisch und die Not ist im Moment verdammt groß. :-( Aber irgendein weiser Mann (oder war es eine Frau?) hat auch mal gesagt “Man muss das Rad nicht immer neu erfinden!”… und so bin ich letztens auf eine Idee gestoßen die ich so gut fand das ich mich gleich ans umsetzen gemacht habe.

Aber worum geht es überhaupt? Das Projekt ist ein sogenanntes “CashBack-System”. Das Prinzip ist sehr einfach. Als Beispiel: Shop XY möchte etwas verkaufen. Es gibt viele Möglichkeiten etwas zu verkaufen. Eine davon ist andere Webseitenbetreiber anzusprechen und zu sagen “Binde meinen Link / Banner auf deiner Webseite ein und von jedem Kunden der bei mir etwas kauft und über das Banner auf deiner Webseite zu meinem Shop gekommen ist, gebe ich dir 10% des Umsatzes ab.” Da sagt der Webseitenbetreiber natürlich nicht nein ;-) und bekommt jedes mal wenn jemand auf das Banner auf seiner Seite klickt und bei Shop XY dann etwas kauft 10% vom Gewinn und freut sich. :-) Shop XY freut sich auch über mehr Kundschaft. Die 10% muss er natürlich in den Preis einkalkulieren (sonst würde er wohl minus machen).

Sparen ist angesagt!

Sparen ist angesagt!

Nun kommt das CashBack-System. Das CashBack-System fungiert wie ein Webseitenbetreiber, aber mit dem Unterschied das es Hunderte von Shops als Partner hat. Der Internetbenutzer kann nun auf den Shop seiner Wahl klicken… da wo er sowieso einkaufen wollte. Er hat ja hier eine riesige Auswahl und kann seinen Lieblingsshop besuchen (der hoffentlich im System ist). Bleiben wir beim Beispiel und sagen er Klickt auf den Link von Shop XY und kauft dort ganz normal ein und der Webseitenbetreiber (des CashBack-System) bekommt von Shop XY nun wieder seine 10%. Er behält die 10% jetzt aber nicht für sich sondern gibt (zum Beispiel) 7% davon an den Internetbenutzer zurück… “CashBack = Geld zurück“.

Das Fazit: Für den Shop XY bleibt alles gleich. Er hat einen Kunden der etwas gekauft hat und gibt 10% des Umsatzes an den Webseitenbetreiber als Werbekostenerstattung (wie es so schön heißt) weiter. Der Internetbenutzer bezahlt erst einmal den vollen, normalen Preis. Bekommt aber (bsp.) 7% vom (Netto-)Preis wieder zurück, vom Webseitenbetreiber (des CashBack-Systems). Und der Webseitenbetreiber hat (bsp.) 3% Umsatz gemacht.

Das war’s im groben. Das wirklich interessante an dieser Sache ist das es keinen Hacken, doppelten Boden oder sonst etwas gibt. Es funktioniert so wie es da steht.

Nun, nach Wochen harter Arbeit, wenig Schlaf und viel Schweiß ist das Projekt nun online und wartet auf Menschen die mitmachen wollen. Die Adresse ist: http://www.bonitool.com
Ich weiß das ich nicht der erste bin der das macht, ich weiß das es Leute geben wird die dennoch so lange nach einem Hacken suchen bis sie irgend etwas finden werden, ich weiß das ich nicht alle Webshops als Partner gewinnen kann (wie viele gib es mittlerweile eigentlich? 2006 waren es so um die 250.000!!) und damit nicht jedermanns Lieblingsshop anbieten kann… aber ich werde es trotzdem wagen. Wer nicht wagt, der nicht gewinnt. (Und im Moment wäre es besser für mich zu gewinnen.)

Wenn dir das Prinzip gefällt dann melde dich doch einfach mal an und Probiert es aus… und erzähl es Bekannten und Verwandten. Ich bin für jeden User dankbar!

Wenn Du darüber berichten möchtest (in einem Blog oder sonst einer Plattform) dann sprich mich einfach an. Auch hier bin ich über jede Form der Unterstützung dankbar!

Wie gesagt, es ist kostenlos, ohne Hacken und Du kannst Geld sparen (ich weiß, das sagen alle… aber hier stimmt es) bzw. würdest du Shop XY das Geld schenken… denn im Preis sind die 10% (aus unserem Beispiel… jeder Anbieter hat sein eigenes Vergütungsmodel) eh eingerechnet.

Im Moment habe ich bei BoniTool.com etwas über 350 Partner aus den verschiedensten Bereichen und versuche jeden Tag ein paar mehr zu finden.
Die Teilung der Werbekostenerstattung/Provsion erfolgt immer gerecht und zu gleichen Teilen.

Vertriebsländer sind Deutschland, Österreich und Schweiz. Großbritanien soll in den nächsten Tagen kommen.

Liebe Grüße
Gordon