Skip to content

Commit 559edab

Browse files
ENGCOM-8805: [Sales] Fixed order address retriever for prevent populating data from shipping to billing #32187
- Merge Pull Request #32187 from Den4ik/magento2:fix-order-billing-address-view#31608 - Merged commits: 1. bc33796 2. 94b34b9 3. dc5ecb8 4. b066cea 5. 02a792f 6. ce458ae 7. 9d9104e 8. a377151 9. d78e9f8 10. 67ab661 11. 2bcdb1e
2 parents 2e2af0a + 2bcdb1e commit 559edab

10 files changed

+129
-17
lines changed

app/code/Magento/Customer/Test/Mftf/Data/AddressData.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,4 +379,10 @@
379379
<data key="postcode">6690</data>
380380
<data key="telephone">0477-58-77867</data>
381381
</entity>
382+
<entity name="UK_With_State_Default_Billing" extends="UK_Not_Default_Address">
383+
<requiredEntity type="region">RegionUKGL</requiredEntity>
384+
<data key="country">United Kingdom</data>
385+
<data key="state">Greater London</data>
386+
<data key="default_billing">Yes</data>
387+
</entity>
382388
</entities>

app/code/Magento/Customer/Test/Mftf/Data/CustomerData.xml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
-->
88

99
<entities xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10-
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:DataGenerator/etc/dataProfileSchema.xsd">
1111
<entity name="CustomerEntityOne" type="customer">
1212
<data key="group_id">1</data>
1313
<data key="default_billing">defaultBillingValue</data>
@@ -72,10 +72,10 @@
7272
<data key="store_id">0</data>
7373
<data key="website_id">0</data>
7474
<requiredEntity type="address">US_Address_TX</requiredEntity>
75-
<var entityType="customerGroup" entityKey="id" key="group_id" />
75+
<var entityType="customerGroup" entityKey="id" key="group_id"/>
7676
</entity>
7777
<entity name="UsCustomerAssignedToNewCustomerGroup" type="customer">
78-
<var key="group_id" entityKey="id" entityType="customerGroup" />
78+
<var key="group_id" entityKey="id" entityType="customerGroup"/>
7979
<data key="default_billing">true</data>
8080
<data key="default_shipping">true</data>
8181
<data key="email" unique="prefix">[email protected]</data>
@@ -398,4 +398,9 @@
398398
<requiredEntity type="address">US_Address_CA</requiredEntity>
399399
<requiredEntity type="address">US_Address_NY_Not_Default_Address</requiredEntity>
400400
</entity>
401+
<entity name="Customer_UK_US" type="customer" extends="Simple_GB_Customer">
402+
<data key="country">United Kingdom</data>
403+
<requiredEntity type="address">UK_With_State_Default_Billing</requiredEntity>
404+
<requiredEntity type="address">US_Address_NY_Default_Shipping</requiredEntity>
405+
</entity>
401406
</entities>

app/code/Magento/Customer/Test/Mftf/Data/RegionData.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,7 @@
3737
<data key="region_code">AFE</data>
3838
<data key="region_id">9</data>
3939
</entity>
40+
<entity name="RegionUKGL" type="region">
41+
<data key="region">Greater London</data>
42+
</entity>
4043
</entities>

app/code/Magento/LoginAsCustomer/Test/Mftf/Page/AdminLoginAsCustomerLogPage.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
-->
88

99
<pages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10-
xsi:noNamespaceSchemaLocation="urn:magento:mftf:/Page/etc/PageObject.xsd">
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/PageObject.xsd">
1111
<page name="AdminLoginAsCustomerLogPage" url="loginascustomer_log/log/index/" area="admin" module="Magento_LoginAsCustomer">
1212
<section name="AdminLoginAsCustomerLogToolbarSection"/>
1313
<section name="AdminLoginAsCustomerLogFiltersSection"/>

app/code/Magento/LoginAsCustomer/Test/Mftf/Page/AdminLoginAsCustomerLoginManualPage.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
-->
88

99
<pages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10-
xsi:noNamespaceSchemaLocation="urn:magento:mftf:/Page/etc/PageObject.xsd">
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/PageObject.xsd">
1111
<page name="AdminLoginAsCustomerLoginManualPage" url="loginascustomer/login/manual/entity_id/{{id}}/"
1212
area="storefront" module="Magento_LoginAsCustomer" parameterized="true">
1313
<section name="AdminLoginAsCustomerLoginManualActionsSection"/>

app/code/Magento/LoginAsCustomer/Test/Mftf/Page/StorefrontLoginAsCustomerLoginProceedPage.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,6 @@
77
-->
88

99
<pages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10-
xsi:noNamespaceSchemaLocation="urn:magento:mftf:/Page/etc/PageObject.xsd">
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Page/etc/PageObject.xsd">
1111
<page name="StorefrontLoginAsCustomerLoginProceedPage" url="loginascustomer/login/proceed" area="storefront" module="Magento_LoginAsCustomer"/>
1212
</pages>

