Substituir definições de configuração

Este tópico discute como derivar um nome de variável de ambiente conhecendo um caminho de configuração. Você pode substituir as definições de configuração do Adobe Commerce usando variáveis de ambiente. Por exemplo, você pode substituir o valor do URL ativo de um processador de pagamento em seu sistema de produção.

Você pode substituir o valor de qualquer definição de configuração usando variáveis de ambiente; no entanto, o Adobe recomenda que você mantenha configurações consistentes usando o arquivo de configuração compartilhado, config.php, e o arquivo de configuração específico do sistema, env.php, conforme discutido em Visão geral da implantação.

TIP
Confira o tópico Configurar ambientes no guia do Commerce sobre a infraestrutura na nuvem.

Variáveis de ambiente

Um nome de variável de ambiente consiste em seu escopo seguido por seu caminho de configuração em um formato específico. As seções a seguir discutem como determinar um nome de variável com mais detalhes.

É possível usar variáveis para qualquer um dos seguintes:

Os caminhos de configuração podem ser encontrados em:

Nomes de variáveis

O formato geral dos nomes das variáveis de configurações do sistema é o seguinte:

<SCOPE>__<SYSTEM__VARIABLE__NAME>

<SCOPE> pode ser:

<SYSTEM__VARIABLE__NAME> é o caminho de configuração com caracteres de sublinhado duplo substituído por /. Para obter mais informações, consulte Etapa 2: definir variáveis do sistema.

Formato da variável

<SCOPE> está separado de <SYSTEM__VARIABLE__NAME> por dois caracteres sublinhados.

<SYSTEM__VARIABLE__NAME> é derivado do caminho de configuração de uma definição de configuração, que é uma cadeia de caracteres delimitada por / que identifica exclusivamente uma configuração específica. Substitua cada / caractere no caminho de configuração por dois caracteres sublinhados para criar a variável de sistema.

Se um caminho de configuração contiver um caractere de sublinhado, ele permanecerá na variável.

Uma lista completa de caminhos de configuração pode ser encontrada em:

Etapa 1: Localizar o valor do escopo de exibição do site ou da loja

Esta seção discute como você pode encontrar e definir valores de configuração do sistema por escopo (exibição de loja ou site). Para definir variáveis de escopo globais, consulte Etapa 2: Definir variáveis de exibição globais, de site ou de repositório.

Os valores de escopo vêm das tabelas store, store_group e store_website.

  • A tabela store especifica nomes e códigos de exibição de armazenamento
  • A tabela store_website especifica nomes e códigos de sites

Você também pode encontrar os valores do código usando o Admin.

Como ler a tabela:

  • Path in Admin coluna

    Os valores antes da vírgula são caminhos na navegação de Admin. Os valores depois da vírgula são opções no painel direito.

  • A coluna Variable name é o nome da variável de ambiente correspondente.

    Você tem a opção de especificar valores do sistema para esses parâmetros de configuração como variáveis de ambiente, se desejar.

    • O nome inteiro da variável é sempre ALL CAPS
    • Iniciar um nome de variável com CONFIG__ (observe dois caracteres sublinhados)
    • Você pode encontrar a parte <STORE_VIEW_CODE> ou <WEBSITE_CODE> de um nome de variável no banco de dados de Administração ou Commerce, conforme indicado nas seções a seguir.
    • Você pode encontrar <SYSTEM__VARIABLE__NAME> conforme discutido em Etapa 2: definir variáveis de exibição globais, de site ou de repositório.

Localizar um escopo de exibição de site ou loja no Administrador

A tabela a seguir resume como localizar o site ou armazenar o valor da exibição no Administrador.

Descrição
Caminho no administrador
Nome da variável
Criar, editar, excluir visualizações de loja
Stores > All Stores
CONFIG__STORES__<STORE_VIEW_CODE>__<SYSTEM__VARIABLE__NAME>
Criar, editar, excluir sites
Stores > All Stores
CONFIG__WEBSITES__<WEBSITE_CODE>__<SYSTEM__VARIABLE__NAME>

Por exemplo, para localizar um site ou um valor de escopo de exibição de loja no campo Admin:

  1. Faça logon no Administrador como um usuário autorizado a visualizar sites.

  2. Clique em Stores > All Stores.

  3. Clique no nome de um site ou exibição de loja.

    O painel direito é exibido de forma semelhante ao seguinte.

    Localizar um código de site

  4. O nome do escopo é exibido no campo Code.

  5. Continuar com Etapa 2: definir variáveis de exibição globais, de site ou de repositório.

Localizar um escopo de exibição de site ou loja no banco de dados

