Notice: You are browsing the documentation for PrestaShop 9, which is currently in development.
You might want to read the documentation for the current version, PrestaShop 8. Read the current version of this page
From
1.7.2
, Self Configurator feature was introduced in the ModuleCommand
.
Self Configurator is a feature that allows module configuration management from a command, without having to connect on the back office of the shop.
From a configuration file, the command is able to do some configuration on a specific module, e.g.:
Configuration
table.sql
filephp
scriptsComplete reference of Self Configurator: ModuleSelfConfigurator.php
You need to create a configuration file, with the yaml
format, and execute:
php bin/console prestashop:module configure <modulename> <configfilepath>
<configfilepath>
is optional. If not set, PrestaShop will try to find a file named self_config.yml
in the module’s folder (and sub-folders).The Prestashop prestashop:module
command allows you to restrict its actions on a specific shop (or group).
To do so, add an --id_shop
or an --id_shop_group
argument to the command:
php bin/console prestashop:module configure <modulename> <configfilepath> --id_shop=<id>
php bin/console prestashop:module configure <modulename> <configfilepath> --id_shop_group=<id>
The Self Configurator feature allows editing values in the Configuration
table from the configuration file.
To do so, add a configuration:
line, choose if you want to update or delete a configuration value, and add the configuration key and its value like in those examples:
configuration:
update:
PAYPAL_SANDBOX: 1
configuration:
delete:
- "PAYPAL_ONBOARDING"
create
values by specifying them in the update
section..sql
fileThe Self Configurator feature allows to execute a .sql
file with statements on your database.
To do so, add the path of your .sql
file like in this example:
sql:
- "myscript.sql"
The Self Configurator feature allows to copy files (or URLs) from the configuration file.
To do so, add your source and destination path like in those examples:
files:
- source: "../source/file.txt"
dest: "docs/file.txt"
files:
- source: "https://www.prestashop-project.org"
dest: "webpage.html"
files:
- source: "../source/file1.txt"
dest: "docs/file1.txt"
- source: "../source/file2.txt"
dest: "docs/file2.txt"
php
scriptsFor complex actions, you can execute php
code from your configuration file.
Your file must contain a class implementing the interface PrestaShop\PrestaShop\Adapter\Module\Configuration\ModuleComplexConfigurationInterface
: see reference here.
The class name needs to match the file name.
You have to declare a method: public function run(ModuleInterface $module, array $params);
Create a file named ConfigurationScript.php
with this content:
use PrestaShop\PrestaShop\Adapter\Module\Configuration\ModuleComplexConfigurationInterface;
class ConfigurationScript implements ModuleComplexConfigurationInterface
{
public function run(ModuleInterface $module, array $params)
{
}
}
And add to the configuration file:
php:
- file: "ConfigurationScript.php"
The method will receive the module’s name, and an empty array $params
.
To add a parameter with key myParam1
and value 1
, do the following:
php:
- file: "ConfigurationScript.php"
params:
- myParam1: 1
To add a parameter of type array
, with key oneArrayParam
and the following value ["value1", "value2", "withSpecificKey" => "value3"]
, do the following:
php:
- file: "ConfigurationScript.php"
params:
- oneArrayParam:
- "value1"
- "value2"
- withSpecificKey: "value3"
# This file is an example of data configuration which can be applied to a module
# Paths are relative to the config file!
# Update data in Configuration table
configuration:
update:
# Option 1: having a pair key/value
PAYPAL_SANDBOX: 1
PAYPAL_API_CARD: 0
# Option 2: use "value" subkey. Will allow to use addtionnal keys later
PAYPAL_SANDBOX_2:
value: 1
delete:
- "PAYPAL_ONBOARDING"
# Execute sql files
sql:
- "sql/default-config.sql"
# Copy files
files:
- source: "../source/file.txt"
dest: "docs/file.txt"
- source: "https://www.prestashop.com"
dest: "webpage.html"
# Execute php script
php:
- file: "ConfigurationScript.php"
params:
- myParam1: 1
- oneArrayParam:
- "value1"
- "value2"
- withSpecificKey: "value3"