Advantages Of Using Custom Product Classes

    When you first begin working with your IndieCommerce website you will have a single custom product class created by default called ‘ABA Product’. 'ABA Product' class covers ABA supplied books. However, you most likely, sell other products in store and will wish to online as well. Product classes are the starting point for organizing those other items for sale as it’s going to contain all the information needed to sell and ship products on your website.


    1. Attributes/Options: You want to set default attributes/options to different product types to simplify adding products to your site. Example: You have several different types of store t-shirts and all of them have size and color attributes Consider making a ‘T-Shirt’ Product class with default attributes so that they don’t need to be added to each ‘T-Shirt’ separately.
    2. Fields: You want to add various extra fields to some types of products you sell but not all of them. Example: You’re carrying local artwork and want to include an image of the artist for each piece. Adding an ‘Artist Image’ field for a unique ‘product class’ makes more sense than adding an ‘Artist Image’ field to the generic ‘Product’ class when those ‘generic products’ don’t have artists.
    3. Payment Methods: You can limit what payment methods appear for a specific class. Example: For those signed copies you want to force online payment because you don’t want to end up with personalized copies that aren’t paid for. You can set a condition so that ‘Pay At Store’ does not appear for products within a ‘Signed Books’ product class.
    4. Shipping Quotes: You can limit what shipping options appear for a specific class. Example: You’re selling signed copies of a specific book but have to wait for the author to come by and sign it. You can set a condition so that UPS Overnight does not appear for products within a ‘Signed Books’ product class.
    5. Shippable?: You can limit whether or not an entire class is a ‘shippable’ item. Example: You’re selling event tickets and most likely, they are going to ‘Pick Up Day Of’, you’re not going to want to spend time shipping them You can mark can create a product class for ‘Event Tickets’ and make them ‘Not Shippable’. That way, your customer is prompted for billing information during checkout but no delivery information.
    6. Tax: You sell both taxable and non-taxable items. You will be able to select which ‘Product Classes’ are taxed and which aren’t when setting up tax rules.
    7. Views: You want to make a View that lets customers display a sorted list of products of a certain type. Example: All those t-shirts you carry can be separated into their own ‘View’.

    We recommend you take some time to plan out what your classes might be. Determine what items you sell that you wish to carry online, which need their own classes and which can be combined.

    Ready to get started creating product classes? In the example below we create a product class for ‘TSHIRTS’ we then go on to utilize the advantages mentioned above..


    Navigate to Store > Products > Manage Classes

    1. Fill in the ‘Add a Class’ form:

      • Enter the Class ID - Example: tshirts
      • Class Name - Example TShirts
      • Description is optional
      • Save at the bottom of the page.  

    You have now finished creating the Product Class.

    Authoring information is always set to be displayed on new product classes.

    MANAGE AUTHORING INFORMATION (if you wish to change the default)

    Navigate to Structure > Content Type > TShirt (or the class of choice)

    The edit tab at the right top should be selected (that is the default).

    1. Scroll down to find Display settings click on it and uncheck the box next to Display author and date information.  
    2. Save

    You have now created a basic ‘Product Class’ for ‘TSHIRTS’, now, lets add those advantages.


    In this example, we create an attribute for ‘Size’ for our TSHIRTS product class.


    Navigate to Store > Products > Attributes > Add An Attribute*

    1. Name - this should be the type of Attribute you are creating, for this example ‘Size’ would be appropriate.
    2. Label** - what you want displayed to the customer, for this example “Please choose your size”
    3. If this should be a required field select ‘Make Required’
    4. Display type - As only once choice should be made here select Radio buttons
    5. Submit
    6. Add Option
    7. Name - Enter the name of your first attribute option - for this example ‘Large’ -  leave everything else the same
    8. Submit

    Repeat steps 6-8 until you have created all attribute options needed - for this example Small & Medium would also be appropriate.

    Navigate to: Store > Products > Manage Classes

    1. Locate your class (in this example 'tshirts') and click edit
    2. Select the 'Attributes' tab
    3. Select 'add attributes to this class'
    4. Select the attribute from the list (in this case 'Size') and 'Add Attributes'
    5. Save Changes

    *Note: Attributes can be reused for other products if needed.
    **Note: Label is what the customer will see.


    In this example, all our store t-shirts are individually designed by staff members and we want to add a field where we can list the ‘Designers’ name.


    Navigate to: Structure > Content Type > TSHIRTS (or type of choice) > Manage Fields

    1. Add new field

      • Label - For this example, enter ‘Designer’
      • Field Type - For this example, ‘Text’
      • Widget - For this example, ‘Text Field’
    2. Save
    3. Enter your desired ‘Max Length’ - for this example, ‘60’ and ‘Save Field Settings’
    4. On the next page, you can customize settings as desired - for example, if this is to be a required field, select the ‘Required Field’ box - then Save settings

    You have now added the field, when you create your specific node, you will have a field in place to add the ‘Designer’ name.


    In this example, all our store t-shirts require payment immediately when ordered alone so we are going to restrict the ‘Pay At Store’ option from appearing when ordered alone but allow it if ordered with other items.


    Navigate to: Store > Configuration > Payment Methods

    1. Locate the payment method in the ‘Payment Method’ list, for this example ‘Pay at Store’ and select ‘conditions’
    2. Select ‘Add condition’
    3. Select the ‘condition’ to add - for this example, select ‘Check An Orders Product Class’
    4. Under ‘Product Classes’ select ALL listed except ‘TShirts’ which we are restricting for this example
    5. Save

    You have now restricted any product under ‘TShirts’ from having a payment method of ‘Pay At Store’ when ordered alone.


    In this example, all our t-shirts take 2 days to prepare for shipping, therefore we do not want to offer UPS Overnight as a shipping option even when it is ordered with other products.


    Navigate to: Store > Configuration > Shipping Quotes

    1. Locate the shipping method in the ‘Shipping Method’ list, for this example, ‘UPS Overnight Shipping’ and select ‘conditions’
    2. Select ‘Add condition’
    3. Select the ‘condition’ to add - for this example, select ‘Has Only These Product Classes’
    4. Under ‘Product Classes’ select ALL listed except ‘TShirts’ which we are restricting for this example
    5. Save

    You have now restricted any order containing a product under ‘TShirts’ from having a shipping method of ‘UPS Overnight Shipping.


    In this example, the decision has been made that all store t-shirts have to be picked up in store. Therefore, we do not want the customer to have the option of choosing a shipping method or entering delivery information.


    Navigate to: Structure > Content Types > TShirt (or content of choice)

    1. Select the ‘Ubercart Product Settings’ tab and Toggle off the option ‘Product and its derivatives are shippable’
    2. Save Content Type

    Note: You can still adjust specific products under this class as they are created, so if one t-shirt is shippable, you can override this setting during the product creation. That also means, any ‘tshirt’ products created before this setting is disabled that you do not want to be shippable will need to be changed individually.


    In this example, t-shirts are not going to be a taxable product. We will disable adding tax for this product class.


    Navigate to Store  > Configuration > Taxes

    1. Select ‘edit’ in the ‘Tax’ row
    2. Scroll to ‘Taxed Product Types’ - find the class you are looking for, in this example ‘Tshirts’ and uncheck the box next to it
    3. Click Submit at the bottom of the page.

    Repeat for ALL Tax options listed until all tax types are modified.


    The last ‘advantage’ is ‘Views’, however, before you can create a view you need to create products within the chosen product class. For this example, we’re going to create a few T-Shirts to sell.


    Navigate to: Content > Add content > T-shirt (or content of choice)

    1. Give your T-shirt product a name: Store T-Shirt
    2. Add a description about your T-shirt (optional: anything unique about the T-shirt)
    3. Upload an image of your product - Choose File - Search for it Locally - Upload
    4. Enter a SKU to reference your product, it can be a string of numbers, or words (it cannot be a 10 digit or 13 digit ISBN number - if you want to use those numbers you can add a letter to the front or end of the SKU to distinguish it from the book ISBN) Ex: STORETSHIRT1
    5. Add the sell price and the list price (which should be the same) along with the weight, length and height
    6. Save

    Repeat steps 1-6 until you have all desired T-Shirts created.

    Note: Don’t forget to clean up your displays for both the default and teasers (Structure > Content Types > T-Shirt (or content of choice) > Manage Display). We always recommend hiding unnecessary labels and fields. For example, the word ‘Image’ doesn’t need to be shown next to the image so hide the label and the fields such as SKU, List price, Cost, Price are irrelevant to your customer so hide those as well.


    Well, now that you have created some individual products within this ‘product class’ You can take advantage of creating a view for it. In this example, we’re creating a page view with a grid for our 6 store t-shirts.

    We highly recommend you save your 'view' after every step, as you create it. Especially when you see this message come up:  “* All changes are stored temporarily. Click Save to make your changes permanent. Click Cancel to discard the view.”
    When working in settings always change the ‘For’ option from ‘All Displays’ to ‘This block (override)’ so that the changes you make only alter the block (or page) you are working on.


    Navigate to: Structure > Views > Add New View

    1. Fill in ‘View Name’, for this example - ‘Store T-Shirts’
    2. Set Content ‘Of Type’ to ‘TShirts’
    3. Confirm ‘Create A Page’ is selected and change the ‘Display Format’ to ‘Grid’ (Want a block instead? Select ‘Create A Block’ instead) and enter the number of items to display, for this example - 6
    4. Continue & Edit
    5. Under ‘Format’ Click on ‘Settings’ for the grid
    6. Enter the number of columns you want, for this example, 2 and ‘Apply this display’
    7. Save

    You will now have created a 2 column page view of all your t-shirts. The path to your page is found under ‘Page Settings’ but is also the name of your view. For example, if you name the view ‘Store T-Shirts’ your path is www.yoursitename/store-t-shirts. Which you can add to a menu or link to on another page.

    THAT’S IT!

    Keep in mind these different advantages can be modified to fit the needs of your sale.  For instance, If you wanted to offer remove ‘Pay At Store’ as a payment method and make the them non-shippable, you would combine the instructions for ‘Payment Method’ and ‘Shippable?’ There are also other settings that can be used for conditions to fit your needs. You’re always welcome to reach out to us with questions on how to set up a specific product class with any rules or conditions you require..