Alle die in ihrem Shop die XTC Funktion „nicht vorrätige Produkte nicht kaufbar“ nutzen wird es vielleicht schon aufgefallen sein, oder vielleicht auch nicht… Auch uns ist es nur durch Zufall aufgefallen.
Das Problem liegt in der Verbindung mit PayPal-Express. Installiert man das PayPal-Express-Modul in seinem Shop erhält man direkt im Warenkorb, neben den Button „Kasse“ noch zusätzlich den Button „PayPal-Express„, wodurch der Käufer ohne ein Kundenkonto und sehr schnell seine Zahlung via PayPal abwickeln kann. Sehr schönes Modul (vom Einbau mal abgesehen).
In Verbindung mit der Funktion dass nun keine vorrätigen Produkte mehr gekauft werden sollen stellt sich nun aber im Warenkorb ein Problem auf.
Hat man einen nicht verfügbaren Artikel im Warenkorb, so kann man den Kauf nicht abschließen, der Kasse-Button ruft nämlich nur noch die gleiche Seite wieder auf und es erscheint ein Hinweis bei dem Artikel ohne Bestand. So schön, so gut;
Hat man nun PayPal-Express installiert erscheint dort nun natürlich auch der Button und wie soll es anders sein, man kann den Kauf nun über PayPal abschließen.
Das ist natürlich fatal oder nicht Sinn der Sache mit den nicht verfügbaren Produkten. Das Problem liegt darin begraben, dass die Programmierer von PayPal-Express diese Situation einfach nicht bedacht haben.
Aber es gibt natürlich Abhilfe. In der shopping_card.html im Templateverzeichnis findet man ganz unten im Quelltext die genannten Button Kasse und PayPal-Express. Eine einfache if-Abfrage schafft hier schnell das gewünschte Ergebnis. Man packt die Buttons in folgende Syntax:
<td align=“center“>{if $smarty.session.allow_checkout == ‚true‘} {$BUTTON_CHECKOUT}{/if}</td>
<td align=“right“>{if $smarty.session.allow_checkout == ‚true‘} {$BUTTON_PAYPAL}{/if}</td>Das wars auch schon 🙂 Bevor die Buttons nun erscheinen wird geprüft ob die Variable „allow_checkout“ auf true steht. Ist dies der Fall, z.B. wenn keine nicht verfügbaren Artikel im Korb sind, erscheinen die Button. Ist ein solcher Artikel im Korb, werden die Button ausgeblendet und der Kunde erhält einen Warnhinweis (Text anpassbar im Admin von XTC).
[poll id=“5″]