you'll have to modify photo_shop_checkout.php
the checkout button ---> you'll need to send paypal not only the total and the shipping amount, but info about every item. If paypal can't return all that info ... bad luck. Then it's not possible to go this way (cause you can't add the items to the shop db). I haven't looked into this and the paypal functionality. However I decided against that solution. A lil glitch in the users internet connection and he has paid but the purchease info doesn't get back to your shop.
As it is now... he orders and gets presented a bunch of payment possibilities, pays and when payment arrives you mark the order paid and deliver.... cool, and if paypal cvan return back... then the shop can automatically mark the order paid for you (not yet implemented)
The shop doesn't save info about each item in your pictures db. So it's not possible to have shipping depending on items. Would be possible to have different shipping costs for each album. The most expensive overrides all others.
If you don't hesitate to rewrite, then you'd assign shipping to the cart items and not the items in the pictures db., if no shipping is set, then the default is taken into account
eg.
Photo books - shipping USD 10.-
Greeting cards - shipping standard
If the guy orders greeting cards... then what you've set in config rules. If he orders a photo book... then you override the standard shipping with the USD 10.-
Haven't looked into this yet, but I think it's doable without to much problems