Hallo zusammen,
um die Preiskalkulation im Warenkorb anzupassen, habe ich die Methode _calcItemsPrice() der Klasse oxBasket in einem eigenen Modul überladen.
Im Warenkorb funktioniert das Ganze einwandfrei.
Im Adminbereich unter “Bestellungen” habe ich jedoch mit der überladenen Methode zwei Probleme.
- Der Karteikartenreiter “Stamm” funktioniert nicht mehr. Hier erscheint beim Anklicken die Startseite des Shops.
- In dem Karteikartenreiter “Artikel” wird der Preis nicht mehr aktualisiert, wenn ich die Artikelanzahl ändere.
OXID scheint die Methode _calcItemsPrice() im Warenkorb und im Adminbereich unterschiedlich zu behandeln. Im Warenkorb funktioniert der Aufruf der überladenen Methode, im Adminbereich gibt es Probleme beim Aufruf der überladenen Methode.
Konkret macht die folgende Codezeile in meiner überladenen Methode Ärger:
$productCat = $oArticle->getCategory();
.
Beim Zugriff auf die Kategorie des Artikels erhalte ich in der exception_log.txt die folgende Fehlermeldung:
oxSystemComponentException-oxException (time: 2017-05-13 11:47:01): [0]: Function ‘getCategory’ does not exist or is not accessible! (oxOrderArticle)
Stack Trace: #0 /opt/lampp/htdocs/oxid/modules/custom/staffelpreise/staffelpreise.php(56): oxSuperCfg->__call(‘getCategory’, Array)
#1 /opt/lampp/htdocs/oxid/modules/custom/staffelpreise/staffelpreise.php(56): oxOrderArticle->getCategory()
#2 /opt/lampp/htdocs/oxid/application/models/oxbasket.php(1470): staffelpreise->_calcItemsPrice()
#3 /opt/lampp/htdocs/oxid/application/models/oxorder.php(1622): oxBasket->calculateBasket(true)
#4 /opt/lampp/htdocs/oxid/application/controllers/admin/order_main.php(72): oxOrder->getShippingSetList()
#5 /opt/lampp/htdocs/oxid/core/oxshopcontrol.php(479): Order_Main->render()
#6 /opt/lampp/htdocs/oxid/core/oxshopcontrol.php(361): oxShopControl->_render(Object(Order_Main))
#7 /opt/lampp/htdocs/oxid/core/oxshopcontrol.php(126): oxShopControl->_process(‘order_main’, NULL, NULL, NULL)
#8 /opt/lampp/htdocs/oxid/core/oxid.php(40): oxShopControl->start()
#9 /opt/lampp/htdocs/oxid/index.php(26): OXID::run()
#10 /opt/lampp/htdocs/oxid/admin/index.php(27): require_once(‘/opt/lampp/htdo…’)
#11 {main}
Faulty component –>
Hat jemand eine Idee, wo das Problem liegen könnte?
Viele Grüße und besten Dank!