• Toll-free  888-665-8637
  • International  +1 717-220-0012
Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

blueacorn
#1 Posted : Friday, August 31, 2007 4:46:23 PM(UTC)
blueacorn

Rank: Member

Joined: 6/27/2007(UTC)
Posts: 63

This is something that may or may not be considered a bug, but in my opinion it is....

When setting up a product with product choices (like sizes for t-shirts) and managing the inventory at that level, you're able to choose what you want to do with that "product" when the inventory is depleted, you can leave it on the store but don't allow orders, remove it from the store, etc. Because I'm able to define this for each size (or option), it would lead me to believe that if I set it to "Remove from Store" when out of stock, that in the size drop down list on the product details page, it would no longer appear. For example, if I have a t-shirt A with sizes(inventory) of S(10), M(5) and L(0) that the drop down list would only show S and M. But when L has inventory, it would automatically show up in the option list. It doesn't appear to work that way on my site at least. Is this the way it is supposed to work?

I was looking at modding this, but basically the stored proc would need to be modified to check the inventory of the product choice (depending on what option you have selected for handling out of stock items) to determine if it's displayed. I got close to getting this feature completed but haven't had the chance to finalize it.
Cliff
#2 Posted : Tuesday, September 4, 2007 7:19:51 AM(UTC)
Cliff

Rank: Member

Joined: 5/24/2004(UTC)
Posts: 4,147

I, personally, would consider this a bug.

I'd like to at least see the option disabled in the drop-down or radio button. Making a user select an option just to see a message that the option isn't available feels more like a practical joke than a feature.
bvuser
#3 Posted : Tuesday, September 4, 2007 7:20:06 AM(UTC)
bvuser

Rank: Member

Joined: 4/10/2006(UTC)
Posts: 462

Hi Blue,

We have also considered making a mod for this, however, making the mod in a "general" way gets complicated fast.

Basically, when there is only 1 choice "type", you should be able to easily handle the mod the View.ascx file for that particular product choice type (radio button list, etc).

However, when this is extended to 2 choices, say size and color, things get interesting. The way bvc is designed and in my opinion it is a good design because of the flexibility/extensibility it allows, the choices are rendered individually within the VariantsDisplay control. The plug-in type architecture means that size and color cannot directly talk to each other preventing an easy way of controlling what is displayed based on the inventory. In a flow chart of a manner, the rendering is as follows:

VariantsDisplay (Master Control) ----> Size (The VariantsDisplay dynamically loads the appropriately View.ascx file which renders it individually) --> Color (Previous render is finished, VariantsDisplay now dynamically loads the View.ascx for the color choice)

Now, if a customer were to always choose the size before the color, while the mod is still complex, it is a bit more doable as you can modify the VariantDisplay to simple pass down previous choices and modifying the view.ascx.vb to look for/return these choices when rendering. However, it gets further complex if the customer now chooses a color before a size, because the size is rendered before the color. Now it still isn't quite so bad with only 2 choices, as you can pass the recently selected value to the variantdisplay in the "onclick" event that fires your ajax (assuming you'd use ajax) event behind the scenes. However, expand this to 3+ choices and you know need to enumerate all the product choices and retrieve their values prior to posting back. Further complicating the issue is that these choices out of the box can have 3 different display styles and can be customized to have other types.

Also coming into play as the number of the choice "types" increase is performance. If there are just 3 choice types with 3 choices each you are looking are verifying and acting upon the inventory data of 27 different combinations with an exponentially increase.

Therefore, depending on the assumptions you make, it can be a very easy mod (no change to the sp is needed) or it can get very complicated to implement it a general sense. I think if it were to be done, the best way of implementing it would be by creating a completely client side api that each individual choice "type" rendering module can call upon client side to show/hide the appropriate choices. Then in the product template, have it emit client side data on the inventory of the possible combinations ahead of time. This way if there is a lot of combination of the work is done while the page is initially loading rather than constantly recurring based on user input.
Netriplex Corporation<br />
blueacorn
#4 Posted : Friday, September 7, 2007 10:09:30 AM(UTC)
blueacorn

Rank: Member

Joined: 6/27/2007(UTC)
Posts: 63

Thanks Caplink. You're right - in my specific scenario I have only one modifier, but adding others into the mix definitely would add some complexity. You mentioned that with one modifier to just edit the view.ascx.vb file, how would you envision this? Just took a quick look at it, and was thinking that when the data is bound to the control I could check the inventory to see if it's > 0 however the sp pulling in the data for the product choice (in my case a drop down list) doesn't contain that information. Unless I go back in for each item and requery the database for inventory I don't know anywhere that data is available to me on that page. My original thinking was to mod the stored proc, to join in the inventory tables to verify that inventory is > 0 before returning the product choices - that way it handles everything in one step.

The one thing I don't like is how the product choices and inventory are so separated in the data structure. I have no real way to map those tables up - and what I'm having to do is make sure the product sku ends in -XL or -L or -M for the size, then cross referencing that to the options table against the name of the option. It ain't exactly clean but I don't see any other way of joining those tables. Again, I haven't spent a lot of time on it, but from I recall when I was looking at it.
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.

©2025 Develisys. All rights reserved.
  • Toll-free  888-665-8637
  • International  +1 717-220-0012