0

I try to add a new product in a afterSave plugin for Magento\Quote\Api\CartItemRepositoryInterface, but I get:

Type Error occurred when creating object: Company\Quote\Plugin\RalSpecialColorPriceSurcharge, Argument 3 passed to Company\Quote\Plugin\RalSpecialColorPriceSurcharge::__construct() must be an instance of Magento\Catalog\Model\ProductFactory, instance of Magento\Framework\App\Config given, called

app\code\Company\Quote\etc\di.xml

<?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\Api\CartItemRepositoryInterface"> <plugin name="company_quote_ral_specialcolor_price_surcharge" type="Company\Quote\Plugin\RalSpecialColorPriceSurcharge" sortOrder="10"/> </type> </config> 

app\code\Company\Quote\Plugin\RalSpecialColorPriceSurcharge.php

<?php namespace Company\Quote\Plugin; use \Magento\Catalog\Model\ProductFactory; class RalSpecialColorPriceSurcharge { /** * @var Company\Quote\Model\Config\Settings */ private $settings; public function __construct( \Magento\Catalog\Model\ProductFactory $productFactory, ) { $this->productFactory = $productFactory; } ... 
2
  • What is your plugin method, show that? Commented Nov 5, 2020 at 14:35
  • It is not relevant, it breaks in the constructor already, I am not even using the productFactory in the plugin method yet. If I remove it from the constructor then the code works again. Commented Nov 5, 2020 at 14:41

1 Answer 1

0

I figured it out. The problem was, that I executed bin/magento setup:di:compile earlier, which means that the code is getting compiled into the static files and loaded from there.

So if you call it once, then you always have to call it again after making changes to the constructor.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.