3 replies [Last post]
mmwebdev's picture
Offline
Joined: 11/09/2007
Juice: 25
Was this information Helpful?

Hi folks,

We've been going around in circles a bit trying to figure out how to optimize the shopping cart experience for a client's customers. The product line consists of weights for low-impact exercise; they come in different weights for wearing on e.g. your wrists or ankles and are in 1/4, 1/2, and 1 pound sizes. Each type has a name, for example, the 1/4 pound wrist model we'll call the "Wristy" for this discussion.

The kinds of weights customers might want to use depends on their situation. When someone visits the site, they can read about different uses and qualify themselves accordingly. For example, if they are interested in everyday use, then 1/4 pound wrist weights (the "Wristy") might be perfect for them. If they are interested in physical therapy, perhaps the ankle weights are best.

The weights come with slip covers that come in many different styles and colors. There are a few sizes of slip covers; one particular size might actually fit on more than one weight. For example, one size of slip cover might fit both the 1/4 pound wrist weight and the 1/2 pound ankle weight. The product will be sold such that you buy a weight with a slip cover at the same time.

An imagined optimal flow example is: a customer visits the site and reads the usage descriptions. Suppose they decide that since they are an "everyday user", that a "Wristy" (1/4 pound wrist weight) is right for them. There is a link on the "Everyday use" description page for "Wristy". The customer clicks the link which takes them to a catalog page which shows all of the slip cover styles available (images, of course!) for the Wristy. They select a style and what shows up in their cart is one "Wristy" and one correctly-sized slip cover in the chosen style.

Our "plan" has been to use Product Kits to combine a weight with a slip cover. There would be an individual product in Ubercart for each weight kind and each slip cover size. Each slip cover product would have an attribute of "Style". Each "style" has an associated image that shows the look of it.

What we can't figure out is: how do we display all of the styles for a given slip cover type in a catalog page? Meaning - we only want to show them all of the styles available for the "Wristy". To be explicit another way - we do NOT want just one "Wristy" product shown in the Catalog with a drop-down list of names of styles that the customer can choose. Rather, we would like to see a screen full of "Wristy"s in all styles, the image for each style being displayed.

A complication is that we require inventory tracking, so we've been looking at the "Inventory API and Simple Stock Levels" contribution. Slip covers are not replenishable (this is because the fabric used to make them ceases to be available) so the shopping cart must make sure that customers cannot order more of a given style than is actually available in inventory.

Our preferred scheme seems reasonable, but figuring out how to do it in Ubercart has been making us crazy!

Thanks for any tips!
Chuck

Lyle's picture
Offline
AdministratoreLiTe!
Joined: 08/07/2007
Juice: 6846
Re: Question on optimal customer "flow"

I think the thing to do is have categories that contain only the product kits, one category per type of weight (wrist, ankle, etc.). Each product kit would have a different style, and possibly a different size, depending on whether you can make the weight an attribute or not. Your inventory scheme might not allow that.

By default, the catalog pages show the product images, titles, and prices in a list, so the customer ought to be able to make their decision easily.

mmwebdev's picture
Offline
Joined: 11/09/2007
Juice: 25
Hi Lyle, We've been

Hi Lyle,

We've been wrestling with various options over the past few days and unfortunately keep running into brick walls. We considered your idea above, but the problem with making the Style an attribute is that it is not possible to associate an image with each attribute option (that we can tell) and to display, therefore, a bunch of product variations by attribute value (option).

Also, we've discovered a couple limitations with the Product Kit. First, it seems that there is no way to constrain the component products in a kit by attribute option. That is, if the name of a particular product kit is "1/2 Lb. Wristy in Sunburst Style" and this should have two products in it (the 1/2 Lb. Wristy weight band and an accompanying correctly-sized cover in the "Sunburst" style), then there is no way to force the product kit to contain the correctly styled cover product. When the customer clicks the link for the product kit, its node is displayed with the title and a list of the component products, with a drop-down list containing the options for each attribute on each of the component products. So, in our example here, even though the name of the product kit was "1/2 Lb. Wristy in Sunburst Style", the customer still has to make sure to select "Sunburst" from the Style drop-down list for the "cover" component product. This could be very error prone, if, for example, the default option for the Style attribute was set to something other than Sunburst.

Second, we've found out that the inventory manager (Simple Stock Levels) we're using doesn't check the stock levels for component products in a product kit. So, continuing with the example, suppose that right "now" there are 6 units of the Wristy in stock, and 8 units of the Sunburst-style cover in the size that fits the Wristy (and perhaps fits some other type of band, too - this is a key point when it comes to our client's inventory management). If a customer clicks "add to cart" on the page for the "1/2 Lb. Wristy in Sunburst Style" product kit, their shopping cart is displayed, showing the product kit in the cart, with quantity of 1. The cart also shows that there is 1 "Wristy" and 1 Sunburst cover in the cart. The customer could change the "quantity" value (which applies to the product kit as a unit becuase we've set it that these products must be purchased together) to 7, which violates our stock level on the "Wristy" component, but pressing "update cart" in this case updates the cart to contain 7 instances of the product kit, with 7 "Wristy"s and 7 covers as components. If, in contrast, the customer tries to add either of the component products alone and changes the quantity to an unavailable amount, the inventory checker alerts them to this fact. We've tested these various cases as we've been trying to find a way to the finish line...

Third, as we mentioned, the node for a product kit displays the individual products that are in the kit. Well, the names of the component products are links to their respective nodes. So, a customer could conceivably click one of these and reach the node for the individual product and click the "Add to Cart" button. In the case of weight bands, this violates our client's sales model / policy, which is to sell a weight band with an accompanying cover, but additional covers in different styles can be purchased separately. We are hoping there is some option to disable the link function in this case. We think we saw an option that disables the display of the products contained in the product kit, but this is undesirable, since the "itemization" is actually quite nice and makes it really clear exactly what the customer is getting in the kit.

We discovered the "Cart Lnks" API, which seems to have a way to create an URL that adds a product to the cart constrained by attribute options, but we find no way to make the "add to cart" button for a product (or product kit) take this URL as its target. This would solve the problem of constraining the options within a product kit.

Also, we considered skipping product kits, and then inverting the problem by having the products be the "styles" (so we can associate an image with them) with attribute of band type, including "no band" as an option. This is first problematic because a customer doesn't decide on a style and then on what kind of weight band they want. Second, not all styles are available for all weight band types. Lastly, the desire, as described in our first post above, was to have the customer identify themselves within a "use case" and click on one of the weight band type names to arrive at a page displaying all the available styles for that band type (preferably with an "add to cart" link for each one). However, we know of no way to pull this off using this scheme.

We keep wrestling with trying to find a full path to success, but hopefully the (rather long, sorry!) discussion above sheds light on what sort of obstacles we've been encountering.

Thanks,
Chuck & Kim

zmove's picture
Offline
Bug FinderEarly adopter... addicted to alphas.Getting busy with the Ubercode.Internationalizationizer
Joined: 08/13/2007
Juice: 1192
Hi there, it seems that

Hi there,

it seems that there is no way to constrain the component products in a kit by attribute option

I'm agree and have the same kind of needs. Sometimes, you cannot let customers so free to choose the attribute they want in a product and the module should allow to put product with attribute directly, without letting the option to choose to customer.

Second, we've found out that the inventory manager (Simple Stock Levels) we're using doesn't check the stock levels for component products in a product kit

Yeah, I exactly have the same problem too, I would like to look through the code to bring this functionnality, but I finally spend my time on others contributions.

For these 2 reasons, I consider my product kits as a normal product. There are some limitation (obliged to count stock myself for example) but this is the only way I see.