Para obter esses valores do banco de dados:

  1. Faça logon no sistema de desenvolvimento como proprietário do sistema de arquivos, se ainda não tiver feito isso.

  2. Digite o seguinte comando:

    code language-bash
    mysql -u <database-username> -p
    
  3. No prompt mysql>, digite os seguintes comandos na ordem mostrada:

    code language-shell
    use <database-name>;
    
  4. Use as seguintes consultas SQL para localizar os valores relevantes:

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

    A seguir, há uma amostra:

    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. Use o valor da coluna code como o nome do escopo, não o valor name.

    Por exemplo, para definir uma variável de configuração para o Site de teste, use o seguinte formato:

    code language-shell
    CONFIG__WEBSITES__TEST1__<SYSTEM__VARIABLE__NAME>
    

    onde <SYSTEM__VARIABLE__NAME> vem da próxima seção.

Etapa 2: definir variáveis de exibição globais, de site ou de loja

Esta seção discute como definir variáveis do sistema.

  • Para definir valores para o escopo global (ou seja, todos os sites, lojas e exibições de loja), inicie o nome da variável com CONFIG__DEFAULT__.

  • Para definir um valor para uma exibição de loja ou site específico, inicie o nome da variável conforme discutido em Etapa 1: Localize o valor do escopo:

    • CONFIG__WEBSITES
    • CONFIG__STORES
  • A última parte do nome da variável é o caminho de configuração, que é exclusivo para cada definição de configuração.

Veja alguns exemplos.

A tabela a seguir mostra alguns exemplos de variáveis.

Descrição
Caminho no Administrador (omitindo Lojas > Configurações > Configuração)
Nome da variável
nome de host do servidor Elasticsearch
Catálogo > Catálogo, Nome de Host do Servidor Elasticsearch
<SCOPE>__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME
porta do servidor Elasticsearch
Catálogo > Catálogo, Porta do servidor Elasticsearch
<SCOPE>__CATALOG__SEARCH__ELASTICSEARCH_SERVER_PORT
Origem do país de remessa
Vendas > Configurações de envio
<SCOPE>__SHIPPING__ORIGIN__COUNTRY_ID
URL de administração personalizada
Avançado > Administrador
<SCOPE>__ADMIN__URL__CUSTOM
Caminho de administração personalizado
Avançado > Administrador
<SCOPE>__ADMIN__URL__CUSTOM_PATH

Exemplos

Esta seção mostra como localizar valores de algumas variáveis de exemplo.

nome de host do servidor Elasticsearch

Para localizar o nome da variável para a minificação do HTML global:

  1. Determine o escopo.

    É o escopo global, então o nome da variável começa com CONFIG__DEFAULT__

  2. O restante do nome da variável é CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME.

    Resultado: o nome da variável é CONFIG__DEFAULT__CATALOG__SEARCH__ELASTICSEARCH_SERVER_HOSTNAME

Origem do país de remessa

Para localizar o nome da variável para a origem do país de entrega:

  1. Determine o escopo.

    Localize o escopo no banco de dados conforme discutido na Etapa 1: encontre o valor do escopo de exibição do site ou do repositório. (Você também pode encontrar o valor no Administrador como mostrado na [tabela da Etapa 2: definir variáveis de exibição globais, de site ou de armazenamento] (#step-2-set-global-website-or-store-view-variables.

    Por exemplo, o escopo pode ser CONFIG__WEBSITES__DEFAULT.

  2. O restante do nome da variável é SHIPPING__ORIGIN__COUNTRY_ID.

    Resultado: o nome da variável é CONFIG__WEBSITES__DEFAULT__SHIPPING__ORIGIN__COUNTRY_ID

Como usar variáveis de ambiente

Defina os valores de configuração como variáveis usando a matriz associada $_ENV do PHP. Você pode definir os valores em qualquer script PHP executado quando o Commerce é executado.

TIP
A definição de valores de variável em index.php ou pub/index.php nem sempre funciona como esperado, pois diferentes pontos de entrada de aplicativo podem ser usados, dependendo da configuração do servidor Web. Ao colocar diretivas $_ENV no arquivo app/bootstrap.php, independentemente dos diferentes pontos de entrada do aplicativo, as diretivas $_ENV sempre são executadas, pois o arquivo app/bootstrap.php é carregado como parte da arquitetura do Commerce.

Este é um exemplo de configuração de dois valores $_ENV:

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

Um exemplo passo a passo é mostrado em Definir valores de configuração usando variáveis de ambiente.

WARNING
  • Para usar os valores definidos na matriz $_ENV, você deve definir variables_order = "EGPCS"(Ambiente, Obtenção, Publicação, Cookie e Servidor) no arquivo php.ini. Para obter detalhes, consulte documentação sobre PHP.

  • Para o Adobe Commerce na infraestrutura em nuvem, se você estiver tentando substituir as definições de configuração usando a Interface da Web do Project, você deve anexar o nome da variável a env: como prefixo. Por exemplo:

Exemplo de variável de ambiente
recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c