xabikip Posted February 28, 2014 Share Posted February 28, 2014 (edited) Buenas, Necesito que en el proceso de compra no esten los pasos 2.Login, 3.Dirección y 4.Envio. Ya se que es un poco raro, pero es lo que requiere mi tienda. ¿Como creeis que se podria hacer esto? 2.Login Para saltarse el login podria tener un usuario ya logueado y que simpre tire de hay.¿Como lo veis?¿Alguna otra idea? 3.Direccion Podria crear un producto virtual pero la pega es que los virtuales no posibilitan combinaciones y esta opcion si que la necesito. ¿Tendria que modificar codigo?¿Cual? 4.Envio ¿Como podria saltarme este paso? Cualquier idea de como se podria saltarse cualquiera de estos pasos sera bienvenida. Gracias ;-) Edited February 28, 2014 by xabikip (see edit history) Link to comment Share on other sites More sharing options...
Feliz Garcia Posted February 28, 2014 Share Posted February 28, 2014 Referente al proceso de compra yo lo que hago es habilitar el pedido en 1 paso, desde la pestaña Preferencias -> Pedidos en 1 paso el pedido y asi te aparecen todos los pasos en una pantalla, es mas comodo que tener que darle al boton para ir paso a paso. Es cierto tambien que por el foro tienes módulos de pago que te simplifican mas el proceso de compra. ------ Referente a lo de poder usar combinaciones en productos virtuales, por el foro, vi este tema: http://www.prestashop.com/forums/topic/193059-why-a-virtual-product-cannot-have-combinations/ 1 Link to comment Share on other sites More sharing options...
xabikip Posted February 28, 2014 Author Share Posted February 28, 2014 Igual no me he explicado muy bien pero a lo que me refiero es que necesito no pedir esos datos al cliente, o sea saltarse esos pasos, no que quiera ponerlos todas en una pantalla. La idea es que el cliente agregue productos al carrito y una vez confirmado el carrito que directamente vaya al paso de pagar, saltando todos los demás pasos. ¿Me explico? Link to comment Share on other sites More sharing options...
ReinaTBQ Posted April 2, 2014 Share Posted April 2, 2014 xabikip!! Lograste quitar los pasos??? yo tengo el mismo problema.. has logrado modificar el codigo? Link to comment Share on other sites More sharing options...
xabikip Posted April 2, 2014 Author Share Posted April 2, 2014 Si que lo logre. Hay que modificar el orderController.php y order-steps.tpl. Ahora no tengo acceso para ver como lo deje, pero intenta a modificarlo y si no puedes o cualquier duda comenta, mañana seguramente si que podre acceder a ver como deje estos archivos para saltarme los pasos. Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted April 2, 2014 Share Posted April 2, 2014 Si que lo logre. Hay que modificar el orderController.php y order-steps.tpl. Ahora no tengo acceso para ver como lo deje, pero intenta a modificarlo y si no puedes o cualquier duda comenta, mañana seguramente si que podre acceder a ver como deje estos archivos para saltarme los pasos. ¿Entonces has conseguido poder comprar solo con un "email" sin meter ningun dato mas? Me interesa saber como lo has desarrollado, cuando puedas comentalo. Muchas Gracias ! Link to comment Share on other sites More sharing options...
xabikip Posted April 2, 2014 Author Share Posted April 2, 2014 En mi caso es un poco raro, el prestashop estará en un tienda fisica en una terminal con pantalla táctil. Los usuarios solo tienen que elegir productos y pagar(sin loguearse ni crear usuario). Para ello esta siempre logeado un usuario creado por mi, con email, dirección y demás. Entonces cuando se crea el pedido si que tiene esos datos, lo unico que hago es engañarle al usuario no pidiendo estos datos y saltando directamente al paso de pago. ¿No se si me explico? Link to comment Share on other sites More sharing options...
xabikip Posted April 3, 2014 Author Share Posted April 3, 2014 Para saltarme los pasos lo que hice fue un override del OrderController.php dejando asi la funcion initContent. public function initContent() { parent::initContent(); if (Tools::isSubmit('ajax') && Tools::getValue('method') == 'updateExtraCarrier') { // Change virtualy the currents delivery options $delivery_option = $this->context->cart->getDeliveryOption(); $delivery_option[(int)Tools::getValue('id_address')] = Tools::getValue('id_delivery_option'); $this->context->cart->setDeliveryOption($delivery_option); $this->context->cart->save(); $return = array( 'content' => Hook::exec( 'displayCarrierList', array( 'address' => new Address((int)Tools::getValue('id_address')) ) ) ); die(Tools::jsonEncode($return)); } if ($this->nbProducts) $this->context->smarty->assign('virtual_cart', $this->context->cart->isVirtualCart()); // 4 steps to the order switch ((int)$this->step) { case -1; $this->context->smarty->assign('empty', 1); $this->setTemplate(_PS_THEME_DIR_.'shopping-cart.tpl'); break; case 1: $this->_assignAddress(); $this->processAddressFormat(); if (Tools::getValue('multi-shipping') == 1) { $this->_assignSummaryInformations(); $this->context->smarty->assign('product_list', $this->context->cart->getProducts()); $this->setTemplate(_PS_THEME_DIR_.'order-address-multishipping.tpl'); } else $this->setTemplate(_PS_THEME_DIR_.'order-address.tpl'); break; case 2: if (Tools::isSubmit('processAddress')) $this->processAddress(); $this->autoStep(); $this->_assignCarrier(); $this->setTemplate(_PS_THEME_DIR_.'order-carrier.tpl'); break; case 3: // Check that the conditions (so active) were accepted by the customer $cgv = Tools::getValue('cgv') || $this->context->cookie->check_cgv; if (Configuration::get('PS_CONDITIONS') && (!Validate::isBool($cgv) || $cgv == false)) Tools::redirect('index.php?controller=order&step=2'); Context::getContext()->cookie->check_cgv = true; // Check the delivery option is set if (!$this->context->cart->isVirtualCart()) { if (!Tools::getValue('delivery_option') && !Tools::getValue('id_carrier') && !$this->context->cart->delivery_option && !$this->context->cart->id_carrier) Tools::redirect('index.php?controller=order&step=2'); elseif (!Tools::getValue('id_carrier') && !$this->context->cart->id_carrier) { $deliveries_options = Tools::getValue('delivery_option'); if (!$deliveries_options) { $deliveries_options = $this->context->cart->delivery_option; } foreach ($deliveries_options as $delivery_option) if (empty($delivery_option)) Tools::redirect('index.php?controller=order&step=2'); } } $this->autoStep(); // Bypass payment step if total is 0 if (($id_order = $this->_checkFreeOrder()) && $id_order) { if ($this->context->customer->is_guest) { $order = new Order((int)$id_order); $email = $this->context->customer->email; $this->context->customer->mylogout(); // If guest we clear the cookie for security reason Tools::redirect('index.php?controller=guest-tracking&id_order='.urlencode($order->reference).'&email='.urlencode($email)); } else Tools::redirect('index.php?controller=history'); } $this->_assignPayment(); // assign some informations to display cart $this->_assignSummaryInformations(); $this->setTemplate(_PS_THEME_DIR_.'order-payment.tpl'); break; default: $this->_assignSummaryInformations(); $this->setTemplate(_PS_THEME_DIR_.'shopping-cart.tpl'); break; } $this->context->smarty->assign(array( 'currencySign' => $this->context->currency->sign, 'currencyRate' => $this->context->currency->conversion_rate, 'currencyFormat' => $this->context->currency->format, 'currencyBlank' => $this->context->currency->blank, )); } y modificar el order-steps.tpl dejando asi el <ul>, con esto eliminas los cuadros de los pasos que aparecen arriba de la pagina. <ul class="step" id="order_step"> <li class="{if $current_step=='summary'}step_current{else}{if $current_step=='payment' || $current_step=='shipping' || $current_step=='address' || $current_step=='login'}step_done{else}step_todo{/if}{/if}"> {if $current_step=='payment' || $current_step=='shipping' || $current_step=='address' || $current_step=='login'} <a href="{$link->getPageLink('order', true)}"> 1. {l s='Summary'} </a> {else} <span>1. {l s='Summary'}</span> {/if} </li> <li id="step_end" class="{if $current_step=='payment'}step_current_end{else}step_todo{/if}"> <span>5. {l s='Payment'}</span> </li> </ul> 2 Link to comment Share on other sites More sharing options...
ReinaTBQ Posted April 3, 2014 Share Posted April 3, 2014 Mil gracias xabikip...!!aunque los casos son diferentes mirare que puedo hacer que version de prestashop usabas??? .al ser un producto virtual necesito eliminar esos datos de direccion, me estoy enloqueciendo!!!.. Link to comment Share on other sites More sharing options...
desira Posted April 3, 2014 Share Posted April 3, 2014 (edited) te pide dirección si es un producto virtual? Edited April 3, 2014 by desira (see edit history) Link to comment Share on other sites More sharing options...
xabikip Posted April 3, 2014 Author Share Posted April 3, 2014 Yo lo hice en la versión 1.5 Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted April 3, 2014 Share Posted April 3, 2014 En mi caso es un poco raro, el prestashop estará en un tienda fisica en una terminal con pantalla táctil. Los usuarios solo tienen que elegir productos y pagar(sin loguearse ni crear usuario). Para ello esta siempre logeado un usuario creado por mi, con email, dirección y demás. Entonces cuando se crea el pedido si que tiene esos datos, lo unico que hago es engañarle al usuario no pidiendo estos datos y saltando directamente al paso de pago. ¿No se si me explico? Ammm yo creia que habias habilitado la compra unicamente con un email, como pasa en otras muchas tiendas, cuando comprar algun producto virtual. Link to comment Share on other sites More sharing options...
xabikip Posted April 3, 2014 Author Share Posted April 3, 2014 Bueno en ese caso podrías ocultar en el tpl, los campos que no te interesen y ponerles un default, así el usuario no rellena los datos pero a prestashop si que se los mandas y seguiría el proceso bien. Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted April 3, 2014 Share Posted April 3, 2014 (edited) Bueno en ese caso podrías ocultar en el tpl, los campos que no te interesen y ponerles un default, así el usuario no rellena los datos pero a prestashop si que se los mandas y seguiría el proceso bien. Si, el problema es que no quiera que tengan ningun valor, es decir, no quiero dejar ningun valor camuflado internamente, solo trabajar con el email y contraseña en ese caso. Edited April 3, 2014 by Sergio Ruiz (see edit history) Link to comment Share on other sites More sharing options...
xabikip Posted April 3, 2014 Author Share Posted April 3, 2014 Ya, entonces tendrás que modificar muchas cosas, como el modelo, la clase y controladores. Es un tema mas complicado. Link to comment Share on other sites More sharing options...
Recommended Posts