Aucun résultat

Extensions du plugin

Ce que vous pouvez ajouter vous-même

Les modules BulkGate savent faire deux choses de plus que ce que propose l'administration. Les deux s'adressent aux développeurs — vous intervenez dans le code de votre boutique en ligne.

Extension À quoi elle sert
SMS personnalisé depuis votre code Envoyer un message depuis n'importe quel endroit de votre code, même depuis un autre plugin
Variables personnalisées Ajouter à vos modèles des données que le module ne connaît pas — un numéro de suivi, des points de fidélité, tout ce qui se trouve dans votre base de données

La prise en charge diffère selon le module :

Module SMS personnalisé Variables personnalisées
WooSMS (WooCommerce) Oui Oui
PrestaSMS (PrestaShop) Oui Oui
CartSMS (OpenCart) — Oui
Attention

L'utilisation abusive des SMS informatifs à des fins promotionnelles et marketing est strictement interdite. Vous ne pouvez envoyer de cette manière que des SMS transactionnels.

SMS personnalisé depuis votre code

Le message part comme message transactionnel, il est facturé sur le portefeuille du module et emprunte la même route que les notifications que le module envoie lui-même.

WooSMS

<?php do_action( 'bulkgate_send_sms', // le nom de l'action '420777123456', // le numéro de téléphone 'Bonjour <name>, vous avez <age> ans', // le texte avec les variables entre chevrons [ // les valeurs des variables 'name' => 'Jean', 'age' => '29', ], [ // paramètres facultatifs 'unicode' => true, // caractères accentués et emojis 'country' => 'fr', // ISO 3166 pour les numéros au format national 'senderType' => 'gText', // le type d'expéditeur 'senderValue' => 'BulkGate', // la valeur de l'expéditeur ] );

PrestaSMS

<?php Hook::exec('actionPrestaSmsSendSms', [ 'number' => '420777123456', 'template' => 'Bonjour <name>, vous avez <age> ans', 'variables' => [ 'name' => 'Jean', 'age' => '29', ], 'settings' => [ 'unicode' => true, 'country' => 'fr', 'senderType' => 'gText', 'senderValue' => 'BulkGate', ], ]);

Paramètres de l'expéditeur

senderType Signification senderValue
gSystem Un numéro système BulkGate Non utilisé
gShort Un code court Non utilisé
gText Un expéditeur alphanumérique Le texte affiché au destinataire
gOwn Votre propre numéro de téléphone Le numéro au format international
Note

L'ancien nom d'action woosms_send_sms fonctionne toujours, mais utilisez bulkgate_send_sms pour les nouvelles intégrations — il est identique dans tous les modules.

Variables personnalisées dans les modèles

À chaque notification, le module rassemble des données sur la commande et le client. Cette extension ajoute vos propres valeurs à cet ensemble, que vous utilisez ensuite dans le modèle sous la forme <variable_name>.

WooSMS

<?php use BulkGate\Plugin\{Database\Connection, Event\Variables}; add_action('bulkgate_extends_variables', function (Variables $variables, Connection $database): void { $order_id = $variables->get('order_id'); $row = $database->fetch('SELECT tracking_number FROM `order` WHERE order_id = ?', $order_id); if ($row !== null) { $variables->set('tracking_number', $row->tracking_number); } // <tracking_number> fonctionne désormais dans le modèle }, 20, 2);

PrestaSMS

Le module appelle le hook actionPrestaSmsExtendsVariables et lui transmet un tableau à deux clés — variables et database :

<?php public function hookActionPrestaSmsExtendsVariables(array $params): void { $variables = $params['variables']; $database = $params['database']; $variables->set('tracking_number', '1234567890'); }

CartSMS

OpenCart ne dispose pas de système de hooks ; l'extension se fait donc en réécrivant une classe préparée dans le fichier system/library/cartsms/cartsms/src/HookExtension.php :

<?php namespace BulkGate\CartSms; use BulkGate\Extensions; class HookExtension extends Extensions\Strict implements Extensions\Hook\IExtension { public function extend(Extensions\Database\IDatabase $database, Extensions\Hook\Variables $variables) { $row = $database->execute($database->prepare( "SELECT `tracking_no` FROM `{$database->table('order')}` WHERE `order_id` = %s LIMIT 1", [$variables->get('order_id')] ))->getRow(); if ($row) { $variables->set('tracking_no', $row->tracking_no); } } }
Avertissement

Avec CartSMS, vous réécrivez un fichier à l'intérieur même du module ; vous perdez donc la modification lors de sa mise à jour. Conservez une sauvegarde et remettez-la en place après chaque mise à jour.

Extensions prêtes à l'emploi sur GitHub

Pour les cas courants — numéros de suivi des transporteurs, points de fidélité, références de paiement — il existe des solutions prêtes à l'emploi qu'il vous suffit d'installer :

Le dossier _ready-made-solutions contient des extensions pour des plugins précis — pour WooSMS, notamment AfterShip, GLS, Nova Poshta ou le suivi des envois, pour CartSMS les points de fidélité et les numéros de suivi. WooSMS propose en outre un squelette vide dans le dossier woosms-variables-extension, un bon point de départ pour écrire votre propre extension.

Astuce

Avant de commencer à écrire votre propre code, parcourez les solutions prêtes à l'emploi — l'une d'elles suffit souvent telle quelle, ou ne nécessite que la modification des noms de tables et de colonnes.

Cette page vous a-t-elle été utile ?