Skip to content

Commit 8c613fb

Browse files
committed
Merge remote-tracking branch 'remotes/origin/2.3-develop' into MC-18821
2 parents 7681d1a + 71b0142 commit 8c613fb

File tree

326 files changed

+11452
-2548
lines changed

Some content is hidden

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

326 files changed

+11452
-2548
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ Welcome to Magento 2 installation! We're glad you chose to install Magento 2, a
1111

1212
* [Installation Guide](https://devdocs.magento.com/guides/v2.3/install-gde/bk-install-guide.html).
1313

14+
## Learn More About GraphQL in Magento 2
15+
16+
* [GraphQL Developer Guide](https://devdocs.magento.com/guides/v2.3/graphql/index.html)
17+
1418
<h2>Contributing to the Magento 2 Code Base</h2>
1519
Contributions can take the form of new components or features, changes to existing features, tests, documentation (such as developer guides, user guides, examples, or specifications), bug fixes, optimizations, or just good suggestions.
1620

app/code/Magento/AdminNotification/etc/db_schema.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
xsi:noNamespaceSchemaLocation="urn:magento:framework:Setup/Declaration/Schema/etc/schema.xsd">
1010
<table name="adminnotification_inbox" resource="default" engine="innodb" comment="Adminnotification Inbox">
1111
<column xsi:type="int" name="notification_id" padding="10" unsigned="true" nullable="false" identity="true"
12-
comment="Notification id"/>
12+
comment="Notification ID"/>
1313
<column xsi:type="smallint" name="severity" padding="5" unsigned="true" nullable="false" identity="false"
1414
default="0" comment="Problem type"/>
1515
<column xsi:type="timestamp" name="date_added" on_update="false" nullable="false" default="CURRENT_TIMESTAMP"
@@ -35,7 +35,7 @@
3535
</index>
3636
</table>
3737
<table name="admin_system_messages" resource="default" engine="innodb" comment="Admin System Messages">
38-
<column xsi:type="varchar" name="identity" nullable="false" length="100" comment="Message id"/>
38+
<column xsi:type="varchar" name="identity" nullable="false" length="100" comment="Message ID"/>
3939
<column xsi:type="smallint" name="severity" padding="5" unsigned="true" nullable="false" identity="false"
4040
default="0" comment="Problem type"/>
4141
<column xsi:type="timestamp" name="created_at" on_update="false" nullable="false" default="CURRENT_TIMESTAMP"

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

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
*/
66
namespace Magento\AdvancedPricingImportExport\Model\Export;
77

8-
use Magento\ImportExport\Model\Export;
9-
use Magento\Store\Model\Store;
10-
use Magento\CatalogImportExport\Model\Import\Product as ImportProduct;
118
use Magento\AdvancedPricingImportExport\Model\Import\AdvancedPricing as ImportAdvancedPricing;
129
use Magento\Catalog\Model\Product as CatalogProduct;
10+
use Magento\CatalogImportExport\Model\Import\Product as ImportProduct;
11+
use Magento\ImportExport\Model\Export;
12+
use Magento\Store\Model\Store;
1313

1414
/**
1515
* Export Advanced Pricing
@@ -150,6 +150,8 @@ public function __construct(
150150
}
151151

152152
/**
153+
* Init type models
154+
*
153155
* @return $this
154156
* @throws \Magento\Framework\Exception\LocalizedException
155157
*/
@@ -172,7 +174,9 @@ protected function initTypeModels()
172174
}
173175
if ($model->isSuitable()) {
174176
$this->_productTypeModels[$productTypeName] = $model;
177+
// phpcs:ignore Magento2.Performance.ForeachArrayMerge
175178
$this->_disabledAttrs = array_merge($this->_disabledAttrs, $model->getDisabledAttrs());
179+
// phpcs:ignore Magento2.Performance.ForeachArrayMerge
176180
$this->_indexValueAttributes = array_merge(
177181
$this->_indexValueAttributes,
178182
$model->getIndexValueAttributes()
@@ -197,6 +201,7 @@ protected function initTypeModels()
197201
public function export()
198202
{
199203
//Execution time may be very long
204+
// phpcs:ignore Magento2.Functions.DiscouragedFunction
200205
set_time_limit(0);
201206

202207
$writer = $this->getWriter();
@@ -234,16 +239,6 @@ public function filterAttributeCollection(\Magento\Eav\Model\ResourceModel\Entit
234239

235240
foreach ($collection as $attribute) {
236241
if (in_array($attribute->getAttributeCode(), $this->_disabledAttrs)) {
237-
if (isset($this->_parameters[\Magento\ImportExport\Model\Export::FILTER_ELEMENT_SKIP])) {
238-
if ($attribute->getAttributeCode() == ImportAdvancedPricing::COL_TIER_PRICE
239-
&& in_array(
240-
$attribute->getId(),
241-
$this->_parameters[\Magento\ImportExport\Model\Export::FILTER_ELEMENT_SKIP]
242-
)
243-
) {
244-
$this->_passTierPrice = 1;
245-
}
246-
}
247242
$collection->removeItemByKey($attribute->getId());
248243
}
249244
}
@@ -363,6 +358,7 @@ private function prepareExportData(
363358
$linkedTierPricesData = [];
364359
foreach ($tierPricesData as $tierPriceData) {
365360
$sku = $productLinkIdToSkuMap[$tierPriceData['product_link_id']];
361+
// phpcs:ignore Magento2.Performance.ForeachArrayMerge
366362
$linkedTierPricesData[] = array_merge(
367363
$tierPriceData,
368364
[ImportAdvancedPricing::COL_SKU => $sku]
@@ -471,7 +467,7 @@ private function fetchTierPrices(array $productIds): array
471467
ImportAdvancedPricing::COL_TIER_PRICE_QTY => 'ap.qty',
472468
ImportAdvancedPricing::COL_TIER_PRICE => 'ap.value',
473469
ImportAdvancedPricing::COL_TIER_PRICE_PERCENTAGE_VALUE => 'ap.percentage_value',
474-
'product_link_id' => 'ap.' .$productEntityLinkField,
470+
'product_link_id' => 'ap.' . $productEntityLinkField,
475471
];
476472
if ($exportFilter && array_key_exists('tier_price', $exportFilter)) {
477473
if (!empty($exportFilter['tier_price'][0])) {
@@ -488,7 +484,7 @@ private function fetchTierPrices(array $productIds): array
488484
$selectFields
489485
)
490486
->where(
491-
'ap.'.$productEntityLinkField.' IN (?)',
487+
'ap.' . $productEntityLinkField . ' IN (?)',
492488
$productIds
493489
);
494490

@@ -602,7 +598,7 @@ protected function _getWebsiteCode(int $websiteId): string
602598
}
603599

604600
if ($storeName && $currencyCode) {
605-
$code = $storeName.' ['.$currencyCode.']';
601+
$code = $storeName . ' [' . $currencyCode . ']';
606602
} else {
607603
$code = $storeName;
608604
}

app/code/Magento/AdvancedSearch/etc/db_schema.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@
99
xsi:noNamespaceSchemaLocation="urn:magento:framework:Setup/Declaration/Schema/etc/schema.xsd">
1010
<table name="catalogsearch_recommendations" resource="default" engine="innodb"
1111
comment="Advanced Search Recommendations">
12-
<column xsi:type="int" name="id" padding="10" unsigned="true" nullable="false" identity="true" comment="Id"/>
12+
<column xsi:type="int" name="id" padding="10" unsigned="true" nullable="false" identity="true" comment="ID"/>
1313
<column xsi:type="int" name="query_id" padding="10" unsigned="true" nullable="false" identity="false"
14-
default="0" comment="Query Id"/>
14+
default="0" comment="Query ID"/>
1515
<column xsi:type="int" name="relation_id" padding="10" unsigned="true" nullable="false" identity="false"
16-
default="0" comment="Relation Id"/>
16+
default="0" comment="Relation ID"/>
1717
<constraint xsi:type="primary" referenceId="PRIMARY">
1818
<column name="id"/>
1919
</constraint>

app/code/Magento/Analytics/README.md

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,27 @@
1-
# Magento_Analytics Module
1+
# Magento_Analytics module
22

33
The Magento_Analytics module integrates your Magento instance with the [Magento Business Intelligence (MBI)](https://magento.com/products/business-intelligence) to use [Advanced Reporting](https://devdocs.magento.com/guides/v2.3/advanced-reporting/modules.html) functionality.
44

55
The module implements the following functionality:
66

7-
* enabling subscription to the MBI and automatic re-subscription
8-
* changing the base URL with the same MBI account remained
9-
* declaring the configuration schemas for report data collection
10-
* collecting the Magento instance data as reports for the MBI
11-
* introducing API that provides the collected data
12-
* extending Magento configuration with the module parameters:
13-
* subscription status (enabled/disabled)
14-
* industry (a business area in which the instance website works)
15-
* time of data collection (time of the day when the module collects data)
7+
- Enabling subscription to Magento Business Intelligence (MBI) and automatic re-subscription
8+
- Declaring the configuration schemas for report data collection
9+
- Collecting the Magento instance data as reports for MBI
10+
- Introducing API that provides the collected data
11+
- Extending Magento configuration with the module parameters:
12+
- Subscription status (enabled/disabled)
13+
- Industry (a business area in which the instance website works)
14+
- Time of data collection (time of the day when the module collects data)
15+
16+
## Installation details
17+
18+
Before disabling or uninstalling this module, note that the following modules depends on this module:
19+
- Magento_CatalogAnalytics
20+
- Magento_CustomerAnalytics
21+
- Magento_QuoteAnalytics
22+
- Magento_ReviewAnalytics
23+
- Magento_SalesAnalytics
24+
- Magento_WishlistAnalytics
1625

1726
## Structure
1827

@@ -29,12 +38,12 @@ The subscription to the MBI service is enabled during the installation process o
2938
Configuration settings for the Analytics module can be modified in the Admin Panel on the Stores > Configuration page under the General > Advanced Reporting tab.
3039

3140
The following options can be adjusted:
32-
* Advanced Reporting Service (Enabled/Disabled)
33-
* Alters the status of the Advanced Reporting subscription
34-
* Time of day to send data (Hour/Minute/Second in the store's time zone)
35-
* Defines when the data collection process for the Advanced Reporting service occurs
36-
* Industry
37-
* Defines the industry of the store in order to create a personalized Advanced Reporting experience
41+
- Advanced Reporting Service (Enabled/Disabled)
42+
- Alters the status of the Advanced Reporting subscription
43+
- Time of day to send data (Hour/Minute/Second in the store's time zone)
44+
- Defines when the data collection process for the Advanced Reporting service occurs
45+
- Industry
46+
- Defines the industry of the store in order to create a personalized Advanced Reporting experience
3847

3948
## Extensibility
4049

app/code/Magento/Analytics/Test/Mftf/Test/AdminConfigurationTimeToSendDataTest.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@
2525
<amOnPage url="{{AdminConfigGeneralAnalyticsPage.url}}" stepKey="amOnAdminConfig"/>
2626
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingService}}" userInput="Enable" stepKey="selectAdvancedReportingServiceEnabled"/>
2727
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingIndustry}}" userInput="Apps and Games" stepKey="selectAdvancedReportingIndustry"/>
28-
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingHour}}" userInput="11" stepKey="selectAdvancedReportingHour"/>
29-
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingMinute}}" userInput="11" stepKey="selectAdvancedReportingMinute"/>
30-
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingSeconds}}" userInput="00" stepKey="selectAdvancedReportingSeconds"/>
28+
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingHour}}" userInput="23" stepKey="selectAdvancedReportingHour"/>
29+
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingMinute}}" userInput="59" stepKey="selectAdvancedReportingMinute"/>
30+
<selectOption selector="{{AdminConfigAdvancedReportingSection.advancedReportingSeconds}}" userInput="59" stepKey="selectAdvancedReportingSeconds"/>
3131
<click selector="{{AdminMainActionsSection.save}}" stepKey="clickSaveConfigButton"/>
3232
<see selector="{{AdminMessagesSection.success}}" userInput="You saved the configuration." stepKey="seeSuccess"/>
3333
</test>

