Error Message in debug.log:
[2020-11-10 07:57:17] main.CRITICAL: Type Error occurred when creating object: Magento\SalesRule\Model\ResourceModel\Rule, Argument 3 passed to Magento\SalesRule\Model\ResourceModel\Rule::__construct() must be an instance of Magento\SalesRule\Model\ResourceModel\Coupon, instance of RM\SameCouponMultipleDiscounts\Model\ResourceModel\Coupon given, called in /home/rehan/lab/testrm/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 116 [] []
I am trying to override: Magento\SalesRule\Model\ResourceModel\Coupon.php to remove 'unique coupon' restriction:
$this->addUniqueField(['field' => 'code', 'title' => __('Coupon with the same code')]);
from construct() method.
My app/code/Vendor/Module/Model/ResourceModel/Coupon.php looks like:
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Vendor\Module\Model\ResourceModel;
use Magento\Framework\Model\AbstractModel;
/**
* SalesRule Resource Coupon
*
* @author Magento Core Team <core@magentocommerce.com>
*/
class Coupon extends \Magento\Framework\Model\ResourceModel\Db\AbstractDb implements
\Magento\SalesRule\Model\Spi\CouponResourceInterface
{
/**
* Constructor adds unique fields
*
* @return void
*/
protected function _construct()
{
$this->_init('salesrule_coupon', 'coupon_id');
}
}
my di.xml file looks like:
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Magento\SalesRule\Model\ResourceModel\Coupon" type="Vendor\Module\Model\ResourceModel\Coupon" />
</config>
I've tried clearing cache, generated folder and did setup:di:compile but I am still receiving the same error.