Instantly share code, notes, and snippets.

What would you like to do?
Magento 1 Customer Delete Shell Class
require_once 'abstract.php';
class Mage_Shell_Customer extends Mage_Shell_Abstract
* Run script
public function run()
$collection = Mage::getModel('customer/customer')->getCollection()
if (!$this->getArg('delete') && !$this->getArg('print')) {
printf("ERROR: Either --delete or --print must be specified\n");
if ($name = $this->getArg('firstname'))
$collection->addAttributeToFilter('firstname', array('like' => $name));
if ($name = $this->getArg('lastname'))
$collection->addAttributeToFilter('lastname', array('like' => $name));
if ($email = $this->getArg('email'))
$collection->addAttributeToFilter('email', array('like' => $email));
foreach ($collection as $item) {
if ($this->getArg('delete')) {
printf("Deleting ID:%s\n", $item->getId());
} else {
str_pad($item->getFirstname() . $item->getLastname(), 50),
* Retrieve Usage Help Message
public function usageHelp()
return <<<USAGE
Usage: php -f customer.php -- [options]
--firstname Filter by first name
--lastname Filter by last name
--email Filter by email
--delete Delete matching users
--print Display matching users
$customer = new Mage_Shell_Customer();

This comment has been minimized.

Copy link

mehdichaouch commented Sep 26, 2018

Cleaning up created users

Once you've got your mechanisms in place to help prevent further SPAM registrations, its time to clean up the records created. Use this quick shell script for Magento that you can download.

  1. Download the gist to the Magento shell directory
    wget --no-check-certificate -qO shell/customer.php

  2. Execute the script in dry run (print only) using matching data you observed in the Magento admin "Manage customers" pane,
    php shell/customer.php --lastname "" --print

  3. After reviewing the results, re-run the command with the delete option
    php shell/customer.php --lastname "" --delete


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment