Jump to content

Connexion à l'historique des commandes via curl


Recommended Posts

Bonjour à tous,

 

J'ai besoin de votre aide.

Je voudrais créer un lien de connexion entre un script externe et mon site prestashop. Le script externe créé un nouvel utilisateur et ensuite, je voudrais que ce nouvel utilisateur soit connecté automatiquement à son compte client sur le site "principal" prestashop. 

J'ai essayé de le faire avec curl mais les paramètres ne sont pas lu par prestashop. Au niveau de mon script je fais ceci : 

 

                $useragent = "Mozilla/5.0";
                $timeout = 30; 
 
                $ch = curl_init();
                $data = array('email' => $_POST['usermail'], 'passwd'=>$_POST['userpass'], 'action' =>'SubmitLogin' );
 
                curl_setopt($ch, CURLOPT_URL, $url);
                curl_setopt($ch, CURLOPT_POST, 1);
                curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
                curl_exec($ch);    
                
                header('Location: index.php?controller=history');

 

Le problème est que dans la fonction postProcess de AuthController aucun des paramètres passés dans mon curl n'existe. 

Je ne comprends pas pourquoi

Pour information, le script est dans un répertoire à côté de prestashop.

 

Merci d'avance de votre aide

Link to comment
Share on other sites

Bonjour,

 

Pour un problème un peu près similaire j'avais créé un module ( sur une version prestashop 1.5 ) qui permets de s’identifier comme n'importe quel client uniquement à partir de son identifiant.
Il faudrait certainement l'adapter mais si ça peut te donner un début de piste voici le contenu du controller front.

<?php

/**
 * Controller Front pour s'identifier comme n'importe quel client
 *
 */
class MyModuleLoginModuleFrontController extends ModuleFrontController {
    
    
    
    /**
     * Initialisation de la page
     */
    public function init() {
        
        parent::init();
        
        //Récupération des paramètres d'identification
        $id_customer = Tools::getValue('id_customer');
        
        //Nouveau client
        $customer = new Customer($id_customer);
             
		//Si un client est déjà connecté on le déconnecte
		if ( $this->context->customer->id )
			$this->context->customer->logout();
			
		
		//On s'identifie avec le nouveau client et on initialise les données
		$this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
		$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;
		$customer->logged = 1;
		$this->context->cookie->is_guest = $customer->isGuest();
		$this->context->cookie->passwd = $customer->passwd;
		$this->context->cookie->email = $customer->email;

		// Add customer to the context
		$this->context->customer = $customer;

		if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0))
			$this->context->cookie->id_cart = (int) Cart::lastNoneOrderedCart($this->context->customer->id);

		// Update cart address
		$this->context->cart->id = $this->context->cookie->id_cart;
		$this->context->cart->setDeliveryOption(null);
		$this->context->cart->id_address_delivery = Address::getFirstCustomerAddressId((int) ($customer->id));

		$this->context->cart->id_address_invoice = Address::getFirstCustomerAddressId((int) ($customer->id));
		$this->context->cart->secure_key = $customer->secure_key;
		$this->context->cart->update();
		$this->context->cart->autosetProductAddress();
		
		//Redirection vers l'index du site
		 Tools::redirect('index.php');
            
        
        
        
        
        
        
        
        
    }
    
}

?>

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