Easiest way to implement paypal shopping for e-books
With respect, the question is slightly naive, in that there is typically a separation between the shopping cart, and the payment processing.  A payment returns a binary result - it either worked or it didn't. It is up to your application to recall what was being paid for.
The Paypal API returns the success or failure of an identified payment; plus will happily consume a list of items you give it, so that the user is presented with a breakdown of the total amount.  But note that you are telling paypal what is being paid for. It is consuming that data, not providing it.
So the answer depends entirely upon your chosen solution (django-paypal or django-merchant or whatever).  Read their documentation.  Presumably there is some way to inspect the contents of a recently approved transaction. Cycle through the cart and enable a download of each.
Django-paypal, for example, has no interest of what is in the cart. It just fires a signal when a payment is successful, and passes back the transaction identifier.  Your application  must recall what the transaction was for.
Often it's not as easy as you'd hope.
I have an existing django website, and I would like to sell some pdf files through it using paypal.  The buyer needs to be able to select 1 or more books, get transferred to the paypal site to enter in payment info.  Then after a successful payment, the buyer gets redirected back to my website and the books start downloading automatically. 
I have looked at the django-paypal and django-merchent apps, but I don't know how to handle the multiple downloads.  As far as I know, using these apps, after a successful purchase, the app sends a success signal, but doesn't tell me which books were ordered.
What is the best way to implement this either with the django-paypal app or using some other method?  Again, I'm looking for the easiest/quickest solution.
Thanks,