LogoLogo
Homepage
  • Documentations for PrestaShop 1.4
  • English documentation 1.4
    • Getting Started
    • Updating PrestaShop
    • User Guide
      • Training
      • Customizing your shop
      • Browsing the front-office
      • Connecting to the PrestaShop back-office
      • Adding Products and Product Categories
      • A Look inside the Catalog
      • Managing Customers
      • Managing Orders
      • Managing Payment Methods
      • Managing Shipping
      • Understanding Statistics
      • Managing Modules
      • Managing Employees
      • Understanding the Preferences
      • Exploring PrestaShop's Tools
      • PrestaShop Support
    • System Administrator Guide
    • Developer Guide
      • Developer tutorials
        • Using the REST webservice
          • Chapter 1 - Creating Access to Back Office
          • Chapter 2 - Discovery - Testing access to the web service with the browser
          • Chapter 3 - First steps - Access the Web service and list client
            • 3.1 - Access the web service
            • 3.2 - Handling errors
            • 3.3 - List clients
          • Chapter 4 - Retrieve Data - Retrieving a Client
          • Chapter 5 - Modification - Update client
          • Chapter 6 - Creation - Remote Online Form
          • Chapter 7 - Removal - Remove customer accounts from the database
          • Chapter 8 - Advanced Use
          • Cheat-sheet - Concepts outlined in this tutorial
        • Understanding and using hooks
        • Synchronization via Hooks
        • Modules, Classes and Controller Override
        • Modules, Override, Web Service
        • Db class good practices for Prestashop 1.4
        • Carrier modules - functions, creation and configuration
        • Creating your own payment module
        • Accelerated Security Course - Episode 1 - Never Trust Foreign Data
        • Accelerated Security Course - Episode 2 - SQL Injections
        • Accelerated Security Course - Episode 3 - XSS
        • Accelerated Security Course - Episode 4 - CSRF
      • Fundamentals
      • Creating a PrestaShop module
      • Development standard
      • Public and overloadable methods
      • Web-service reference
      • How to use the forge to contribute to PrestaShop
      • Rocky's guides
        • PrestaShop 1.4.3 Development Guide
          • Architecture
          • Overriding Files
          • Creating Modules
          • Cookie Structure
          • Database Structure
        • PrestaShop 1.4.3 Performance Guide
    • Designer Guide
      • Coding a theme
      • Design tips
      • Implementing layered navigation in a theme
    • Troubleshooting
    • FAQ
    • User contributions
    • Documentation PDFs
  • Documentation française 1.4
    • Guide de démarrage
    • Mettre à jour PrestaShop
    • Guide de l'utilisateur
      • Formation
      • Personnaliser votre boutique
      • Se connecter au back-office de Prestashop
      • Ajouter des produits et des catégories de produits
      • Un aperçu du catalogue
      • Gérer les clients
      • Gérer les commandes
      • Gérer les méthodes de paiement
      • Gérer le transport
      • Comprendre les statistiques
      • Gérer les modules
      • Gérer les employés
      • Comprendre les préférences
      • Explorer les outils de PrestaShop
      • Obtenir de l'aide
    • Guide de l'administrateur système
    • Guide du développeur
      • Fondamentaux
      • Créer un module PrestaShop
      • Tutoriels pour développeurs
        • Tutoriel Webservice REST
          • Chapitre 1 - Mise en place - Création des accès dans le Back Office
          • Chapitre 2 - Découverte - Tester l'accès au service web avec le navigateur
          • Chapitre 3 - Premiers pas - Accéder au service web et lister les clients
            • 3.1 Accéder au service web
            • 3.2 Gestion des erreurs
            • 3.3 Lister les clients
          • Chapitre 4 - Récuperer des données : Récupérer un client
          • Chapitre 5 - Modification : Mettre à jour un client
          • Chapitre 6 - Création : Formulaire d'ajout à distance
          • Chapitre 7 - Suppression : Retirer des comptes client de la base
          • Chapitre 8 – Utilisation avancée
          • Chapitre 9 - Gestion des images
          • Chapitre 10 - Gestion des prix
          • Mémento : Notions énoncées dans ce tutoriel
        • Mieux comprendre et utiliser les hooks
        • La synchronisation via les Hooks
        • Surcharge et override
        • Modules, surcharge, web service
        • Les bonnes pratiques de la classe Db sur Prestashop 1.4
        • Les modules transporteurs - fonctionnement, création, configuration
        • Cours de sécurité accéléré no. 1 - Never trust foreign data
        • Cours de sécurité accéléré no. 2 - Injections SQL
        • Cours de sécurité accéléré no. 3 - XSS
        • Cours de Sécurité accéléré no. 4 - CSRF
    • Guide du designer
      • Conseils en design
      • Créer un thème
    • Guide du Vendeur
    • Import Wiki FR
      • Dépannage
        • Changer la taille maximum de téléchargement de fichiers
        • Comment ajouter une page à PrestaShop
        • Générer le fichier .htaccess par Prestashop pour avoir des URLs simplifiées
        • Générer un nouveau mot de passe manuellement
        • Import CSV
        • Personnalisation des mails clients
        • Problème d'allocation mémoire chez 1&1
        • Problème pour se connecter après avoir effacé une langue
        • Votre site ne répond plus, une page blanche s’affiche
      • Fidéliser les Clients
      • Gestion des Taxes
      • Installer Un Module
      • Sauvegarder votre Base de Données
    • PDF de la documentation
    • Contributions des utilisateurs
    • Questions fréquentes
  • Documentación española 1.4
    • Introducción
    • Actualización de PrestaShop
    • Guía de Usuario
      • Entrenamiento
      • Personalización de su tienda
      • Exploración del front-office
      • Conexión al back-office PrestaShop
      • Añadir Productos y Categorías de Productos
      • Una Mirada Dentro del Catálogo
      • Gestión de Clientes
      • Gestión de Pedidos
      • Gestión de Métodos de Pago
      • Gestión de Envío
      • Comprensión de las Estadísticas
      • Gestión de Módulos
      • Gestión de Empleados
      • Comprensión de Preferencias
      • Exploración de las herramientas de PrestaShop
      • Soporte PrestaShop
    • Guía del Administrador del Sistema
    • Guía del Desarrollador
      • Aspectos Fundamentales
      • Creación de un módulo de PrestaShop
      • Estándares de desarrollo
      • Manuales de desarrollador
        • Utilización del servicio web REST
          • Capítulo 1 - Creación de Acceso al Back Office
          • Capítulo 2 - Descubrimiento - Pruebas de acceso al servicio web con el navegador
          • Capítulo 3 - Primeros pasos - Acceso al servicio Web y lista de clientes
            • 3.1 - Acceso al servicio web
            • 3.2 - Manejo de errores
            • 3.3 - Enumeración de clientes
          • Capítulo 4 - Recuperación de datos - Recuperación de un cliente
          • Capítulo 5 - Modificación - Actualización de cliente
          • Capítulo 6 - Creación - Formulario En Línea Remoto
          • Capítulo 7 - Eliminación - Eliminar cuentas de clientes de la base de datos
          • Capítulo 8 - Uso avanzado
        • Comprensión y uso de hooks
        • Sincronización a través de Hooks
        • Módulos, Reemplazo, Servicio Web
        • Módulos, Clases y Reemplazo del Controlador
        • Buenas prácticas de Clase DB para Prestashop 1.4
        • Módulos de transportistas - funciones, creación y configuración
        • Curso Acelerado de Seguridad - Episodio 1 - Nunca Confíe en Datos Exteriores
        • Curso Acelerado de Seguridad - Episodio 2 - Inyecciones SQL
        • Curso Acelerado de Seguridad - Episodio 3 - XSS
        • Curso Acelerado de Seguridad - Episodio 4 - CSRF
      • Referencia del servicio web
    • Guía de Diseñador
      • Codificación de un tema
      • Consejos de Diseño
    • Solución de problemas
    • Preguntas Frecuentes
