Hello,
I want to implement buy sample button on magento2 product details page. I added my phtml file to display a button. Now i want to know user clicked on Buy Sample button or Add to Cart.
I tried to implement following controller but its not changing default product price to my sample product price. How can i do it? Please guide me. My controller function as follows.
public function execute()
{
$post = $this->getRequest()->getPostValue();
//echo ' in post';exit;
$cart = $this->_objectManager->create ('Magento\Checkout\Model\Cart');
try{
$productobj = $this->_objectManager->create ('Magento\Catalog\Model\Product' )->load ($post['product']);
$params = array(
'product' => $post['product'], // This would be $product->getId()
'qty' => 2,
'price'=>10
);
if(!$productobj->getId())
{
$this->messageManager->addError(__('Product Does Not Exist. Contact Administrator'));
}
$price=$productobj->getSampleCost();
$new_price = $productobj->getSampleCost();
//$item = ( $item->getParentItem() ? $item->getParentItem() : $item );
//$productobj->setName($new_name);
$productobj->setCustomPrice($new_price);
$productobj->setOriginalCustomPrice($new_price);
$productobj->getProduct()->setIsSuperMode(true);
//$cart->truncate();
$cart->addProduct($productobj,$params);
$cart->save();
if (!$cart->getQuote()->getHasError()) {
$message = __(
'You added %1 to your shopping cart.',
$productobj->getName()
);
$this->messageManager->addSuccessMessage($message);
}
}
catch(\Exception $e)
{
$this->messageManager->addException($e, __($e->getMessage()));
}
}
Hello @dineshprim
https://github.com/prince108/Magento2-Buynow
Use this module. Install it by copying into your Magento.
Run below commands:
php bin/magento cache:clean php bin/magento setup:upgrade
If still doesn't work:
php bin/magento setup:di:compile
If this response was helpful to you, kudos it.