/ / Додати продукт у кошик програмно Magento2 - php, magento, module, magento2

Додати товар в кошик програмно Magento2 - php, magento, module, magento2

Я створюю модуль, в який я додаю продукт в кошик через контролер. Але вказується помилка нижче

Помилка виправлення: Аргумент 2 передано до EecomAtcControllerAtcIndex :: __ construct () повинен бути екземпляром MagentoFrameworkViewResultPageFactory, екземпляр Даний MagentoFrameworkAppCacheTypeList, що викликається C: wampwwwproductzoomvargenerationEecomAtcControllerAtcIndexInterceptor.php по рядку 14 і визначено в C: wampwwwproductzoomappcodeEecomAtcControllerAtcIndex.php увімкнено рядок 21

Нижче мій код

namespace EecomAtcControllerAtc;

class Index extends MagentoFrameworkAppActionAction {

/**
* @var MagentoCheckoutModelCart
*/
protected $cart;
/**
* @var MagentoCatalogModelProduct
*/
protected $product;

public function __construct(
MagentoFrameworkAppActionContext $context,
MagentoFrameworkViewResultPageFactory $resultPageFactory,
MagentoCatalogModelProduct $product,
MagentoCheckoutModelCart $cart
) {
$this->resultPageFactory = $resultPageFactory;
$this->_customerSession = $customerSession;
$this->cart = $cart;
$this->product = $product;
parent::__construct($context);
}
public function execute()
{
try {
$params = array();
$params["qty"] = "1";//product quantity
/*get product id*/
$pId = "1";//productId
$_product = $this->product->load($pId);
if ($_product) {
$this->cart->addProduct($_product, $params);
$this->cart->save();
}

$this->messageManager->addSuccess(__("Add to cart successfully."));
} catch (MagentoFrameworkExceptionLocalizedException $e) {
$this->messageManager->addException(
$e,
__("%1", $e->getMessage())
);
} catch (Exception $e) {
$this->messageManager->addException($e, __("error."));
}
/*cart page*/
//$this->getResponse()->setRedirect("/checkout/cart/index");


}
}

Підкажіть, будь ласка, де я роблю помилку

Відповіді:

3 для відповіді № 1

Можливо, вам потрібно видалити своє var/generation папку, оскільки ви могли змінити підпис конструктора.


0 для відповіді № 2

Спробуйте це

 <?php
namespace WebkulHelloControllerIndex;

use MagentoFrameworkAppActionContext;
use MagentoFrameworkViewResultPageFactory;

class AddProducttocart extends MagentoCustomerControllerAbstractAccount
{
/**
* @var PageFactory
*/
protected $resultPageFactory;
/**
* @var MagentoFrameworkDataFormFormKey
*/
protected $formKey;
/**
* @param Context $context
* @param PageFactory $resultPageFactory
*/
public function __construct(
Context $context,
MagentoFrameworkDataFormFormKey $formKey,
PageFactory $resultPageFactory
) {
parent::__construct($context);
$this->formKey = $formKey;
$this->resultPageFactory = $resultPageFactory;
}

/**
*
* @return MagentoFrameworkViewResultPage
*/
public function execute()
{
$resultPage = $this->resultPageFactory->create();
$params = array(
"form_key" => $this->formKey->getFormKey(),
"product" =>12,//product Id
"qty"   =>1,//quantity of product
"price" =>100 //product price
);
$this->_redirect("checkout/cart/add/form_key/", $params);
/** @var MagentoFrameworkViewResultPage $resultPage */
return $resultPage;
}
}