@@ -163,15 +163,13 @@ abstract class Base
163
163
*/
164
164
public function __construct ( string $ prefix , array $ values = [] )
165
165
{
166
- parent ::__construct ( $ prefix , $ values );
167
-
168
166
$ this ->customer = $ values ['.customer ' ] ?? null ;
169
167
$ this ->locale = $ values ['.locale ' ];
170
168
$ this ->price = $ values ['.price ' ];
171
169
172
- $ products = $ this -> get ( '.products ' , [] ) ;
170
+ $ products = $ values [ '.products ' ] ?? [] ;
173
171
174
- foreach ( $ this -> get ( '.coupons ' , [] ) as $ coupon )
172
+ foreach ( $ values [ '.coupons ' ] ?? [] as $ coupon )
175
173
{
176
174
if ( !isset ( $ this ->coupons [$ coupon ->getCode ()] ) ) {
177
175
$ this ->coupons [$ coupon ->getCode ()] = [];
@@ -182,21 +180,26 @@ public function __construct( string $prefix, array $values = [] )
182
180
}
183
181
}
184
182
185
- foreach ( $ this -> get ( '.products ' , [] ) as $ product ) {
183
+ foreach ( $ values [ '.products ' ] ?? [] as $ product ) {
186
184
$ this ->products [$ product ->getPosition ()] = $ product ;
187
185
}
188
186
189
- foreach ( $ this -> get ( '.addresses ' , [] ) as $ address ) {
187
+ foreach ( $ values [ '.addresses ' ] ?? [] as $ address ) {
190
188
$ this ->addresses [$ address ->getType ()][] = $ address ;
191
189
}
192
190
193
- foreach ( $ this -> get ( '.services ' , [] ) as $ service ) {
191
+ foreach ($ values [ '.services ' ] ?? [] as $ service ) {
194
192
$ this ->services [$ service ->getType ()][] = $ service ;
195
193
}
196
194
197
- foreach ( $ this -> get ( '.statuses ' , [] ) as $ status ) {
195
+ foreach ( $ values [ '.statuses ' ] ?? [] as $ status ) {
198
196
$ this ->statuses [$ status ->getType ()][$ status ->getValue ()] = $ status ;
199
197
}
198
+
199
+ unset( $ values ['.customer ' ], $ values ['.locale ' ], $ values ['.price ' ], $ values ['.statuses ' ] );
200
+ unset( $ values ['.products ' ], $ values ['.coupons ' ], $ values ['.addresses ' ], $ values ['.services ' ] );
201
+
202
+ parent ::__construct ( $ prefix , $ values );
200
203
}
201
204
202
205
@@ -936,7 +939,7 @@ public function getTaxes() : array
936
939
*/
937
940
public function locale () : \Aimeos \MShop \Locale \Item \Iface
938
941
{
939
- return $ this ->get ( ' . locale' ) ;
942
+ return $ this ->locale ;
940
943
}
941
944
942
945
@@ -950,7 +953,7 @@ public function locale() : \Aimeos\MShop\Locale\Item\Iface
950
953
public function setLocale ( \Aimeos \MShop \Locale \Item \Iface $ locale ) : \Aimeos \MShop \Order \Item \Iface
951
954
{
952
955
$ this ->notify ( 'setLocale.before ' , $ locale );
953
- $ this ->set ( ' . locale' , clone $ locale ) ;
956
+ $ this ->locale = clone $ locale ;
954
957
$ this ->notify ( 'setLocale.after ' , $ locale );
955
958
956
959
return parent ::setModified ();
0 commit comments