1010use Magento \Customer \Model \AddressFactory ;
1111use Magento \Customer \Model \Customer ;
1212use Magento \Customer \Model \CustomerFactory ;
13+ use Magento \Directory \Model \ResourceModel \Region \CollectionFactory as RegionCollectionFactory ;
14+ use Magento \Framework \App \ObjectManager ;
1315use Magento \Store \Model \StoreManagerInterface ;
1416
1517/**
@@ -32,19 +34,29 @@ class CustomerTemplateGenerator implements TemplateEntityGeneratorInterface
3234 */
3335 private $ storeManager ;
3436
37+ /**
38+ * @var RegionCollectionFactory
39+ */
40+ private $ regionsCollectionFactory ;
41+
3542 /**
3643 * @param CustomerFactory $customerFactory
3744 * @param AddressFactory $addressFactory
3845 * @param StoreManagerInterface $storeManager
46+ * @param RegionCollectionFactory|null $regionsCollectionFactory
3947 */
4048 public function __construct (
4149 CustomerFactory $ customerFactory ,
4250 AddressFactory $ addressFactory ,
43- StoreManagerInterface $ storeManager
51+ StoreManagerInterface $ storeManager ,
52+ RegionCollectionFactory $ regionsCollectionFactory = null
4453 ) {
4554 $ this ->customerFactory = $ customerFactory ;
4655 $ this ->addressFactory = $ addressFactory ;
4756 $ this ->storeManager = $ storeManager ;
57+ $ this ->regionsCollectionFactory = $ regionsCollectionFactory ?: ObjectManager::getInstance ()->get (
58+ RegionCollectionFactory::class
59+ );
4860 }
4961
5062 /**
@@ -119,7 +131,7 @@ private function getAddressTemplate($customerId)
119131 'street ' => 'Green str, 67 ' ,
120132 'lastname ' => 'Smith ' ,
121133 'firstname ' => 'John ' ,
122- 'region_id ' => 1 ,
134+ 'region_id ' => $ this -> getFirstRegionId () ,
123135 'fax ' => '04040404 ' ,
124136 'middlename ' => '' ,
125137 'prefix ' => '' ,
@@ -131,4 +143,18 @@ private function getAddressTemplate($customerId)
131143 ]
132144 ]);
133145 }
146+
147+ /**
148+ * Get first region id.
149+ *
150+ * @return mixed
151+ */
152+ private function getFirstRegionId ()
153+ {
154+ $ regionsCollection = $ this ->regionsCollectionFactory ->create ();
155+ $ regionsCollection ->unshiftOrder ('region_id ' , 'ASC ' );
156+ $ region = $ regionsCollection ->getFirstItem ();
157+
158+ return $ region ->getRegionId ();
159+ }
134160}
0 commit comments