Blog

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

Comandos útiles para Magento 2

Llevamos un tiempo manejando Magento 2, y muchas de las acciones hay que hacerlas por línea de comandos. Así que, para referencia nuestra, y por si os viene bien a alguno, os dejamos un resumen de los comandos más útiles y usados. Comandos más útiles en Magento 2. Os dejamos los más usados (e iremos ampliando): php bin/magento setup:upgrade : actualiza la configuraciónSi quieres conserva los ficheros estáticos puedes ejecutar: php bin/magento setup:upgrade –keep-generated php bin/magento setup:di:compile : ejecuta el compilador php bin/magento setup:static-content:deploy : deploy para el lenguaje por defecto (en_US).Si quieres forzarlo puedes poner: php bin/magento setup:static-content:deploy -fPuedes hacerlo para un tema concreto: php bin/magento setup:static-content:deploy –theme Magento/tema php bin/magento setup:static-content:deploy es_ES : deploy para un idioma específico (puedes cambiar el idioma del final). php bin/magento cache:clean : borra (purga) la cache por etiquetas.Puedes especificar el tipo de caché a vaciar poniendo php bin/magento cache:clean [type] …[type]Los tipos se separan con espacios y son los siguientes: Tipos: config, layout, block_html, collections, reflection, db_ddl, compiled_config, eav, customer_notification, config_integration, config_integration_api, full_page, config_webservice, translate php bin/magento cache:flush : borra la caché completamente.Puedes especificar el tipo de caché a vaciar poniendo php bin/magento cache:flush [type] …[type]Los tipos se separan con espacios y son los mismos que en cache:clean (encima) php bin/magento cache:enable : habilita la caché.También admite los type como en las dos opciones anteriores. php bin/magento cache:disable : deshabilita la caché.También admite los type como en las opciones anteriores. NOTA: Es muy normal que se ejecuten los siguientes comandos juntos tras un cambio en la configuración: php bin/magento setup:upgradephp bin/magento setup:di:compilephp bin/magento setup:static-content:deployphp bin/magento cache:cleanphp bin/magento cache:flush php bin/magento indexer:status : ver el estado de los índices de búsqueda. php bin/magento indexer:show-mode : muestra el estado de los índices. Reindexar los índices (para las búsquedas): php bin/magento indexer:resetphp bin/magento indexer:reindexphp bin/magento cache:cleanphp bin/magento cache:flush php bin/magento module:status : ver el estado de los módulos (cuáles están activos y cuáles no). php bin/magento module:enable Namespace_Module : Habilitar un módulo. Namespace_Module es el nombre del mismo como aparece en module:status (encima). php bin/magento module:disable Namespace_Module : Deshabilitar un módulo. php bin/magento module:uninstall Namespace_Module : Desinstalar un módulo. php bin/magento deploy:mode:show : Consulta el modo de funcionamiento de Magento activo. php bin/magento deploy:mode:set developer : Activa el modo desarrollo. php bin/magento deploy:mode:set production : Activa el modo producción. php bin/magento maintenance:enable : Activa el modo mantenimiento.Si quieres sólo habilitarlo excepto para ciertas IPs ponlas así: php bin/magento maintenance:enable –ip=x.x.x.x –ip=y.y.y.y. php bin/magento maintenance:disable : Desactiva el modo mantenimiento. php bin/magento maintenance:status : Estado del modo mantenimiento. php bin/magento admin:user:unlock adminusername : Desbloquear un usuario administrador. Más información aquí.

Internet, Soporte

Códigos de error de Redsys.

