To answer you question: The matching is done by the method `Magento\Quote\Model\Quote\Item::representProduct()`. This method checks if a certain item in the cart is the same as the product you are just adding to the cart. Making this method always return `false` should make any add to cart action add the product as a new line in the cart. For this you can use an `aroundPlugin`. Create a new module and in the `etc/di.xml` add this <?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> <type name="Magento\Quote\Model\Quote\Item"> <plugin name="[module]-quote-item" type="[Namespace]\[Module]\Plugin\Quote\Item" /> </type> </config> Then create the file `[Namespace]/[Module]/Plugin/Quote/Item.php` with this content. <?php namespace[Namespace]\[Module]\Plugin\Quote; use Magento\Quote\Model\Quote\Item as QuoteItem; class Item { public function aroundRepresentProduct(QuoteItem $subject, \Closure $proceed, $product) { return false; } } Or a second option [could be this](http://magento.stackexchange.com/a/7045/146). The code is for Magento 1, but you can adapt it for M2. The event recommended in there, `sales_quote_add_item`, still exists in M2. To solve your problem, maybe... If you are planning to sell ropes with fixed lengths maybe you should use configurable products.