This won't work if cart already contains an equal item.

I would not verify that subject has item this way. I would do something like

```php
$variant = $this->variantRepository->find($configuration['variant']);

$item = $this->itemRepository->createNew()
    ->setVariant($variant)
    ->setQuantity($configuration['quantity'])
    ->setUnitPrice($configuration['price'])
;

foreach ($subject->getItems() as $subjectItem) {
    if ($subjectItem->equals($item)) {
        return;
    }
}

$subject->addItem($item);
```

I think you should also modify the ```equals()``` method in CoreBundle to
```php
return $item->getVariant() === $this->variant && $item->getUnitPrice() == $this->unitPrice;
```
Currently, you cannot add an item already present with a different unitprice.