PayPal Plus payments module for OXID eShop

Installs: 9 937

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 14

Forks: 3

Open Issues: 3


v3.0.12 2021-06-24 13:17 UTC


PayPal Plus module for OXID eShop.


Use Composer to add the module to your project

composer require oxid-professional-services/paypalplus-module
  • Activate PayPal Plus module in administration back end: under Extensions -> Modules -> PayPal Plus, tab Overview press Activate button
  • Enter PayPal API Client ID and Secret key and adjust other settings in Extensions -> Modules -> PayPal Plus, tab Settings
  • Optionally configure eShop shipping methods and shipping cost rules


  • Module v3.0.*
  • PayPal-PHP-SDK v1.13.0

Supported OXID eShop version

  • 6.0.*
  • 6.1.*
  • 6.2.*

For developers

  • PayPal plus payment acts as payment container. See views/blocks/oxpspaypalplus_payment_select_payment.tpl. At the moment we exclude even "empty/free" payment.
  • It is very important to validate html elements/hooks on template. Otherwise payment fails to render. Validation is done on out/src/js/oxpspaypalpluswall.js:validateDomElements. Some tags must be parent to the other.
  • Error variable placeholder %s is meant for use in both, PHP and JS.
  • There are multiple validations on order, JS, payment levels. As a result some errors are logged, some are meant for display and some are both logged and displayed on the front end.
  • PayPalPlus payment handler validates phone number to meet E.123 standard. See \oxpsPayPalPlusPaymentHandler::validateUserData(). And it is active when attempting to pay by PayPal Plus methods.
  • JS payment validation extracts labels and description from html, because this is only way to take changes made by other modules.
  • Payments not registered on PayPal Plus should be visible on payment step. Because there are payments developed by partners.
  • After developing run PHP and JS test. See modules/oxps/paypalplus/tests/unit and modules/oxps/paypalplus/tests/functional/README.md.
  • It is better to have PayPal test accounts (private and business) registered in Germany. E.g. accounts with currency USD ends up "pending" payments on admin panel. As a result refund functionality can not be used.
  • Credit cards for testing purposes https://www.paypalobjects.com/en_US/vhelp/paypalmanager_help/credit_card_numbers.html






  • language_main -- save
  • order_list -- render -- _prepareWhereQuery -- _buildSelectString -- _prepareOrderByQuery
  • basket -- render
  • order -- init
  • payment -- render -- validatePayment -- getPaymentErrorText
  • oxviewconfig
  • oxAddress -- save
  • oxBasket -- afterUpdate -- getPaymentCost -- getTotalDiscountSum -- getTsProductId
  • oxOrder -- save -- delete
  • oxPaymentGateway -- executePayment
  • oxUser -- save
  • thankyou -- init -- render