Skip to content

Commit 8d722fd

Browse files
authored
Merge branch '2.4-develop' into fix-for-issue-37812
2 parents 499cafb + 7d724b7 commit 8d722fd

File tree

412 files changed

+13274
-4143
lines changed

Some content is hidden

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

412 files changed

+13274
-4143
lines changed

.github/CONTRIBUTING.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Contributions to the Magento 2 codebase are done using the fork & pull model.
44
This contribution model has contributors maintaining their own fork of the Magento 2 repository.
5-
The forked repository is then used to submit a request to the base repository to pull a set of changes.
5+
The forked repository is then used to submit a request to the base repository to "pull" a set of changes.
66
For more information on pull requests please refer to [GitHub Help](https://help.github.com/articles/about-pull-requests/).
77

88
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 or optimizations.
@@ -19,11 +19,11 @@ For more detailed information on contribution please read our [beginners guide](
1919
2. Pull requests (PRs) must be accompanied by a meaningful description of their purpose. Comprehensive descriptions increase the chances of a pull request being merged quickly and without additional clarification requests.
2020
3. Commits must be accompanied by meaningful commit messages. Please see the [Magento Pull Request Template](https://github.com/magento/magento2/blob/HEAD/.github/PULL_REQUEST_TEMPLATE.md) for more information.
2121
4. PRs which include bug fixes must be accompanied with a step-by-step description of how to reproduce the bug.
22-
3. PRs which include new logic or new features must be submitted along with:
23-
* Unit/integration test coverage
24-
* Proposed [documentation](https://devdocs.magento.com) updates. Documentation contributions can be submitted via the [devdocs GitHub](https://github.com/magento/devdocs).
25-
4. For larger features or changes, please [open an issue](https://github.com/magento/magento2/issues) to discuss the proposed changes prior to development. This may prevent duplicate or unnecessary effort and allow other contributors to provide input.
26-
5. All automated tests must pass.
22+
5. PRs which include new logic or new features must be submitted along with:
23+
* Unit/integration test coverage
24+
* Proposed [documentation](https://developer.adobe.com/commerce) updates. Use feedback buttons __Edit in GitHub__ and __Log an issue__ at the top of a relevant topic.
25+
6. For larger features or changes, please [open an issue](https://github.com/magento/magento2/issues) to discuss the proposed changes prior to development. This may prevent duplicate or unnecessary effort and allow other contributors to provide input.
26+
7. All automated tests must pass.
2727

2828
## Contribution process
2929

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ However, for those who need a full-featured eCommerce solution, we recommend [Ad
2626

2727
## Contribute
2828

29-
Our [Community](https://opensource.magento.com/) is large and diverse, and our project is enormous. As a contributor, you have countless opportunities to impact product development and delivery by introducing new features or improving existing ones, enhancing test coverage, updating documentation for [developers](https://developer.adobe.com/commerce/docs/) and [end-users](https://docs.magento.com/user-guide/), catching and fixing code bugs, suggesting points for optimization, and sharing your great ideas.
29+
Our [Community](https://opensource.magento.com/) is large and diverse, and our project is enormous. As a contributor, you have countless opportunities to impact product development and delivery by introducing new features or improving existing ones, enhancing test coverage, updating documentation for [developers](https://developer.adobe.com/commerce/docs/) and [end-users](https://experienceleague.adobe.com/docs/commerce-admin/user-guides/home.html), catching and fixing code bugs, suggesting points for optimization, and sharing your great ideas.
3030

3131
- [Contribute to the code](https://developer.adobe.com/commerce/contributor/guides/code-contributions/)
3232
- [Report an issue](https://developer.adobe.com/commerce/contributor/guides/code-contributions/#report)

app/code/Magento/Analytics/etc/config.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<otp>https://advancedreporting.rjmetrics.com/otp</otp>
1616
<report>https://advancedreporting.rjmetrics.com/report</report>
1717
<notify_data_changed>https://advancedreporting.rjmetrics.com/report</notify_data_changed>
18-
<documentation>https://docs.magento.com/user-guide/reports/advanced-reporting.html</documentation>
18+
<documentation>https://experienceleague.adobe.com/docs/commerce-admin/start/reporting/business-intelligence.html#advanced-reporting</documentation>
1919
</url>
2020
<integration_name>Magento Analytics user</integration_name>
2121
<general>

app/code/Magento/Backend/Block/Store/Switcher.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class Switcher extends \Magento\Backend\Block\Template
2020
/**
2121
* URL for store switcher hint
2222
*/
23-
public const HINT_URL = 'https://docs.magento.com/user-guide/configuration/scope.html';
23+
public const HINT_URL = 'https://experienceleague.adobe.com/docs/commerce-admin/start/setup/websites-stores-views.html#scope-settings'; // @codingStandardsIgnoreLine
2424

2525
/**
2626
* Name of website variable

app/code/Magento/Backup/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ The Magento_Backup module allows administrators to perform backups and rollbacks
44

55
The Magento_Backup module does not affect the storefront.
66

7-
For more information about this module, see [Magento Backups](https://docs.magento.com/user-guide/system/backups.html)
7+
For more information about this module, see [Backups](https://experienceleague.adobe.com/docs/commerce-admin/systems/tools/backups.html)
88

99
## Extensibility
1010

app/code/Magento/Bundle/Model/LinkManagement.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ private function processLinkedProduct(
235235
}
236236

237237
$selectionModel = $this->bundleSelection->create();
238+
$selectionModel->load($linkedProduct->getId());
238239
$selectionModel = $this->mapProductLinkToBundleSelectionModel(
239240
$selectionModel,
240241
$linkedProduct,

app/code/Magento/Bundle/Model/Selection.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
*/
66
namespace Magento\Bundle\Model;
77

8+
use Magento\Framework\App\ObjectManager;
9+
810
/**
911
* Bundle Selection Model
1012
*
@@ -36,8 +38,6 @@
3638
class Selection extends \Magento\Framework\Model\AbstractModel
3739
{
3840
/**
39-
* Catalog data
40-
*
4141
* @var \Magento\Catalog\Helper\Data
4242
*/
4343
protected $_catalogData;
@@ -82,7 +82,9 @@ public function beforeSave()
8282
{
8383
if (!$this->_catalogData->isPriceGlobal() && $this->getWebsiteId()) {
8484
$this->setData('tmp_selection_price_value', $this->getSelectionPriceValue());
85+
$this->setData('tmp_selection_price_type', $this->getSelectionPriceType());
8586
$this->setSelectionPriceValue($this->getOrigData('selection_price_value'));
87+
$this->setSelectionPriceType($this->getOrigData('selection_price_type'));
8688
}
8789
parent::beforeSave();
8890
}
@@ -98,6 +100,9 @@ public function afterSave()
98100
if (null !== $this->getData('tmp_selection_price_value')) {
99101
$this->setSelectionPriceValue($this->getData('tmp_selection_price_value'));
100102
}
103+
if (null !== $this->getData('tmp_selection_price_type')) {
104+
$this->setSelectionPriceType($this->getData('tmp_selection_price_type'));
105+
}
101106
$this->getResource()->saveSelectionPrice($this);
102107

103108
if (!$this->getDefaultPriceScope()) {

app/code/Magento/Bundle/Test/Mftf/Section/StorefrontProductInfoMainSection.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<element name="minPrice" type="text" selector="span[data-price-type='minPrice']"/>
1515
<element name="maxPrice" type="text" selector="span[data-price-type='minPrice']"/>
1616
<element name="asLowAsFinalPrice" type="text" selector="div.price-box.price-final_price p.minimal-price > span.price-final_price span.price"/>
17-
<element name="fixedFinalPrice" type="text" selector="div.price-box.price-final_price > span.price-final_price span.price"/>
17+
<element name="fixedFinalPrice" type="text" selector="div.price-box.price-final_price p.price-from span.price-final_price span.price-wrapper span.price"/>
1818
<element name="productBundleOptionsCheckbox" type="checkbox" selector="//*[@id='product-options-wrapper']//div[@class='fieldset']//label[contains(.,'{{childName}}')]/../input" parameterized="true" timeout="30"/>
1919
<element name="productBundleOneOptionInput" type="input" selector="//*[@id='product-options-wrapper']//div[@class='fieldset']//label[contains(.,'{{childName}}')]/..//input[contains(@class, 'option')]" parameterized="true" timeout="30"/>
2020
<element name="productBundleOptionQty" type="input" selector="//*[@id='product-options-wrapper']//div[@class='fieldset']//label[contains(.,'{{childName}}')]/..//input[contains(@class, 'qty')]" parameterized="true" timeout="30"/>

app/code/Magento/Bundle/Test/Unit/Model/LinkManagementTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -621,7 +621,7 @@ public function testAddChildCouldNotSave(): void
621621
->method('create')
622622
->willReturn($bundle);
623623

624-
$selection = $this->createPartialMock(Selection::class, ['save']);
624+
$selection = $this->createPartialMock(Selection::class, ['save', 'load']);
625625
$selection->expects($this->once())->method('save')
626626
->willReturnCallback(
627627
static function () {
@@ -696,7 +696,7 @@ public function testAddChild(): void
696696
->willReturn($selections);
697697
$this->bundleFactoryMock->expects($this->once())->method('create')->willReturn($bundle);
698698

699-
$selection = $this->createPartialMock(Selection::class, ['save', 'getId']);
699+
$selection = $this->createPartialMock(Selection::class, ['save', 'getId', 'load']);
700700
$selection->expects($this->once())->method('save');
701701
$selection->expects($this->once())->method('getId')->willReturn(42);
702702
$this->bundleSelectionMock->expects($this->once())->method('create')->willReturn($selection);
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
<?php
2+
/************************************************************************
3+
*
4+
* ADOBE CONFIDENTIAL
5+
* ___________________
6+
*
7+
* Copyright 2014 Adobe
8+
* All Rights Reserved.
9+
*
10+
* NOTICE: All information contained herein is, and remains
11+
* the property of Adobe and its suppliers, if any. The intellectual
12+
* and technical concepts contained herein are proprietary to Adobe
13+
* and its suppliers and are protected by all applicable intellectual
14+
* property laws, including trade secret and copyright laws.
15+
* Dissemination of this information or reproduction of this material
16+
* is strictly forbidden unless prior written permission is obtained
17+
* from Adobe.
18+
* ************************************************************************
19+
*/
20+
declare(strict_types=1);
21+
22+
namespace Magento\Catalog\Api;
23+
24+
/**
25+
* Intended to allow setting 'is_filterable' property for specific attribute as integer value via REST/SOAP API
26+
*
27+
* @api
28+
*/
29+
interface ProductAttributeIsFilterableManagementInterface
30+
{
31+
/**
32+
* Retrieve 'is_filterable' property for specific attribute as integer
33+
*
34+
* @param string $attributeCode
35+
* @return int
36+
* @throws \Magento\Framework\Exception\NoSuchEntityException
37+
*/
38+
public function get(string $attributeCode): int;
39+
40+
/**
41+
* Set 'is_filterable' property for specific attribute as integer
42+
*
43+
* @param string $attributeCode
44+
* @param int $isFilterable
45+
* @return bool
46+
* @throws \Magento\Framework\Exception\NoSuchEntityException
47+
* @throws \Magento\Framework\Exception\InputException
48+
* @throws \Magento\Framework\Exception\StateException
49+
*/
50+
public function set(string $attributeCode, int $isFilterable): bool;
51+
}

0 commit comments

Comments
 (0)