Ich habe Produkte identisch eingerichtet (soweit ich das beurteilen kann) und sie wurden alle mit einer universellen CSV-Vorlage importiert.
- Der konfigurierbare Preis beträgt 29,99
- Der zugehörige Kurzarm für einfache Produkte ist 29,99
- Zugehöriges einfaches Produkt Langarm ist 39,99
Auf einer Rechnung wurde kürzlich ein Langarmprodukt ( ZTWS-SBLS-XL ) mit einem Preis von 39,99 und einem konfigurierbaren Produktpreis von 29,99 in Rechnung gestellt . Wie kann ich den einfachen Produktpreis zwingen, den konfigurierbaren Produktpreis zu überschreiben? Die beiden folgenden Produkte sind identisch mit ihrem übergeordneten konfigurierbaren Produkt und als einfache Produkte eingerichtet.
Rechnung:
Item Sku Qty Subtotal
Item one ZLOB-SBLS-XL 1 $39.99
Item Two ZTWS-SBLS-XL 1 $29.99
EDIT: Ich arbeite immer noch daran, das zu lösen. Was würde Magento veranlassen, den einfachen Produktpreis dem konfigurierbaren Produktpreis oder dem zugehörigen Produktattributpreis vorzuziehen?
Antworten:
Wenn Sie ein konfigurierbares Produkt erstellen, spielt es keine Rolle, wie hoch der Preis für einfache Produkte ist - diese Preise werden vollständig ignoriert. Wenn Sie also ein einfaches Produkt A mit einem Preis von 29,99 USD und ein einfaches Produkt B mit einem Preis von 39,99 USD verkaufen möchten, müssen Sie ein konfigurierbares Produkt erstellen, den Preis auf 29,99 USD festlegen und das zugehörige Produkt öffnen Registerkarte . Fügen Sie Produkte hinzu, die Sie mit diesem konfigurierbaren Produkt verknüpfen möchten. Nach dem Hinzufügen wird ein Block mit dem Namen Super product attributes configuration angezeigt, der Optionen und Preisunterschiede enthält. Lassen Sie Produkt A Preis leer und geben Sie 10 (+ $ 10) für Produkt B Preisfeld und Voila ein: Unterschiedliche einfache Produkte haben unterschiedliche Preise.
Es gibt tatsächlich eine Erweiterung, mit der Sie einfache Produktpreise anstelle von Preisunterschieden verwenden können, deren Einrichtung jedoch schwierig ist. Da es sich um eine kostenlose Erweiterung handelt, hoffe ich, dass sich niemand darüber beschwert, dass ich den Link hier eingefügt habe:
https://github.com/organicinternet/magento-configurable-simple
quelle
Daher benutze ich den unten stehenden Code in Kombination mit einer Erweiterung, wie zum Beispiel einfach konfigurierbaren Produkten für das organische Internet.
Der folgende Code ist für den Warenkorb- / Checkout-Prozess gedacht. Im Wesentlichen handelt es sich um eine Aktualisierung des konfigurierbaren Preismodells, das die Preisberechnung an ein einfaches Produkt weiterleitet, falls das Produkt dem Warenkorb hinzugefügt wurde. Diese Lösung zeigt KEINE Preise an auf der Produktseite selbst (es gibt jedoch viele Erweiterungen, die dies bereits tun).
Aktualisiere App / Code / Kern / Magier / Katalog / Modell / Produkt / Typ / Konfigurierbar / Preis.php (idealerweise verwendest du eine Erweiterung oder lokale Überschreibung in App / Code / Lokal)
Aktualisieren Sie die Methode: getFinalPrice, wechseln Sie zu
Dann fügen Sie diese Funktion direkt unterhalb von getFinalPrice hinzu:
Sie können sehen, dass für den Fall, dass der Benutzer das Produkt "angepasst" hat (IE, ausgewählte konfigurierbare Optionen), wir das zugehörige einfache Produkt bestimmen und die Kontrolle an sein Preismodell übergeben, andernfalls, wenn das Produkt nicht "angepasst" ist (IE, wir) browsen auf der Produktseite) gehen wir wie gewohnt vor
quelle
Verwendung von Magento Version 1.9.2.2
Vielleicht ist es eine etwas bessere Lösung, den 'Observer'-Ansatz zu verwenden, anstatt den Kern zu hacken oder sogar die Standard-Modellpreisklasse zu überschreiben, dh app / code / core / Mage / Katalog / Modell / Produkt / Typ / Konfigurierbar / Preis.php
Alles, was Sie tun müssen, ist, Alans Code in Ihrem neu erstellten Observer zu verwenden. Der einzige Unterschied besteht darin, nicht zurückzukehren
Ersetzen Sie es durch Folgendes:
Folgen Sie dieser Observer.php
Config.xml
Hoffe es löst das Problem .. :)
quelle
Wenn die einfachen Produkte einen unterschiedlichen Preis haben, aber für das konfigurierbare Produkt ohne feste oder prozentuale Preiseinstellung eingerichtet sind, wird der Preis des konfigurierbaren Produkts verwendet. Unabhängig davon, welche einfachen Produkte gekauft werden, scheint deren Preis nicht berücksichtigt zu werden.
Um dies zu aktualisieren, rufen
Associated Products
Sie einfach das übergeordnete Produkt im Administrationsbereich auf. Auf der Registerkarte können Sie den Preis für jedes untergeordnete Produkt aktualisieren, um einen zusätzlichen Preis zum Preis für das übergeordnete Produkt hinzuzufügen.quelle
Ich habe auch das gleiche Problem und ich habe es mit dem folgenden Code behoben. Dies funktioniert auch auf der Admin-Seite, wenn Sie bei Admin bestellen (für telefonische Bestellungen).
Beobachten Sie dieses Ereignis,
und füge den folgenden Code in deine Observer.php ein
Es wird der zugehörige Produktpreis angezeigt und im Angebot gespeichert.
quelle
$item->setOriginalCustomPrice($sprice);
und$item->setOriginalPrice($price);
, das ermöglicht mehrere konfigurierbare Artikel, die auf dasselbe Produkt im Warenkorb verweisen, mit unterschiedlichen Preisen.Befolgen Sie die nachstehenden Schritte, um den Superattributpreis zu ändern
Verwenden Sie zuerst die Beobachter "catalog_product_get_final_price". Machen Sie Beobachter so:
Öffnen Sie Ihr Modul config.xml und verwenden Sie den folgenden Code:
Erstellen Sie nun die Observer.php-Datei in model und past unter code
Öffnen Sie jetzt app / design / frontend / default / yourtheme / template / catalog / product / view / type / options / configure.phtml und fügen Sie den Code an einer beliebigen Stelle in der Datei ein
Öffnen Sie nun js / varien / configure.js und ändern Sie die reloadPrice-Funktion wie folgt oder Sie können auch diese gesamte Funktion ersetzen
Code Entnommen aus: http://chandreshrana.blogspot.in/2016/03/set-simple-product-price-instead-of.html
quelle