/** * Checking negative line items * * @param array $request * @param int $i * @return null|true */ protected function _exportLineItems(array &$request, $i = 0) { $requestBefore = $request; $result = parent::_exportLineItems($request, $i); if ($this->getIsLineItemsEnabled() && $this->_cart->hasNegativeItemAmount()) { $this->_lineItemTotalExportMap = array(Cart::AMOUNT_TAX => 'TAXAMT', Cart::AMOUNT_SHIPPING => 'FREIGHTAMT', 'amount' => 'PAYMENTREQUEST_0_ITEMAMT'); $this->_lineItemExportItemsFormat = array('name' => 'L_PAYMENTREQUEST_0_NAME%d', 'qty' => 'L_PAYMENTREQUEST_0_QTY%d', 'amount' => 'L_PAYMENTREQUEST_0_AMT%d'); $request = $requestBefore; $result = parent::_exportLineItems($request, $i); /** @var Nvp $paypalNvp */ $paypalNvp = $this->nvpFactory->create(); $this->_doCaptureResponse = $paypalNvp->_doCaptureResponse; $this->_refundTransactionResponse = $paypalNvp->_refundTransactionResponse; $this->_getTransactionDetailsResponse = $paypalNvp->_getTransactionDetailsResponse; $this->_paymentInformationResponse = $paypalNvp->_paymentInformationResponse; $this->_headers[] = 'PAYPAL-NVP: Y'; $this->_setSpecificForNegativeLineItems(); } return $result; }