Para la integración de nuestra tienda online con la empresa de transportes Correos Express, hemos elaborado un módulo que genera un documento compatible con su software, una plataforma llamada AlerEti. Este documento debe cumplir las especificaciones que el transportista indica a la hora de hacer la integración, como el número de campos y la longitud y caracteres permitidos en los mismos.

correos express

Para ello hemos elaborado un módulo en Prestashop que permite generar este fichero (en formato CSV) relleno con los datos de los pedidos que le indiquemos.

Algunas normas sobre el fichero a generar:

  • El fichero debe ser un CSV separado por espacios, aunque se permite elegir el carácter separador (usaremos el delimitado por punto y coma).
  • Pueden fijarse campos que siempre tengan el mismo valor en la plataforma.
  • El nombre del fichero y la ruta no pueden contener espacios.
  • Otras especificaciones indicadas por la empresa de transportes, específicas de los servicios prestados a cada empresa.
  • Si la dirección del destinatario excede los caracteres que el campo requiere (40), hay un campo «observaciones» que se puede utilizar para completar la dirección.

Si estás interesado/a en el módulo y necesitas ayuda, deja un comentario o escríbenos un mail y solucionaremos tus dudas.

Módulo para convertir una página de producto

http://www.prestashop.com/forums/topic/115844-modulefree-facebook-like-a-lot-prestashop-14-update-2810-with-facebook-open-graph-tags/

Módulo Facebook Like Box

http://www.prestashop.com/forums/topic/183872-modulo-gratis-facebook-like-box-modulo-de-facebook/
http://www.prestashop.com/forums/topic/196366-module-facebook-fanpage-like-box-plugin-for-free/

Para poner un botón en cada página de producto

http://www.prestashop.com/forums/topic/198007-necesito-poner-un-me-gusta-de-facebook-en-cada-producto/

Resumen de uso de página de plugin del botón

https://developers.facebook.com/docs/plugins/like-button/

Hay que rellenar un formulario con algunos datos:
– La URL de la página de Facebook a la que hacer Me Gusta,
– Plantilla deseada para el plugin (hay varias para elegir, con distinto aspecto)
– La acción del botón (Like o Recommend)
– Especificaremos el ancho del botón manualmente en píxeles
Se nos dará un código generado en función de los datos del formulario previo. Podemos modificar este código para adaptarlo a nuestras necesidades.

En este post del sitio forge.prestashop.com he encontrado una solución a la pregunta: ¿Cómo quitar el código EAN 13 del la URL? Ya que en la tienda online que administro no es necesario.

Hay que modificar el archivo classes/Link.php y comentar una parte del código para que no se ejecute. El código debería quedar así:

Línea 53

return ($this->allow == 1)?(_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink().((isset($product->category) AND !empty($product->category) AND $product->category != ‘home’) ? $product->category.’/’ : »).(int)$product->id.’-‘.$product->link_rewrite/*.($product->ean13 ? ‘-‘.$product->ean13 : »)*/.’.html?deletePicture=’.$id_picture) :

Línea 69

return ($this->allow == 1)?(_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)$id_lang).((isset($id_product->category) AND !empty($id_product->category) AND $id_product->category != ‘home’) ? $id_product->category.’/’ : »).(int)$id_product->id.’-‘.$id_product->link_rewrite/*.($id_product->ean13 ? ‘-‘.$id_product->ean13 : »)*/.’.html’) :

Línea 72


return ($this->allow == 1)?(_PS_BASE_URL_.__PS_BASE_URI__.$this->getLangLink((int)$id_lang).(($category AND $category != ‘home’) ? ($category.’/’) : »).(int)$id_product.’-‘.$alias/*.($ean13 ? ‘-‘.$ean13 : »)*/.’.html’) :

Fuentes (la primera, aplicable a mi versión):
http://www.prestashop.com/forums/topic/71915-solvedean-number-behind-my-simplified-url/
http://forge.prestashop.com/browse/PSCFI-5807

MySQL:



ps_order_history es la tabla donde se guarda el historial de los pedidos. En concreto se guarda un registro por cada cambio de estado de los pedidos.
Hay una entrada por cada cambio que se haya producido en el estado de cada pedido, por lo que lo usual es que cada pedido tenga varias filas de esta tabla.Tendremos que introducir valores en la tabla.

id_order 
id_order_history – Último cambio de estado.
id_order_state – Estado del pedido.
id_employee – Empleado.
date_add  – Fecha actual.

De esta tabla nos interesa especialmente el campo id_order_state.
****
Todos los estados posibles de los pedidos están en la tabla ps_order_state. Sus campos:

id_order_history – el campo id de esta tabla
id_employee – (id del usuario logueado en el Back Office)
id_order
id_order_state (valor de un campo de la tabla anterior)

*****

La siguiente consulta devolvería una lista de los últimos identificadores del estado de cada pedido.

SELECT id_order_state FROM ps_order_history ORDER BY date_add DESC LIMIT 1″;


