wenn ich nachträglich bei einem Artikel den Preis ändere, dann in eine Bestellung reingehe, die diesen Artikel beinhaltet, und diese Bestellung dann unter dem TAB “Artikel” aktualisiere, so wird die komplette Bestellung mit dem geänderten Artikelpreis neuberechnet.
Eigentlich sollte doch dort der alte Artikelpreis, also der Artikelpreis zum Zeitpunkt der Bestellung stehen.
Das weiß ich leider nicht, da ich die 4.7 noch nicht installiert habe. Ich könnte mir aber vorstellen, daß es klappt. Die Änderungen im Code sind nicht so gravierend.
Wir werden irgendwann in den nächsten Monaten auf 4.7 umsteigen, aber das kann noch dauern. Wenn es soweit ist, würde ich es für 4.7 testen
Oh das ist cool, dieses “Feature” ist eines der schlimmsten in OXID. Wieso so etwas mit Absicht programmiert wird und bei behalten, ist mir bis heute schleierhaft. Diese “Funktion” ist schon fast absichtliche Geisterfahrt auf der Autobahn. :rolleyes:
Ich hab das Problem auch öfter mit unserem eBay Modul, da bei vielen die eBay Preise ja vom Shoppreis abweichen. Ändert dann einer was in der Bestellung rechnet OXID neu, das brauch es dann wirklich nicht. Ich werde das Modul mal bei uns in der Knowledgebase verlinken.
Jetzt ist das Modul vollständig und man kann einstellen, ob Artikelpreis, Zahlartgebühren, Versandkosten, Verpackungskosten, Rabatte, Gutscheine, TS Protection in der Bestellverwaltung des Backend neuberechnet werden sollen.
sobald ich da smodul aktiviere erhalte ich unter Bestellung folgenden Text:
class jkx_oxOrder extends jkx_oxOrder_parent{ /** * Recalculates order. Starts transactions, deletes current order and order articles from DB, * adds current order articles to virtual basket and finaly recalculates order by calling oxorder::finalizeOrder() * If no errors, finishing transaction. * * @param array $aNewArticles article list of new order * * @return null */ public function recalculateOrder( $aNewArticles = array() ) { oxDb::startTransaction(); try { $oBasket = $this->_getOrderBasket(); // add this order articles to virtual basket and recalculates basket $this->_addOrderArticlesToBasket( $oBasket, $this->getOrderArticles( true ) ); // adding new articles to existing order $this->_addArticlesToBasket( $oBasket, $aNewArticles ); // recalculating basket $oBasket->calculateBasket( true ); /***START MOD BACKEND ORDER RECALCULATE ***/ if($this->getConfig()->isAdmin()){ if($this->getConfig()->getConfigParam( ‘jbRecalculateOrderVoucher’ ) || $this->getConfig()->getConfigParam( ‘jbRecalculateOrderDiscount’ )){ $this->reloadDiscount(true); }else{ $this->reloadDiscount(false); } } /END MOD BACKEND ORDER RECALCULATE/ //finalizing order (skipping payment execution, vouchers marking and mail sending) $iRet = $this->finalizeOrder( $oBasket, $this->getOrderUser(), true ); //if finalizing order failed, rollback transaction if ( $iRet !== 1 ) { oxDb::rollbackTransaction(); } else { oxDb::commitTransaction(); } } catch( Exception $oE ) { // if exception, rollBack everything oxDb::rollbackTransaction(); if ( defined( ‘OXID_PHP_UNIT’ ) ) { throw $oE; } } } }