Por que o dev precisa desses dados antes de estimar
Imagine um pedido de orçamento para uma loja que já está no ar: "quero um campo de CPF no cadastro, quanto fica?". A resposta honesta depende de coisas que a frase não diz. Em que versão a loja está? O tema é Luma ou Hyvä? Já existe módulo de terceiros mexendo no cadastro? Tem ERP que precisa receber esse campo?
Sem essas respostas, o dev tem duas saídas ruins: estimar com margem larga para cobrir o que não sabe, ou pedir acesso à loja antes de existir contrato. Com elas, a estimativa fica mais estreita, e você compara propostas que partem do mesmo retrato da loja. Se ainda não sabe que tipo de profissional a demanda pede, veja antes o que faz um programador Magento e os quatro perfis.
Os 9 dados e onde encontrar cada um
Os comandos rodam na pasta raiz da loja, a mesma do bin/magento. Quem tem acesso ao servidor (a hospedagem ou o dev atual) consegue tirar tudo de uma vez.
| Dado | Com acesso ao servidor | Só com o admin |
|---|---|---|
| 1. Versão | bin/magento --version | Rodapé do admin: "Magento ver." e o número |
| 2. Edição | grep -E 'magento/product-(community|enterprise)-edition' composer.json | Item Dynamic Blocks em Content > Elements indica Adobe Commerce |
| 3. PHP | php -v | Painel da hospedagem |
| 4. Modo de execução | bin/magento deploy:mode:show | Pedir a quem tem acesso ao servidor |
| 5. Módulos de terceiros | bin/magento module:status --enabled | grep -v '^Magento_' | Pedir a quem tem acesso ao servidor |
| 6. Tema | Pasta app/design/frontend e o composer.json | Content > Design > Configuration, campo Applied Theme |
| 7. Lojas e idiomas | bin/magento store:list | Stores > Settings > All Stores |
| 8. Integrações | Módulos de ERP, frete, pagamento e marketplace na lista do item 5 | System > Extensions > Integrations |
| 9. Hospedagem e cache | Tipo de servidor e se existe ambiente de staging | Stores > Settings > Configuration > Advanced > System > Full Page Cache: Built-in Cache ou Varnish Cache |
Como descobrir a versão, a edição e listar os módulos instalados sem cair em armadilha
Três detalhes que fazem o inventário sair errado:
- A versão não diz a edição. O
bin/magento --versionimprimeMagento CLIseguido do número, e esse nome vem fixo no próprio arquivobin/magento. Quem diz se a loja é Magento Open Source ou Adobe Commerce é o pacote nocomposer.json:product-community-editioné Open Source;product-enterprise-editioné Adobe Commerce. - O PHP do terminal pode não ser o do site. Um servidor pode ter mais de uma versão de PHP instalada, e o
php -vmostra só a do terminal. Confirme no painel da hospedagem qual versão atende o site. - Nem todo módulo fora de
Magento_é de terceiro. Conferi a árvore de dependências do pacote padrão do Magento Open Source 2.4.8-p4: ele já traz sete módulos com nome começando porPayPal_Braintree, que podem aparecer no filtro. E não esqueça o--enabled: sem ele, o comando lista também os módulos desativados, em dois blocos com cabeçalho, e o filtro mistura tudo. O que interessa é o que sobra depois dosPayPal_Braintree.
O modo de execução merece uma linha à parte. O deploy:mode:show responde Current application mode: seguido de default, developer ou production. Loja no ar fora de production é informação que muda o orçamento, porque trocar o modo mexe no deploy e no desempenho.
E se eu não tiver acesso SSH?
Dá para começar pelo admin. Ele responde direto quatro dos nove dados: a versão no rodapé, o tema, as lojas e idiomas e as integrações cadastradas. Também mostra o cache de página, no caminho do item 9, e dá uma pista da edição pelo menu Content > Elements: a documentação da Adobe diz que Dynamic Blocks é recurso exclusivo do Adobe Commerce e não existe no Magento Open Source.
O resto você pede a quem tem acesso ao servidor. Mande a lista de comandos da tabela e peça a saída colada como texto, não como print. Você não precisa entender o resultado; o dev que vai orçar entende.
Uma ressalva sobre o item 8: a tela Integrations mostra só o que foi cadastrado ali, com token. Integração feita por módulo próprio não aparece nela. Por isso, liste também, com as suas palavras, quais sistemas conversam com a loja: ERP, emissor de nota, gateway, frete, marketplace.
Preciso dar acesso à loja para receber orçamento?
Não. Tudo neste inventário é informação, não credencial. Senha do admin, usuário do servidor, o arquivo app/etc/env.php e cópia do banco ficam fora do pedido de orçamento. Acesso entra depois, com contrato, usuário próprio para o dev e só nas áreas da tarefa.
Se o dev insistir em entrar na loja para dar qualquer número, peça que ele diga quais dados faltam. Com o inventário completo, muitas demandas já dão para estimar; o que não der pode virar uma etapa paga de diagnóstico, com escopo próprio.
Modelo de mensagem para pedir orçamento a programador Magento
Copie, preencha e mande junto com a descrição da demanda:
Assunto: Pedido de orçamento - loja Magento
O que eu preciso:
(descreva a mudança, com exemplo e print da tela atual)
Inventário da loja:
1. Versão:
2. Edição (Open Source ou Adobe Commerce):
3. PHP do site:
4. Modo (deploy:mode:show):
5. Módulos de terceiros ativos (lista em anexo):
6. Tema aplicado:
7. Lojas e idiomas:
8. Sistemas integrados (ERP, frete, pagamento, marketplace):
9. Hospedagem, staging e cache (Built-in ou Varnish):
Prazo desejado:
Quem aprova do meu lado:
Acesso: só depois do contrato, com usuário próprio.A linha "quem aprova do meu lado" parece detalhe, mas evita que a proposta volte com perguntas que ninguém responde. Se a loja tiver algo fora do comum, como vários sites no mesmo admin ou um checkout de terceiros, escreva numa linha no fim.
Perguntas frequentes
Preciso dar acesso à minha loja Magento para receber orçamento?
Não. Junto com a descrição da demanda, versão, edição, módulos, tema, lojas e integrações bastam para uma estimativa inicial. Acesso ao admin ou ao servidor entra depois do contrato, com usuário próprio para o desenvolvedor e só nas áreas da tarefa.
E se eu não tiver acesso SSH à loja Magento?
Pegue pelo admin o que ele mostra (versão no rodapé, tema, lojas e integrações) e peça o resto à hospedagem ou ao dev atual, mandando a lista de comandos e pedindo a saída como texto.
Dá para ver a versão do Magento sem entrar no servidor?
Dá. O rodapé das telas do admin mostra Magento ver. seguido do número da versão. Ele não diz se a loja é Open Source ou Adobe Commerce; para isso vale o composer.json ou a presença de recursos exclusivos, como Dynamic Blocks.
Fontes oficiais
- Commerce on-premises: command-line reference (Adobe Experience League)
- Install using Composer (project-community-edition e project-enterprise-edition) (Adobe Experience League)
- Set operation mode (deploy:mode:show) (Adobe Experience League)
- Themes (Applied Theme) (Adobe Experience League)
- Integrations (Adobe Experience League)
- Dynamic Blocks (Adobe Experience League)