Variants, Composite Items, and... Configurable Items with Ad Ons?

Variants, Composite Items, and... Configurable Items with Ad Ons?

So I had to review a few of these concepts, and felt like there may need to be some clearer distinction made between the abstractions that we use to create associations between multiple items in inventory - sometimes with selections available to the customer, sometimes bundling multiple items into a single SKU, either because something's been manufactured or discounted at a bundled price, or simply for marketing purposes and how we'd like to group associated items on our product pages..

In this regard, I think there's a lot of room for confusion and that it may be helpful to others if I share my personal understanding of these concepts, and invite others to enhance or correct as necessary.

Hopefully this will help provide a better understanding as to how and when these features can or should be used in order to achieve both better inventory management and product presentation within your store.

As such, the following are how I've come to understand define the following concepts that can easily be confused.  These are - Item Variants, Composite Items, and Configurable Items / Add Ons (the last is not currently a Commerce feature, but one that I would propose should be, and is functionality within several other ecommerce systems.  More on that below...):

Variants
A Variant generally should be in item that comes prepackaged from a supplier, usually with its own dedicated UPC or SKUs. It's a variant because it may be conceptually grouped along-side with other very similar items with variations that pivot on one or more specific attributes. Some of these attributes might be size, color, flavor, etc. Each one of these attributes will multiply the number of SKUs by the number of new options within that attribute. (It's worth mentioning that you don't need to keep all of possible the variants SKUs if, for example, all colors are not being ordered for all sizes of a particular item - in which case the automatically generated SKUs can simply be deleted).

The inventory for any variant is increased when it's received and decreased when it's sold.  

Presentation at the point of sale is such that all variants are presented on a single product page.  Selecting the appropriate attribute options on a product page allows the customer to ultimately arrive at the specific product variant they wish to order.  

It's important to emphasize that selecting a variant on the product page is a "deductive" process during the point of sale, whereby each attribute option that is selected further hones in and reduces the number of remaining variants until the last attribute is selected.  This makes it much easier for your customer to quickly and specifically identify one variant among perhaps hundreds of other similar items without having to wade through pages of items.

Composite Items
A Composite Item is a pre-bundled "composite" of multiple SKUs. (Note the word "PRE-bundled"). This feature is really meant for those who bring in various pieces, parts, and components (which may or may not also be sold individually), but are assembled into AND presented as a single bigger product - hense the name "Composite Item".

As such, from a presentation standpoint, the Composite Item is a single SKU that you sell to your customer.  Behind the scenes, a composite item comprises of the pieces and parts initially received and inventoried as other SKUs.  The magic here is in the bundling.  Once bundled into a composite item, the inventory quantities are automatically reallocated reducing the on-hand counts all of those parts that are used to manufacture the Composite Items.

Composite Items are quite useful to you if you are a manufacturer in order to help you maintain and track your on-hand parts, make adjustments, and see if you're running short on this part or that for one product or another.

Generally, Composite Items are planned for in advance, and are usually bundled, allocated, and typically prepackaged well before the sale.

Composite Items are meant to define in your inventory a finished product from the parts that it's made from. This provides a means for automatic parts allocation for the purpose of assembling components into finished goods with the needed visibility and reporting that you otherwise would have to deal with manually in other painstaking ways (e.g. maintaining multiple inventories, one for manufacturing, and one for sales, etc.).

As such, the Composite Items feature allow manufacturers to have both the parts and the finished products coexist happily in one place and allocate the former into the latter as needed. It's inclusion into Inventory (and now into Commerce) has likely been a big deal for many, and a pretty significant accomplishment on Zoho's part.  Considering that that EDI can also available be integrated with Zoho Inventory, this is a pretty serious level of functionality for manufacturers that would otherwise be difficult to rival at Zoho's price point.
  
Configurable Items / Add Ons
There is however a third concept however, which I believe is very much desired, but is not yet included as part of Commerce, and oddly I think it's the arguably a feature that would probably be fairly east for the Commerce group to implement, being that it shouldn't be contingent on the changes to the Inventory Schema shared by the other Zoho apps.

I also think that it's something that is one of the more desired features, but not identified as such because it gets confused for and/or grouped in with certain other features when it's really quite a separate feature all together, for example... by that I mean that Variants and Composite Items are often being mistaken by users for what should really be considered as an entirely different and separate feature - that being the "Configurable Item with Add Ons".

