Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

We are putting together some distribution software, selling about 150K SKU's. Some of our items have additional requirements in order to be sold that are dictated by our vendors. For instance one type of product that we sell are prosthetic feet. Some vendors require that we capture the users weight, activity level, and some other information. This is just one example there are many different kinds of products that might have this kind of requirement (a custom set of information collected from the customer to complete the sale).

The direct approach is to just create custom forms for each requirement and create new forms when new requirements are needed. This works. It's straightforward, but its also a PIA. I would like to be able to kick this back to our product team that handles entering in new items rather than having to have them always come back to us.

The project is a web application based on python (Turbogears). Not sure if this was relevant as the question is more general than this but put it here just in case.

How would you approach this situation to minimize or remove your involvement with creating/adding these forms after site moves to production?

share|improve this question
    
"Zoho Creator" tool does this using a drag-and-drop interface. –  Emmad Kareem Mar 16 '12 at 18:48

3 Answers 3

up vote 4 down vote accepted

You could make a form-creating wizard and package it with the product. Essentially, it would allow the vendor(or product team) to create any number of forms of all shapes and sizes. Upon creation of the form, any necessary backend changes would be automatically scripted out and executed.

So, the vendor(or product team) would go to an area of the application called something like "All Forms" or "My Forms" to see the forms they or someone else has created. Or, they could choose "Create New Form" to use the wizard.

share|improve this answer

You could allow the customer to define custom attributes. Basically, the customer would define the name, type, acceptable values, etc. and that information would be stored in the datastore.

For example:

Weight, Integer, Weight must be greater than zero.

In addition to your main application, there would be a custom tab(s) or screen(s) where needed. They get built dynamically based on the defined attributes, type, etc. In this case, since it is a number, some sort of numeric interface control would be used.

Then the custom screens are different based on customer needs.

So, your team does the main application and allows the customer to extend it as needed. Your team will have to make decisions on whether to include the field as part fo the main application or let it be a customer specific attribute.

share|improve this answer

Depending on how sophisticated you want to get, you can allow the users to build a list of potential fields for each product type and store that in your database. To create the form, read from the database and just stack all the fields on top of each other dynamically (leave some space and apply a label and try to make it as clean as possible).

Each field could have a setting for: required, datatype (date, currency, int, etc.). Having drop-down lists may not work because of the nature of these data. Someone at your company will need to review the input and probably do some cleanup.

I've done something similar with parameteer requirements for reports. Each report had specific inputs.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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