Index: branches/5.2.x/units/order_items/order_items_event_handler.php =================================================================== diff -u -N -r14986 -r15018 --- branches/5.2.x/units/order_items/order_items_event_handler.php (.../order_items_event_handler.php) (revision 14986) +++ branches/5.2.x/units/order_items/order_items_event_handler.php (.../order_items_event_handler.php) (revision 15018) @@ -1,6 +1,6 @@ setCheckoutError(OrderCheckoutErrorType::DISCOUNT, $error_code); } } - elseif ( $changed_field == 'Quantity' ) { + elseif ( $changed_field == 'Quantity' && $this->Application->isDebugMode() ) { // here is how qty is changed: // OLD QTY -> NEW QTY // RECALCULATE Index: branches/5.2.x/units/orders/orders_event_handler.php =================================================================== diff -u -N -r15009 -r15018 --- branches/5.2.x/units/orders/orders_event_handler.php (.../orders_event_handler.php) (revision 15009) +++ branches/5.2.x/units/orders/orders_event_handler.php (.../orders_event_handler.php) (revision 15018) @@ -1,6 +1,6 @@ SetDBField('PaymentNameOnCard', $object->GetDBField('BillingTo')); } - if ( $event->MasterEvent->Name == 'OnUpdateAjax' && $this->Application->GetVar('create_account') && $object->Validate() ) { + if ( is_object($event->MasterEvent) && $event->MasterEvent->Name == 'OnUpdateAjax' && $this->Application->GetVar('create_account') && $object->Validate() ) { $this->createAccountFromOrder($event); } } @@ -3049,6 +3049,14 @@ return false; } + $item_data = $event->getEventParam('ItemData'); + $item_data = $item_data ? unserialize($item_data) : Array (); + $options = getArrayValue($item_data, 'Options'); + + if ( !$this->CheckOptions($event, $options, $item_id, $qty, $product->GetDBField('OptionsSelectionMode')) ) { + return; + } + $manager =& $this->Application->recallObject('OrderManager'); /* @var $manager OrderManager */