Skip to content

Commit 600a047

Browse files
committed
Merge remote-tracking branch 'github-magento/2.3-develop' into EPAM-PR-72
2 parents a4a4327 + 90b9c43 commit 600a047

File tree

148 files changed

+3334
-511
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

148 files changed

+3334
-511
lines changed

.github/CODEOWNERS

Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,206 @@
1+
/app/code/Magento/AdminNotification/ @paliarush
2+
/app/code/Magento/Backend/ @paliarush
3+
/app/code/Magento/User/ @paliarush
4+
/lib/internal/Magento/Framework/App/ @buskamuza
5+
/lib/internal/Magento/Framework/Controller/ @buskamuza
6+
/lib/internal/Magento/Framework/Flag/ @buskamuza
7+
/lib/internal/Magento/Framework/HTTP/ @buskamuza
8+
/lib/internal/Magento/Framework/Logger/ @buskamuza
9+
/lib/internal/Magento/Framework/Message/ @buskamuza
10+
/lib/internal/Magento/Framework/Notification/ @buskamuza
11+
/lib/internal/Magento/Framework/Session/ @buskamuza
12+
/lib/internal/Magento/Framework/Url/ @buskamuza
13+
/app/code/Magento/Cms/ @melnikovi
14+
/app/code/Magento/CmsUrlRewrite/ @melnikovi
15+
/app/code/Magento/Contact/ @melnikovi
16+
/app/code/Magento/Email/ @melnikovi
17+
/app/code/Magento/Variable/ @melnikovi
18+
/app/code/Magento/Widget/ @melnikovi
19+
/lib/internal/Magento/Framework/Cache/ @kokoc
20+
/app/code/Magento/CacheInvalidate/ @kokoc
21+
/app/code/Magento/CatalogInventory/ @tariqjawed83 @maghamed
22+
/app/code/Magento/Bundle/ @akaplya
23+
/app/code/Magento/BundleImportExport/ @akaplya
24+
/app/code/Magento/Catalog/ @akaplya
25+
/app/code/Magento/CatalogAnalytics/ @akaplya
26+
/app/code/Magento/CatalogImportExport/ @akaplya
27+
/app/code/Magento/CatalogSearch/ @kokoc
28+
/app/code/Magento/CatalogUrlRewrite/ @akaplya
29+
/app/code/Magento/ConfigurableImportExport/ @akaplya
30+
/app/code/Magento/ConfigurableProduct/ @akaplya
31+
/app/code/Magento/Downloadable/ @akaplya
32+
/app/code/Magento/DownloadableImportExport/ @akaplya
33+
/app/code/Magento/GroupedImportExport/ @akaplya
34+
/app/code/Magento/GroupedProduct/ @akaplya
35+
/app/code/Magento/LayeredNavigation/ @kokoc
36+
/app/code/Magento/ProductVideo/ @akaplya
37+
/app/code/Magento/Review/ @akaplya
38+
/app/code/Magento/Swatches/ @akaplya
39+
/app/code/Magento/SwatchesLayeredNavigation/ @kokoc
40+
/app/code/Magento/Checkout/ @paliarush
41+
/app/code/Magento/CheckoutAgreements/ @paliarush
42+
/app/code/Magento/GiftMessage/ @paliarush
43+
/app/code/Magento/InstantPurchase/ @paliarush
44+
/app/code/Magento/Multishipping/ @joni-jones
45+
/app/code/Magento/Quote/ @paliarush
46+
/app/code/Magento/QuoteAnalytics/ @paliarush
47+
/lib/internal/Magento/Framework/Code/ @joni-jones
48+
/lib/internal/Magento/Framework/Reflection/ @joni-jones
49+
/lib/internal/Magento/Framework/Component/ @buskamuza
50+
/app/code/Magento/Version/ @buskamuza
51+
/lib/internal/Magento/Framework/Config/ @paliarush
52+
/app/code/Magento/Config/ @paliarush
53+
/lib/internal/Magento/Framework/Console/ @joni-jones
54+
/lib/internal/Magento/Framework/Process/ @joni-jones
55+
/lib/internal/Magento/Framework/Shell/ @joni-jones
56+
/app/code/Magento/Cookie/ @kokoc
57+
/lib/internal/Magento/Framework/Crontab/ @tariqjawed83 @buskamuza
58+
/app/code/Magento/Cron/ @tariqjawed83 @buskamuza
59+
/app/code/Magento/Customer/ @paliarush
60+
/app/code/Magento/CustomerAnalytics/ @paliarush
61+
/app/code/Magento/CustomerImportExport/ @paliarush
62+
/app/code/Magento/Persistent/ @paliarush
63+
/app/code/Magento/Wishlist/ @paliarush
64+
/lib/internal/Magento/Framework/DB/ @akaplya
65+
/lib/internal/Magento/Framework/EntityManager/ @akaplya
66+
/lib/internal/Magento/Framework/Indexer/ @akaplya
67+
/lib/internal/Magento/Framework/Model/ @akaplya
68+
/lib/internal/Magento/Framework/Mview/ @akaplya
69+
/app/code/Magento/Eav/ @akaplya
70+
/app/code/Magento/Indexer/ @akaplya
71+
/lib/internal/Magento/Framework/Archive/ @joni-jones
72+
/lib/internal/Magento/Framework/Convert/ @joni-jones
73+
/lib/internal/Magento/Framework/Data/ @joni-jones
74+
/lib/internal/Magento/Framework/DomDocument/ @joni-jones
75+
/lib/internal/Magento/Framework/Json/ @joni-jones
76+
/lib/internal/Magento/Framework/Math/ @joni-jones
77+
/lib/internal/Magento/Framework/Parse/ @joni-jones
78+
/lib/internal/Magento/Framework/Serialize/ @joni-jones
79+
/lib/internal/Magento/Framework/Simplexml/ @joni-jones
80+
/lib/internal/Magento/Framework/Stdlib/ @joni-jones
81+
/lib/internal/Magento/Framework/Unserialize/ @joni-jones
82+
/lib/internal/Magento/Framework/Xml/ @joni-jones
83+
/lib/internal/Magento/Framework/XsltProcessor/ @joni-jones
84+
/app/code/Magento/Deploy/ @kandy @buskamuza
85+
/lib/internal/Magento/Framework/Profiler/ @kandy
86+
/app/code/Magento/Developer/ @buskamuza
87+
/app/code/Magento/Directory/ @buskamuza
88+
/lib/internal/Magento/Framework/Exception/ @paliarush
89+
/lib/internal/Magento/Framework/File/ @buskamuza
90+
/lib/internal/Magento/Framework/Filesystem/ @buskamuza
91+
/lib/internal/Magento/Framework/System/ @buskamuza
92+
/lib/internal/Magento/Framework/Css/ @DrewML
93+
/lib/internal/Magento/Framework/Option/ @DrewML
94+
/lib/internal/Magento/Framework/RequireJs/ @DrewML
95+
/lib/internal/Magento/Framework/View/ @melnikovi
96+
/dev/tests/js/ @DrewML
97+
/app/code/Magento/RequireJs/ @DrewML
98+
/app/code/Magento/Theme/ @melnikovi
99+
/app/code/Magento/Ui/ @melnikovi
100+
/lib/internal/Magento/Framework/Intl/ @melnikovi
101+
/lib/internal/Magento/Framework/Locale/ @melnikovi
102+
/lib/internal/Magento/Framework/Phrase/ @melnikovi
103+
/lib/internal/Magento/Framework/Translate/ @melnikovi
104+
/app/code/Magento/Translation/ @melnikovi
105+
/app/code/Magento/ImportExport/ @akaplya
106+
/app/code/Magento/GoogleAdwords/ @buskamuza @melnikovi
107+
/app/code/Magento/Newsletter/ @buskamuza @melnikovi
108+
/app/code/Magento/ProductAlert/ @buskamuza @melnikovi
109+
/app/code/Magento/Rss/ @buskamuza @melnikovi
110+
/app/code/Magento/SendFriend/ @buskamuza @melnikovi
111+
/app/code/Magento/Marketplace/ @buskamuza
112+
/app/code/Magento/MediaStorage/ @buskamuza
113+
/lib/internal/Magento/Framework/Amqp/ @tariqjawed83 @paliarush
114+
/lib/internal/Magento/Framework/Bulk/ @tariqjawed83 @paliarush
115+
/lib/internal/Magento/Framework/Communication/ @tariqjawed83 @paliarush
116+
/app/code/Magento/Amqp/ @tariqjawed83 @paliarush
117+
/app/code/Magento/AsynchronousOperations/ @tariqjawed83 @paliarush
118+
/app/code/Magento/MessageQueue/ @tariqjawed83 @paliarush
119+
/app/code/Magento/MysqlMq/ @tariqjawed83 @paliarush
120+
/app/code/Magento/Sales/ @joni-jones
121+
/app/code/Magento/SalesInventory/ @joni-jones
122+
/app/code/Magento/SalesSequence/ @joni-jones
123+
/lib/internal/Magento/Framework/Event/ @buskamuza @kandy
124+
/lib/internal/Magento/Framework/Interception/ @buskamuza @kandy
125+
/lib/internal/Magento/Framework/ObjectManager/ @buskamuza @kandy
126+
/app/code/Magento/PageCache/ @Andrey @kokoc @paliarush
127+
/app/code/Magento/Authorizenet/ @joni-jones
128+
/app/code/Magento/Braintree/ @joni-jones
129+
/app/code/Magento/OfflinePayments/ @joni-jones
130+
/app/code/Magento/Payment/ @joni-jones
131+
/app/code/Magento/Paypal/ @joni-jones
132+
/app/code/Magento/Signifyd/ @joni-jones
133+
/app/code/Magento/Vault/ @joni-jones
134+
/lib/internal/Magento/Framework/Pricing/ @akaplya
135+
/app/code/Magento/AdvancedPricingImportExport/ @akaplya
136+
/app/code/Magento/CurrencySymbol/ @akaplya
137+
/app/code/Magento/Msrp/ @akaplya
138+
/app/code/Magento/Tax/ @akaplya
139+
/app/code/Magento/TaxImportExport/ @akaplya
140+
/app/code/Magento/Weee/ @akaplya
141+
/app/code/Magento/CatalogRule/ @kokoc
142+
/app/code/Magento/CatalogRuleConfigurable/ @kokoc
143+
/app/code/Magento/CatalogWidget/ @kokoc
144+
/app/code/Magento/Rule/ @kokoc
145+
/app/code/Magento/SalesRule/ @akaplya
146+
/app/code/Magento/ReleaseNotification/ @paliarush
147+
/app/code/Magento/Analytics/ @tariqjawed83 @buskamuza
148+
/app/code/Magento/GoogleAnalytics/ @tariqjawed83 @buskamuza
149+
/app/code/Magento/NewRelicReporting/ @tariqjawed83 @buskamuza
150+
/app/code/Magento/Reports/ @tariqjawed83 @buskamuza
151+
/app/code/Magento/ReviewAnalytics/ @tariqjawed83 @buskamuza
152+
/app/code/Magento/SalesAnalytics/ @tariqjawed83 @buskamuza
153+
/app/code/Magento/WishlistAnalytics/ @tariqjawed83 @buskamuza
154+
/app/code/Magento/GoogleOptimizer/ @paliarush
155+
/app/code/Magento/Robots/ @paliarush
156+
/app/code/Magento/Sitemap/ @paliarush
157+
/lib/internal/Magento/Framework/Search/ @kokoc
158+
/app/code/Magento/AdvancedSearch/ @kokoc
159+
/app/code/Magento/Elasticsearch/ @kokoc
160+
/app/code/Magento/Search/ @kokoc
161+
/lib/internal/Magento/Framework/Acl/ @kokoc
162+
/lib/internal/Magento/Framework/Authorization/ @kokoc
163+
/lib/internal/Magento/Framework/Encryption/ @kokoc
164+
/app/code/Magento/Authorization/ @kokoc
165+
/app/code/Magento/Captcha/ @kokoc
166+
/app/code/Magento/EncryptionKey/ @kokoc
167+
/app/code/Magento/Security/ @kokoc
168+
/lib/internal/Magento/Framework/Autoload/ @buskamuza
169+
/lib/internal/Magento/Framework/Backup/ @buskamuza
170+
/lib/internal/Magento/Framework/Composer/ @buskamuza
171+
/lib/internal/Magento/Framework/Setup/ @buskamuza
172+
/app/code/Magento/Backup/ @buskamuza
173+
/setup/ @buskamuza
174+
/app/code/Magento/Dhl/ @joni-jones
175+
/app/code/Magento/Fedex/ @joni-jones
176+
/app/code/Magento/OfflineShipping/ @joni-jones
177+
/app/code/Magento/Shipping/ @joni-jones
178+
/app/code/Magento/Ups/ @joni-jones
179+
/app/code/Magento/Usps/ @joni-jones
180+
/app/code/Magento/Store/ @akaplya
181+
/lib/internal/Magento/Framework/TestFramework/ @paliarush
182+
/dev/tests/integration/framework/ @buskamuza
183+
/dev/tests/setup-integration/framework/ @paliarush
184+
/dev/tests/static/framework/ @paliarush
185+
/dev/tests/unit/ @paliarush
186+
/dev/tests/api-functional/ @paliarush
187+
/app/code/Magento/UrlRewrite/ @kokoc
188+
/lib/internal/Magento/Framework/Image/ @buskamuza
189+
/lib/internal/Magento/Framework/Mail/ @melnikovi
190+
/lib/internal/Magento/Framework/Filter/ @melnikovi
191+
/lib/internal/Magento/Framework/Validation/ @melnikovi
192+
/lib/internal/Magento/Framework/Validator/ @melnikovi
193+
/lib/internal/Magento/Framework/Api/ @paliarush
194+
/lib/internal/Magento/Framework/GraphQL/ @paliarush
195+
/lib/internal/Magento/Framework/Oauth/ @paliarush
196+
/lib/internal/Magento/Framework/Webapi/ @paliarush
197+
/app/code/Magento/GraphQL/ @paliarush
198+
/app/code/Magento/Integration/ @paliarush
199+
/app/code/Magento/Swagger/ @paliarush
200+
/app/code/Magento/Webapi/ @paliarush
201+
/app/code/Magento/WebapiSecurity/ @paliarush
202+
203+
composer.json @buskamuza
204+
*.js @DrewML
205+
.htaccess* @akaplya
206+
nginx.conf* @akaplya

