Warning: You are browsing the documentation for PrestaShop 8, which is outdated.
You might want to read an updated version of this page for the current version, PrestaShop 9. Read the updated 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"