Page 1 of 1

best practices for custom site?

Posted: Mon Aug 03, 2009 11:36 pm
by markpuck
Hi, I'm new to able and am building a pretty custom site. I'm wondering anybody has any advice of what route to take for building a custom site? The checkout process will be more cosmetic, but from the homepage through to the cart will be really custom.
Thanks for your help.
-Mark

Re: best practices for custom site?

Posted: Tue Aug 04, 2009 10:01 am
by mazhar
AbleCommerce is very flexible and can accommodate any sort of design. You can create a new theme for your store to implement desired design. Then you can modify respected checkout control to incorporate your custom functionality or can write a whole new checkout control.
Read about store design and customization from Able WIKI
http://wiki.ablecommerce.com/index.php/Main_Page

Re: best practices for custom site?

Posted: Tue Aug 04, 2009 2:55 pm
by markpuck
Thanks. Is there any other info out there?

The wiki mentions big customization, but doesn't actually give any advice on how to go about it on this page:
http://wiki.ablecommerce.com/index.php/Creating_Themes

From what I've seen thus far, the help content is really geared towards simple skin (color/logo/etc) changes.

Where are the ~/Layouts talked about?
I tried creating a new one and referencing it in Default.aspx but that threw an error.

Thanks

Re: best practices for custom site?

Posted: Tue Aug 04, 2009 10:03 pm
by AbleMods
Mark,

Can you be more specific when you ask about "what route to take"? If you're building a mostly custom site, the route taken will be entirely dependent on your own custom needs which you haven't described.

No one has put together any "best practices" or "standards of customization" if that's what you're looking for. Since the entire storefront is built on .Net, developers pretty much just go their own way as they write their own customizations.

There are several posts in the helpful topics forum that could give you some specific tips. Combined with the Wiki technical articles, that's about all that is available at this time. Of course the forums are filled with information as well when you run into a specific issue.

With my sites, I write class libraries whenever possible so deployment is more easily managed. I have over 30 user controls on Solunar.com to drive the various content-only pages within the site. These are all stored in ~/ConLib/Custom/.

Finally, the best information is the huge quantity of included source code available in the base product. From there you can see how able builds baskets, processes payments and manages user accounts. I spend a good deal of time just following Able code to see how they do something and learn by example. The CommerceBuilder API is quite extensive.

Good luck with your project!

Re: best practices for custom site?

Posted: Wed Aug 05, 2009 5:18 am
by mazhar
markpuck wrote:Thanks. Is there any other info out there?

The wiki mentions big customization, but doesn't actually give any advice on how to go about it on this page:
http://wiki.ablecommerce.com/index.php/Creating_Themes

From what I've seen thus far, the help content is really geared towards simple skin (color/logo/etc) changes.

Where are the ~/Layouts talked about?
I tried creating a new one and referencing it in Default.aspx but that threw an error.

Thanks
Read following thread, its about re-skinning tutorial
viewtopic.php?f=44&t=9324

Re: best practices for custom site?

Posted: Wed Aug 05, 2009 11:53 am
by markpuck
Thanks again.

What I was looking for is just more details on the best way to do a custom site (way more than skin changes) in able.

On one had, I could write a complete page that leverages the data layer and not use any of the canned controls, because they all have to be modified anyway.

On the other hand, I could copy/paste an existing page, and copy/paste any/all controls that I have to modify into the /Custom folders and modify each and every one there.

Then there is the data aspect of it -- I can modify in aspx page what layout and controls to use, etc, or I can modify the data in the db. It gets quite murky when you're changing both data and code to affect a UI change. So in this instance, I'm ignoring the data and just changing code.

Anyway, thanks for the help and the links to the tutorials. They're a little too basic and touch on skinning, not custom site development. I'll keep looking, or perhaps just write one of my own. :)

Re: best practices for custom site?

Posted: Sat Aug 29, 2009 10:17 pm
by markpuck
I still have doubts about what the best practice is for modifying existing controls.

Lets say you want to modify the CheckoutProcess control. From what I've seen, best practice is to copy it into your Conlib/Custom folder, make changes to it. Then you have to change every reference to it so they use your custom version of the control. Correct?

The downside to this, very much so with this specific case, is that a simple change to one control spawns copy/paste/changes in 6 other controls, with each of the six other controls spawning who knows how many more changes.

Now having spent a fair amount of time copy/pasting stuff around, it seems like the real best practice is to just use source control, modify the existing controls in place, and put new controls in the custom folder.

How is everybody else doing this?
Thanks

Re: best practices for custom site?

Posted: Sun Aug 30, 2009 5:49 am
by AbleMods
In the case of OnePageCheckout, yes. The complexity of the module mandates making in-place modifications.

But that's only 1 example out of a library of 100 controls. Very, very few controls in ConLib even reference another user control. Able made every effort to limit the co-dependence trap of user controls. As a whole, the vast majority of controls in ~/ConLib/ can easily be moved to the ~/ConLib/Custom/ folder without excessive effort on the part of the developer.

Remember that you aren't going to see ANY benefit to maintaining code in the Custom folder until you've endured your first full site AC7 version upgrade. It's going to seem like more work. That's because it is. You're not maintaining a standardized method of customization to make your development easier. You're doing it to make future upgrades to the storefront go much smoother.

Are the upgrades still going to be a hassle? Of course. There's no avoiding that - you made that choice the day you decided to make modifications to the code. But the payoffs of customization are many and your store will forever be unique. By consistently separating your modifications from the base files whenever practical, your upgrade path will have less bumps. And less bumps equates to quicker and more stable upgrades.

Re: best practices for custom site?

Posted: Sun Aug 30, 2009 10:28 am
by markpuck
Hey Joe, thanks for the feedback and advice!
-Mark

Re: best practices for custom site?

Posted: Mon Aug 31, 2009 3:07 am
by markpuck
What about page titles? I'm surprised there isn't one method to change to customize the page title.
Do I really need to hunt through every template and format the page title?
I must be missing something here.

Re: best practices for custom site?

Posted: Mon Aug 31, 2009 4:01 am
by AbleMods
There is. Page title is set in the page code for both category and product pages. You can find it in the Page_Load() of product.aspx for products. It's in a slightly different place for each of the categorygridpage controls - just search for "Page.Title" in the code file and you'll find where it gets set.

Able could have done a better job of managing both page titles and meta tags for products and categories. I modified my PageHelper class to automatically generate keyword and description meta tags for all my store products based on values from the product record itself. That way I don't have to manually set them for each product in the store.