PS PrestaShop Iniciante

Regra de imposto predefinida automática na criação de produto

Instalar e configurar a aplicação automática do grupo de impostos na criação de cada produto do PrestaShop.

Atualizado Versão do módulo 1.1.0

Para que serve este módulo

Desde o PrestaShop 1.7, um produto acabado de criar não tem qualquer regra de imposto: o campo Regra de imposto do separador Preços fica em «Sem imposto» enquanto não o alterar à mão. Num catálogo ativo, o esquecimento acontece depressa, e um produto publicado sem IVA falseia o preço com imposto apresentado na loja e também a sua contabilidade.

Este módulo aplica automaticamente o grupo de impostos à sua escolha a cada produto criado, sem qualquer intervenção. Um modo «só substituir se estiver vazio» permite nunca sobrepor uma regra já escolhida.

Pré-requisitos

  • PrestaShop 8.0 a 9.x
  • PHP 7.4 a 8.3
  • Pelo menos um grupo de impostos ativo configurado em Internacional > Impostos > Regras de impostos

O módulo não cria qualquer regra de imposto. Limita-se a aplicar uma regra que já existe na sua loja. Se a sua lista de regras de impostos estiver vazia, crie uma antes de instalar o módulo.

Numa loja portuguesa, o grupo mais frequente é a taxa normal de 23 % do continente. Se vende também para os Açores (16 %) ou para a Madeira (22 %), ou se tem produtos às taxas intermédia (13 %) ou reduzida (6 %), configure primeiro esses grupos em Internacional > Impostos e escolha aqui o que corresponde à maior parte do seu catálogo: as exceções continuam a ser definidas produto a produto.

Instalação

  1. Descarregue o arquivo ZIP a partir da sua conta de cliente DataFirefly.
  2. No back-office do PrestaShop, vá a Módulos > Gestor de módulos.
  3. Clique em Carregar um módulo no canto superior direito e coloque o ficheiro ZIP.
  4. Terminada a instalação, clique em Configurar.

Importante: enquanto não escolher um grupo de impostos na configuração, o módulo mantém-se propositadamente inativo. É uma proteção para evitar que aplique uma regra indesejada logo na instalação.

Configuração

A página de configuração tem duas definições.

Grupo de impostos a aplicar

Uma lista pendente apresenta todos os grupos de impostos ativos da sua loja (por exemplo, «PT IVA 23%»). Escolha o que deve ser aplicado por predefinição aos novos produtos.

A primeira entrada da lista é «Não fazer nada (desativado)». Selecione-a se quiser suspender temporariamente o módulo sem o desinstalar.

Substituir o valor existente

Este interruptor determina o comportamento do módulo quando um produto já tem uma regra de imposto no momento da criação.

  • Sim (predefinição): o grupo configurado é sempre aplicado, seja qual for o valor existente.
  • Não: o grupo só é aplicado se o produto não tiver qualquer regra de imposto. Um valor já preenchido nunca é alterado.

Ponha esta opção em Não se duplica regularmente produtos já corretamente configurados: as cópias mantêm assim a regra de imposto do produto de origem.

Clique em Gravar para confirmar. O módulo fica ativo de imediato.

Como funciona

O módulo liga-se ao hook actionObjectProductAddAfter, acionado pelo PrestaShop logo após a inserção de um novo produto na base de dados. Escreve então o campo id_tax_rules_group nas tabelas product e product_shop.

Compatibilidade com a página de produto v2

A nova página de produto do PrestaShop 8 funciona de forma diferente da anterior: assim que clica em Novo produto, o PrestaShop cria de imediato um produto temporário (por vezes chamado «produto fantasma»), ainda antes de ter introduzido o que quer que seja. Esse produto só aparece no catálogo depois da primeira gravação.

É precisamente nesse instante que o módulo intervém. A regra de imposto fica, por isso, escrita na base de dados ainda antes de o formulário ser apresentado, e o separador Preços mostra logo o grupo correto.

Nota técnica. O hook actionProductAdd, apesar do nome, não é acionado numa criação normal de produto: o núcleo do PrestaShop só o chama numa duplicação. É por isso que este módulo usa o hook genérico actionObjectProductAddAfter, que cobre todos os casos de criação.

Escrita direcionada na base de dados

O módulo atualiza apenas a coluna id_tax_rules_group, através de uma consulta SQL direta. Não chama Product::update(), o que evita acionar inutilmente os hooks de atualização sobre um produto ainda vazio. Nenhum outro campo do produto é tocado e não é acrescentado qualquer override do núcleo.

Casos de utilização cobertos

Modo de criação Regra aplicada
Criação manual no back-office (página de produto v2) Sim
Duplicação de um produto existente Sim (desativável pela opção de substituição)
Importação CSV Sim
Criação pelo Webservice / API Sim
Produtos já existentes antes da instalação Não, o módulo só atua na criação

O módulo não corrige retroativamente os produtos já presentes no seu catálogo. Para esses, use a edição em massa nativa do PrestaShop ou um módulo de atualização em lote.

Multiloja

O campo id_tax_rules_group é específico de cada loja. O módulo escreve, por isso, o valor na tabela product e também em product_shop, no conjunto de lojas correspondente ao contexto de criação do produto.

O grupo de impostos escolhido na configuração é, em contrapartida, comum a toda a instalação. Se as suas lojas precisarem de regras de impostos diferentes, aplique a regra mais frequente e ajuste manualmente as exceções.

Resolução de problemas

A regra de imposto não é aplicada aos novos produtos

Verifique por esta ordem:

  1. Há mesmo um grupo selecionado? Abra a configuração do módulo: se a lista mostrar «Não fazer nada (desativado)», o módulo está inativo por conceção. Escolha um grupo e grave.
  2. O hook está registado? Se atualizou o módulo a partir da versão 1.0.0, o hook usado mudou. Uma simples cópia de ficheiros não basta: desinstale e volte a instalar o módulo no Gestor de módulos, para que o PrestaShop registe o novo hook.
  3. A cache está limpa? Vá a Parâmetros avançados > Desempenho e limpe a cache.
  4. O grupo de impostos ainda existe? Se o grupo selecionado foi entretanto eliminado, o módulo não faz nada, por segurança. Selecione outro.

Um produto duplicado perde a sua regra de imposto de origem

É o comportamento esperado quando a opção Substituir o valor existente está ativa: o grupo predefinido é reaplicado à cópia. Passe a opção para Não para que as duplicações mantenham a regra do produto de origem.

O preço com IVA não é atualizado no formulário

O preço com IVA é calculado do lado do navegador a partir da regra de imposto selecionada. Recarregue a página do produto: como a regra está corretamente gravada na base de dados, o separador Preços mostra o grupo certo e recalcula o preço com IVA.

Desinstalação

No Gestor de módulos, clique em Desinstalar. O módulo elimina as suas duas chaves de configuração e retira-se dos hooks. Este módulo não cria qualquer tabela, e as regras de impostos já aplicadas aos seus produtos são conservadas tal como estão.

Histórico de versões

1.1.0

  • Passagem para o hook actionObjectProductAddAfter, para cobrir a criação pela página de produto v2 (produto temporário)
  • Compatibilidade confirmada com PrestaShop 8 e 9

1.0.0

  • Versão inicial: aplicação automática do grupo de impostos na criação
  • Configuração do grupo predefinido e do modo de substituição
Esta página foi útil?

Ainda com dúvidas? Contacte o suporte