The feature I'm describing here is used and implemented frequently on websites selling computers.  You sell the "bare-bones" system, which might be the enclosure and the motherboard, then you have a dropdown box to select what CPU, another dropdown box allows you to select the RAM, and another for the power supply.

It's important to understand that this is not a deductive selection (like it is with variants) in that each of the selections under each of these drop-downs is not honing down to a singular SKU.  Nor is it a Composite Item in which a single SKU is the composite of many that were preallocated into a final product.

Rather, this is an additive process at the point of sale, enabling the customer to configure their own system by selecting from multiple SKUs that are simply associated to a base "Configurable Item".  It's a function of presentation, and requires no preallocation of inventory.

It's important to understand that the base Configurable Item can be sold by itself, but is presented with optional "Add Ons".  When Add Ons are selected, pressing the "Add to Cart" button ads the base Configurable Item, along with the SKUs (and relevant Quantities, which should also be optionally presentable) of the other associated "Add On" items.

So in this way, there is never any sort of preallocation required for Add Ons within a Configurable Item.  It's only the relationship between the Configurable Item and its available Add Ons that needs to be established (e.g. perhaps within the Configurable Item's product page editor) that determines that such "Add Ons" be presented within the product page. 

Since this is only a function of presentation, the SKUs for the individual items (the base Configurable Item plus the Add On items) are still maintained within the cart, with no need to package them for the purpose of how they're seen from the perspective of the customer.

One other important distinction in this regard might be with respect to discounting.  Composite Items (not Configurable Items) can also be presented with package discounts.  Applying package discounts to Configurable Items might not be so straight forward if desired.

Anyhow, hopefully this will provide better understanding for those who are trying to strategize how to setup their inventory, and also serve as a proposed implementation that Zoho might consider in order to add in some sort of "Configurable Item / Add Ons" capability within the product page templates and be manageable on the back end via the product page editor.

This can theoretically be accomplished using custom fields and some modification to the Face product template files, but it would be nice if this functionality was part of Commerce itself without needing to hack it in.

