CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Jeff Lynch [MVP]

Everything E-Commerce!

Commerce Server 2007: Begin with the End in Mind!

Since Commerce Server 2007 has now reached it's RTM milestone and general availability is scheduled for early August, I thought I'd repost this. If you're planning to extend the CS2007 "Orders" classes to fit your particular business scenario, please read this!

This post should have been Tip #1 since I firmly believe that every development project should follow Stephen Covey's 2nd Habit - Begin with the End in Mind.

Background
As many of you know, I develop business-to-business e-commerce solutions for the company I work for. These solutions are generally built using Microsoft's SQL Server, BizTalk Server and Commerce Server products. My overall goal when developing an e-commerce solution is to automate B2B transactions between trading partners in our supply chain. In doing this, I've found that "beginning with the end in mind" is the only way I know to ensure the success of our development projects. In Commerce Server 2007, following Stephen Covey's 2nd Habit has been absolutely vital to our success.

If you've read by previous posts about Commerce Server 2007's Core Systems and Value Proposition, you'll remember that CS2007 includes a new "Integration Subsystem" (my term, not Microsoft's) built on several new BizTalk Server 2006 Web Service Adapters. These new Adapters allow developers to perform bidirectional integration between the web "front-end" and the ERP "back-end" systems. This makes it possible to perform all sorts of real-time or near real-time integrations without writing a ton of custom code. And these new adapters are not third-party "bolt-ons", they were designed specifically for integrating with Commerce Server 2007. But all this new "power" comes with a price. You really need to develop your Commerce Server 2007 application from the "end" back to the "beginning", not the other way around.

Beginning with the End in Mind and Putting First Things First!
This may sound a little radical if you've never developed an integrated e-commerce solution before but I recommend beginning your development efforts with the BizTalk applications your e-commerce system will use to "communicate" with the outside world, especially your ERP system.

Develop your ERP system integration schemas, maps, pipelines and orchestrations using BizTalk Server 2006 first.

These should include outbound purchase orders, order updates, inventory updates, catalog updates, customer and organization (profile) updates and any other information you need to exchange with your ERP system. During this work, you're likely to find out what "custom information" (not provided by CS2007 by default) your ERP system requires to process and fulfill an order. This will lead you directly to the next step...

Extend the CS2007 "Orders" subsystem to accommodate this "custom information" required to process and fulfill an order.

This can be done by extending the "Orders" classes in CS2007 to add the custom properties and methods your application requires. The online docs have a pretty good explanation of how to get started on this. This work will lead you directly to the next step...

Create your product and inventory catalog schema adding any "custom information" required to process and fulfill an order.

This is done using the Catalog and Inventory Schema Manager tool provided with CS2007. Add any required product or inventory related custom properties to your schema and test, test, test. Decide how you plan to present your catalogs to users on your site and most of all... KEEP IT SIMPLE! And yes, this work will also lead you directly to the next step...

Modify the standard UserObject, Organization and Address profile schemas to include any "custom information" required to process and fulfill an order.

You'll find that not all custom information "fits" into the catalog or orders system directly. Some things (such as a customer number from your ERP system) fit into the Profiles subsystem better. So, you'll need to make some profile changes or perhaps add a few new profiles of your own. Finally, this work will lead you to your final development step...

Go ahead and start writing some site code using the new StarterSite or CSharp.pup as the basis for your web site.

Now that you know all the custom information that your integrated e-commerce system needs to process and fulfill an order, you're ready to begin writing your site code. You already know what an "Order" looks like and what fields your product "Catalog" holds. You also know where to get the "customer number" from your modified Organization profile. All you need to do now is put it all together with your site code.

Conclusion
What I've described above may seem radical, out-of-order, and unintuitive but it follows Stephen Covey's 3rd Habit - Put First Things First. It's also based upon the knowledge that "the purpose of any e-commerce solution is to fulfill an order". Everything else is a means to an end. Keep this principal in mind and your Commerce Server 2007 development projects will be successful, cost-effective and completed on time!

As always, your comments are more than welcome!


Published Jun 25 2006, 05:26 PM by jlynch
Filed under:

Comments

jflarente said:

Thanks Jeff,

I've been working with these general guidelines in the back of my mind but your article really breaks it out makes things very clear!

I look forward to reading your future posts!
# June 20, 2006 2:58 PM

Jeff Lynch [MVP] said:

What do I do if the StarterSite doesn't fit my scenario?
# January 4, 2007 8:28 PM

Jeff Lynch [MVP] said:

If you've read any of my previous Commerce Server posts you'll remember that planning is the key to success
# January 9, 2007 10:52 PM

Ben Runchey said:

I was wondering where you found the WebServices stencil for this Visio diagram? I am putting one together much like this and would like to use that stencil to represent the use of Web Services
# July 30, 2007 6:45 PM

jlynch said:

Ben,

Send me an email and I'll send you the stencil for this. It was originally developed in Adobe Illustrator by a Microsoft employee.

jtlynch@[nospam]houston.rr.com

# July 31, 2007 9:46 AM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add
Check out Devlicio.us!

This Blog

Syndication

News