Download the PHP package tastyigniter/ti-ext-automation without Composer
On this page you can find all versions of the php package tastyigniter/ti-ext-automation. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download tastyigniter/ti-ext-automation
More information about tastyigniter/ti-ext-automation
Files in tastyigniter/ti-ext-automation
Package ti-ext-automation
Short Description Configure automation rules to be triggered when other specific actions have taken place.
License MIT
Informations about the package ti-ext-automation
Introduction
The TastyIgniter Automation extension allows you to automate certain actions within your TastyIgniter application. These automations are triggered when specific events occur, such as a change in order state. Actions can include sending an email to a customer or sending print jobs to a printer when an order status.
Features
- Event-driven automation system
- Customizable automation actions
- Conditional automation rules
- Background processing using Laravel Queue
- Global parameters available to all automation rules
- Extendable with custom events, actions, and conditions
Installation
You can install the extension via composer using the following command:
Run the database migrations to create the required tables:
Automation workflow
The Automation extension follows a specific workflow when an automation is triggered:
- The extension registers associated actions, conditions, and events using the registerAutomationRules method.
- When a system event is triggered, the parameters of the event are captured, along with any global parameters.
- These captured parameters are then attached to a job and placed onto the queue for background processing.
- The job retrieves all automation rules that match the triggered system event and runs them.
- The automation conditions are checked to ensure that any required conditions are met.
- Finally, the automation actions associated with the triggered rules are executed using the captured parameters.
Usage
You can manage automations in the admin panel by navigating to Tools > Automations.
Defining events
An event class is responsible for preparing the parameters passed to the conditions and actions.
Automation Event classes are typically stored in the src/AutomationRules/Events
directory of an extension. The Event class is a simple class that extends Igniter\Automation\Classes\BaseEvent
and defines the eventDetails
and makeParamsFromEvent
methods.
Here is an example of an event class:
The eventDetails
method returns information about the event, including the name and description. The makeParamsFromEvent
method prepares the captured parameters passed to the conditions and actions.
These are the available options for the eventDetails
method:
name
- The name of the event. This is displayed in the admin panel.description
- A description of the event. This is displayed in the admin panel.group
- The group to which the event belongs. This is used to group events in the admin panel.
Defining actions
A action class defines the final step in an automation and performs the automation.
Action classes are typically stored in the src/AutomationRules/Actions
directory of an extension. The Action class is a simple class that extends Igniter\Automation\Classes\BaseAction
and defines the actionDetails
, defineFormFields
, and triggerAction
methods.
The actionDetails
method returns information about the action, including the name and description. The defineFormFields
method defines the form fields required for the action, see TastyIgniter's available form field types. You can access fields defined in the defineFormFields
method using $this->model->field_name
. The triggerAction
method performs the automation action.
These are the available options for the actionDetails
method:
name
- The name of the action. This is displayed in the admin panel.description
- A description of the action. This is displayed in the admin panel.
Defining conditions
A condition class is used to check whether a condition is true or false.
Automation condition classes are typically stored in the extensions's src/AutomationRules/Conditions
directory. The Condition class is a simple class that extends Igniter\Automation\Classes\BaseCondition
and defines the conditionDetails
and isTrue
methods.
The conditionDetails
method returns information about the condition, including the name and description. The isTrue
method checks whether the condition is true for the specified parameters.
These are the available options for the conditionDetails
method:
name
- The name of the condition. This is displayed in the admin panel.description
- A description of the condition. This is displayed in the admin panel.
Defining model attribute conditions
Just like the condition class above, a model attribute condition class applies conditions to sets of model attributes.
Automation model attribute condition classes are typically stored in the extensions's src/AutomationRules/Conditions
directory. The model attribute condition class is a simple class that extends Igniter\Automation\Classes\BaseCondition
and defines the conditionDetails
, defineModelAttributes
, and isTrue
methods.
The defineModelAttributes
method defines the model attributes and labels required for the condition.
Registering automation events, actions, and conditions
After creating the condition classes, you can make them available in the admin panel by registering them in the registerAutomationRules
method of the extension class.
The registerAutomationRules
method should return an array with the following keys:
events
- an array of event class that triggers an automation.actions
- an array of action class that performs a task when an automation is triggered.conditions
- an array of condition class that checks whether a condition is true or false before an action is performed.presets
- predefined automation rules available in the admin panel.
Registering global parameters
Global parameters are available to all automation rules. You can register global parameters in the boot
method of the extension class.
Permissions
The Automation extension registers the following permissions:
Igniter.Automation.Manage
: Control who can manage automations in the admin area.
For more on restricting access to the admin area, see the TastyIgniter Permissions documentation.
Changelog
Please see CHANGELOG for more information on what has changed recently.
Reporting issues
If you find a bug in this extension, please report it using the Issue Tracker on GitHub.
Contributing
Contributions are welcome! Please read TastyIgniter's contributing guide.
Security vulnerabilities
For reporting security vulnerabilities, please see our our security policy.
License
TastyIgniter Automation extension is open-source software licensed under the MIT license.