Muy buenas!

Con el lanzamiento de la nueva web me he animado a volver a escribir, si lo se os tengo abandonados.

Hoy os traigo una entrada muy interesante para la mayoría de tiendas on-line realizadas en Presashop, saltarse el paso de selección de Transportista.
He estado buscando y para la versión 1.4 hay algunas entradas en el foro de prestashop, pero para la versión 1.5 no he encontrado nada y cómo es muy sencillo paso a explicarlo.

Es MUY ÚTIL para tiendas en las que sólo hay 1 transportista y es una forma de evitar confusiones, ya que en el resumen del carrito te muestra el precio del transporte, y en el siguiente paso al seleccionarlo de nuevo hace pensar que lo pagas 2 veces. Por eso todo aquel que lo pueda “saltar” que lo haga, agilizando el proceso y ayudando al cliente a no hacerse un lío.

Primero de todo os tengo que decir que la modificación que voy a explicar es del núcleo de prestashop directamente, no he tenido tiempo de revisar el funcionamiento con un simple “override”, así que tened en cuenta que si hacéis esta modificación y actualizáis, luego tendréis que volver a hacerla.

Paso 1: Acceso al los ficheros

Necesitaremos editar 2 ficheros. El primero lo buscaremos dentro de /controllers/front  y el nombre de fichero es OrderController.php
El segundo lo buscaremos dentro de nuestra plantilla /themes/nombreplantilla y el nombre de fichero es order-payment.tpl

Paso 2: Edición del código de OrderController.php

Al rededor de la línea 143 veréis que hay un código tal que así:

case 2:
if (Tools::isSubmit(‘processAddress’))
$this->processAddress();
$this->autoStep();
$this->_assignCarrier();
$this->setTemplate(_PS_THEME_DIR_.’order-carrier.tpl’);
break;

Este código básicamente lo que hace es decirle que si estamos en el paso dos y la dirección es correcta, nos dirigimos al paso de selección de transportista.
Hay que cambiar ese código por este otro:

case 2:
if (Tools::isSubmit(‘processAddress’))
$this->processAddress();
$this->autoStep();
$this->_assignCarrier();
$this->_assignPayment();
// assign some informations to display cart
$this->_assignSummaryInformations();
$this->setTemplate(_PS_THEME_DIR_.’order-payment.tpl’);
break;

Con este otro código lo que le decimos es que en vez de ir al paso de transporte, asigne los métodos de pago, el resumen del carrito y se dirija al paso de selección de métodos de pago.

Ahora ya FUNCIONA correctamente el paso de “Dirección” -> “Selección de pago”, pero para que funcione en la dirección contraria hay que editar el otro fichero.

Paso 3. Editar código fichero order-payment.tpl

En este fichero hay que editar sólo una línea que según el TPL se encontrará en una parte u otra del fichero pero es esta:

<p><a href=”{$link->getPageLink(‘order.php’, true)}?step=2″ title=”{l s=’Previous’}”>&laquo; {l s=’Previous’}</a></p>

Simplemente hay que cambiar el step=2 por step=1, así volverá a la selección de Direcciones.

Y hasta aquí la entrada de hoy!

 

Espero que os sea de ayuda, y cómo siempre si tenéis dudas y demás dejad un comentario!

AH! y si tenéis sugerencias con la nueva web, o problemas o lo que sea enviad un mail a hola@cristianmunoz.es y os lo agradeceré eternamente!

 

Saludos!



