FiveDigital

Ein Blog über PHP, Magento usw.

Neue Total in Magentos Pay Pal Modul aufnehmen

Wenn man ein Modul geschrieben hat, dass einen neuen Rabatt (oder auch einen Aufpreis) in Magento einfügt und möchte, dass der Rabatt (bzw. Aufpreis) an Paypal weitergegeben wird, kann dies sehr einfach über einen Observer auf das Event paypal_prepare_line_items erfolgen:

    /**
     * Add custom discount amount to PayPal discount total
     *
     * @param Varien_Event_Observer $observer Observer
     * 
     * @return null
     */
    public function addPaypalCustomDiscountItem(Varien_Event_Observer $observer)
    {
    	/* @var $paypalCart Mage_Paypal_Model_Cart */
        $paypalCart = $observer->getEvent()->getPaypalCart();
        if ($paypalCart) {
            $salesEntity = $paypalCart->getSalesEntity();
            if ($salesEntity instanceof Mage_Sales_Model_Quote || $salesEntity instanceof Mage_Sales_Model_Order) {
	        $value = (float)$salesEntity->getCustomDiscount();
 
	        if ($value > 0.0001) {
	            $paypalCart->updateTotal(
                        Mage_Paypal_Model_Cart::TOTAL_DISCOUNT,
                        $value,
	                Mage::helper('my_module')->__(
                            'Customt Discount (%s)', 
                            Mage::app()->getStore()->convertPrice($value, true, false)
                        )
	            );
	        }	
            } else {
                return;
            }
        }
    }

Magento 1.5 Roadmap

Mit dem Release von Magento 1.4.1.0 wurde auch die Roadmap für Magento 1.5.0.0 veröffentlicht. Sie ist wie immer interessant zu lesen: http://www.magentocommerce.com/roadmap/release/1.5.0.0

Magische Setter/Getter in Magento Templates und Layouts

Die magischen Getter und Setter, die z.B. von Models bekannt sind, können auch in den Layouts verwendet werden. Hier ein Beispiel für die Verwendung der Setter und Getter:

$product->setWurst("Salami");
echo $product->getWurst();

Nach ein wenig Überlegung macht das Ganze auch in den Layouts Sinn. Weiterlesen »

Flex DataGrid zum Bearbeiten und Hinzufügen von Datensätzen

Das Flex DataGrid bietet von Haus aus die Möglichkeit, Datensätze in der Tabelle zu bearbeiten. Ich habe ein Beispiel erstellt, das ein DataGrid bereit hält, welches immer einen neuen, leeren Datensatz anzeigt. Der Trick dabei ist, dem Dataprovider einen leeren Datensatz hinzuzufügen.

Update: Mein liebenswerter Kollege Alex hat mich auf einen kleinen Fehler im Beispiel hingewiesen, den ich nun korrigiert habe. Vielen Dank!

Die Flex Tree Komponente für Kategorien mit Drag & Drop – Teil 1

Die Tree Komponente ist sehr hilfreich um hierarchische Daten darzustellen. Angedacht ist die Komponente, wie der Name vermuten lässt, als Baum mit Knoten und Blättern. So wird er auch in den Beispielen auf der Adobe Seite dargestellt. Entwickelt man eine Flex Anwendung, kommt man oft an einen Punkt, an dem Daten kategorisiert werden müssen. Was eignet sich dazu besser als die Tree Komponente? Wie sich heraus stellt, ist sie jedoch nicht 100%ig für einen derartigen Einsatz geschaffen.
Weiterlesen »

Autoloading mittels PHP Namespaces

Seit Version 5.3 unterstützt PHP (endlich) Namespaces. Autoloading ist auch nichts neues mehr – Wird eine Klasse zur Laufzeit nicht gefunden, wird versucht die Klasse mittels der __autoload() Funktion zu laden, bevor ein PHP Fehler erscheint.

Setzt man Klassen ein, die Namespaces nutzen, wird der Namespace der Funktion übergeben. Benutzt man für sein Script eine Ordnerstruktur, die den Namespaces entspricht, ist es einfach aus dem Namespace heraus auf den Ordner in dem die Klasse liegt zu schließen.
Weiterlesen »

Authentifizierung mit dem Zend AMF Server

Um einen Webservice für eine Flex Anwendung abzusichern, gibt es viele Möglichkeiten. Handelt es sich um eine öffentlich zugängliche Anwendung, ist es natürlich leicht, denn jeder Benutzer darf auf den Webservice zugreifen.

Häufig jedoch ist dies nicht gewünscht und der Webservice muss abgesichert werden. Dazu gibt es viele Möglichkeiten, die alle ihre Vor- und Nachteile mit sich bringen. Für eine Anwendung an der ich zurzeit arbeite, greife ich auf eine bestehende Benutzerdatenbank zu. Wie es üblich ist, erfolgt der Login über eine E-Mail Adresse und ein als MD5 Hash in der Datenbank gespeichertes Passwort.

In diesem Artikel möchte ich auf die Authentifizierung mittels des Zend Frameworks eingehen.
Weiterlesen »