Projekt: Elasticsearch für XT-Commerce Shop Suche

Das letzte Projekt war sehr spannend, es handelte sich um eine Erweiterung des PHP Shop-Systems namens XT-Commerce bzw. des Derivats SEO-Commerce um eine Suche aktuellem Standards für Zeedee Berlin.

Elasticsearch wurde auf einer eigene Amatzon MWS EC2 Instanz gehostet mit 1GB Ram und 1 CPU (sehr kostengünstig).

Die folgende Funktionalität kann ganz einfach wieder deaktiviert werden an zentraler Stelle, wenn es Probleme mit Elasticsearch gibt und die alte MySQL Suche tritt wieder in Kraft.

1. Autocomplete / Suggest Funktion beim Befüllen der Suche

Beim Eintippen des Suchwortes werden schon Vorschläge gegeben im Millisekundenbereich. Dadurch kann der Kunde viel Zeit sparen und bei der Rechtschreibung wird auch geholfen. suggest_zeedee

weiterlesen…

Vergleich der Popularität von Shopsystem

Für ein kleines bis mittelgroßes deutsches Unternehemen ist Shopware aktuell nach meiner Meinung die beste Lösung, weil

  • Shopware von Hause aus spezialisiet ist auf den deutschen E-Commerce Markt und den dortigen Datenschutz und steuerlichen Eigenheiten
  • die Popularität steigend ist laut Google Trends
  • unter der Haube Symfony 2 und Zend 2 und im Backend ExtJS läuft in Version 4
  • die Preise sich auch für die professional Versionen unter denen von Magento bewegen
  • die Systemanforderungen anspruchsvoll, aber modern sind

DHL Retoure Modul in PHP

Die Deutsche Post bietet einen Retouren-Soap Webservice an, mit dem man schnell Retoure-Labels für Pakete erzeugen kann. Mit Hilfe der Klasse lassen diese pdf-Files schnell und einfach holen und anzeigen.

Erläuterung zu den Konfigurations-Variablen

portalId
Der für das Portal vergebene URL-Postfix. Sie finden Ihre
portalID im Aufschalt- eMail an dieser Stelle: (hier „288Test“)
Zur erstmaligen Anmeldung nutzen Sie bitte die Option “Neues Passwort anfordern” unter Angabe Ihres Benutzernamens auf der Seite:
https://amsel.dpwn.de/abholportal/gw/lp/portal/288Test/admin/AdminLogin.action
deliveryName
Der Name des Retourenportals, welches die Retoure
erhalten soll. Sie finden den jeweiligen deliveryName im Aufschalt- eMail an dieser Stelle: (hier „RetoureFrankreich“)
Folgende Retourenportale sind bereits konfiguriert:
RetoureFrankreich:
https://amsel.dpwn.de/abholportall/gw/lp/portal/288Test/customer/RpOrder.action?delivery=RetoureFrankreich

Beispiel-Aufruf:

$dhlRetoure = new DhlRetoure();
$pdf  = $dhlRetoure->getRetourePdf($surname, $familyname, $street, $streetNumber, $zip, $city);
if($pdf){
$dhlRetoure->displayPdf($pdf);
}

weiterlesen…

XTCommerce Sofortüberweisungs Modul leitet bei Abbruch auf Warenkorb weiter

Bei einem Abbruch findet ein Redirect auf den Warenkorb statt, weil die verkaufte Artikel Mange schon um 1 erniedrigt wurde und die Artikel nicht mehr kaufbar sind laut Datenbank.

Deswegen muss in der checkout_payment.php folgender Code eingefügt werden

if($_GET['payment_error'] == 'sofortueberweisung_direct')
{
/*    require (DIR_WS_CLASSES . 'payment.php');
    $payment_modules = new payment('sofortueberweisung_direct');
    if ($confirmation = $payment_modules->confirmation())
    {

    }*/

    require_once (DIR_WS_CLASSES.'order.php');
    require_once (DIR_FS_INC.'xtc_db_query.inc.php');
    require_once (DIR_FS_INC.'xtc_get_prid.inc.php');
    $order = new order();

    for ($i = 0, $n = sizeof($order->products); $i < $n; $i ++)
    {
         xtc_db_query("update ".TABLE_PRODUCTS." set products_quantity = products_quantity + 1 where products_id = '".xtc_get_prid($order->products[$i]['id'])."'");
    }
    unset($order);

}

oberhalb von

