1

What I really need is a way for users to create, using numeric text boxes, ranges for quantities of items with their corresponding prices. For example: *Qty |____1_____| - |____50____| : $ |____4.00____| *Qty |____51____| - |____99____| : $ |____3.50____| *Qty |____100___| - |____??____| : $ |____3.00____| What do I display in place of the ?? and how do I allow users to enter in that value? I can't have users leave the field blank if it should be infinity because the business thinks that will allow users not to validate that the field "should" be blank.

Bonus points: how does that value get stored in the database? (I know... more a of db issue than UX).

I'm just diving into UX at my company and I feel like I don't even know what terms to use when searching for this. My apologies if this has already been covered.

  • If you want to use infinity you can. It is a unicode character. ∞ But I like the "or more" answer as you could not fill on order of ∞. – paparazzo Oct 8 '14 at 13:11
4

Step back and consider the problem

The goal of this interface appears to be to create a series of contiguous ranges (1-50, 51-99, 100-Inf), and then assign a unit price over each range.

The key concept here is contiguous. You are currently allowing the user to input both the beginning and end of the range on each line. This is an example of overspecification; this interface allows the user to provide invalid inputs, such as (1-20, 39-52, 75-Inf), because he is put in control of too many fields.

Design an interface which presents the user with only the necessary choices

In this case, the user only needs to specify the bottom end of each range. Your system should automatically derive the upper value based upon the lower value of the next row.

Such an interface would look something like this:

Quantity:  [   1 ]  to 50     Unit Price: $[ 4.00 ]
Quantity:  [  51 ]  to 99     Unit Price: $[ 3.50 ]
Quantity:  [ 100 ]  or more   Unit Price: $[ 3.00 ]

You can see that this interface simply removes all of the fields that the user shouldn't actually manipulate. This prevents bad data entry and allows you to provide a clear indication that the last field continues on into infinity.

It also should clarify to you what values are stored in the database: the ones the user entered. Everything else can be recalculated by the application.

  • This should work. Thank you so much. I should be able to convince them to use this because it's less work for them. This also solves the database problem as I don't have to store a max value as per the requirements. – pinguinos Oct 7 '14 at 5:41
  • While I appreciate the nod, it's generally best practice to wait at least a day or two before marking an answer as accepted, to give time for other answers to be given. Who knows, someone else could have a better solution than this. – Grubermensch Oct 7 '14 at 5:43
  • This is true. I've just been too desperate with not knowing about UX on StackExcnahnge before now. I got too excited. If anyone has any better solutions I will greatly accept them. This answer has gotten me thinking in the right direction about stored values anyways. Thank you so much Grubermensch – pinguinos Oct 7 '14 at 5:48
0

With a slight adjustment, Grubermensch solution covers cases where you want something to kick in even if 0, for example for discounts. Start with [ 0 ] instead of [ 1 ] and I think all cases are covered.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.