Page 1 of 1

Common Options Feature

Posted: Sat Nov 15, 2008 5:13 am
by Jaz
I was thinking it would be nice to have a feature that would allow multiple items to share the same Options/Variation. We manufacture a lot of product that share common parts. Sometimes parts availability changes. An example would be 10 different tennis rackets that can all get the same custom grip. If you no longer carry the red grip, it would be nice to change the master option list and have all the products that use that option update automatically. I am assuming that the kitting feature could do something similar, but it would be nice to set up options that that don’t require making a product out of all the individual parts. It would be nice to know how hard it would be to implement something like this.

~Jaz

Re: Common Options Feature

Posted: Sat Nov 15, 2008 8:37 am
by jmestep
One way you can do it-- I did it in Able 5. Make a fake product with all those options, then call the options from that fake product in code for the real product display page.

Re: Common Options Feature

Posted: Fri Nov 21, 2008 3:37 am
by Jaz
I am assuming that the fake product has to have all the options for the the real product. Meaning I can't pull the basic options from the fake product and add more options to the specific product. I have a lot of products that share some options but not all options. Just wanted to clarify this before diving in.

Re: Common Options Feature

Posted: Fri Nov 21, 2008 7:54 am
by jmestep
I did that on one site in Able 5. She had options on the product but there were also fake options to pull that worked with several products.
This is how I did it- maybe it will help you to see the pattern. I had added an extra field to the products table because I knew there were not going to be any upgrades to Able 5. When I first wrote the code for another site, I used the wrap group id field to store the number because they weren't using that field for anything. You could use a product custom field.

Code: Select all

