currentCustomer = $currentCustomer; $this->agreementFactory = $agreementFactory; } /** * {@inheritdoc} */ public function getConfig() { $config = [ 'payment' => [ 'paypalBillingAgreement' => [ 'agreements' => $this->getBillingAgreements(), 'transportName' => AbstractAgreement::TRANSPORT_BILLING_AGREEMENT_ID ] ] ]; return $config; } /** * Retrieve available customer billing agreements * * @return array */ protected function getBillingAgreements() { $customerId = $this->currentCustomer->getCustomerId(); $data = []; if (!$customerId) { return $data; } $collection = $this->agreementFactory->create()->getAvailableCustomerBillingAgreements( $customerId ); foreach ($collection as $item) { $data[] = ['id' => $item->getId(), 'referenceId' => $item->getReferenceId()]; } return $data; } }