app/code/Magento/Sales/Model/Order.php

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Magento\Config\Model\Config\Source\Nooptreq;
99
use Magento\Directory\Model\Currency;
1010
use Magento\Directory\Model\RegionFactory;
11+
use Magento\Directory\Model\ResourceModel\Region as RegionResource;
1112
use Magento\Framework\Api\AttributeValueFactory;
1213
use Magento\Framework\Api\SearchCriteriaBuilder;
1314
use Magento\Framework\App\Config\ScopeConfigInterface;
@@ -318,6 +319,11 @@ class Order extends AbstractModel implements EntityInterface, OrderInterface
318319
*/
319320
private $regionItems;
320321

322+
/**
323+
* @var RegionResource
324+
*/
325+
private $regionResource;
326+
321327
/**
322328
* @param \Magento\Framework\Model\Context $context
323329
* @param \Magento\Framework\Registry $registry
@@ -343,15 +349,16 @@ class Order extends AbstractModel implements EntityInterface, OrderInterface
343349
* @param ResourceModel\Order\CollectionFactory $salesOrderCollectionFactory
344350
* @param PriceCurrencyInterface $priceCurrency
345351
* @param \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory $productListFactory
346-
* @param \Magento\Framework\Model\ResourceModel\AbstractResource $resource
347-
* @param \Magento\Framework\Data\Collection\AbstractDb $resourceCollection
352+
* @param \Magento\Framework\Model\ResourceModel\AbstractResource|null $resource
353+
* @param \Magento\Framework\Data\Collection\AbstractDb|null $resourceCollection
348354
* @param array $data
349-
* @param ResolverInterface $localeResolver
355+
* @param ResolverInterface|null $localeResolver
350356
* @param ProductOption|null $productOption
351-
* @param OrderItemRepositoryInterface $itemRepository
352-
* @param SearchCriteriaBuilder $searchCriteriaBuilder
353-
* @param ScopeConfigInterface $scopeConfig
354-
* @param RegionFactory $regionFactory
357+
* @param OrderItemRepositoryInterface|null $itemRepository
358+
* @param SearchCriteriaBuilder|null $searchCriteriaBuilder
359+
* @param ScopeConfigInterface|null $scopeConfig
360+
* @param RegionFactory|null $regionFactory
361+
* @param RegionResource|null $regionResource
355362
* @SuppressWarnings(PHPMD.ExcessiveParameterList)
356363
*/
357364
public function __construct(
@@ -387,7 +394,8 @@ public function __construct(
387394
OrderItemRepositoryInterface $itemRepository = null,
388395
SearchCriteriaBuilder $searchCriteriaBuilder = null,
389396
ScopeConfigInterface $scopeConfig = null,
390-
RegionFactory $regionFactory = null
397+
RegionFactory $regionFactory = null,
398+
RegionResource $regionResource = null
391399
) {
392400
$this->_storeManager = $storeManager;
393401
$this->_orderConfig = $orderConfig;
@@ -417,6 +425,7 @@ public function __construct(
417425
->get(SearchCriteriaBuilder::class);
418426
$this->scopeConfig = $scopeConfig ?: ObjectManager::getInstance()->get(ScopeConfigInterface::class);
419427
$this->regionFactory = $regionFactory ?: ObjectManager::getInstance()->get(RegionFactory::class);
428+
$this->regionResource = $regionResource ?: ObjectManager::getInstance()->get(RegionResource::class);
420429
$this->regionItems = [];
421430

422431
parent::__construct(
@@ -1361,7 +1370,6 @@ public function getShippingMethod($asObject = false)
13611370
*/
13621371
public function getAddressesCollection()
13631372
{
1364-
$region = $this->regionFactory->create();
13651373
$collection = $this->_addressCollectionFactory->create()->setOrderFilter($this);
13661374
if ($this->getId()) {
13671375
foreach ($collection as $address) {
@@ -1370,7 +1378,8 @@ public function getAddressesCollection()
13701378
$address->setRegion($this->regionItems[$address->getCountryId()][$address->getRegion()]);
13711379
}
13721380
} else {
1373-
$region->loadByName($address->getRegion(), $address->getCountryId());
1381+
$region = $this->regionFactory->create();
1382+
$this->regionResource->loadByName($region, $address->getRegion(), $address->getCountryId());
13741383
$this->regionItems[$address->getCountryId()][$address->getRegion()] = $region->getName();
13751384
if ($region->getName()) {
13761385
$address->setRegion($region->getName());

app/code/Magento/Sales/Test/Mftf/ActionGroup/AssertOrderAddressInformationActionGroup.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
-->
88

99
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
10-
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
10+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
1111
<actionGroup name="AssertOrderAddressInformationActionGroup" extends="VerifyBasicOrderInformationActionGroup">
1212
<remove keyForRemoval="seeCustomerName"/>
1313
<remove keyForRemoval="seeCustomerEmail"/>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
9+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
10+
<actionGroup name="AssertOrderAddressWithStateInformationActionGroup" extends="VerifyBasicOrderInformationActionGroup">
11+
<remove keyForRemoval="seeCustomerName"/>
12+
<remove keyForRemoval="seeCustomerEmail"/>
13+
<remove keyForRemoval="seeCustomerGroup"/>
14+
<remove keyForRemoval="seeBillingAddressCountry"/>
15+
<remove keyForRemoval="seeShippingAddressCountry"/>
16+
<see selector="{{AdminOrderAddressInformationSection.billingAddress}}" userInput="{{billingAddress.state}}" stepKey="seeBillingAddressState"/>
17+
<see selector="{{AdminOrderAddressInformationSection.shippingAddress}}" userInput="{{shippingAddress.state}}" stepKey="seeShippingAddressState"/>
18+
</actionGroup>
19+
</actionGroups>
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/**
4+
* Copyright © Magento, Inc. All rights reserved.
5+
* See COPYING.txt for license details.
6+
*/
7+
-->
8+
<tests xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/testSchema.xsd">
9+
<test name="StorefrontCreateOrderWithDifferentAddressesTest">
10+
<annotations>
11+
<stories value="Order billing and shipping addresses should show correctly the entered data"/>
12+
<title value="Billing and Shipping addresses should show correct data on Admin Order View"/>
13+
<description value="Place order on Store Front with manually filled billing address state and selected shipping address state. Check that billing address show correct state on Admin Order View page"/>
14+
<severity value="MINOR"/>
15+
<group value="sales"/>
16+
</annotations>
17+
<before>
18+
<createData entity="SimpleProduct2" stepKey="createSimpleProduct"/>
19+
<createData entity="Customer_UK_US" stepKey="createCustomer"/>
20+
</before>
21+
<after>
22+
<deleteData createDataKey="createCustomer" stepKey="deleteCreateCustomer"/>
23+
<deleteData createDataKey="createSimpleProduct" stepKey="deleteSimpleProduct"/>
24+
25+
<actionGroup ref="AdminLogoutActionGroup" stepKey="logout"/>
26+
<actionGroup ref="StorefrontCustomerLogoutActionGroup" stepKey="logoutCustomer"/>
27+
</after>
28+
29+
<actionGroup ref="OpenStoreFrontProductPageActionGroup" stepKey="navigateToProductPage">
30+
<argument name="productUrlKey" value="$createSimpleProduct.custom_attributes[url_key]$"/>
31+
</actionGroup>
32+
33+
<actionGroup ref="StorefrontAddProductToCartActionGroup" stepKey="cartAddSimpleProductToCart">
34+
<argument name="product" value="$$createSimpleProduct$$"/>
35+
<argument name="productCount" value="1"/>
36+
</actionGroup>
37+
38+
<actionGroup ref="GoToCheckoutFromMinicartActionGroup" stepKey="navigateToCheckout"/>
39+
<waitForPageLoad stepKey="waitForPaymentSelectionPageLoad"/>
40+
41+
<actionGroup ref="LoginAsCustomerOnCheckoutPageActionGroup" stepKey="loginAsCustomer">
42+
<argument name="customer" value="$$createCustomer$$"/>
43+
</actionGroup>
44+
45+
<actionGroup ref="StorefrontCheckoutForwardFromShippingStepActionGroup" stepKey="gotoPaymentStep"/>
46+
47+
<actionGroup ref="CheckoutPlaceOrderActionGroup" stepKey="customerPlaceOrder">
48+
<argument name="orderNumberMessage" value="CONST.successCheckoutOrderNumberMessage"/>
49+
<argument name="emailYouMessage" value="CONST.successCheckoutEmailYouMessage"/>
50+
</actionGroup>
51+
52+
<grabTextFrom selector="{{CheckoutSuccessMainSection.orderNumber22}}" stepKey="getOrderNumber"/>
53+
<assertNotEmpty stepKey="assertOrderIdIsNotEmpty" after="getOrderNumber">
54+
<actualResult type="const">$getOrderNumber</actualResult>
55+
</assertNotEmpty>
56+
57+
<actionGroup ref="AdminLoginActionGroup" stepKey="loginAsAdmin"/>
58+
<actionGroup ref="AdminOrdersPageOpenActionGroup" stepKey="goToOrders"/>
59+
<actionGroup ref="OpenOrderByIdActionGroup" stepKey="filterOrderGridById">
60+
<argument name="orderId" value="$getOrderNumber"/>
61+
</actionGroup>
62+
63+
<actionGroup ref="AssertOrderAddressWithStateInformationActionGroup" stepKey="AssertOrderAddressInformation">
64+
<argument name="customer" value=""/>
65+
<argument name="shippingAddress" value="US_Address_NY_Default_Shipping"/>
66+
<argument name="billingAddress" value="UK_With_State_Default_Billing"/>
67+
</actionGroup>
68+
<dontSee selector="{{AdminShipmentAddressInformationSection.billingAddress}}" userInput="{{US_Address_NY_Default_Shipping.state}}" stepKey="dontSeeShippingAddressStateAtBillingAddress"/>
69+
</test>
70+
</tests>

0 commit comments

Comments
 (0)