app/code/Magento/AdvancedPricingImportExport/Model/Import/AdvancedPricing.php

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,13 @@ class AdvancedPricing extends \Magento\ImportExport\Model\Import\Entity\Abstract
5050

5151
const VALIDATOR_WEBSITE = 'validator_website';
5252

53-
const VALIDATOR_TEAR_PRICE = 'validator_tear_price';
53+
/**
54+
* @deprecated
55+
* @see VALIDATOR_TIER_PRICE
56+
*/
57+
private const VALIDATOR_TEAR_PRICE = 'validator_tier_price';
58+
59+
private const VALIDATOR_TIER_PRICE = 'validator_tier_price';
5460

5561
/**
5662
* Validation failure message template definitions.
@@ -221,7 +227,7 @@ public function __construct(
221227
$this->_catalogProductEntity = $this->_resourceFactory->create()->getTable('catalog_product_entity');
222228
$this->_oldSkus = $this->retrieveOldSkus();
223229
$this->_validators[self::VALIDATOR_WEBSITE] = $websiteValidator;
224-
$this->_validators[self::VALIDATOR_TEAR_PRICE] = $tierPriceValidator;
230+
$this->_validators[self::VALIDATOR_TIER_PRICE] = $tierPriceValidator;
225231
$this->errorAggregator = $errorAggregator;
226232

227233
foreach (array_merge($this->errorMessageTemplates, $this->_messageTemplates) as $errorCode => $message) {
@@ -536,7 +542,7 @@ protected function getWebSiteId($websiteCode)
536542
*/
537543
protected function getCustomerGroupId($customerGroup)
538544
{
539-
$customerGroups = $this->_getValidator(self::VALIDATOR_TEAR_PRICE)->getCustomerGroups();
545+
$customerGroups = $this->_getValidator(self::VALIDATOR_TIER_PRICE)->getCustomerGroups();
540546
return $customerGroup == self::VALUE_ALL_GROUPS ? 0 : $customerGroups[$customerGroup];
541547
}
542548