Powered by GitBook
On this page
  • Préparation
  • Etape 1 : Récupération et création du formulaire
  • Etape 2 : Mise à jour de la ressource
  • Exemple d'une mise à jour

Was this helpful?

  1. Documentation française 1.4
  2. Guide du développeur
  3. Tutoriels pour développeurs
  4. Tutoriel Webservice REST

Chapitre 5 - Modification : Mettre à jour un client

PreviousChapitre 4 - Récuperer des données : Récupérer un clientNextChapitre 6 - Création : Formulaire d'ajout à distance

Last updated 4 years ago

Was this helpful?

Objectif : Une application WEB permettant de lister et de mettre à jour les informations d'un client. *Difficulté : ****

Préparation

Dupliquez le fichier lister_les_clients.php de la section 3.3 vers un fichier nommé U-CRUD.php} à la racine de votre serveur WEB.

La mise à jour des ressources via le service web est complexe, nous allons donc d'abord expliquer son fonctionnement.

Diagramme de séquence représentant la mise à jour d'une ressource :

Nous pouvons voir que le diagramme se décompose en 2 étapes :

  • Récupération de la ressource à un id définit (1 dans le diagramme) et création du formulaire.

  • Mise à jour de la ressource.

A l'endroit de la flèche, nous trouvons un « get », qui correspond à une récupération de ressource.

