Custom functionality - level of effort

For general questions and discussions specific to the AbleCommerce 7.0 Asp.Net product.
Post Reply
meh
Ensign (ENS)
Ensign (ENS)
Posts: 3
Joined: Tue Apr 14, 2009 12:29 pm

Custom functionality - level of effort

Post by meh » Tue Apr 14, 2009 4:13 pm

Hello... please let me know if this type of post is unacceptable. I'm new to AbleCommerce and I'm putting together a bid for a client with a couple options.

The option relevant to this post is an AbleCommerce implementation with the addition of a Make > Model > Year search criteria. This would allow the store owner to attach a make/model/year combination to the product and it would allow the visitor to search for products using that construct.

I've read a few posts around this functionality, but I'm struggling to get an idea for how long it might take to customize and implement such an addition to the base functionality.

I realize that the estimation process depends heavily on many things outside just the software you are planning to use. That said, it would be extremely helpful if someone who has added similar functionality to AbleCommerce before could give me an idea of what I'd be looking at in terms of effort.

For a seasoned .net developer to add this functionality, which I assume would involve adding data/business/view functionality what would be fair to say that we're looking at in terms of time?

All of these represent the amount of time it takes one developer - assuming a full 8 hour day.

< 1 day
1-3 days
1 week
1-2 weeks
> 2 weeks

Not having much experience with the product - but based on the positive comments I've read so far about how easy it is to modify/extend, I would assume the LOE would be around 1-3 days (and I would guess closer to 1). If anyone can comment on this and provide any feedback, I would really appreciate it.

Just to be clear - I'm only asking for the LOE of adding the make/model/year functionality described above to an existing AbleCommerce implementation.

User avatar
jmestep
AbleCommerce Angel
Posts: 8164
Joined: Sun Feb 29, 2004 8:04 pm
Location: Dayton, OH
Contact:

Re: Custom functionality - level of effort

Post by jmestep » Wed Apr 15, 2009 6:08 am

Some of us have looked into this before and Web2Market did a similar customization for the Able 5 ColdFusion version. It was a major task. I know another client who had someone start on this in Able 7, but the implementation ended up not being what he wanted. I would say >2 weeks, especially if you are new to Able. The option variants for a product could work like that if you set up inventory tracking and make the variant unavailable AND set 0 inventory on it. Then the dropdowns filter according to Make>Model>Year. But with the variants, you have a page to edit in the admin that could show thousands of entries. If you don't do it that way and depending on what kind of data entry you are doing (like a feed from the supplier that you have to integrate), you could do a custom search or you could create a lot of categories and put the product in various categories.
It's a big customization and there have been several other forum posts asking about it.
Judy Estep
Web Developer
jestep@web2market.com
http://www.web2market.com
708-653-3100 x209
New search report plugin for business intelligence:
http://www.web2market.com/Search-Report ... -P154.aspx

User avatar
heinscott
Captain (CAPT)
Captain (CAPT)
Posts: 375
Joined: Thu May 01, 2008 12:37 pm

Re: Custom functionality - level of effort

Post by heinscott » Wed Apr 15, 2009 7:33 am

There's a way to do what you are looking for without too much work, although it will require a few steps in development.

1) First, there is a ProductCustomField table already available that you could use to store the Make/Model/Year data in, so, no need to create a custom data object if you don't feel so inclined.
2) You would want to create the Custom Field page containing the new fields that would link to the normal Edit Product page. This page should pull data from the ProductCustomFields table that corresponds to the product and the field(s) in question. I have something similar on my site for Directions, Manufacturer Info, Dosage, Ingredients, and Product Use. I think the whole page is right around 200 lines. I would imagine that an experienced developer would be able to create something like this in about 4-5 hours.
3) Populate all of this data into the DB. If you must do this by hand, who knows how long this would take, but, that should probably not be considered development time, and could be done by anyone (via the tool created in previous step).
4) Create a special search page to generate a list of products based on this new criteria. I can't imagine that this page (minus design time) should take more than about 4-6 hours to create.

All said, I think that about 2 days development time seems about right for this, if you choose to use the ProductCustomFields.

Scott

User avatar
mazhar
Master Yoda
Master Yoda
Posts: 5084
Joined: Wed Jul 09, 2008 8:21 am
Contact:

Re: Custom functionality - level of effort

Post by mazhar » Wed Apr 15, 2009 9:20 am

A very similar thread
viewtopic.php?f=42&t=7808

meh
Ensign (ENS)
Ensign (ENS)
Posts: 3
Joined: Tue Apr 14, 2009 12:29 pm

Re: Custom functionality - level of effort

Post by meh » Wed Apr 15, 2009 11:48 am

I did read through that thread - and I apologize if this is redundant - but I couldn't really gauge the level of effort based on the comments... especially being so new to AbleCommerce.

I suppose in the end my question is two parts:

