Index: modules/in-commerce/units/orders/orders_event_handler.php =================================================================== --- modules/in-commerce/units/orders/orders_event_handler.php +++ modules/in-commerce/units/orders/orders_event_handler.php @@ -1636,21 +1636,29 @@ { parent::OnBeforeClone($event); - $object = $event->getObject(); - /* @var $object OrdersItem */ + /** @var OrdersItem $object */ + $object =& $event->getObject(); if ( substr($event->Special, 0, 9) == 'recurring' ) { $object->SetDBField('SubNumber', $object->getNextSubNumber()); - $object->SetDBField('OriginalAmount', 0); // needed in this case ? } else { $this->setNextOrderNumber($event); - $object->SetDBField('OriginalAmount', 0); } - $object->SetDBField('OrderDate', adodb_mktime()); + + $reset_fields = array( + 'OnHold', 'OrderDate', 'ShippingCost', 'ShippingTracking', 'ShippingDate', 'ReturnTotal', + 'OriginalAmount', 'ShippingInfo', 'GWResult1', 'GWResult2', 'AffiliateCommission', + 'ProcessingFee', 'InsuranceFee', + ); + + foreach ( $reset_fields as $reset_field ) { + $field_options = $object->GetFieldOptions($reset_field); + $object->SetDBField($reset_field, $field_options['default']); + } + + $object->SetDBField('OrderIP', $this->Application->getClientIp()); $object->UpdateFormattersSubFields(); - $object->SetDBField('GWResult1', ''); - $object->SetDBField('GWResult2', ''); } function OnReserveItems($event)