app/code/Magento/AsynchronousOperations/etc/adminhtml/system.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<label>Bulk Actions</label>
1414
<field id="lifetime" translate="label" type="text" sortOrder="10" showInDefault="1" showInWebsite="0" showInStore="0">
1515
<label>Days Saved in Log</label>
16+
<validate>validate-zero-or-greater validate-digits</validate>
1617
</field>
1718
</group>
1819
</section>

app/code/Magento/Backend/README.md

Lines changed: 112 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,112 @@
1-
The Backend module contains common infrastructure and assets for other modules to be defined and used in their
2-
administration user interface (UI). It does not contain anything specific to other modules. Among many things it
3-
handles the logic of authenticating and authorizing users.
1+
# Magento_Backend module
2+
3+
The Magento_Backend module contains common infrastructure and assets for other modules to be defined and used in their
4+
administration user interface (UI).
5+
6+
The Magento_Backend module does not contain anything specific to other modules. Among many things it handles the logic of authenticating and authorizing users.
7+
8+
## Installation details
9+
10+
Before disabling or uninstalling this module, note that the following modules depends on this module:
11+
12+
- Magento_Analytics
13+
- Magento_Authorization
14+
- Magento_NewRelicReporting
15+
- Magento_ProductVideo
16+
- Magento_ReleaseNotification
17+
- Magento_Search
18+
- Magento_Security
19+
- Magento_Signifyd
20+
- Magento_Swatches
21+
- Magento_Ui
22+
- Magento_User
23+
- Magento_Webapi
24+
25+
For information about module installation in Magento 2, see [Enable or disable modules](https://devdocs.magento.com/guides/v2.3/install-gde/install/cli/install-cli-subcommands-enable.html).
26+
27+
## Structure
28+
29+
Beyond the [usual module file structure](https://devdocs.magento.com/guides/v2.3/architecture/archi_perspectives/components/modules/mod_intro.html) the module contains a directory `Service/V1`.
30+
31+
`Service/V1` - contains logic to provide a list of modules installed in Magento.
32+
33+
For information about typical file structure of a module in Magento 2, see [Module file structure](https://devdocs.magento.com/guides/v2.3/extension-dev-guide/build/module-file-structure.html#module-file-structure).
34+
35+
## Extensibility
36+
37+
Extension developers can interact with the Magento_Backend module. For more information about the Magento extension mechanism, see [Magento plug-ins](https://devdocs.magento.com/guides/v2.3/extension-dev-guide/plugins.html).
38+
39+
[The Magento dependency injection mechanism](https://devdocs.magento.com/guides/v2.3/extension-dev-guide/depend-inj.html) enables you to override the functionality of the Magento_Backend module.
40+
41+
### Events
42+
43+
The module dispatches the following events:
44+
45+
- `adminhtml_block_html_before` event in the `\Magento\Backend\Block\Template::_toHtml()` method. Parameters:
46+
- `block` is the backend block template (this) (`\Magento\Backend\Block\Template` class).
47+
- `adminhtml_store_edit_form_prepare_form` event in the `\Magento\Backend\Block\System\Store\Edit\AbstractForm::_prepareForm()` method. Parameters:
48+
- `block` is the AbstractForm block (this) (`\Magento\Backend\Block\System\Store\Edit\AbstractForm` class).
49+
- `backend_block_widget_grid_prepare_grid_before` event in the `\Magento\Backend\Block\Widget\Grid::_prepareGrid()` method. Parameters:
50+
- `grid` is the widget grid block (this) (`\Magento\Backend\Block\Widget\Grid` class)
51+
- `collection` is the grid collection (`\Magento\Framework\Data\Collection` class).
52+
- `adminhtml_cache_flush_system` event in the `\Magento\Backend\Console\Command\CacheCleanCommand::performAction()` method.
53+
- `adminhtml_cache_flush_all` event in the `\Magento\Backend\Console\Command\CacheFlushCommand::performAction()` method.
54+
- `clean_catalog_images_cache_after` event in the `\Magento\Backend\Controller\Adminhtml\Cache\CleanImages::execute()` method.
55+
- `clean_media_cache_after` event in the `\Magento\Backend\Controller\Adminhtml\Cache\CleanMedia::execute()` method.
56+
- `clean_static_files_cache_after` event in the `\Magento\Backend\Controller\Adminhtml\Cache\CleanStaticFiles::execute()` method.
57+
- `adminhtml_cache_flush_all` event in the `\Magento\Backend\Controller\Adminhtml\Cache\FlushAll::execute()` method.
58+
- `adminhtml_cache_flush_system` event in the `\Magento\Backend\Controller\Adminhtml\Cache\FlushSystem::execute()` method.
59+
- `theme_save_after` event in the `\Magento\Backend\Controller\Adminhtml\System\Design\Save::execute()` method.
60+
- `backend_auth_user_login_success` event in the `\Magento\Backend\Model\Auth::login()` method. Parameters:
61+
- `user` is the credential storage object (`null | \Magento\Backend\Model\Auth\Credential\StorageInterface`)
62+
- `backend_auth_user_login_failed` event in the `\Magento\Backend\Model\Auth::login()` method. Parameters:
63+
- `user_name` is username extracted from the credential storage object (`null | \Magento\Backend\Model\Auth\Credential\StorageInterface`)
64+
- `exception` any exception generated (`\Magento\Framework\Exception\LocalizedException | \Magento\Framework\Exception\Plugin\AuthenticationException`)
65+
66+
For information about an event in Magento 2, see [Events and observers](https://devdocs.magento.com/guides/v2.3/extension-dev-guide/events-and-observers.html#events).
67+
68+
### Layouts
69+
70+
This module introduces the following layouts and layout handles in the `view/adminhtml/layout` directory:
71+
72+
- `admin_login`
73+
- `adminhtml_auth_login`
74+
- `adminhtml_cache_block`
75+
- `adminhtml_cache_index`
76+
- `adminhtml_dashboard_customersmost`
77+
- `adminhtml_dashboard_customersnewest`
78+
- `adminhtml_dashboard_index`
79+
- `adminhtml_dashboard_productsviewed`
80+
- `adminhtml_denied`
81+
- `adminhtml_noroute`
82+
- `adminhtml_system_account_index`
83+
- `adminhtml_system_design_edit`
84+
- `adminhtml_system_design_grid`
85+
- `adminhtml_system_design_grid_block`
86+
- `adminhtml_system_design_index`
87+
- `adminhtml_system_store_deletestore`
88+
- `adminhtml_system_store_editstore`
89+
- `adminhtml_system_store_grid_block`
90+
- `adminhtml_system_store_index`
91+
- `default`
92+
- `editor`
93+
- `empty`
94+
- `formkey`
95+
- `overlay_popup`
96+
- `popup`
97+
98+
99+
For more information about layouts in Magento 2, see the [Layout documentation](https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/layouts/layout-overview.html).
100+
101+
### UI components
102+
103+
You can extend Magento_Backend module using the following configuration files:
104+
105+
- `view/adminhtml/ui_component/design_config_form.xml`
106+
- `view/adminhtml/ui_component/design_config_listing.xml`
107+
108+
For information about UI components in Magento 2, see [Overview of UI components](https://devdocs.magento.com/guides/v2.3/ui_comp_guide/bk-ui_comps.html).
109+
110+
## Additional information
111+
112+
For information about significant changes in patch releases, see [2.3.x Release information](https://devdocs.magento.com/guides/v2.3/release-notes/bk-release-notes.html).

app/code/Magento/Backend/Test/Mftf/Section/LocaleOptionsSection.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
<section name="LocaleOptionsSection">
1212
<element name="sectionHeader" type="text" selector="#general_locale-head"/>
1313
<element name="timezone" type="select" selector="#general_locale_timezone"/>
14+
<element name="locale" type="select" selector="#general_locale_code"/>
15+
<element name="localeEnabled" type="select" selector="#general_locale_code:enabled"/>
16+
<element name="localeDisabled" type="select" selector="#general_locale_code[disabled=disabled]"/>
1417
<element name="useDefault" type="checkbox" selector="#general_locale_timezone_inherit"/>
1518
</section>
1619
</sections>

0 commit comments

Comments
 (0)