Hello guys,

with oxid Version 6.0 the shop is using MySQL transactions. -> 
https://dev.mysql.com/doc/refman/5.7/en/commit.html

For example this is used in 
OxidEsales\Eshop\Application\Model\Order::recalculateOrder
(formally known as oxorder::recalculateOrder).
https://github.com/OXID-eSales/oxideshop_ce/blob/472ce3d73e5f0e46a29566f5290a85d631bd00db/source/Application/Model/Order.php#L1354

In the process of Order::finalizeOrder, the PaymentGateway::executePayment() 
allows 
modules to perform module based validations.
https://github.com/OXID-eSales/oxideshop_ce/blob/472ce3d73e5f0e46a29566f5290a85d631bd00db/source/Application/Model/Order.php#L916

Some payment provider will create transactions and send it back to the shop.
A module will be willing to save/log these transactions to the database.
If there are a failed transaction and the module save his object via shop 
standard BaseModel::save() 
and the PaymentGateway::executePayment() return a false,
the complete MySQL transaction will be ROLLBACK'ed. (Order::recalculateOrder())
https://github.com/OXID-eSales/oxideshop_ce/blob/472ce3d73e5f0e46a29566f5290a85d631bd00db/source/Application/Model/Order.php#L1374

So the module lost all informations/transactions, which are saved during the 
transaction.


How is oxid's suggestion to save these transactions from ROLLBACK?



best regards
Kristian Hempel 

-- 


Richten Sie Fehlermeldungen und Supportanfragen bitte an 
supp...@shopmodule.com. 


Fresh ideas for your business 


D³ Data Development (Inh. Thomas Dartsch)
Stollberger Straße 23 · D-09380 Thalheim 
Fon 03721 268090 · Fax 03721 265234
 Shop: http://www.oxidmodule.com Firma: http://www.shopmodule.com 
Blog: http://blog.oxidmodule.com FAQ: http://faq.oxidmodule.com 
 OXID eSales AG
Certified Partner 
Business Level
 Profihost AG
Enterprise Partner

Reply via email to