igniterlabs/ti-ext-smsnotify

Send SMS notifications to both restaurant and customer about an order or reservation.

Fund package maintenance!
tastyigniter
Open Collective

Installs: 13

Dependents: 0

Suggesters: 0

Security: 0

Stars: 6

Watchers: 3

Forks: 3

Open Issues: 1

Type:tastyigniter-extension

3.3.1 2023-09-08 12:52 UTC

README

This extension allows admins to configure sms notifications to be sent out when certain events happen in TastyIgniter.

Features

  • Receive SMS notifications whenever a new order has been placed
  • SMS alert to your customers about their order or reservation status
  • Customizable SMS Messages
  • Supported channels: twilio, nexmo, clickatell and plivo
  • Add your own custom SMS notification channel.

Admin Panel

Go to System > Settings > Configure SMS Channels to manage notification channels. Notification messages can be customized in the admin panel by navigating to Design > SMS Templates.

Use the SendSmsNotification Automation rule action to send out notification when certain events happen by navigating to Tools > Automations.

Usage

Example of Registering Notification channel and/or template

public function registerSmsNotifications()
{
    return [
        'channels' => [
            'twilio' => \IgniterLabs\SmsNotify\Notifications\Channels\Twilio::class,
        ],
        'template' => [
            'igniterlabs.smsnotify::_sms.new_order' => 'igniterlabs.smsnotify::default.template.text_order_placed',
        ],
    ];
}

Example of a Notification Channel Class

A notification channel class is responsible for building the settings form and setting the required configuration values.

class Twilio extends \IgniterLabs\SmsNotify\Classes\BaseChannel
{
    /**
     * Returns information about this channel, including name and description.
     */
    public function channelDetails()
    {
        return [
            'name'        => 'Twilio SMS Channel',
            'description' => '',
        ];
    }

    public function defineFormConfig()
    {
        return [
            'status' => [
                'label' => 'Status',
                'type' => 'switch',
                'default' => FALSE,
                'span' => 'left',
                'tab' => 'Twilio',
            ],
            'account_sid' => [
                'label' => 'Account SID',
                'type' => 'text',
                'tab' => 'Twilio',
            ],
            ...
        ];
    }
    
    public function send($to, $content)
    {
        //
    }
}