Jump to content

[Résolu] Webservices : récupérer l'id du dernier objet inséré


Recommended Posts

Bonjour,

 

Est-ce que quelque chose m'échappe où il n'y a pas moyen de récupéré l'id d'un panier quand on vient de l'insérer avec un webservice ?

 

P.ex pour les clients, quand on l'ajoute, on doit connaître son adresse e-mail et on peut s'en servir comme condition pour le récupérer de la BD tjs avec le webservice et disposer de son ID.

 

Pour les paniers en revanche, il n'y a aucune valeur fixe fiable qui nous permette de s'en servir comme filtre et de récupérer l'id du panier qu'on vient d'ajouter via un webservice. Il y aurait éventuellement la date, mais là aussi, j'ai beau en spécifier une à l'ajout, elle n'est pas prise en compte une fois ajouté a la BD.

 

Dans ces conditions comment faire pour ajouter une commande qui a besoin d'un ID de client et d'un ID de panier ?

 

ps : on ne peut pas spécifier un ID lorsqu'on ajoute un de ces objets à la BD avec les webservices.

Edited by XIV-V (see edit history)
Link to comment
Share on other sites

Bonjour,

 

Dans l'idée, on associe le panier à un client.

 

On pourrait éventuellement effectuer cette requête (c'est mis en URL, pour la facilité de compréhension):

http://[...]/api/carts?filter[id_customer]=[x]&sort=id_DESC&limit=1

 

Sachant que x doit-être l'ID du client. (Donc, [id_customer]=[3] si son ID est 3).

Link to comment
Share on other sites

Merci pour ta réponse.

 

Mais j'ai trouvé une solution "plus robuste" qui évite de refaire une requête pour aller chercher qqch.

 

 $opt = array(
  'resource' => 'orders',
  'postXml' => $xml->asXML()
  );
 $order = $this->webService->add($opt);
 $order_id = $order->order->id;
 echo "Order successfully added : $order_id <br/>";  

(même code pour un panier avec la resource 'cart')

 

Quand on fait un add(), on reçoit un XML de l'objet complet en retour, il suffit ensuite d'aller chercher àl'id.

 

Ce XML ainsi retourné peut directement être modifié pour être mis à jour le cas échéant (notamment si on veut changer les date_add et date_upd, qui refusent d'être saisies lors du add() ).

Edited by XIV-V (see edit history)
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...