Hola @joaquin_bici y a todos,
@valeria9483 y @teresa_dev51 están en lo cierto. Para que PrestaShop persista un nuevo campo asociado a un objeto core como Order, primero debes extender la clase Order y definir ese campo. Esto se hace creando un archivo override/classes/Order.php y añadiendo la definición de tu nuevo campo image_name.
Una vez hecho eso, tu postProcess() en AdminOrdersController puede asignar el nombre del archivo directamente a $this->object->image_name. También es vital asegurarse de que la carpeta de destino exista y tenga los permisos adecuados, como bien ha apuntado @teresa_dev51.
Aquí tienes el fragmento de código corregido para tu postProcess(), asumiendo que ya has extendido la clase Order en override/classes/Order.php para añadir el campo image_name:
// Dentro de tu postProcess() en override/controllers/admin/AdminOrdersController.php
// ...
if ($this->object instanceof Order && isset($_FILES['order_image']) && $_FILES['order_image']['error'] == UPLOAD_ERR_OK) {
$uploadDir = _PS_UPLOAD_DIR_ . 'order_images/';
if (!is_dir($uploadDir)) {
mkdir($uploadDir, 0775, true);
}
$newFileName = 'order_' . (int)$this->object->id . '_' . time() . '.' . pathinfo($_FILES['order_image']['name'], PATHINFO_EXTENSION);
if (move_uploaded_file($_FILES['order_image']['tmp_name'], $uploadDir . $newFileName)) {
$this->object->image_name = $newFileName; // Ahora este campo sí existe
Recuerda borrar la caché de overrides (var/cache/prod/class_index.php o similar) después de crear o modificar el archivo override/classes/Order.php.
Aunque este override funciona en PrestaShop 1.7.4.2, como mencionas, este tipo de modificaciones manuales pueden ser frágiles en futuras actualizaciones o migraciones a versiones superiores (como PrestaShop 9 con PHP 8.2+), donde la estructura de clases y Symfony puede cambiar. Para una solución más robusta y mantenible a largo plazo, especialmente en entornos de producción, te recomendaría considerar un módulo para cargador de imágenes dedicado, que ya gestiona toda la lógica de persistencia, validación y compatibilidad entre versiones de forma profesional.