[ 
https://issues.apache.org/jira/browse/OFBIZ-2820?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13859164#comment-13859164
 ] 

Christian Carlow commented on OFBIZ-2820:
-----------------------------------------

Seems like ORDER_ITEM.selectedAmount is mean't to store UOM amounts but haven't 
found any demo data that uses it yet.  The selectedAmount field appears for 
virtual products when requireAmount=Y.  I suppose OFBIZ-5440 should account for 
the selectedAmount field by displaying it for all BOM items that have 
requireAmount=Y.

Still not sure about price rule issues...



> Pricing for variable size objects
> ---------------------------------
>
>                 Key: OFBIZ-2820
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-2820
>             Project: OFBiz
>          Issue Type: New Feature
>          Components: product
>    Affects Versions: SVN trunk
>         Environment: all
>            Reporter: Mark Whitis
>
> OFBiz seems to lack support for variable size objects.
> Examples:
>    -   5.36 hours of time at $100 for first hour and $75 per additional hour 
> billed in increments of 15 minutes.
>    - 1.7 yards of cloth at $6.37 per yard
>    - 1.5lb of bulk whole wheat flour at $1.58/pound
>    - 4 pieces 6 inches long of alloy 6061-T6511 aluminum 1" square bar stock:
>         - Maximum length per piece: 108 inches
>         - Pull charge: $0.50
>         - Cutting charge: 4 cuts at $0.15/cut  - may be global or item 
> specific or calculated based on cross section and material
>         - Cross section: 1 cubic inch per inch (line item specific)
>         - Density: 0.098 pounds per cubic inch (shared for all 6061-T6511 
> products)
>         - Shape modifier:    1.00 for square shape (line item or category 
> specific) - some shapes may be more expensive per unit weight.
>         - Shipping weight:  
> piece_length*number_of_pieces*cross_section*density
>         - cost per pound: shared with other 6061-T6511 product
>         - Cost: 
> pull_charge+cut_charge*number_of_pieces+cross_section*density*shape_modifier*price_per_pound*(piece_length+kerf)*number_of_pieces
>          The cost of aluminum may change frequently.   Price calculation 
> might be based on the current spot price of aluminum, inventory replacement 
> cost (same as preceeding), or the cost when these particular bars were 
> acquired, or some function that takes both into account.
>           Remainder charges:   Since pieces are cut from fixed length bars, 
> Prices may figure in a surcharge based on the remaining portion that will be 
> more or less unsaleable and has to be sold as surplus, melted down, etc.   Or 
> alternatively, this can be included in the charge
>           and a discount offered for full bar lengths supplied as full bar or 
> cut up.     So, you pay a reduced price per inch (or a fixed cost) if you buy 
> a full bar or if you order a full bar cut to length, etc.
>          - Full bar price modifier: 0.80.
>            example: 13 pieces 16" long (+1/8" saw kerf) gets 7 pieces from 
> the first bar, charged as 1 bar + 7 cuts, and 6 pieces from the second bar 
> charged by the inch.    However, since the full bar price is lower, in this 
> case, this can be charged as 2 bars + 13 cuts.
>           Example sites: www.asapsource.com, www.onlinemetals.com, 
> www.industrialmetals.com.    Various levels of dysfunction.   ASAP's web 
> store can handle per inch pricing but can't factor in the cutting prices 
> properly so they charge greatly inflated (almost 4x what the price should be) 
> cost per inch.    industrialmetals web store can't handle per inch pricing so 
> they clutter up the website with 12", 24", 36", 48", 60", and 72" standard 
> lengths of the same item, you have to contact them if you want a different 
> length, and a substantial portion of their inventory isn't in the webstore 
> due to the burden of creating six or more products per item (not to mention 
> having to change hundreds of items * 6 copies when the cost of materials 
> changs).
>     - t-slot structural aluminum 
>          This is very similar to the bar stock given above.    However, there 
> is a twist.    There are optional standard machining services.
>            - 4 pieces 32" long of 10EX1020 extrusion
>                 - 1 clearance hole {0.125"} diameter measured {0.5"} from end 
> {A} along grove {A}.
>                 - 1 clearance hole 0.125" diameter measured 0.5" from end A 
> along grove B
>                 -1 clearance hole 0.125" diameter measured 0.5" from end B 
> along grove A
>                - 1 clearance hole 0.125" diameter measured 0.5" from end B 
> along grove B
>                - 1 customer part number marking: "XYZ001"
>            - 2 pieces 32" long of 10EX1020 extrusion
>                   - 1 {clearance hole} {0.125"} diameter measured {0.5"} from 
> end {A} along grove {A}.
>                 -   1 clearance hole 0.125" diameter measured 0.5" from end A 
> along grove B
>                 - 1 clearance hole 0.125" diameter measured 1.5" from  end A 
> along grove A
>                 - 1 clearance hole 0.125" diamter measured 1.5" from end A 
> along grove B
>                 - (four more holes - repeat above for end B).
>                 - 1 customer part number marking: "XYZ002"
>            
>         In this case, clearance hole is  a partnumber and there is another 
> partnumber for counterbore and another for an angled counterbore/hole, etc.   
>   The catch is that this lineitem needs to capture 4 parameters and be a 
> sub-item under the first item.  The association with the parent item must be 
> maintained.     Further, the cost is multiplied by the piece count, so this 
> is 32 hole charges
> total and 6 part number markings.   Also note that the separate line items 
> may not be combined.   Even though we have two line items
> with the same base part number, the length and or modifications may differ.   
> Sample websites: www.8020.net, www.faztek.net.
> You have to look at the PDF catalogs for details of machining services.     
> 8020 doesn't have a webstore (they sell through distributors) and many of 
> their distributors don't either.    Faztek's web store includes only standard 
> 97" lengths, no cut to length and no drilling (even though they provide these 
> services).
> Note that this is best served by named expressions (or even functions, such 
> as ECMAscript) which can be included by reference in each part number or 
> category, making use of a combination of variables specific to the specific 
> part number, a category, and global variables and which may be further 
> modified by additional expressions.
>    - Kitting
>          Line items may be grouped into "kits".     This applies to the metal 
> parts above and to electronic components and various other
>           situations.   When combined with line item specific modifications, 
> your order list is now a three layer outline:
>          - Kit 1, Marking "KIT001"
>              - line item
>              - line item 
>              - line item ...
>         - Kit 2, Marking "KIT002"
>              -line item
>                   - modification
>                   - modification
>              -line item
>        Identical line items need to be kept separate between different kits, 
> for packaging reasons.    For pricing, the price may be computed
>        separately (cost  for counting/packaging separately) or combined 
> (quantity discount) or somewhere in between.       
>       Other applications require kitting as well.   For example: "Bob's 
> office suppies" and "Jane's office supplies" may be combined in one
>       order (saves shipping, quantity discounts, etc) but be packed 
> seperately.    Note that you may order more than one of each kit - thus the 
> quantities for each line item are multiplied by the kit quantity (if you 
> order 10 of a kit, you may also choose from 10 separate subpackages or 1 
> separate subpackage containing 10x the quantity).   You may also reorder 
> these kits in the future, so it is helpful to store these in the customer 
> profile.    Many companies in many industries offer kitting.   I have yet to 
> see one that can do so via the web store.
>  - Shipping limits
>     Metal is typically supplied from the extruder/mill/foundry/etc to 
> distributor's in 10' or 20' lengths.    However, UPS imposes limits
>     of 9' length, 165" length (not too much danger, there) + girth, and 
> 150lbs per package (which can easily be exceeded by a short length of steel 
> with a large crossection).
>  - Plastics: almost identical to metal as far as e-commerce requirements.
>  - Complicated Example
>    One of the more complicated online stores is www.digikey.com and it is 
> instructive for anyone developing a web store application.   Digikey is the 
> amazon of its industry.    They STOCK 450,000 products and list many more in 
> their catalog, they ship over 2 million orders each year from a 14 acre 
> automated facility.   Their success is largely due to their power of their 
> online catalog.  Search for "74HC00", then select "Fairchild", "Surface 
> mount", "4-quad", "14-soic","in-stock", "lead free", "rohs", then hit "apply 
> filters".  
>       - When you entered 74HC00, it did a partial part number search.    The 
> algorithm is complicated but similar throught the industry.
>         74HC00 matched "MM74HC00M" and "MM74HC00MX".   Seems simple enough.  
> A search term of "7400" also would have matched those
>         parts but a search term of "74HC00" would not have matched the part 
> number "SN7400N".      It also searched in multiple fields
>         incuding manufacturer's part number, digikey part number, 
> description, etc.    The funny matching algorithm only applies to
>         the first two part number fields.
>     - Notice that it had a lot of parameters for each part, and you can 
> select from them.    The parameters vary by category - there may
>       be some overlap.
>    - Also notice that the parameters are displayed in parts listings - not 
> just item number, description, and price.  One of those parameters
>      is actually a link to the datasheet (it is a little more complicated 
> than that as there may be more than one datasheet or drawing
>      per part.   
>    - They also have links to catalog pages on the item detail pages, where 
> appropriate.
>     - Notice that the same product is available in 4 different packaging.     
> They get it from the manufacturer in both tubes and reels of 2500.     They 
> will provide you with a whole reel or cut a specified number of parts of a 
> reel and provide those as cut tape or they will cut a specified number of 
> parts off a reel and splice those onto a new reel for $7 + cost of parts.     
> They will provide you with a whole tube or
> transfer a specific number of parts to a new tube.   Note that they have 
> pricing that varies by quantity ordered.   Their pricing reflects quantity 
> discounts/price breaks (common for the industry), minimum orders per line 
> item (for a $0.05 part, the minimum quantity is 10 - it would cost that much 
> to pull one part as well as large minimums for many (but not all) non-stock 
> items), order multiples (multiples of 2500 for full reel pricing), etc.    
> Underneath, these prices are partly based on the cost of pulling and 
> repackaging each part as well as the notion of cost.
>    - Three of the digikey part numbers pull stock from the same inventory.
>    - You can't see it unless you create an account, but you can also add 
> parts to your shopping cart by uploading a CSV file.   I think
>      they also do EDI.   They lack the ability to order a list of parts by 
> clicking on a web link (i.e. to build this, you need these quantities
>      of these 25 different items.  Click here to order from digikey.   They 
> also lack an open XML-RPC/SOAP/etc. alternative to closed (and ugly) standard 
> EDI.
>     - Customer reference number can be added to each line item
>     - Although you can't see it in this example, some of the parts are value 
> added parts.     They take multiple part numbers and
>       combine (assemble) them into one.   This means they draw on the 
> inventories of those parts.   The digireel, in this example, though, is a 
> primitive
>       example of this ($7 reel + parts).
>    - The program appears to let you define options for each item and even a 
> price per option.   Configurable PC, for example.
>       But it doesn't let you choose more than one of the same option.    Hard 
> drives are implemented, for example, by having configuration
>       items for 1st hard drive and 2nd hard drive.    3rd hard drive isn't an 
> option.      "Choose up to 4 items from the following list", with
>       a quantity for each.     With a sub option (in the case of hard drives) 
> for which port to connect to.     
>   -  For more complicated situations, extending the previous one, you need 
> the notion of consumable resources.
>       1 Bare bones PC, contains part #xxx motherboard, contains part #xxx 
> case,  ...
>       Qty __ 500GB SATA internal hard drive (default), $100, consumes 1 SATA 
> port, consumes one 3-1/2" internal bay or 3-1/2" external bay, consumes 
> 5V@1A, 12V@2.5A, consumes 1 SATA power connector
>       Qty __ 1000GB SATA internal hard drive, $150, consumes 1 SATA port, 
> consumes one 3-1/2" internal bay or 3-1/2 external bay
>      consumes 5V@1A, 12V@2.5A, consumes 1 SATA power connector
>       [ ] Replace default hard drive with another purchased hard drive 
> ordered on same order -$100.
>       Qty ___ SATA DVD+RW burner, $150, consumes 1 SATA port, consumes one 
> 5-1/4" external bay, consumes 5V@1A, 12V@1A, 1 SATA power connector
>       Qty ___ SATA CD-ROM drive, $50, consumes 1 SATA port, consumes one 
> 5-1/4" external bay, consumes power....
>       Qty ___ 500GB IDE internal hard drive, $100, consumes 1 IDE port, 
> consumes one 3-1/2" internal bay or 3-1/2" external bay, consumes power....
>       Qty ___ PCI->SATA RAID controller, Consumes 1 PCI slot, provides 4 IDE 
> Ports named xx.RAID1, xx.RAID2, xx.RAID3, and xx.RAID4, consumes power...
>       Qty ___ SATA->SATA RAID controller, Consumes 1 RAID port, provides 4 
> RAID PORTS named yy.RAID1, yy.RAID2, yy.RAID3, yy.RAID4, consumes power...
>       Qty ___ Display controller, Consumes 1 PCI-Express x16 port   (ok, SLI 
> complicates things by letting you have one 16x port and one unusable port or 
> two 8x ports).   Provides 1 DVI port OR 1 VGA port (but not both 
> simultaneusly), incompatible with #WINVista Windows Vista.
>      Qty ___ SATA->ESATA adapter.  Consumes 1 SATA, consumes 1 slot opening, 
> provides 1 ESATA port.
>      Qty ___ IDE->SATA adapter.  Consumes 1 IDE port, provides 1 SATA port   
> (there are gender issues)
>      Qty ___ SATA->IDE adapter.  Consumes 1 SATA port, provides 1 IDE port..
>      Qty ___ 350W power supply (default) Consumes 1 power supply bay.  
> Provides 5V@15A, 12V@10A, Provides 1 motherboard power connector, Provides 2 
> floppy power connectors, provides 2 SATA power connectors, Provides 2 IDE 
> power connectors.
>      Qty ___ 500W power supply.   Consumes 1 power supply bay.  Provides 
> 5V@20A, 12V@15A
>      Qty ___ IDE->SATA power adapter.   Consumes 1 IDE power connector, 
> Provides 1 SATA power connector
>      Qty ___ SATA->IDE power adapter.   Consumes 1 SATA power connector, 
> Provides 1 SATA power connector
>      Qty___ SATA Power Y connector.   Consumes 1 SATA power connector, 
> Provides 2 SATA power connector
>      Qty ___ Ubuntu Linux 9.04 AMD64
>      Qty ___ Ubuntu Linux 9.04 I386
>      Qty ___ Windows XP
>      Qty ___ Windows Vista
>      [ ] software install
>      [ ] hardware install 
>      Qty ___ Opteron CPU fan
>    The catalog will ask where you want each attached, choosing the first 
> unused port in each category by default.   "You decide" might
> be a useful choice as well for user's who don't understand internals.
>      Resources may be divided into subpools.     Some resources may be 
> converted into other resources.  Some PCI-Express ports are usable as 
> narrower ports and some aren't.    Each PCI or PCI-Express port provides 
> either the appropiate port or 1 slot opening in the case, but not both.    In 
> some cases, resource constraints may not be satisfied but user should be able 
> to order anyway; user may have some parts already or know better.    But the 
> user should be warned.   Resources may be provided (or consumed) from another 
> part number included by reference in the list of options.   The options above 
> can be broken down into categories.     Note that resources aren't 
> necessarily integer quantities: Power consumption is an example.
> User should be able to add a part number not on the list of options to the 
> parent part number.    I.E. If a 1.5TB hard drive wasn't listed as one of the 
> options, user can still
> order it as part of the system in addition to or in place of the options 
> above.   Some constaints may be imposed on package pricing, in that case.   
> Or the package may be based on actual prices of included part numbers minus a 
> discount if order 1 CASE, 1 Motherboard>=$150, 1CPU, 1Hard Drive>=$100, total 
> value of preceeding >=$400, total value of system >=$500.  
> I am not running a web store which needs these features.    But, I do order 
> from suppliers who do and am inconvenienced by their dysfunctional stores.    
> While these features may seem specific to specific industries, they are 
> actually common across many.   Textiles, bulk foods, metal, and electronic 
> components are just a few examples.
> - Ability to import descriptions (including all the options, pictures, text, 
> etc) from another company's catalog for many products at the same time.     
> Assume the other company is running same software for starters, but do it in 
> a way that isn't specific to one program and is easily modifiable.   But 
> start with basic import/export.   Descriptions of parts can be complicated.   
> Distrubutors and retailers may carry hundreds, thousands, or even millions of 
> items.     Distributor should be able to import from manufacturer and 
> retailer from distributor.      Various types of filtering should be 
> provided.   Shouldn't just be a one time import - details change.   New 
> products are added, products are discontinued, details are updated, wholesale 
> costs change.   New items should go in a queue to be approved before being 
> added.   Some parts of the description may come from upstream, others may be 
> local.
> Metal is a particularly nasty example, as a customer, because shipping 
> charges can be a substantial fraction of the order cost (aluminum) or even 
> far exceed it (steel is cheaper and heavier). Thus, it is advantage to order 
> from a nearby supplier.    However, due in no small part to software 
> limitations, only a few companies have functional online ordering for metals. 
>   Proper support in an open source package would make it possible for large 
> numbers of local suppliers to provide online ordering.   Individual local 
> distributors typically won't pay for custom development or expensive 
> proprietary solutions.   Especially for something that is not specific to 
> their company or even their industry but is actually something that should be 
> a standard feature of all e-commerce packages that want to be taken 
> seriously.  They also aren't likely to be too hot on the idea of spending a 
> lot of money funding an open source implementation that their competitors can 
> use for free.  And this hurts local customers, engineers (overhead for 
> ordering parts for prototypes or budgeting pricing is worse than if you were 
> ordering a 1000 parts), local manufacturers, and the local and national 
> economy.   And since real companies with complicated products may need 
> sophisticated company specific customization over and above the standard 
> stuff described here, it needs to be one with a reasonable license, not GPL.
> Ultimately, implementing these is in the interests of society.  I would do it 
> myself, for that reason, if I had the time.    However, I have a whole lot 
> more complicated stuff to work on.     This is fairly easy, in comparison 
> (though time consuming).    This is likely to be more than a few plugins - 
> chances are some weaknesses in the core will be exposed.
> Not only should these features be implemented, but the online demo's should 
> show them off.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to