Características e combinações em massa: documentação do dfbulkfeature
Instalação, permissões, operações em massa sobre características e combinações, pré-visualização, anulação, página do catálogo e resolução de problemas.
Instalação
Instale o módulo em Módulos > Gestor de Módulos > Carregar um módulo, enviando o ficheiro ZIP. O mesmo ZIP funciona no PrestaShop 8.0 a 9.x.
Na instalação, o módulo cria a sua tabela de histórico, regista o hook actionAdminControllerSetMedia e adiciona o separador Características em massa em Catálogo > Atributos e Características, ao lado dos separadores Atributos e Características.
Atualização a partir de uma versão anterior
Envie o novo ZIP da mesma forma. O PrestaShop deteta a versão instalada e executa os scripts de atualização: criação da tabela de histórico, do separador do catálogo e das permissões. As suas definições são conservadas.
Se o seu alojamento utiliza uma cache PHP (OPcache), os scripts de atualização limpam-na automaticamente. Em caso de comportamento inesperado logo após uma atualização, limpe também a cache do PrestaShop em Parâmetros Avançados > Desempenho.
Permissões dos funcionários
O módulo baseia-se nas permissões PrestaShop de cada perfil:
- As operações a partir da lista de produtos exigem a permissão de edição em Produtos.
- A parte das características da página do catálogo exige permissões em Características (ver, editar, adicionar, eliminar consoante a ação).
- A parte dos atributos exige permissões em Atributos. Eliminar ou juntar valores de atributos exige também a edição em Produtos, uma vez que há combinações afetadas.
O PrestaShop 8 não executa os hooks de um módulo para um perfil que não tenha permissão para ver esse módulo. Na instalação, essa permissão é atribuída automaticamente aos perfis que podem editar produtos. Se criar um perfil mais tarde, atribua-lhe a permissão «Ver» sobre o módulo em Parâmetros Avançados > Equipa > Permissões.
Características numa seleção de produtos
Em Catálogo > Produtos, marque os produtos pretendidos, abra Ações em massa e depois Gerir características. A janela modal apresenta à esquerda a lista de características com um campo de pesquisa e à direita as definições da operação. O número apresentado ao lado de uma característica ou de um valor indica quantos produtos da seleção já o utilizam.

Adicionar
Escolha a característica e depois o tipo de valor:
- Valor existente: um valor predefinido da característica.
- Novo valor: o texto introduzido torna-se um valor predefinido, guardado em todos os idiomas. Se já existir um valor com esse nome (sem distinguir maiúsculas de minúsculas), é reutilizado.
- Valor personalizado: um texto próprio de cada produto, como na página de produto.
A caixa Substituir os valores atuais desta característica está marcada por predefinição. Desmarcada, o valor é adicionado ao lado dos valores existentes: o PrestaShop 8 e 9 aceitam vários valores da mesma característica num produto.

Alterar
Escolha o valor atual (ou «Qualquer valor») e o novo valor. Apenas os produtos da seleção que já têm esta característica são alterados, os outros são contados como não abrangidos.

