Jump to content

1.7.8 enlace de backoffice a frontoffice "pagar desde el frontoffice" no funciona bien. No loguea.


Recommended Posts

Hola,

Testando la última versión de presta he verificado que cuando quiero dar de alta un pedido desde el backoffice utilizando el enlace "pagar desde el frontoffice"(antes llamado "ir a la página de pago para procesar el pago", los datos de cliente del checkout aparecen vacíos. En mi tienda live cuando uso este enlace accedo directamente al checkout con los datos del cliente logueados y todas las casillas del checkout rellenas con los datos del cliente. Usamos onepagecheckout y tenemos la última versión. Alguien ha experimentado esto? Cómo podría intentar solventarlo? Gracias.

Link to comment
Share on other sites

  • 10 months later...

Manda cojones....vamos como los cangrejos. Con lo útil que era esta opción para poder tomar un pedido telefónico y poder contactar con el tpv virtual desde el front logeado como el cliente. O simplemente para logearte y comprobar alguna anomalía que el cliente pudiera comunicarte telefónicamente. 

Link to comment
Share on other sites

  • 3 weeks later...

https://github.com/PrestaShop/PrestaShop/issues/31489

 

Respuesta del bug:

 

How to fix it:

create a FrontController.php file in /override/classes/controller/

rewrite the recovertCart() function to fix it:
`<?php
class FrontController extends FrontControllerCore
{

/**

Recovers cart information.

@return int|false
*/
protected function recoverCart()
{
if (($id_cart = (int) Tools::getValue('recover_cart')) && Tools::getValue('token_cart') == md5(COOKIE_KEY . 'recover_cart_' . $id_cart)) {
$cart = new Cart((int) $id_cart);
if (Validate::isLoadedObject($cart)) {
$customer = new Customer((int) $cart->id_customer);
if (Validate::isLoadedObject($customer)) {
$customer->logged = 1;
$this->context->customer = $customer;
$this->context->cookie->id_customer = (int) $customer->id;
$this->context->cookie->customer_lastname = $customer->lastname;
$this->context->cookie->customer_firstname = $customer->firstname;
$this->context->cookie->logged = 1;
$this->context->cookie->check_cgv = 1;
$this->context->cookie->is_guest = $customer->isGuest();
$this->context->cookie->passwd = $customer->passwd;
$this->context->cookie->email = $customer->email;

// extra patch line

$this->context->cookie->registerSession(new CustomerSession());

// end patch return

$id_cart; } }

} else {
return false;
}
}
}
`

 

-> Yo he añadido estas líneas directamente en el archivo original (sin override) y parece que funciona bien

 

// extra patch line

$this->context->cookie->registerSession(new CustomerSession());

// end patch return

Edited by Prestapepe (see edit history)
Link to comment
Share on other sites

19 hours ago, Prestapepe said:

https://github.com/PrestaShop/PrestaShop/issues/31489

 

Respuesta del bug:

 

How to fix it:

create a FrontController.php file in /override/classes/controller/

rewrite the recovertCart() function to fix it:
`<?php
class FrontController extends FrontControllerCore
{

/**

Recovers cart information.

@return int|false
*/
protected function recoverCart()
{
if (($id_cart = (int) Tools::getValue('recover_cart')) && Tools::getValue('token_cart') == md5(COOKIE_KEY . 'recover_cart_' . $id_cart)) {
$cart = new Cart((int) $id_cart);
if (Validate::isLoadedObject($cart)) {
$customer = new Customer((int) $cart->id_customer);
if (Validate::isLoadedObject($customer)) {
$customer->logged = 1;
$this->context->customer = $customer;
$this->context->cookie->id_customer = (int) $customer->id;
$this->context->cookie->customer_lastname = $customer->lastname;
$this->context->cookie->customer_firstname = $customer->firstname;
$this->context->cookie->logged = 1;
$this->context->cookie->check_cgv = 1;
$this->context->cookie->is_guest = $customer->isGuest();
$this->context->cookie->passwd = $customer->passwd;
$this->context->cookie->email = $customer->email;

// extra patch line

$this->context->cookie->registerSession(new CustomerSession());

// end patch return

$id_cart; } }

} else {
return false;
}
}
}
`

 

-> Yo he añadido estas líneas directamente en el archivo original (sin override) y parece que funciona bien

 

// extra patch line

$this->context->cookie->registerSession(new CustomerSession());

// end patch return

Muchas gracias, pasaré esta url a mi desarrollador para que pueda incluir este código.

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...