Ez-PayPal

Show All | PDF

Sales Editor

One of the major difficulties with most e-commerce packages is the near-impossibility of editing your transactions in any meaningful way. All you can do is to manipulate your database using some tool like phpMyAdmin. Since you may not know the data semantics that the developer had in mind, you are playing with fire when you edit the data directly. You may end up violating some referential constraint and make your program unusable.

Despite this danger, there are times when you have to do it. For instance, a particular sale may have expired before your buyer had a chance to download his product (which tends to happen quite often for me). You may want to reset the expiry of this particular sale so that the download link works again.

ezPayPal enables you to edit your transactions in a semantic-aware fashion (meaning, you won't irrevocably mess up the data while editing). The interface to do this is the Sales Editor.

Single Sale Editing

When you start up the Sales Editor by hitting appropriate button on the Pro Control Panel, you enter the Single Sale Editor mode. As the text in the interface says, if you want to quickly modify a single sale, and/or send a fresh download email to your buyer, you can use this section. First, load the single sale by providing either the email ID of the buyer or the PayPal transaction ID. If you provide the email ID, the latest sale by that buyer will be loaded. You can then change the expiry date (of the download link) below, if you like. If the expiry date is in the future, you will have the option to resend the email message with the download information to your buyer.

Once you load the sale, you can inspect it by clicking on the "Show" button, or discard it and start over by hitting the "Discard" button. Discarding means unloading the sale from the Sales Editor memory, not deleting it from your database. (In fact, there is no interface in ezPayPal that will let you delete critical information from the database. You will have to use other tools, like phpMyAdmin or a DB client, to do that.)

Note that the actions on Sales Editor (like resetting the expiry or sending email) will require further confirmation on a popup dialog box.

Bulk Editing Multiple Sales

When you select the Multiple Sales Editor mode, you will get the window below. To get started with editing sales, first load all your sales from your database. Click on the button below. Don't worry, it is a non-destructive, read-only operation.Once loaded, you can view them by clicking on the 'Show Sales' button. And hide the displayed table by the 'Hide Sales' button.

Once the sales are loaded (which might take a few minutes if you have a lot of them in your database), you will get the following window. The window contains generous amount of help in terms of text, status messages and tooltips.

The top part of the screen shows the number of sales loaded, and gives you options to display them. The second part, titled "Filter Multiple Trades," lets you narrow the sales loaded in a variety of ways. Once the filtering is done, you can examine the selected sales. The last part of the window (titled "Edit the Filterd Sales") will let you set the expiry date, affiliate ID (if you want to manually track affiliate sales -- not fully implemented yet), the sale status (Refunded, Voided, Completed or Pending), the version sold to the buyer, and the current version of the product.

Despite the dire warning in red about the finality of the edits, your modifications are not actually applied in the current version. The code to do so is not hard to write, but such direct database manipulations have to be done with extreme care. After more tests, the code will be activated in a future version.

Editing Unprocessed Sales

Unprocessed sales are the ones where the communication between PayPal and ezPayPal was disrupted in some fashion. In order to understand it, you need to know how PayPal IPN works.

From PayPal site:
  • PayPal sends your IPN listener a message that notifies you of the event
  • Your listener sends the complete unaltered message back to PayPal; the message must contain the same fields in the same order and be encoded in the same way as the original message
  • PayPal sends a single word back, which is either VERIFIED if the message originated with PayPal or INVALID if there is any discrepancy with what was originally sent

The network traffic can fail at any of these steps. Knowing this, ezPayPal plays it safe -- as soon as it receives the information from the first step, it saves the information into your database. If the communication or the processing fails during any subsequent steps, you can still recover from the error later on using this "Editing Unprocessed Sales" feature. The window you get when you choose this mode is shown below.

From the help text on the interfce: this mode helps you locate unprocessed sales and process them. An unprocessed sale is one which got PayPal IPN info, but either failed validation or post-back. (Refer to IPN guide for more information). These transactions could, in principle, be fraudulent -- attempts by hackers to get your product without paying for it. But most often, it is some network issue preventing your server from validating the transaction with PayPal. Action: verify the transaction on the PayPal website before shipping your product.

Once you load the unprocessed sales (by clicking on the button titled "Load Unprocessed Sales"), you get the following window. In order to display the unprocessed sales loaded, hit the "Show Filtered Sales" button. You can then process the individual sales by clicking on the "Process" button on the corresponding row. If you so choose, you can send the download email to the buyer while processing the sale by checking the option.

ezPayPal Help System.