Remover
Remova um valor específico, todos os valores de uma característica, ou escolha Todas as características no topo da lista para esvaziar por completo os produtos selecionados. Os valores personalizados que deixam de ser utilizados por qualquer produto são eliminados da base de dados.
Combinações numa seleção de produtos
Abra Ações em massa > Gerir combinações, ou mude para Atributos (combinações) no topo da janela modal. A lista da esquerda apresenta então os grupos de atributos.
Adicionar combinações
Escolha um grupo, marque um ou vários valores e, se necessário, introduza novos valores separados por ponto e vírgula: são criados no grupo, em todos os idiomas. O módulo aplica depois as regras do gerador do PrestaShop, produto a produto:
- Um produto sem combinações recebe uma combinação por valor.
- Um produto que já tem combinações de outro grupo é multiplicado. Exemplo: uma t-shirt existe em Vermelho e Azul e adiciona Tamanho S e M. As combinações Vermelho e Azul passam a Vermelho-S e Azul-S, mantendo o stock e a referência, e depois são criadas Vermelho-M e Azul-M.
- Um produto que já tem combinações deste grupo recebe apenas os valores em falta, combinados com os seus outros atributos.
Os campos da operação aplicam-se às combinações criadas:
- Impacto no preço (sem IVA) e Impacto no peso: aceita vírgula ou ponto.
- Quantidade: stock inicial de cada nova combinação.
- Referência: deixe vazio para não definir referência, ou utilize um modelo.
{ref}é substituído pela referência do produto,{attr}pelos valores da combinação.{ref}-{attr}dá, por exemplo,TSHIRT01-vermelho-m.
Os packs e os produtos virtuais não podem ter combinações no PrestaShop 8.1 e 9. São ignorados e contados à parte na pré-visualização e no resultado.

Alterar um valor de atributo
Escolha o valor atual e depois o novo valor, existente ou a criar. Cada combinação com o valor atual passa para o novo e mantém o stock, os preços e as imagens. Se o produto já tiver a combinação que daí resultaria, a combinação fica inalterada e é contada como ignorada.
Remover
- Um valor: as combinações com este valor são eliminadas.
- Todos os valores (remover o grupo): o grupo é removido das combinações. As combinações que ficam idênticas são juntas: a mais antiga é mantida e recebe o stock das outras. Uma combinação que deixa de ter qualquer atributo é eliminada.
- Todas as combinações, no topo da lista: elimina todas as combinações dos produtos selecionados, que voltam a ser produtos simples.
Após cada operação, o módulo define uma combinação predefinida se necessário, atualiza o tipo de produto e recalcula o stock total do produto a partir das suas combinações, tal como o PrestaShop faz.

Lista de operações, pré-visualização e aplicação
O botão Adicionar à lista coloca a operação em espera por baixo da janela modal. Pode compor várias, misturando características e combinações, e aplicá-las de uma só vez. São executadas pela ordem da lista. Se a lista estiver vazia, Aplicar executa diretamente a operação que está a configurar.
O botão Pré-visualização calcula tudo sem gravar nada. Para cada operação, indica o número de produtos alterados, já atualizados ou não abrangidos e, no caso das combinações, o número de combinações criadas, eliminadas ou ignoradas por já existirem.
A pré-visualização das características baseia-se numa transação revertida no final do cálculo. Exige tabelas InnoDB, o que acontece por predefinição. Numa base de dados MyISAM, o botão Pré-visualização fica desativado para as características.
Após a aplicação, o resultado apresenta os mesmos números e propõe Anular e Recarregar a lista. Os produtos que não pertencem à loja atual são ignorados e listados.

Anular uma operação
Cada aplicação bem-sucedida fica registada no histórico, com o estado dos produtos abrangidos imediatamente antes. A anulação está disponível a partir do resultado da janela modal ou do separador Histórico da página Características em massa.
- No caso das características, os valores dos produtos são repostos tal como estavam, incluindo os valores personalizados.
- No caso das combinações, as combinações são restauradas com os seus identificadores originais, o stock, os preços específicos e as imagens. As combinações criadas pela operação são eliminadas, incluindo dos carrinhos em curso.
A anulação repõe os produtos no estado anterior à operação. As alterações feitas depois nesses mesmos produtos perdem-se. Para um lote de combinações muito volumoso (acima de cerca de 8 MB de dados a conservar), a anulação não é proposta e o resultado indica-o.

Página Características em massa
Abra Catálogo > Atributos e Características, separador Características em massa. O seletor no topo da página alterna entre Características e Atributos (combinações).

