Blog

Diseño Web, Gestores de contenidos, Prestashop

Activar o desactivar módulos para dispositivos móviles en Prestashop

En ocasiones queremos que un módulo no aparezca en dispositivos móviles. O activar uno que por defecto no aparece como el Ps_banner (módulo Banner) de Prestashop. La opción existe…pero está algo escondida. Hoy os enseñamos a hacerlo. Cómo activar o desactivar módulos para dispositivos móviles en Prestashop. Para hacerlo tenéis que ir al backend a módulos, y buscar el que queréis activar o desactivar para dispositivos móviles. A la derecha del botón tenéis una flecha para desplegar opciones y, si pincháis ahí, veréis “Enable mobile” si está desactivado, o “Disable mobile” si ahora está activado para móviles. Pinchad ahí para activar/desactivar ese módulo para esos dispositivos móviles. Lo podéis ver en este vídeo. Una gran opción que está algo escondida.  

Linux, Sistemas, Trucos

Cómo activar los procesadores de un servidor virtual o cloud sin reiniciar

Hoy hemos tenido que ampliar los procesadores de un servidor Cloud para un cliente. Lo bueno de estos servidores es que, cuando hay un aumento repentino de accesos, se les puede aumentar los recursos de forma temporal. Porque son servidores virtuales. Sin embargo, la mayoría de las veces el aumento requiere reinicio y esto, en una máquina en producción, puede no ser viable inmediatamente. Hoy os enseñamos cómo activar los procesadores añadidos sin tener que reiniciar. Cómo activar los procesadores de un servidor virtual sin reiniciar. Al activar los procesadores nuevos podéis comprobar como todavía no están en funcionamiento con los comandos de este artículo. Por ejemplo si hacemos un lscpu veremos algo como: Si veis los CPU 0 y 1 aparecen online peor los 2 y 3 salen offline (en linux se centan desde 0). Como hemos dicho podemos reiniciar, y activará los que tiene offline. Pero también podemos ejecutar estos comandos: Activar procesadores. echo 1 > /sys/devices/system/cpu/cpu2/online echo 1 > /sys/devices/system/cpu/cpu3/online De esta manera pones a 1 (online) los atributos  sysfs de dichos procesadores. También se puede hacer lo mismo con chcpu chcpu -r chcpu -e 2 (Esto reescanea los cpus y activa el procesador 2) Para desactivar los procesadores: echo 0 > /sys/devices/system/cpu/cpu2/online echo 0 > /sys/devices/system/cpu/cpu3/online Esto hace lo contrario. Si ahora hacéis de nuevo un lscpu obtendréis que están todos activos:  

Diseño Web, Gestores de contenidos, Prestashop, Trucos

Mejorar la calidad de las imágenes que se suben o se importan en Prestashop

