# Expedição Parcial e Pendências Automáticas (dfavailsplit)

> Apresentação Este módulo divide automaticamente cada encomenda segundo o stock realmente disponível. Os artigos em stock partem imediatamente numa encomenda pronta a preparar, enquanto os artigos esgotados são movidos para…

- Página: <https://www.datafirefly.com/pt/documentation/dfavailsplit/>
- Idioma: pt
- Atualizado em: 2026-09-02
- Outros idiomas: [fr](https://www.datafirefly.com/documentation/dfavailsplit/index.md), [en](https://www.datafirefly.com/en/documentation/dfavailsplit/index.md), [es](https://www.datafirefly.com/es/documentation/dfavailsplit/index.md), [de](https://www.datafirefly.com/de/documentation/dfavailsplit/index.md), [it](https://www.datafirefly.com/it/documentation/dfavailsplit/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfavailsplit/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfavailsplit/index.md)
- Índice: <https://www.datafirefly.com/pt/documentation/llms.txt>

## Apresentação

Este módulo divide automaticamente cada encomenda segundo o stock realmente disponível. Os artigos em stock partem imediatamente numa encomenda pronta a preparar, enquanto os artigos esgotados são movidos para uma encomenda _pendente_ (backorder) dedicada. As duas encomendas partilham a mesma referência e a soma dos seus totais é estritamente igual à encomenda de origem, impostos incluídos.

Tudo é desencadeado na validação da encomenda, e uma divisão manual linha a linha está disponível em cada ficha de encomenda.

## Instalação

1. Carregue a pasta `dfavailsplit` para `/modules/`, ou instale o arquivo ZIP através de **Módulos > Gestor de módulos > Carregar um módulo**.
2. Clique em **Instalar**.
3. Abra a configuração através de **Configurar**.

Na instalação, o módulo cria um estado de encomenda dedicado **« Em reaprovisionamento (Backorder) »** (cor laranja). Este estado e o histórico das divisões são conservados na desinstalação para preservar os seus dados.

## Configuração

Vá a **Módulos > Gestor de módulos > dfavailsplit > Configurar**.

### Ativar a divisão automática

Interruptor principal. Desativado, nenhuma encomenda é dividida automaticamente; a divisão manual continua disponível na ficha de encomenda.

### Estado de encomenda backorder

Estado aplicado à encomenda que contém os artigos esgotados. Por defeito, o estado « Em reaprovisionamento (Backorder) » criado na instalação.

### Sobreposição do estado da encomenda expedível

Opcional. Ative esta opção para forçar um estado preciso (por exemplo « Em preparação ») na encomenda expedível. Desativado, a encomenda conserva o seu estado atual.

### Portes grátis na backorder

Ativado por defeito. Os portes ficam na encomenda expedível; a pendência é entregue sem custos, porque o cliente já pagou os portes uma única vez.

### Divisão das linhas parciais

Ativado por defeito. Uma linha parcialmente disponível (3 em stock em 5 encomendados) é dividida em 3 expedidos + 2 em pendência. Desativado, a linha inteira passa para a pendência.

### E-mail de backorder

Envia ao cliente um e-mail no seu idioma (FR/EN/ES/DE/IT/PL fornecidos, recurso em inglês) a informá-lo de que a sua encomenda será expedida em várias vezes. Para um e-mail em português, adicione uma pasta `mails/pt/` com o modelo traduzido.

### Regeneração das faturas depois da divisão

Desativado por defeito. Deixe desativado para emitir as faturas no momento da expedição real de cada encomenda. Ativado, o módulo regenera as faturas das duas encomendas depois da divisão se o estado atual o exigir.

### Registo

Regista cada operação de divisão nos registos do PrestaShop para rastreabilidade.

## Como funciona a divisão

A divisão automática é executada logo depois da validação da encomenda (hook `actionValidateOrderAfter`, com recurso a `actionOrderStatusPostUpdate` para os fluxos que não o emitem). O módulo deduz a quantidade expedível de cada linha a partir da escassez real do stock, partilhada por produto e declinação. Este modelo continua correto mesmo para uma divisão manual lançada dias mais tarde, quando o stock já mudou.

Apresentam-se três casos:

- **Tudo está disponível**: nenhuma divisão. A encomenda segue o seu curso (opção de forçar o estado possível).
- **Tudo está esgotado**: sem divisão, a encomenda inteira passa ao estado backorder.
- **Encomenda mista**: a encomenda de origem conserva a parte expedível (portes, descontos, embalagem, pagamento); é criada uma nova encomenda pendente para o resto, com a mesma referência.

Os totais (produtos, portes, descontos, embalagem, peso) e a repartição do IVA são recalculados ao cêntimo, linha a linha. A soma das duas encomendas é exatamente igual à encomenda de origem, impostos incluídos, também nas faturas regeneradas e nos relatórios fiscais. O pagamento, agregado por referência, reconcilia-se nativamente.

A divisão é atómica: todas as mutações (criação da pendência, movimento das linhas, totais, transportadora, faturas) são enquadradas por uma transação SQL. Uma falha a meio anula tudo; nunca há uma encomenda meio dividida.

## Divisão manual a partir da ficha de encomenda

Em cada ficha de encomenda não dividida, o painel **« Divisão por disponibilidade »** mostra uma tabela linha a linha: produto, quantidade encomendada, stock atual e quantidade a colocar em pendência. Os campos vêm pré-preenchidos com a sugestão da análise de stock; ajuste-os livremente, sendo que 0 conserva a linha na encomenda de origem, e clique em **« Dividir esta encomenda agora »**.

- Disponível mesmo quando a divisão automática está desativada.
- Uma encomenda já dividida nunca pode voltar a sê-lo.
- A seleção é recusada se esvaziasse inteiramente uma das duas encomendas.
- As linhas personalizadas e a definição « divisão das linhas parciais » são respeitadas.

## Na ficha de encomenda (back-office)

Feita a divisão, o painel liga as duas encomendas: a partir da encomenda expedível, remete para a pendência associada, e vice-versa. A referência partilhada é recordada nos dois sentidos.

## Página de confirmação e e-mail ao cliente

Na página de confirmação de encomenda, um bloco lista os artigos que serão expedidos separadamente, com o lembrete da referência comum e dos portes pagos uma única vez. O bloco funciona com todos os temas: apoia-se nas três âncoras de confirmação (`displayOrderConfirmation`, `displayOrderConfirmation1`, `displayOrderConfirmation2`) e resolve a encomenda a partir do URL de confirmação com verificação da chave de segurança, sem nunca aparecer duas vezes.

Se a opção de e-mail estiver ativa, o cliente recebe também um e-mail no seu idioma a informá-lo da expedição parcial e da pendência entregue sem custos adicionais. Os modelos FR, EN, ES, DE, IT e PL são fornecidos na pasta `mails/` do módulo, com recurso ao inglês para qualquer outro idioma.

O e-mail de confirmação inicial (encomenda completa) é enviado pelo PrestaShop antes da divisão. O e-mail de backorder do módulo vem depois informar o cliente da expedição em várias vezes.

## Casos particulares e limites

- Os produtos **virtuais** nunca são colocados em pendência.
- Os produtos em **gestão avançada de stocks (ASM)** são excluídos da divisão e ficam na encomenda expedível.
- Uma linha **personalizada** não é dividida: é encaminhada inteira para uma das duas encomendas.
- Se a gestão de stocks estiver desativada no PrestaShop, não é feita nenhuma divisão.

## Resolução de problemas

### Nenhuma encomenda é dividida

Verifique que a divisão está ativada, que a gestão de stocks do PrestaShop está ativa e que os produtos em causa não são virtuais nem estão em gestão avançada de stocks. Uma divisão automática só acontece para uma encomenda mista (com disponível e esgotado ao mesmo tempo). Para qualquer outro caso, use a divisão manual na ficha de encomenda.

### A pendência mostra portes

Ative a opção « Portes grátis na backorder ». Os custos ficam então apenas na encomenda expedível.

### O bloco não aparece na página de confirmação

Desde a versão 1.3.4, o bloco aparece com todos os temas através de três âncoras de confirmação. Se usar uma versão anterior, atualize o módulo.

### Compatibilidade

PrestaShop 8.x e 9.x, multiloja, sem override nem Composer.
