Remplacement des paramètres de configuration

Cette rubrique explique comment dériver un nom de variable d’environnement connaissant un chemin de configuration. Vous pouvez remplacer les paramètres de configuration Adobe Commerce à l’aide de variables d’environnement. Par exemple, vous pouvez remplacer la valeur de l’URL active d’un processeur de paiement sur votre système de production.

Vous pouvez remplacer la valeur de tout paramètre de configuration à l’aide de variables d’environnement ; cependant, Adobe vous recommande de conserver des paramètres cohérents à l’aide du fichier de configuration partagé, config.php, et du fichier de configuration spécifique au système, env.php, comme décrit dans la présentation générale du déploiement.

TIP
Consultez la rubrique Configuration des environnements dans le guide Commerce on Cloud Infrastructure.

Variables d’environnement

Un nom de variable d’environnement se compose de son étendue suivie de son chemin de configuration dans un format particulier. Les sections suivantes expliquent comment déterminer plus en détail un nom de variable.

Vous pouvez utiliser des variables pour l’une des opérations suivantes :

Les chemins de configuration se trouvent dans :

Noms de variables

Le format général des noms de variable des paramètres système suit :

<SCOPE>__<SYSTEM__VARIABLE__NAME>

<SCOPE> peut être :

<SYSTEM__VARIABLE__NAME> est le chemin de configuration avec des caractères de soulignement doubles remplacés par /. Pour plus d’informations, voir Étape 2 : définition des variables système.

Format de variable

<SCOPE> est séparé de <SYSTEM__VARIABLE__NAME> par deux caractères de soulignement.

<SYSTEM__VARIABLE__NAME> est dérivé du chemin de configuration d’un paramètre de configuration, qui est une chaîne délimitée / qui identifie de manière unique un paramètre particulier. Remplacez chaque caractère / du chemin de configuration par deux caractères de soulignement pour créer la variable système.

Si un chemin de configuration contient un caractère de soulignement, celui-ci reste dans la variable .

Vous trouverez une liste complète des chemins de configuration dans :

Étape 1 : recherche de la valeur de portée du site web ou de la vue de magasin

Cette section explique comment trouver et définir des valeurs de configuration système par portée (vue de magasin ou site web). Pour définir des variables de portée globale, voir Étape 2 : définition de variables de vue globale, de site web ou de magasin.

Les valeurs de portée proviennent des tables store, store_group et store_website.

  • La table store spécifie les noms et les codes des vues de magasin
  • La table store_website spécifie les noms et les codes de site web

Vous pouvez également trouver les valeurs de code à l’aide de l’Admin.

Comment lire le tableau :

  • colonne Path in Admin

    Les valeurs situées avant la virgule sont des chemins d’accès dans la navigation Admin. Les valeurs après la virgule sont des options dans le volet de droite.

  • La colonne Variable name est le nom de la variable d'environnement correspondante.

    Vous avez la possibilité de spécifier les valeurs système de ces paramètres de configuration en tant que variables d’environnement si vous le souhaitez.

    • Le nom complet de la variable est toujours ALL CAPS
    • Commencer un nom de variable avec CONFIG__ (notez deux caractères de soulignement)
    • Vous trouverez la partie <STORE_VIEW_CODE> ou <WEBSITE_CODE> d’un nom de variable dans la base de données Admin ou Commerce, comme indiqué dans les sections suivantes.
    • Vous pouvez trouver <SYSTEM__VARIABLE__NAME> comme décrit dans Étape 2 : définir des variables globales, de site web ou de vue de magasin.

Recherche d’un site web ou stockage d’une portée d’affichage dans l’administrateur

Le tableau suivant résume la manière de trouver la valeur d’affichage de site web ou de magasin dans l’administrateur.

Description
Chemin d’accès dans Admin
Nom de variable
Créer, modifier et supprimer des vues de magasin
Stores > All Stores
CONFIG__STORES__<STORE_VIEW_CODE>__<SYSTEM__VARIABLE__NAME>
Créer, modifier et supprimer des sites web
Stores > All Stores
CONFIG__WEBSITES__<WEBSITE_CODE>__<SYSTEM__VARIABLE__NAME>

Par exemple, pour trouver un site web ou stocker la valeur de portée de vue dans l’administrateur :

  1. Connectez-vous à l’administrateur en tant qu’utilisateur autorisé à consulter des sites web.

  2. Cliquez sur Stores > All Stores.

  3. Cliquez sur le nom d’un site web ou d’une vue de magasin.

    Le volet de droite s’affiche comme suit.

    Trouver un code de site web

  4. Le nom de la portée s’affiche dans le champ Code.

  5. Passez à l’ Étape 2 : définition des variables d’affichage globales, de site web ou de magasin.

Recherche d’une portée d’affichage de site web ou de magasin dans la base de données

