Frappe Cloud Support Partners Foundation Frappe School

Case packs - What am I missing?

Okay, so I am thinking I am just missing something stupid simple. In every distribution/retail business I have ever worked with/ran, products had standardized case packs- ie, 6/40(/1) is a case (heavy cardboard shipping box) OF 6 displays (pretty display package) OF 40 each (individual retail sale items). Another way of putting it would be 1 Case=6 Packages=240 Each.

Typically, and in my case, obviously, a company will buy an item from the manufacturer in ‘Case’ quantities. The company will then sell the item in ‘Package’ or ‘Each’ quantities- or both. In my case, I am a wholesale distributor as well as a retail seller, so I do both. In the system, what I am trying to accomplish is this-

Buy item from supplier as ‘Case’–>Sell ‘Package’ of item to B2B customers @ $xx–>Sell ‘Each’ of item Retail @ $yy

If I buy 10 ‘Cases’ of item with case pack 6/40(/1) from supplier, inventory should show “10 Cases” OR “60 Packages” OR “2400 Each”, depending on the context. So, if I sell 12 'Package’s and 240 ‘Each’ through sales invoice/POS, the inventory would then indicate “7 Cases”/“42 Packages”/“1680 Each”, again depending on context.

‘Case packs’ are so ubiquitous that I can’t help but think I am just missing some stupid-obvious setting somewhere.

I have reviewed the various set up docs on ‘Variants’ (the individual variants don’t seem to allow me to change their UoM’s to be different than the template item).

I have reviewed the various set up docs on ‘Product Bundles’ (even setting a base item as an ‘Each’, it doesn’t seem to allow me to create bundles of 40/240 ‘Each’ to make ‘Packages’/‘Cases’ due to not wanting me to use the parent item in the package?)

I have set up UoM’s for Each/Package/Package of Package(not used in example)/Case. Ultimately, I guess I could create unique items for each UoM, but I fail to see how inventory tracking would be able to track the item as a whole (uuid(item-case)=/=uuid(item-package) via conversion).

This forum topic seemed to have the most promise, but again I ran into the UoM issue of not being able to differ variant UoM’s from the template.

I don’t know. Like I have said- I’m sure I have just been staring at this for far too long and have lost perspective on either a standard feature or other basic solution. Any help would be greatly appreciated.

You should use UOM for this purpose.

You can also create different prices for each UOM from the item price list.

You will be able to sell the different UOM from PoS or Sales Invoice . You can also buy using the different UOM.

When creating the item you can also determine what UOM is the default for purchasing or Sales.

Hope this helps

It did, thank you. I seemed to get it to work as desired by creating the template based on the UoM ‘Each’ and moving up the chain with Variant UoM’s rather than down the chain.

1 Like

So… a couple of months later…

I ended up setting up a ‘template’ for each item, with variants for each level of case pack. Primarily, this was due to not seeing any way to link barcodes to their appropriate uom with a single item entry- can add multiple barcodes, can add multiple uoms and define their conversions, but no ‘barcode a’=uom ‘a’, ‘barcode b’=‘uom b’ that I could find. This really seems like a missed opportunity that would make the entire inventory management module a lot easier to use. …Or maybe there just needs to be a ‘Barcode Master List’ like the customer/item/supplier master lists?

As stated in my original post, I purchase/receive items in a ‘Case’ that typically consists of 'Package’s of 'Each’s. As of now, I have been able to upload starting inventories (by ‘Case’ UoM variant) and have been using the ‘Each’ UoM variant on Sales Invoices, but there isn’t really any readily available inventory tracking occurring- the ‘Case’ UoM shows the opening inventory quantity and the ‘Each’ UoM shows the sold quantity as a negative quantity.

Is there a way to see the Item quantity that takes into account the levels/movements of all of that Item’s variants?

If this is not possible, is there a way to assign UoM to Barcode in order to get rid of all of the variants and just have single item entries that contain all of the relevant UoM/pricing/barcodes for each UoM (ideal)?

1 Like

Update a year, python conversion, and version later…

Has anyone made any headway on being able to set uom/barcode pairs to items without going through product bundles/variants/random workarounds? With multiple barcodes now available by default for items, it seems like it would be trivial to add a ‘uom’ column to the barcode table and look up pricing/quantity conversions per uom just as easily as it does now to look up the item generally.

I have played with adding such a column to the barcode table, but I can’t manage to hack together anything functional as yet and am hoping I’m missing a new version 12 capability or an app that someone much more skilled has put together.

If I have 6 cases consisting of 10 boxes of 5 units of “Widget” (total 300 units), and:

  1. Receive a new case via Receive Stock (purchasing)
  2. Sell 3 units via POS (retail)
  3. Ship 4 boxes via Sales Order (wholesale)

my stock sheet for “Widget” should show {+50 units, -3 units, -20 units = current-stock: 327 units}

As it stands-

product variants - work, but don’t aggregate stock levels.

product bundles - (unless i’m missing something) function basically like variants, and likewise don’t aggregate stock levels since stock is maintained via each bundle rather than overall.

neither variant/bundle - will aggregate stock and can pull item via any item barcode if listed in the barcode table, but every transaction requires an explicit specification of uom, price, etc which significantly slows and invites errors in all actions from sales to stock movements/counts.

TL;DR- I want to buy/sell/move stock via uom:barcode pairs in order to maintain overall stock reporting.


I can’t be of any help, but I think I’m after the same thing you are. Any more revelations since Feb?

When I tested ERPNext long ago, I do vaguely recall UoM not giving me what I wanted. Setting up the retail item to be manufactured from 0.1 case items (if there are 10 retail items in a case) using a BOM may have been better although more arduous. But, I’m not sure if that’d give you the aggregated view of inventory that you seek.

Yes this is a needed feature!

1 Like