Descuadre en el pago por PayPal por bug en el redondeo.

Este post es más un recordatorio para mi que otra cosa. De hecho no es una publicación propia, sino la solución a un problema que he encontrado en otro blog y que me ha salvado la vida.

Hace poco he tenido un problema con el pago de pedidos en Prestashop mediante el módulo de PayPal. Se trata de un descuadre de céntimos que hace que Prestashop no valide el pedido y pase a un estado de “Error en el Pago” aunque este se haya completado correctamente.

Buscando la causa y una posible solución me he encontrado con un post magnífico que nos ofrece detalles sobre este bug de PayPal y una solución en forma de parche.

Se trata de modificar el archivo: paypal/express_checkout/procces.php del módulo de PayPal para pasar el importe exacto de producto que debe cobrar en lugar del desglose de los mismos, ya que, independientemente de como tengamos configurado el redondeo en nuestra tienda, el módulo de PayPal aplica el redondeo por línea lo que motiva el descuadre en el cobro.

Pero mejor que veáis el problema y su solución detallada en el post original de su autor que para eso se lo ha currado:

https://prestamarketing.com/blog/bug-arreglado-pedidos-pagados-paypal-dan-error-pedido-prestashop/

Anuncios
Publicado en Prestashop | Etiquetado , , , | Deja un comentario

Como añadir nuevos campos de datos en las plantillas de email

En Prestashop, los contenidos de los emails del sistema o de alerta son generados utilizando una plantilla de email. Estas plantillas se pueden editar desde el menú localización>traducciones. Los campos de datos están representados en las plantillas por palabras clave entre llaves como, por ejemplo, {reference}, {invoice_date} o {delivery_phone} que son reemplazadas por datos de la base de datos cuando se envía el email.
Seguir leyendo

Publicado en Prestashop | Etiquetado , , , | Deja un comentario

Añadir el teléfono del cliente al PDF del albarán en Prestashop

Bueno, como ya sabemos como incluir el identificador de pedido en el PDF de la orden de envío o albarán de Prestashop para facilitar la búsqueda, ahora voy a explicar como incluir el teléfono del cliente que también me parece interesante.

Esta es una variante que he encontrado en los foros de Prestashop publicada por PascalVG, un moderador. Pongo esta porque si el teléfono fijo está disponible, se muestra el teléfono, de lo contrario se muestra el teléfono móvil. Esto se puede invertir como he hecho yo para que siempre que sea posible muestre el número móvil.

Primero editamos el archivo:classes/pdf/HTMLTemplateDeliverySlip.php (hacemos un backup, por si las moscas…)

Buscamos el siguiente código dentro de la función: public function getContent() y añadimos el código en negrita:

$this->smarty->assign(array(
‘order’ => $this->order,
‘order_details’ => $this->order_invoice->getProducts(),
‘delivery_address’ => $formatted_delivery_address,
‘invoice_address’ => $formatted_invoice_address,
‘order_invoice’ => $this->order_invoice,
‘carrier’ => $carrier , // <– No os olvidéis de colocar la coma aquí!!
‘delivery_phone’ => (!empty($delivery_address->phone) ? $delivery_address->phone : $delivery_address->phone_mobile)
));

Guardamos el archivo y editamos el siguiente fichero: /pdf/delivery-slip.tpl (de nuevo hacemos un backup…)

Buscamos este trozo del código y añadimos las líneas en negrita:

<!– PRODUCTS TAB –>
<table style=”width: 100%”>
<tr>
<td style=”width: 22%; padding-right: 7px; text-align: right; vertical-align: top”>
<!– CUSTOMER INFORMATIONS –>
<b>{l s=’Phone :’ pdf=’true’}</b><br />
{$delivery_phone}<br />
<br />
<b>{l s=’Order Number:’ pdf=’true’}</b><br />
{$order->getUniqReference()}<br />
<br />

Guardamos el fichero.

Ahora sólo hay que recargar la página de albaranes o el pedido y generar el albarán.

Podéis mover el código en negrita a la parte de la plantilla que os interese, la parte importante del código es:

{$delivery_phone}

Publicado en Prestashop | Etiquetado | Deja un comentario

Añadir el identificador de pedido al PDF del albarán en Prestashop

