display all customers using console command magento2.2.3












2















How to display registered customers in terminal using custom console command?Can anyone please help me out.










share|improve this question





























    2















    How to display registered customers in terminal using custom console command?Can anyone please help me out.










    share|improve this question



























      2












      2








      2








      How to display registered customers in terminal using custom console command?Can anyone please help me out.










      share|improve this question
















      How to display registered customers in terminal using custom console command?Can anyone please help me out.







      magento2.2.3 cli






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Dec 18 '18 at 5:45









      Purushotam Sharma

      8551729




      8551729










      asked Dec 17 '18 at 7:38









      Vishali MariappanVishali Mariappan

      10911




      10911






















          2 Answers
          2






          active

          oldest

          votes


















          4














          First, you need to create di.xml in your customer module(I am assuming that you already know how to create a module)



          app/code/VENDOR/MODULE/etc/di.xml



          <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
          <type name="MagentoFrameworkConsoleCommandList">
          <arguments>
          <argument name="commands" xsi:type="array">
          <item name="registered_customer_list" xsi:type="object">VENDORMODULEConsoleCommandGetRegisteredCustomerList</item>
          </argument>
          </arguments>
          </type>
          </config>


          Now you need to create GetRegisteredCustomerList.php



          app/code/VENDOR/MODULE/Console/Command/GetRegisteredCustomerList.php



          <?php

          namespace VendorMODULEConsoleCommand;

          use SymfonyComponentConsoleCommandCommand;
          use SymfonyComponentConsoleInputInputInterface;
          use SymfonyComponentConsoleOutputOutputInterface;
          use MagentoCustomerModelResourceModelCustomerCollectionFactory;


          class GetRegisteredCustomerList extends Command
          {
          const COMMAND = 'customer:list';


          private $customerCollectionFactory;


          public function __construct(
          CollectionFactory $customerCollectionFactory
          )
          {
          parent::__construct();

          $this->customerCollectionFactory = $customerCollectionFactory;
          }

          /**
          * @inheritdoc
          */
          protected function configure()
          {
          $this->setName(self::COMMAND);
          $desc = 'Registered customers list';
          $this->setDescription($desc);
          }


          protected function execute(InputInterface $input, OutputInterface $output)
          {
          try {
          $table = $this->getHelperSet()->get('table');
          $table->setHeaders(['ID', 'Website ID', 'Group ID', 'First Name', 'Last Name', 'Email']);

          $customerCollection = $this->customerCollectionFactory->create();
          foreach ($customerCollection as $customer) {
          $table->addRow([
          $customer->getData('entity_id'),
          $customer->getData('website_id'),
          $customer->getData('group_id'),
          $customer->getData('firstname'),
          $customer->getData('lastname'),
          $customer->getData('email'),
          ]);
          }

          $table->render($output);
          } catch (Exception $e) {
          $output->writeln("<error>Error executing command: {$e->getMessage()}</error>");
          }
          }
          }


          Now you need to execute the php bin/magento setup:di:compile command from the magento root directory



          and php bin/magento cache:clean



          And now you can get your registered customer list by executing below command,



          php bin/magento customer:list



          it will print something like this,



          $ php bin/magento customer:list
          +----+------------+----------+------------+-----------+------------------------------+
          | ID | Website ID | Group ID | First Name | Last Name | Email |
          +----+------------+----------+------------+-----------+------------------------------+
          | 1 | 1 | 1 | Keyur | Shah1 | keyurtest@gmail.com |
          | 2 | 1 | 1 | Keyur | Shah | keyur@gmail.com |
          | 3 | 1 | 1 | Keyur | Shah | keyurdemo@gmail.com |
          | 4 | 1 | 1 | Keyur | Shah | demo@gmail.com |
          | 5 | 1 | 1 | Keyur | Shah | test@gmail.com |
          +----+------------+----------+------------+-----------+------------------------------+





          share|improve this answer































            3














            You can add your own commands for listing customers:



            add your command class through di.



            <type name="MagentoFrameworkConsoleCommandListInterface">
            <arguments>
            <argument name="commands" xsi:type="array">
            <item name="customersList" xsi:type="object">ComapanyModuleNameConsoleCommandCustomersList</item>
            </argument>
            </arguments>
            </type>


            Create your class. Take help from magento created command classes. Here i create class from MagentoCatalogConsoleCommandProductAttributesCleanUp



            <?php

            namespace ComapanyModuleNameConsoleCommand;

            use SymfonyComponentConsoleInputInputInterface;
            use SymfonyComponentConsoleOutputOutputInterface;

            /**
            * Class ProductAttributesCleanUp
            * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
            */
            class CustomersList extends SymfonyComponentConsoleCommandCommand
            {

            /**
            * @var MagentoFrameworkAppState
            */
            protected $appState;

            /**
            * @var MagentoCustomerModelResourceModelCustomerCollectionFactory
            */
            protected $customerCollectionFactory;


            /**
            * @param MagentoFrameworkAppState $appState
            * @param MagentoCustomerModelResourceModelCustomerCollectionFactory
            */
            public function __construct(
            MagentoFrameworkAppState $appState,
            MagentoCustomerModelResourceModelCustomerCollectionFactory $customerCollectionFactory

            ) {
            $this->appState = $appState;
            $this->customerCollectionFactory = $customerCollectionFactory;
            parent::__construct();
            }

            /**
            * {@inheritdoc}
            */
            protected function configure()
            {
            $this->setName('customers:list');
            $this->setDescription('List All Customers.');
            }

            /**
            * {@inheritdoc}
            */
            protected function execute(InputInterface $input, OutputInterface $output)
            {
            $output->setDecorated(true);
            $this->appState->setAreaCode(MagentoFrameworkAppArea::AREA_GLOBAL);


            $output->writeln("");
            $collection =$this->customerCollectionFactory->create();
            $output->writeln("<info>Customers:</info>");
            foreach ($collection as $customer) {
            $output->writeln("<comment> ".$customer->getEmail()." </comment>");
            }


            return MagentoFrameworkConsoleCli::RETURN_SUCCESS;

            }


            }





            share|improve this answer


























            • [SymfonyComponentConsoleExceptionCommandNotFoundException] There are no commands defined in the "customers" namespace. Did you mean one of these? customer customer:hash

              – Vishali Mariappan
              Dec 17 '18 at 8:17











            • missed to update the name of command ,now updated my post name="customersList" . after making changes run setup:upgrade and cache:flush command

              – satya prakash patel
              Dec 17 '18 at 9:05











            • yes, check the updated post, it will display the email of all customers . you can update it according to your need.

              – satya prakash patel
              Dec 17 '18 at 9:16











            • Argument 2 passed to CodemTimeslotConsoleCommandCustomersList::__construct() must be an instance of MagentoCustomerModelResourceModelCustomerCollectionFactory, none given, called in /Library/WebServer/Documents/magento/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 111 and defined in /Library/WebServer/Documents/magento/app/code/Codem/Timeslot/Console/Command/CustomersList.php on line 30...This error appears

              – Vishali Mariappan
              Dec 17 '18 at 9:22











            • clean your generated directory and try cache flush

              – satya prakash patel
              Dec 17 '18 at 9:24













            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "479"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f254839%2fdisplay-all-customers-using-console-command-magento2-2-3%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            4














            First, you need to create di.xml in your customer module(I am assuming that you already know how to create a module)



            app/code/VENDOR/MODULE/etc/di.xml



            <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
            <type name="MagentoFrameworkConsoleCommandList">
            <arguments>
            <argument name="commands" xsi:type="array">
            <item name="registered_customer_list" xsi:type="object">VENDORMODULEConsoleCommandGetRegisteredCustomerList</item>
            </argument>
            </arguments>
            </type>
            </config>


            Now you need to create GetRegisteredCustomerList.php



            app/code/VENDOR/MODULE/Console/Command/GetRegisteredCustomerList.php



            <?php

            namespace VendorMODULEConsoleCommand;

            use SymfonyComponentConsoleCommandCommand;
            use SymfonyComponentConsoleInputInputInterface;
            use SymfonyComponentConsoleOutputOutputInterface;
            use MagentoCustomerModelResourceModelCustomerCollectionFactory;


            class GetRegisteredCustomerList extends Command
            {
            const COMMAND = 'customer:list';


            private $customerCollectionFactory;


            public function __construct(
            CollectionFactory $customerCollectionFactory
            )
            {
            parent::__construct();

            $this->customerCollectionFactory = $customerCollectionFactory;
            }

            /**
            * @inheritdoc
            */
            protected function configure()
            {
            $this->setName(self::COMMAND);
            $desc = 'Registered customers list';
            $this->setDescription($desc);
            }


            protected function execute(InputInterface $input, OutputInterface $output)
            {
            try {
            $table = $this->getHelperSet()->get('table');
            $table->setHeaders(['ID', 'Website ID', 'Group ID', 'First Name', 'Last Name', 'Email']);

            $customerCollection = $this->customerCollectionFactory->create();
            foreach ($customerCollection as $customer) {
            $table->addRow([
            $customer->getData('entity_id'),
            $customer->getData('website_id'),
            $customer->getData('group_id'),
            $customer->getData('firstname'),
            $customer->getData('lastname'),
            $customer->getData('email'),
            ]);
            }

            $table->render($output);
            } catch (Exception $e) {
            $output->writeln("<error>Error executing command: {$e->getMessage()}</error>");
            }
            }
            }


            Now you need to execute the php bin/magento setup:di:compile command from the magento root directory



            and php bin/magento cache:clean



            And now you can get your registered customer list by executing below command,



            php bin/magento customer:list



            it will print something like this,



            $ php bin/magento customer:list
            +----+------------+----------+------------+-----------+------------------------------+
            | ID | Website ID | Group ID | First Name | Last Name | Email |
            +----+------------+----------+------------+-----------+------------------------------+
            | 1 | 1 | 1 | Keyur | Shah1 | keyurtest@gmail.com |
            | 2 | 1 | 1 | Keyur | Shah | keyur@gmail.com |
            | 3 | 1 | 1 | Keyur | Shah | keyurdemo@gmail.com |
            | 4 | 1 | 1 | Keyur | Shah | demo@gmail.com |
            | 5 | 1 | 1 | Keyur | Shah | test@gmail.com |
            +----+------------+----------+------------+-----------+------------------------------+





            share|improve this answer




























              4














              First, you need to create di.xml in your customer module(I am assuming that you already know how to create a module)



              app/code/VENDOR/MODULE/etc/di.xml



              <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
              <type name="MagentoFrameworkConsoleCommandList">
              <arguments>
              <argument name="commands" xsi:type="array">
              <item name="registered_customer_list" xsi:type="object">VENDORMODULEConsoleCommandGetRegisteredCustomerList</item>
              </argument>
              </arguments>
              </type>
              </config>


              Now you need to create GetRegisteredCustomerList.php



              app/code/VENDOR/MODULE/Console/Command/GetRegisteredCustomerList.php



              <?php

              namespace VendorMODULEConsoleCommand;

              use SymfonyComponentConsoleCommandCommand;
              use SymfonyComponentConsoleInputInputInterface;
              use SymfonyComponentConsoleOutputOutputInterface;
              use MagentoCustomerModelResourceModelCustomerCollectionFactory;


              class GetRegisteredCustomerList extends Command
              {
              const COMMAND = 'customer:list';


              private $customerCollectionFactory;


              public function __construct(
              CollectionFactory $customerCollectionFactory
              )
              {
              parent::__construct();

              $this->customerCollectionFactory = $customerCollectionFactory;
              }

              /**
              * @inheritdoc
              */
              protected function configure()
              {
              $this->setName(self::COMMAND);
              $desc = 'Registered customers list';
              $this->setDescription($desc);
              }


              protected function execute(InputInterface $input, OutputInterface $output)
              {
              try {
              $table = $this->getHelperSet()->get('table');
              $table->setHeaders(['ID', 'Website ID', 'Group ID', 'First Name', 'Last Name', 'Email']);

              $customerCollection = $this->customerCollectionFactory->create();
              foreach ($customerCollection as $customer) {
              $table->addRow([
              $customer->getData('entity_id'),
              $customer->getData('website_id'),
              $customer->getData('group_id'),
              $customer->getData('firstname'),
              $customer->getData('lastname'),
              $customer->getData('email'),
              ]);
              }

              $table->render($output);
              } catch (Exception $e) {
              $output->writeln("<error>Error executing command: {$e->getMessage()}</error>");
              }
              }
              }


              Now you need to execute the php bin/magento setup:di:compile command from the magento root directory



              and php bin/magento cache:clean



              And now you can get your registered customer list by executing below command,



              php bin/magento customer:list



              it will print something like this,



              $ php bin/magento customer:list
              +----+------------+----------+------------+-----------+------------------------------+
              | ID | Website ID | Group ID | First Name | Last Name | Email |
              +----+------------+----------+------------+-----------+------------------------------+
              | 1 | 1 | 1 | Keyur | Shah1 | keyurtest@gmail.com |
              | 2 | 1 | 1 | Keyur | Shah | keyur@gmail.com |
              | 3 | 1 | 1 | Keyur | Shah | keyurdemo@gmail.com |
              | 4 | 1 | 1 | Keyur | Shah | demo@gmail.com |
              | 5 | 1 | 1 | Keyur | Shah | test@gmail.com |
              +----+------------+----------+------------+-----------+------------------------------+





              share|improve this answer


























                4












                4








                4







                First, you need to create di.xml in your customer module(I am assuming that you already know how to create a module)



                app/code/VENDOR/MODULE/etc/di.xml



                <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
                <type name="MagentoFrameworkConsoleCommandList">
                <arguments>
                <argument name="commands" xsi:type="array">
                <item name="registered_customer_list" xsi:type="object">VENDORMODULEConsoleCommandGetRegisteredCustomerList</item>
                </argument>
                </arguments>
                </type>
                </config>


                Now you need to create GetRegisteredCustomerList.php



                app/code/VENDOR/MODULE/Console/Command/GetRegisteredCustomerList.php



                <?php

                namespace VendorMODULEConsoleCommand;

                use SymfonyComponentConsoleCommandCommand;
                use SymfonyComponentConsoleInputInputInterface;
                use SymfonyComponentConsoleOutputOutputInterface;
                use MagentoCustomerModelResourceModelCustomerCollectionFactory;


                class GetRegisteredCustomerList extends Command
                {
                const COMMAND = 'customer:list';


                private $customerCollectionFactory;


                public function __construct(
                CollectionFactory $customerCollectionFactory
                )
                {
                parent::__construct();

                $this->customerCollectionFactory = $customerCollectionFactory;
                }

                /**
                * @inheritdoc
                */
                protected function configure()
                {
                $this->setName(self::COMMAND);
                $desc = 'Registered customers list';
                $this->setDescription($desc);
                }


                protected function execute(InputInterface $input, OutputInterface $output)
                {
                try {
                $table = $this->getHelperSet()->get('table');
                $table->setHeaders(['ID', 'Website ID', 'Group ID', 'First Name', 'Last Name', 'Email']);

                $customerCollection = $this->customerCollectionFactory->create();
                foreach ($customerCollection as $customer) {
                $table->addRow([
                $customer->getData('entity_id'),
                $customer->getData('website_id'),
                $customer->getData('group_id'),
                $customer->getData('firstname'),
                $customer->getData('lastname'),
                $customer->getData('email'),
                ]);
                }

                $table->render($output);
                } catch (Exception $e) {
                $output->writeln("<error>Error executing command: {$e->getMessage()}</error>");
                }
                }
                }


                Now you need to execute the php bin/magento setup:di:compile command from the magento root directory



                and php bin/magento cache:clean



                And now you can get your registered customer list by executing below command,



                php bin/magento customer:list



                it will print something like this,



                $ php bin/magento customer:list
                +----+------------+----------+------------+-----------+------------------------------+
                | ID | Website ID | Group ID | First Name | Last Name | Email |
                +----+------------+----------+------------+-----------+------------------------------+
                | 1 | 1 | 1 | Keyur | Shah1 | keyurtest@gmail.com |
                | 2 | 1 | 1 | Keyur | Shah | keyur@gmail.com |
                | 3 | 1 | 1 | Keyur | Shah | keyurdemo@gmail.com |
                | 4 | 1 | 1 | Keyur | Shah | demo@gmail.com |
                | 5 | 1 | 1 | Keyur | Shah | test@gmail.com |
                +----+------------+----------+------------+-----------+------------------------------+





                share|improve this answer













                First, you need to create di.xml in your customer module(I am assuming that you already know how to create a module)



                app/code/VENDOR/MODULE/etc/di.xml



                <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
                <type name="MagentoFrameworkConsoleCommandList">
                <arguments>
                <argument name="commands" xsi:type="array">
                <item name="registered_customer_list" xsi:type="object">VENDORMODULEConsoleCommandGetRegisteredCustomerList</item>
                </argument>
                </arguments>
                </type>
                </config>


                Now you need to create GetRegisteredCustomerList.php



                app/code/VENDOR/MODULE/Console/Command/GetRegisteredCustomerList.php



                <?php

                namespace VendorMODULEConsoleCommand;

                use SymfonyComponentConsoleCommandCommand;
                use SymfonyComponentConsoleInputInputInterface;
                use SymfonyComponentConsoleOutputOutputInterface;
                use MagentoCustomerModelResourceModelCustomerCollectionFactory;


                class GetRegisteredCustomerList extends Command
                {
                const COMMAND = 'customer:list';


                private $customerCollectionFactory;


                public function __construct(
                CollectionFactory $customerCollectionFactory
                )
                {
                parent::__construct();

                $this->customerCollectionFactory = $customerCollectionFactory;
                }

                /**
                * @inheritdoc
                */
                protected function configure()
                {
                $this->setName(self::COMMAND);
                $desc = 'Registered customers list';
                $this->setDescription($desc);
                }


                protected function execute(InputInterface $input, OutputInterface $output)
                {
                try {
                $table = $this->getHelperSet()->get('table');
                $table->setHeaders(['ID', 'Website ID', 'Group ID', 'First Name', 'Last Name', 'Email']);

                $customerCollection = $this->customerCollectionFactory->create();
                foreach ($customerCollection as $customer) {
                $table->addRow([
                $customer->getData('entity_id'),
                $customer->getData('website_id'),
                $customer->getData('group_id'),
                $customer->getData('firstname'),
                $customer->getData('lastname'),
                $customer->getData('email'),
                ]);
                }

                $table->render($output);
                } catch (Exception $e) {
                $output->writeln("<error>Error executing command: {$e->getMessage()}</error>");
                }
                }
                }


                Now you need to execute the php bin/magento setup:di:compile command from the magento root directory



                and php bin/magento cache:clean



                And now you can get your registered customer list by executing below command,



                php bin/magento customer:list



                it will print something like this,



                $ php bin/magento customer:list
                +----+------------+----------+------------+-----------+------------------------------+
                | ID | Website ID | Group ID | First Name | Last Name | Email |
                +----+------------+----------+------------+-----------+------------------------------+
                | 1 | 1 | 1 | Keyur | Shah1 | keyurtest@gmail.com |
                | 2 | 1 | 1 | Keyur | Shah | keyur@gmail.com |
                | 3 | 1 | 1 | Keyur | Shah | keyurdemo@gmail.com |
                | 4 | 1 | 1 | Keyur | Shah | demo@gmail.com |
                | 5 | 1 | 1 | Keyur | Shah | test@gmail.com |
                +----+------------+----------+------------+-----------+------------------------------+






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Dec 17 '18 at 9:43









                Keyur ShahKeyur Shah

                13.1k23964




                13.1k23964

























                    3














                    You can add your own commands for listing customers:



                    add your command class through di.



                    <type name="MagentoFrameworkConsoleCommandListInterface">
                    <arguments>
                    <argument name="commands" xsi:type="array">
                    <item name="customersList" xsi:type="object">ComapanyModuleNameConsoleCommandCustomersList</item>
                    </argument>
                    </arguments>
                    </type>


                    Create your class. Take help from magento created command classes. Here i create class from MagentoCatalogConsoleCommandProductAttributesCleanUp



                    <?php

                    namespace ComapanyModuleNameConsoleCommand;

                    use SymfonyComponentConsoleInputInputInterface;
                    use SymfonyComponentConsoleOutputOutputInterface;

                    /**
                    * Class ProductAttributesCleanUp
                    * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
                    */
                    class CustomersList extends SymfonyComponentConsoleCommandCommand
                    {

                    /**
                    * @var MagentoFrameworkAppState
                    */
                    protected $appState;

                    /**
                    * @var MagentoCustomerModelResourceModelCustomerCollectionFactory
                    */
                    protected $customerCollectionFactory;


                    /**
                    * @param MagentoFrameworkAppState $appState
                    * @param MagentoCustomerModelResourceModelCustomerCollectionFactory
                    */
                    public function __construct(
                    MagentoFrameworkAppState $appState,
                    MagentoCustomerModelResourceModelCustomerCollectionFactory $customerCollectionFactory

                    ) {
                    $this->appState = $appState;
                    $this->customerCollectionFactory = $customerCollectionFactory;
                    parent::__construct();
                    }

                    /**
                    * {@inheritdoc}
                    */
                    protected function configure()
                    {
                    $this->setName('customers:list');
                    $this->setDescription('List All Customers.');
                    }

                    /**
                    * {@inheritdoc}
                    */
                    protected function execute(InputInterface $input, OutputInterface $output)
                    {
                    $output->setDecorated(true);
                    $this->appState->setAreaCode(MagentoFrameworkAppArea::AREA_GLOBAL);


                    $output->writeln("");
                    $collection =$this->customerCollectionFactory->create();
                    $output->writeln("<info>Customers:</info>");
                    foreach ($collection as $customer) {
                    $output->writeln("<comment> ".$customer->getEmail()." </comment>");
                    }


                    return MagentoFrameworkConsoleCli::RETURN_SUCCESS;

                    }


                    }





                    share|improve this answer


























                    • [SymfonyComponentConsoleExceptionCommandNotFoundException] There are no commands defined in the "customers" namespace. Did you mean one of these? customer customer:hash

                      – Vishali Mariappan
                      Dec 17 '18 at 8:17











                    • missed to update the name of command ,now updated my post name="customersList" . after making changes run setup:upgrade and cache:flush command

                      – satya prakash patel
                      Dec 17 '18 at 9:05











                    • yes, check the updated post, it will display the email of all customers . you can update it according to your need.

                      – satya prakash patel
                      Dec 17 '18 at 9:16











                    • Argument 2 passed to CodemTimeslotConsoleCommandCustomersList::__construct() must be an instance of MagentoCustomerModelResourceModelCustomerCollectionFactory, none given, called in /Library/WebServer/Documents/magento/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 111 and defined in /Library/WebServer/Documents/magento/app/code/Codem/Timeslot/Console/Command/CustomersList.php on line 30...This error appears

                      – Vishali Mariappan
                      Dec 17 '18 at 9:22











                    • clean your generated directory and try cache flush

                      – satya prakash patel
                      Dec 17 '18 at 9:24


















                    3














                    You can add your own commands for listing customers:



                    add your command class through di.



                    <type name="MagentoFrameworkConsoleCommandListInterface">
                    <arguments>
                    <argument name="commands" xsi:type="array">
                    <item name="customersList" xsi:type="object">ComapanyModuleNameConsoleCommandCustomersList</item>
                    </argument>
                    </arguments>
                    </type>


                    Create your class. Take help from magento created command classes. Here i create class from MagentoCatalogConsoleCommandProductAttributesCleanUp



                    <?php

                    namespace ComapanyModuleNameConsoleCommand;

                    use SymfonyComponentConsoleInputInputInterface;
                    use SymfonyComponentConsoleOutputOutputInterface;

                    /**
                    * Class ProductAttributesCleanUp
                    * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
                    */
                    class CustomersList extends SymfonyComponentConsoleCommandCommand
                    {

                    /**
                    * @var MagentoFrameworkAppState
                    */
                    protected $appState;

                    /**
                    * @var MagentoCustomerModelResourceModelCustomerCollectionFactory
                    */
                    protected $customerCollectionFactory;


                    /**
                    * @param MagentoFrameworkAppState $appState
                    * @param MagentoCustomerModelResourceModelCustomerCollectionFactory
                    */
                    public function __construct(
                    MagentoFrameworkAppState $appState,
                    MagentoCustomerModelResourceModelCustomerCollectionFactory $customerCollectionFactory

                    ) {
                    $this->appState = $appState;
                    $this->customerCollectionFactory = $customerCollectionFactory;
                    parent::__construct();
                    }

                    /**
                    * {@inheritdoc}
                    */
                    protected function configure()
                    {
                    $this->setName('customers:list');
                    $this->setDescription('List All Customers.');
                    }

                    /**
                    * {@inheritdoc}
                    */
                    protected function execute(InputInterface $input, OutputInterface $output)
                    {
                    $output->setDecorated(true);
                    $this->appState->setAreaCode(MagentoFrameworkAppArea::AREA_GLOBAL);


                    $output->writeln("");
                    $collection =$this->customerCollectionFactory->create();
                    $output->writeln("<info>Customers:</info>");
                    foreach ($collection as $customer) {
                    $output->writeln("<comment> ".$customer->getEmail()." </comment>");
                    }


                    return MagentoFrameworkConsoleCli::RETURN_SUCCESS;

                    }


                    }





                    share|improve this answer


























                    • [SymfonyComponentConsoleExceptionCommandNotFoundException] There are no commands defined in the "customers" namespace. Did you mean one of these? customer customer:hash

                      – Vishali Mariappan
                      Dec 17 '18 at 8:17











                    • missed to update the name of command ,now updated my post name="customersList" . after making changes run setup:upgrade and cache:flush command

                      – satya prakash patel
                      Dec 17 '18 at 9:05











                    • yes, check the updated post, it will display the email of all customers . you can update it according to your need.

                      – satya prakash patel
                      Dec 17 '18 at 9:16











                    • Argument 2 passed to CodemTimeslotConsoleCommandCustomersList::__construct() must be an instance of MagentoCustomerModelResourceModelCustomerCollectionFactory, none given, called in /Library/WebServer/Documents/magento/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 111 and defined in /Library/WebServer/Documents/magento/app/code/Codem/Timeslot/Console/Command/CustomersList.php on line 30...This error appears

                      – Vishali Mariappan
                      Dec 17 '18 at 9:22











                    • clean your generated directory and try cache flush

                      – satya prakash patel
                      Dec 17 '18 at 9:24
















                    3












                    3








                    3







                    You can add your own commands for listing customers:



                    add your command class through di.



                    <type name="MagentoFrameworkConsoleCommandListInterface">
                    <arguments>
                    <argument name="commands" xsi:type="array">
                    <item name="customersList" xsi:type="object">ComapanyModuleNameConsoleCommandCustomersList</item>
                    </argument>
                    </arguments>
                    </type>


                    Create your class. Take help from magento created command classes. Here i create class from MagentoCatalogConsoleCommandProductAttributesCleanUp



                    <?php

                    namespace ComapanyModuleNameConsoleCommand;

                    use SymfonyComponentConsoleInputInputInterface;
                    use SymfonyComponentConsoleOutputOutputInterface;

                    /**
                    * Class ProductAttributesCleanUp
                    * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
                    */
                    class CustomersList extends SymfonyComponentConsoleCommandCommand
                    {

                    /**
                    * @var MagentoFrameworkAppState
                    */
                    protected $appState;

                    /**
                    * @var MagentoCustomerModelResourceModelCustomerCollectionFactory
                    */
                    protected $customerCollectionFactory;


                    /**
                    * @param MagentoFrameworkAppState $appState
                    * @param MagentoCustomerModelResourceModelCustomerCollectionFactory
                    */
                    public function __construct(
                    MagentoFrameworkAppState $appState,
                    MagentoCustomerModelResourceModelCustomerCollectionFactory $customerCollectionFactory

                    ) {
                    $this->appState = $appState;
                    $this->customerCollectionFactory = $customerCollectionFactory;
                    parent::__construct();
                    }

                    /**
                    * {@inheritdoc}
                    */
                    protected function configure()
                    {
                    $this->setName('customers:list');
                    $this->setDescription('List All Customers.');
                    }

                    /**
                    * {@inheritdoc}
                    */
                    protected function execute(InputInterface $input, OutputInterface $output)
                    {
                    $output->setDecorated(true);
                    $this->appState->setAreaCode(MagentoFrameworkAppArea::AREA_GLOBAL);


                    $output->writeln("");
                    $collection =$this->customerCollectionFactory->create();
                    $output->writeln("<info>Customers:</info>");
                    foreach ($collection as $customer) {
                    $output->writeln("<comment> ".$customer->getEmail()." </comment>");
                    }


                    return MagentoFrameworkConsoleCli::RETURN_SUCCESS;

                    }


                    }





                    share|improve this answer















                    You can add your own commands for listing customers:



                    add your command class through di.



                    <type name="MagentoFrameworkConsoleCommandListInterface">
                    <arguments>
                    <argument name="commands" xsi:type="array">
                    <item name="customersList" xsi:type="object">ComapanyModuleNameConsoleCommandCustomersList</item>
                    </argument>
                    </arguments>
                    </type>


                    Create your class. Take help from magento created command classes. Here i create class from MagentoCatalogConsoleCommandProductAttributesCleanUp



                    <?php

                    namespace ComapanyModuleNameConsoleCommand;

                    use SymfonyComponentConsoleInputInputInterface;
                    use SymfonyComponentConsoleOutputOutputInterface;

                    /**
                    * Class ProductAttributesCleanUp
                    * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
                    */
                    class CustomersList extends SymfonyComponentConsoleCommandCommand
                    {

                    /**
                    * @var MagentoFrameworkAppState
                    */
                    protected $appState;

                    /**
                    * @var MagentoCustomerModelResourceModelCustomerCollectionFactory
                    */
                    protected $customerCollectionFactory;


                    /**
                    * @param MagentoFrameworkAppState $appState
                    * @param MagentoCustomerModelResourceModelCustomerCollectionFactory
                    */
                    public function __construct(
                    MagentoFrameworkAppState $appState,
                    MagentoCustomerModelResourceModelCustomerCollectionFactory $customerCollectionFactory

                    ) {
                    $this->appState = $appState;
                    $this->customerCollectionFactory = $customerCollectionFactory;
                    parent::__construct();
                    }

                    /**
                    * {@inheritdoc}
                    */
                    protected function configure()
                    {
                    $this->setName('customers:list');
                    $this->setDescription('List All Customers.');
                    }

                    /**
                    * {@inheritdoc}
                    */
                    protected function execute(InputInterface $input, OutputInterface $output)
                    {
                    $output->setDecorated(true);
                    $this->appState->setAreaCode(MagentoFrameworkAppArea::AREA_GLOBAL);


                    $output->writeln("");
                    $collection =$this->customerCollectionFactory->create();
                    $output->writeln("<info>Customers:</info>");
                    foreach ($collection as $customer) {
                    $output->writeln("<comment> ".$customer->getEmail()." </comment>");
                    }


                    return MagentoFrameworkConsoleCli::RETURN_SUCCESS;

                    }


                    }






                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Dec 17 '18 at 9:10

























                    answered Dec 17 '18 at 7:55









                    satya prakash patelsatya prakash patel

                    32416




                    32416













                    • [SymfonyComponentConsoleExceptionCommandNotFoundException] There are no commands defined in the "customers" namespace. Did you mean one of these? customer customer:hash

                      – Vishali Mariappan
                      Dec 17 '18 at 8:17











                    • missed to update the name of command ,now updated my post name="customersList" . after making changes run setup:upgrade and cache:flush command

                      – satya prakash patel
                      Dec 17 '18 at 9:05











                    • yes, check the updated post, it will display the email of all customers . you can update it according to your need.

                      – satya prakash patel
                      Dec 17 '18 at 9:16











                    • Argument 2 passed to CodemTimeslotConsoleCommandCustomersList::__construct() must be an instance of MagentoCustomerModelResourceModelCustomerCollectionFactory, none given, called in /Library/WebServer/Documents/magento/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 111 and defined in /Library/WebServer/Documents/magento/app/code/Codem/Timeslot/Console/Command/CustomersList.php on line 30...This error appears

                      – Vishali Mariappan
                      Dec 17 '18 at 9:22











                    • clean your generated directory and try cache flush

                      – satya prakash patel
                      Dec 17 '18 at 9:24





















                    • [SymfonyComponentConsoleExceptionCommandNotFoundException] There are no commands defined in the "customers" namespace. Did you mean one of these? customer customer:hash

                      – Vishali Mariappan
                      Dec 17 '18 at 8:17











                    • missed to update the name of command ,now updated my post name="customersList" . after making changes run setup:upgrade and cache:flush command

                      – satya prakash patel
                      Dec 17 '18 at 9:05











                    • yes, check the updated post, it will display the email of all customers . you can update it according to your need.

                      – satya prakash patel
                      Dec 17 '18 at 9:16











                    • Argument 2 passed to CodemTimeslotConsoleCommandCustomersList::__construct() must be an instance of MagentoCustomerModelResourceModelCustomerCollectionFactory, none given, called in /Library/WebServer/Documents/magento/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 111 and defined in /Library/WebServer/Documents/magento/app/code/Codem/Timeslot/Console/Command/CustomersList.php on line 30...This error appears

                      – Vishali Mariappan
                      Dec 17 '18 at 9:22











                    • clean your generated directory and try cache flush

                      – satya prakash patel
                      Dec 17 '18 at 9:24



















                    [SymfonyComponentConsoleExceptionCommandNotFoundException] There are no commands defined in the "customers" namespace. Did you mean one of these? customer customer:hash

                    – Vishali Mariappan
                    Dec 17 '18 at 8:17





                    [SymfonyComponentConsoleExceptionCommandNotFoundException] There are no commands defined in the "customers" namespace. Did you mean one of these? customer customer:hash

                    – Vishali Mariappan
                    Dec 17 '18 at 8:17













                    missed to update the name of command ,now updated my post name="customersList" . after making changes run setup:upgrade and cache:flush command

                    – satya prakash patel
                    Dec 17 '18 at 9:05





                    missed to update the name of command ,now updated my post name="customersList" . after making changes run setup:upgrade and cache:flush command

                    – satya prakash patel
                    Dec 17 '18 at 9:05













                    yes, check the updated post, it will display the email of all customers . you can update it according to your need.

                    – satya prakash patel
                    Dec 17 '18 at 9:16





                    yes, check the updated post, it will display the email of all customers . you can update it according to your need.

                    – satya prakash patel
                    Dec 17 '18 at 9:16













                    Argument 2 passed to CodemTimeslotConsoleCommandCustomersList::__construct() must be an instance of MagentoCustomerModelResourceModelCustomerCollectionFactory, none given, called in /Library/WebServer/Documents/magento/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 111 and defined in /Library/WebServer/Documents/magento/app/code/Codem/Timeslot/Console/Command/CustomersList.php on line 30...This error appears

                    – Vishali Mariappan
                    Dec 17 '18 at 9:22





                    Argument 2 passed to CodemTimeslotConsoleCommandCustomersList::__construct() must be an instance of MagentoCustomerModelResourceModelCustomerCollectionFactory, none given, called in /Library/WebServer/Documents/magento/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 111 and defined in /Library/WebServer/Documents/magento/app/code/Codem/Timeslot/Console/Command/CustomersList.php on line 30...This error appears

                    – Vishali Mariappan
                    Dec 17 '18 at 9:22













                    clean your generated directory and try cache flush

                    – satya prakash patel
                    Dec 17 '18 at 9:24







                    clean your generated directory and try cache flush

                    – satya prakash patel
                    Dec 17 '18 at 9:24




















                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Magento Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmagento.stackexchange.com%2fquestions%2f254839%2fdisplay-all-customers-using-console-command-magento2-2-3%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Le Mesnil-Réaume

                    Ida-Boy-Ed-Garten

                    web3.py web3.isConnected() returns false always