// if there is nothing in the customers cart, redirect them to the shopping cart page
if ($_SESSION['cart']->count_contents() < 1)
    xtc_redirect(xtc_href_link(FILENAME_SHOPPING_CART));

 

Buttonlösung Gesetzesänderung für Online Shops

Bis zum 01.08.2012 müssen Onlinehändler, die über ihren Online Shop (auch) an Endkunden Produkte verkaufen, die Vorgaben der so genannten Buttonlösung umsetzen auf der finalen Seite, auf der der Verbraucher seine Bestellung auslöst.

  1. Erfüllung erweiterter Informationspflichten
  2. Gestaltung des Bestellbuttons

Bei einer Missachtung der Gesetzänderung handelt der Onlinehändler wettbewerbswidrig. Bei falscher Beschriftung des Button kommt kein Vertrag mit dem Kunden zustande.

Für die Schweiz/Österreich gilt der deutsche Gesetzesentwurf auch, sofern sich das Angebot auch an deutsche Kunden richtet: siehe Buttonlösung Schweiz.

1. Erfüllung erweiterter Informationspflichten

Es muss klar und verständlich (deutlich hervorgehoben) für den Verbraucher dargestellt werden, wenn

  • markanten Produktmerkmale
  • Angabe der Mindestlaufzeit von Verträgen (wenn vorhanden)
  • „den Gesamtpreis der Ware oder Dienstleistung einschließlich aller damit verbundenen Preisbestandteile sowie alle über den Unternehmer abgeführten Steuern oder, wenn kein genauer Preis angegeben werden kann, seine Berechnungsgrundlage, die dem Verbraucher eine Überprüfung des Preises ermöglicht“
  • Angabe aller Versandkosten und Zusatzkosten (z.B: Zoll): „gegebenenfalls zusätzlich anfallende Liefer- und Versandkosten sowie einen Hinweis auf mögliche weitere Steuern oder Kosten, die nicht über den Unternehmer abgeführt oder von ihm in Rechnung gestellt werden“
  • die Befristung bei zeitlich beschränkten Angeboten

Der genaue Gesetzestext: § 1 Informationspflichten bei Fernabsatzverträgen.

2. Der Button auf der finalen Verkaufsabschlusseite

Der Button muss unterhalb der in Punkt 1 benannten Informationen platziert sein und nicht mehrmals auf der Seite vorkommen. Zwischen diesen Informationen dürfen keine weiteren sichtbaren Elemente platziert werden, wie z.B: Checkboxen oder Input-Felder.

Die Button sollte folgender Maßen beschriftet sein ohne weitere Zusätze:

  • Zahlungspflichtig bestellen (Musterbeschriftung vom Gesetzgeber)
  • Kaufen
  • Kostenpflichtig bestellen
  • Zahlungspflichtigen Vertrag schließen
  • Kauf abschließen

Unzulässige Beschriftungen:

  • Bestellung absenden
  • Weiter
  • Bestellen
  • Entscheiden Sie sich für uns!
  • Kauf abschließen und sich verwöhnen lassen

Beispiel für eine erfolgreiche Umsetzung der neuen Regelungen: zeedee-shop.com

empfehlenswerte weiterführende Lektüre: Leitenfaden Buttonlösung IT-Recht Kanzlei München.

Dieser Artikel ersetzt keine Rechtsberatung beim Anwalt und es wird auch nicht für die Richtigkeit gehaftet. Ich empfehle einen IT-Recht Anwalt zu kontaktieren: Kanzlei Bilk & Keil.

XT-Commerce addiert keine Mehrwertsteuer Schweiz

Bei Bestellungen aus dem EU-Ausland berechnet XT-Commerce korrekter Weise keine Mehrwersteuer von 19% auf die Preise im Shop. Die Einstufung, ob ein Kunde aus dem Ausland kommt richtet sich nach der Rechnungsadresse, nicht der Lieferadresse. Man könnte also auf de Idee kommen, als Deutscher Kunde einfach eine Schweizer Rechnungsadresse anzugeben und sich das Produkt nach Deutschland liefern zu lassen.

Wer will ,dass Nicht-EU Kunden auch die Mehrwertsteuer zahlen sollen, der muss in der Datenbank folgenden Zellen ändern:

Tabelle: tax_rates

Die passenden Einträge der Spalte tax_rate auf 19 setzen, damit gilt für alle Artikel, die mehrwertsteuerpflichtig sind, dieser Steuersatz und nicht teilweise 0%.