PHP:

Con PHP ampliaremos la consulta con una cláusula WHERE, quedando la consulta así:

SELECT id_order_state FROM ps_order_history WHERE id_order=».$pedido.» ORDER BY date_add DESC LIMIT 1


Donde $pedido será un elemento de un array a recorrer con un bucle PHP (un bucle for, por ejemplo).

Hay muchos motivos por los que se desearía mostrar un precio alternativo para un producto en Prestashop. Por ejemplo, que el cliente pueda ver cuánto ha disminuido el precio del producto cuando éste está «en rebajas». O bien mostrar el precio de venta en la tienda física (usualmente superior) junto al «precio online».

Prestashop

Vemos una buena solución en una de nuestras fuentes de consulta favoritas, el blog de 4webs.com.

En este sitio vamos a proponer nuestra propia solución, mostraremos un segundo precio del producto incrementado en un porcentaje (el 25%). Lo haremos en la página de detalle del producto, en la lista de productos y en los productos destacados.

Recuerden: sólo está probado en Prestashop 1.4.

Este segundo precio se mostrará con el mismo aspecto que el primero, quedando la tarea de decidir si se mostrará tachado (con lo que tendremos que añadir una clase CSS), o junto una frase del tipo «precio en tiendas» al lado del precio incrementado, y «precio online» al lado del otro…

En la página del producto (modificar archivo product.tpl):

El lugar donde colocar el código dependerá de la forma en que se configure el precio mostrado en el B.O. de Prestashop (por ejemplo, precios con o sin impuestos incluidos).
En la tienda de este ejemplo se muestra el precio final con impuestos incluidos, añadiremos el código ANTES de la frase:
{if $priceDisplay == 2},
que se encuentra un poco más abajo del comentario <– prices –>.

</br>
<div>
<span id=»our_price_display»>{convertPrice price=$productPrice*1.25}</span>
{if $tax_enabled && ((isset($display_tax_label) && $display_tax_label
== 1) OR !isset($display_tax_label))}
{if $priceDisplay == 1}{l s=’tax excl.’}{else}{l s=’tax incl.’}{/if}
{/if}
</div>

En la lista de productos (modificar archivo product-list.tpl):

Sustituir esta frase:

{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}

Por esta otra:

{if !$priceDisplay}{convertPrice price=$product.price}</br>
{convertPrice price=$product.price*1.25}{else}{convertPrice price=$product.price_tax_exc}{/if}

En los productos destacados (modificar archivo homefeatured.tpl, dentro de la carpeta del módulo homefeatured):

Sustituir esta frase:

{if !$priceDisplay}{convertPrice price=$product.price}{else}{convertPrice price=$product.price_tax_exc}{/if}

Por esta otra:

{if !$priceDisplay}{convertPrice price=$product.price}</br>
{convertPrice price=$product.price*1.25}{else}{convertPrice price=$product.price_tax_exc}{/if}

Este módulo lo he encontrado en el foro de Prestashop, se llama printlabel y he tenido que modificarlo para que se ajuste al tamaño de mis etiquetas, incluya el logotipo de la empresa, y la posición dentro del folio.

http://www.prestashop.com/forums/topic/24031-module-print-delivery-label/

Imprimimos las direcciones en folios adhesivos A4 divididos en 4 adhesivos, con lo que el módulo permitirme ubicar la etiqueta en cada esquina del folio. De esta forma podemos aprovechar más los folios adhesivos, que son algo caros.

Captura del B.O., en la página de pedido aparecen 4 opciones para sacar la etiqueta.

Si alguno de vosotros usa Prestashop 1.4 y necesita este módulo con mis modificaciones, puede dejar un comentario y/o escribirme un mail y le atenderé personalmente. Para quien se atreva: es necesario modificar download-label.php y printlabel.php para conseguir cambios similares.

Recientemente he tenido problemas con esta funcionalidad de Prestashop, incorporada en la versión 1.4.3, que permite el registro y la compra del usuario en un único paso. Aunque el sistema en 5 etapas no está nada mal, obliga al usuario a hacer click 5 veces antes de dar por concluido el pedido. El objetivo del creador del sitio es ponerle las cosas fáciles al usuario.

Con el tipo de proceso de pedido en el Back-Office establecido en «Comprobar una página» (one page checkout) en vez de «Estándar (5 pasos)», la dirección del cliente no aparece al loguearse, ni tampoco las formas de pago. Parece que el problema estriba en un código javascript que no funciona bien. Buscando un poco de ayuda al respecto:

http://forge.prestashop.com/browse/PSCFI-1349
http://forge.prestashop.com/browse/PSCFI-2306
http://forge.prestashop.com/browse/PSCFI-2310

He sobrescrito los archivos cart-summary.js, order-opc.js, product.js, stores.js como se sugiere en la dirección del tercer link, donde un usuario describe un problema similar (aunque no igual) y no se ha solucionado el problema.

