10
10
use Magento \Customer \Model \AddressFactory ;
11
11
use Magento \Customer \Model \Customer ;
12
12
use Magento \Customer \Model \CustomerFactory ;
13
+ use Magento \Directory \Model \ResourceModel \Region \CollectionFactory as RegionCollectionFactory ;
14
+ use Magento \Framework \App \ObjectManager ;
13
15
use Magento \Store \Model \StoreManagerInterface ;
14
16
15
17
/**
@@ -32,19 +34,29 @@ class CustomerTemplateGenerator implements TemplateEntityGeneratorInterface
32
34
*/
33
35
private $ storeManager ;
34
36
37
+ /**
38
+ * @var RegionCollectionFactory
39
+ */
40
+ private $ regionsCollectionFactory ;
41
+
35
42
/**
36
43
* @param CustomerFactory $customerFactory
37
44
* @param AddressFactory $addressFactory
38
45
* @param StoreManagerInterface $storeManager
46
+ * @param RegionCollectionFactory|null $regionsCollectionFactory
39
47
*/
40
48
public function __construct (
41
49
CustomerFactory $ customerFactory ,
42
50
AddressFactory $ addressFactory ,
43
- StoreManagerInterface $ storeManager
51
+ StoreManagerInterface $ storeManager ,
52
+ RegionCollectionFactory $ regionsCollectionFactory = null
44
53
) {
45
54
$ this ->customerFactory = $ customerFactory ;
46
55
$ this ->addressFactory = $ addressFactory ;
47
56
$ this ->storeManager = $ storeManager ;
57
+ $ this ->regionsCollectionFactory = $ regionsCollectionFactory ?: ObjectManager::getInstance ()->get (
58
+ RegionCollectionFactory::class
59
+ );
48
60
}
49
61
50
62
/**
@@ -119,7 +131,7 @@ private function getAddressTemplate($customerId)
119
131
'street ' => 'Green str, 67 ' ,
120
132
'lastname ' => 'Smith ' ,
121
133
'firstname ' => 'John ' ,
122
- 'region_id ' => 1 ,
134
+ 'region_id ' => $ this -> getFirstRegionId () ,
123
135
'fax ' => '04040404 ' ,
124
136
'middlename ' => '' ,
125
137
'prefix ' => '' ,
@@ -131,4 +143,18 @@ private function getAddressTemplate($customerId)
131
143
]
132
144
]);
133
145
}
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
+ }
134
160
}
0 commit comments