[
https://issues.apache.org/jira/browse/OFBIZ-2820?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sharan Foga updated OFBIZ-2820:
-------------------------------
Sprint: Bug Crush Event - 21/2/2015
> 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: 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, [email protected], 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, [email protected], 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.3.4#6332)