Actually while adding product to the cart with product id and customer id, i am facing one error "We found an invalid request for adding product to quote." If anyone have any idea please guide me.
<?php
namespace Vendor\Module\Model;
use Vendor\Module\Api\CustomerServiceInterface;
use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory as ProductCollection;
use Magento\Catalog\Model\ProductFactory as ProductFactory;
use Magento\Store\Model\StoreManagerInterface as StoreManager;
class Customerservice implements CustomerServiceInterface
{
private $productCollection;
private $ProductFactory;
protected $_storeManager;
protected $_product;
protected $_customerserviceFactory;
protected $_customerRepositoryInterface;
protected $_quoteModel;
protected $_productRepository;
protected $_cartManagementInterface;
protected $_cartRepositoryInterface;
public function __construct(ProductCollection $productCollection,
ProductFactory $ProductFactory,
\Magento\Catalog\Model\Product $product,
\Vendor\Module\Model\CustomerserviceFactory $customerserviceFactory,
\Magento\Checkout\Model\Cart $cart,
\Magento\Customer\Api\CustomerRepositoryInterface $customerRepositoryInterface,
\Magento\Quote\Model\Quote $quoteModel,
\Magento\Catalog\Api\ProductRepositoryInterface $productRepository,
\Magento\Quote\Api\CartManagementInterface $cartManagementInterface,
\Magento\Quote\Api\CartRepositoryInterface $cartRepositoryInterface,
StoreManager $_storeManager)
{
$this->productCollection = $productCollection;
$this->ProductFactory = $ProductFactory;
$this->_storeManager = $_storeManager;
$this->_customerserviceFactory = $customerserviceFactory;
$this->_product = $product;
$this->_customerRepositoryInterface = $customerRepositoryInterface;
$this->_quoteModel = $quoteModel;
$this->_productRepository = $productRepository;
$this->_cartManagementInterface = $cartManagementInterface;
$this->_cartRepositoryInterface = $cartRepositoryInterface;
}
public function customerservice($params) {
$customerId = 13;
$productId = 81;
try {
$product = $this->ProductFactory->create()->load($productId);
$params = array(
"product" => $productId,
'qty' => 1,
"price" => 160
);
$request = new \Magento\Framework\DataObject();
$request->setData($params);
$quoteId = $this->_cartManagementInterface->createEmptyCartForCustomer($customerId);
$quote = $this->_cartRepositoryInterface->get($quoteId);
$customer = $this->_customerRepositoryInterface->getById($customerId);
$quote->assignCustomer($customer);
$productAddToCart = $this->_productRepository->getById($productId);
$quote->addProduct($productAddToCart, $request);
$this->_cartRepositoryInterface->save($quote);
$quote->collectTotals();
//$quote->collectTotals()->save();
echo json_encode("product added");
} catch (\Exception $ex) {
print_r($ex->getMessage()); exit;
}
}
}