Skip to main content

Magento 2 Change Core Config Value Programmatically


$objectManager = \Magento\Framework\App\ObjectManager::getInstance(); // Instance of object manager

$cacheTypeList = $objectManager->get('\Magento\Framework\App\Cache\TypeListInterface');
$cacheFrontendPool = $objectManager->get('\Magento\Framework\App\Cache\Frontend\Pool');

$resource = $objectManager->get('Magento\Framework\App\ResourceConnection');
$connection = $resource->getConnection();
$table = $resource->getTableName('core_config_data'); 
$select = $connection->select()->from(
  $table,
  ['config_id', 'value']
 )->where(
  'path = ?',
  'carriers/storepickup/active'
 );

$data = $connection->fetchAll($select);
if ($data) {
 try {
  $connection->beginTransaction();

  foreach ($data as $value) {
   if($storeId == 1){
    $dvalue = !(bool)1; 
   }else{
    $dvalue = 1;
   }
   $bind = ['path' => 'carriers/storepickup/active', 'value' => $dvalue];
   $where = 'config_id = ' . $value['config_id'];
   $connection->update($table, $bind, $where);
  }

  $connection->commit();
  $types = array('config','layout','block_html','collections','reflection','db_ddl','eav',
    'config_integration','config_integration_api','full_page','translate','config_webservice');
  foreach ($types as $type) {
   $cacheTypeList->cleanType($type);
  }
  foreach ($cacheFrontendPool  as $cacheFrontend) {
   $cacheFrontend->getBackend()->clean();
  }
 } catch (\Exception $e) {
  $connection->rollback();
  throw $e;
 }
}
 

Comments

Popular posts from this blog

Magento 2 generate custom log

the custom log file created using below code for Magento 2.4.2 before version use this :  $writer = new \Zend\Log\Writer\Stream (BP . '/var/log/custom.log' ); $logger = new \Zend\Log\Logger (); $logger -> addWriter ( $writer ); $logger -> info ( 'Custom message' ); $logger -> info ( print_r ( $object -> getData (), true )); for Magento 2.4.2 or after version use this :  $writer = new \Laminas\Log\Writer\Stream (BP . '/var/log/custom.log' ); $logger = new \Laminas\Log\Logger (); $logger -> addWriter ( $writer ); $logger -> info ( 'text message' ); $logger -> info ( print_r ( $object -> getData (), true )); for Magento 2.4.3 version use this $writer = new \Zend_Log_Writer_Stream (BP . '/var/log/custom.log' ); $logger = new \Zend_Log (); $logger -> addWriter ( $writer ); $logger -> info ( 'text message' ); $logger -> info ( print_r ( $object -> getData (), true )); Or you can try this : f...

Magento 2 Search Programatically

public function getSearchedProductIds($searchTerm){ //$searchTerm = "UKF8001"; $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $searchCriteriaBuilder = $objectManager->create('Magento\Framework\Api\Search\SearchCriteriaFactory'); $filterBuilder = $objectManager->create('Magento\Framework\Api\FilterBuilder'); $filterGroupBuilder = $objectManager->create('Magento\Framework\Api\Search\FilterGroupBuilder'); $searchInterface = $objectManager->create('Magento\Framework\Api\Search\SearchInterface'); $sortOrder = $objectManager->create('Magento\Framework\Api\SortOrder'); $search_criteria = $searchCriteriaBuilder->create(); $search_criteria->setRequestName("quick_search_container"); $filter = $filterBuilder->setField('search_term') ->setValue($searchTerm) ->setConditionType("like") ->create(); $filterGroup = $filterGroupB...

TO Execute Multiple Raw Query In Magento 2

<?php         /*          *          * TO Execute Multiple Raw Query In Magento 2          *          * */ $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); $resource = $objectManager->get('Magento\Framework\App\ResourceConnection'); $conn = $resource->getConnection('write'); $sqlScript = file($sqlFile); $query = ''; foreach ($sqlScript as $line) { $startWith = substr(trim($line), 0 ,2); $endWith = substr(trim($line), -1 ,1); if (empty($line) || $startWith == '--' || $startWith == '/*' || $startWith == '//') continue; $query = $query . $line; if ($endWith == ';') { $conn->query($query); $query= ''; } } echo '<div class="success-response sql-import-response">SQL file imported successfully</div>';