Use (DocType) instead of (Item) in Buying and Selling

Hello Community,

I caught myself over-thinking and over-engineering this and I thought there might be easier approaches.

This is for a services-based implementation, where Items are not inventoried or stocked.

Each service is complex, unique in nature, and has its own attributes, so I have Child DocTypes representing each service. I had to make them Child DocTypes because the services are part of a Project. A Project DocType contains several Child DocTypes. (Yes, we can have multiple instances of the same Service for a single Project).

So far, so good. Everything is smooth.

The complexity/challenge comes when trying to implement the Buying processes, more specifically, the Request for Quotation and Supplier Quotation.

The basic attributes (description, quantity, UoM) are simply not enough, as each Item/Service has its own set of attributes.

In short: I want to replace the Item with Child DocType inside Quotation and RFQ. Of course, not just selecting the Child DocType, but entering its respective attributes as well.

I’m curious about potential alternatives or insights from anyone who has tackled a similar challenge.

If needed, I am willing to customize my Form View, if my database design is correct.

Thank you for your input!

Best regards

Some examples of those Child DocTypes and their attributes:

  • Flight Ticket {Airline, Origin, Destination, Class, etc.}
  • Accommodation {Hotel, Type, Service level, in- and out- times, etc.}

For an RFQ, selecting Flight Ticket alone is not enough (if I considered it as an Item), instead, all attributes have to be part of the RFQ/quotation/invoices/etc.

@ankush @revant_one @bahaou @brian_pond @avc

You are the stars of this community :sparkles: I know it can be rude to mention people, but I hope you excuse me and I hope I get some insights from you.

Every bit of advice is valuable to me!

1 Like

@ahassoun why don’t you just use item attributes and create many variants of same item/service ?

1 Like

I have an item configurator app which can be adapted for your use case. Need sometime to do this as I am a little busy there days.

Hello @szufisher , Where is that app?

1 Like

It requires an account I think. Is it a public repo?

Do you mean a new Varitant per Order?

Please attach the file here. I tried signing up with several emails, did not get the verification code

corrected the URL, please try again.

corrected the URL please try again.

@bahaou , Item Variant won’t be a solution for these type of item.

Item Variant and Attributes are suitable when you know the number of variants and their attributes before hand,

Here, if you look at flight ticket only, their can be millions of combination of Origin and Destinations.

So I believe this is not suitable at all.

Best way to solve this is by creating a wrapper on top of item master.

Just like how item alternatives are managed in ERPNext.

Create a doctype called —> Item Configuration

Here you can use the item attribute doctype.

  • Select the item , and select its attributes.

For eg. - Flight tickets , is an item. And then Origin , Destination , type, can be item attributes.

Now, you have to customise all your transactional doctype and their item child table like SO, SI, PO , PI, RFQ .

Once a configurable item is selected, its configuration attributes and its fields will show up
Extended view where you can fill up your item.

PS - We worked on something similar for a client, but sadly the code is not open sourced by them.
Magento does it very beautifully and we got our motivation from there only.

But here you go, The complete structure and functional aspects. Now you can easily build it.



I agree with @aa_prashant . It would be close to serial/batch approach.

Anyway, here an use case for this old (but awesome) idea …

1 Like

What happened to this idea of grandchildren @avc @rmehta ?

Thank you so much for the insight and helpful comment! I really appreciate it.

Let me restate what I understood from your solution, and please correct me if I am wrong.

  1. Create a new DocType (Item Configurator) with the following fields:
  • Link to Item
  • Select (list of my services, e.g., Flight Ticket, Accommodation, etc)
  • Child table: link to Attribute child table
  1. Create a new Child DocType (Attribute) with the following fields:
  • Data Name (e.g., Airline, Hotel Name, Vehicle Type)
  • Data Value (e.g., Emirates, Marriott, Sedan)
  1. Customize transactional Doctypes
  • I am confused here, am I adding just a link to Item Configurator, since it’s not a child doctype?
1 Like

Item configurator doctype will function just as a template.
Actual values of those attribute will be filled at order level.