Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NEW : feature "manage on stock" for product or service #13522

Closed
wants to merge 11 commits into from

Conversation

FHenry
Copy link
Member

@FHenry FHenry commented Apr 8, 2020

Actually on Dolibarr if module Stock is enabled,

  • All products are managed with stock movement : This is not always required for virtual product, or some product that are in drop shipping and never transit by your wharehouse
  • If you want to add services in shipment (with ugly hidden option), you have to deal with them in stock : Problem with stock value, services, most of the time shouldn't be in stock. And in this case services will have non real stock value.

Goal of this feature :

  • Let the user decide if a product or service have to be managed in dolibarr stock and warehouse
  • Be more accurate with stock/warehouse value
  • Implement a correct way to add service into shipment
  • This feature is present in most all other ERP : ok... they may be wrong and Dolibarr is right until now, but I prefer, it's my point of view, something correctly done and explicit, rather than ugly hidden option and tweak with external module to implement this feature, Specially with BOM and Manufacturing that is coming into Dolibarr

@eldy
Copy link
Member

eldy commented Apr 9, 2020

"All products are managed with stock movement : This is not always required for virtual product," ?
This looks strange because the only feature that bring the virtual product is to change the stock of several products when changing one parent product.

For BOM and manufacturing product, there is already an option to say if stock is changed or not into definition of BOM and MO

Services are already excluded from stock management by default except if option to include them is on

@atm-maxime
Copy link
Member

Hi !

I think stock management should be improved but not necessarily with an option on product card saying if it's managed in stock or not.

For BOM, there's the option in the BOM definition to prevent stock movements on products composing the BOM. Sufficient to me.

For virtual product, I think that there are 2 changes to make : don't do stock movements on the virtual product, only on its components (as currently) and calculate a virtual stock on virtual product.

For services, there must be a simple option allowing services to be added in receptions / shipments, but with no stock movements. And deprecate the stock management on services option.

Finally for drop shipping, I agree products don't go through your warehouses. But maybe all your orders are not on drop shipping... None the less, you need to declare the received products on the supplier order, without any stock movements, to know what has been sent to your customer. So an option choice to prevent stock movements while proceeding the reception seems good. And the same option on the shipment, cause I think you still have to issue a shipping document to your customer.

Let's discuss it @FHenry 😉

@FHenry
Copy link
Member Author

FHenry commented Apr 10, 2020

This is a try to improve properly product stock management problem in Dolibarr, and give a chance to implement missing feature.
The way other ERP deal with it is much more complex.
Somes key products attributes are given by a combination of "familly" that can AND, OR, NOR, etc... products attributes like : On Sell, On Buy, On Stock, Raw Material, Semi finished good, Packaging Item, Shadow product,... This PR is a simpliest way (as 3 S dolibarr rules) to implement that.

@eldy : How do actually Dolibarr can not have stock movement on parent product that have virtual composition ? How in the future will you solve this with BOM and Manufacturing Order ?
Why : This is the case for semi-finished good that are use in composition but never manage in stock, but on witch you need real Manufacturing order, and this will consume (or not) component or times.
Actual solution : Make a custom module that deal with product extrafields and catch triggers on stock mvt => Not simple/possible for normal users.
@atm-maxime : on 25 % of my study case on Dolibarr, on company that do product and service processing and selling, it appears that this feature is missing, I just think it worth into Dolibarr.
Have another feature on shipment to make it why not, but if you manage your stock on invoice validation, how do you do ?

@eldy
Copy link
Member

eldy commented Apr 12, 2020

@FHenry Virtual product is not a feature designed to manage manufacturing orders. It is a feature to manage "kits" (group of products sells together) to increase/decrease several sub products when you increase/decrease a parent product.

There is no relation between virtual product and BOM/MO feature.
Being able to choose which product to have stock increased/decreased is currently supported with a flag in BOM and MO (the flag in v12 is called "Stock change disabled")

May be the feature is "missing" because users try to use the "virtual product" feature to manage Manufacturing or were using standard Stock movement to manage Manufacturing too. But with the new Manufacturing module, may be we will have to think differently. I set the PR to "postponed" status, to analyze it after the v12, to see if it is still relevant or not.

@eldy eldy added the PR postponed PR is postponed (will be processed later). Ie: feature pushed during a beta or need transition steps label Apr 12, 2020
@FHenry FHenry closed this Jun 6, 2020
@FHenry FHenry reopened this Sep 2, 2020
@FHenry
Copy link
Member Author

FHenry commented Sep 2, 2020

I've new use case to explain with this feature can be usefull.
You buy one roll of wire (100 meters) but you stock and sell meters of wire. With virtual product it's easy to set up, but when you enter in stock you want only stock mouvement on 100 meters of wire, not the roll.

@eldy
Copy link
Member

eldy commented Sep 3, 2020

Here virtual product is not a good choice because your "roll of wire (100m)" is NOT a virtual product (you have to stock your roll too, so it is not "virtual"). It is a real reference, sold with a different packaging than the simple wire sold by meter. So it should be here another reference.
If you decide to use one of the roll of 100m to sell wire by unit of meter, once you have sold your 1st meter, it is no more possible to sell it as a complete roll (there is only 99m remaining). So you must remove 1 reference of roll from the available market and add 99m available for the other reference. This should be a simple mass stock movement (-1 for reference roll, +99 for reference wire unit, you always know what is possible to be sold as roll and as unit).
Having both managed with only 1 product needs to be able to manage "packaging". Did you check the hidden / not stable feature of packaging ?

@futurehousestore
Copy link
Contributor

@FHenry will your PR work in my case #13368 ? I'm happy to test it. I understand the BOM and MO features but they don't work for me as my sells are done "outside" of Dolibarr (in Prestashop) and I sell cables per 100m roll or per meter. At the moment I need to correct the stock manually and it is very, very, very time-consuming.

@BebZ
Copy link

BebZ commented Sep 6, 2020

Hello Eldy,
How you describe it should be a simple +100 // -1 stock movements on 2 different references
triggered on different scenarios :
-you want to put meters of cable in stock
-you want to ship an order of less than 100 metres, by "cutting one ful roll"
-you want to receive one supplier ref on 2 different references (e.g. 2 rolls of 100 metres and 100 meter of cable)

etc...

I am not sure PRODUCT_USE_SUPPLIER_PACKAGING
this PR will do what you describe (i was searching for stock movements and there are no)
#12503

@eldy eldy added PR not qualified PR is not qualified (feature not enough requested, duplicate feature or other reason) and removed PR postponed PR is postponed (will be processed later). Ie: feature pushed during a beta or need transition steps labels Oct 7, 2020
@FHenry FHenry force-pushed the dev_NEWnoStockCount branch from ad28df5 to c926dae Compare October 12, 2020 09:59
@StephaneLesage
Copy link
Contributor

Hi,
Having only 2 types of items is already rather limited (should add at least labels/comments), but if you tell the user that a physical product has to be setup as service because there is no stock, you start to confuse them.
I think this PR is essential for Dolibarr as it is really missing compared to other ERPs, and probably blocking many potential customers. We are currently evaluating migration from Cegid with ATM:

  • we need services and need to "ship" them, but without stock of course ->not possible
  • we also need products without stock (misc, consumables, tools, etc...) -> not possible

Current "solution" is:

  • activate stock on everything including services !
  • dirty hack with a dummy stock/warehouse that won't be exported to accouting...

Really need this PR.

@eldy
Copy link
Member

eldy commented Dec 16, 2020

This PR contains too many different things. Too many different things and is not atomic so it is not possible to valid it.
I suggest to go froward once step at once and start with the feature to disable stock management on some products and send first 1 PR for the feature "Manage/Track sotck for this product" for this product (A new property into table and a checkbox that is checked by default).
The option must also be visible on service if the option "Manage stock for services too" is enabled.

@eldy eldy closed this Dec 16, 2020
@FHenry FHenry deleted the dev_NEWnoStockCount branch May 17, 2021 13:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
PR not qualified PR is not qualified (feature not enough requested, duplicate feature or other reason)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants