2012-03-29 11 views
1

Ich bin auf der Suche nach einer Möglichkeit, den Preis des konfigurierbaren Produkts nach einen Wert hinzuzufügen, alle erforderlichen Optionen ausgewählt sind. Ich muss gegen volle SKU von ausgewählten einfachen Produkt passen so pro Option Preise sind nicht geeignetÄndern des Preises des konfigurierbaren Produkts

Ich habe ein JSON mit SKU - Preis-Paare und jetzt auf der Suche nach einem JS-Event, um die Aufgabe sauber zu machen und auch das neue zu bewahren Preis hinzufügen während den Warenkorb und Kasse Stufen

Vielen Dank im Voraus für alle Einsichten

Antwort

4

Sie einen Beobachter-Klasse verwenden können, um checkout_cart_product_add_after, zu hören und ein Produkt der „super-Modus“ verwenden, um benutzerdefinierte Preise gegen den Quote Artikel einzustellen.

In Ihrem /app/code/local/{namespace}/{yourmodule}/etc/config.xml:

<config> 
    ... 
    <frontend> 
     ... 
     <events> 
      <checkout_cart_product_add_after> 
       <observers> 
        <unique_event_name> 
         <class>{{modulename}}/observer</class> 
         <method>modifyPrice</method> 
        </unique_event_name> 
       </observers> 
      </checkout_cart_product_add_after> 
     </events> 
     ... 
    </frontend> 
    ... 
</config> 

Und dann eine Observer-Klasse erstellen in/app/code/local/{Namensraum }/{} yourmodule /Model/Observer.php

class <namespace>_<modulename>_Model_Observer 
{ 
    public function modifyPrice(Varien_Event_Observer $obs) 
    { 
     // Get the quote item 
     $item = $obs->getQuoteItem(); 
     // Ensure we have the parent item, if it has one 
     $item = ($item->getParentItem() ? $item->getParentItem() : $item); 
     // Load the custom price 
     $price = $this->_getPriceByItem($item); 
     // Set the custom price 
     $item->setCustomPrice($price); 
     $item->setOriginalCustomPrice($price); 
     // Enable super mode on the product. 
     $item->getProduct()->setIsSuperMode(true); 
    } 

    protected function _getPriceByItem(Mage_Sales_Model_Quote_Item $item) 
    { 
     $price; 

     //use $item and maybe your json object to determine the correct price 

     return $price; 
    } 

} 

Dadurch werden die Preisänderungen aus dem Backend behandeln. Was das Javascript angeht, es tut mir leid, aber ich bin mir nicht so sicher!

+0

Akzeptiert Ihre Antwort, wie ich es geschafft, JS Teil zu implementieren :) Eine Sorge ist aber übrig - Aktualisierung benutzerdefinierten Preis, wenn anonymer Kunde ein Produkt in den Warenkorb und dann Logins in den Laden, so muss der Preis neu berechnet werden, haben Sie irgendwelche Ideen dazu? – Zifius

+0

Wie hast du das JS gemacht? Ich bin interessiert zu sehen, was Ihre Lösung war. Wie wird das Login-Problem zurückgesetzt, wenn sich der Kunde anmeldet? Vielleicht gibt es ein besseres Ereignis zu hören, oder vielleicht können Sie das Login-Ereignis beobachten und jedes Element iterieren. –

+0

Ich habe das Preisproblem im 'sales_quote_merge_after'-Ereignis gelöst. Hier wurde der anonyme Kundenwagen zum angemeldeten Kunden konvertiert. Wie bei JS habe ich einen kompletten JSON von Options-ID zu Admin-Wert-Paaren erstellt, vollständige einfache SKU und Mehrwert zum Endpreis (wieder von JSON) gesammelt – Zifius

Verwandte Themen