app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricingTest.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
*/
1616
class AdvancedPricingTest extends \Magento\ImportExport\Test\Unit\Model\Import\AbstractImportTestCase
1717
{
18+
/**
19+
* DB Table data
20+
*/
1821
const TABLE_NAME = 'tableName';
1922
const LINK_FIELD = 'linkField';
2023

@@ -54,7 +57,7 @@ class AdvancedPricingTest extends \Magento\ImportExport\Test\Unit\Model\Import\A
5457
protected $websiteValidator;
5558

5659
/**
57-
* @var AdvancedPricing\Validator\TearPrice |\PHPUnit_Framework_MockObject_MockObject
60+
* @var AdvancedPricing\Validator\TierPrice |\PHPUnit_Framework_MockObject_MockObject
5861
*/
5962
protected $tierPriceValidator;
6063

app/code/Magento/AmqpStore/Plugin/Framework/Amqp/Bulk/Exchange.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ public function beforeEnqueue(SubjectExchange $subject, $topic, array $envelopes
9191
if ($headers instanceof AMQPTable) {
9292
try {
9393
$headers->set('store_id', $storeId);
94-
// phpcs:ignore Magento2.Exceptions.ThrowCatch
9594
} catch (AMQPInvalidArgumentException $ea) {
9695
$errorMessage = sprintf("Can't set storeId to amqp message. Error %s.", $ea->getMessage());
9796
$this->logger->error($errorMessage);

app/code/Magento/Backup/Controller/Adminhtml/Index/Rollback.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@ public function execute()
127127
$adminSession->destroy();
128128

129129
$response->setRedirectUrl($this->getUrl('*'));
130-
// phpcs:disable Magento2.Exceptions.ThrowCatch
131130
} catch (\Magento\Framework\Backup\Exception\CantLoadSnapshot $e) {
132131
$errorMsg = __('We can\'t find the backup file.');
133132
} catch (\Magento\Framework\Backup\Exception\FtpConnectionFailed $e) {
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
declare(strict_types=1);
7+
8+
namespace Magento\Braintree\Plugin;
9+
10+
use Magento\Quote\Model\QuoteManagement;
11+
use Magento\Quote\Api\CartManagementInterface;
12+
use Magento\Quote\Model\Quote;
13+
14+
/**
15+
* Plugin for QuoteManagement to disable quote address validation
16+
*/
17+
class DisableQuoteAddressValidation
18+
{
19+
/**
20+
* Disable quote address validation before submit order
21+
*
22+
* @param QuoteManagement $subject
23+
* @param Quote $quote
24+
* @param array $orderData
25+
* @return array
26+
* @throws \Exception
27+
* @throws \Magento\Framework\Exception\LocalizedException
28+
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
29+
*/
30+
public function beforeSubmit(
31+
QuoteManagement $subject,
32+
Quote $quote,
33+
$orderData = []
34+
) {
35+
if ($quote->getPayment()->getMethod() == 'braintree_paypal' &&
36+
$quote->getCheckoutMethod() == CartManagementInterface::METHOD_GUEST) {
37+
$billingAddress = $quote->getBillingAddress();
38+
$billingAddress->setShouldIgnoreValidation(true);
39+
$quote->setBillingAddress($billingAddress);
40+
}
41+
return [$quote, $orderData];
42+
}
43+
}

app/code/Magento/Braintree/etc/di.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -627,4 +627,7 @@
627627
<type name="Magento\Quote\Api\CartManagementInterface">
628628
<plugin name="order_cancellation" type="Magento\Braintree\Plugin\OrderCancellation"/>
629629
</type>
630+
<type name="Magento\Quote\Model\QuoteManagement">
631+
<plugin name="disable_quote_address_validation" type="Magento\Braintree\Plugin\DisableQuoteAddressValidation"/>
632+
</type>
630633
</config>

app/code/Magento/Braintree/view/frontend/web/js/view/payment/method-renderer/paypal.js

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -187,17 +187,17 @@ define([
187187
*/
188188
setBillingAddress: function (customer, address) {
189189
var billingAddress = {
190-
street: [address.streetAddress],
191-
city: address.locality,
190+
street: [address.line1],
191+
city: address.city,
192192
postcode: address.postalCode,
193-
countryId: address.countryCodeAlpha2,
193+
countryId: address.countryCode,
194194
email: customer.email,
195195
firstname: customer.firstName,
196196
lastname: customer.lastName,
197-
telephone: customer.phone
197+
telephone: customer.phone,
198+
regionCode: address.state
198199
};
199200

200-
billingAddress['region_code'] = address.region;
201201
billingAddress = createBillingAddress(billingAddress);
202202
quote.billingAddress(billingAddress);
203203
},
@@ -209,10 +209,12 @@ define([
209209
beforePlaceOrder: function (payload) {
210210
this.setPaymentPayload(payload);
211211

212-
if ((this.isRequiredBillingAddress() || quote.billingAddress() === null) &&
213-
typeof payload.details.billingAddress !== 'undefined'
214-
) {
215-
this.setBillingAddress(payload.details, payload.details.billingAddress);
212+
if (this.isRequiredBillingAddress() || quote.billingAddress() === null) {
213+
if (typeof payload.details.billingAddress !== 'undefined') {
214+
this.setBillingAddress(payload.details, payload.details.billingAddress);
215+
} else {
216+
this.setBillingAddress(payload.details, payload.details.shippingAddress);
217+
}
216218
}
217219

218220
if (this.isSkipOrderReview()) {

0 commit comments

Comments
 (0)