Actualizado 01/06/2022 Las tiendas online han tenido mucho auge con el tema del coronavirus (para muchos han sido la única manera de sobrevivir).Muchas de estas tiendas tienen un TPV virtual con su banco, y el más común es Redsys. Al recibir pagos con tarjeta, estos pagos pueden ser rechazados por muchos motivos (mal código CVV , fecha errónea, datos erróneos, problemas de comunicación etc etc). Redsys devuelve estos errores como un código en una notificación. Cuando recibes este pedido cancelado, si quieres ver por qué ha sido, tienes que: Comprobar el código de error de Redsys en la notificación (correo o sms). Puedes entrar en el panel de Redsys (el de producción) que te han enviado. Ahí podrás ver más información…pero básicamente verás el mismo código. Como todo se basa en el código de error, teníamos pendiente escribir un artículo sobre los mismos, que puedes ver aquí. A ver..no es que den muchísima más información. Pero en algún caso algo aclara. Códigos de error de Redsys. Código de error Error SIS0XXX Descripción 8102 Operación que ha sido redirigida al emisor a autenticar EMV3DS V1.0.2 (para H2H) 8210 Operación que ha sido redirigida al emisor a autenticar EMV3DS V2.1.0 (para H2H) 8220 Operación que ha sido redirigida al emisor a autenticar EMV3DS V2.2.0 (para H2H) 9001 SIS0001 Error Interno 9002 SIS0002 Error genérico 9003 SIS0003 Error genérico 9004 SIS0004 Error genérico 9005 SIS0005 Error genérico 9006 SIS0006 Error genérico 9007 SIS0007 El mensaje de petición no es correcto, debe revisar el formato 9008 SIS0008 falta Ds_Merchant_MerchantCode 9009 SIS0009 Error de formato en Ds_Merchant_MerchantCode 9010 SIS0010 Error falta Ds_Merchant_Terminal 9011 SIS0011 Error de formato en Ds_Merchant_Terminal 9012 SIS0012 Error genérico 9013 SIS0013 Error genérico 9014 SIS0014 Error de formato en Ds_Merchant_Order 9015 SIS0015 Error falta Ds_Merchant_Currency 9016 SIS0016 Error de formato en Ds_Merchant_Currency 9018 SIS0018 Falta Ds_Merchant_Amount 9019 SIS0019 Error de formato en Ds_Merchant_Amount 9020 SIS0020 Falta Ds_Merchant_MerchantSignature 9021 SIS0021 La Ds_Merchant_MerchantSignature viene vacía 9022 SIS0022 Error de formato en Ds_Merchant_TransactionType 9023 SIS0023 Ds_Merchant_TransactionType desconocido 9024 SIS0024 El Ds_Merchant_ConsumerLanguage tiene mas de 3 posiciones 9025 SIS0025 Error de formato en Ds_Merchant_ConsumerLanguage 9026 SIS0026 Problema con la configuración 9027 SIS0027 Revisar la moneda que está enviando 9028 SIS0028 Error Comercio / terminal está dado de baja 9029 SIS0029 Que revise como está montando el mensaje 9030 SIS0030 Nos llega un tipo de operación errónea 9031 SIS0031 Nos está llegando un método de pago erróneo 9032 SIS0032 Revisar como está montando el mensaje para la devolución. 9033 SIS0033 El tipo de operación es erróneo 9034 SIS0034 error interno 9035 SIS0035 Error interno al recuperar datos de sesión SIS0036 Error al tomar los datos para Pago Móvil desde el XML 9037 SIS0037 El número de teléfono no es válido 9038 SIS0038 Error genérico 9039 SIS0039 Error genérico 9040 SIS0040 El comercio tiene un error en la configuración, tienen que hablar con su entidad. 9041 SIS0041 Error en el cálculo de la firma 9042 SIS0042 Error en el cálculo de la firma 9043 SIS0043 Error genérico 9044 SIS0044 Error genérico SIS0045 Error genérico 9046 SIS0046 Problema con la configuración del bin de la tarjeta 9047 SIS0047 Error genérico 9048 SIS0048 Error genérico 9049 SIS0049 Error genérico 9050 SIS0050 Error genérico 9051 SIS0051 Error número de pedido repetido 9052 SIS0052 Error genérico 9053 SIS0053 Error genérico 9054 SIS0054 No existe operación sobre la que realizar la devolución 9055 SIS0055 existe más de un pago con el mismo número de pedido 9056 SIS0056 Revisar el estado de la autorización 9057 SIS0057 Que revise el importe que quiere devolver( supera el permitido) 9058 SIS0058 Que revise los datos con los que está validando la confirmación 9059 SIS0059 Revisar que existe esa operación 9060 SIS0060 Revisar que exista la confirmación 9061 SIS0061 Revisar el estado de la preautorización 9062 SIS0062 Que el comercio revise el importe a confirmar. 9063 SIS0063 Que el comercio revise el númer de tarjeta que nos están enviando. 9064 SIS0064 Número de posiciones de la tarjeta incorrecto 9065 SIS0065 El número de tarjeta no es numérico 9066 SIS0066 Error mes de caducidad 9067 SIS0067 El mes de la caducidad no es numérico 9068 SIS0068 El mes de la caducidad no es válido 9069 SIS0069 Año de caducidad no valido 9070 SIS0070 El Año de la caducidad no es numérico 9071 SIS0071 Tarjeta caducada 9072 SIS0072 Operación no anulable 9073 SIS0073 Error en la anulación 9074 SIS0074 Falta Ds_Merchant_Order ( Pedido ) 9075 SIS0075 El comercio tiene que revisar cómo está enviando el número de pedido 9077 SIS0077 El comercio tiene que revisar el número de pedido 9078 SIS0078 Por la configuración de los métodos de pago de su comercio no se permiten los pagos con esa tarjeta. 9079 SIS0079 Error genérico 9080 SIS0080 Error genérico 9081 SIS0081 Se ha perdico los datos de la sesión 9082 SIS0082 Error genérico 9083 SIS0083 Error genérico 9084 SIS0084 El valor de Ds_Merchant_Conciliation es nulo. 9085 SIS0085 El valor de Ds_Merchant_Conciliation no es numérico. 9086 SIS0086 El valor de Ds_Merchant_Conciliation no ocupa 6 posiciones. 9087 SIS0087 El valor de Ds_Merchant_Session es nulo. 9088 SIS0088 El comercio tiene que revisar el valor que envía en ese campo. 9089 SIS0089 El valor de caducidad no ocupa 4 posiciones. 9090 SIS0090 Error genérico. Consulte con Soporte. 9091 SIS0091 Error genérico. Consulte con Soporte. 9092 SIS0092 Se ha introducido una caducidad incorrecta. 9093 SIS0093 Denegación emisor 9094 SIS0094 Denegación emisor 9095 SIS0095 Denegación emisor 9096 SIS0096 El formato utilizado para los datos 3DSecure es incorrecto 9097 SIS0097 Valor del campo Ds_Merchant_CComercio no válido 9098 SIS0098 Valor del campo Ds_Merchant_CVentana no válido 9099 SIS0099 Error al interpretar respuesta de autenticación 9103 SIS0103 Error al montar la petición de Autenticación 9104 SIS0104 Comercio con “titular seguro” y titular sin clave de compra segura 9112 SIS0112 Que revise que está enviando en el campo Ds_Merchant_Transacction_Type. 9113 SIS0113 Error interno 9114 SIS0114 Se está realizando la llamada por GET, la tiene que realizar por POST 9115 SIS0115 Que revise los datos de la operación que nos está

