Configurando o Split Pagbank
Para utilizar o recurso de Split the pagamentos você precisa instalar e configurar o seu módulo.
Instalação
Existem três opções disponíveis para realizar essa configuração:
- Via Composer
- Via upload de arquivos
- Via Git Clone
O PagBank recomenda que você utilize a opção basead no Composer. A seguir você encontra a descrição dos passos para realizar a configuração.
Faça um backup antes de iniciar a configuração
O PagBank recomenda que você realize um backup antes de iniciar as configurações. Dessa forma, se algum problema for enfrentado, você pode rapidamente restaurar as suas configurações e garantir que a sua operalçao não será afetada.
Via Composer
Para utilizar a opção do Composer, inicialmente você deve executar o comando apresentado abaixo na pasta do projeto.
composer require pagbank/split-magento
Após a instalação do módulo pelo Composer, você deve executar os dois comandos abaixo em sequência.
bin/magento setup:upgrade
bin/magento setup:di:compile
Via upload de arquivos
Para realizar a adição do módulo através do upload de arquivos, você deve seguir os passos apresentados a seguir.
- Na raiz de seu site, crie a pasta
app/code/PagBank/SplitMagento
. - Faça o download de acordo com a versão usada:
- Descompacte o arquivo recebido.
- Envie o conteúdo da pasta obtida no download para dentro da pasta
PaymentMagento
que você criou emapp/code/PagBank/SplitMagento.
- Para registrar o módulo, execute os seguintes comandos na pasta principal do Magento:
bin/magento setup:upgrade
bin/magento setup:di:compile
Via Git
Para realizar a adição do módulo via Git, você deve seguir os passos abaixo:
- Clone o repositório usando um dos comandos abaixo:
git clone [email protected]:pagbank/split-magento.git app/code/PagBank/SplitMagento
git clone <https://github.com/pagbank/split-magento.git> app/code/PagBank/SplitMagento
Note que os comandos fornecidos pelo bloco de código acima, já informam o caminho especificado através de
app/code/PagBank/SplitMagento
.
- Registre o seu módulo executando os dois comandos abaixo:
bin/magento setup:upgrade
bin/magento setup:di:compile
Configuração do módulo
Para configurar o módulo de Split de Pagamentos, siga os passos listados a seguir:
- Acesse o painel administrativo e selecione Loja no menu lateral.
- Clique em Configurações.
- No novo menu, selecione Vendas → Formas de Pagamento.
- Em Formas de Pagamento, localize a opção associada ao PagBank e clique em Configurar.
- Feito isso, você irá visualizar a opção Dividir o Pagamento. Clique em Dividir o Pagamento para que as opções de configuração do Split de Pagamento sejam Apresentadas.
- Para configurar o Split de pagamentos você deve:
- Selecionar Sim para a opção Usar Split.
- Definir a Fonte dos Dados.
- Utilize a Opções para Sub Vendedores para adicionar e configurar sub vendedores que irão receber uma fração do valor da venda e configurar a transferência de juros e frete.
Personalizar a regra de Split
Para personalizar a regra do split utilizada, você precisa definir o objeto splits
ao utilizar o endpoint Orders. Nesse objeto, você deve informar:
method
: define se serão utilizados valores fixos ou percentuais para realizar a divisão do pagamento.receivers
: informa a conta e o valor recebido por cada vendedor envolvido na transação. A soma dos valores (amount.value
) atribuidos aos vendedores deve ser igual ao valor total pago pelo cliente.
Abaixo você encontra um exemplo do objeto splits
.
"splits": {
"method": "FIXED",
"receivers": [
{
"account": {
"id": "ACCO_A54FD6CD-E43F-4783-A7F4-XXXXXXXXX"
},
"amount": {
"value": 1844
}
},
{
"account": {
"id": "ACCO_B1BB0AD0-A8DE-441C-8007-XXXXXXXXX"
},
"amount": {
"value": 3600
}
}
]
}
Personalizar o recebedor
Para personalizar o recebedor secundário em sua classe PagBank\SplitMagento\Gateway\Request\Split\ReciversDataRequest
, você deve implementar um arquivo di.xml em seu módulo da seguinte maneira:
<!-- Add Sub Seller to request -->
<type name="PagBank\SplitMagento\Gateway\Request\Split\ReciversDataRequest">
<plugin name="pagbank_webkul_add_sub_seller" type="[Vendor]\[Module_Name]\Plugin\Gateway\Request\Split\SubSellerReciversDataRequest" sortOrder="10" />
</type>
Sugerimos alterar apenas o recebedor secundário da transação, utilizando o método around
para esse processo. Aqui está um exemplo de implementação:
/**
* Build.
*
* @param ReciversDataRequest $subject
* @param callable $proceed
* @param array $buildSubject
*
* @SuppressWarnings(PHPMD.StaticAccess)
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
*/
public function aroundGetSecondarys(ReciversDataRequest $subject, callable $proceed, array $buildSubject)
{
$isEnabled = $this->helper->isEnabled();
if (!$isEnabled) {
return $proceed($buildSubject);
}
$secondary = [];
/** @var PaymentDataObject $paymentDO **/
$paymentDO = SubjectReader::readPayment($buildSubject);
/** @var InfoInterface $payment **/
$payment = $paymentDO->getPayment();
/** @var Order $order **/
$order = $payment->getOrder();
$sellersData = $this->helper->getReciversData($order);
foreach ($sellersData as $sellerData) {
$secondary[] = [
BaseDataRequest::RECEIVER_ACCOUNT => [
BaseDataRequest::RECEIVER_ACCOUNT_ID => $sellerData['pag_bank_id'],
],
BaseDataRequest::RECEIVER_AMOUNT => [
BaseDataRequest::RECEIVER_AMOUNT_VALUE => $sellerData['pag_bank_amount'],
],
];
}
return $secondary;
}
Observe que no exemplo, os valores de dados do vendedor são recebidos de um Helper do módulo que você criou. Você pode trocar essa abordagem pela que desejar. Ao alterar apenas a função do recebedor secundário, o módulo calculará e preencherá o primário, garantindo que o split tenha 100% dos valores declarados.
Updated 9 months ago