There are lot of works need to do this question:
Here the steps:
1.Disable Checkout module block output
This case, you disable checkout module block output that make Cart/Checkout blank and also will remove minicart pop,So Customer cannot place order place.
disable module Magento_Checkout
output from Admin.Just to admin>Store>Configuration>Advance>Advance
.
There are lot of thing,you need do this case.
For this case, you may be need below steps:
- Disable Checkout module block output using Magento default System
setting
Then Select the module Magento_Checkout Change it status to Disabled
and after that click on Save Config button for save the setting.

2.Disable some blocks output using plugin which have AddtoCart button
In case,idea is disabled output of block those block which generate add to cart to block using plugin
As you know that from class Magento\Framework\View\Element\AbstractBlock ` toHtml() output of block is generated
In my plugin, find some blocks(Which are generate Add to Cart button
) name in layout like:
di.xml create is app\code[Vendorname][Module]\etc\frontend
,So it will only work frontend not for admin.
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\Framework\View\Element\AbstractBlock">
<plugin name="disabledOutofAddtoCartblock" type="[Vendorname]\[Module]\Plugin\AbstractBlockPlugin" />
</type>
</config>
Plugin class AbstractBlockPlugin located at app/code/[Vendorname]/[Module]/Plugin/
.
<?php
namespace [Vendorname]\[Module]\Plugin;
class AbstractBlockPlugin{
/**
* @var \Psr\Log\LoggerInterface
*/
protected $logger;
public function __construct(
\Psr\Log\LoggerInterface $logger
){
$this->logger = $logger;
}
/**
* Using after method change return value of toHtml
*/
public function afterToHtml(\Magento\Framework\View\Element\AbstractBlock $block ,$result){
$moduleName = $block->getModuleName();
$nameInLayout = $block->getNameInLayout();
$_disableBlocksNameInLayout = array(
'product.info.addtocart','product.info.addtocart.additional','product.info.addtocart.bundle',
);
/**
* If block name is match then return Blank
*/
if(in_array($nameInLayout ,$_disableBlocksNameInLayout)){
return "";
}
return $result;
}
}
Then require a cache:flush magento shell using bin/magento cache:flush