Si gestionamos muchos pedidos en Prestashop puede interesarnos que en los albaranes que generemos además de la referencia del pedido, del tipo: VQCEEDVBN, aparezca también el identificador del pedido o id_order, que es más parecido a esto: 3165. Más que nada, porque siempre será más fácil preguntar a quien prepare el pedido por un número del estilo del identificador de pedido que no por una combinación alfanumérica aleatoria de 9 caracteres como es la referencia.

Pues bien, si este es tu caso esto es lo que tienes que hacer:

Edita el archivo: classes/pdf/HTMLTemplateDeliverySlip.php (haz antes un backup, por si acaso…)
Busca en la función: public function getContent() las siguientes líneas:

$this->smarty->assign(array(
‘order’ => $this->order,
‘order_details’ => $this->order_invoice->getProducts(),
‘delivery_address’ => $formatted_delivery_address,
‘invoice_address’ => $formatted_invoice_address,
‘order_invoice’ => $this->order_invoice,
‘carrier’ => $carrier , // <– añade lo siguiente y no olvides poner una coma aquí!!
‘id_order’ => $this->order_invoice->id_order

Guarda el archivo.

Ahora vamos a editar la plantilla de nuestro albarán editando el archivo:  /pdf/delivery-slip.tpl  (vuelve a hacer un backup…)

Busca este trozo de código (alrededor de la línea 71) y añade el código en negrita.

<!– PRODUCTS TAB –>
<table style=”width: 100%”>
<tr>
<td style=”width: 22%; padding-right: 7px; text-align: right; vertical-align: top”>
<!– CUSTOMER INFORMATIONS –>
<b>{l s=’Número de pedido:’ pdf=’true’}</b><br />
<b>{$id_order}</b><br />
<br />
<b>{l s=’Order Number:’ pdf=’true’}</b><br />
{$order->getUniqReference()}<br />
<br />

Conviene cambiar Order Number por Referencia o algo así para que no aparezcan dos líneas en el albarán con la etiqueta Número de pedido, pero eso ya es al gusto de cada uno.

Graba el archivo.

Ahora sólo queda subir los dos archivos modificados al servidor, recargar la página del pedido y generar un albarán.

 

Publicado en Prestashop | Etiquetado | Deja un comentario

Recuperar contraseña administrador de windows

Este truco funciona tanto en Windows XP como en Windows 7.

  1. Arrancar con el cd de instalación de Windows 7
  2. Selecciona el idioma de la instalación
  3. Selecciona reparar sistema
  4. Selecciona la partición en la que esta instalado el S.O.
  5. En la siguiente ventana selecciona símbolo del sistema para abrir la consola de msdos
  6. Aparecerá el cursor en una unidad K:, para pasar al disco lógico del sistema colocamos D: , pulsamos Enter y luego hacemos CD \windows\system32 y Enter (En algunas instalaciones puede ser C: en vez de D:, hay que probar)
  7. Una vez en D:\WINDOWS\SYSTEM32> ejecutamos el comando REN y renombramos el archivo sethc.exe por sethc.bak de la siguiente forma: REN sethc.exe sethc.bak y Enter
  8. ahora COPY cmd.exe sethc.exe y enter. Luego pulsamos F3 y Enter para asegurarnos que lo copió, si pide confirmación significa que lo copió correctamente.
  9. Escribimos EXIT y salimos de la ventana de DOS
  10. Sacamos el CD y reiniciamos el ordenador
  11. Cuando termine de iniciar normalmente, aún no podremos entrar. En la pantalla de inicio de sesión pulsamos 5 (cinco) veces seguidas la tecla SHIFT, eso disparará el asistente de StickyKeys que hemos cambiado por la consola y nos abrirá una ventana de DOS
  12. Escribimos CONTROL USERPASSWORDS2 y Enter con lo que abrirá la ventana de Cuentas de Usuarios
  13. Seleccionamos el usuario que queremos reestablecer la ccontraseña y pulsamos el botón “Restaurar contraseña”, escribimos la nueva contraseña dos veces.
  14. Cerramos la consola y ya podremos iniciar sesión con ese usuario.
Publicado en S.O., Windows | Deja un comentario

Instalar Php Mcrypt Centos 6

Por defecto en Centos 6 no viene el repositorio para descargarnos la extensión Mcrypt para php. La biblioteca mcrypt tiene múltiples algoritmos para cifrar. Para instalar el paquete Mcrypt de php en Centos tenemos que habilitar el repositorio epel e instalar el paquete php-mcrypt.
Para ello realizamos los siguientes pasos :

1- Accedemos al directorio /usr/src.
[root@myserver ~]# cd /usr/src/

2- Descargamos el paquete epel-release-6-8.noarch.rpm.
[root@myserver src]# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

3- Instalamos el paquete epel-release-6-8.noarch.rpm para crear el repositorio.
[root@myserver src]# rpm -ivh epel-release-6-8.noarch.rpm

4- Comprobamos que esté correctamente instalado y actualizamos los paquetes disponibles.
[root@myserver src]# yum repolist
[root@myserver src]# yum -y update

5- Instalamos el paquete php-mcrypt
[root@myserver ~]# yum install php-mcrypt

Si quisiéramos deshabilitar el repositorio después de la instalación, lo que tenemos que hacer es editar el fichero /etc/yum.repos.d/epel.repo y poner la variable enabled=0 en vez de enabled=1

Fuente: http://rencinar.blogspot.com.es/2012/07/instalar-php-mcrypt-centos-6.html

Publicado en Sin categoría | Etiquetado | 10 comentarios

Instalación de Webmin en CentOS 6.3

Webmin es un administrador de sistema basado en web para unix/linux. A través de una cómoda GUI y utilizando cualquier navegador podrás configurar cualquier servidor unix/linux. Con Webmin configurar cuentas de usuario, archivos compartidos, servidores como; Apache, MySQL o servicios DNS, etc. es relativamente más sencillo que editar archivos de configuración por consola.

Existen dos formas de instalar Webmin en un servidor con CentOS 6.3 instalado, una mediante un archivo rpm y otra a través del repositorio para yum. Personalmente prefiero la segunda opción.

Instalación mediante RPM

Lo primero si deseas realizar la instalación utilizando RPM es descargar el archivo desde la página de descargas de webmin o ejecutar el comando:

wget http://prdownloads.sourceforge.net/webadmin/webmin-1.610-1.noarch.rpm

Una vez descargado el archivo rpm ejecuta el comando:

rpm -U webmin-1.610-1.noarch.rpm

El resto de la instalación se realizará automáticamente en el directorio: /usr/libexec/webmin, el nombre de usuario de administración y la contraseña serán establecidos como la cuenta de root actual. Ahora deberías ser capaz de conectarte a Webmin en la dirección http://localhost:10000/ o si accedes en remoto, sustituyendo localhost con la dirección IP de pública de tu sistema.

Instalación usando el repositorio Webmin para Yum

Si prefieres instalar y actualizar Webmin a través de RPM utilizando Yum, crea el archivo: /etc/yum.repos.d/webmin.repo utilizando cualquier editor, como por ejemplo vi:

cd /etc/yum.repos.d

vi webmin.repo

El archivo debe contener las siguientes líneas:

[Webmin]
name=Webmin Distribution Neutral
#baseurl=http://download.webmin.com/download/yum
mirrorlist=http://download.webmin.com/download/yum/mirrorlist
enabled=1

Recuerda salir de vi utilizando :wq para grabar el archivo.

Por último, también debes descargar e instalar la llave GPG de los paquetes firmados con los comandos:

wget http://www.webmin.com/jcameron-key.asc
rpm –import jcameron-key.asc

Ahora ya estas listo para realizar la instalación de Webmin ejecutando el comando:

yum install webmin

Todas las dependencias se resolverán automáticamente.

Con esta segunda forma de instalación usando el repositorio de Webmin para Yum nos garantizamos la actualización de los paquetes desde yum simplemente ejecutando el comando:

yum update webmin

Distribuciones compatibles basadas en RPM

El RPM de Webmin puede ser instalado en Fedora, Redhat Enterprise, las versiones anteriores de RedHat, CentOS y todas las distribuciones derivadas de Fedora o Red Hat Enterprise Linux. Además, se puede instalar en sistemas que ejecutan Mandriva, SuSE, TurboLinux y OpenLinux de Caldera.

Fuente: http://www.webmin.com/

Consideraciones de Interés 

Si tu sistema tiene un firewall instalado recuerda abrir el puerto 10000 para poder acceder a la GUI web de Webmin.

Es muy conveniente que una vez te hayas logueado por primera vez en Webmin cambies el puerto de administración a otro distinto del 10000 y que utilices el filtrado IP para que sólo permita el acceso desde tu IP por razones obvias de seguridad.

Publicado en CentOS, Linux | Etiquetado , , | 4 comentarios