Buscando un poco más en la misma página: http://forge.prestashop.com/secure/QuickSearch.jspa

Los siguientes hilos tratan de lo mismo.

http://forge.prestashop.com/browse/PSCFI-2716
http://forge.prestashop.com/browse/PSCFI-2901
http://forge.prestashop.com/browse/PSCFI-3402
http://forge.prestashop.com/browse/PSCFI-1349
http://forge.prestashop.com/browse/PSCFI-2348

El archivo order-opc.js correcto: http://scm.prestashop.com/browse/~raw,r=7170/PrestaShop_v.1.4.x/themes/prestashop/js/order-opc.js#r7170

(…)

Tanto rollo para nada. He probado el pedido en un solo paso en una tienda en local y todo va bien. Incluso si cambio mi tema por el que viene por defecto va bien. El problema no es un bug, sino que es alguna personalización de mi tema (módulos, contenido especial…) que no es compatible con esta configuración. Además, la mayoría de las plantillas alternativas dan fallos con la compra en un solo paso, con lo que habrá que actualizar para poder utilizar eta opción.

En http://forge.prestashop.com
he encontrado la solución a este problema que me traía de cabeza:
después de instalar, configurar y usar correctamente el módulo watermark (marca de agua o filigrana), y de regenerar las imágenes antiguas; la marca de agua sólo aparecía en las imágenes de los productos nuevos.

Un amable usuario ha hecho una modificación en el archivo /admin/tabs/AdminImages.php que soluciona el problema.

Para usuarios con un número ingente de productos (al menos miles), el problema deriva en limitaciones o ajustes del servidor. Para arreglarlo, deben ponerse en contacto con los administradores del servidor.


Fuente: http://forge.prestashop.com/browse/PSCFI-2421

Con estos cambios conseguiremos que el módulo homefeatured ocupe más espacio, muy útil si queremos que nuestra página de inicio tenga sólo una columna y el contenido central ajustado al espacio disponible.
Todos los cambios los haremos en el archivo global.css. Sólo cambiaremos o añadiremos lo que está escrito en negrita.

#center_column div.block { width: 780px; margin: auto }
#center_column div.block { width: 536px; margin: auto }

#center_column .products_block ul li {
float: left;
background-color: #d0d3d8;
margin-top: 0;
padding: 0 0 1px;
width: 133px;
border-right: 1px solid white;
border-bottom: 1px solid white
}

#center_column .products_block ul li {
float: left;
background-color: #d0d3d8;
margin-top: 0;
padding: 0 0 1px;
width: 190px;
border-right: 1px solid white;
border-bottom: 1px solid white;
text-align:center;
margin-bottom:12px

}

Para hacer más cambios: modificar una plantilla de Prestashop

 

Tutorial para instalar un navegador horizontal para nuestra tienda Prestashop

– Lo primero es descargar el archivo desde el foro oficial de Prestashop (por ejemplo) y copiar la carpeta wiznav dentro de nuestra carpeta modules.

– Dentro hay un archivo de texto en inglés, info.txt que nos explica cómo hacerlo funcionar: Se trata de cambiar el archivo classes/FrontController.php, hacia la línea 477, para añadir la línea que necesitamos, ya que la plantilla por defecto no trae el hook donde se incluye la barra de navegación. Donde se lee

(…)’HOOK_HEADER’ => Module::hookExec(‘header’),
‘HOOK_LEFT_COLUMN’ => Module::hookExec(‘leftColumn’),
‘HOOK_TOP’ => Module::hookExec(‘top’),
(…)

Debemos escribir:

(…)’HOOK_HEADER’ => Module::hookExec(‘header’),
‘HOOK_LEFT_COLUMN’ => Module::hookExec(‘leftColumn’),
‘HOOK_WIZNAV’ => Module::hookExec(‘wiznav’),
‘HOOK_TOP’ => Module::hookExec(‘top’),
(…)

– En la versión de Prestashop 1.3, debemos añadir el HOOK al archivo header.php. Este módulo se desarrolló para Prestahop 1.3, pero funciona bien en la versión 1.4.

– También deberemos modificar, dentro de la plantilla (en la carpeta themes) el archivo header.tpl para añadir el div. En el archivo de texto se muestra un ejemplo de dónde se puede incluir el código a añadir, que sería

(…)<div>
{$HOOK_WIZNAV}
</div>
(…)

– Y por último instalamos el módulo desde el Back-Office… y ya tenemos funcionando nuestra barra horizontal de menú, que trae opciones por defecto (como inicio y categorías), aunque podemos personalizarla a nuestro gusto desde el administrador de Prestahop. Podemos hacer que los vínculos se dirijan a las categorías, o bien elegir nosotros los enlaces. También podemos incluir un «Buscar».

Fuentes: http://www.prestashop.com/forums/viewthread/83937/

Más info: Estoy probando este módulo: WiznavSlide, espero compartirlo con vosotros si consigo ponerlo en funcionamiento en mi tienda de pruebas….