Hey everyone,
I remember mentioning a few days ago about working to get Storm running with Ubercart, thus allowing clients to pay invoices online.
Well, weekend's over and I've made barely any progress on that front. Ubercart seems way too advanced for this kind of thing, and the simpler API modules (Simple Payments; Payments API; Simple PayPal) are pretty early and lacking in documentation.
Options (pros/cons):
Ubercart/Ecommerce -- Very big, lots of support; probably overkill, seems it would add an interim stage (invoice price is recorded as a product; product is then paid for. Unless I'm mistaken.).
Payments API -- Seems like the most forward-thinking, but really mediocre PayPal support (Seems like it supports Authorize.Net best).
Simple Payments -- PayPal and Moneybookers support; really limited documentation. 6 commits total.
Simple Paypal Framework -- Only a dev D6 port. 8 commits total.
lm_paypal -- Seems more geared for subscriptions and donations. Couldn't find any real documentation.
Giving clients the ability to pay invoices online seems like it'd be a super radtastic feature for Storm. Anyone want to work together in making this a reality?
Thanks!

Comments
This would be a great
This would be a great improvement.
Are there any changes in Storm that you think will aid this process?
I'm hoping to move Storm away from being a standalone system and more towards something that hooks into other modules and is more extensible.
I'm getting there really
I'm getting there really quickly; I'm building everything as a standalone module that hooks into the View operation via Simple Payments' PayPal module. Only thing I have left to do is handle payment processing (i.e., removing the "Pay via PayPal" button after successful transaction. Also, while I'm receiving a response from PayPal's servers post-transaction, Simple Payments isn't recording it to DB.
Some documentation on what hooks Storm uses would help; creating a module builder hook definition would as well.
--
ændrew rininsland
news, photos, data, code.
aendrew.com :: @aendrew
Which Storm hooks are you
Which Storm hooks are you interested in?
Would it be possible to create an issue for each hook that needs documenting? Such as "Create documentation for xxx hook".
What would a module builder hook definition entail? I'm new to that.
I ended up not needing them;
I ended up not needing them; I used node_api's hooks in the end (Which I figure is probably pretty often the case with Drupal, now that I'm into my second module coding for it). That said, you facilitate development for those using Module Builder and Drush by adding a .module_builder.inc to the main package.
Quoting http://drupal.org/node/205585 --
Telling module builder about your hooks
Lots of contrib modules provide hooks. You can tell module builder about them, so users can easily generate code for your module's hooks in their own modules.
To do this, implement hook_module_builder_info() in a file named YOUR_MODULE.module_builder.inc file in your module folder. See the contents of module_builder.module_builder.inc for a detailed example.
--
ændrew rininsland
news, photos, data, code.
aendrew.com :: @aendrew
Success!
I've totally gotten this working, albeit in a way requiring an extra CCK field (thus, not really ready to release as a contrib module... Yet). Yay! Online invoice payments!
The one issue (more a feature request, really) that remains is adding the "Pay via PayPal" button to the various PDF-related icons on the storminvoice page (Email PDF; Print PDF; etc.). Currently, I have it rendering at the end of the content area via the following through hook_nodeapi's "view" operation:
I guess the one hook I need is the one that renders the icons on the right-hand side in the invoice view. Any thoughts?
--
ændrew rininsland
news, photos, data, code.
aendrew.com :: @aendrew
Hey, cool !
I would absolutely love to see ubercart and storm work together!
Until now I have gone nuts using both for my online store ... doing all the syncing manually is a pain :-/
This would be great for a project like mine which deals with contracts of service online using storm to fulfill the services from the ubercart store.
I don't know a lot about writing modules but if you need any more info about probable scenarios of use and what would be great to have for my use case then I can serve with a few ideas (supposed that you might have made up your mind about functionalities and the extent of a syncable solution)
My mother tongue is German, if that might be of any help to you!
you have my support. All the best!
Alec
I'm done the module I was
I'm done the module I was working on (still need to clean up the code somewhat) and ended up not using Ubercart -- for simple invoice payment, Ubercart is much too complex. The customers in my usage case will never pay more than one invoice at a time; they'll never have two or more "Invoice" items in their cart before paying. Plus, by not using UC, I took down the memory footprint of my project quite substantially.
If you want to use the module I'm writing, you'll have to switch UC for Simple Payments (and if you don't use PayPal or Moneybookers as your payment provider, you'll have to find another solution). That said, if you're just using UC to do the payment processing and nothing else (while copying payment data back to Storm Invoice manually -- yuck!), you can probably transition to Simple Payments without any significant data loss.
--
ændrew rininsland
news, photos, data, code.
aendrew.com :: @aendrew
Well, ok ...
what I don't quite get a grasp of by thinking about your decission is the actual main usage case.
Let's start with UC ... It's got lots of configuration options with many modules. Why did I coose UC? It took me quite some time to figure out what would be the best for my use case ... because I was using storm even before i went into online marketing. So why Storm? well, of course the huge amount of personal configuration for a longer and individual configuration.
So what is the sense, sorry if I'm sounding bargeing in, to have a highly configurable tool to manage your process of an order if the only orders you can plug-in are the simplest and sparsely configurable ones?
That would really be an interesting discussion, i guess ^_^ but hey ... maybe you can still talk me into using Simple Payments, although I did originally avoid it because as I saw it it didn't make sense to me in combination with souch a masterpiece of individualisation.
Am keen to hear from you!
Alec
What would an ideal workflow
What would an ideal workflow between Storm and UberCart be? Which parts of each does the customer interact with? The biggest problem from my perspective is you have to deal with unnecessary records -- for each invoice you generate, you ultimately need to create a new product for UC to process and link to that invoice. The client I built this for only needs PayPal support for clients to first pay their invoices, then mark those invoices as paid. Given this, UC would have been overkill. I'm sure many, many people are in the same boat.
In all honesty, a more robust solution that integrates with UC might ultimately be a really worthwhile endeavour -- especially if/when the D7 version of Storm comes out, as there's currently no D7 version of Simple Payments. Plus it would allow a lot more payment processing options than Simple Payments does, and allow things like shipping options (I.e., say you're a custom prefab company that invoices clients; when they pay for their order online, they would also be able to choose how best to ship it), in addition to having much, much better support than Simple Payments has (I spent like 2 hours just figuring out why it was keeping no record of a successful payment, only to realize it has no error handling for payments set as "Processing").
If you think that UC integration is a worthwhile feature request, please subscribe to http://drupal.org/node/837234. I have no particular desire to program it, but might be willing to help if the community's willing to support it. Frankly, it might be more beneficial to ask the UC team to work on this, as the CRM functionality provided by Storm is more useful to UC than the cart functionality provided by UC to Storm (and is thus more likely to yield a tighter solution if nobody in the Storm community has any UC programming experience -- I sure don't.).
Just my two cents; I'm more a documentation dude. If any of the Storm devs would be willing to comment, it'd be appreciated...
--
ændrew rininsland
news, photos, data, code.
aendrew.com :: @aendrew
Hi, I'm just posting here
Hi, I'm just posting here because I think it's a neat functionality. What I would like is to email an invoice customers with a link to checkout with either a check or Paypal payment.
As far as using products, maybe we could create an 'invoice' product, with a $0 cost and add line items as needed.