PS PrestaShop Intermédio

Separar as variantes em produtos distintos

Instalar e utilizar o módulo de divisão de um produto com combinações em produtos distintos, da escolha da estratégia até à anulação de uma divisão.

Atualizado Versão do módulo 1.0.2

Instalação

Coloque a pasta dfproductsplitter no diretório /modules da sua loja e instale depois o módulo em Módulos e Serviços do back-office. Também pode enviar diretamente o arquivo ZIP fornecido.

Na instalação, o módulo cria duas tabelas, PREFIX_df_split_job e PREFIX_df_split_item, e acrescenta um separador Product Splitter no menu Catálogo. Não é colocado qualquer override de classe ou de controlador, e não é necessária qualquer dependência Composer.

O módulo é compatível com PrestaShop 8.0 a 9.x e PHP 7.4 a 8.4. Os nomes de tabelas e de constantes que diferem entre o PrestaShop 8 e o 9 são resolvidos automaticamente em tempo de execução.

Aceder à interface

Vá a Catálogo e depois a Product Splitter. O ecrã tem quatro blocos: a pesquisa do produto de origem, a estratégia de divisão, as opções de geração e o histórico das divisões já realizadas.

O módulo trabalha sempre no contexto da loja selecionada no topo do back-office. Os preços, os stocks e as combinações lidos são os dessa loja.

Escolher o produto de origem

Introduza um nome, uma referência ou um identificador de produto no campo de pesquisa. Só aparecem nos resultados os produtos com pelo menos uma combinação na loja atual.

Depois de selecionado o produto, o módulo mostra o seu preço, a sua referência, o número de combinações e o número de grupos de atributos utilizados. Uma ligação permite abrir a ficha do produto num novo separador, para verificação.

Limitar a divisão a certas combinações

Assinale a caixa Limitar a certas combinações para ver a tabela completa das combinações, com a referência, o impacto no preço e o stock de cada uma. Desmarque as que não quer extrair. É útil para retirar apenas uma cor de uma gama, deixando o resto no produto de origem.

As duas estratégias de divisão

Um produto por combinação

Cada combinação passa a ser um produto simples, sem quaisquer combinações. O impacto no preço e o impacto no peso da combinação são transferidos para o preço e o peso de base do novo produto. A referência, o código EAN, o ISBN, o UPC, o MPN, a quantidade mínima e a data de disponibilidade da combinação são retomados quando estão preenchidos; caso contrário, os valores do produto de origem servem de recurso.

Este modo é adequado quando cada combinação tem existência comercial própria, por exemplo um perfume vendido em três capacidades ou um software vendido com três durações de licença.

Um produto por valor de um grupo de atributos

Escolhe um grupo de atributos a extrair, por exemplo Cor. O módulo cria um produto por valor desse grupo, e os restantes grupos continuam a ser combinações do novo produto. Um produto com três cores e cinco tamanhos passa a três produtos, com cinco combinações cada.

Se o produto tiver apenas um grupo de atributos, este modo recua automaticamente para o modo por combinação. É apresentado um aviso na pré-visualização.

Como os preços se mantêm iguais

No modo por grupo, o módulo retém o impacto no preço mais baixo entre as combinações de cada valor extraído. Esse impacto é passado para o preço de base do novo produto e cada impacto restante é depois recalculado por subtração.

Exemplo. Um produto a 89 euros, disponível em branco e preto, com os tamanhos S, M e L. As combinações em branco têm impactos de 0, 3 e 6 euros. O produto Branco é criado a 89 euros, com impactos de 0, 3 e 6 euros nos seus três tamanhos. Se os impactos em branco fossem de 3, 6 e 9 euros, o produto Branco seria criado a 92 euros, com impactos de 0, 3 e 6 euros. Nos dois casos, o preço pago pelo cliente para um dado tamanho não muda.

O peso segue exatamente o mesmo tratamento.

Os preços indicados são sem IVA: o módulo trabalha sobre o preço base do PrestaShop. O grupo de impostos do produto de origem é retomado, pelo que o preço com IVA apresentado ao cliente se mantém igual, quer aplique 23 %, 13 % ou 6 %.

Opções de geração

