Jump to content

Poder redirigir URL de carrito hacia Prestashop


Recommended Posts

Hola.

Estoy desarrollando un carrito de compra, en este caso desde Wordpress, y quiero que al final del proceso pueda redirigir el proceso de manera que me aparezca mi carrito en el Prestashop.

Los productos ya los estoy recogiendo mediante webservice, y al dar a finalizar estoy creando el carrito en el prestashop. De esta manera tengo todos los datos: número de carrito, tienda, clave...

Ahora lo que necesito es poder redirigir el proceso hacia el prestashop, de manera que tenga allí el carrito que acabo de crear y pueda finalizarlo.

No sé cómo he de montar la URL (tienda.com/carrito/id_cart?) de manera que reconozca el carrito y me lo muestre sin problemas.

Espero que me podáis echar una mano.

Gracias!

Link to comment
Share on other sites

Lo que buscas está en la función FrontController::recoverCart. Tienes que pasar 2 parámetros en la URL: recover_cart (que es el id del carrito) y token_cart (que se genera a partir del id del carrito y la cookie key de la instalación de PS).

NOTA: Desconozco que estás haciendo exactamente con un Wordpress que crea un carrito de compras en PS mediante webservice para luego ir a PS a terminar la compra, pero da un poco de miedo esta "interacción". No habría una solución mas simple, sin tantos intermediarios?

Link to comment
Share on other sites

Hola.

Se ha creado un wordpress donde, mediante un plugin, listamos productos del Prestashop y sus fichas. No son todos los productos del origen, sólo los de una categoría en concreto. Se ha utilizado como punto central el Prestashop para tener allí los productos y que cualquier cambio aparezca en el otro site.

En el Wordpress ya hemos creado el carrito y al dar a enviar se genera el carrito en el Prestashop. He estado mirando la función que me indicas, es justo esa, pero mediante Webservice no veo cómo utilizarla. Tampoco el generar a mano la URL, de manera que mediante la id del carrito y de la token cart haga aparecer el carrito seleccionado.

Muchas gracias por la ayuda.

Saludos!

Link to comment
Share on other sites

Cualquier URL de PS que generes usando correctamente los parámetros anteriores debería hacer que se recupere y cargue el carrito (siempre y cuando el carrito este creado, sea valido y no tenga ningún problema de permisos como por ejemplo que pertenezca a otro cliente). Ejemplo https://tiendaprestashop.com?recover_cart=45&token_cart=XXXXXXXXXXXXXXXXX

Suerte!!

Link to comment
Share on other sites

Hola.

Muchas gracias! Ahora lo que me estoy encontrando es que el token_cart no lo estoy generando correctamente, o imagino que es eso porque la página no salta pero en cambio no me sale ningún producto del carrito. Estoy utilizando un carrito que no es de ningún cliente, por aquello de que haya problemas con el tema permisos. Estoy utilizando este código:


 

$id_cart = 123;

$cookie_key = 'abcdef1234567890';

$token_cart = hash_hmac('sha256', $id_cart.$cookie_key, _COOKIE_KEY_);

echo $token_cart;

 

En principio, el $cookie_key y el _COOKIE_KEY_ son lo mismo aunque uno sea por variable y el otro por constante. O quizás aquí está mi error, no lo sé aún.

 

Muchas gracias!

Link to comment
Share on other sites

5 hours ago, davidegea said:

Hola.

Muchas gracias! Ahora lo que me estoy encontrando es que el token_cart no lo estoy generando correctamente, o imagino que es eso porque la página no salta pero en cambio no me sale ningún producto del carrito. Estoy utilizando un carrito que no es de ningún cliente, por aquello de que haya problemas con el tema permisos. Estoy utilizando este código:


 

$id_cart = 123;

$cookie_key = 'abcdef1234567890';

$token_cart = hash_hmac('sha256', $id_cart.$cookie_key, _COOKIE_KEY_);

echo $token_cart;

 

En principio, el $cookie_key y el _COOKIE_KEY_ son lo mismo aunque uno sea por variable y el otro por constante. O quizás aquí está mi error, no lo sé aún.

 

Muchas gracias!

Pues si viste el código fuente en PS, está claro que el token_cart se debería generar así y no como lo estas haciendo (por cierto, de donde sacaste la idea de como generar el token_cart de esa manera??)

md5(_COOKIE_KEY_ . 'recover_cart_' . $id_cart)

 

Link to comment
Share on other sites

Hola.

Vi en el código que era como me estás indicando, pero no me funcionaba y estuve buscando a ver si se generaba de otra manera.

Ahora volviendo a generarlo como me indicas me encuentro que igual, no me funciona. La tengo puesta así:

https://mitienda.com/index.php?controller=cart&recover_cart=127972&token_cart=94abc9b5f96d9108086c9e5456ef6dc6

 

He añadido el index.php?controller=cart para acceder al carrito una vez hagamos la llamada, pero tampoco.

No sé si alguna opción de configuración debe ser modificada para que acceda a visualizar el carrito.

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...