Hace unos días hemos hecho una página web para un cliente en Prestashop. Este cliente, tenía la peculiaridad (respecto a clientes anteriores) que disponía de unas imágenes con buena calidad. Al subirlas a Prestashop, tanto en la subida por producto, como en la importación masiva, la pérdida de calidad era más que evidente. Las fotos de Prestashop no tenían una calidad aceptable teniendo en cuenta las fotos de origen. Y en esa página, las imágenes eran clave. La página la hemos creado en 1.7, pero lo probamos en 1.6 y el resultado era el mismo. Calidad muy por debajo de lo aceptable cuando las imágenes originales son de calidad (para imágenes “usuales” si que es funcional). Obviamente modificamos todas las opciones de calidad en el backend de Prestashop ( Diseño > Ajustes de imágenes ), sin mejora importante del resultado. Nos somos a los primeros a los que les pasó (ver aquí y aquí). Es un tema recurrente y sin resolver (“sorpresa” por parte de Prestashop). Al final descubrimos por qué y cómo resolverlo. Os lo contamos en este artículo. Cómo mejorar la calidad de las imágenes que se suben o se importan en Prestashop. Lo primero es la causa que ocasiona esta pérdida de calidad. Prestashop comprime todas las imágenes al subirlas. Y crea varias imágenes de diferentes tamaños (que se definen en Diseño > Ajustes de imágenes ). Esto es lógico y bueno. El problema es que usa un método de compresión, GD2, que antes se usaba mucho por estar integrado en Php (o en la mayoría de las instalaciones). Sin embargo no es la librería que mejores resultados da, tiene pocas opciones y, además, creo que Php 7 ya no la incluye por defecto. Después de varias pruebas infructuosas con GD, optamos por cambiar a Imagemagick siguiendo las indicaciones de un post al que enlazamos en los párrafos anteriores. Siguiendo los resultados arreglaba algo la subida producto a producto, pero no la masiva. Y aún así, no conseguíamos los mejores resultados así que modificamos el proceso para lo que queríamos. Esto es lo que hicimos.. Para las subidas desde el backend. Tenemos que: Hacer un override (copiar en la carpeta override/classes) de la clase ImageManager.php porque queremos modificar la función resize para que use ImageMagick. Nota:  Para esto tu servidor tiene que tener ImageMagick o deberías poder instalarlo. Si no no funciona. En ese fichero   override/classes/ImageManager.php ponemos lo siguiente: <?php class ImageManager extends ImageManagerCore { /** * Resize, cut and optimize image * * @param string $src_file Image object from $_FILE * @param string $dst_file Destination filename * @param int $dst_width Desired width (optional) * @param int $dst_height Desired height (optional) * @param string $file_type * @param bool $force_type * @param int $error * @param int $tgt_width * @param int $tgt_height * @param int $quality * @param int $src_width * @param int $src_height * @return bool Operation result */ public static function resize2($src_file, $dst_file, $dst_width = null, $dst_height = null, $file_type = ‘jpg’, $force_type = false, &$error = 0, &$tgt_width = null, &$tgt_height = null, $quality = 5, &$src_width = null, &$src_height = null) { if (PHP_VERSION_ID < 50300) { clearstatcache(); } else { clearstatcache(true, $src_file); } if (!file_exists($src_file) || !filesize($src_file)) { return !($error = self::ERROR_FILE_NOT_EXIST); } list($src_width, $src_height, $type) = getimagesize($src_file); // If PS_IMAGE_QUALITY is activated, the generated image will be a PNG with .jpg as a file extension. // This allow for higher quality and for transparency. JPG source files will also benefit from a higher quality // because JPG reencoding by GD, even with max quality setting, degrades the image. if (Configuration::get(‘PS_IMAGE_QUALITY’) == ‘png_all’ || (Configuration::get(‘PS_IMAGE_QUALITY’) == ‘png’ && $type == IMAGETYPE_PNG) && !$force_type) { $file_type = ‘png’; } if (!$src_width) { return !($error = self::ERROR_FILE_WIDTH); } if (!$dst_width) { $dst_width = $src_width; } if (!$dst_height) { $dst_height = $src_height; } $width_diff = $dst_width / $src_width; $height_diff = $dst_height / $src_height; $ps_image_generation_method = Configuration::get(‘PS_IMAGE_GENERATION_METHOD’); if ($width_diff > 1 && $height_diff > 1) { $next_width = $src_width; $next_height = $src_height; } else { if ($ps_image_generation_method == 2 || (!$ps_image_generation_method && $width_diff > $height_diff)) { $next_height = $dst_height; $next_width = round(($src_width * $next_height) / $src_height); $dst_width = (int)(!$ps_image_generation_method ? $dst_width : $next_width); } else { $next_width = $dst_width; $next_height = round($src_height * $dst_width / $src_width); $dst_height = (int)(!$ps_image_generation_method ? $dst_height : $next_height); } } if (!ImageManager::checkImageMemoryLimit($src_file)) { return !($error = self::ERROR_MEMORY_LIMIT); } //Set Imagick Object values /* $src_image = new Imagick(); $src_image->readImage($src_file); $src_image->setImageCompression(Imagick::COMPRESSION_JPEG); $src_image->setInterlaceScheme(Imagick::INTERLACE_PLANE); $src_image->setImageCompressionQuality(89); $src_image->sharpenimage(2, 0.5, 134217727); $src_image->gaussianBlurImage(0.03,0.03); $src_image->stripImage(); $src_image->thumbnailImage($dst_width, $dst_height, Imagick::FILTER_SINC, 1);*/ $src_image = new Imagick(); $src_image->readImage($src_file); $src_image->setImageCompression(Imagick::COMPRESSION_JPEG); /*$src_image->setImageFormat(‘png’);*/ /*$src_image->setInterlaceScheme(Imagick::INTERLACE_PLANE);*/ $src_image->setImageCompressionQuality(89); /*$src_image->sharpenimage(1.5, 0.5, Imagick::CHANNEL_ALL);*/ /* $src_image->gaussianBlurImage(0.03,0.03);*/ $src_image->stripImage(); $src_image->thumbnailImage($dst_width, $dst_height, Imagick::FILTER_LANCZOS, 1); $src_image->brightnessContrastImage(1,0,Imagick::CHANNEL_ALL); $src_image->gammaImage(0.9,Imagick::CHANNEL_ALL); $src_image->modulateImage(100,120,100); //Output the final Image using Imagick return $src_image->writeImage($dst_file); } } Como veis hemos creado la función resize2 que usará ImageMagick. Dejando el nombre resize arregla el backend. Pero no las masivas. Eso si, si sólo hacemos esto con otro nombre no usa resize2 al subir productos. Tenemos que indicarle que lo haga. Para eso. Hacer un override en override/controllers/admin/AdminProductsController.php  . Ahí hay 5 sitios en el que llama a resize. Cambia los 5 a la función anterior (pon un 2 y ya está si has usado nuestro método. Para las importaciones masivas desde ficheros CSV o Excel en el backend. Sólo modificando el ImageManager no arreglaba las importaciones masivas. Estas van “por otro lado”. Usaban en resize pero además el GD de nuevo. Para eso tenemos que hacer lo siguiente. Ahora copiamos el fichero controlador AdminImportController.php en override/controllers/admin/AdminImportController.php Lo editamos y veréis que hay dos sitios que usan la biblioteca resize. Para el resultado que queríamos el primero hay que dejarlo usando la original (con resize) y el segundo el resize2. Así: ImageManager::resize($tmpfile, $path.’.jpg’, null, null, ‘jpg’, false, $error, $tgt_width, $tgt_height, 5, $src_width, $src_height); $images_types = ImageType::getImagesTypes($entity, true); if ($regenerate) { $previous_path = null; $path_infos = array(); $path_infos[] = array($tgt_width, $tgt_height, $path.’.jpg’); foreach ($images_types as $image_type) { $tmpfile = self::get_best_path($image_type[‘width’], $image_type[‘height’], $path_infos); if (ImageManager::resize2( $tmpfile, $path.’-‘.stripslashes($image_type[‘name’]).’.jpg’, $image_type[‘width’], $image_type[‘height’], ‘jpg’, false, $error, $tgt_width, $tgt_height, 5, $src_width, $src_height Con esto nuestra imágenes han mejorado notablemente. Puedes

Trucos, Video

Cómo grabar sólo una parte de la pantalla con OBS Studio

Para grabar la pantalla del ordenador, y hacer nuestros vídeos tutoriales, usamos OBS Studio. Por defecto graba toda la pantalla. Os enseñamos a grabar sólo una parte. Cómo grabar sólo una parte de la pantalla con OBS Studio Para grabar sólo una parte de la pantalla en OBS tenemos que: pinchar en la fuente elegida ( Captura de pantalla). Pulsar la tecla ALT y, sin soltar pinchar en una de las esquinas del recuadro marcado y moverlo. Veréis que se reduce lo que grabamos de pantalla (en vez de redimensionar o mover el recuadro). Lamentablemente (hasta donde se) hay que ajustarlo “a ojo”. Es importante el orden que indicamos. Si no hará otra función como redimensionar o mover la fuente. Hay que pinchar habiendo pulsado antes ALT. También podéis pinchar con el botón derecho en la fuente y Filtros->+ ->Recortar/Acolchar. Con eso conseguís algo parecido. Aquí os lo mostramos.

Diseño Web, Gestores de contenidos

Cómo activar las Notificaciones Push en WordPress

¿Qué son las Notificaciones Push? Son esos avisos que te salen al entrar en una página web para Aceptar o Bloquear.  Si los aceptas, la página podrá mandarte avisos a través del navegador con noticias, nuevos posts, novedades etc. Es decir, es un método de comunicación entre una web y un usuario directamente en el navegador (algo que se usa constantemente), sin tener pop-ups  no deseados (estas las aceptas o bloqueas) ni correo spam. Hoy os enseñamos a activarlo en WordPress. Cómo activar las Notificaciones Push en WordPress. Lo primero es elegir un plugin para mandar esas notificaciones. Hay muchas opciones, tanto gratuitas como de pago. Os comentaremos las gratuitas y sus pros y contras. OneSignal. Teníamos que incluirlo el primero. Es sin duda el que da más opciones de maneraa gratuita, y uno de los más usados. De hecho explicaremos el proceso con este plugin. Pros: La cuenta gratuita no tiene límite de suscriptores (en algunas partes pone sin límite para móvil y 30.000 para web) ni límite de notificaciones. Esta es una GRAN ventaja ya que la competencia suele limitar alguna de estas opciones. Una cuenta se puede usar para varias webs. Cons: ¿Cuál es el truco? OneSignal vende los datos recopilados cuando usas su cuenta gratuita. Así lo mantiene y es su modelo de negocio, lo expone claramente: “Data from free plan users may be shared with advertising and research partners to help cover the cost of providing this service.” Esto implica que tendrás, si aceptas usar la gratuita, que cambiar tu política de privacidad para reflejar esta cesión. Si quieres usar la de pago, no ceden datos (en teoría) pero tiene límites. SendPulse.  Sin límite de suscriptores. Sin límite de notificaciones. También pueden ceder información a terceros y añadir publicidad suya en tus notificaciones en la cuenta gratuita. PushEngage: El gratuito permite 2500 suscriptores sin límite de envíos. Push Notifications for WordPress Lite: 1000 notificaciones por plataforma (iOS, Android etc) por cada post. PushMonkey: Hasta 100 suscriptores. El segundo paso sería configurar el plugin. Vamos a usar OneSignal como ejemplo. Descargamos e instalamos el plugin elegido. Creamos una cuenta en OneSignal. Pinchamos en Add App y ponemos un nombre. Por ejemplo el de la web. Elegimos el tipo de plataforma (Web Push en este caso). Configuramos el tipo de Web Push. En este caso elegimos WordPress como tipo de web y WordPress como CMS. Configuramos los datos de nuestra web. Una vez hecho esto obtendras un  APP ID y un API KEY. Cópialos. Ve a WordPress, a la configración del plugin y pega ahí estos datos. Con esto se activan las notificaciones para Chrome y Firefox. Ahora vuele al panel de OneSignal y verás que en la App de deja activar Safari. Hazlo, pon la configuración  te da un Web ID. Vuelve al plugin y pone el Web ID debajo de los IDs anteriores para activar Safari. Ahora en el plugin configura las opciones. Sugerimos activar la opción “Automatically prompt new site visitors to subscribe to push notifications”  para que avise a cada usuario nuevo para que se suscriba. Y también la de las notificaciones automáticas cada vez que publicas un post para que tus suscriptores reciban las noticias. Con esto ya lo tienes. Pruébalo y a comunicarte con tus usuarios. Recuerda que desde Messages del panel de OneSignal puedes mandar mensajes a tus suscriptores (con noticias).

Linux, Trucos

Excluir directorios en las búsquedas con find en Linux. Prune y -not -path

En ocasiones tienes que buscar ficheros en un árbol de directorios Linux, pero quieres excluir directorios de la búsqueda. ¿Cómo se hace con find? Hoy te lo contamos. Cómo excluir directorios de las búsquedas con find en Linux. Tienes varias opciones, os dejamos dos de las más usadas -prune  y -not -path de find. -prune. La opción -prune le dice a find que no descienda por ese directorio.  Vamos a ver ciertos ejemplos. Recordamos que $ find . -name prueba busca todo con nombre prueba.- $ find . -name prueba -prune   Esto dice que busque todo con nombre prueba y no descienda por los directorios con ese nombre. – $ find ./* -prune  Aquí find mostrará el contenido del directorio actual pero no descenderá por sus directorios (por prune).¿Cómo hacer que con prune se puedan omitir ciertos directorios y  muestre otros? Con la opción -o -print   . -o es un OR, con lo que podemos poner más comandos que no sigan la pauta del prune. -print muestra el contenido. Ejemplos: -$ find . -name prueba -prune -o -print Esto excluye el directorio prueba y muestra el resto. Es como si dijera “encuentra prueba, no bajes por ahí, y muestra todo lo demás”. – $ find . -name prueba -prune -print -o -print Encuentra todo lo que sea prueba, no desciendas por ahí pero muéstramelo y luego muestra el resto. Es igual que el anterior pero muestra los resultados prueba encontrados. – $ find . -type d -name Azul -prune -o -name “*.jpg” -print Esto busca todos los ficheros con extensión jpg excepto los que están en el directorio Azul. Con esto podéis crear vosotros las combinaciones que os hagan falta. -not -path. Path te permite buscar en una ruta, -not -path te excluye esa ruta. Así que find /home/user/pedro -type f -not -path “*doc/texto*” -not -path “*images/texto*” Busca todos los ficheros en el directorio pedro que no tengan las rutas indicadas. Uno de los problemas que tiene path es que va a tardar  más porque comprueba en todas las búsquedas si cumple la cadena en -not -path. Podemos optimizarlo usando una combinación de ambos comandos: find . -path ./docs/privados -prune -o -print Esto evita el directorio docs/privados y todo lo que haya debajo (prune hace que no descienda por él) y muestra todo lo demás.

Trucos, Video

Cómo añadir una pantalla de título en un vídeo con Shotcut

Cuando editas vídeo a veces quieres añadir un título antes, después y en medio del mismo. Para ello obviamente recomendamos haber visto antes cómo insertar texto con Shotcut. Pero ese vídeo era para superponer texto, hoy queremos enseñaros a añadir títulos. Cómo añadir títulos a un vídeo con Shotcut. Podemos usar un truco similar al de nuestro vídeo anterior, y crear una imagen con el fondo que queramos e insertarla. Pero me parece más elaborado, sobre todo cuando hay una manera más directa desde el propio programa. Para ello tenemos que: abrir Shotcut e insertar en la línea de tiempo el vídeo que queremos. Después colocamos el cursor en la línea de tiempo donde queremos insertar el título.. Vamos a Archivo>Abrir otro>Color Ahí elegimos el color que queremos y damos a aceptar. Conviene luego reducir el tamaño del vídeo (un fondo de ese color) que esto nos crea, aunque se puede hacer más tarde. Después, con el cursor donde queríamos divide el vídeo y dale a la tecla v. Esto inserta el vídeo en ese espacio. Añade el texto (normal o 3D). Corta lo que necesites y pon los efectos necesarios. Y ya lo tienes.  

Diseño Web, Prestashop, Trucos

Cómo insertar un vídeo en un producto o módulo de Prestashop

Nos lo ha pedido algún cliente, somos muy vagos y creamos un vídeo para no explicarlo cada vez. Cómo insertar un vídeo en un producto de Prestashop. Sirve lo mismo para un módulo de las barras laterales o del contenido. Sólo tienen que tener editores html El vídeo se puede insertar en el resumen como en la descripción. Tienes dos métodos. Insertar la URL. Casi todos los editores tienen un botón para insertar vídeo. Sólo tienes que copiar la URL (dirección del navegador) de tu vídeo y pegarlo en la ventana que salga al pinchar en ese botón. En Prestashop además te deja cambiar el tamaño y la imagen que presenta el vídeo (si no pones una usa la de Youtube o Vimeo). El mayor problema es que, una vez hecho, si quieres modificar, tienes que editar código o borrar el vídeo y volver a ponerlo. Y que el resultado no suele ser responsive (cuidado con el tamaño que pongas). Incrustar vídeo (embed). El segundo método es más laborioso pero lo usamos cuando no funciona el anterior (sólo es compatible con ciertos servicios de vídeo) o cuando queremos personalizar más lo que insertamos (por ejemplo hacer Youtube responsive). Para ello vamos a pinchar en el botón de Compartir en Youtube (no todos los vídeos lo tienen, tiene que aprobarlo el creador) y elegir la opción Insertar. Ahí veras un código que tienes que copiar  y pegar en Prestashop>Insertar /Editar Video>Incrustar. En ese iframe podemos personalizar width y height y poner CSS y otros cambios.

Trucos, Video

Cómo girar vídeos de vertical a horizontal, con Shotcut

A quién no le ha pasado, o por error o por desconocimiento: nos equivocamos y el vídeo que creíamos se estaba grabando en horizontal sale torcido. “Hay un infierno reservado para la gente que graba los vídeos en vertical”. Y no podemos subirlo a ningún sitio ni verlo sin generar tortícolis. Ahora tenemos que girarlo, ¿cómo lo hacemos? Hoy os enseñamos a hacerlo. Cómo girar vídeos de vertical a horizontal con Shotcut. Para girar el vídeo vamos a usar Shotcut, un editor de vídeo gratuito muy potente y que nosotros usamos mucho. Así que lo primero que tenéis que hacer es bajaros el programa e instalarlo. Una vez abierto el programa, no importéis el vídeo directamente. Shotcut pone las dimensiones de trabajo del primero elemento importado. Así que si subimos el vídeo quedará con la anchura del vídeo vertical. Vamos a “engañarlo” subiendo una imagen con las dimensiones del FullHD. Así que busca en Google una imagen de las dimensiones que quieras. En este momento 1980×1080 está muy bien. Descargar una imagen (la que sea) así, súbela al programa y ponla en la línea de tiempo. Ya tienes el espacio de trabajo con 1980×1080. Ahora puedes importar el vídeo y ponerlo en la línea de tiempo. Borrar la imagen y quédate con el vídeo. Selecciónalo en la línea de tiempo. Ahora ve a Filtros>Rotar. Rota el vídeo (normalmente 270º). Ya lo tienes rotado pero no ocupa el espacio de trabajo. Sube la escala para que ocupe todo el espacio, normalmente un 200%. Ya lo tienes, edita lo que necesites y ahora exporta el vídeo. Sencillo y con resultados excelentes. PD: añado una muy buena aclaración que nos han puesto en el vídeo de Youtube: En realidad no tienes que hacer todo eso de descargar una imagen en línea e introducirla en Shotcut para conseguir la relación de aspecto que quieres. Lo que simplemente tienes que hacer es antes de agregar el video a Shotcut, ve a “Modo de Vídeo” en el menú “Preferencias”. De ahí elige el perfil que coincide con lo que quieres hacer con tu proyecto. Si por causalidad no encuentras el perfil que quieres ve en ese mismo menú a “Personalizado” para crear uno. El estándar en Shotcut en Modo de Vídeo es “Automático” que significa que el proyecto tomara el perfil de video completo del primer video que introduces. Eso lo puedes ver reflejado en el menú Exportar bajo la pestaña Vídeo.

Diseño Web, Prestashop, Trucos

Campos obligatorios en el registro de Prestashop: DNI, teléfono, código postal

Esto debería ser fácil, deberías poder entrar en la configuración de Prestashop y marcarlo. Pero no… Estar está ahí, pero parece que lo han escondido a conciencia. Os decimos cómo seleccionar los campos que queréis que sean obligatorios en el registro de Prestashop. Campos obligatorios en el registro de Prestashop DNI, teléfono código postal. Método 1. Para seleccionar que campos, dentro de los que deja Prestashop, son obligatorios en el registro de Prestashop tienes que ir al backend a Clientes > Direcciones. Ahí aparece todas las listas de direcciones de clientes registrados y, al final (casi para pasar desapercibido, tienes un campo recogido con un +, llamado Establecer los campos requeridos para esta sección. Pincha en el más y verás una serie de campos que puedes seleccionar. Siempre es mejor hacerlo de esta manera porque no retocas ni el sistema ni la plantilla. Nota: esto debería funcionar en teoría. A nosotros en la 1.7.42 se nos marca la casilla (teléfono) pero al refrescar se desmarca. No hay manera. Usamos el modo 2. Método 2. Si esto no te vale, o necesitas algún otro campo puedes hacerlo de esta manera. Primero tienes que ver si es un campo de cliente o de dirección. Por ejemplo teléfono es de dirección. Los campos de dirección están en Address.php y el de cliente en Customer.php, ambos en el directorio clases. Te ponemos el ejemplo con el de cliente (es lo mismo en Address). Copia el fichero classes/Customer.php en la carpeta override/classes/Customer.php Edita el fichero. Donde pone /**     * @see ObjectModel::$definition     */    public static $definition = array(        ‘table’ => ‘customer’,        ‘primary’ => ‘id_customer’, Vienen todos los campos. Sólo tienes que poner ‘required’ => true al final del campo que quieras que sea obligatorio. Por ejemplo si quieres la empresa obligatorio cambias: ‘company’ =>array(‘type’ => self::TYPE_STRING, ‘validate’ =>’isGenericName’), por ‘company’ =>array(‘type’ => self::TYPE_STRING, ‘validate’ => ‘isGenericName’,’required’ => true), Algún campo puede requerir más modificaciones porque impliquen algún otro campo más (por ejemplo el cumpleaños incluye año, mes y día). Una vez hecho este cambio, da un error 500 si intentas dejar vacío el campo. En Address.php hay que modificar el fichero AddressFormat.php (copialo antes a override/classes) y meter el valor en el array required. Por ejemplo aquí meto al final el phone: /** @var array Default required form fields list */ public static $requireFormFieldsList = array( ‘firstname’, ‘lastname’, ‘address1’, ‘city’, ‘Country:name’, ‘phone’, ); En Customer.php hay que buscar la clase que valida y hacer lo mismo.

Scroll al inicio