AmPower Price Generator is a Frappe based Application which can help a business calculate a quotable price of a finished good based on other input raw material, without actually creating multiple BoMs.
Version No. | Description |
---|---|
0.1 | Initial release for external review. Multiple bugs and feature issues exists on this |
This application has been developed and verified on the following packages:
- Frappe (v13.41.3)
- ERPNext (v13.39.1)
- BoM should be configured in ERPNext, else only some part of the Price Generator would work (see below)
It might work on other higher versions, but the functioning is not guaranteed.
Take a case of a Pharmaceutical company - one that is involved in manufacturing and supply of generic medicines. For a request for quotation received from a Customer, the Sales team has to create a configuration which involves the base medicine with any additional changes to salts, multiple levels of packaging starting from individual pills to multi-cartons. Further, there would be markup involved in either individual constituents of even as a bulk before a quotation can be finalized.
Consider another case of a food manufacturing and supply organization which deals in repackaging of spices. For any request for quotation received from a Customer (or lead), the sales team will have to select base constituent of any spice, plus any additional variation of any specific component based on taste required. Thereafter, packaging (poly, box, bottle) is additional configuration which goes into arriving at final per-unit (Kg/grams/packet) cost.
Similar issues in creating quotation can be observed for any organization which is in business of creating finished goods made of smaller constituents and one or more extra configurations based on Customer demand. Some of the hurdles the sales team would face can be summarized as:
- Allowing arbitrary items to be added to the final price, for example, extra packaging, or even higher quantity of a particular constituent. This essentially means creating more higher level BoM or duplicate BoM to change the prices. (BoM in ERPNext once submitted cannot be edited without cancelling or duplicating)
- Creating the finished good in a specific UoM but allowing other constituent items to be in another UoM.
- Adding markup on overall price OR on individual constituent items to arrive at final price.
- Playing around with this configuration or multiple such configuration for a comparative quote.
Price Generator and Price Discovery have been interchangeably used in this text as well as the code
Refer this URL for detailed instructions on how to install a third-party app on a Frappe Bench. Short Instructions:
$ bench get-app <URL> --branch <BRANCH>
Where URL refers to this repository; Please use the master
for closest stable release.
$ bench --site <SITENAME> install-app ampower
Where <SITENAME>
is the name of the site on which installation is to be done.
You can check the exact name of the App from the frappe-bench/apps/
folder.
Name of the Application can change over the course of development until a stable release is made.
Create a new Price Generator Form which by searching for Price Generator in the search bar:
In the field Item
, complete list of items in the site's Item List would be visible. Here, an item has to be selected which is expected to be on the Quotation. Once this item is selected, its Name, Item Group and default UoM would be auto-fetched.
The UoM can be changed to reflect the Quotation UoM (packaging type). The Quantity field should be updated with quantity of the UoM selected for which Quotation has to be created.
One can fetch the default BoM OR add any number of BoMs which can make up the final Item. Here, care has to be taken that the BoM being selected should have the UoM which is available in the Available UoM Conversion for Item table which is fetched from the Item Document. That is important to map between two different UoM. For example, how many liters of a particular chemical form 1Kg of a powder once manufactured. Once added, the Quantity of the BoM cannot be edited as these are from submitted BoM document and define a ratio of items (raw materials) required to create equivalent quantity. Though, in the next step the individual components can be modifed (for Rate and Quantity)
Fetch the sub-assemblies of the BoM selected in the table above. This would break all the BoMs into their individual items, their Rate and Quantities being fetched from BoM and adjusted for UoM Ratio.
Use the Markup field to define a markup which would generate the Total Markup Price of quantity as selected in Step 1. Don't forget to click on "Calculate" once changes are done on the Markup %. Select the Customer and create Quotation. Quotation would be created in the background and the name of the Quotation would be shown at the bottom right of the screen in a floating message.
- In case the finished good and the BoM selected do not have a common UoM, the application cannot function as it cannot map between the quantity-UoM combination of item to Quote and the BoM.
- Layout of the form is not coherent and requires replacement of the buttons to create a workflow
- Only Customers can be selected to create quotation; Leads cannot be selected.
- Price Generator always creates a new quotation and doesn't allow merging of a finished good into an existing quotation.
- Janitorial Cleanup which includes standardized naming of the App, files and variables
- Support for adding additional charges like Labour/Frieght directly in price generator and passing it on to Quotation document
- Support for link to the quotation created directly from within Price Generator document.
- Using Walkthrough like screens to allow for a step-by-step data entry and quotation creation
- Restricting the number of items which are visible in the Item View, for example: only active, with default BoM etc
- Allow for merging multiple Price Generator Finished Good (Item) into a single Quotation