Modelo de nome

O nome dos produtos criados é construído a partir de um modelo. Estão disponíveis três variáveis: o nome do produto de origem, os valores de atributos absorvidos e a referência do produto de origem. O modelo predefinido concatena o nome de origem e os valores de atributos, separados por um hífen.

O nome é gerado de forma independente em cada idioma da loja, com os valores de atributos traduzidos. Os caracteres proibidos pelo PrestaShop num nome de produto são retirados automaticamente e o resultado é truncado a 128 caracteres.

Antes de dividir, confirme que os valores de atributos estão traduzidos em português (Catálogo > Atributos e Valores). Os nomes gerados na versão portuguesa herdam essas traduções: se o valor só existir em francês, os produtos criados ficam com «Bleu» no nome português.

Modelo de referência

Estão disponíveis quatro variáveis: a referência do produto de origem, a referência da combinação, um slug dos valores de atributos e o identificador do produto de origem. Se o modelo produzir uma cadeia vazia, o módulo recorre à referência da combinação e, depois, à do produto de origem.

Reescrita de URL

É gerada uma reescrita de URL para cada idioma, a partir do nome do produto. O módulo verifica que ela ainda não existe no idioma em causa e acrescenta um sufixo numérico se for necessário, o que evita colisões e URL duplicados.

Imagens retomadas

São propostos três modos. Imagens da combinação duplica prioritariamente as imagens associadas às combinações tratadas, com recurso ao conjunto de imagens do produto de origem quando não há nenhuma associada. Todas as imagens duplica sistematicamente o conjunto das imagens. Sem imagens cria os produtos sem visual.

A duplicação é física. O ficheiro original e todas as miniaturas já geradas são copiados, seja qual for o formato, jpg, webp ou avif, e as legendas traduzidas são copiadas. A primeira imagem de cada produto passa a ser a sua capa.

Dados a retomar

Dez caixas de seleção comandam a retoma dos stocks, das categorias, das características, das palavras-chave, dos preços específicos, das transportadoras, dos ficheiros anexos, dos fornecedores, dos campos de personalização e dos acessórios do produto de origem. As nove primeiras estão ativas por predefinição.

Tratamentos complementares

Converter os atributos absorvidos em características cria uma característica com o nome público do grupo de atributos e um valor com o nome do atributo, e associa depois tudo ao produto gerado. Se a característica ou o valor já existirem, são reutilizados. É prático para conservar a cor como critério de filtro depois da divisão.

Ligar entre si os produtos gerados acrescenta cada produto criado como acessório de todos os outros resultantes da mesma divisão.

Reindexar a pesquisa relança a indexação da pesquisa do PrestaShop sobre os produtos criados, no fim do tratamento.

Estado dos produtos criados

À escolha: igual ao produto de origem, todos ativos, ou todos desativados. O modo desativado permite verificar as fichas antes de as colocar em linha.

Pré-visualizar antes de escrever

O botão Pré-visualizar calcula o plano completo sem escrever nada na base de dados. Obtém o número de produtos que serão criados e, em cada um, o nome, o número de combinações conservadas, o preço sem impostos e o peso resultantes.

O botão Iniciar a divisão fica desativado enquanto não for feita uma pré-visualização, e volta a desativar-se assim que altera uma opção.

Executar a divisão

Ao iniciar, o módulo grava um trabalho na base de dados, com a configuração completa e a lista dos produtos a gerar, e trata depois os elementos por lotes sucessivos em AJAX. Uma barra de progresso indica o avanço e um registo lista cada produto criado, com ligação direta para a sua ficha.

O campo Produtos tratados por lote controla o número de produtos criados em cada pedido. O valor predefinido é cinco.

Num alojamento partilhado ou em produtos com muitas imagens, reduza a dimensão do lote para dois ou três. O tratamento será um pouco mais demorado, mas não corre o risco de atingir o tempo limite de execução do PHP.

O destino do produto de origem