89 Comments

  1. _ZaNN_ Says Responder

    Muchas gracias!!!

    Para quien le interese en prestashop 1.5.4 el codigo de vuelta al paso 1 se encuentra al final:

    {if !$opc}
    getPageLink(‘order’, true, NULL, “step=1″)}” title=”{l s=’Previous’}” class=”button”>« {l s=’Previous’}
    {else}

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Gracias a ti por el aprote! 🙂
      Según la plantilla que tengas se encuentra en una u otra parte del fichero, en la plantilla por defecto se encuentra donde dices tu!

      Gracias

      P.D: Por cierto curiosa la idea de tu web jeje

  2. Luis Says Responder

    Sabe como remove o endereço também?

    know how to remove the address too?

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      What address do you want to remove?
      You want to remove the adress step?

      • Luis Says Responder

        Yes Cristian, thank you so much for reply..

        I need to remove the adress and shipping step in my shop, because it is a store of digital products (but no downloads, only services)
        I’m looking for the solution already has a few days, but without success in PS 1.5

        Congratulations for the tutorial and help

        • Kristian Muñoz Muñoz
          Cristian Muñoz Muñoz Says Responder

          Thank’s Luis 🙂

          Jumping Adress step it’s more dificult, because some payement modules requieres some information.
          But if you want to jump this step, you can modify the order-address.tpl:
          – Add to < form blabla >< / form> a name like ->

          – Hidde all data from the tpl, by css (< div style="display:none" > or something like this)
          – Add a javascript to submit the prage: < script> document.frmadress.submit() ; and add a message like {l s=’Processing Order…’}
          – Then in the order-payement.tpl change step=2 to step=0 in the “previous” link .

          This is a quick “hack” to jump this step, but I don’t tested it please reply if it work’s or not haha!

          Regards!

        • Kristian Muñoz Muñoz
          Cristian Muñoz Muñoz Says Responder

          Hi Luis,
          I see that my last comment is not displaying correctly, pleas take a look again, now is correct.

          Regards!

  3. JORDI Says Responder

    Buenas tardes,

    ¿Me podrías indicar como hacer para saltar el paso del transporte y del pago?

    Quiero utilizar la web como generador de pedidos de mis clientes. Si pudieras indicarme como hacerlo me harías un gran favor. Soy un poco novato en esto.

    Muchas gracias.

    Saludos

  4. JORDI Says Responder

    o vez de saltar el trasporte, salte la forma de pago.

    Gracias

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola Jordi,
      El paso de pago es bastante complicado de saltar ya que es el paso en el que se genera a partir del carrito, el nuevo pedido y en el que se asignan las diferentes variables para que eso sea posible.
      Lo que te recomiendo es que uses el paso de salto de transportista y en el paso de pago “conviertas” el “pago conrta reembolso” en “confirmar pedido”.
      Me explico:
      – Primero cambias las traducciones de lo que ponga a “confirmación de pedido”, así al llegar al ultimo paso solo pondrá “confirmar”, puedes modificar la imagen del modulo por otra que se ajuste más a esto.
      – Luego te vas al tpl del método de pago de contra reembolso y añades en < form blabla >< / form> un “name” como por ejemplo -> < form name='frmadress' blabla >
      – Luego le cambias todos los mensajes que viene por defecto por uno parecido a “Procesando pedido” y ahí añades esto {literal}document.frmadress.submit();{/literal}
      Esto hace que se confirme el pedido directamente sin dos pasos.
      – Por último en el tpl order-payement.tpl modifica step=2 por step=0 para que el “volver/paso anterior” vuelva correctamente donde toca.

      Espero que te sea de ayuda, esta explicado algo rapido pero creo que es bastante sencillo de seguir, si no dime donde te pierdes y te cuento jeje
      Saludos

      • Luis Says Responder

        Hola Cristian,
        Estaría bien que lo puedieses explicar un poco más… Por ejemplo, ruta de dónde está los scripts y las líneas exactas que habría que sustituir o cambiar con el nuevo código…

        Gracias de antemano!!!!

        P.D.: Muy bueno tu foro…

        • Kristian Muñoz Muñoz
          Cristian Muñoz Muñoz Says Responder

          Buenas Luis,

          ¿Quieres hacer el tema de confirmar pedido?
          – Las traducciones las puedes modificar en Localización-> traducciones -> Traducción de los módulos -> cashondelivery
          – Los TPL que hay que editar los puedes encontrar en 2 sitios dependiendo de tu tema:
          /modules/cashondelivery/views/templates/front/validation.tpl
          o bien
          /themes/nombredetutema/modules/cashondelivery/views/templates/front/validation.tpl

          En este fichero es donde tienes que buscar el “form” y poner el nombre y lo de “literal”.
          El tpl de “order-payement.tpl” se encuentra en /themes/nombredetutema/

          Espero que esto te sirva, si necesitas algo más vuelve a escribir!

          Saludos!

  5. Julio Tamara Says Responder

    Hola Cristian, perfecto tu aporte para eliminar el paso del transporte. Es una gran ayuda para quienes vendemos productos virtuales como fotos, softwares etc.
    Ahora si fuera posible, dime cómo hago para eliminar el paso de la entrega, puesto que no es necesario . Gracias.

  6. Sebas Says Responder

    Hola Buenas Tardes,
    He echo los pasos para saltarme los transportistas pero no me funciona, me sale el resumen de compra, después las direcciones y cuando debería salir los métodos de pago me aparece la página en blanco! No se como solucionar el problema. Un saludo

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola Sebas,

      Si activas la opción de “display_errors” tampoco te sale nada?
      Yo creo que en el código que has puesto o bien en el tpl del pago o bien en el código del controller hay algo mal, quizás te falta algún salto de línea o algo así.

      Si activas eso que te digo te dirá los errores que hay y podré decirte más.

      Saludos

    • Iván Says Responder

      Me pasaba lo mismo, se quedaba en blanco. Me he dado cuenta que al copiar el código las comillas de ‘processAddress’ y ’order-payment.tpl’ no las reconoce. Hay que cambiarlas por estas: ‘processAddress’ y ‘order-payment.tpl’

      Muchas gracias Cristian, como aporte adicional hay que editar el fichero order_steps.tpl para quitar de la barra superior el paso 4, de manera que queden visibles sólo los 4 pasos que hemos dejado. Para ello a partir de la línea 65 dejar los pasos 4 y 5 así:

      <!–
      {if $current_step==’payment’}
      getPageLink(‘order’, true, NULL, “{$smarty.capture.url_back}&step=2&multi-shipping={$multi_shipping}”)}”>
      4. {l s=’Envío’}

      {else}
      4. {l s=’Envío’}
      {/if}
      –>

      4. {l s=’Pago’}

      Saludos

      • Iván Says Responder

        Perdón, me respondo a mi mismo ya que las comillas al publicar el comentario se han cambiado, así que tampoco están bien. Hay que cambiarlas por las comillas simples, en el teclado es la tecla de cierre de interrogante.

        Saludos

      • juan Says Responder

        saludos amigo yo tengo la version de prestoshop 1.6 y tengo el gran problema que el transportiste me dice que no puede repartir para ese sitio que no existe transportiste y demas e hecho de todo y nada pero estube probando con los tif que das y no me aparece igual me das alguna sujerencia que debo cambiar para saltarme ese paso.

  7. carlos Says Responder

    Hola Cristian:
    Veo que tienes muy controlado el tema del Transporte. A mi en la versión 1.5.6.1 me funcionaba perfectamente hasta que seguramente en una actualización me empezó a dar problemas. Y me aparece el error: –Ningun transportista está disponible para esta selección–. He visto todo lo que hay publicado y no hay manera. Sabes por donde podrían ir los tiros ?.
    Gracias de antemano

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola Carlos,

      A ver lo primero que tienes que revisar es el tema de las zonas, sobretodo si tienes zonas diferentes a las que vienen por defecto revisa que los transportistas esten asignados a esas zonas.
      Y también revisa las zonas de las provincias, que suelen estar mal puestas.
      Si los transportistas están bien asignados, y las zonas también, lo siguiente es mirar los rangos de precio y peso.
      En la configuración general del envío hay una parte donde asignas si lo quieres calcular por peso, o por precio, revisa cuál de las dos opciones tienes y luego en Envío -> rangos de precio / peso (según lo que tengas seleccionado) revisa que tengas puesto los rangos correctos.

      Por último revisa que en transportistas -> transportistas, tengas correctamente seleccionada alguna opción en la parte de “transportista por defecto”

      Espero te sea de ayuda.
      Saludos

  8. Nicolay Says Responder

    Hola tengo prestashop 1.5.6, mi pregunta es la siguiente, en el paso 1 (resumen) me gustaria ocultar o elimiar el transportista y la direccion ya que me parece un poco confuso para el que compra ver los datos repetidos. necesito saber que archivo modificar, muchas gracias.

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola Nicolay,

      Te refieres a lo que sale debajo del todo después de los totales?
      Eso lo puedes quitar buscando dentro de tu theme el archivo shopping-cart.tpl y editar la parte en que muestra esos datos suele estar hacia el final de todo del fichero antes de los botones de “next” y “continue shopping”.
      Busca hacia el final una parte en que pone “{if (($carrier->id AND !isset($virtualCart)) OR $delivery->id OR $invoice->id) AND !$opc} ” y puedes borrar todo ese IF.

      Otra opción es por css ocultar el “div” que hay dentro de ese “if”, tienes que cambiar “

      ” por “

      ” y en el css algo así cómo #ocultar_delivery{display:none}

      Recuerda hacer una cópia de seguridad antes de borrar nada!

      Saludos

  9. Gregory Oñatez Says Responder

    Saludos Cristian, Espero tengas un excelente año 2014.

    Primero que nada gracias por la ayuda y el aporte en esta web.

    Soy nuevo con esto de trabajar en Prestashop y estoy comenzando a crear una tienda con esa herramienta , pero quisiera modificar ciertas cosas:
    1) es saltar o quitar el paso de dirección y envío porque los productos son importados de Curazao a Venezuela y estos llegan a un solo punto de entrega o es como decir a una tienda física, entonces de ser así en la dirección seria lo contrario, la empresa o la tienda daría la dirección al cliente para que vaya a retirar el producto.

    2) quisiera saber ¿como editar lo correos que son enviados al cliente? por ejemplo: en el modo de pago por transferencia bancaria, al cliente se le es enviado automáticamente un correo con la información de envió y cosas así, pero quiero quitar esa información de envío por la información donde el cliente debe retirar el producto y también agregar a ese correo que al momento de hacer la transferencia, el cliente debe enviarnos un correo con los datos de transferencia para nosotros confirmar que el pago fue efectuado correctamente.

    Espero puedas ayudarme con eso, de ante mano gracias por la ayuda prestada.

    (Hay otra cosas que también quisiera cambiar pero por ahora necesito cambiar eso)

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola Gregory,

      Igualmente feliz 2014 y disculpa el retraso.
      Te contesto el punto 2 primero que es más sencillo:
      – Tienes dos opciones 1 en Ubicación-> Traducciones -> En el primer desplegable que hay seleccionas -> Traducciones de los E-mails
      Y ahí tienes todos los correos.
      La otra opción es accediendo por FTP a tu servidor y dentro de la carpeta /mails/idioma (es -> para español, en- ingles, etc) tienes todos los e-mails generales de la web, el de transferencia es el de “bankwire.html” y el de pedido aceptado es el de “order_conf.html”

      Si editas estos ficheros también puedes quitar eso que pides.

      Para el punto 1 es algo más complicado. Yo lo que haría es poner “datos del cliente” en vez de dirección de envío y simplemente que informe al cliente y que le permita dejar la observación.
      La otra opción es instalar el modulo OnePageCheckout que va muy bien y te muestra todo en 1 sola pagina, y sería más sencillo lo que pides, ya que simplemente se registra selecciona el transporte y paga.

      Saludos

  10. Javi Says Responder

    Hola Carlos, he realizado los pasos que recomiendas y funciona correctamente. El único handicap que tiene es que si algún usuario tiene un vale descuento y la compra sale a 0€, no se procesa con los módulos de pago TPV o Paypal, dando error al enviar los datos de la compra = 0. ¿Sabes como solucionar este punto?

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola Javi,
      Lo que podrías hacer es añadir un “{if}” en el template de order-payment.tpl en el que le digas que si order.total == 0 pues que te muestre el tipo de pago “transferencia” y si no que te muestre el resto.
      Luego modificas el template transferéncia y pones “Confirmar Pago” en las traducciones y demás y listo.
      Es lo más sencillo.

      Saludos

  11. Andres Says Responder

    Hola Cristian
    Necesito hacer una modificación en Prestashop 1.4.9. Se trata de lo siguiente: debo permitir máximo 3 pedidos hechos por el mismo cliente en el mismo día. Lo que pensabe era, en el archivo OrderController en la función _assignPayment(), revisar las ordenes realizadas por el cliente en el día actual y si llega al límita de 3 entonces no permitir que se despliegue el llamado parent::_assignPayment(); también debo modificar el archivo order-payment.tpl para que no muestre el mensade de que no hay módulos de pago instalado sino un mensaje diciendo que se ha excedido el máximo de pedidos por parte del cliente.
    Te parece hacerlo de esta manera, o crees que hay una mejor forma de hacerlo?
    Te agradezco cualquier aporte al respecto

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola Andres,

      Es una buena opción lo que comentas, aunque yo nunca limitaría la compra a nadie, si quieren comprar que compren no? jeje
      Quizás es más fácil deshabilitar el botón “siguiente” en el carrito que eso pero es una buena opción.
      Lo “malo” de tu opción es que le das al cliente esperanzas y llega al final de todo y no puede comprar.
      Si decides deshabilitar el carrito lo que puedes hacer es en el fronController añadir una variable que te diga del cliente que esta logueado cuantos pedidos ha realizado, y si este es superior a X pues deshabilitas el comprar.

      Saludos

      • Andres Says Responder

        Muchas gracias Cristian.
        Estoy probando tu sugerencia. Sin embargo es casi igual cuando un cliente no ha ingresado sus credenciales, no puedo saber de que cliente se trata, puede agregar varios productos a su carrito de compras y tan solo al momento de confirmar en el carrito de compras hace su login y puedo saber el cliente. Luego de esto pasa a la selección de la dirección. Ahí puedo deshabilitar el botón siguiente. Estoy lo estoy haciendo en el archivo order-address.tpl. No se que se puede hacer en el frontController que tú mencionas. También quería preguntarte que funciones puedo usar en los archvios .tpl, concretamente en la solución que estoy haciendo en el order-address.tpl puedo consultar la base de datos? cómo lo puedo hacer?
        Gracias por tu apoyo.
        Saludos

        • Kristian Muñoz Muñoz
          Cristian Muñoz Muñoz Says Responder

          Hola Andres,

          Desde el tpl no se pueden hacer consultas solo recorrer variables, hacer condiciones etc, no se pueden manipular datos.
          Por eso te decía lo del “FrontController” o también puedes usar el “CartController” para asignar variables al carrito y así tratarlas en el tpl.
          Desde un tpl nunca se pueden modificar datos, lo hace el controlador siempre.

          Saludos

  12. Angel Peña Says Responder

    Gracias por el aporte, uso prestashop 1.5 como puedo descartar la suma del transportista en el carrito hasta que el cliente llegue al paso 4 de opciones de envio? Muchas gracias!

  13. Beatriz Says Responder

    Hola Cristian, una consulta, como se podria mostrar en el one page checkout las formas de pago sin tener que marcar en la seleccion de transportistas el checkbox de “Condiciones de venta”
    Quiero que los clientes vean las formas de pago sin tener que marcar el checkout (dicho checkout tiene que seguir siendo obligatorio su aceptacion)

    Muchas gracias.

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola Beatriz,

      Lo más sencillo es con jQuery. Ocultas el “Div” de los transportistas y con la funcion jQuery(“#idtransportista”).click() o algo así.
      Es lo más sencillo que puedes hacer, el resto de cosas es liarte mucho. En colección.eleconomista.com lo hice así, lo que no recuerdo exactamente como era.

      Espero haber sido de ayuda, si tienes dudas de como usarlo, si me pasas la url de la web te puedo concretar algo más.

      Saludos

      • nusky Says Responder

        Podrías detallar un poco más la modificación que hay que realizar?
        Yo quiero que aparezcan los métodos de pago directamente sin tener que aceptar las condiciones y términos.
        Gracias!

        • Kristian Muñoz Muñoz
          Cristian Muñoz Muñoz Says Responder

          Hola Nusky,

          No hay mucho más a explicar, los pasos son esos 3… es que más específico es que te lo haga yo jeje
          Si lo que no quieres es que se acepten terminos y condiciones, lo puedes desactivar des de la administración en preferencias de pedido hay una opción que permite activar o desactivar los terminos de servicio.

          Si me dices donde tienes el problema quizás te puedo ayudar un poco más.
          Saludos

  14. quetzal Says Responder

    yo no puedo seleccionar los transportistas, siempre selecciono 2 para un producto y salen los 5 que defini… 🙁 puedes hecharme la mano?

  15. Jhonatan Says Responder

    Hola, yo lo que necesito es quitar la pantalla de confirmación del modulo de pago, puesto que ya aparecen bastantes pantallas diciendonos el precio del pedido y se vuelve repetitivo, a parte de que son demasiadas pantallas.

    Estoy tratando de mil maneras, incluso con algun script que me apriete el botton de “Acepto” para realizar el pedido automaticamente sin tener que ver esa pantalla, ¿como se consigue?.

    Gracias!!.

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola Jhonatan,
      A que pantalla te refieres Exactamente?
      Y de qué módulo?
      Tendrías que editar el tpl añadiendo las modificaciones pertinentrs segun el modulo que quieras editar.
      Si me dices que módulo te puedo decir el fichero.
      Para el modulo de transferencia yo lo hice añadiendo un javascript y un mensaje de “procesando pedido” y listos. Hay que anadir un id al formulario y un js de onload ->submit.

      Saludos

  16. carles Says Responder

    Hola Cristian, felicidades por el post muy bueno 😉

    He intentado modificar el texto del archivo pero no me sale lo mismo que a ti yo tengo esto:
    case 2:
    $this->_assignAddress();
    if (Tools::isSubmit(‘processAddress’))
    $this->processAddress();
    $this->autoStep();
    $this->_assignCarrier();
    break;
    y al poner lo tuyo se quedaba en blanco.

    Tengo la versión 1.4.7.3 es que no hice yo la web pero ahora la llevo yo y no se si puedo actualizar a la ultima versión sin problemas o tendre modificaciones en la web: http://tiendaonline.brooklin23.com/

    gracias y saludos

  17. Pablo Says Responder

    Estimado, gracias por la info que compartes y felicitaciones por el blog! Te cuento, lo que ando buscando es poder dar la opción de retirar en la tienda; cosa que lo hice sin problema creado otro transportista, aparte del que realmente lo es (lo de siempre). El asunto es que me parece que está demás para este caso pedir crear una dirección y sobre todo siendo un paso anterior al elegir el “modo de transporte”.
    ¿Como se podría uno saltar el “crear dirección” o dejar este paso posterior al elegir “envío”?
    desde ya, muchas gracias!!

  18. Elvis Salvatierra Says Responder

    Saludos Estimado.

    Le escribo porque he buscado por la web y por los foros de PrestaShop solucionar un problñema y veo que usted tienen mucha experiencia en PrestaShop.
    Estoy haciendo mi pagina web con la version 1.6.0.5 de prestaShop, haciendo una prueba de compra sigo los pasos: 1) Resumen 2) Login 3)Direccion 4) transporte. En este ultimo me dice que no hay transportita seleccionado, me da error.

    Yo qusiera que este paso de trasnportita no aparesca, ya que no voy a realizar el servicio de transporte directamente. Yo eleminar este paso, y que me lleve a la opcion de pago de una vez.

    Estuve leyendo los Post anterirores, no se si si el procedimiento que usted explica se puede hacer en la version 1.6.0.5.

    Le agradesco enormemente si me puede ayudar-

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola Elvis,
      Pues la 1.6 no varía demasiado en cuánto a código, así que te tendría que servir lo mismo que para la 1.5

      Lo de que no hay transportista seguramente es porque no tienes ningún transportista asignado a la zona donde tengas tu país, o que no tenga un correcto rango de precios/peso, suelen ser los 2 motivos más comunes.

      Saludos

  19. Jenny Says Responder

    Hola Cristian.

    Uso la version 1.6 y seguí todos los pasos que indicas pero en el ultimo, en el
    Paso 3. Editar código fichero order-payment.tpl
    En este fichero hay que editar sólo una línea que según el TPL se encontrará en una parte u otra del fichero pero es esta:

    getPageLink(‘order.php’, true)}?step=2″ title=”{l s=’Previous’}”>« {l s=’Previous’}

    no encontré el mismo texto, solo al final habia algo parecido y cambié todo como dices, paso 2 por paso 1 pero al darle ir a la caja me vuelve al inicio de la orden, que puede ser???.

    Saludos y gracias

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola Jenny,
      Pues no se, mira que lo tengas bien escrito con las comillas bien puestas.
      En principio sólo hay que cambiar el 1 por el 2 y ya esta, esto es simplemente un link al paso 1 (direcciones) en vez de al 2 (transporte)

      Puede ser que el texto sea diferente, ya que para cada versión ha ido cambiando esto.
      Busca la parte en que ponga “next” y “previous” y los números que ponga los modificas.

      Saludos

      • Jenny Says Responder

        Hola Cristian.

        Gracias por responder. Me cabe una duda, lo que necesito es pasar desde:

        1. Resumen
        2. Iniciar sesion
        3. Direccion
        5. Pago.

        Lo que quiero es que no me considere el paso 4 (transportista) pero que se dirija directamente a pago. Es esto mismo lo que describes anteriormente?.

        Saludos.

        • Kristian Muñoz Muñoz
          Cristian Muñoz Muñoz Says Responder

          Hola,
          Exacto el método que explico es para eso exactamente.
          En qué punto tienes problemas?

          Saludos

          • Jenny Says

            Hola Cristian.

            Tengo mi propia cuenta de prueba creada en mi web y paso a comprar algo, me lo lleva al carrito de compras, pero cuando le doy IR A LA CAJA, me aparece esto en la barra de direcciones:
            http://www.digitalneg.com/index.php?controller=order y demora pero vuelve nuevamente al pedido, una duda…será que me aparece ese problema porque no le he asignado ningun metodo de pago?, es decir, no tenoçgo ni payUlatam ni ningun otro de los modulos activados, puede ser eso???.

            Gracias por tu paciencia y buena disposicion.

            Saludos.

          • Kristian Muñoz Muñoz
            Cristian Muñoz Muñoz Says

            Hola Jenny,
            Pues en principio te tendría que llevar a la zona de metodos de pago y mostrar el mensaje, no hay metodos de pago…
            Ha probado activando alguno a ver que pasa?

            Saludos

  20. Gerard Mas Condeminas Says Responder

    Hola @Cristian,

    Antes de nada decirte que ha sido un gran trabajo el que has realizado, ya que gracias a tus esfuerzos he podido avanzar muy favorablemente un proyecto.

    Pero ahora se me ha planteado un problema que mi cliente me solicita.

    El proceso que tengo yo es de Resumen a Confirmación de compra. Después almacena el pedido y envía los mails correspondientes. Todo perfecto.

    Lo que el cliente me pido añadir un campo comentario para que el usuario que le compra en la web pueda añadir comentarios sobre el envió, facturación o otros. Dentro del proceso. Se que hay un campo una vez ya se ha procesado todo que puedes añadirlos. Pero me lo pide durante el proceso (tipo el campo que salen en transporte), aunque este proceso lo tengo anulado. Por eso añadirlo en…

    Preciso de añadir en la pantalla de shopping-cart.tpl o order-payment.tpl un campo tipo:


    {l s=’If you\’d like, you can add a note to the gift:’}
    {$cart->gift_message|escape:’html’:’UTF-8′}

    Donde el cliente web pueda añadirme el comentario que después debería ser visible en el apartado “MENSAJE” del mail que recibe el admin de la pagina, con la compra.

    No se si consigo explicarme.

    Tengo al cliente contento, pero en este tema no demasiado y no se como solventarse-lo.

    Gracias por todo.

    Saludos.

    • Gerard Mas Condeminas Says Responder

      El anterior comentario se visualiza mal el codigo. Haber si ahora se ve correctamente:

      {*}{if !$opc}

      {l s=’If you would like to add a comment about your order, please write it in the field below.’}
      {if isset($oldMessage)}{$oldMessage}{/if}

      {/if}{*}

      • Kristian Muñoz Muñoz
        Cristian Muñoz Muñoz Says Responder

        Hola Gerard,
        Si entiendo bien lo que quieres es mover el mensaje que aparece de “observaciones” en el apartado de order-address al de shopping-cart no?
        Poniendo ese trozo de código directamente no se solventa? Si no el tema sería mirar el =OrderController.php en la parte en que hace el processAddress() y mover la parte de “message” a la función process() en el segundo paso supongo..
        Si se pone en el shopping-cart, seria el paso 2 (diría)
        Yo creo que si haces esto ya más o menos lo tienes, te hablo todo de memoria y sin testear. SI ves que tienes problemas me puedes enviar un correo y lo hablamos,

        Saludos

        • Gerard Mas Condeminas Says Responder

          Hola Cristian,

          Mientras me respondías he estado testando varias posibilidades y la que al fin me ha funcionado es muy parecida a la que me comentas sobre el fichero OrderController.php.

          Al trasladar el código de order-address al de shopping-cart no ha sido suficiente, por lo tanto debía hacer dos cosas una trasladar el código que trabaja el message de OrderController a la función correspondiente o habilitar el paso de Order-Adress. Al final lo que he realizado es habilitar el proceso de order-address, pero anulando todo lo pertinente a adress y habilitando solo el campo de Observaciones.

          Tras realizar esta modificación he modificado los labels de Adress poniendo “Observaciones”, quitar el auto-submit y trasladando un pequeña parte del código de OrderController al anterior “IF”.

          Ahora gracias a esto el mail del administrador puede ver las observaciones del cliente y el cliente satisfecho por poner la hora de entrega o otras observaciones.

          Gracias por todo Maquina.

          Saludos.

          • Kristian Muñoz Muñoz
            Cristian Muñoz Muñoz Says

            Hola Gerard,
            Me alegro que al final dieras con ello, me imaginaba por donde iban los tiros pero sin hacer pruebas no podía darte más pistas.

            Si necesitas cualquier cosa más ya sabes!

            Saludos 😉

  21. Ricardo Says Responder

    Hola que tal Cristian excelente tutorial pero aun sigo con problemas , ya que al momento de cambiar los pasos que explicas en tus instrucciones no carga la pagina de pago al momento de ver los datos de envio y seguir con la compra queda totalmente en blanco y no carga , estuve revisando los post y salia que las comillas no las detectaba lo cambie pero nada quizas me puedas ayudar muchas gracias saludos

  22. Pablo Says Responder

    Buenas Cristian, muchas gracias por tu aportación, he realizado los cambios en el OrderController haciendo un override y eliminando el index_class de la cache para que se actualice, tengo habilitado el pago en una página en vez de por pasos y de momento no se ha aplicado el cambio, también he modificado el order-payment.tpl, no sé que estoy haciendo mal, un saludo!

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola Pablo,
      Pues no se me ocurre mucho más, si el override es correcto, y has desactivado la cache y tal para lo del tpl debería funcionar.

      Te sigue enviando al paso de transporte?

      Saludos

      • Pablo Says Responder

        Lo he revisado y es debido al proceso de pedido, lo tengo en una página (OPC one page checkout) en vez de en cinco pasos como suele estar, por eso creo que el archivo a modificar es el OrderOPCcontroller, si activo el pedido en 5 pasos si se salta el transportista correctamente. El controller del OPC es más complejo, ni idea que es lo que tengo que modificar.

        Un saludo Cristian.

        • Kristian Muñoz Muñoz
          Cristian Muñoz Muñoz Says Responder

          Hola Pablo,
          Para hacer modificaciones en el OPC tendrías, a parte de modificar el controller como bien dices, cambiar también las funciones ajax, por tal de asignar directamente el transportista que quieres.
          Es algo más complejo pero se puede hacer.
          Lo que podrías intentar es hacer que al cambiar de dirección a transporte, haga el submit directo del transportista, y la zona del transportista ocultarla en el tpl por css.
          Es una idea con la que puedes trabajar.

          Saludos!

  23. Enrique Says Responder

    Buenas tardes Cristian
    Dios te bendiga por tu gran aporte en este blog.
    Uso version Prestashop 1.6.0.9
    Quisiera poder consultarte si podrias explicar como poder ocultar el costos de envio al momento de agregar un producto al carrito como tambien en el mismo carrito (sumario), ya que ese costo depende del lugar de envio, desearia que solo apareciera ya cuando el cliente se ha registrado y asi poder asignar el costo real y evitar confusiones a los clients.

    Muchas gracias de antemano.

  24. Cristian Says Responder

    Hola Cristian Gracias por el aporte tengo que eliminar el step de shipping pero he visto en el research que he realizado que para quitar del front el paso tienes que editar el fichero blockcart.tpl , voy a realizar la prueba con tus pasos y te digo por que antes tenia instalado la version 1.6 e hice los pasos y no me funciono hay alguna forma de eliminar el shipping

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola Cristian,
      El método funciona hasta la 1.5.4, a partir de ahí es algo diferente pero más o menos con las indicaciones del post y algunos comentarios que hemos ido dejando te tendría que valer.
      Qué problema tienes?

      Saludos

  25. Sergio Lopez Says Responder

    Muchas gracias por el aporte que das en esta pagina. Te comento. Uso el ps 1.6.0.9 .
    Solo vendo en España. Te lo digo pues cree una zona España, pais España y los estados o provincias. El transporte en teoria es gratuito.
    Cuando compro un producto, me sale que el transporte es gratuito, pero luego me sale el problema de que no hay transportista etc. he probado el tema de saltar el transportista, pero me sale la pagina en blanco, concretamente esta http://controlpyme.com/tienda/Carrito .
    Antes de terminar este comentario, solucionado la pagina en blanco, por la mala tabulacion del archivo modificado.
    Gracias de todas formas

  26. Guelu Says Responder

    Hola Cristian,

    Me pasa como al compañero, he seguido las indicaciones pero cuando llego al paso cuatro me queda la pantalla en blanco… él comenta que lo ha solucionado por un tema de tabulación?! no se muy bien a que se refiere, a ver si me puedes dar una idea..

    Por otro lado, en el esquema superior donde se ven los 5 pasos, si quitamos elpaso del transporte, lo suyo sería tambien quitarlo del esquema, como se podría hacer?

    Gracias y un saludo!

  27. Guelu Says Responder

    Hola, me encuentro con el mismo problema que Sergio, termino en una página en blanco, ¿Cómo lo ha solucionado?
    Tengo presta 1.6

    Gracias

  28. Santiago Solanille Says Responder

    Estimado Cristian, quiero de antemano agradecer tu buena disposición para ayudarnos, te cuento tengo la version 1.6.0.14 y me manda un error Error: Ninguno de los transportistas elegidos pueden enviar a la dirección que ha seleccionado. he intentado configurar de todas formas y nada resulta, así que quiero intentar borrar el paso pero en el orden payment lo mas parecido que tengo es la siguiente linea que debería modificar aqui ??? getPageLink(‘order-opc’, true)}{else}{$link->getPageLink(‘order’, true)}{/if}” method=”post” id=”voucher”> te agradesco si me puedes ayudar
    Gracias

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola Santiago,
      En los productos de tu tienda tienes marcada alguna limitación en la pestaña de transportistas?
      Si no es así tendrías que eliminar y volver a crear los transportistas ya que a veces se dan problemas con ellos.
      Así mismo si tienes algún módulo que sea para la gestión de los transportistas (ups, fedex, etc etc) tendrías que ver si desactivandolos te funciona, si es así hay dos opciones o el módulo interfiere en el proceso, o están mal configurados o hay un error que habría que ver en detalle.

      Por último lo que te pasa con el fichero es que en la 1.6 ha cambiado gran parte del código, pero su buscas en el código hay una sección que es muy parecida a la que comento en el post que puedes editar de la misma manera.

      Espero te sea de ayuda.
      Gracias,
      Saludods

  29. Cesae Says Responder

    Hola Cristian: Buen día, yo quisiera saber si se puede quitar del carrito de compras el costo de transporte cuando el cliente elige un producto en prestashop.
    quisiera explicarme mejor: tu entras a la tiendas eliges un producto y lo agregas al carro de compras, en él te aparece el precio del producto, debajo de éste el precio del transporte y luego el total a abonar, pero yo tengo discriminado el precio del transporte según las distintas zonas, y no quisiera que al agregar el producto al carro le aparezca el precio del transporte sin antes decir de qué lugar es el cliente, o sea al final después que se sabe de qué lugar es el cliente recién ahí te debería salir el precio de cuanto te cuesta el transporte para que te envíen ese producto que has elegido. Espero haber sido claro con lo que necesito y te agradezco tu gran aporte a la comunidad que padecemos los avatares de PRESTASHOP

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola Cesar,

      Lo que puedes hacer es que el grupo de acceso de todos tus transportistas sean los clientes sólo, ni los visitantes ni los invitados.
      Y luego creas un transportista que sea gratis para los visitantes e invitados, con lo que no saldrá nada en el carrito hasta que no se registren.

      Espero te sea de ayuda!
      Saludos

  30. María Says Responder

    Hola Cristian muy buenas noches, verás tengo un problema con mi web y no tengo ni idea de como solucinarlo. Primero darte las gracias por el post, porque siempre aprende una un poco más con estas cosas. El problema que tengo, es que hago un pedido desde mi tienda y cuándo llega a transportes se queda allí, y no avanza hasta el quinto paso de pago. ¿Tienes idea de qué le puede pasar?. Muchas gracias!

  31. David Says Responder

    Hola Cristian,

    Felicidades por tu blog, me ha servido de ayuda.

    He creado un modulo para prestashop, donde los usuarios pueden darse de alta como vendedores y vender sus propios productos. Ademas les permite escoger el método de envío (solo hay dos posibles de momento), con cargo de portes, si los hay, al comprador. Esto hace que pueda haber un carrito con diferentes productos, de diferentes vendedores y métodos de envío.

    Por una parte he eliminado el paso de escoger método de envío del carrito, siguiendo tus indicaciones.

    Pero ahora he de hacer que cada producto del carrito se gestione correctamente con el método de envío escogido por el vendedor. ¿Sabes donde he de tocar y como hacerlo?

    Cualquier pista me ayudaría mucho.

    Gracias de antemano por tu ayuda.

    • Kristian Muñoz Muñoz
      Cristian Muñoz Muñoz Says Responder

      Hola David,
      Yo lo que haría es generar un pedido por cada uno de los diferentes vendedores.
      Justo antes de generar el pedido separas en los diferentes vendedores cada uno de ellos y calculas el precio final.
      Para generar los pedidos lo puedes hacer con la clase Cart.php, puedes hacer un override con una función nueva en la que le pases el id del actual carrito y te lo divida en X carritos en función de los productos.

      Creo que sería la forma más “facil” ya que la clase cart te permite generar todo el proceso, y luego generar un pedido.

      No profundizo mucho porque sería un rollazo, pero creo que si has tocado un poco de código verás rápido lo que digo 🙂

      Saludos!

  32. Alfredo Says Responder

    Buenas noches Cristian, tengo un gran problema a ver si tu me podes dar una mano. Tengo cargado presta shop ver 1.6.0. Mi problema es en el ultimo paso del carrito de compras en el paso 4 al 5 se queda trancado y no pasa al paso 5. No me pone nada ni paginas en blanco ni nada solo carga pero no pasa nada. Ya tengo configurado el transporte bien pero nose por que no llega a mostrarme las opciones de pago. que tambien configure correctamente.
    desde ya mucha gracias

  33. daniel Says Responder

    Hola, buen tutorial.
    Necesito ayuda con un tema de Paypal y no sé cómo seguir, espero me puedas ayudar. Estoy armando una tienda para Uruguay en Prestashop y no logro hacer que el bloque de paypal se muestre SIEMPRE en el checkout (aunque todos los productos estén pesos uruguayos) ?
    Quiero vender en Pesos Uruguayos y que el bloque de Paypal aparezca en el checkout y por supuesto haga la conversión a USD.
    Tengo PS1.6 y estoy probando con Paypal Europa. Actualmente ya he verificado que hace la conversión aún sin aparecer en el checkout pero obviamente necesito que para los clientes APAREZCA.
    Por último quisiera saber cuál es la versión de paypal más adecuada para Uruguay.
    Muchas gracias y saludos desde Uruguay.

    • Kristian Muñoz Muñoz
      Kristian Muñoz Muñoz Says Responder

      Hola Daniel,

      Siento no poder ayudarte en este tema, normalmente paypal funciona por zonas y eso no depende del modulo.
      Si a parte tienes todo bien configurado, transportes, productos etc, debería aparecer…

      Saludos

  34. Rafael A. Says Responder

    Hola, con respecto al transporte, lo que necesito es quitar del carrito y del resumen del proceso de pago Envío gratis!, por el momento no tendré transporte en mi tienda, será recogida en almacen de la propia tienda, así que como no tendré envios por el momento necesito quitar el Envío gratis! de mi proceso de compra, Saludos quedo al tanto de respuesta, gracias

  35. jsac2 Says Responder

    Por favor alguien que me pueda indicar como hacer que le valor del transportista aparezca el valor pero al momento de la suma total no se incluya en el carro de compra.

Dejar un comentrario:

¿Eres humano? * Límite de tiempo se agote. Por favor, recargar el CAPTCHA por favor.