Gestores de contenidos, Soporte, Trucos

Moodle muestra las imágenes corruptas tras una migración: solución.

Hace unos días migramos un Moodle de un alojamiento a otro. Estas migraciones las hacemos constantemente, y no suele haber problemas. Sin embargo está si que los dio: en el nuevo alojamiento las imágenes aparecían pixeladas, y verdes. En definitiva corruptas. Os mostramos un ejemplo. Se podía también ver porque si entrabas en el backend y activabas el modo debug salían unos errores de visualicación de imagen donde indicaban que la imagen estaba dañada. Además, si intentabas descargar la imagen desde el backend, no podías reproducirla. Solución. Las imágenes en Moodle están cifradas con un hash SH1. Puedes ver más información aquí: https://docs.moodle.org/dev/File_API_internals#File_API_internals Esto lo hacen para que una imagen sólo tenga que guardarse una vez aunque se referencie muchas veces en el sitio, incluso con distinto nombre. Como se hace en el control de versiones de git, por ejemplo. Además, quiere decir que, entre otras cosas, se puede comprobar si un fichero está dañado o no con el comando sha1sum de Linux. Pero, para el caso que nos ocupa, también quiere decir que no puede haber ninguna modificación en la transferencia de los archivos por FTP. Esto quiere decir, a modo práctico, que tienes que forzar en tu programa de FTP, por ejemplo en Filezilla, que la transferencia sea en modo Binario y no en Ascii o Auto. Los dos modos anteriores puede corromper las imágenes. Para hacerlo en Filezilla sólo tienes que ir a Edición > Opciones > Transferencias > FTP: Tipos de archivo y en Tipo de transferencia predeterminada ponerlo en Binario.Luego tienes que volver a descargar todas las imágenes de nuevo (el directorio data de Moodle) e importarlas otra vez. Verás que al hacerlo tendrás las imágenes sin corromper en el nuevo site.