São propostos quatro comportamentos, aplicados depois de gerados todos os produtos.

  • Manter tal como está. O produto de origem mantém-se ativo e inalterado. Fica temporariamente com duplicados no catálogo, o que permite comparar antes de decidir.
  • Desativar. O produto de origem sai de linha, mas continua consultável no back-office.
  • Desativar e redirecionar em 301 para o primeiro produto criado. O produto de origem é desativado, o seu tipo de redirecionamento passa a redirecionamento permanente para um produto e o destino é o primeiro produto gerado. É a opção a privilegiar quando o URL de origem está indexado ou recebe ligações externas.
  • Eliminar definitivamente. O produto de origem é eliminado depois da geração. Escolha esta opção apenas depois de ter verificado o resultado numa primeira divisão de teste.

Histórico e anulação

Cada divisão aparece no histórico com o seu identificador, o produto de origem, o número de produtos tratados, o estado e a data. O botão Detalhe expande a lista dos produtos gerados, com o estado individual e uma ligação para cada ficha.

O botão Anular elimina todos os produtos gerados por esse trabalho e restaura depois o estado ativo ou inativo e o redirecionamento originais do produto de origem, tal como estavam antes da divisão. O trabalho passa ao estado anulado.

Se optou por eliminar definitivamente o produto de origem, a anulação elimina os produtos gerados mas não consegue restaurar o produto original. Use essa opção apenas depois de validar o resultado.

O que é retomado, em detalhe

Stocks

A quantidade de cada combinação é transferida para o produto ou para a combinação correspondente do produto gerado. O comportamento em rutura de stock definido no produto de origem é retomado. O stock do produto de origem não é decrementado.

Categorias

Todas as categorias do produto de origem são retomadas, incluindo a categoria predefinida.

Características

As características são copiadas. Os valores personalizados, próprios de um produto, são duplicados para que cada produto gerado tenha o seu.

Preços específicos

Os preços específicos do produto de origem são copiados. Os definidos para todas as combinações são retomados tal como estão. Os definidos para uma combinação concreta só são retomados se essa combinação fizer parte do produto gerado, e são então aplicados ao produto inteiro.

Fornecedores

As linhas de fornecedor são retomadas ao nível do produto. Os duplicados entre combinações do mesmo fornecedor são eliminados.

Multiloja

Os produtos gerados ficam associados às mesmas lojas do produto de origem.

Casos particulares e limitações

  • Os packs de produtos não podem ser divididos. O módulo assinala-o antes de qualquer tratamento.
  • Os produtos virtuais e descarregáveis são tratados normalmente.
  • As encomendas feitas sobre o produto de origem não são alteradas. Continuam a referenciar o produto e a combinação originais.
  • As avaliações de clientes associadas ao produto de origem não são transferidas.
  • A regra de gestão dos URL canónicos do seu tema pode exigir uma limpeza da cache depois de uma divisão importante.

Resolução de problemas

O tratamento para a meio

Reduza o número de produtos tratados por lote. Os produtos com muitas imagens ou muitas combinações são os mais dispendiosos. O trabalho fica na base de dados, mas não é retomável a partir da interface: anule-o no histórico para eliminar os produtos já criados e volte a lançá-lo com uma dimensão de lote menor.

As imagens não são copiadas

Verifique as permissões de escrita no diretório das imagens de produto, img/p. O módulo cria as subpastas necessárias, mas não consegue contornar uma restrição do sistema de ficheiros.

Os preços não correspondem ao que eu esperava

Verifique a pré-visualização, que mostra o preço sem impostos calculado para cada produto. No modo por grupo, o preço de base de um produto corresponde ao preço de origem acrescido do impacto mínimo do grupo extraído para esse valor, o que não é necessariamente o impacto da combinação predefinida.

Dois produtos têm a mesma reescrita de URL

O módulo verifica a unicidade no momento da criação e acrescenta um sufixo numérico em caso de colisão. Se o conflito surgir depois, vem provavelmente de outro módulo ou de uma importação. Altere a reescrita no separador SEO da ficha de produto.

Desinstalação

A desinstalação elimina o separador, as definições e as duas tabelas do módulo. Os produtos gerados pelas suas divisões são conservados. Se os quiser eliminar, anule primeiro os trabalhos em causa a partir do histórico e desinstale depois o módulo.

Esta página foi útil?

Ainda com dúvidas? Contacte o suporte