
A query volta com Cannot query field "meu_campo" on type "ProductInterface" e o campo está lá, escrito no schema.graphqls do seu módulo. Em nove de cada dez vezes o schema não tem culpa: é cache. O Magento costura os arquivos de todos os módulos uma vez, guarda o resultado, e enquanto a versão velha estiver de pé aquele campo simplesmente não existe para o servidor.
cd /var/www/loja
sudo -u www-data rm -rf generated/code generated/metadata
sudo -u www-data bin/magento setup:upgrade
sudo -u www-data bin/magento setup:di:compile
sudo -u www-data bin/magento cache:flushDuas ressalvas antes de colar isso em produção. A loja fica fora do ar entre o rm -rf generated/ e o fim do setup:di:compile, então rode em janela de manutenção. E o cache:clean config sozinho não adianta: o schema costurado é gravado com o id Magento_Framework_GraphQlSchemaStitching_Config_Data e sem a tag CONFIG, e o cache:clean apaga por tag. Quem derruba é o cache:flush, que esvazia o storage inteiro. Apagar var/cache na unha também só resolve se o backend for arquivo; com Redis não tem nada ali.
Em vez de adivinhar, pergunte ao próprio endpoint quais campos o tipo tem hoje:
curl -s https://sualoja.com.br/graphql
-H 'Content-Type: application/json'
-d '{"query":"{ __type(name: "ProductInterface") { fields { name } } }"}'Se a resposta for GraphQL introspection is not allowed, o bloqueio é o graphql/disable_introspection do app/etc/env.php; em produção ele fica ligado mesmo, faça o teste em homologação. Campo fora da lista é problema no servidor: o arquivo precisa estar em app/code/Vendor/Modulo/etc/schema.graphqls, e não em etc/frontend/, porque o leitor de schema roda no escopo global e não olha em subpasta de área. Depois disso, confira se o módulo está ligado com bin/magento module:status Vendor_Modulo.
Última pegadinha: consulta GraphQL por GET entra no full page cache. Depois de mexer no schema, teste com POST, senão você vai debugar meia hora uma resposta que ficou congelada.
Padrão registrado no functions.php que não aparece na aba Padrões. O caminho curto do WordPress 6.9: um arquivo PHP na…
Disco lotando por causa do banco? Uma query no information_schema mostra qual tabela cresceu, quanto é dado, quanto é índice…
Sistema em CodeIgniter 3.1.13 morre no primeiro request depois do upgrade. Os três pontos que quebram no PHP 8.3 e…
Metade do seu pub/media é miniatura descartável. Veja o rsync com os excludes certos e o comando que reconstrói o…
Tire os snippets do functions.php e coloque num must-use plugin: carrega sempre, sobrevive à atualização do tema e ninguém desativa…
Quando o valor novo depende do que a regex achou, preg_replace não resolve. Exemplo real aplicando 10% de desconto em…