StepStore
Overview
StepStore is a step-oriented storefront module. By "step-oriented", we mean that the user proceeds through a series of administrator-defined steps to create a product selection, rather than simply selecting from a list of pre-packaged products. While StepStore can certainly handle pre-defined product packages, it is most useful for vendors who need to their clients to build and purchase a custom product package from an arbitrary number of selections.
Current StepStore version: 0.10.1
Documentation updated: 04/02/2007
A Quick Overview
Glossary
Customer
Dependency
Order
Product Line
Selection
Selection Category
Selection Method
Sub-Selection
Step
User Interfaces
Create/Edit a Product Line
Create/Edit a Step
Create/Edit a Selection Category
Create/Edit a Selection
View Customers
Create/Edit a Customer
View Orders
Create/Edit an Order
Configuration
Tutorials
A Quick Overview
Product Lines contains Steps. Steps are the children of Product Lines.
Steps contain Selection Categories. Selection Categories are the children of Steps.
Selection Categories contain Selections, which are the products you sell. Selections are the children of Selection Categories.
Selections may contain Sub-Selections, which are also products. Sub-Selections are the children of Selections.
Visitors to your site create Customer accounts, either during the checkout process or independently.
Customers place Orders. An order contains a collection of Selections and Sub-Selections. If the details of a selection or sub-selection change after the order is placed - for instance, if you change the price of a selection - then the order maintains the original data, accurate when the order was placed.
Glossary
Administrator
A user that has access the the administrative sections of the website. Administrator accounts may not place orders through StepStore. Administrators can log in using the same interface as users.
Customer
A customer is someone who has registered for an account on your website, and who may have place an order. Customers may create accounts during the checkout process, or they may create them separately. Administrators may create or edit customer accounts if they wish.
Dependency
Selections may only appear if certain other selections have been chosen by the user. The criteria for a selection to appear are called "Dependencies". If a selection has several dependencies, they must all be satisfied before the selection will appear on screen.
Order
A collection of selections which have been chosen by a customer. Each order has an order number, and may be assigned a tracking number and tracking link by an administrator. Customers may view their order history, including the tracking information provided by administrators.
Product Line
A group of steps that comprise one group of related products. Users may make selections from multiple product lines before checking out, but each product line 'builds' a single group of selections.
Selection
A single choice of product selection. A selection may represent anything from a package of related goods to one aspect of a single type of object. For instance, a selection might represent an entire car, or it might represent just one style of hood ornament - it's up to you.
Selection Category
A group of individual selections and sub-selections within a single step. A step may have any number of categories.
Selection Method
There are three ways of making selections within categories of a step. Each category has one of these types.
SINGLE SELECTION type categories only allow the user to choose one selection from among the array of selections in the category. Use this for selections that are mutually exclusive. (For instance, "Style" selections are usually, but not always, Single Selection types.)
SINGLE SUB-SELECTION type categories allow the user to make one selection from among the children of each parent selection. For instance, imagine a Single Sub-Selection category has three main selections A, B and C, each of which has five children. The user may select one of the children from each of A, B and C. Single Sub-Selection categories consider the parent selections to be among the array of selectable children, so in our example the user could actually select any of A, B or C as well as their children. (This assumes, of course, that A, B and C all have a Maximum Quantity of 1 or greater.)
MULTIPLE SELECTION type categories allow the user to make any number of selections from the available array. They also present an "All" check box to let the user choose all selections in the category.
Sub-Selection
A selection that is a 'child' of another selection. For instance, 'Spinners' might be a child selection of 'Generic Hub Caps'; other children might include 'Diamond-Studded' and 'Solid Platinum'.
Step
A step is a group of categories that form a single unit of the selection process. A step may only have one category, or it may have many. You can think of a step as a single screen in the process of building the user's selection. Each step is 'owned' by a product line.
User Interfaces
Product List
The main screen of the StepStore administration module lists all the available lines, steps, categories and selections in a hierarchical view. You can see the children of each element by clicking (toggling) the expand/collapse arrow (
and
) to the left of its name. You can add a child to any element by clicking the plus sign (
) to the right of its name. You can delete any entry and all of its children by clicking the minus sign (
) to the right of its name. You can change the ordering of any element with respect to its siblings using the up and down arrows (
and
) to the left of its name.
Note that the various rows are color coded to help you identify what kind of element you're looking at; see the color coding legend at the top of the table.
Create/Edit a Product Line
How to get there: From the main product list, click the "Add new Product Line" link. OR click on the name of an existing product line to edit it.
NAME: The name of the product line.
DESCRIPTION: The description of the product line. This will appear in the product line index screen (www.example.com/index.php?module=StepStore&func=view_lines)
Create/Edit a Step
How to get there: From the main product list, click the + sign to the right of any existing product line.
NAME: The name of the step.
DESCRIPTION: The description of the step. This will appear on the step's selection screen, above the categories.
ON COMPLETION: Here you may specify what should happen after the user completes this step.
"Go to checkout": The user will be taken to the checkout screen after completing this step.
"Go to the next step": The user will be taken to the next step after completing this step.
"Jump to a Product Line": The user will be taken to the first step of a different product line after completing this step.
"Go to 'Recommended Companions'": If the user's selections would indicate that some companion products are recommended - "upsell", or "impulse buy" items - they will be displayed after the step is complete. Otherwise the user will be taken to the checkout screen.
Create/Edit a Selection Category
How to get there: From the main product list, click the + sign to the right of any existing step.
NAME: The name of the category.
DESCRIPTION: The description of the category. This will appear above the category's selections.
SELECTION METHOD: For more information on selection methods, see the Glossary entry for "Selection Method".
SHOW "VIEW DETAILS": This field specifies when selections that are part of this category should show their "View Details" link.
"Never": Selections in this category will never show "View Details".
"If the selection has a description": Selections in this category will show "View Details" if and only if they have something entered for their description.
"Always": Selections in this category will always show "View Details".
DISPLAY STYLE: There are three display styles from which you may select: List, Tiles and Table. These will vary with your site's design and implementation, but generally List and Tiles are the most commonly used. Table layout is best for multiple selection categories in which you need to present many different options with little to no descriptive elements other than the title. As of verison 0.9.5, Table style does not present Single Selection or Single Sub-Selection categories.
REQUIRED: Here you can identify the category as being "required". Required means that the user may not proceed on to the next step until he has made at least one selection from this category. In the case of categories whose Selection Method is "Single Sub-Selection", a selection will be required from the sub-selections of every parent selection in the category.
If any selections in this category have dependencies (see the section of this documentation entitled "Create/Edit a Selection"), make sure that at least one selection will always be available in a Required category. Otherwise the user will not be able to proceed past the step that contains this category!
CART LISTING STYLE: There are four styles in which selections from this category could be displayed in the user's sidebar shopping cart (the shopping cart block). Select the radio button next to the image that represents how you'd like selections to appear. This choice will be informed by your inventory structure.
DETAIL BUYING ONLY: As of version 0.9, customers may make selections from the product detail screen instead of from the main step screen. All possible dependant selections for a given product (within the same step) are available in the product detail screen as well. This option forces users to make selections from the product detail screen; they cannot make selections from the main step screen. Practically, this option really only works well for the first category in a step.
Create/Edit a Selection
How to get there: From the main product list, click the + sign to the right of any existing category OR any existing selection that is not itself a sub-selection.
CHILD OF: If you clicked the + sign to the right of an existing selection, or if this selection is already a sub-selection, this drop-down menu will be set to the parent of this child. You may change this at any time.
STATUS: A selection may be "inactive " or "active". If it is inactive, it will not be displayed in any steps. Use this when you want to temporarily disable a selection without deleting it.
NAME: The name of the selection.
DESCRIPTION: The description of the selection. This will appear in the selections "View Details" screen.
PRICE: The price which should be added to the total for one instance of this selection. If the users chooses a quantity greater than one, the quantity will be multiplied by this price to get the total cost. This field must have a decimal value; if you want the selection to not alter the total price, just enter "0".
SHIPPING MARKUP: You may optionally enter an extra amount that will be added, per unit, to the final cost of the order for shipping costs. This value, like price, will be multiplied by the quantity of this selection to get the total cost. . This field must have a decimal value; if you want the selection to not alter the total price, just enter "0".
UNIT WEIGHT: Enter the weight of the selection, as it will be used in the shipping cost calculator. If you leave this blank, the item will be assumed to have no weight for shipping cost purposes.
MAXIMUM QUANTITY: You may specify a maximum quantity of this selection.
0: The selection will appear, but the user will not be able to select it. This is handy for selections that have children, but which themselves should not be selectable. For instance, a "Hub Caps" selection might have several children, but "Hub Caps" itself might not be a valid option. In this case, set the Maximum Quantity to 0.
1: The user may choose this selection, but not Quantity box appears, and the quantity is always assumed to be 1.
> 1: The user may choose up to this many of the selection. If he chooses more, his quantity will be 'trimmed'.
IMAGE: You may select a JPG, GIF or PNG file to be the image associated with this selection. The image will be automatically re-sized to the correct maximum dimensions.
THUMBNAIL: You may optionally select a JPG, GIF or PNG file to be the thumbnail image associated with this selection. The thumbnail image will be automatically re-sized to the correct maximum dimensions. If you do not provide a thumbnail, StepStore will generate one for you automatically from the image you provide for Image.
RECOMMENDED COMPANIONS: You may select up to three other products to recommend for impulse buying with this product. These will be displayed ONLY if the step in which this selection appears has as its "On Destionation" field "Recommended Companions".
ONLY AVAILABLE IF...: Here you may select the dependencies for this selection. This section only appears if there are categories or steps previous to the category in which you are adding a selection. If you are adding/editing a selection in the very first category, you will not see this.
You may select a required selection from any and all previous categories. The selection you are adding/editing will not appear to users unless ALL of the dependencies have been met. If a selection has dependencies in previous steps that a user has not met, the selection will never appear. If he has met all the dependencies in previous steps but not the dependencies in the current step, the selection will appear as soon as he meets those dependencies.
For instance:
Selection "Spinners" requires "Has Wheels" from a previous step and "Has Bling" from a previous category in the current step.
If in the previous step the user did not select "Has Wheels", the "Spinners" selection will never appear.
If the user did select "Has Wheels" in the previous step, "Spinners" will not appear until he selects "Has Bling" in from the previous category in this step. If he does this and then de-selects "Has Bling", "Spinners" will disappear again.
One final note: Sub-Selections inherit the dependencies of their parents. In the previous example, if "Spinners" had a sub-selection called "Diamond-Studded" which had no dependenices, "Diamond Studded" would still not appear until the dependencies for its parent, "Spinners", were met.
View Customers
How to get there: From the main product list, click "Customers" under the module title.
Your customers are listed in alphabetical order by last name. To add a new customer account, click "Add new Customer account". To view all orders for a customer, click "Order History" to the right of the customer's name. To edit or delete a customer, click the "Edit" or "Delete" links to the right of a customer's name.
Create/Edit a Customer
How to get there: From the customer list, click "Add new Customer account." OR click "Edit" to the right of an existing customer's name.
Normally you should not need to create customer accounts; customers self-register during the checkout process. However, these functions are available should you need them.
USER NAME: This user name is what the customer will use to log into the website. Once you create a customer's user name, you may not change it.
PASSWORD: The user will use this password to log in. Make sure they both match.
Fill in the contact information for the customer. Email is required, and must be a valid email address.
View Orders
How to get there: From the main product list, click "Orders" under the module title. OR from the customer list, click "Order History" to the right of a customer's name.
Your orders are listed by the date on which they were placed, with the most recent first. Click the username in parentheses to edit the details of that customer. Use the Edit and Delete links to edit or delete orders. (It may be a good idea not to delete orders after they are fulfilled; this gives you an online record of your orders, and lets customers browse their order history.)
To jump to a specific order number, enter the order number in the "Jump to an order #" box and click "Go". The order number will be listed in the confirmation email you receive from PayPal.
Edit an Order
How to get there: From the orders list, click "Edit" in an order's row.
If you enter data for "Fulfilled On", "Tracking Number" or "Tracking Link", the customer will see these data if he returns to view his order's status.
FULFILLED ON: You may enter a date in this field.
TRACKING NUMBER: You may enter a tracking number in this field.
TRACKING LINK: You may enter a link to the tracking page for the order in this field. (Tracking pages are provided by third-party services, like UPS or FedEx.)
Configuration
General
ITEMS PER PAGE IN ADMIN. INTERFACES: This sets the number of items that appear per page in the Customers and Orders screens.
Media
IMAGE DIRECTORY: The directory on your web server where images uploaded from the store interfaces will be stored. Must be web-writeable.
MAX IMAGE SIZE: The maximum size of uploaded images, in kilobytes.
MAX IMAGE HEIGHT/WIDTH: The maximum height/width for images that will be displayed in the product detail screen.
MAX THUMBNAIL HEIGHT/WIDTH: The maximum height/width for images that will be displayed in the main step screens - the small product thumbnails that appear to the left of the titles.
Payment Processor
StepStore supports several different payment processors, and can in theory be (relatively) easily expanded to support more. Each payment processor will have its own set of fields that you need to fill in; for instance, PayPal requires a "Merchant ID", "Locale" and "Currency". The second two are automatically filled in for you.
If you turn on "Testing Mode", all transactions will be charged $0.01, regardless of how much the total of the order is. Use this to test the system.
Tutorials
This tutorial section is designed to walk you through the process of managing your store's inventory using the StepStore storefront module. We will start simple and move up to more advanced tasks. I recommend, if you are just getting started and have a large inventory, that you work through all of the tutorials before trying to manage your actual inventory; you'll find that there is often more than one way to manage your data, and that some tasks are better handled in specific ways. Depending on your level of comfort with web technologies, this could take 2 to 5 hours.
How to use these tutorials:
- Leave this page open.
- Open up your StepStore administrative interface in a separate browser window.
- Open up a new browser window that is pointed at http://www.yoursitedomain.com/index.php?module=StepStore. You'll use this for testing your work as you go.
Inventory Setup: Simple
In this tutorial, we will set up a single product line, a single step, a single selection category and several selections.
Step 1: Create a product Line
A product line contains selections that are fundamentally the same sort of thing. "Cars" is the example product line we will use here; the same store might also sell "Motorcycles" and "Accessories" in different product lines. Your customers will build up a selection from each individual product line to create his final purchase.
Step 2: Create a single Step
A step contains all of the selections that a visitor should be able to select on a single screen. For this tutorial, we will create a step called "Select a Make and Model".
Step 3: Create a single Category
A category is a logical grouping of selections. For this simple example, the only category we need is "Make & Model".
| 1. | Start from the main StepStore administrative interface. | |
| 2. | Use the "expand" arrow to the left of the "Cars" product line to view the single step that is now a child of that line. |
|
| 3. | Click the "+" icon to the right of the "Select a Make & Model" step, in the "Add Child" column. Categories are children of Steps. | |
| 4. | Fill in the fields to provide information about the category. Call the category "Make & Model".
|
|
| 5. | Click "Add Category". | |
| 6. | See it: Visit http://www.yoursitedomain.com/index.php?module=StepStore. Then click on the name of your product line, "Cars". |
Step 4: Create several Selections
A step contains all of the selections that a visitor should be able to select on a single screen. For this tutorial, we will create a step called "Select a Make and Model".
| 1. | Start from the main StepStore administrative interface. | |
| 2. | Use the "expand" arrow to the left of the "Select a Make & Model" step to view the single category that is now a child of that step. |
|
| 3. | Click the "+" icon to the right of the "Make & Model" category, in the "Add Child" column. Selections are children of Categories (and may also be children of other selections). | |
| 4. | Fill in the fields to provide information about the selection. Call the selection "Ford Pinto".
|
|
| 5. | Click "Add Selection". | |
| 6. | Repeat this process for several more selections. Try these: Chevy Cavalier, Ford F-150, Toyota Tundra. (It's important that two are cars and two are trucks. (In a later tutorial, you will learn how to add many selections to a category all at once. It's important to get the basics down first so you understand how this system works.) | |
| 7. | To see your new selections, click the "expand" arrow to the left of the "Make & Model" category. | |
| 8. | Now add a new selection that will be a parent selection. Call this one "Cars". It doesn't need a description, and it should have 0 for Price, 0 for Shipping Markup, 0 for Unit Weight and 0 for Maximum Quantity. Leave Count Quantity un-checked. | |
| 9. | For the two cars you initially created - the Pinto and the Cavalier - click on the name of the car from the main StepStore selection list (see screenshot for step 7). This will take you to the editing screen for those two selections - it looks very much like the screen you used to add them. Now change the Child of field for each of those two car selections to "Cars" - the parent selection you just created. When you are finished, use the "expand" arrow to the left of the "Cars" selection to see its two children. "Ford Pinto" and "Chevy Cavalier" are now Sub-selections of "Cars". Use the "Update Selection" button to save your changes.
|
|
| 10. | Create another parent selection called "Trucks", and make the two truck models into sub-selections of "Trucks". | |
| It's usually more efficient to create your parent selections first, and then create sub-selections afterwards. So that you only have to learn one thing at a time, we did it backwards here. | ||
| 11. | See it: Visit http://www.yoursitedomain.com/index.php?module=StepStore. Then click on the name of your product line, "Cars". |
This is the end of the Inventory Setup: Simple Tutorial. The next tutorial, Inventory Setup: Dependant Selections will walk you through the process of adding selections that only appear if other, previous selections have been chosen by a visitor.
Inventory Setup: Dependant Selections
Often, you will want some options available for a selection so the visitor can specify more detail about what he wants. For instance, we might want to know what color of car our visitor wants to buy - but the Pinto is only available in Brown or Green, while the Cavalier is only available in Red or Blue. These kinds of product options are called Dependant Selections. Dependant selections are dependant on a previous selection. In the above example, "Brown" and "Green" are both dependant selections of "Ford Pinto", while "Red" and "Blue" are dependant selections of "Chevy Cavalier."
Some important points to remember about dependant selections:
- A dependant selection must be in a category that occurs later in the same step or in a later step than the selection on which it depends. Brown and Green couldn't be selections in the same category as Ford Pinto or in a previous category. The user will first select Ford Pinto, and then Brown and Green will become available in a later category.
- Dependant selections have all the same fields as other selections. They can have a weight, price, shipping markup - and other selections can themselves be dependant on a dependant selection. I will sometimes refer to this relationship as a "dependant ancestry", following the analogy of parents and children. The "Red" selection, to follow our example, could add a price of $100 to the cost of the Cavalier. (Maybe you have to put the red paint on yourself, or Chevy charges you more for the red color.)
- A single dependant selection can depend on specific previous selections in multiple (previous) categories, but it cannot depend on several selections from the same (previous) category. "Red" could not be dependant on both Chevy Cavalier and Ford Pinto; there would have to be a separate Red selection for the Chevy and the Ford. This may seem awkward in this example, but more often than not it is appropriate. If you needed to change, for instance, the price of Red for a Chevy, it's likely that the price of Red for the Ford shouldn't also change at the same time.
In this tutorial, we will add several color selections that are dependant on a visitor's choice of car. This tutorial assumes that you are using the data you generated in the first tutorial, Inventory Steup: Simple. If you didn't complete that tutorial, you can still use this one, but you'll have to work with whatever selections you have at hand.
Step 1: Create a new category for your dependant selections.
Each selection must be in a category, and in order to be dependant, the category must occur after the category on which the selections must depend. Thus, we must create a new category that will occur after "Select a Make & Model".
This is the end of the Inventory Setup: Dependant Selections Tutorial. The next tutorial, Inventory Setup: Multiple Steps will walk you through the process of adding a second step to the process of ordering a car.
Inventory Setup: Adding Many Selections
Adding one selection at a time can be time consuming - especially when you have a large inventory of items with many different options. Now that you've had some hands-on experience with creating selections on a small scale, this tutorial will walk you through using the bulk addition tool to add many selections at once. We'll use the same data we've been building up over the first three tutorials, but work within just the first step.
Step 1: Add selections to existing category "Makes & Models"
This is the end of the Inventory Setup: Adding Many Selections Tutorial. The next tutorial, Inventory Setup: Adding Many Dependant Selections will walk you through the process of adding many dependant selections to a given selection.
Inventory Setup: Adding Many Dependant Selections
Just as adding top-level selections one by one can be time consuming, so can adding their dependant selections. However, there is a bulk addition tool for this task as well. This tutorial will cover quickly adding color options to all of the SUVs we added in the previous tutorial, using the bulk addition tool.
Step 1: Add selections to existing category "Colors"
To continue our pattern of having the colors be sub-selections of 'grouping' parent selections, we will first create a series of top-level selections whose only purpose will be to contain the bulk dependencies that we'll add in Step 2.
This is the end of the Inventory Setup: Adding Many Dependant Selections Tutorial. The next tutorial, Inventory Setup: Editing Many Selections will walk you through the process of editing all the selections in a category at once.
Inventory Setup: Editing Many Selections
Once you have gotten data into the system, you can either edit it using the individual editing screen (click on the name of a selection to get there) or the bulk editing screen. This tutorial will cover the bulk editing screen. I should also note that if you are editing data that doesn't appear in the bulk editing screen - like images, or recommended companion products - you can use the "Update Selection and go to the next selection" button to save your changes and proceed on to the next selection in sequence. This is easier than submitting the data, going back to the main list, and finding the next sequential element.
![]()
Step 1: Edit selections of the "Colors" category
Let's say we want to change the price assignments of the "Colors" selections for our cars.
Inventory Setup: Multiple Steps
Some more complicated products may require several steps in sequence to completely walk a visitor through the process of making a selection. StepStore is built to be able to handle this need. This tutorial will walk you through the process of adding a second step to the Cars line.
Step 1: Create a new Step
Step 2: Create a new Category
For our second page, we'll create a category called "Accessories".
| 1. | Start from the main StepStore administrative interface. | |
| 2. | Click the "+" icon to the right of the "Select Accessories" step, in the "Add Child" column. | |
| 3. | Fill in the fields to provide information about the category. Call the category "Accessories".
|
|
| 4. | Click "Add Category". |
Step 3: Create new Selections
This is the end of the Inventory Setup: Adding Many Dependant Selections Tutorial. The next tutorial, Inventory Setup: Editing Many Selections will walk you through the process of editing all the selections in a category at once.


