Eusebio100 Posted November 18, 2018 Share Posted November 18, 2018 (edited) Hola, a ver si soy capáz de explicarme. Quiero que los gastos de envío se muestren en el carrito a partir de que el cliente está registrado y ha seleccionado el transportista, y de ahí hasta finalizar el pedido. He llegado hasta el punto que se muestran desde la seleccion del transportista hasta la página de selección del método de pago, pero una vez que se selecciona el pago (por ejemplo transferencia bancaria, u otro), al llegar a la página de confirmación los gastos de envío desaparecen del carrito. Parece que ese paso ya está fuera del checkout y no consigo identificarlo. Estoy utilizando la siguiente variable para detectar cliente y transportista seleccionado, pero me falta el paso final: $carrier_selected = $this->step >= 2 || Tools::isSubmit('processCarrier'); Agradezco cualquier ayuda. Un saludo. Edited November 20, 2018 by Eusebio100 (see edit history) Link to comment Share on other sites More sharing options...
garciasanchezdani Posted November 19, 2018 Share Posted November 19, 2018 Hola, Creo que sería mejor comprobarlo mediante las variables globales "cart" y "customer". global $customer; global $cart; if($cart->id_carrier > 0 && $customer->logged == 1) { } Espero que te sirva. Un saludo! Link to comment Share on other sites More sharing options...
Eusebio100 Posted November 19, 2018 Author Share Posted November 19, 2018 hace 2 horas, garciasanchezdani dijo: Hola, Creo que sería mejor comprobarlo mediante las variables globales "cart" y "customer". global $customer; global $cart; if($cart->id_carrier > 0 && $customer->logged == 1) { } Espero que te sirva. Un saludo! Gracias por responder. Lo del logged es evidente y lo tengo por otro lado, lo del carrier es lo mismo que tengo, pero esto no me soluciona el problema. Lo que necesito es identificar el último paso después de seleccionar el método de pago. Creo que lo puedo sacar de la clase PaymenteModule.php con esto: PrestaShopLogger::addLog('PaymentModule::validateOrder - End of validateOrder', 1, null, 'Cart', (int)$id_cart, true); Pero lo que quiero saber es si hay alguna variable global que pueda utilizar. Link to comment Share on other sites More sharing options...
Eusebio100 Posted November 20, 2018 Author Share Posted November 20, 2018 hace 21 horas, Eusebio100 dijo: Pero lo que quiero saber es si hay alguna variable global que pueda utilizar. Me respondo a mi mismo. Al final era cuestión de pensarlo un poco y lo he conseguido con esto: $validate = $this->step != 0 && $this->id_carrier != 0; Son esa variable consigo que en el último paso para confirmar el pedido, el importe del carrito sea coherente con el importe del pedido incluido los gastos de envío. Ahora se muestran en el carrito los gastos de envío solo para clientes logeados y después de seleccionar el transportista, y hasta confirmar el pedido. Solo hay que modificar dos archivos en el módulo blockcart (blockcart.php y blockcart.tpl), he visto pocos usuarios preguntando sobre este tema, no se si merecería la pena ponerlo como aporte. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now