<%
							Dim intTotRealOptions as integer = 0
							intTotRealOptions=objProduct.Attributes.Count
							for i = 0 to objProduct.Attributes.Count - 1 
								with objProduct.Attributes.Item(i)
							%>
							<tr>
								<th class="ProductOptions">
									 <%=.Name%>&nbsp;
								</th>
								<td class="ProductOptions">
								<select name="Option<%=.OSDOrder%>" size="1">
									<% 'retain selections
									Dim intOptID as integer                            
                            		 intOptID=FCast.FInt(request.form("Option" & .OSDOrder))

										for j = 0 to .Options.Count - 1
										with .Options.Item(j)
										Response.Write("<option ")
										
											If .Option_ID= intOptID Then
											Response.write(" selected")
											End If
											Response.write(" value=""" & .Option_ID)
										Response.write(""">" & .Name)

										if (.PriceMod < 0) then
											Response.Write(" " & cbLocale.FormatCurrency(objStore, .PriceMod, " / ", true))
										end if
										if (.PriceMod > 0) then
											Response.Write(" +" & cbLocale.FormatCurrency(objStore, .PriceMod, " / ", true))
										end if
										Response.Write("</option>" & vbcrlf)
										end with
									next 'j
									%>
									</select>
								</td>
							</tr>
							<%
								end with
                    next 'i
					%>
					<% '------------jme added for fake options
						Dim intFakeOptionID as integer
						Dim objFakeProduct as new cbProduct
						Dim intTotFakeOptions as Integer =0
						Dim k as integer
						Dim m as integer
						intFakeOptionID=objToken.StoreGroupDB.QueryValue("Select IsNull(udf_Options_ID, '') from Products where Product_ID= " & objProduct.Product_ID & "")
					  
						objFakeProduct.Load(objToken,intFakeOptionID)
					   	if not objFakeProduct.Load(objToken,intFakeOptionID) then
						objFakeProduct = nothing
						Else
						 intTotFakeOptions = objFakeProduct.Attributes.Count
						'load the fake options now
							for k = 0 to objFakeProduct.Attributes.Count - 1 
								with objFakeProduct.Attributes.Item(k)
								%>
								<tr>
								<th class="ProductOptions">
									<%=.Name%>
								</th>
								<td class="ProductOptions">
								<select name="Option<%=objProduct.Attributes.Count+ .OSDOrder %>" size="1">
									<%
									'added by jme for select boxes to retain value
									 Dim intFOptID as integer
                            		 intFOptID=FCast.FInt(request.form("Option" & objProduct.Attributes.Count+ .OSDOrder))
									
										for m = 0 to .Options.Count - 1
										with .Options.Item(m)
										Response.Write("<option ")
										
											If .Option_ID= intFOptID Then
											Response.write(" selected")
											End If
											Response.write(" value=""" & .Option_ID)
										Response.write(""">" & .Name)

										if (.PriceMod < 0) then
											Response.Write(" " & cbLocale.FormatCurrency(objStore, .PriceMod, " / ", true))
										end if
										if (.PriceMod > 0) then
											Response.Write(" +" & cbLocale.FormatCurrency(objStore, .PriceMod, " / ", true))
										end if
										Response.Write("</option>" & vbcrlf)
										end with
									next 'm
									%>
									</select>
								</td>
							</tr>
						<%
						end with
						next k
						end if 'fake options
						'--------------end of fake options
						%>

Re: Common Options Feature

Posted: Sun Mar 21, 2010 9:28 pm
by Jaz
Has anyone done any development on this one?

Thanks,

~Jaz

Re: Common Options Feature

Posted: Mon Mar 22, 2010 7:19 am
by jmestep
I started on it, but got stumped because I had to code using variants, not options and ran into trouble putting stuff in the cart. That was probably a year ago and I haven't had a reason to go back to try again.

Re: Common Options Feature

Posted: Mon Mar 22, 2010 2:50 pm
by Jaz
I was hoping to do something with kitting to solve this, but it seemed like even more work. I have some items that have dozens of options that are shared across several products. When one option goes out of stock or is discontinued, I have to change all my products manually. I was hoping with kits I could drop a product in with all options and just change that product, but it appears I have to enter all kit items to the option level. This is great for inventory, but we don’t keep inventory, because some of our products have close to a million variants and they are all made custom. I am sure this could be a good add on if someone was to take it on.

Re: Common Options Feature

Posted: Thu Mar 25, 2010 5:32 am
by NC Software
David,

Have you checked to see if Product Templates would work for you?

Re: Common Options Feature

Posted: Thu Mar 25, 2010 1:02 pm
by Jaz
I have not worked much with them. If you change a product template, does that change the child product, or do the products disconnect form the templates after they are created?

`Jaz

Re: Common Options Feature

Posted: Thu Mar 25, 2010 1:08 pm
by NC Software
The product template is the master, so if you change the template, everything using the template inherits the change.

Re: Common Options Feature

Posted: Thu Mar 25, 2010 6:38 pm
by Jaz
Perfect. I think that will work for me. I will have to look at it in detail.

Re: Common Options Feature

Posted: Sun Apr 25, 2010 8:53 pm
by Jaz
This is close, but it does not alow me to change the price with the option. If the product template could be better integrated with the options feature, this would be perfect.

Re: Common Options Feature

Posted: Mon Apr 18, 2011 4:24 pm
by eileen
Has anyone come up with a solution for common (re-useable) options and kits in Able7? Some of our furniture products have complex options and kits that are shared across a range of products. It would take us an inordinate amount of time to manage these products without “master kit” and “master options” that can attach to the appropriate product records.

This is a customized feature in our AC5 store. We have custom fields for Fake Options and Fake Kit. We place the ID of the product and/or kit to be attached into the custom fields and the system pulled in all the related Buy Box selection choices and placed them in the shopping cart. (We're the client that "jmestep" did the programming for in an earlier post.)

I have ported our AC5 data into an AC7 development environment and everything looks manageable … except for this. This could be a deal killer for us.

Re: Common Options Feature

Posted: Mon May 16, 2011 2:08 pm
by RichWendrock
First of all let me say that AbleCommerce is a great shopping cart. We are using verison 7.0.6. We are struggling with the same issue. Although the copy function helps when setting up new products. There is a need for a way to modify all products that have the same series of options. We have many products with the same options. Changing an option requires editing each of those individual products. I have seen other shopping carts provide a way to associate a product with an option Template and then refer to that Template when it must be displayed. The template can have many variants like Color, Size, etc. If it is not possible to add that feature in AbleCommerce then It would be very helpful to have a panel that would produce a list of products having a set of options and allow the user to select products from the list and then select the option to add, replace or remove.

Re: Common Options Feature

Posted: Thu May 26, 2011 10:56 am
by Jaz
If someone does go through the trouble to do this, it should be done right. Many products use standard options, but have their own also. There should be a place in the options page to choose from the library of options, and add your additional ones. If the standard options can be categorized, that would be helpful too.

Re: Common Options Feature

Posted: Thu May 26, 2011 12:54 pm
by eileen
Abdullah from Plugables (www.plugables.com) just completed our programming for shared options and kits. Our AC7 store is still in development so we haven't tested this programming thoroughly yet, but so far it's looking great. A huge timesaver.

Here's how it works from an admin perspective: There are new product categories called "Shared Options" and "Shared Kit Components". The options and kits attached to products in the shared categories become part of the library of shared options and kit components. In our case, we created dedicated product records to share, e.g., "# Upholstery options". We can easily attach those options to multiple products via an "Attach Shared Options" or "Attach Shared Kits" button on the associated product admin pages. In this example, if an upholstery option is discontinued or added, we delete it from the shared master or conversely, add it in. The change is reflected in all the shared products.

I can't tell you anything about the programming. You'll have to ask Abdullah about that.

Note we do not use Able inventory. I do not know if this programming can be used with inventory enabled.

Re: Common Options Feature

Posted: Thu Jun 09, 2011 11:39 am
by hassonmike
Is this something we can look forward to seeing in the near future?

Re: Common Options Feature

Posted: Thu Jul 07, 2011 4:13 pm
by euroluxantiques
I definitely have the same problem--lots of custom-made furniture with many different finish options. Using variants/options seems like a problem, as it has to be set up for each product individually, when you should be able to just set it up once and then assign it to the products. Product Templates don't really work, as there is no thumbnail/swatch options that I can figure out, and the pricing differences are also a problem. This seems like something that a lot of folks are looking for. I wish someone would program it. I would be willing to help the cost of the programming.

Re: Common Options Feature

Posted: Thu Jul 28, 2011 11:35 am
by plugables
As mentioned by Eileen above, we have already done this for her. Anyone interested in getting this implemented for their AC7 store can contact us.

Re: Common Options Feature

Posted: Fri Jul 29, 2011 3:19 pm
by hassonmike
Can common options be inventoried?

Re: Common Options Feature

Posted: Wed Aug 03, 2011 4:09 am
by plugables
Common options behave the same way as normal options. Whatever is applicable on normal options is applicable on common options.