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.

  1. Na raiz de seu site, crie a pasta app/code/PagBank/SplitMagento.
  2. Faça o download de acordo com a versão usada:
  3. Descompacte o arquivo recebido.
  4. Envie o conteúdo da pasta obtida no download para dentro da pasta PaymentMagento que você criou em app/code/PagBank/SplitMagento.
  5. 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:

  1. 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.

  1. 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:

  1. Acesse o painel administrativo e selecione Loja no menu lateral.
  2. Clique em Configurações.
  1. No novo menu, selecione Vendas → Formas de Pagamento.
  1. Em Formas de Pagamento, localize a opção associada ao PagBank e clique em Configurar.
  1. 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.
  2. Para configurar o Split de pagamentos você deve:
    1. Selecionar Sim para a opção Usar Split.
    2. Definir a Fonte dos Dados.
    3. 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.