Using PayPal with EasyEstimates
Introduction
PayPal is payment processor that accepts credit and debit cards and eChecks. Although EasyEstimates doesn't currently have any interfaces to other payment processors, Sizzling Web Design will work to add other payment processors, if their interface reasonably matches with EasyEstimates. EasyEstimates also contains several methods for interfacing with payment processors, billing systems, and other external systems that can be customized by the clients.
EasyEstimates interface to PayPal is optional. If you do want to interface with PayPal there are several methods available.
For services being sold, EasyEstimates allows for an unlimited number of options but PayPal recognizes a maximum of 2 options. EasyEstimates puts a reference number both in the email sent to both you and the customer and also the PayPal transaction. The emails are also logged in the EasyEstimates database. This allows you to match what was purchased with the emails since customers may chosen more than 2 options and may have changed their mind about what to purchase.
For products being sold, EasyEstimates can pass the product name, product number, up to 2 options (size and color, for example) and the shipping cost to PayPal. Like with services, you may choose to have EasyEstimates send a separate email if more 2 options are chosen. The EasyEstimates reference number is passed to the PayPal shopping cart and also logged in the EasyEstimates database. Customers will receive one email per product (if emails are sent), not one per order.
EasyEstimates also has interface to PayPal's Instant Payment Notification (IPN) system. IPN allows PayPal to communicate directly with your web site. EasyEstimates can automatically update the payment status of an order (payment received, waiting for approval, etc.) and also automatically send emails to the customer notifying them of the payment status of the order. EasyEstimate's IPN interface currently best fits orders where just one item is purchased.
Implementing the PayPal interface
PayPal requires some static information, such as your PayPal Id, and dynamic information such as what the customer is purchasing. Static information is provided by updating a PayPal form. A sample form is located in easyestimatepage.php. There are actually 2 forms, one for making purchases and one for the checkout button. The forms contain comments about what values you need to fill-in and which are filled-in by EasyEstimates. If you're using EasyEstimates's preview page, copy your modified PayPal forms to your preview page, a sample is at easypreviewpage.php
Dynamic information is passed to PayPal based on matching EasyEstimates Detail Lines to PayPal form fields. The Activity Change page contains the options for calling PayPal and identifying which detail lines to use to pass to PayPal.
Specifically on the Activity Change page make sure that:The PayPal IPN options can be updated from the Activity Change page by clicking the "Save and Manage PayPal IPN options" button. An explanation of the PayPal IPN options is available at PayPal IPN Management