Welcome to the Intershop PayPal Service Connector. The service connector adds PayPal payment methods to your Intershop Commerce Management installation.
This release note provides important product information, including version information and dependencies. It also outlines the basic setup and configuration steps.
This delivery and the accompanying documentation are valid for the following combinations of software versions:
Intershop CM | PayPal Service Connector | PayPal Core API | PayPal Merchant SDK |
---|---|---|---|
7.8.2.15+ | 5.0.2+ | 1.7.2 | 2.15.121 |
7.9.0.13+ | 5.0.2+ | 1.7.2 | 2.15.121 |
7.10.2.2 - 7.10.30.x (Tomcat 7) | 5.0.3+ | 1.7.2 | 2.15.121 |
The PayPal Service Connector 5.0 is based on new Payment API introduced in Intershop Commerce Management 7.6.1.
The package includes the following cartridges:
The table below provides information about the cartridges included in the package. Not all of these cartridges are required.
Cartridge | Description | Required |
---|---|---|
ac_payment_paypal | Includes all base functionality and business logic which is used both in the storefront and the Commerce Management application | |
as_responsive_paypal | Enables PayPal payment connector for the following application types:
The cartridge is optional and may be skipped if the custom project does not support these application types or PayPal is not required in these application types. |
The PayPal Service Connector can be used for the following application types:
Application Type | Application Type ID | Compatible | Description |
---|---|---|---|
B2C WebShop | intershop.B2CResponsive | Business to Consumer Channel | |
SMB WebShop | intershop.SMBResponsive | Business to Business Channel Warning Applicable only if the order approval is disabled! | |
Progressive Web App | intershop.REST | B2C/B2B via REST (planned for future release) |
This section outlines the basic setup and configuration steps, including
Note
Managing and deploying the PayPal Service Connector requires a continuous integration environment set up and configured as described in Cookbook - Setup CI Infrastructure (valid to Gradle Tools 2.7).
The package is available via Intershop's Public Artifactory.
To add the PayPal Service Connector into your Intershop Commerce Management system, you may either
Incorporate the cartridge into an already existing assembly.
In the build.gradle file of the assembly add:
cartridges { def paypalPaymentProvider = [ 'ac_payment_paypal', 'as_responsive_paypal' ] include (*(paypalPaymentProvider.collect {"com.intershop.services.payment_paypal:$it:5.0.8"}), in: [development, test, production]) order = listFromAssembly(baseAssembly) + paypalPaymentProvider } ...
For details about adding components to an assembly, see Recipe: Add Cartridges to an Assembly.
, or
For details about managing assembly artifacts, see:
Before deploying the new assembly to a test or production environment, you may have to adjust some file-based configurations required by the PayPal Service Connector.
The PayPal Service Connector requires the following settings:
Property | Description | Value |
---|---|---|
intershop.payment.PAYPAL_STANDARD.currencies | Defines which currencies are configurable for PayPal Standard. Default: EUR,AUD,GBP,DKK,HKD,JPY,CAD,MXN,ILS,NZD,NOK,PLN,SEK,CHF,SGD,CZK,HUF,USD | comma separated list, e.g., EUR, USD |
intershop.payment.PAYPAL_EXPRESS.currencies | Defines which currencies are configurable for PayPal Express Default: EUR,AUD,GBP,DKK,HKD,JPY,CAD,MXN,ILS,NZD,NOK,PLN,SEK,CHF,SGD,CZK,HUF,USD | comma separated list, e.g., EUR, USD |
According to Recipe: Change Deployed File Content With Filters this setting has to be overridden within <IS_SHARE>/system/config/cartridges/ac_payment_paypal.properties.
For details about adding new configuration files, see Recipe: Deploy Custom Files.
After creating and appropriately configuring the assembly, you must deploy it to the intended target environment.
For details about deploying an assembly, see Recipe: Run the Deployment (Initial Installation / Upgrade / Downgrade).
Note
The PayPal Service Connector requires additional post-deployment configuration steps. For details, refer to Configuration .
The consequent redirects to PayPal (those after the initial redirect) are done after significant cart changes. What is significant in a cart is defined by the class:
@Named("PayPal_BasketHashCodeGenerator") public class BasketHashCodeGenerator implements Function<BasketBO, String>
It gets the current BasketBO and creates a hash based on what it considers to be significant.
At some stages of the checkout (Payment and Review pages) a hash is generated again and if there is a mismatch with the initial hash, the customer will be redirected to PayPal again.
To change the definition of what is significant in a cart:
YourCustomBasketHashCodeGenerator
implementing Function<BasketBO, String>
, which generates hash based on what you consider significant.Bind the new class in your customization Guice module.
bind(new TypeLiteral<Function<BasketBO, String>>() { }).annotatedWith(BasketHashCodeGenerator.class.getAnnotation(Named.class)) .to(YourCustomBasketHashCodeGenerator.class).in(Singleton.class);
This section outlines the required post-deployment configuration steps, including:
Adjust your firewall settings according to PayPal's Go Live Checklist.
The PayPal Service Connector requires some post-deployment configurations in Organization Management application and Commerce Management application.
For details about enabling a payment service, see - Recipe: Enable a Payment Service.
The table below lists PayPal specific settings you can enter at the payment service.
Name | Description |
---|---|
User Name | Your PayPal seller account's username. |
Password | Your PayPal seller account's password. |
Signature | Your PayPal seller account's signature. |
Environment | Switch between test and live system. Options: live, sandbox and beta-sandbox. |
Logo URL | The URL of the logo that will be displayed on the PayPal page after redirect. |
Branding ID | The heading that will be displayed on the PayPal page after redirect. Overrides the logo parameter. |
Page Layout | The identifier of the preconfigured page style, that will be used for the PayPal page after redirect. Overrides the logo parameter. |
Auto Capture | If enabled, the amounts will be automatically captured with the authorization. |
Allow PayPal address update | If enabled, the customer can update shipping address via PayPal page. |
Allow shipping buckets | Enable PayPal for orders being dispatched to multiple addresses or in multiple shipments. |
Digital goods | If enabled, the customer can buy Digital Gift Certificate. |
PayPal Logo URL | URL of the PayPal logo, which is shown under PayPal payment methods. |
Transfer Order Details | Specifies way to transfer order details to PayPal. Order details include items (prices and quantities), discounts, taxes, handling fees, etc. |
PayPal confirmation button type | Modifies the text value of the PayPal confirmation button. |
The PayPal Service Connector provides English and German localization for payment specific input field labels, error messages etc.
You can find the existing localization files here: <IS.INSTANCE.SHARE>/system/cartridges/ac_payment_paypal/release/localizations
For details about localization, see:
The PayPal Service Connector adds the following payment methods to your Intershop Commerce Management system:
Name | Description | Payment Management Options |
---|---|---|
PayPal Standard | Payment via a PayPal account performing the complete authorization/capturing process | Capture, Cancel, Reduce, Refund |
PayPal Express | Payment via a PayPal account using the express checkout button and performing the complete authorization/capturing process | Capture, Cancel, Reduce, Refund |
Operation | Description |
---|---|
Capture | Request for settling the payment, can be submitted via the Intershop Commerce Management or via the PayPal Web interface. |
Cancel | Request for abandoning (PayPal: voiding) a payment settlement, can be submitted via the Intershop Commerce Management or via the PayPal Web interface. |
Reduce | Option to lower the capture amount |
Refund | Option to return (parts of) the capture amount |
Note
Capture and Cancel operations performed directly in the PayPal Web interface are not synchronized with Intershop Commerce Management. This leads to errors when trying to capture or to cancel those payments in the Intershop Commerce Management.
The PayPal Connector supports different options for transmitting order details to PayPal. To avoid rounding errors it might make sense to adapt this setting within a project in order to make it possible to use PayPal for all use cases.
Rounding errors may occur when transferring the basket to a payment service provider (PSP). When a PSP provides an API to send the different basket totals with 2-digit values (e.g., shipping, taxes, discounts etc.) there is a possibility that summing up everything with 5-digit values will produce a different result than the total amount for authorization. The difference might be as small as a cent, but still enough for the PSP to reject the payment. The reason for rounding issues is price calculation which includes percentage values. For example:
Since version 4.1 of the PayPal Connector the shop manager has three options to transfer order details (basket transmission) to PayPal.
ICM Option | Possible Rounding Issues | Explanation | Result at PayPal |
---|---|---|---|
No Details | no | No details besides the order total appear at PayPal | |
All Details as Subtotal | no | The connector uses parts of the PayPal API. Order details appear at PayPal as part of the item list. | |
Details Separated | yes | The connector uses most of the PayPal API. Order details appear at PayPal at dedicated places. |
Once the customer is redirected back from PayPal, the contents of the basket are stored as hash. If significant changes are observed before the order is completed, the customer would be redirected again to PayPal to confirm the payment. Such redirects may occur on the payment and review pages of the checkout process.
The following table describes transmitted data by the PayPal Service Connector from ICM to PayPal during the payment process:
Description | PayPal Payment Methods | ||
---|---|---|---|
PayPal Standard | PayPal Express | ||
Amount | The amount for the transaction | ||
Currency | Currency code e.g. EUR/USD | ||
Customer details | Customer e-mail, customer first name, last name, country, city, postal code, mobile number | ||
Shipping Details | Shipping amount, shipping discount | ||
Reference (order id) | Order reference generated by Merchant | ||
Address details (street, zip, city, country) | Invoice and shipping address details provided by the user | ||
Description of the items | Product description (optional and configurable in back office) |
Symbol | Description |
---|---|
Transmitted | |
Not Transmitted | |
Optional |
Please be aware that the PayPal payment cartridge requires a matching price display and tax calculation. That is, the price type and the price display must be either both set to "gross" or both set to "net", and a corresponding taxation service must be enabled.
A logged in customer will be redirected to the payment page (not the review page) after confirming payment at PayPal.
However, this does not affect the functionality of the cartridge.
The payment methods are available for B2C shops and for those B2B shops in which the order approval is disabled.
The IP Zones feature requires an IPv4 address on the customer's side. In case the customer has an IPv6 address, the payment method Credit Card will not be displayed on the payment page.
Bugfix: PAYPAL-172 - Syntax in logback configuration updated
Bugfix: PAYPAL-162 - Fix handling of long refund message to avoid failing call
Improvement: PAYPAL-156 - Removed "ISH" and "Service" from payment service names
Improvement: PAYPAL-142 - Applicability checks log more information for failed checks