Posts Tagged ‘client’

Prestashop : Passer des commandes via l’api

J’ai récemment du faire des tests de commandes via les Api de Prestashop et je n’ai pas trouvé de script tout fait qui le permettait.
Celui-ci utilise la librairie fournie par Prestashop et disponible sur github : https://github.com/PrestaShop/PrestaShop-webservice-lib/blob/master/PSWebServiceLibrary.php

En voici donc un basique qui va effectuer les actions suivantes :

  • Récupération de l’identifiant client ( création du client si nécessaire )
  • Récupération de l’identifiant de l’adresse du client ( création si nécessaire )
  • Création d’un panier
  • Passage de la commande

Ce script a été exécuté avec succès sur la version 1.7.3.3 de Prestashop et doit donc être compatible avec les versions suivantes.
Je n’ai pas constaté de changement fondamentaux dans l’api par rapport à Prestashop 1.6, pour lequel il devrait également fonctionner ( en changeant les produits )

N’hésitez pas à partager vos retours d’expériences sur l’utilisation de l’api de Prestashop

 
require_once('./PSWebServiceLibrary.php');
 
try {
 
    $host = 'https://yourshop.com';
    $apiKey = 'APIKEY';
 
    $webService = new PrestaShopWebservice($host, $apiKey, false);
 
    /**
     * On stocke ici les variables communes aux commandes créés via l'api
     */
 
      $customerEmail = '[email protected]'; //Email du client ( A dynamiser dans le cadre d'une utilisation complète )
      $carrierName = 'My carrier'; //Nom du transporteur dans prestashop ( utilisé pour récupérer son identifiant )
      $paymentLabel = 'Paiement par chèque'; // Nom du mode de paiement
      $paymentCode = 'ps_checkpayment'; //Module de paiement utilisé
 
    /**
     * Liste des produits qu'on souhaite ajouter au panier
     */
    $products = [
        [
            'reference' => 'demo_12',
            'qty' => 3,
        ],
        [
            'reference' => 'demo_19',
            'qty' => 1,
        ],
        [
            'reference' => 'demo_6',
            'qty' => 2,
            'combination' => [
                'reference' => 'demo_6'
            ]
        ],
    ];
 
    //Paramètres du client
    $customerDatas = [
        'firstname' => 'herve',
        'lastname' => 'test',
        'email' => '[email protected]',
        'passwd' => 'mypassword',
        'note' => 'Customer created with api',
    ];
 
    //Paramètres de l'adresse
    $addressDatas = [
        'alias' => 'addresse api',
        'id_customer' => $customerId,
        'firstname' => 'herve',
        'lastname' => 'test',
        'address1' => 'rue des tests',
        'address2' => 'encore rue des tests',
        'postcode' => '67000',
        'city' => 'strasbourg',
        'phone' => '063656565',
        'id_country' => 8,
    ];
 
 
    //On regarde si le client existe
    $searchCustomerXml = $webService->get([
        'resource' => 'customers',
        'filter' => ['email' => $customerEmail],
    ]);
 
    //Si il existe on récupère l'identifiant
    if (!
2 commentaires

Prestashop 1.7 : Ajouter des champs clients

La version 1.7 de prestashop apporte des changements dans la gestion des champs clients.
Cet article est une mise à jour avec  des articles suivants  qui ne fonctionnent donc plus sur prestashop 1.7

Le but de ce tutoriel va d’être d’ajouter 2 nouveaux champs à l’entité client :

  • professionnal_id => champ standard qui sera un input text
  • justificatif => champ de type file

Vous trouverez l’ensemble du code en fin d’article.

Nous allons voir la base du module qui s’appellera hhcustomer et son fonctionnement global.

Pour commencer voici le code d’initialisation, d’installation / désinstallation du module.

class HhCustomer extends Module {
 
    public function __construct() {
 
        $this->name = 'hhcustomer';
        $this->tab = 'others';
        $this->author = 'hhennes';
        $this->version = '0.1.0';
        $this->need_instance = 0;
        $this->bootstrap = true;
 
        parent::__construct();
 
        $this->displayName = $this->l('hhcustomer');
        $this->description = $this->l('add new fields to customer');
        $this->ps_versions_compliancy = array('min' => '1.7.1', 'max' => _PS_VERSION_);
    }
 
    /**
     * Installation du module
     * @return boolean
     */
    public function install() {
        if (!
68 commentaires

Magento : Événements création de compte client

Un petit tip rapide, si vous souhaitez réaliser des actions lors de la création d’un compte client sous Magento, il va falloir se baser sur 2 événements :

customer_register_success : Lancé lors de la création de compte depuis le formulaire standard.

checkout_submit_all_after : Lancé à la fin du passage d’une commande.
Dans cet événement il faudra également mettre la condition suivante :

if ($observer->getQuote()->getData('checkout_method') == Mage_Checkout_Model_Type_Onepage::METHOD_REGISTER) {
 
//Votre code ici
 
}
Pas de commentaires

Magento : Ajouter des nouveaux attributs aux formulaires de création de compte

Une mise à jour de cet article pour Magento 2 est disponible : Magento 2 : Ajouter des nouveaux attributs aux formulaires de création de compte
Dans cet article nous allons voir ensemble comment ajouter proprement un nouvel attribut client qui sera affiché dans les formulaires suivants

  • Création de compte ( normal )
  • Création de compte ( checkout )
  • Création de compte ( admin )

Pour l’exemple nous allons créer un attribut « website_know », qui permettra de demander au client via quel source il a connu le site.

Le tout va être géré via un module nommé « Hhennes_Customer ».
Je ne détaillerais pas toutes les étapes de création du module mais uniquement les points particuliers.

Partie Code :

Pour commencer voici le fichier de configuration de notre module.

 <?xml version="1.0"?>
 
<config>
 
    <!-- Configuration de base du Module -->
    <modules>
        <Hhennes_Customer>
            <version>0.1.0</version>    
        </Hhennes_Customer>
    </modules>
 
    <!-- Configuration globale -->
    <global>
        <helpers>
            <hhennes_customer>
                <class>Hhennes_Customer_Helper</class>    
            </hhennes_customer>
        </helpers>
       <!-- Configuration de l'installation -->
        <resources>
            <hhennescustomer_setup>
                <setup>
                    <module>Hhennes_Customer</module>
                    <class>Mage_Customer_Model_Entity_Setup</class>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </hhennescustomer_setup>
        </resources>
        <!-- Nouveau champ de création de compte dans le checkout -->
        <fieldsets>
            <customer_account>
                <website_know>
                    <create>1</create>
                    <update>1</update>
                    <to_quote>*</to_quote>
                </website_know>
            </customer_account>
            <checkout_onepage_quote>
                <website_know>
                    <to_customer>*</to_customer>>
                </website_know>
            </checkout_onepage_quote>
        </fieldsets>
    </global>
    <frontend>
        <layout>
            <updates>
                <hhennes_customer>
                    <file>hhennes_customer.xml</file>
                </hhennes_customer>
            </updates>
        </layout>
    </frontend>
</config>

Nous reviendrons plus tard sur la signification de l’ensemble des noeuds.…

Pas de commentaires

Magento : Ajouter un champ de confirmation d’email sur les formulaires d’inscription

Afin de vous mettre à l’abri des erreurs de saisies d’email lors de la création de compte sur Magento et des ses multiples effets de bords ( Emails et informations perdus, réassurance et expérience client médiocre … ) voici comment mettre en place une solution rapide sur vos formulaires de création de compte.

Le principe est relativement simple, nous allons rajouter un nouveau champ « Confirmation email »  dans lequel l’utilisateur devra saisir à nouveau son adresse email.
Les 2 saisies de l’email permettent déjà de réduire considérablement les erreurs de frappe.

Ce tutoriel est réalisé sur la version 1.9.2 de Magento avec le thème rwd en base.

Modification des templates

Pour commencer il va falloir dupliquer les fichiers suivants contenant les formulaires de création de compte.
Du thème rwd : app/design/frontend/rwd/default/template/ dans votre thème app/design/frontend/yourtheme/default/template/

  • persistent/customer/form/register.phtml ( Création de compte standard )
  • persistent/checkout/onepage/billing.phtml ( Création de compte dans le checkout )

 

Dans le fichier register.phtml rechercher le code suivant :

<li>
<label for="email_address" class="required"><em>*</em><?php echo $this->__('Email Address') ?></label>
<div class="input-box">
<input type="email" autocapitalize="off" autocorrect="off" spellcheck="false" name="email" id="email_address" value="<?php echo $this->escapeHtml($this->getFormData()->getEmail()) ?>" title="<?php echo $this->quoteEscape($this->__('Email Address')) ?>" class="input-text validate-email required-entry" />
</div>
</li>

Puis ajouter à la suite le code suivant, qui va rajouter un nouveau champ de vérification email
Notez bien la classe validate-confirm-email qui va correspondre à la règle de validation que nous allons créer.…

Pas de commentaires


Compte Github