Thanks,
Bryan
    • Recent Topics

    • Profit on Sales order

      Hi, would it be possible to implement a column at the Sales order overview of Purchase amount? So a field with the amount of all purchase related to this Sales order? This is very usefull so you will see the profit you made on this deal. I tried to get
    • How to include GST% in PO amount?

      Currently when I raise PO, the basic price of the item is used. However, the GST is not calculated and added along with the basic amount. I have added a Custom field for GST in the PO but I need Zoho Inventory to calculate the GST amount and add it with the Basic price to give me the final PO price.
    • sitemap in zoho sites not updating

      I checked my sitemap and it has not added any updates. Do I have to generate one manually all the time or is zoho sites suppose to generate and update it?
    • I trying to connect our PM tool but API shows failure

      Hi All, in ZOHO CRM when an enquiry stage is moved to WON then I have created a rule to trigger POST URL to thrid party AP and then create a function for mapping with below code void automation.kytesfunctions(String enquiryId) { // Fetch enquiry details
    • 2 serial numbers for 1 item (Mac address and Serial number)

      There is a way to track 2 serial number type for 1 Item. Ex: Some electronic devices have a MAC address and a serial number. I need to track those 2 numbers
    • Sample Ticket - Created from Bot Preview

      Why is Zoho desk adding bot created tickets?
    • Webhook data is not being received

      We’ve set up the webhook with a public URL that returns a 200 status on Postman. However, when we ran a test, we didn’t receive anything in the req.body object or see any data from the POST request. As a team of freshers still learning the ropes of development,
    • Number of Workflow runs

      Is there a way in Zoho desk to see statistics regarding workflows, rules and other automation objects? Would be nice for several reasons: You could ensure that your workflows are actually running. You could determine which ones weren't being used so you
    • Mail is no longer populating CRM contacts

      Hi! For the last few days, my mail hasn't been populating my CRM contacts. Even people I email multiple times per day. In fact, it keeps trying to send mail to myself. Notice, I started typing Amy and only got as far as, "Am" and it suggested myself.
    • Zoho Support is indeed shocking and difficult to get a response with

      All our business emails have an auto-foward set up on them so that they also go to our GMAIL accounts so that we receive them to the relevenat people. The emails are indeed auto forwarding and arriving to our GMAIL accounts but when you log into your
    • Chart with Filtered Data vs Unfiltered Data

      I am looking to create a chart view that displays the full data set vs a subset of the data filtered by user filter. However I do not seem to find any method by which to exclude a plot from the applied filter or any other method by which to display the
    • How to get a list of selected records into a button-function? Here is how!

      So, you might know already how to get a button on a page somewhere and perform actions with a function when pressed, but how about a button that only works with the records you selected in the list view? The button selected is a custom button in the modules
    • How to Add Break line / Return on button click

      I need to return the text concate with difference field from lead with line break i try "\r" ,"\n" "<br>" return "ali \r\n <br> baba"; None of above work.  i expected result something like this  ali baba but got this  ali \r\n <br> baba so, how can i
    • How to get batch number of item by api?

      Hi there, Is there any way to get batch number of item by api? Batch number is the batch reference number in https://www.zoho.com/inventory/help/advanced-inventory-tracking/batch-tracking.html . When I call the https://www.zoho.com/books/api/v3/#Items_Get_an_item
    • Filter embedded report

      How to filter embedded report in a page, below code is not working. dateField => startDate & dateField=< endDate The report should print on page containing records from startDate to endDate. params='zc_Header=true&amp;Service_Date__gte=<%=startDate%>&amp;Service_Date__lte=<%=endDate%>'
    • Serious question: Are there actually "solo-preneurs"/small business owners who made Zoho-one work well for them?

      L.S. After already many years of continued struggle with Zoho-One, I am seriously wondering if there are actually solo-preneurs (one person small business owners - without a large, dedicated IT dept.) who got it (Zoho-One) to work well for their businesses.
    • Announcing new features in Trident for Windows (v.1.18.6.0)

      Hello Community, Trident for Windows is here with some new features to elevate your workplace communication. Let's take a quick look at what's new. Ask and send read receipts for emails You can now request read receipts for specific emails while composing,
    • Increase subscription prices for existing subscriptions

      Hi, Does anyone know how we could achieve the ability to increase the subscription fee for our existing customers based on a % increase. We are not yet using Zoho Billing (Subscriptions) and I'm not sure if it is a good fit for us. But we would need to
    • Why developing custom function development made so difficult for Zoho Projects!!

      Hi Zoho Team, I am trying to write function to automate a process but whatever API name or Column Name I use, the API isn't populating certain fields. Even the standard fields aren't getting populated through API. It's already exhausting to find all API
    • Delete / Modify Default Career Site - Zoho Recruit

      Hello, It would be very useful if we could delete a default career site or change which of our career site is the default. Our Career site was created when there were issues with Zoho Recruit creating English CTA buttons on French Career sites. The only
    • Data not visible in sheet cells

      I'm having an issue where my data is not visible in my sheet cells. If I click on an individual cell, the data does display above in the little "fx" box. But all the boxes in the sheet just look blank. My collaborators do not have this issue. I have checked
    • PO receive limitations

      It is VERY common to receive more or less that the PO quantity. It's totally ludicrous to limit the maximum receive to the PO quantity! What if the receive is 0.00001 less than the PO quantity - it leaves the PO as "Partially received" The current options are to edit the PO manually before finalizing the receive, an outrageous situation ! Please Zoho guys - this is an infuriating oversight & can be easily resolved by introducing the option as shown in the attached document ......
    • Document images

      We used to be able to rotate the images but this has now been removed ???
    • How to add new deal to existing contact

      Hi, I want to add new deal to existing contact.
    • Why don't we have better integration with Mercado Pago or Pagseguro?

      Currently, the integration between Zoho Commerce and Mercado Pago for Brazil is very poor... Since it is old, it does not include the main payment method in Brazil today, which is PIX. Is there a date for this to finally be launched? There are numerous
    • Why is there no integration with native Brazilian shipping methods?

      Zoho Commerce is a powerful platform for e-commerce, but its lack of integration with native Brazilian shipping solutions is a significant limitation for users in Brazil. Integrating with popular shipping providers like Correios, Frenet, and Kangu would
    • Alert for Back Navigation in Zoho Creator Widgets on Mobile Apps

      In Zoho Creator widgets, when a user navigates back on mobile devices, the data within the widget is reset. This leads to a loss of any unsaved changes or inputs, causing frustration for users. To enhance user experience, we need to implement a confirmation
    • Mapping Zoho Projects into Cliq Channels

      why arent all the Zoho Projects listed from the drop down menu when trying to Map them into Zoho Cliq Channels. The system doesnt allow me to type the name of the project but gives a drop down of a list of projects however it doesnt give me a list of
    • Input GST Reversal for damaged goods

      In our line of business, some items are damaged and we are doing inventory adjustments to remove them from stock. However, as per GST guidelines, there is a specific rule that we have to reverse Input GST availed for such items and needs to be reported
    • Develop and publish a Zoho Recruit extension on the marketplace

      Hi, I'd like to develop a new extension for Zoho Recruit. I've started to use Zoho Developers creating a Zoho CRM extension. But when I try to create a new extension here https://sigma.zoho.com/workspace/testtesttestest/apps/new I d'ont see the option of Zoho Recruit (only CRM, Desk, Projects...). I do see extensions for Zoho Recruit in the marketplace. How would I go about to create one if the option is not available in sigma ? Cheers, Rémi.
    • Canadian Anti Spam Law

      In order to be able to comply with the new Canadian Anti Spam Law, I need to send out a Confirm Subscription email to all of our existing contacts. If I use the Subscribe tag, the user gets the following message: Registration Failed. Sorry! This contact is already present in the selected list. You can check this with your update profile link. If I include an 'Update Profile' link, it then sends an email which does not arrive immediately. Can you provide a tag or URL I can put in a Campaign Email
    • How to bulk update lookup fields

      "I have a primary key named Product SKU in one form called Master SKU (which contains details like price, color, size, etc.). I also have another form called FBA, which has the same primary key, Product SKU, and contains stock quantity information for
    • Change work hours per day for employees

      Hello, Is there a way to modify the work hours per day for employees in Zoho projects? This would be helpful for resource allocation to more accurately see when an employee who works 35 hours a week vs 40 hours has a full schedule. Thanks.
    • Record GST Paid for Imported Goods

      In Australia, goods that imported from overseas needs to pay GST per invocied value. In most case, the freight forwader (logistic agent) paid this on behalf of importer (us), and invoice us in together in their freight invocie.  How do we setup a proper
    • Unable to produce monthly P&L reports for previous years

      My company just migrated to Books this year. We have 5+ years financial data and need to generate a monthly P&L for 2019 and a monthly P&L YTD for 2020. The latter is easy, but I'm VERY surprised to learn that default reports in Zoho Books cannot create
    • Bulk Editing Multiple Invoices with Overwriting at time of upload

      Hello, I would like to edit a few 100 invoices. Only the HSN needs to be updated. When I am trying to upload the excel sheet with the data updated, I get an error: The Invoices are skipped as they already exist. I know the invoices exist but I would only
    • Oauth Redirects me to sign in page

      I am developing a postman script for me to securely get my credentials via Zoho Vault. With that, I need to authorize my postman to be able to access Zoho Vault. I am currently on Step 1 in this Zoho Vault | API Reference which redirects me to this guide
    • Here's why you should refrain from using EasyShip

      This is a screen recording which shows EasyShip performance issues. Note well! While we do use the Zoho-to-Easyship integration, the problems are wholly on the EasyShip side. The actual integration of data to EasyShip, and status updates back to Inventory,
    • How can I create a billable expense.?

      Hi, I've a bill of an expenses related to printing and stationary account but it recorded in non-billable expense category. How can I record this expense in billable category. Below is the pathway I've used to record the expense. Purchases. Expenses Click
    • Introducing Sub-Accounts in Zoho Books!

      Hello Everyone, Sub-Accounts is LIVE! Yes, you read it right. The much needed and most requested feature is now live in Zoho Books. The sub-accounts feature in Zoho Books will help you to classify your accounts further which will give you a more detailed view of your accounts while running reports. You can create sub-accounts for the below Accounts: Asset Cost of Goods Sold Expense Liability Fixed Asset Other Asset Other Current Asset Long Term Liability Other Current Liability Other Liability Other
    • Next Page