Skip to content

Instantly share code, notes, and snippets.

@cdiacon
Last active October 10, 2023 14:34
Show Gist options
  • Save cdiacon/cac58236971a5b1bcf5a594f680c920e to your computer and use it in GitHub Desktop.
Save cdiacon/cac58236971a5b1bcf5a594f680c920e to your computer and use it in GitHub Desktop.
dummy subscribers M2
<?php
require_once '../vendor/fzaninotto/faker/src/autoload.php';
use \Magento\Framework\App\Bootstrap;
include('../app/bootstrap.php');
$NUMBER_TO_GENERATE = 10000;
$html_bootstrap = Bootstrap::create(BP, $_SERVER);
$set_objectManager = $html_bootstrap->getObjectManager();
$faker = Faker\Factory::create();
$obj_url = \Magento\Framework\App\ObjectManager::getInstance();
$set_storeManager = $obj_url->get('\Magento\Store\Model\StoreManagerInterface');
$get_mediaurl = $set_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA);
$get_state = $set_objectManager->get('\Magento\Framework\App\State');
$get_state->setAreaCode('frontend');
// Customer Factory to Create Customer
$get_customerFactory = $set_objectManager->get('\Magento\Customer\Model\CustomerFactory');
$subscriberFactory = $set_objectManager->get('\Magento\Newsletter\Model\SubscriberFactory');
$websiteId = $set_storeManager->getWebsite()->getWebsiteId();
/// Get Store ID
$store = $set_storeManager->getStore();
$storeId = $store->getStoreId();
$subscriber = $subscriberFactory->create();
for($i = 0; $i < $NUMBER_TO_GENERATE ; $i++) {
// Instantiate object (this is the most important part)
$customer = $get_customerFactory->create();
$customer->setWebsiteId($websiteId);
// set user details
$setFirstname = $faker->name; // add First name
$setLastname = $faker->lastName; // add Last name
$setEmail = $faker->safeEmail; // add Email id
$setPassword = $faker->password; // add password
// Preparing data for new customer
$customer->setEmail($setEmail);
$customer->setFirstname($setFirstname);
$customer->setLastname($setLastname);
$customer->setPassword($setPassword);
// set user location details
$setPostcode = $faker->postcode; // add Post code
$setCity = $faker->city; // add city of user
$setRegion = "New South Wales";
$setTelephone = $faker->phoneNumber;
$setFax = $faker->phoneNumber;
$setCompany = $faker->company;
$setStreet = $faker->streetName;
try{
// Save data
$customer->save();
// Add Address For created customer
$object_addres = $set_objectManager->get('\Magento\Customer\Model\AddressFactory');
$set_address = $object_addres->create();
$set_address->setCustomerId($customer->getId())
->setFirstname($setFirstname)
->setLastname($setLastname)
->setCountryId('AT')
// if country is USA theen need add state/province
//->setRegionId('1')
->setPostcode($setPostcode)
->setCity($setCity)
->setTelephone($setTelephone)
->setFax($setFax)
->setCompany('GMI')
->setStreet($setStreet)
->setIsDefaultBilling('1')
->setIsDefaultShipping('1')
->setSaveInAddressBook('1');
/** @var \Magento\Newsletter\Model\Subscriber $subscriber */
$subscriber = $subscriberFactory->create();
$subscriber->setStoreId($storeId)
->setCustomerId($customer->getId())
->setSubscriberEmail($setEmail)
->setSubscriberStatus(\Magento\Newsletter\Model\Subscriber::STATUS_SUBSCRIBED)
->save();
} catch(Exception $exception)
{
// error message
print_r($exception->getMessage());
}
echo 'Succesfully Saved, customer : ' . $customer->getEmail() . PHP_EOL;
}
@cdiacon
Copy link
Author

cdiacon commented Feb 20, 2017

composer require fzaninotto/faker

@adeelq
Copy link

adeelq commented Feb 21, 2017

nice one

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