****** Design ****** The *Product Kit Module* module introduces the following concepts: .. _concept-product: Product ======= When the *Product Kit Module* is activated, products gain some extra properties. These include a new type "Kit" which corresponds to a product composed of other goods defined by a list of `Components `. .. seealso:: The `Product ` concept is introduced by the :doc:`Product Module `. .. _model-product.component: Product Component ================= The *Product Component* concept defines the quantity of a product that is part of another product. .. _model-sale.sale: Sale ==== When the *Product Kit Module* is activated, components are added to sales when the sale is quoted. For `Sale Lines ` with a kit `Product `, a `Sale Line Component ` is created for each `Product Component `. These components are used as the origins for the `Stock Moves ` and the sale lines of the `Invoice Lines `. When the `Invoice ` method is on shipment, the smallest ratio of shipped components is used to calculate the quantity invoiced. For `Sale Lines ` with a non-kit product containing `Product Components `, a sale line is created for each one. When the sale is reset to draft, all created components are deleted. .. _model-sale.line: Line ---- The sale lines gain a list of `Sale Line Components ` and a list of children which are created when the `Sale ` is quoted. .. _model-sale.line.component: Line Component -------------- The *Sale Line Component* concept defines for a `Sale Line ` the quantity of a `Product Component ` to be shipped instead of the kit. .. seealso:: The `Sale ` model is introduced by the :doc:`Sale Module `. .. _model-purchase.purchase: Purchase ======== When the *Product Kit Module* is activated, components are added to `Purchases ` when the purchase is quoted. For `Purchase Lines ` with a kit `Product `, a `Purchase Line Component ` is created for each `Product Component `. These components are used as the origins for the `Stock Moves ` and the purchase lines of the `Invoice Lines `. When the `Invoice ` method is on shipment, the smallest ratio of received components is used to calculate the quantity invoiced. For `Purchase Lines ` with a non-kit product containing `Product Components `, a purchase line is created for each one. When the purchase is reset to draft, all created components are deleted. .. _model-purchase.line: Line ---- The purchase lines gain a list of `Purchase Line Components ` and a list of children which are created when the `Purchase ` is quoted. .. _model-purchase.line.component: Line Component -------------- The *Purchase Line Component* concept defines for a `Purchase Line ` the quantity of a `Product Component ` to be received instead of the kit. .. seealso:: The `Purchase ` model is introduced by the :doc:`Purchase Module `.