load_order($message); $user_id = (int)$order->get('User_ID'); $is_duplicate = (isset($is_duplicate) && $is_duplicate); $is_merged = (isset($is_merged) && $is_merged); // Сохранить f_User_ID (может быть передано для нового заказа) $custom_user_id = (int)$nc_core->input->fetch_post('f_User_ID'); if ($custom_user_id) { $order->set('User_ID', $custom_user_id) ->set('LastUser_ID', (int)$AUTH_USER_ID) ->save(); $user_id = $custom_user_id; } // Устанавливаем context для правильного расчета скидок на товары if (isset($order)) { $context = $netshop->get_condition_context(); $context->set_order($order); if ($user_id) { $context->set_user_id($user_id); } } // Сохранить изменения в способе доставки, если они есть $order->save_delivery_options($nc_core->input->fetch_post() ?: array()); // Сохранить изменения в списке товаров, если передан массив $items $new_item_list = $nc_core->input->fetch_post('items'); if ($new_item_list) { $items = nc_netshop_item_collection::from_array($new_item_list); $order->save_items($items, !$is_duplicate); } // Сохранить изменение скидки на корзину $cart_discount_sum = $nc_core->input->fetch_post('cart_discount_sum'); if ($cart_discount_sum !== null && $cart_discount_sum != $order->get_order_discount_sum()) { $order->update_cart_discount($cart_discount_sum); } // Обработать изменение статуса ($previous_status определяется в условии изменения) // и создание дубликата заказа $f_Status = $nc_core->input->fetch_post_get('f_Status'); if (($f_Status !== null && $f_Status != $previous_status) || $is_duplicate || $is_merged || $action === 'add') { $netshop->mailer->process_order_status_change($order); } // Готово. if (isset($do_not_respond) || !empty($inside_netshop) || ($inside_admin && !$isNaked)) { exit; } echo NETCAT_MODERATION_MSG_OBJCHANGED, "

", $goBack;