Wednesday, May 6, 2009

MIVA MERCHANT

Working on a Flex ecommerce solution. Need to provide the client with a full suite of merchant tools including:
  • Pre-provided tax rate data on orders within the US
  • Price and quantity inventory info
  • Fulfillment and basic CRM features
  • Analytics
  • Easy-to-use content management
  • API to Google Checkout
  • Portable to external spreadsheets and financial software
  • Secure credit card transactions (natch)
Plenty of solutions offer the above. The catch is, in order to provide my own client side in Flex I require a direct db connection, preferably to SQL, to supply a stream of remote data to my shopping UI. I have created my own CMS that will do the job, but there are ornery caveats associated with an architecture including 2 repositories of data, my CMS and the ecommerce CMS, namely:
  • consistency of state across tiers
  • concurrency
  • locking
  • transactions
  • rollback
Dual databases for one application is seldom if ever ideal, and certainly not in this case. Trouble is, unless there is some way to communicate between Flex and the Ecommerce solution, 2 databases are the only way to roll it out. But what form would this communication take? In the case of Flex, there are three services available for accessing data:
  • HTTPService: Passes textual data over HTTP. This is often used to fetch RSS feeds, read XML generated by a server, or simply pass text-based data from server to client.
  • WebService: Allows a Flex application to invoke server-side web services using SOAP and handle the results of web service calls. These web services may reside on the server that has served the rich Internet application or may call third-party web services through a proxy on the server.
  • RemoteObject: Allows a Flex application to directly invoke methods on Java classes residing on the application server that has served the RIA. Data is transferred in binary format (Adobe Action Message Format or AMF) over HTTP or HTTPS, with the server translating Java and ActionScript objects as they pass over the wire.
That's a pretty rich options list. I can use RSS feeds, XML, Web services or even direct DB access via RemoteObject. Lots of options, yes, options galore. As for the custom CMS I mentioned, it is .NET and uses RemoteObject to pull from the SQL database. Now I seek a similar means of pulling data from the ecommerce system. Any will do. But as it appears, there are few options.

I have thorougly scoured practical ecommerce, a website devoted to ecommerce application vendors. Practical ecommerce website has a Cart of the Week feature in which they interview principals of a web ecommerce provider each week, weighing the pros and cons of their service. There are open source solutions, Microsoft solutions, Adobe solutions, many variants. They can be hosted or licensed options. I've read through many of them.

In addition, I have signed up for Miva Merchant 5.5 with the reseller that hosts my client site. They are one of the 800 pound gorillas of ecommerce, Google Checkout being the reigning heavyweight, but not a full service solution as Miva offers.

Miva Merchant offers database integration now, as of 5.5, via the services of MIVA SQL and optional MySQL support, but here's the rub. Try a google search for "miva sql" and venture a guess at the richness of answers google will provide. At my last search...462 pages. A pathetic level of information out there to say the least, and equally untenable are the docs offered by Miva. Here are a few plaintive queries that died on the vine on my hosting account forums:
I've put in a support request ticket and will continue to pursue the issue. For my stake in this, at the root of the matter lies a question of Flex and Ecommerce integration. I ask the ecommerce vendor community collectively, is there a solution that offers a full set of features as well as database access? Has any of the companies seen the value in offering a solution that can serve as a data feed and cms, or conversely are they all template-and-markup-based solutions? I'll post more once I have some concrete answers to this.

2 comments:

Susan said...

You don't want to use MivaSQL if you can help it. It's legacy and doesn't work nearly as well as MySQL. That's part of the reason that there's not a lot of documentation on it. The other is that the term MivaSQL wasn't coined until after they added support for MySQL, even though "Miva SQL" (aka DBF files) have been used since Miva Merchant's inception.

Also if you are looking for a great sales tax solution, try out www.AccurateTax.com service. It does both address scrubbing and destination-based sales tax calculations. It's available for Miva Merchant 5 and we'll be releasing connectors for other shopping carts soon. It also has an open API if you want to code something yourself.

Naima said...

Specializing in small and medium-sized businesses in both traditional and Internet environments, www.damerchantservices.com has one of the highest merchant acceptance rates in the industry, with most applications approved within two business days.

In addition, our technological advances have effectively harnessed and exceeded the growing demands in the processing industry—allowing us to support nearly every vertical market with increasing and profitable business solutions.