1) How difficult is it to add custom functionality like this in AbleCommerce
2) Has anyone implemented something like the Make>Model functionality and what level of effort did that entail.

I figured that the first question is very nebulous and would greatly depend on the complexity of the functionality, so I focused on the second question.

Thanks to those who have responded. I'm definitely going to be adding some time to my assumptions, which were obviously way off.

User avatar
Logan Rhodehamel
Developer
Developer
Posts: 4116
Joined: Wed Dec 10, 2003 5:26 pm

Re: Custom functionality - level of effort

Post by Logan Rhodehamel » Wed Apr 15, 2009 12:26 pm

For something like this, I doubt I'd use ProductCustomFields. It won't provide good results for searches.

The best bet IMO is to follow something like this:

1) create a new table for your custom data (e.g. yourprefix_MakeModelYear). Use ProductId as the primary key. Make appropriate indexes since you will be searching!

2) Write code that can read and write values from the table. There is a post somewhere about using generator tools to help with this if you are interested. Then you will need to modify the add/edit product pages to work with the data.

3) Create code that can perform the custom search feature. You will probably need methods that do things like this:

GetAvailableModels(string make)
GetAvailableYears(string make, string model)
GetProducts(string make, string model, string year)

4) Create a custom search page that takes advantage of all the above.
Cheers,
Logan
Image.com

If I do not respond to an unsolicited private message, it's not because I'm ignoring you. It's because the answer to your question is valuable to others. Try the new topic button.

User avatar
heinscott
Captain (CAPT)
Captain (CAPT)
Posts: 375
Joined: Thu May 01, 2008 12:37 pm

Re: Custom functionality - level of effort

Post by heinscott » Wed Apr 15, 2009 1:27 pm

I was thinking of using the

Code: Select all

ProductCustomFieldsDataSource.LoadForCriteria("FieldName = 'Model' AND FieldValue LIKE '%" + _SearchValue + "%'"...etc)
...or something like that. I agree that it would be better, however, to create a custom table and DAL ultimately.

Scott

User avatar
Logan Rhodehamel
Developer
Developer
Posts: 4116
Joined: Wed Dec 10, 2003 5:26 pm

Re: Custom functionality - level of effort

Post by Logan Rhodehamel » Wed Apr 15, 2009 1:40 pm

heinscott wrote:I was thinking of using the

Code: Select all

ProductCustomFieldsDataSource.LoadForCriteria("FieldName = 'Model' AND FieldValue LIKE '%" + _SearchValue + "%'"...etc)
It would be difficult to combine more than one criteria with that table. And auto parts (which uses a model like this) would have a potentially huge number of products - it would need to be properly indexed to have decent performance when you combine make, model, and year.

I'd even think to get even better performance, you would implement fulltext search on the custom table. Make model and year can all be treated as string values.
Cheers,
Logan
Image.com

If I do not respond to an unsolicited private message, it's not because I'm ignoring you. It's because the answer to your question is valuable to others. Try the new topic button.

User avatar
heinscott
Captain (CAPT)
Captain (CAPT)
Posts: 375
Joined: Thu May 01, 2008 12:37 pm

Re: Custom functionality - level of effort

Post by heinscott » Wed Apr 15, 2009 1:58 pm

It would be difficult to combine more than one criteria with that table. And auto parts (which uses a model like this) would have a potentially huge number of products - it would need to be properly indexed to have decent performance when you combine make, model, and year.
Good point. I hadn't considered this... :oops:

Scott

User avatar
mazhar
Master Yoda
Master Yoda
Posts: 5084
Joined: Wed Jul 09, 2008 8:21 am
Contact:

Re: Custom functionality - level of effort

Post by mazhar » Thu Apr 16, 2009 4:04 am

meh wrote:I did read through that thread - and I apologize if this is redundant - but I couldn't really gauge the level of effort based on the comments... especially being so new to AbleCommerce.

I suppose in the end my question is two parts:

1) How difficult is it to add custom functionality like this in AbleCommerce
2) Has anyone implemented something like the Make>Model functionality and what level of effort did that entail.

I figured that the first question is very nebulous and would greatly depend on the complexity of the functionality, so I focused on the second question.

Thanks to those who have responded. I'm definitely going to be adding some time to my assumptions, which were obviously way off.
The thread I mentioned above was basically initiated by someone who was trying to implement this functionality. You can drop a private message and ask him
viewtopic.php?f=42&t=7746&p=32975

kastnerd
Commodore (COMO)
Commodore (COMO)
Posts: 474
Joined: Wed Oct 22, 2008 9:17 am

Re: Custom functionality - level of effort

Post by kastnerd » Fri Apr 24, 2009 8:41 am

I would be interested in something like this except it would also work for products that are kits. For example seat covers / floor mats.
If there was a kit for the bundle of all the parts, But after selecting your make a model the kit only displayed the covers or mats that fit the car selected.

Post Reply