Pour obtenir ces valeurs de la base de données :

  1. Connectez-vous à votre système de développement en tant que propriétaire du système de fichiers si vous ne l’avez pas déjà fait.

  2. Saisissez la commande suivante :

    code language-bash
    mysql -u <database-username> -p
    
  3. À l’invite mysql>, saisissez les commandes suivantes dans l’ordre indiqué :

    code language-shell
    use <database-name>;
    
  4. Utilisez les requêtes SQL suivantes pour trouver les valeurs appropriées :

    code language-shell
    SELECT * FROM STORE;
    SELECT * FROM STORE_WEBSITE;
    

    Voici un exemple :

    code language-shell
    mysql> SELECT * FROM STORE_WEBSITE;
    +------------+-------+--------------+------------+------------------+------------+
    | website_id | code  | name         | sort_order | default_group_id | is_default |
    +------------+-------+--------------+------------+------------------+------------+
    |          0 | admin | Admin        |          0 |                0 |          0 |
    |          1 | base  | Main Website |          0 |                1 |          1 |
    |          2 | test1 | Test Website |          0 |                3 |          0 |
    +------------+-------+--------------+------------+------------------+------------+
    
  5. Utilisez la valeur de la colonne code comme nom de la portée, et non la valeur name.

    Par exemple, pour définir une variable de configuration pour le site Web de test, utilisez le format suivant :

    code language-shell
    CONFIG__WEBSITES__TEST1__<SYSTEM__VARIABLE__NAME>
    

    <SYSTEM__VARIABLE__NAME> provient de la section suivante.

Étape 2 : définition de variables d’affichage globales, de site web ou de magasin

Cette section explique comment définir des variables système.

  • Pour définir des valeurs pour la portée globale (c’est-à-dire tous les sites web, magasins et vues de magasin), commencez le nom de variable par CONFIG__DEFAULT__.

  • Pour définir une valeur pour une vue de magasin ou un site web spécifique, démarrez le nom de variable comme décrit dans Étape 1 : Rechercher la valeur de portée :

    • CONFIG__WEBSITES
    • CONFIG__STORES
  • La dernière partie du nom de la variable est le chemin de configuration, qui est unique pour chaque paramètre de configuration.

Voir quelques exemples.

Le tableau suivant présente quelques exemples de variables.

Description
Chemin d’accès dans Admin (sans Magasins > Paramètres > Configuration)
Nom de variable
Nom d’hôte du serveur Elasticsearch
Catalogue > Catalog, Nom d’hôte du serveur Elasticsearch
<SCOPE>__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME
Port du serveur Elasticsearch
Catalogue > Catalog, Port du serveur Elasticsearch
<SCOPE>__CATALOG__SEARCH__ELASTICSEARCH_SERVER_PORT
Origine du pays d'expédition
Ventes > Paramètres d’expédition
<SCOPE>__SHIPPING__ORIGIN__COUNTRY_ID
URL d’administration personnalisée
Avancé > Admin
<SCOPE>__ADMIN__URL__CUSTOM
Chemin d’accès d’administration personnalisé
Avancé > Admin
<SCOPE>__ADMIN__URL__CUSTOM_PATH

Exemples

Cette section explique comment rechercher des valeurs de certains exemples de variables.

Nom d’hôte du serveur Elasticsearch

Pour rechercher le nom de variable pour la minification globale de l’HTML :

  1. Déterminez la portée.

    Il s’agit de la portée globale, de sorte que le nom de variable commence par CONFIG__DEFAULT__.

  2. Le reste du nom de la variable est CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME.

    Result : le nom de variable est CONFIG__DEFAULT__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME

Origine du pays d'expédition

Pour rechercher le nom de variable pour l’origine du pays d’expédition :

  1. Déterminez la portée.

    Recherchez la portée dans la base de données comme expliqué à l’étape 1 : recherchez la valeur de la portée de la vue de magasin ou de site web. (Vous pouvez également trouver la valeur dans l’Admin comme indiqué dans le tableau de l’étape 2 : définir des variables globales, de site web ou de vue de magasin.

    Par exemple, la portée peut être CONFIG__WEBSITES__DEFAULT.

  2. Le reste du nom de la variable est SHIPPING__ORIGIN__COUNTRY_ID.

    Result : le nom de variable est CONFIG__WEBSITES__DEFAULT__SHIPPING__ORIGIN__COUNTRY_ID

Utilisation des variables d’environnement

Définissez des valeurs de configuration en tant que variables à l’aide du tableau associé $_ENV de PHP. Vous pouvez définir les valeurs de tout script PHP qui s’exécute lors de l’exécution de Commerce.

TIP
La définition de valeurs de variable dans index.php ou pub/index.php ne fonctionne pas toujours comme prévu, car différents points d’entrée d’application peuvent être utilisés en fonction de la configuration du serveur web. En plaçant des directives $_ENV dans le fichier app/bootstrap.php, quels que soient les différents points d’entrée de l’application, les directives $_ENV s’exécutent toujours puisque le fichier app/bootstrap.php est chargé dans le cadre de l’architecture Commerce.

Voici un exemple de définition de deux valeurs $_ENV :

$_ENV['CONFIG__DEFAULT__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME'] = 'http://search.example.com';
$_ENV['CONFIG__DEFAULT__GENERAL__STORE_INFORMATION__MERCHANT_VAT_NUMBER'] = '1234';

Un exemple détaillé est présenté dans la section Définir des valeurs de configuration à l’aide de variables d’environnement.

WARNING
  • Pour utiliser les valeurs que vous définissez dans le tableau $_ENV, vous devez définir variables_order = "EGPCS"(Environnement, Get, Post, Cookie et Serveur) dans votre fichier php.ini. Pour plus d’informations, voir la documentation PHP.

  • Pour Adobe Commerce sur l’infrastructure cloud, si vous tentez de remplacer les paramètres de configuration à l’aide de l’ interface web du projet, vous devez ajouter env: en préfixe au nom de la variable. Par exemple :

Exemple de variable d’environnement
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c