Diseño Web, Sistemas, Webs

Booked: aplicación web opensource para gestionar reservas de recursos.

Hace unos días un conocido me mencionó esta aplicación web de reservas y, desde entonces, lo he usado para algún proyecto. En estos días del coronavirus, hay necesidad de aplicaciones para gestionar reservas de espacios físicos (habitaciones, espacios, máquinas…). Y Booked es perfecto para ello.Nota: desde el 01/11/2020 la aplicación sólo se mantiene desde Github (https://github.com/LibreBooking/app) ya que los desarrolladores lo han vuelto de pago. Cuando te planteas una aplicación de reservas tienes básicamente tres opciones: Booked: aplicación web gratis para reserva de recursos. Booked es una aplicación PHP y SQL de reservas web, con un calendario y todos los recursos necesarios para añadir un número ilimitado de recursos, con las opciones que necesites. El programa está disponible desde hace más de 10 años, con actualizaciones constantes. Traducido a casi 40 idiomas, sin límites de recursos, reservas o usuarios. Tiene un sistema de informes muy completo, integración con Outlook y Google Calendar, se puede acceder con Facebook y Google, personalizar el aspecto, integración con sistemas de pago… y mucho más.Al ser PHP, puedes personalizarlo a tu gusto. Tenéis una DEMO aquí: https://demo.bookedscheduler.com/Web/?

Sistemas, Soporte, Trucos

Copiar subdirectorios en Windows por terminal con xcopy

Hace unos días teníamos que rescatar la información de un disco duro dañado. Cada vez que intentábamos acceder por Windows se “colgaba”. Pero por línea de comandos, si se enfriaba antes el disco (truco de IT) conseguíamos que durara lo suficiente para transferir la información. Para ello usamos xcopy por terminal con la opción de copiar subdirectorios. Os lo dejamos aquí por si tenéis que usarla vosotros. Cómo copiar subdirectorios con xcopy. El las opciones de xcopy que usamos para copiar subdirectorios y su contenido fueron: xcopy origen destino /E /H /C /I Explicamos las opciones. /E : Copia directorios y subdirectorios incluidos los vacíos (/s sólo copia los que no están vacíos). /H: copia también los archivos ocultos y de sistema. /C: Sigue copiando incluso si ocurre un error (si ocurre pasa al siguiente archivo). /I: si no tiene destino al copiar, asume que el destino es un directorio. El comando anterior NO COPIA permisos de NTFS ni de compartición. Si quieres copiar los permisos usa: xcopy origen destino /O /X /E /H /K Los nuevos delimitadores son: /O: Copia el dueño del archivo y la información ACL. /K: copia los atributos del fichero (xcopy los resetea normalmente). /X: copia la configuración de auditoría (implica /O). Si lo que quieres es recrear una estructura de directorios, pero no copiar el contenido, se puede hacer con xcopy de la siguiente manera: xcopy origen destino /T /E Donde /T: copia los subdirectorios pero no los ficheros.

Diseño Web, Gestores de contenidos

Módulo gratuito Banner en el carrito para Prestashop 1.7.

Hoy os dejamos un recurso gratuito para Prestashop 1.7 que ha salido hace poco. Desarrollado por Prestashop. Es un módulo llamado Banner en el carrito. Lo que hace es que te permite poner avisos cuando el cliente llega al carrito. El aviso sale como un banner en la parte superior del carrito y es adaptable para móviles. Además de ser multilingüe. Con este banner podrás: Poner recordatorios o alertas para tus clientes Avisar de ofertas especiales. Animar a tus clientes a tener conciencia ecológica reduciendo los paquetes agrupando los pedidos. Y mucho más… Así, podrás mantener a tus clientes informados, alertarles de cualquier promoción o problema con la tienda e incentivar más compras. ¡Y gratis!

Sistemas, Trucos

Cómo ver cuánto tiempo lleva un ordenador Windows encendido.

En ocasiones queremos ver cuánto tiempo lleva un ordenador Windows encendido. Ya sea por temas de control o auditoría, o para ver si le estamos exigiendo demasiado y debemos dejarlo descansar. En Linux es muy sencillo, en Windows algo más complicado, os dejamos 2 métodos gráficos y dos métodos por comandos. Modo gráfico. Puedes verlo abriendo el Administrador de Tareas (botón derecho en la barra de Windows->Administrador de Tareas), si vas a Rendimiento y luego a CPU. Debajo pone el tiempo que lleva encendido la CPU. También si vas a tu conexión de red y haces doble click, te dice el tiempo que lleva funcionando. Por línea de comandos en CMD o Powershell. Por línea de comandos puedes usar CMD o Powershell. CMD Por cmd (Inicio->Ejecutar->cmd) podéis ejecutar lo siguiente: systeminfo | find “Tiempo de arranque del sistema” POWERSHELL. Tenéis dos opciones: (get-date) – (gcim Win32_OperatingSystem).LastBootUpTime Get-CimInstance -ClassName win32_operatingsystem | select csname, lastbootuptime Lo explicamos en el siguiente vídeo.

Diseño Web, Gestores de contenidos, Soporte

Magento 2: RedSys. Pedidos se quedan pendientes y tras el pago,lleva a una página a una página con error.

Si tienes Magento con el módulo oficial de RedSys puede que te esté ocurriendo este error. Los pagos están entrando, se reciben, pero el pedido se queda pendiente y al cliente le devuelve a una página con error. La causa de esto es que el módulo está mal, tiene definidas 3 páginas de “callback” (retorno): DS_MERCHANT_MERCHANTURL, DS_MERCHANT_URLOK y DS_MERCHANT_URLKO Estas páginas son las de la tienda, las de pedido correcto y las de pedido erróneo. Pero el plugin tiene definida la misa url (dirección) para todas estas páginas. Os enseñamos a corregirlo. Solución. Tenemos que modificar el fichero /app/Code/Redsys/Redsys/Controller/RedSysController.php y añadir las direcciones. Una manera de hacerlo es: Encontrad donde pone  $urlTiendaOK=$this->_baseURL.”redsys/index/notify”; y añadid justo después las siguientes dos líneas (dos variables):    $urlTiendaOK=$this->_baseURL.”checkout/onepage/success”;    $urlTiendaKO=$this->_baseURL.”checkout/onepage/failure”; Id a donde pone: $miObj->setParameter(“DS_MERCHANT_URLOK”,$urlTienda);$miObj->setParameter(“DS_MERCHANT_URLKO”,$urlTienda); y cambiadlo por $miObj->setParameter(“DS_MERCHANT_URLOK”,$urlTiendaOK);$miObj->setParameter(“DS_MERCHANT_URLKO”,$urlTiendaKO); De esta manera tiene las nuevas direcciones a las que ir cuando el pago sea exitoso o no. Probad ahora un pago, veréis como llega bien a Magento, el pedido pasa a su estado pagado y el cliente recibe el mensaje de “pago correcto”.

Diseño Web, Gestores de contenidos, Trucos

WooCommerce: hacer que el estado del pago contrareembolso sea “En Espera” en vez de Procesando.

Hoy os vamos a dejar un pequeño código para cambiar el estado de los pedidos realizados en WooCommerce con el método de pago contrareembolso. No estamos arreglando un error, el sistema funciona correctamente. Es una modificación para ciertas tiendas que necesiten algo especial.En la mayoría de los casos, cuando un pedido se hace contrareembolso, es normal que su estado sea Procesando porque el pedido debe enviarse. No tiene que esperar a nada. Se pagará al recibir el pedido. Pero, en ciertos casos, se usa este método de pago como “pago en tienda” o “pago en mano”. En estos casos, especialmente si el pedido da acceso a descargas o productos virtuales, el pedido no debería ser Procesando (porque dicho estado da acceso al material online). Es mejor que se quede “En Espera” hasta que se procese el pago. Estos días hemos tenido un caso parecido, y lo hemos arreglado generando un código (modificado de uno que encontramos en Internet) que afecta sólo a este tipo de pedidos. Os lo vamos a dejar por si os sirve (y porque no nos resultó fácil encontrar la solución). Como siempre, el código debe insertarse en el functions.php del tema hijo, o en un plugin como Code Snippets. Código para poner el pedidos pagados por contrareembolso como En Espera en WooCommerce. El código es el siguiente: function wooc_cod_status( $status ) {return ‘on-hold’;}add_filter( ‘woocommerce_cod_process_payment_order_status’, ‘wooc_cod_status’, 15 ); Cuando lo apliquéis, haced una prueba con ese método de pago. Como veis usa un hook de WooCommerce woocommerce_cod_process_payment_order_status y, a fecha del artículo, está probado y funcionando.

Artículos subvencionados, Seguridad, Sistemas, Trucos

Conectar un firewall Fortigate con Windows Active Directory.

Si has instalado en tu red un firewall de Fortigate (muy recomendable) y tienes un Windows Server, es interesante conectar ambos. De esta manera, por ejemplo, puedes crear usuarios de VPN que sean los de Active Directory, o poner reglas de bloqueo o de exclusión para grupos de AD. Te permite no tener duplicidad de cuentas, y gestionar las mismas desde el servidor.Hoy os enseñamos a conectar ambos sistemas. Cómo conectar un firewall Fortigate con Windows Active Directory. Lo que tenemos que hacer es entrar en el Fortigate y: Acceder a User & Device > LDAP Servers > Create New. Poner el nombre, la IP del servidor y el puerto (389 por defecto). En Common Name Identifier poned: sAMAccountName En Distinguished Name poned: dc=dominio,dc=local Nota: supongo que es dominio.local tu dominio Bind Type: Regular Pon tu usuario en format Administrador@dominio.local Pon la contraseña Si le das a Test Connectivity o Test User Credentials debería dar un tic verde de Successful. Con esto ya debería estar. Dale a Ok y lo guardas. Nota: En teoría puedes poner en Common Name Identifier: cn (como viene por defecto), y entonces el username tiene que ser en formato DN (cn=Administrator,CN=Users,DC=empresa1,DC=dominio,DC=local), pero a mi me funcionó la configuración anterior mejor. Una vez añadida la conectividad con el servidor de Active Directory, puedes ir a User & Device > User Groups para crear los grupos que necesites usando el active directory (por ejemplo usuarios de VPN, usuarios con permisos especiales etc). Cada grupo puede usar un CN del AD diferente. Para más información de lo que puedes hacer con esta conexión con el AD puedes ver este enlace.

Scroll al inicio