Características e valores
Cada característica ou grupo de atributos é listado com o número de valores e de produtos. Expanda uma linha para ver os valores, o respetivo número de produtos e, no caso dos atributos, de combinações. Os valores que nenhum produto utiliza aparecem a laranja.
- Mudar o nome: escolha o idioma, altere os nomes diretamente nos campos e clique em Guardar alterações. Apenas o idioma escolhido é alterado. Num grupo de atributos, o nome público acompanha o nome se era idêntico.
- Juntar: marque pelo menos dois valores da mesma característica ou do mesmo grupo, clique em Juntar os valores selecionados e escolha o valor a manter. Os produtos dos outros valores recebem o valor mantido e, em seguida, os outros valores são eliminados. No caso dos atributos, uma combinação que ficaria idêntica a outra é eliminada e o seu stock é somado ao da outra.
- Eliminar seleção: elimina as características, grupos ou valores marcados. Do lado dos atributos, as combinações que utilizam um valor eliminado são eliminadas, e um grupo eliminado é removido das combinações, com junção das combinações idênticas.
- Eliminar valores não utilizados: limpa de uma só vez os valores que nenhum produto ou nenhuma combinação utiliza.
As eliminações e junções feitas nesta página não podem ser anuladas. Faça uma cópia de segurança da base de dados antes de uma grande limpeza.


Criação em massa
Cole uma linha por característica ou por grupo de atributos, seguida de dois pontos e dos valores separados pelo separador escolhido (ponto e vírgula por predefinição):
Material: Algodão; Linho; Lã Tamanho: S; M; L; XL
Uma característica ou um grupo que já tenha esse nome no idioma escolhido recebe apenas os valores em falta. Os novos nomes são guardados em todos os idiomas, para traduzir depois no separador anterior. Os novos grupos de atributos são criados como lista pendente. Utilize o separador barra vertical se os seus valores contiverem ponto e vírgula.

Histórico
O histórico lista as operações por data, com o funcionário, o detalhe das operações, o número de produtos abrangidos e o botão de anulação quando está disponível. As operações feitas a partir da página do catálogo aparecem com a indicação Não reversível.

Definições
- Acionar actionProductUpdate para cada produto alterado: ative se um módulo de feeds, de marketplace ou de ERP tiver de ser notificado das alterações. Desativado por predefinição, por ser mais lento em seleções grandes.
- Operações conservadas no histórico: 100 por predefinição, entre 10 e 1000. As mais antigas são eliminadas quando este limite é ultrapassado.

O que o módulo atualiza
- Os produtos alterados são marcados para reindexação na pesquisa do PrestaShop.
- A cache dos blocos do módulo de navegação facetada (ps_facetedsearch) é limpa.
- As combinações são criadas e eliminadas através das classes nativas do PrestaShop, o que aciona os hooks habituais das combinações.
- Outros módulos podem escutar o hook
actionDfBulkFeatureProductsUpdated, que recebe a lista dos produtos alterados.

Resolução de problemas
As entradas não aparecem no menu Ações em massa
O menu Ações em massa só fica ativo depois de marcar pelo menos um produto. Verifique depois se o perfil do funcionário tem permissão para editar produtos e a permissão «Ver» sobre o módulo e, em seguida, limpe a cache do PrestaShop.
«O servidor devolveu uma resposta inesperada»
A sessão expirou ou o perfil não tem as permissões necessárias. Recarregue a página da lista de produtos e tente novamente.
Há combinações contadas como ignoradas
A combinação que resultaria da operação já existe no produto. O módulo nunca cria duas combinações com exatamente os mesmos atributos.
Os filtros da loja ainda mostram um valor antigo
Volte a executar a indexação dos atributos e das características na página de configuração do módulo de navegação facetada e, em seguida, limpe a cache do PrestaShop.
Compatibilidade
- PrestaShop 8.0 a 9.x, o mesmo ZIP cobre os dois ramos. Testado em 8.2.1 e 9.2.0.
- PHP 7.2 ou superior.
- Multiloja e multilíngue.
- Interface disponível em francês, inglês, espanhol, alemão, italiano, neerlandês, polaco e português.