How to Programmatically Set Magento 2 Core Config Data

Ever had to programmatically set Magento 2 core config data? Not only that but afterward, retrieve that new value?

I had to! And, today, I’ll share the method to set core config data programmatically in Magento 2.

I have also added how I managed the enabled cache.

The following interface can be used to achieve that

/vendor/magento/framework/App/Config/Storage/WriterInterface.php

using the following save method

public function save($path, $value, $scope = ScopeConfigInterface::SCOPE_TYPE_DEFAULT, $scopeId = 0);

Additionally, to delete a core config data value you can use the delete method

public function delete($path, $scope = ScopeConfigInterface::SCOPE_TYPE_DEFAULT, $scopeId = 0);

Execute the below code for the solution:

Mehod to programmatically set Magento 2 Core Config Data:

<?php
namespace Vendor_Name\Extension_Name\Helper;
use Magento\Framework\App\Config\Storage\WriterInterface;
use Magento\Framework\App\Config\ScopeConfigInterface;
class Data
{
   protected $configWriter;
   public function __construct(WriterInterface $configWriter) {
       $this->configWriter = $configWriter;
   }
   /**
    * @param $path = 'extension_name/general/data'
    * @param $value = '1'
    */
   public function SetData($path, $value) {
       $this->configWriter->save($path, $value, $scope = ScopeConfigInterface::SCOPE_TYPE_DEFAULT, $scopeId = 0);
   }
}

That’s it.

Thanks.

Table of Contents