Cette étape est importante car il nous est nécessaire de récupérer à nouveau le fichier XML afin de le faire correspondre avec les données envoyées par le formulaire avant d'appeler "edit" pour mettre à jour la ressource.

Notez que nous aurions pu faire autrement en envoyant un XML modifié à l'aide de JavaScript et ainsi ne pas avoir de "get" dans ce processus.

Etape 1 : Récupération et création du formulaire

Récupération du fichier XML et affichage du formulaire :

// Définition de la ressource
$opt = array( 'resource' => 'customers' );

// Définition de l'ID de ressource à modifier
$opt[ 'id' ] = $_GET[ 'id' ];

// Appel du service web, récupération du fichier XML
$xml = $webService->get( $opt );

// Récupération des éléments de la ressource dans une variable (tableau)
$resources = $xml->children()->children();

// Formulaire client

Ici, l'appel est similaire à la récupération de données, c'est cette appel qui va nous permettre de créer le formulaire.

Nous allons générer le formulaire de mise à jour automatiquement.

Pour ce formulaire, utilisons des balises HTML "input" ayant comme "name" le nom de l'attribut et comme "value" la valeur de celui-ci.

Afin de ne pas perdre l'id pour la 2ème étape selon le diagramme, le formulaire va pointer sur :

?id="id du client"

Ainsi nous le récupèreront comme ceci :

$_GET[ 'id' ];

Nous aurions pu faire autrement comme de passer également cette ID en POST, mais vous verrez que cela va simplifier le traitement par la suite.

Etape 2 : Mise à jour de la ressource

Dans un premier temps, comme vous pouvez le voir dans le diagramme là ou se trouve la flèche "Note", nous allons récupérer le fichier XML, pour ceci, vous allez réaliser le même appel que pour la création du formulaire.

Si vous avez bien spécifié comme indiqué précédemment la destination du formulaire avec un id, votre appel devrait déjà se faire et le formulaire se réafficher.

Aide pour la création du formulaire :

foreach ($resources as $key => $resource)
{
echo '<tr><th>' . $key . '</th><td>';
echo '<input type="text" name="' . $key . '" value="' . $resource . '"/>';
echo '</td></tr>';
}

Une fois le fichier XML récupéré il nous faut modifier les nouvelles données avec les données reçu en POST.

Parcours des clés dans le fichier XML et mise à jours des valeurs :

foreach ( $resources as $nodeKey => $node ) {
  $resources->$nodeKey = $_POST[ $nodeKey ];
}

Nous disposons maintenant d'un fichier XML mis à jour, il ne nous reste plus qu'a l'envoyer

$opt = array( 'resource' => 'customers' ); // Définition de la ressource
$opt[ 'xml' ] = $xml->asXML();             // Définition du fichier XML
// L'appel de asXML() retourne une chaine correspondant au fichier
$xml = $webService->edit($opt);            // Appel

Exemple d'une mise à jour

Essayez maintenant de créer dans votre script U-CRUD.php la modification d'un client avec un ID définit dans le code, puis pour tous les clients.

Vérifiez à l'aide de R-CRUD.php que les informations ait bien été modifiées puis rendez dynamique l'ID du client.

Si vous rencontrez des difficultés, regardez le code de 2-Update.php.