Documentation du code de SPIP et de ses plugins

Commandes

commandes.php

Fonctions (bis) du plugin Commandes

Tags
plugin

Commandes

copyright

2014

author

Ateliers CYM, Matthieu Marcillaud, Les Développements Durables

licence

GPL 3

Table of Contents

Functions

creer_commande_encours()  : int
Créer une commande avec le statut `encours` pour le visiteur actuel.
commandes_supprimer()  : bool
Supprimer une ou plusieurs commandes et leurs données associées
commandes_effacer()  : bool
Supprimer des commandes
commandes_ajouter_detail()  : int
Ajouter une ligne de detail dans une commande
commandes_supprimer_detail()  : bool
Supprimer un ou plusieurs détails d'une commande
commandes_envoyer_notification()  : mixed
Envoyer un mail de notification
commandes_notifier()  : void
Traitement des notifications par email d'une commande
commandes_appliquer_taxes()  : mixed
Mettre a jour les taxes d'une commande selon exoneration ou non
commandes_actualiser_statut_si_commande_envoyee()  : false|string
Mettre à jour le statut envoye/retour/retour_partiel d'une commande après envois appelee automatiquement au changement de statut de commande a appeler manuellement si on marque des details 'envoye' ou 'retour'
traiter_notifications_commande()  : mixed
legacy

Functions

creer_commande_encours()

Créer une commande avec le statut `encours` pour le visiteur actuel.

creer_commande_encours([int $id_auteur = 0 ]) : int

On part du principe qu'il ne peut y avoir qu'une seule commande encours par session, aussi on supprime de la base toute ancienne commande encours présente en session avant d'en créer une nouvelle. L'identifiant de la nouvelle commande est ensuite placé dans la session.

Si le visiteur n'est pas identifie mais connu, on peut passer son id_auteur en argument pour permettre le rattachement de la commande a son compte mais attention dans tous les cas la commande sera associee a la session en cours. C'est utile si par exemple on demande l'email au visiteur dans le processus d'achat mais on veut pas l'obliger a se connecter pour simplifier le workflow : il peut faire tout le processus en restant non connecte, mais la commande sera quand meme rattachee a son compte Et ca permet aussi de faire une commande pour le compte de quelqu'un d'autre sans avoir besoin de ses identifiants (ie payer un abonnement a un ami)

Parameters
$id_auteur : int = 0

permet de preciser l'id_auteur de la session au cas ou le visiteur n'est pas connecte mais connu (par son email qu'il a rentre dans le processus de commande par exemple)

Tags
uses
commandes_reference()
uses
commande_inserer()
Return values
int

$id_commande identifiant SQL de la commande

commandes_supprimer()

Supprimer une ou plusieurs commandes et leurs données associées

commandes_supprimer(int|array<string|int, mixed> $ids_commandes) : bool

La fonction va supprimer :

  • les détails des commandes
  • les liens entre les commandes et leurs adresses
  • les adresses si elles sont devenues orphelines
Parameters
$ids_commandes : int|array<string|int, mixed>

Identifiant d'une commande ou tableau d'identifiants

Tags
used-by
action_supprimer_commande_dist()
used-by
commandes_supprimer_detail()
Return values
bool
  • false si pas d'identifiant de commande transmis
  • true sinon

commandes_effacer()

Supprimer des commandes

commandes_effacer(int|array<string|int, mixed> $ids_commandes) : bool
Parameters
$ids_commandes : int|array<string|int, mixed>

Identifiant d'une commande ou tableau d'identifiants

Tags
deprecated

Alias de commandes_supprimer() pour rétro-compatibilité

see
commandes_supprimer()
Return values
bool
  • false si pas d'identifiant de commande transmis
  • true sinon

commandes_ajouter_detail()

Ajouter une ligne de detail dans une commande

commandes_ajouter_detail(int $id_commande, array<string|int, mixed> $emplette[, bool $ajouter = true ]) : int
Parameters
$id_commande : int
$emplette : array<string|int, mixed>

objet : type de l'objet ajoute id_objet : id de l'objet ajoute quantite : quantite ajoutee infos_extras : tableau PHP d'informations quelconques

$ajouter : bool = true
Return values
int

commandes_supprimer_detail()

Supprimer un ou plusieurs détails d'une commande

commandes_supprimer_detail([int $id_commande = 0 ][, int|array<string|int, mixed> $ids_details = [] ][, bool $supprimer_commande = false ]) : bool

On supprime les détails correspondant à commande dans la table spip_commandes_details. Si tous ses détails sont supprimés par l'opération, la commande peut également être supprimée en présence du paramètre adéquat.

Parameters
$id_commande : int = 0

Identifiant de la commande

$ids_details : int|array<string|int, mixed> = []

Identifiant d'un détail ou tableau d'identifiants

$supprimer_commande : bool = false

true pour effacer la commande si elle est vide après l'opération

Tags
uses
commandes_supprimer()
used-by
action_supprimer_detail_commande()
Return values
bool

false si pas d'identifiant de commande transmis, ou si pas autorisé à supprimer true sinon

commandes_envoyer_notification()

Envoyer un mail de notification

commandes_envoyer_notification(string $qui, string $id_type, int $id_commande, string $expediteur, array<string|int, mixed> $destinataires) : mixed
  • On veut envoyer du html pour que le tableau de commandes soit lisible par le client
  • On peut avoir un expediteur specifique
  • Mais notifications_envoyer_mails() de spip ne peut pas envoyer de mails en html. On ne peut pas non plus y specifier un expediteur. Donc si les plugins notifications_avancees et Facteur sont presents, on prepare un joli mail en html. Sinon un moche en texte.
Parameters
$qui : string

: vendeur ou client

$id_type : string
$id_commande : int
$expediteur : string
$destinataires : array<string|int, mixed>
Tags
deprecated
see
commandes_notifier()

commandes_notifier()

Traitement des notifications par email d'une commande

commandes_notifier([int|string $id_commande = 0 ][, string|null $statut_ancien = null ]) : void

Selon les options de configuration et le statut de la commande, des emails seront envoyés au(x) vendeur(s) et optionnellement au client. Nécessite le plugin "Notifications avancées" pour fonctionner. Avec le plugin Facteur, les messages seront au format HTML, sinon au format texte.

Parameters
$id_commande : int|string = 0

Identifiant de la commande

$statut_ancien : string|null = null
Tags
uses
notifications()
used-by
commande_inserer()
used-by
commande_instituer()
used-by
traiter_notifications_commande()

commandes_appliquer_taxes()

Mettre a jour les taxes d'une commande selon exoneration ou non

commandes_appliquer_taxes(int $id_commande, string $exoneration_raison) : mixed
Parameters
$id_commande : int
$exoneration_raison : string

commandes_actualiser_statut_si_commande_envoyee()

Mettre à jour le statut envoye/retour/retour_partiel d'une commande après envois appelee automatiquement au changement de statut de commande a appeler manuellement si on marque des details 'envoye' ou 'retour'

commandes_actualiser_statut_si_commande_envoyee(int $id_commande[, mixed $statut_ancien = null ][, mixed $instituer = true ]) : false|string
Parameters
$id_commande : int
$statut_ancien : mixed = null
$instituer : mixed = true
Return values
false|string

traiter_notifications_commande()

legacy

traiter_notifications_commande([int $id_commande = 0 ]) : mixed
Parameters
$id_commande : int = 0
Tags
uses
commandes_notifier()

        
On this page

Search results