From 72832a7932b7996d8069b0b17e685e1e49d4ff6d Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Mon, 31 Jan 2022 21:13:08 -0600 Subject: [PATCH 001/491] - Add documentation about dynamic message broker for queues; --- .../prod/config-reference-envphp.md | 49 ++- .../async-message-queue-config-files.md | 71 +++- .../message-queues/config-mq.md | 64 +-- .../message-queues/implement-bulk.md | 365 +++++++++++++++++- 4 files changed, 497 insertions(+), 52 deletions(-) mode change 120000 => 100644 src/guides/v2.4/extension-dev-guide/message-queues/async-message-queue-config-files.md mode change 120000 => 100644 src/guides/v2.4/extension-dev-guide/message-queues/implement-bulk.md diff --git a/src/guides/v2.4/config-guide/prod/config-reference-envphp.md b/src/guides/v2.4/config-guide/prod/config-reference-envphp.md index 7608e82cf9f..b8eb99ede34 100644 --- a/src/guides/v2.4/config-guide/prod/config-reference-envphp.md +++ b/src/guides/v2.4/config-guide/prod/config-reference-envphp.md @@ -9,25 +9,26 @@ functional_areas: The `env.php` file contains the following sections: -| Name | Description | -|-------------------------------|-----------------------------------------------------------------| -| `backend` | Settings for the Admin area | -| `cache` | Configure redis page and default cache | -| `cache_types` | Cache storage settings | +| Name | Description | +|-----------------------------|----------------------------------------------------------------| +| `backend` | Settings for the Admin area | +| `cache` | Configure redis page and default cache | +| `cache_types` | Cache storage settings | | `consumers_wait_for_messages` | Configure how consumers process messages from the message queue | -| `cron` | Enable or disable the cron jobs | -| `crypt` | The encryption key for cryptographic functions | -| `db` | Database connection settings | -| `directories` | Magento directories mapping settings | -| `downloadable_domains` | List of downloadable domains | -| `install` | The installation date | -| `lock` | Lock provider settings | -| `MAGE_MODE` | The [Magento mode][magento-mode] | -| `queue` | [Message queues][message-queues] settings | -| `resource` | Mapping of resource name to a connection | -| `session` | Session storage data | -| `system` | Disables the field for editing in the admin | -| `x-frame-options` | Setting for [x-frame-options][x-frame-options] | +| `cron` | Enable or disable the cron jobs | +| `crypt` | The encryption key for cryptographic functions | +| `db` | Database connection settings | +| `default_connection` | Message queues default connection | +| `directories` | Magento directories mapping settings | +| `downloadable_domains` | List of downloadable domains | +| `install` | The installation date | +| `lock` | Lock provider settings | +| `MAGE_MODE` | The [Magento mode][magento-mode] | +| `queue` | [Message queues][message-queues] settings | +| `resource` | Mapping of resource name to a connection | +| `session` | Session storage data | +| `system` | Disables the field for editing in the admin | +| `x-frame-options` | Setting for [x-frame-options][x-frame-options] | ## backend @@ -164,6 +165,18 @@ All database configurations are available in this node. ] ``` +## default_connection +Specify message queues default connection. Can be `db`, `amqp` or any custom value like `redissmq` (but `redissmq` should be configured to be able to use it). The default value is `db`. + +```conf +'queue' => [ + 'default_connection' => 'amqp' +] +``` + +If `queue/default_connection` is specified in `env.php`, this connection is used for all message queues through the system, unless specific connection is defined in `queue_topology.xml`, `queue_publisher.xml` or `queue_consumer.xml` file. +For example, if `queue/default_connection` is `amqp` in `env.php` but `db` connection is specified in queue configuration related xml files of a module, this module will use MySQL as a message broker. + ## directories Optional directory mapping options that need to be set when the web server is configured to serve Magento app from the `/pub` directory for [improved security][change-docroot-to-pub]. diff --git a/src/guides/v2.4/extension-dev-guide/message-queues/async-message-queue-config-files.md b/src/guides/v2.4/extension-dev-guide/message-queues/async-message-queue-config-files.md deleted file mode 120000 index 37aa7258984..00000000000 --- a/src/guides/v2.4/extension-dev-guide/message-queues/async-message-queue-config-files.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/extension-dev-guide/message-queues/async-message-queue-config-files.md \ No newline at end of file diff --git a/src/guides/v2.4/extension-dev-guide/message-queues/async-message-queue-config-files.md b/src/guides/v2.4/extension-dev-guide/message-queues/async-message-queue-config-files.md new file mode 100644 index 00000000000..f2b2880f44d --- /dev/null +++ b/src/guides/v2.4/extension-dev-guide/message-queues/async-message-queue-config-files.md @@ -0,0 +1,70 @@ +--- +group: php-developer-guide +title: Asynchronous Message Queue configuration files +contributor_name: comwrap GmbH +contributor_link: https://www.comwrap.com +functional_areas: + - Services +--- + +When using the Magento message queue, four configuration files in your module must be updated: + +* communication.xml +* queue_consumer.xml +* queue_topology.xml +* queue_publisher.xml + +More information can be found in [Configure message queues]({{ page.baseurl }}/extension-dev-guide/message-queues/config-mq.html). + +Asynchronous and Bulk APIs are built on top of the usual REST API and use the Magento Message Queue Framework for processing messages. To ease development efforts, the Asynchronous API pre-generates the following configuration files: + +* communication.xml +* queue_publisher.xml + +and provides the `queue_topology.xml` and `queue_consumer.xml` files within the `Magento/WebapiAsync` module. + +### communication.xml + +Information about the auto-generation of `communication.xml` can be found in [Topics in Asynchronous API]({{ page.baseurl }}/extension-dev-guide/message-queues/async-topics.html) + +### queue_publisher.xml + +The `queue_publisher.xml` file is generated by the `\Magento\WebapiAsync\Code\Generator\Config\RemoteServiceReader\Publisher` class, which implements `\Magento\Framework\Config\ReaderInterface` and is injected into the `\Magento\Framework\MessageQueue\Publisher\Config\CompositeReader` constructor argument in the main `di.xml` file. + +```xml + + + + Magento\WebapiAsync\Code\Generator\Config\RemoteServiceReader\Publisher + ... + + + +``` + +The sort order is set to 0 and allows developers to change some aspects of the generated configuration in configuration readers such as `queue_publisher.xml` and `env.php`. + +`\Magento\WebapiAsync\Code\Generator\Config\RemoteServiceReader\Publisher::read()` calls `\Magento\AsynchronousOperations\Model\ConfigInterface::getServices()` to get an array of all REST API routes which can be executed asynchronously. Then it defines the connection name as `amqp` and the exchange as `magento` for each generated topic name. + +### queue_consumer.xml + +The asynchronous/bulk API has one defined consumer which processes all asynchronous/bulk APIs messages. + +```xml + +``` + +### queue_topology.xml + +The message queue topology configuration links all auto-generated topic names with prefix `async.` to the `magento` exchange and defines the queue named `async.operations.all` as the destination for all messages. + +```xml + + + +``` + +{:.bs-callout-info} +Message queues connection is defined dynamically based on deployment configuration in `env.php`. If AMQP is configured in deployment configuration of the queue, AMQP connection is used. Otherwise, db connection is used. +As a result, if AMQP is configured in deployment configuration of the queue, connection declaration can be omitted in [message queue configuration files]({{page.baseurl}}/extension-dev-guide/message-queues/config-mq.html): `queue_customer.xml`, `queue_publisher.xml`, `queue_topology.xml`. diff --git a/src/guides/v2.4/extension-dev-guide/message-queues/config-mq.md b/src/guides/v2.4/extension-dev-guide/message-queues/config-mq.md index 542bb57833f..ab078ac7024 100644 --- a/src/guides/v2.4/extension-dev-guide/message-queues/config-mq.md +++ b/src/guides/v2.4/extension-dev-guide/message-queues/config-mq.md @@ -91,17 +91,17 @@ The `queue_consumer.xml` file contains one or more `consumer` elements: #### `consumer` element {:.no_toc} -| Attribute | Description | -| ----------------------------- | ----------- | -| name (required) | The name of the consumer. | -| queue (required) | Defines the queue name to send the message to. | -| handler | Specifies the class and method that processes the message. The value must be specified in the format `\Module\::`.| -| consumerInstance | The Magento class name that consumes the message | -| connection | For AMQP connections, the connection name must match the `connection` attribute in the `queue_topology.xml` file. Otherwise, the connection name must be `db`. | -| maxMessages | Specifies the maximum number of messages to consume.| -| maxIdleTime | Defines the maximum waiting time in seconds for a new message from the queue. If no message was handled within this period of time, the consumer exits. Default value: `null`| -| sleep | Specifies time in seconds to sleep before checking if a new message is available in the queue. Default value is `null` which equals to 1 second.| -| onlySpawnWhenMessageAvailable | Boolean value (`1` or `0` only) that identifies whether a consumer should be spawned only if there is available message in the related queue. Default value: `null`| +| Attribute | Description | +| ----------------------------- |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| name (required) | The name of the consumer. | +| queue (required) | Defines the queue name to send the message to. | +| handler | Specifies the class and method that processes the message. The value must be specified in the format `\Module\::`. | +| consumerInstance | The Magento class name that consumes the message. Default value: `Magento\Framework\MessageQueue\Consumer`. | +| connection | Connection is defined dynamically based on deployment configuration of message queue in `env.php`. If AMQP is configured in deployment configuration, AMQP connection is used. Otherwise, db connection is used. If you still want to specify connection type for consumer, keep in mind that for AMQP connections, the connection name must match the `connection` attribute in the `queue_topology.xml` file. Otherwise, the connection name must be `db`. | +| maxMessages | Specifies the maximum number of messages to consume. | +| maxIdleTime | Defines the maximum waiting time in seconds for a new message from the queue. If no message was handled within this period of time, the consumer exits. Default value: `null` | +| sleep | Specifies time in seconds to sleep before checking if a new message is available in the queue. Default value is `null` which equals to 1 second. | +| onlySpawnWhenMessageAvailable | Boolean value (`1` or `0` only) that identifies whether a consumer should be spawned only if there is available message in the related queue. Default value: `null` | {:.bs-callout-info} The `maxIdleTime` and `sleep` attributes will be handled only by consumers that were fired with a defined `maxMessages` parameter. The `onlySpawnWhenMessageAvailable` attribute is only checked and validated by the `\Magento\MessageQueue\Model\Cron\ConsumersRunner` class that runs consumer processes with cron. @@ -154,8 +154,8 @@ The `queue_topology.xml` file defines the message routing rules and declares que ```xml - - + + value @@ -179,25 +179,25 @@ The `queue_topology.xml` file defines the message routing rules and declares que | Attribute | Description | | -------------- | ----------- | - name (required) | A unique ID for the exchange. - type (required) | Specifies the type of exchange. Must be `topic`. - connection (required) | For AMQP connections, a string that identifies the connection. For MySQL connections, the connection name must be `db`. - durable | Boolean value indicating whether the exchange is persistent. Non-durable exchanges are purged when the server restarts. The default is `true`. - autoDelete | Boolean value indicating whether the exchange is deleted when all queues have finished using it. The default is `false`. - internal | Boolean value. If set to true, the exchange may not be used directly by publishers, but only when bound to other exchanges. The default is `false`. +name (required) | A unique ID for the exchange. +type | Specifies the type of exchange. The default value is `topic` because only `topic` type is supported. +connection | Connection is defined dynamically based on deployment configuration of message queue in `env.php`. If AMQP is configured in deployment configuration, AMQP connection is used. Otherwise, db connection is used. If you still want to specify connection, the connection name must be `amqp` for AMQP. For MySQL connections, the connection name must be `db`. +durable | Boolean value indicating whether the exchange is persistent. Non-durable exchanges are purged when the server restarts. The default is `true`. +autoDelete | Boolean value indicating whether the exchange is deleted when all queues have finished using it. The default is `false`. +internal | Boolean value. If set to true, the exchange may not be used directly by publishers, but only when bound to other exchanges. The default is `false`. #### `binding` element {:.no_toc} The `binding` element is a subnode of the `exchange` element. -| Attribute | Description | -| -------------- | ----------- | -| id (required) | A unique ID for this binding. | -| topic (required) | The name of a topic. You can specify an asterisk (*) or pound sign (#) as wildcards. These are described below the table.| -| destinationType (required) | Must be `queue`. | -| destination (required) | Identifies the name of a queue. | -| disabled | Determines whether this binding is disabled. The default value is `false`. | +| Attribute | Description | +| -------------- |---------------------------------------------------------------------------------------------------------------------------| +| id (required) | A unique ID for this binding. | +| topic (required) | The name of a topic. You can specify an asterisk (*) or pound sign (#) as wildcards. These are described below the table. | +| destinationType | The default value is `queue`. | +| destination (required) | Identifies the name of a queue. | +| disabled | Determines whether this binding is disabled. The default value is `false`. | Example topic names that include wildcards: @@ -261,13 +261,13 @@ The `queue_publisher.xml` file defines which connection and exchange to use to p #### `connection` element {:.no_toc} -The `connection` element is a subnode of the `publisher` element. There must not be more than one enabled active connection to a publisher defined at a time. If you omit the `connection` element, the default connection of `amqp` and exchange `magento` will be used. +The `connection` element is a subnode of the `publisher` element. There must not be more than one enabled active connection to a publisher defined at a time. If you omit the `connection` element, connection will be defined dynamically based on deployment configuration of message queue in `env.php` and exchange `magento` will be used. If AMQP is configured in deployment configuration, AMQP connection is used. Otherwise, db connection is used. -| Attribute | Description | -| -------------------- | ----------- | -| name (required) | For AMQP connections, the connection name must match the `connection` attribute in the `queue_topology.xml` file. Otherwise, the connection name must be `db`. | -| exchange | The name of the exchange to publish to. The default system exchange name is `magento`. | -| disabled | Determines whether this queue is disabled. The default value is `false`. | +| Attribute | Description | +| --------- |------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| name | Connection name is defined dynamically based on deployment configuration of message queue in `env.php`. If you still want to specify connection type for publisher, keep in mind that for AMQP connections, the connection name must match the `connection` attribute in the `queue_topology.xml` file. Otherwise, the connection name must be `db`. | +| exchange | The name of the exchange to publish to. The default system exchange name is `magento`. | +| disabled | Determines whether this queue is disabled. The default value is `false`. | {:.bs-callout-warning} You cannot enable more than one `publisher` for each `topic`. diff --git a/src/guides/v2.4/extension-dev-guide/message-queues/implement-bulk.md b/src/guides/v2.4/extension-dev-guide/message-queues/implement-bulk.md deleted file mode 120000 index 83d2a5e9aa1..00000000000 --- a/src/guides/v2.4/extension-dev-guide/message-queues/implement-bulk.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/extension-dev-guide/message-queues/implement-bulk.md \ No newline at end of file diff --git a/src/guides/v2.4/extension-dev-guide/message-queues/implement-bulk.md b/src/guides/v2.4/extension-dev-guide/message-queues/implement-bulk.md new file mode 100644 index 00000000000..363d96c9551 --- /dev/null +++ b/src/guides/v2.4/extension-dev-guide/message-queues/implement-bulk.md @@ -0,0 +1,364 @@ +--- +group: php-developer-guide +title: Example bulk operations implementation +functional_areas: + - Services +--- + +This document describes how bulk operations can be implemented. There are three primary tasks to accomplish this: + +* Create a [publisher](https://glossary.magento.com/publisher-subscriber-pattern) that sends messages to the message queue +* Create a consumer that receives and processes messages +* Configure the message queues + +### Create a publisher {#createpublisher} + +A publisher's duties include scheduling a bulk operation. It must generate a `bulkUuid` for each operation, send each operation to the message queue, and report on the status of each operations. + +The following code sample shows how these duties can be completed. + +{% collapsible Code sample: %} + +```php +userContext = $userContextInterface; + $this->bulkManagement = $bulkManagement; + $this->operationFactory = $operationFactory; + $this->identityService = $identityService; + $this->urlBuilder = $urlBuilder; + $this->jsonHelper = $jsonHelper; + + } + + /** + * Schedule new bulk operation + * + * @param array $operationData + * @throws LocalizedException + * @return void + */ + public function execute($operationData) + { + $operationCount = count($operationData); + if ($operationCount > 0) { + $bulkUuid = $this->identityService->generateId(); + $bulkDescription = 'Specify here your bulk description'; + + $operations = []; + foreach ($operationData as $operation) { + + $serializedData = [ + //this data will be displayed in Failed item grid in ID column + 'entity_id' => $operation['entity_id'], + //add here logic to add url for your entity(this link will be displayed in the Failed item grid) + 'entity_link' => $this->urlBuilder->getUrl('your_url'), + //this data will be displayed in Failed item grid in the column "Meta Info" + 'meta_information' => 'Specify here meta information for your entity',//this data will be displayed in Failed item grid in the column "Meta Info" + ]; + $data = [ + 'data' => [ + 'bulk_uuid' => $bulkUuid, + //topic name must be equal to data specified in the queue configuration files + 'topic_name' => '%your_topic name%', + 'serialized_data' => $this->jsonHelper->jsonEncode($serializedData), + 'status' => OperationInterface::STATUS_TYPE_OPEN, + ] + ]; + + /** @var OperationInterface $operation */ + $operation = $this->operationFactory->create($data); + $operations[] = $operation; + + } + $userId = $this->userContext->getUserId(); + $result = $this->bulkManagement->scheduleBulk($bulkUuid, $operations, $bulkDescription, $userId); + if (!$result) { + throw new LocalizedException( + __('Something went wrong while processing the request.') + ); + } + } + } +} +``` + +{% endcollapsible %} + +### Create a consumer {#createconsumer} + +A consumer class receives messages from the message queue and changes the status after it is processed. The following example defines a consumer that handles price update bulk operations. + +{% collapsible Code sample: %} + +```php +logger = $logger; + $this->jsonHelper = $jsonHelper; + $this->operationManagement = $operationManagement; + } + + /** + * Processing operation for update price + * + * @param OperationInterface $operation + * @return void + */ + public function processOperation(OperationInterface $operation) + { + $status = OperationInterface::STATUS_TYPE_COMPLETE; + $errorCode = null; + $message = null; + $serializedData = $operation->getSerializedData(); + $unserializedData = $this->jsonHelper->jsonDecode($serializedData); + try { + //add here your own logic for async operations + } catch (\Zend_Db_Adapter_Exception $e) { + //here sample how to process exceptions if they occurred + $this->logger->critical($e->getMessage()); + //you can add here your own type of exception when operation can be retried + if ( + $e instanceof LockWaitException + || $e instanceof DeadlockException + || $e instanceof ConnectionException + ) { + $status = OperationInterface::STATUS_TYPE_RETRIABLY_FAILED; + $errorCode = $e->getCode(); + $message = __($e->getMessage()); + } else { + $status = OperationInterface::STATUS_TYPE_NOT_RETRIABLY_FAILED; + $errorCode = $e->getCode(); + $message = __('Sorry, something went wrong during product prices update. Please see log for details.'); + } + + } catch (NoSuchEntityException $e) { + $this->logger->critical($e->getMessage()); + $status = ($e instanceof TemporaryStateExceptionInterface) ? OperationInterface::STATUS_TYPE_NOT_RETRIABLY_FAILED : OperationInterface::STATUS_TYPE_NOT_RETRIABLY_FAILED; + $errorCode = $e->getCode(); + + $message = $e->getMessage(); + unset($unserializedData['entity_link']); + $serializedData = $this->jsonHelper->jsonEncode($unserializedData); + } catch (LocalizedException $e) { + $this->logger->critical($e->getMessage()); + $status = OperationInterface::STATUS_TYPE_NOT_RETRIABLY_FAILED; + $errorCode = $e->getCode(); + $message = $e->getMessage(); + } catch (\Exception $e) { + $this->logger->critical($e->getMessage()); + $status = OperationInterface::STATUS_TYPE_NOT_RETRIABLY_FAILED; + $errorCode = $e->getCode(); + $message = __('Sorry, something went wrong during product prices update. Please see log for details.'); + } + + //update operation status based on result performing operation(it was successfully executed or exception occurs + $this->operationManagement->changeOperationStatus( + $operation->getId(), + $status, + $errorCode, + $message, + $serializedData + ); + } +} +``` + +{% endcollapsible %} + +### Configure message queues {#configmq} + +The message queue topology must be configured to implement bulk operations. Create or edit the following files in the module's `app/code///etc` directory. + +* `communication.xml` +* `di.xml` +* `queue_consumer.xml` +* `queue_publisher.xml` +* `queue_topology.xml` + +For more information about the `di.xml` file, see [Dependency Injection]({{page.baseurl}}/extension-dev-guide/depend-inj.html). For information the other files, see [Configure message queues]({{page.baseurl}}/extension-dev-guide/message-queues/config-mq.html). + +#### Create `communication.xml` + +The `communication.xml` file defines aspects of the message queue system that apply to all topics for the [module](https://glossary.magento.com/module). Create this file with the following contents: + +```xml + + + + + +``` + +#### Create `di.xml` + +Add the following type to the module's `di.xml` file. + +```xml + + + + + + + +``` + +#### Create `queue_consumer.xml` + +The `queue_consumer.xml` file defines the relationship between a queue and its consumer. Create this file with the following contents: + +```xml + + + +``` + +#### Create `queue_publisher.xml` + +The `queue_publisher.xml` file defines the exchange where a topic is published. Create this file with the following contents: + +```xml + + + + + +``` + +#### Create `queue_topology.xml` + +The `queue_topology.xml` file defines the message routing rules and declares queues and exchanges. Create this file with the following contents: + +```xml + + + + + +``` + +{:.bs-callout-info} +Message queues connection is defined dynamically based on deployment configuration in `env.php`. If AMQP is configured in deployment configuration of the queue, AMQP connection is used. Otherwise, db connection is used. +As a result, if AMQP is configured in deployment configuration of the queue, connection declaration can be omitted in [message queue configuration files]({{page.baseurl}}/extension-dev-guide/message-queues/config-mq.html): `queue_customer.xml`, `queue_publisher.xml`, `queue_topology.xml`. + +#### Related Topics + +* [Message Queues Overview]({{page.baseurl}}/config-guide/mq/rabbitmq-overview.html) +* [Bulk Operations]({{page.baseurl}}/extension-dev-guide/message-queues/bulk-operations.html) +* [Configure message queues]({{page.baseurl}}/extension-dev-guide/message-queues/config-mq.html) From 1f26f6dc9ab1846d035a218d30c960e7b18c9ee0 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Tue, 1 Feb 2022 15:20:20 -0600 Subject: [PATCH 002/491] Update documentation related to queue/default_connection config setting --- src/guides/v2.4/config-guide/prod/config-reference-envphp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/config-guide/prod/config-reference-envphp.md b/src/guides/v2.4/config-guide/prod/config-reference-envphp.md index b8eb99ede34..7c3f09d7604 100644 --- a/src/guides/v2.4/config-guide/prod/config-reference-envphp.md +++ b/src/guides/v2.4/config-guide/prod/config-reference-envphp.md @@ -166,7 +166,7 @@ All database configurations are available in this node. ``` ## default_connection -Specify message queues default connection. Can be `db`, `amqp` or any custom value like `redissmq` (but `redissmq` should be configured to be able to use it). The default value is `db`. +Specify message queues default connection. Can be `db`, `amqp` or any custom value like `redismq` (but `redismq` should be configured to be able to use it). The default value is `db`. ```conf 'queue' => [ From 657d71672f31fd7c11d658a2df03af63cf829c91 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Thu, 3 Feb 2022 16:02:22 -0600 Subject: [PATCH 003/491] Update documentation related to queue/default_connection config setting --- src/guides/v2.4/config-guide/prod/config-reference-envphp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/config-guide/prod/config-reference-envphp.md b/src/guides/v2.4/config-guide/prod/config-reference-envphp.md index 7c3f09d7604..b3b35cfed7c 100644 --- a/src/guides/v2.4/config-guide/prod/config-reference-envphp.md +++ b/src/guides/v2.4/config-guide/prod/config-reference-envphp.md @@ -166,7 +166,7 @@ All database configurations are available in this node. ``` ## default_connection -Specify message queues default connection. Can be `db`, `amqp` or any custom value like `redismq` (but `redismq` should be configured to be able to use it). The default value is `db`. +Specify message queues default connection. Can be `db`, `amqp` or any custom message queue broker like `redismq`. But `redismq` or `amqp` should be configured first to be able to use it, otherwise messages won't be processed correctly. The default value is `db`. ```conf 'queue' => [ From b30a15ffaf19e3f19e07bd9277b70d8b2f7bb167 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Mon, 14 Feb 2022 14:22:31 -0600 Subject: [PATCH 004/491] Update description for queue/default_connection option in env.php --- src/guides/v2.4/config-guide/prod/config-reference-envphp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/config-guide/prod/config-reference-envphp.md b/src/guides/v2.4/config-guide/prod/config-reference-envphp.md index b3b35cfed7c..984b03abf21 100644 --- a/src/guides/v2.4/config-guide/prod/config-reference-envphp.md +++ b/src/guides/v2.4/config-guide/prod/config-reference-envphp.md @@ -166,7 +166,7 @@ All database configurations are available in this node. ``` ## default_connection -Specify message queues default connection. Can be `db`, `amqp` or any custom message queue broker like `redismq`. But `redismq` or `amqp` should be configured first to be able to use it, otherwise messages won't be processed correctly. The default value is `db`. +Specify message queues default connection. Can be `db`, `amqp` or a custom queue system like `redismq`. But `amqp` or `redismq` should be installed and configured first to be able to use it, otherwise messages won't be processed correctly. ```conf 'queue' => [ From 7c7d2538b4fb857482b5a8fa1a6c9b4c253d1bd5 Mon Sep 17 00:00:00 2001 From: Buba Suma Date: Fri, 4 Mar 2022 07:37:42 -0600 Subject: [PATCH 005/491] ACP2E-552: [Documentation] Document the new GraphQL field ConfigurableWishlistItem. configured_variant --- src/guides/v2.4/graphql/interfaces/wishlist-item-interface.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/guides/v2.4/graphql/interfaces/wishlist-item-interface.md b/src/guides/v2.4/graphql/interfaces/wishlist-item-interface.md index 6fad1cad690..9e913b4d98d 100644 --- a/src/guides/v2.4/graphql/interfaces/wishlist-item-interface.md +++ b/src/guides/v2.4/graphql/interfaces/wishlist-item-interface.md @@ -33,8 +33,9 @@ The `ConfigurableWishlistItem` object defines the following attributes that are Attribute | Data type | Description --- | --- | --- -`child_sku` | String! | The SKU of the simple product corresponding to a set of selected configurable options +`child_sku` | String! | Deprecated. Use `configured_variant` instead. The SKU of the simple product corresponding to a set of selected configurable options `configurable_options` | [SelectedConfigurableOption!] | An array of selected configurable options +`configured_variant` | [ProductInterface]({{page.baseurl}}/graphql/interfaces/product-interface.html) | Returns details about the selected variant. The value is null if some options are not configured ### DownloadableWishlistItem attributes {#DownloadableWishlistItem} From 91ab77cfdcbfc27cc641a8fd43181d87661d331b Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Tue, 8 Mar 2022 20:42:01 -0600 Subject: [PATCH 006/491] Grammar/style updates --- .../v2.4/config-guide/prod/config-reference-envphp.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/guides/v2.4/config-guide/prod/config-reference-envphp.md b/src/guides/v2.4/config-guide/prod/config-reference-envphp.md index 984b03abf21..46dc9d9e266 100644 --- a/src/guides/v2.4/config-guide/prod/config-reference-envphp.md +++ b/src/guides/v2.4/config-guide/prod/config-reference-envphp.md @@ -166,7 +166,8 @@ All database configurations are available in this node. ``` ## default_connection -Specify message queues default connection. Can be `db`, `amqp` or a custom queue system like `redismq`. But `amqp` or `redismq` should be installed and configured first to be able to use it, otherwise messages won't be processed correctly. + +Defines the default connection for message queues. The value can be `db`, `amqp`, or a custom queue system like `redismq`. If you specify any value other than `db`, the message queue software must be installed and configured first. Otherwise, messages will not be processed correctly. ```conf 'queue' => [ @@ -174,8 +175,8 @@ Specify message queues default connection. Can be `db`, `amqp` or a custom queue ] ``` -If `queue/default_connection` is specified in `env.php`, this connection is used for all message queues through the system, unless specific connection is defined in `queue_topology.xml`, `queue_publisher.xml` or `queue_consumer.xml` file. -For example, if `queue/default_connection` is `amqp` in `env.php` but `db` connection is specified in queue configuration related xml files of a module, this module will use MySQL as a message broker. +If `queue/default_connection` is specified in `env.php`, this connection is used for all message queues through the system, unless a specific connection is defined in a `queue_topology.xml`, `queue_publisher.xml` or `queue_consumer.xml` file. +For example, if `queue/default_connection` is `amqp` in `env.php` but a `db` connection is specified in the queue configuration XML files of a module, the module will use MySQL as a message broker. ## directories From 05d9c74c2ee5828b9d6a1ee5ed83110d0f24543c Mon Sep 17 00:00:00 2001 From: flowers Date: Wed, 9 Mar 2022 15:06:44 -0600 Subject: [PATCH 007/491] ACP2E-512: [Documentation] Update documentation for graphql cart requests with new errors field for ACP2E-42 --- .../graphql/interfaces/cart-item-interface.md | 22 ++++++++++++++----- src/guides/v2.4/graphql/queries/cart.md | 4 ++++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/guides/v2.4/graphql/interfaces/cart-item-interface.md b/src/guides/v2.4/graphql/interfaces/cart-item-interface.md index f48deaa9dd5..41d5d988e83 100644 --- a/src/guides/v2.4/graphql/interfaces/cart-item-interface.md +++ b/src/guides/v2.4/graphql/interfaces/cart-item-interface.md @@ -16,13 +16,14 @@ The `CartItemInterface` has the following implementations: The `CartItemInterface` and all of its implementations can contain the following attributes. -Attribute | Data Type | Description ---- | --- | --- -`id` | String | Deprecated. Use `uid` instead. The ID of the item -`prices` | [CartItemPrices](#CartItemPrices) | Includes the price of an item, any applied discounts, and calculated totals +Attribute | Data Type | Description +--- |----------------------------------------------------------------------------------| --- +`errors` | [CartItemError](#CartItemErrorObject) | An array of errors encountered while loading the cart item +`id` | String | Deprecated. Use `uid` instead. The ID of the item +`prices` | [CartItemPrices](#CartItemPrices) | Includes the price of an item, any applied discounts, and calculated totals `product` | [ProductInterface]({{ page.baseurl }}/graphql/interfaces/product-interface.html) | Contains attributes that are common to all types of products -`quantity` | Float | The number of items in the cart -`uid` | ID! | The unique ID for the `CartItemInterface` object +`quantity` | Float | The number of items in the cart +`uid` | ID! | The unique ID for the `CartItemInterface` object ### CartItemPrices object {#CartItemPrices} @@ -37,6 +38,15 @@ Attribute | Data Type | Description `row_total_including_tax` | Money! | The value of `row_total` plus the tax applied to the item `total_item_discount` | Money | The total of all discounts applied to the item +### CartItemError object {#CartItemErrorObject} + +The `CartItemError` object can contain the following attributes. + +Attribute | Data Type | Description +--- | --- | --- +`code`| [CartItemErrorType] | An error code that describes the error encountered. CartItemErrorType is an enumeration that can have the value of UNDEFINED, ITEM_QTY, or ITEM_INCREMENTS +`message`| [String] | A localized error message + ### SelectedCustomizableOption attributes {#SelectedCustomizableOption} Several product types support customization. Use the following attributes to identify a customized product that have been placed in a cart. diff --git a/src/guides/v2.4/graphql/queries/cart.md b/src/guides/v2.4/graphql/queries/cart.md index e574c96b197..265240ca374 100644 --- a/src/guides/v2.4/graphql/queries/cart.md +++ b/src/guides/v2.4/graphql/queries/cart.md @@ -95,6 +95,10 @@ The following query shows the status of a cart that is ready to be converted int sku } quantity + errors { + code + message + } } available_payment_methods { code From 60eddd78dfdaf97845452cc2f1a9e5e79a04b033 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Wed, 9 Mar 2022 15:08:33 -0600 Subject: [PATCH 008/491] Updates to the note at the end of the topic --- .../v2.4/extension-dev-guide/message-queues/implement-bulk.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/guides/v2.4/extension-dev-guide/message-queues/implement-bulk.md b/src/guides/v2.4/extension-dev-guide/message-queues/implement-bulk.md index 363d96c9551..57097aa54ea 100644 --- a/src/guides/v2.4/extension-dev-guide/message-queues/implement-bulk.md +++ b/src/guides/v2.4/extension-dev-guide/message-queues/implement-bulk.md @@ -354,8 +354,8 @@ The `queue_topology.xml` file defines the message routing rules and declares que ``` {:.bs-callout-info} -Message queues connection is defined dynamically based on deployment configuration in `env.php`. If AMQP is configured in deployment configuration of the queue, AMQP connection is used. Otherwise, db connection is used. -As a result, if AMQP is configured in deployment configuration of the queue, connection declaration can be omitted in [message queue configuration files]({{page.baseurl}}/extension-dev-guide/message-queues/config-mq.html): `queue_customer.xml`, `queue_publisher.xml`, `queue_topology.xml`. +Message queue connections are defined dynamically, based on the deployment configuration in the `env.php` file. If AMQP is configured in the deployment configuration of the queue, AMQP connections are used. Otherwise, database connections are used. +As a result, if AMQP is configured in the deployment configuration of the queue, you can omit connection declarations in the `queue_customer.xml`, `queue_publisher.xml`, and `queue_topology.xml` [message queue configuration files]({{page.baseurl}}/extension-dev-guide/message-queues/config-mq.html). #### Related Topics From e2e9ddd8a530e0346d676d24c8033aca245abf8e Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Thu, 10 Mar 2022 13:16:50 -0600 Subject: [PATCH 009/491] Update config-reference-envphp.md --- src/guides/v2.4/config-guide/prod/config-reference-envphp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/config-guide/prod/config-reference-envphp.md b/src/guides/v2.4/config-guide/prod/config-reference-envphp.md index 46dc9d9e266..6f2ff60c344 100644 --- a/src/guides/v2.4/config-guide/prod/config-reference-envphp.md +++ b/src/guides/v2.4/config-guide/prod/config-reference-envphp.md @@ -175,7 +175,7 @@ Defines the default connection for message queues. The value can be `db`, `amqp` ] ``` -If `queue/default_connection` is specified in `env.php`, this connection is used for all message queues through the system, unless a specific connection is defined in a `queue_topology.xml`, `queue_publisher.xml` or `queue_consumer.xml` file. +If `queue/default_connection` is specified in the system `env.php` file, this connection is used for all message queues through the system, unless a specific connection is defined in a `queue_topology.xml`, `queue_publisher.xml` or `queue_consumer.xml` file. For example, if `queue/default_connection` is `amqp` in `env.php` but a `db` connection is specified in the queue configuration XML files of a module, the module will use MySQL as a message broker. ## directories From e1405c8947d64db5cccf5d603f59bdee5e75dedd Mon Sep 17 00:00:00 2001 From: jfrontain Date: Wed, 13 Apr 2022 11:26:35 -0500 Subject: [PATCH 010/491] added skeleton files for 2.4.5, 2.4.4-p1, 2.4.3-p3, 2.3.7-p4 release notes --- src/_data/toc/release-notes.yml | 14 ++ .../release-notes/engcomm-2-4-5-issues.md | 0 .../release-notes/engcomm-2-4-5-partner.md | 0 src/guides/v2.3/release-notes/2-3-7-p4.md | 31 +++ .../v2.3/release-notes/bk-release-notes.md | 2 + src/guides/v2.4/release-notes/2-4-3-p3.md | 28 +++ src/guides/v2.4/release-notes/2-4-4-p1.md | 28 +++ .../v2.4/release-notes/bk-release-notes.md | 5 + .../v2.4/release-notes/commerce-2-4-5.md | 234 ++++++++++++++++++ .../v2.4/release-notes/open-source-2-4-5.md | 206 +++++++++++++++ 10 files changed, 548 insertions(+) create mode 100644 src/_includes/release-notes/engcomm-2-4-5-issues.md create mode 100644 src/_includes/release-notes/engcomm-2-4-5-partner.md create mode 100644 src/guides/v2.3/release-notes/2-3-7-p4.md create mode 100644 src/guides/v2.4/release-notes/2-4-3-p3.md create mode 100644 src/guides/v2.4/release-notes/2-4-4-p1.md create mode 100644 src/guides/v2.4/release-notes/commerce-2-4-5.md create mode 100644 src/guides/v2.4/release-notes/open-source-2-4-5.md diff --git a/src/_data/toc/release-notes.yml b/src/_data/toc/release-notes.yml index d53ef84c3a9..003e5213816 100644 --- a/src/_data/toc/release-notes.yml +++ b/src/_data/toc/release-notes.yml @@ -7,6 +7,14 @@ pages: include_versions: ["2.4"] children: + - label: Magento Open Source 2.4.5 Release Notes + url: /release-notes/open-source-2-4-5.html + + - label: Adobe Commerce 2.4.5 Release Notes + url: /release-notes/commerce-2-4-5.html + + - label: Adobe Commerce 2.4.4-p1 Release Notes + url: /release-notes/2-4-4-p1.html - label: Magento Open Source 2.4.4 Release Notes url: /release-notes/open-source-2-4-4.html @@ -14,6 +22,9 @@ pages: - label: Adobe Commerce 2.4.4 Release Notes url: /release-notes/commerce-2-4-4.html + - label: Adobe Commerce 2.4.3-p3 Release Notes + url: /release-notes/2-4-3-p3.html + - label: Adobe Commerce 2.4.3-p2 Release Notes url: /release-notes/2-4-3-p2.html @@ -58,6 +69,9 @@ pages: - label: Component Status url: /release-notes/component-status.html + - label: Adobe Commerce 2.3.7-p4 Release Notes + url: /release-notes/2-3-7-p4.html + - label: Adobe Commerce 2.3.7-p3 Release Notes url: /release-notes/2-3-7-p3.html diff --git a/src/_includes/release-notes/engcomm-2-4-5-issues.md b/src/_includes/release-notes/engcomm-2-4-5-issues.md new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/_includes/release-notes/engcomm-2-4-5-partner.md b/src/_includes/release-notes/engcomm-2-4-5-partner.md new file mode 100644 index 00000000000..e69de29bb2d diff --git a/src/guides/v2.3/release-notes/2-3-7-p4.md b/src/guides/v2.3/release-notes/2-3-7-p4.md new file mode 100644 index 00000000000..bff3c56ba11 --- /dev/null +++ b/src/guides/v2.3/release-notes/2-3-7-p4.md @@ -0,0 +1,31 @@ +--- +group: release-notes +title: Adobe Commerce 2.3.7-p4 Release Notes +--- + +{{ site.data.var.ee }} 2.3.7-p4 is a security release that provides security fixes that enhance your {{ site.data.var.ee }} 2.3.7 or {{ site.data.var.ce }} 2.3.7 deployment. It provides fixes for vulnerabilities that have been identified in the previous release ({{ site.data.var.ee }} 2.3.7-p3). + +{:.bs-callout-info} +PHP 7.3 reached end of support in December 2021, and {{ site.data.var.ee }} 2.3.x and {{ site.data.var.ce }} 2.3.x will reach end of support in September 2022. **We strongly recommend planning your upgrade now to {{ site.data.var.ee }} 2.4.x or {{ site.data.var.ce }} 2.4.x deployment to help maintain PCI compliance**. + +{:.bs-callout-info} +Releases may contain backward-incompatible changes (BIC). To review minor backward-incompatible changes, see [BIC reference]({{page.baseurl}}/release-notes/backward-incompatible-changes/reference.html). (Major backward-incompatible issues are described in [BIC highlights]({{page.baseurl}}/release-notes/backward-incompatible-changes/index.html). Not all releases introduce major BICs.) + +## What's in this release? + +This security patch includes: + +* Security enhancements +* security bug fixes. See Adobe Security Bulletin for the latest discussion of these fixed issues. + +### Security highlights + +Security improvements for this release improve compliance with the latest security best practices, including: + +## Installation and upgrade instructions + +For instructions on downloading and applying security patches (including patch 2.3.7-p4), see [Quick start install]({{site.baseurl}}/guides/v2.4/install-gde/composer.html). + +## More information? + +For general information about security patches, see [Introducing the New Security Patch Release](https://community.magento.com/t5/Magento-DevBlog/Introducing-the-New-Security-Patch-Release/ba-p/141287). diff --git a/src/guides/v2.3/release-notes/bk-release-notes.md b/src/guides/v2.3/release-notes/bk-release-notes.md index 5eaea28ca5d..cd89915b6a7 100644 --- a/src/guides/v2.3/release-notes/bk-release-notes.md +++ b/src/guides/v2.3/release-notes/bk-release-notes.md @@ -5,6 +5,8 @@ title: 2.3 Release Information ## Magento 2.3.x Release Notes +* [{{site.data.var.ee}} 2.3.7-p4 Release Notes]({{page.baseurl}}/release-notes/2-3-7-p4.html) + * [{{site.data.var.ee}} 2.3.7-p3 Release Notes]({{page.baseurl}}/release-notes/2-3-7-p3.html) * [{{site.data.var.ee}} 2.3.7-p2 Release Notes]({{page.baseurl}}/release-notes/2-3-7-p2.html) diff --git a/src/guides/v2.4/release-notes/2-4-3-p3.md b/src/guides/v2.4/release-notes/2-4-3-p3.md new file mode 100644 index 00000000000..087169a5d6e --- /dev/null +++ b/src/guides/v2.4/release-notes/2-4-3-p3.md @@ -0,0 +1,28 @@ +--- +group: release-notes +title: Adobe Commerce 2.4.3-p3 Release Notes +--- + +{{ site.data.var.ee }} 2.4.3-p3 is a security release that provides two security fixes that enhance your {{ site.data.var.ee }} 2.4.3 or {{ site.data.var.ce }} 2.4.3 deployment. It provides fixes for vulnerabilities that have been identified in the previous release ({{ site.data.var.ee }} 2.4.3 and {{ site.data.var.ce }} 2.4.3). + +{:.bs-callout-info} +Releases may contain backward-incompatible changes (BIC). To review minor backward-incompatible changes, see [BIC reference]({{page.baseurl}}/release-notes/backward-incompatible-changes/reference.html). (Major backward-incompatible issues are described in [BIC highlights]({{page.baseurl}}/release-notes/backward-incompatible-changes/index.html). Not all releases introduce major BICs.) + +## What's in this release? + +This security patch includes: + +* Security enhancements +* security bug fixes. See Adobe Security Bulletin for the latest discussion of these fixed issues. + +### Security highlights + +Security improvements for this release improve compliance with the latest security best practices, including: + +## Installation and upgrade instructions + +For instructions on downloading and applying security patches (including patch 2.4.3-p3), see [Quick start install]({{site.baseurl}}/guides/v2.4/install-gde/composer.html). + +## More information? + +For general information about security patches, see [Introducing the New Security Patch Release](https://community.magento.com/t5/Magento-DevBlog/Introducing-the-New-Security-Patch-Release/ba-p/141287). diff --git a/src/guides/v2.4/release-notes/2-4-4-p1.md b/src/guides/v2.4/release-notes/2-4-4-p1.md new file mode 100644 index 00000000000..f8d08fe54b9 --- /dev/null +++ b/src/guides/v2.4/release-notes/2-4-4-p1.md @@ -0,0 +1,28 @@ +--- +group: release-notes +title: Adobe Commerce 2.4.4-p1 Release Notes +--- + +{{ site.data.var.ee }} 2.4.4-p1 is a security release that provides two security fixes that enhance your {{ site.data.var.ee }} 2.4.4 or {{ site.data.var.ce }} 2.4.4 deployment. It provides fixes for vulnerabilities that have been identified in the previous release ({{ site.data.var.ee }} 2.4.4 and {{ site.data.var.ce }} 2.4.4). + +{:.bs-callout-info} +Releases may contain backward-incompatible changes (BIC). To review minor backward-incompatible changes, see [BIC reference]({{page.baseurl}}/release-notes/backward-incompatible-changes/reference.html). (Major backward-incompatible issues are described in [BIC highlights]({{page.baseurl}}/release-notes/backward-incompatible-changes/index.html). Not all releases introduce major BICs.) + +## What's in this release? + +This security patch includes: + +* Security enhancements +* security bug fixes. See Adobe Security Bulletin for the latest discussion of these fixed issues. + +### Security highlights + +Security improvements for this release improve compliance with the latest security best practices, including: + +## Installation and upgrade instructions + +For instructions on downloading and applying security patches (including patch 2.4.4-p1), see [Quick start install]({{site.baseurl}}/guides/v2.4/install-gde/composer.html). + +## More information? + +For general information about security patches, see [Introducing the New Security Patch Release](https://community.magento.com/t5/Magento-DevBlog/Introducing-the-New-Security-Patch-Release/ba-p/141287). diff --git a/src/guides/v2.4/release-notes/bk-release-notes.md b/src/guides/v2.4/release-notes/bk-release-notes.md index 433a22bca35..9c189ecdfe8 100644 --- a/src/guides/v2.4/release-notes/bk-release-notes.md +++ b/src/guides/v2.4/release-notes/bk-release-notes.md @@ -6,9 +6,14 @@ redirect_from: magento-release-information.html ## {{site.data.var.ee}} and {{site.data.var.ce}} 2.4.x release notes +* [{{site.data.var.ce}} 2.4.5 Release Notes]({{page.baseurl}}/release-notes/open-source-2-4-5.html) +* [{{site.data.var.ee}} 2.4.5 Release Notes]({{page.baseurl}}/release-notes/commerce-2-4-5.html) + +* [{{site.data.var.ee}} 2.4.4-p1 Release Notes]({{page.baseurl}}/release-notes/2-4-4-p1.html) * [{{site.data.var.ce}} 2.4.4 Release Notes]({{page.baseurl}}/release-notes/open-source-2-4-4.html) * [{{site.data.var.ee}} 2.4.4 Release Notes]({{page.baseurl}}/release-notes/commerce-2-4-4.html) +* [{{site.data.var.ee}} 2.4.3-p3 Release Notes]({{page.baseurl}}/release-notes/2-4-3-p3.html) * [{{site.data.var.ee}} 2.4.3-p2 Release Notes]({{page.baseurl}}/release-notes/2-4-3-p2.html) * [{{site.data.var.ee}} 2.4.3-p1 Release Notes]({{page.baseurl}}/release-notes/2-4-3-p1.html) * [{{site.data.var.ce}} 2.4.3 Release Notes]({{page.baseurl}}/release-notes/open-source-2-4-3.html) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md new file mode 100644 index 00000000000..6a9ed291dea --- /dev/null +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -0,0 +1,234 @@ +--- +group: release-notes +title: Adobe Commerce 2.4.5 Release Notes +--- + +{{ site.data.var.ee }} 2.4.5 introduces support for + +This release includes almost quality fixes and enhancements. + +{:.bs-callout-info} +Releases may contain backward-incompatible changes (BIC). {{ site.data.var.ee }} 2.4.5 contains backward-incompatible changes. To review these backward-incompatible changes, see [BIC reference]({{page.baseurl}}/release-notes/backward-incompatible-changes/reference.html). (Major backward-incompatible issues are described in [BIC highlights]({{page.baseurl}}/release-notes/backward-incompatible-changes/index.html). Not all releases introduce major BICs.) + +## Other release information + +Although code for these features is bundled with quarterly releases of the {{ site.data.var.ee }} core code, several of these projects (for example, B2B, Page Builder, and Progressive Web Applications (PWA) Studio) are also released independently. Bug fixes for these projects are documented in the separate, project-specific release information that is available in the documentation for each project. + +### Hotfixes included in this release + +{{ site.data.var.ee }} 2.4.5 includes resolution of all issues that were addressed by the following hotfixes, which were provided for {{ site.data.var.ee }} and {{ site.data.var.ce }} 2.4.4, 2.4.3-p2, and 2.3.7-p3: + + +## {{ site.data.var.ee }} 2.4.5 highlights + +Look for the following highlights in this release. + +### Security enhancements + +This release includes security fix and platform security improvements. This security fix has been backported to {{ site.data.var.ee }} 2.4.3-p3 and {{ site.data.var.ee }} 2.3.7-p4. + +No confirmed attacks related to these issues have occurred to date. However, certain vulnerabilities can potentially be exploited to access customer information or take over administrator sessions. Most of these issues require that an attacker first obtains access to the Admin. As a result, we remind you to take all necessary steps to protect your Admin, including but not limited to these efforts: + +* IP allowlisting +* [two-factor authentication]({{page.baseurl}}/security/two-factor-authentication.html) +* use of a VPN +* use of a unique location rather than `/admin` +* good password hygiene + +See Adobe Security Bulletin for the latest discussion of these fixed issues. + +#### Additional security enhancements + +Security improvements for this release improve compliance with the latest security best practices, including: + +### Platform enhancements + +{{ site.data.var.ee }} 2.4.5 now supports + +### Performance and scalability enhancements + +{{ site.data.var.ee }} performance enhancements + +Performance enhancements in this release: + +### GraphQL + +This release includes these GraphQL enhancements: + +#### New mutations + +* **Performance improvements**: + +See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on these enhancements. + +### B2B + +This release includes multiple bug fixes. See [B2B Release Notes]({{page.baseurl}}/release-notes/b2b-release-notes.html) + +### PWA Studio + +PWA Studio v.12.x.x is compatible with {{ site.data.var.ee }} 2.4.5. It includes support for . For information about enhancements and bug fixes, see [PWA Studio releases](https://github.com/magento/pwa-studio/releases). See [Version compatibility](https://developer.adobe.com/commerce/pwa-studio/integrations/adobe-commerce/version-compatibility/) for a list of PWA Studio versions and their compatible {{ site.data.var.ee }} core versions. + +### PayPal Payment enhancements + +### Live Search + +### Accessibility updates + +This release brings increased conformance to standard accessibility guidelines. + +### Page Builder + +## Fixed issues + + + +We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. + +### Installation, upgrade, deployment + +### Accessibility + +### AdminGWS + +### Backend + +### Bundle products + +### Cache + +### Cart and checkout + +### Catalog + +### Catalog rule + +### Configurable products + +### Customer + +### Customer segment + +### Email + +### Frameworks + +### General fixes + +### Gift cards + +### GraphQL + +### Image + +### Import/export + +### Index + +### Infrastructure + +#### Library removals and deprecations + +#### Library upgrades + +### Invoice + +### Logging + +### {{ site.data.var.ee }} coding standard + +### Media Gallery + +### MFTF + +#### New action groups + +#### Action groups + +Repetitive actions have been replaced with action groups in these tests: + +#### New tests + +#### Refactored tests + +### Order + +### Payment methods + +#### PayPal + +### Performance + +### Pricing + +### ProductAlert + +### Product video + +### Return Merchandise Authorizations (RMA) + +### Reviews + +### Sales + +### Sales Rule + +### Search + +### Shipping + +### Staging + +### Store + +### Tax + +### Test + +#### Unit tests + +### Theme + +### Translations and locales + +### UI + +### URL rewrites + +### Web API framework + +### Wish list + +## Known issues + +## Community contributions + +We are grateful to the wider Magento community and would like to acknowledge their contributions to this release. + +The Magento Community Engineering team [Magento Contributors](https://magento.com/magento-contributors) maintains a list of top contributing individuals and partners by month, quarter, and year. From that Contributors page, you can follow links to their merged PRs on GitHub. + +### Partner contributions + +The following table highlights contributions made by Partners. This table lists the Partner who contributed the pull request, the external pull request number, and the GitHub issue number associated with it (if available). + +{% include release-notes/engcomm-2-4-5-partner.md %} + +### Individual contributor contributions + +The following table identifies contributions from our community members. This table lists the community member who contributed the pull request, the external pull request number, and the GitHub issue number associated with it (if available). + +{% include release-notes/engcomm-2-4-5-issues.md %} + +### System requirements + +Our technology stack is built on PHP and MySQL. For more information, see [System Requirements]({{site.baseurl}}/system-requirements.html). + +### Installation and upgrade instructions + +You can install {{site.data.var.ee}} 2.4.5 using [Composer]({{ page.baseurl }}/install-gde/composer.html). + +## Migration tool kits + +The Data Migration Tool helps transfer existing Magento 1.x store data to Magento 2.x. This command-line interface includes verification, progress tracking, logging, and testing functions. For installation instructions, see [Install the Data Migration Tool]({{page.baseurl}}/migration/migration-tool-install.html). Consider exploring or contributing to the [Magento Data Migration repository](https://github.com/magento/data-migration-tool). + +The [Code Migration Toolkit](https://github.com/magento-commerce/code-migration) helps transfer existing Magento 1.x store extensions and customizations to Magento 2.x. The command-line interface includes scripts for converting Magento 1.x modules and layouts. \ No newline at end of file diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md new file mode 100644 index 00000000000..fdf93914334 --- /dev/null +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -0,0 +1,206 @@ +--- +group: release-notes +title: Magento Open Source 2.4.5 Release Notes +--- + +{{ site.data.var.ce }} 2.4.5 introduces + +This release includes almost quality fixes and enhancements. + + +{:.bs-callout-info} +Releases may contain backward-incompatible changes (BIC). {{ site.data.var.ce }} 2.4.5 contains backward-incompatible changes. To review these backward-incompatible changes, see [BIC reference]({{page.baseurl}}/release-notes/backward-incompatible-changes/reference.html). (Major backward-incompatible issues are described in [BIC highlights]({{page.baseurl}}/release-notes/backward-incompatible-changes/index.html). Not all releases introduce major BICs.) + +## Other release information + +Although code for these features is bundled with quarterly releases of the {{ site.data.var.ce }} core code, several of these projects are also released independently. Bug fixes for these projects are documented in the separate, project-specific release information that is available in the documentation for each project. + +### Hotfixes included in this release + +{{ site.data.var.ce }} 2.4.4 includes resolution of all issues that were addressed by the following hotfixes, which were provided for {{ site.data.var.ee }} and {{ site.data.var.ce }} 2.4.4, 2.4.3-p2, and 2.3.7-p3: + +## {{ site.data.var.ce }} 2.4.5 highlights + +Look for the following highlights in this release. + +### Security enhancements + +This release includes security fix and platform security improvements. This security fix has been backported to {{ site.data.var.ce }} 2.4.4-p1 and {{ site.data.var.ce }} 2.3.7-p4. + +No confirmed attacks related to these issues have occurred to date. However, certain vulnerabilities can potentially be exploited to access customer information or take over administrator sessions. Most of these issues require that an attacker first obtains access to the Admin. As a result, we remind you to take all necessary steps to protect your Admin, including but not limited to these efforts: + +* IP allowlisting +* [two-factor authentication]({{page.baseurl}}/security/two-factor-authentication.html) +* use of a VPN +* use of a unique location rather than `/admin` +* good password hygiene + +See Adobe Security Bulletin for the latest discussion of these fixed issues. + +#### Additional security enhancements + +Security improvements for this release improve compliance with the latest security best practices, including: + +### Platform enhancements + +{{ site.data.var.ce }} 2.4.5 now supports + +### GraphQL + +This release includes these GraphQL enhancements: + +* **Performance improvements**: + +See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on these enhancements. + +### PayPal Payment enhancements + +### Accessibility updates + +This release brings enhanced conformance to standard accessibility guidelines. + +### Page Builder + +## Fixed issues + + + +We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. + +### Installation, upgrade, deployment + +### Accessibility + +### Backend + +### Bundle products + +### Cache + +### Cart and checkout + +### Catalog + +### Catalog rule + +### Configurable products + +### Customer + +### Email + +### Frameworks + +### General fixes + +### GraphQL + +### Image + +### Import/export + +### Index + +### Infrastructure + +#### Library removals and deprecations + +#### Library upgrades + +### Invoice + +### Logging + +### {{ site.data.var.ee }} coding standard + +### Media Gallery + +### MFTF + +#### New action groups + +#### Action groups + +Repetitive actions have been replaced with action groups in these tests: + +#### New tests + +#### Refactored tests + +### Order + +### Payment methods + +#### PayPal + +### Performance + +### Pricing + +### ProductAlert + +### Product video + +### Reviews + +### Sales + +### Sales Rule + +### Search + +### Shipping + +### Store + +### Tax + +### Test + +#### Unit tests + +### Theme + +### Translations and locales + +### UI + +### URL rewrites + +### Web API framework + +### Wish list + +## Known Issues + +## Community contributions + +We are grateful to the wider Magento community and would like to acknowledge their contributions to this release. + +The Magento Community Engineering team [Magento Contributors](https://magento.com/magento-contributors) maintains a list of top contributing individuals and partners by month, quarter, and year. From that Contributors page, you can follow links to their merged PRs on GitHub. + +### Partner contributions + +The following table highlights contributions made by Partners. This table lists the Partner who contributed the pull request, the external pull request number, and the GitHub issue number associated with it (if available). + +{% include release-notes/engcomm-2-4-5-partner.md %} + +### Individual contributor contributions + +The following table identifies contributions from our community members. This table lists the community member who contributed the pull request, the external pull request number, and the GitHub issue number associated with it (if available). + +{% include release-notes/engcomm-2-4-5-issues.md %} + +### System requirements + +Our technology stack is built on PHP and MySQL. For more information, see [System Requirements]({{site.baseurl}}/system-requirements.html). + +### Installation and upgrade instructions + +You can install {{site.data.var.ce}} 2.4.5 using [Composer]({{ page.baseurl }}/install-gde/composer.html). + +## Migration tool kits + +The Data Migration Tool helps transfer existing Magento 1.x store data to Magento 2.x. This command-line interface includes verification, progress tracking, logging, and testing functions. For installation instructions, see [Install the Data Migration Tool]({{page.baseurl}}/migration/migration-tool-install.html). Consider exploring or contributing to the [Magento Data Migration repository](https://github.com/magento/data-migration-tool). + +The [Code Migration Toolkit](https://github.com/magento-commerce/code-migration) helps transfer existing Magento 1.x store extensions and customizations to Magento 2.x. The command-line interface includes scripts for converting Magento 1.x modules and layouts. From bf154ed285ea804dc4308d838c085ffe03719320 Mon Sep 17 00:00:00 2001 From: Aakash Kumar Date: Tue, 19 Apr 2022 18:04:53 -0500 Subject: [PATCH 011/491] Update config-cli-subcommands-index.md --- .../v2.3/config-guide/cli/config-cli-subcommands-index.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/guides/v2.3/config-guide/cli/config-cli-subcommands-index.md b/src/guides/v2.3/config-guide/cli/config-cli-subcommands-index.md index f322234f4d7..4cc99ef67ac 100644 --- a/src/guides/v2.3/config-guide/cli/config-cli-subcommands-index.md +++ b/src/guides/v2.3/config-guide/cli/config-cli-subcommands-index.md @@ -136,6 +136,7 @@ You can run the following indexes in parallel mode: - `Catalog Search Fulltext` can be paralleled by store views. - `Category Product` can be paralleled by store views. - `Catalog Price` can be paralleled by website and customer groups. +- `Catalog Permissions` can be paralleed by customer groups. If you want to use parallelization, you must set one of the available modes of dimensions for the product price indexer: @@ -149,6 +150,10 @@ For example, to set the mode per website: ```bash bin/magento indexer:set-dimensions-mode catalog_product_price website ``` +If you want to use parallelization for Catalog permissions, you must set one of the available modes of dimensions for the indexer: + +- `none` (default) +- `customer_group` Or to check the current mode: From 1d2eb0332841f03165408ab613bb322196f53a27 Mon Sep 17 00:00:00 2001 From: Aakash Kumar Date: Tue, 19 Apr 2022 21:28:57 -0500 Subject: [PATCH 012/491] Update config-cli-subcommands-index.md --- .../v2.3/config-guide/cli/config-cli-subcommands-index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/guides/v2.3/config-guide/cli/config-cli-subcommands-index.md b/src/guides/v2.3/config-guide/cli/config-cli-subcommands-index.md index 4cc99ef67ac..99be59e515a 100644 --- a/src/guides/v2.3/config-guide/cli/config-cli-subcommands-index.md +++ b/src/guides/v2.3/config-guide/cli/config-cli-subcommands-index.md @@ -136,7 +136,7 @@ You can run the following indexes in parallel mode: - `Catalog Search Fulltext` can be paralleled by store views. - `Category Product` can be paralleled by store views. - `Catalog Price` can be paralleled by website and customer groups. -- `Catalog Permissions` can be paralleed by customer groups. +- `Catalog Permissions` can be paralleled by customer groups. If you want to use parallelization, you must set one of the available modes of dimensions for the product price indexer: @@ -150,7 +150,7 @@ For example, to set the mode per website: ```bash bin/magento indexer:set-dimensions-mode catalog_product_price website ``` -If you want to use parallelization for Catalog permissions, you must set one of the available modes of dimensions for the indexer: +If you want to use parallelization for Catalog permissions, you must set one of the available modes of dimensions for the Catalog Permissions indexer: - `none` (default) - `customer_group` From 89f3643bb168db2016e9522c0a1de7dcb07d821c Mon Sep 17 00:00:00 2001 From: Donald Booth Date: Wed, 27 Apr 2022 11:30:29 -0400 Subject: [PATCH 013/491] Editorial change --- .../v2.3/config-guide/cli/config-cli-subcommands-index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/guides/v2.3/config-guide/cli/config-cli-subcommands-index.md b/src/guides/v2.3/config-guide/cli/config-cli-subcommands-index.md index 99be59e515a..da02deac4cf 100644 --- a/src/guides/v2.3/config-guide/cli/config-cli-subcommands-index.md +++ b/src/guides/v2.3/config-guide/cli/config-cli-subcommands-index.md @@ -138,7 +138,7 @@ You can run the following indexes in parallel mode: - `Catalog Price` can be paralleled by website and customer groups. - `Catalog Permissions` can be paralleled by customer groups. -If you want to use parallelization, you must set one of the available modes of dimensions for the product price indexer: +To use parallelization, set one of the available dimensions modes for the product price indexer: - `none` (default) - `website` @@ -150,7 +150,7 @@ For example, to set the mode per website: ```bash bin/magento indexer:set-dimensions-mode catalog_product_price website ``` -If you want to use parallelization for Catalog permissions, you must set one of the available modes of dimensions for the Catalog Permissions indexer: +To use parallelization for Catalog permissions, set one of the available dimensions modes for the Catalog Permissions indexer: - `none` (default) - `customer_group` From 416760a6791d9ef267c5c4b3aa1f79e6b54d454a Mon Sep 17 00:00:00 2001 From: jfrontain Date: Sun, 22 May 2022 14:58:06 -0500 Subject: [PATCH 014/491] added issue descriptions --- .../v2.4/release-notes/b2b-release-notes.md | 14 + .../v2.4/release-notes/commerce-2-4-5.md | 687 +++++++++++++++++- .../v2.4/release-notes/open-source-2-4-5.md | 9 +- 3 files changed, 703 insertions(+), 7 deletions(-) diff --git a/src/guides/v2.4/release-notes/b2b-release-notes.md b/src/guides/v2.4/release-notes/b2b-release-notes.md index 6c786d046c9..c4c237c97e7 100644 --- a/src/guides/v2.4/release-notes/b2b-release-notes.md +++ b/src/guides/v2.4/release-notes/b2b-release-notes.md @@ -9,6 +9,20 @@ These release notes can include: - {:.new} New features - {:.fix} Fixes and improvements +## Magento B2B - Adobe Commerce 2.4.5 + +- {:.fix} {{ site.data.var.ee }} no longer sends email notifications each time an existing Company is updated by an API call. Emails are now sent only when a company is created. + +- {:.fix} {{ site.data.var.ee }} now correctly calculates a negotiable quote grand total when the **Enable Cross Border Trade** tax calculation setting is enabled. + +- {:.fix} Configurable products are now moved to the last position in the product listing after stock is updated when the **Move out of stock to the bottom** setting is enabled. A new custom database query has been implemented to negate Elasticsearch index sort order, which disregards Admin-enabled sort order. Previously, configurable products and their child products were not moved to the bottom of the list when this setting was enabled. + +- {:.fix} Purchase Order email now honors the email sending setting of each website in a multi-site deployment. A check for the **Disable Email Communications** setting has been added to the custom logic for email queues. Previously, Magento did not honor the email sending setting of the secondary website. + +- {:.fix} The title of the SKU field of the Quick Order page has been edited for clarity. + +- {:.fix} {{ site.data.var.ee }} now displays a more informative error message when a shopper enters an invalid SKU in the **Enter SKU or Product Name** field. + ## Magento B2B - Adobe Commerce 2.4.4 - {:.fix} The time required to upgrade from {{ site.data.var.ee }} 2.3.x to {{ site.data.var.ee }} 2.4.x in deployments with more than 100,000 company roles has been substantially reduced. diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 6a9ed291dea..8ee523c53c8 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -18,7 +18,6 @@ Although code for these features is bundled with quarterly releases of the {{ si {{ site.data.var.ee }} 2.4.5 includes resolution of all issues that were addressed by the following hotfixes, which were provided for {{ site.data.var.ee }} and {{ site.data.var.ce }} 2.4.4, 2.4.3-p2, and 2.3.7-p3: - ## {{ site.data.var.ee }} 2.4.5 highlights Look for the following highlights in this release. @@ -47,7 +46,7 @@ Security improvements for this release improve compliance with the latest securi ### Performance and scalability enhancements -{{ site.data.var.ee }} performance enhancements +{{ site.data.var.ee }} performance enhancements Performance enhancements in this release: @@ -87,6 +86,10 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. ### Installation, upgrade, deployment + + +* You can now rename a data patch and add the old class name as an alias in the `patch_list` database table. Magento now checks whether data patch aliases already existed in the database before applying the patch. Previously, Magento threw an error under these conditions. + ### Accessibility ### AdminGWS @@ -95,34 +98,470 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. ### Bundle products + + +* You can now use the REST API to update product price attributes for a specific website. Previously, if some product attributes were overridden for a specific store view, you could not update a price attribute for that product in that same store view. + ### Cache ### Cart and checkout + + + + +* Company name is now visible as expected in the billing and shipping address sections of the checkout workflow. + + + +* The address search pop-up to save cards on the billing step of the checkout workflow no longer causes DOM errors. + + + +* The `addProductsToCart` mutation now works correctly with multiple products. Previously, this query returned the first product with an accurate subtotal, but returned a subtotal of 0 for other products. + + + +* Permission exceptions are now handled for restricted products that are added by SKU. Shoppers are now given an appropriate message on the storefront, and the quantity field in the error table is disabled. Previously, Magento threw an exception like this: `There has been an error processing your request`. + + + +* The update SQL query that update affected quotes after disabling cart price rule has been optimized to avoid locking the entire quote table. + + + +* Shoppers with global account sharing are no longer required to log in again to a secondary website in a multisite deployment when guest checkout is disabled. Customer data is now loaded when the shopper navigates to the subdomain. The shopper is no longer asked to login again, and the previous cart contents are displayed. + + + +* Address dropdown values in the checkout workflow no longer change for the remaining items in a quote when a single quantity address item is removed in a multi-address checkout. Previously, when a product was removed from a quote during multi-address checkout, the address dropdown value changed to default for all products. + + + +* `cart` query responses no longer return null responses when a product is out of stock. Previously, when you ran a query with an out-of-stock product, Magento displayed a `null` value under the `items` section in the response. + + + +* Shipping methods are now available as expected when a guest shopper creates an account after adding a product to their cart before proceeding to checkout. Previously, when a guest added a product the cart before creating an account, no shipping methods were available during checkout. After adding other products to the cart, shipping methods became available. + + + +* Shoppers can now add products to their carts when no options in the **Allow Countries** field have been selected. + + + +* Cart contents and login status are now reloaded as expected after a session times out when **Enable Persistence** is set to **yes**. [GitHub-35182](https://github.com/magento/magento2/issues/35182) + + + +* Mini cart subtotals are now updated correctly when a shopper navigates from the shipping page to the cart page in the checkout workflow for an order with multiple shipping addresses. Previously, the subtotal was doubled. + + + +* The mini cart now displays previously added products after a session timeout when **Enable Persistence** is enabled . [GitHub-35183](https://github.com/magento/magento2/issues/35183) + + + +* Unassigning inventory sources through bulk action (**Catalog** > **Products** > **Select Products** > **Actions - Unassign Inventory Source**) now works as expected when sources include SKUs that are duplicate with the exception of a leading zero (for example, `01234` and `1234`). Previously, Magento did not unassign inventory sources and threw an error. + ### Catalog + + +* Product URL keys now remain unchanged when updating product name via `/rest/default/V1/products/` for a store view. Previously, a new URL key was generated based on the new product name and assigned to the product, which overrode the URL key in that store view. + + + +* Rule-based upsell products are no longer shown twice on the product page. + + + +* Adding a product to a category from the Page Builder product widget set to carousel mode no longer triggers a page reload. + + + +* Products set to **Not Visible Individually** no longer appear in catalog Advanced Search results. + + + +* Dynamic bundle attributes are now updated correctly on the Mass Attribute Update page. Previously, the **Dynamic SKU** attribute remained set to **Yes** even though they were disabled on the Mass Update page. + + + +* Catalog rules are now correctly applied using incremental indexers rather than a full re-index. + + + +* You can now successfully switch between list and grid views of multi-page product lists. Previously, when you navigated to the last page of a multi-page product list view before switching to the grid view, {{ site.data.var.ee }} displayed this error: `Unfortunately there are no products in this category on our website currently`. + + + +* Admin Action Log reports now display updated product IDs and updated status information as expected. + + + +* Triggers are now restored as expected to the `catalogrule_product_price` table after a full reindex. Previously, triggers were removed from the `catalogrule_product_price` table after a `catalogrule_rule` or `catalogrule_product` full re-index. + + + +* Category rules that are used to assign products to categories no longer randomly change. + + + +* Magento no longer throws an error when a category rule assigns a product to a category, and the category is subsequently sorted. + + + +* Categories can no longer be updated globally by an administrator with scope-restricted access. Previously, when multiple websites used the same category but different products, and an administrator with permission restricted to one store changed products in the category, the product selection also changed for other stores. + + + +* The product details page now displays the correct price when a non-default currency for a specified locale is used. Previously, numbers were not localized as expected on the storefront. + + + +* Products are now enabled as expected after a schedule update completes. + + + +* The same error message is now displayed by the API and on the storefront when trying to retrieve the tier prices of a product with duplicate records. Previously, `PUT rest/all/V1/products/tier-prices` returned an incorrect error message. + + + +* Magento now provides validation error messages when you try to add a product URL key with a trailing hyphen. Informative tooltip text is also available. + + + +* The category list product count is now correct when using inventory single-source mode with the **Display Out-Of-Stock Products** setting enabled. A new plugin now uses `AreProductsSalableInterface` and `StockConfigurationInterface` to determine the total number of products. Previously, the category product list returned the wrong product quantity. + + + +* The new `ConfigurableWishlistItem.configured_variant` field has replaced the `ConfigurableWishlistItem.child_sku` field. The latter field triggered an internal error when a customer wishlist contained an un-configured configurable product. + + + +* URL rewrites are now generated only for the selected stores during the mass attribute update to change product visibility. Previously, the mass attribute update created a URL rewrite for the wrong store. + + + +* When the `Synchronize widget products with backend storage` setting is enabled, Magento adds recently view product data into the `catalog_product_frontend_action` database table. It includes the customer or visitor ID when adding records. The `recently_viewed_product` section in the response is now empty if customer ID and visitor ID are null. As a result, when the `customer/section/load` Ajax request is sent, Magento can correctly filter recently viewed products based on customer or visitor ID. Previously, the response included all the data available in the `catalog_product_frontend_action` database table because there was no check for an empty customer or visitor ID. + + + +* Category rules with a `Quantity` attribute for configurable products now work correctly when staging is implemented. Previously, when products had different values for `row_id` and `entity_id` in the `catalog_product_entity` table due to staging updates, the Visual Merchandiser **Match product by rule** functionality did not correctly filter the products. + + + +* Administrators can now change configurable product options in a shopper’s cart from the Admin slide panel. Previously, the slide panel did not work correctly. + + + +* Page Cache is now cleared as expected for the configurable product parent when changes to a child product are saved. Previously, because the cache was not cleared, changes were not selected on the storefront configuration product page. [GitHub-34508](https://github.com/magento/magento2/issues/34508) + ### Catalog rule +### CMS content + + + +* Merchants can no longer edit an active scheduled update from the entity edit page. + + + +* An administrator with restricted permissions can now view a CMS page in the CMS hierarchy after a scheduled update. + ### Configurable products + + +* Magento now displays the correct product price for a configurable product with a selected option after changing its quantity on product details page. Previously, the price was reset to the initial value after the quantity changed. + + + +* The `products` query now retrieves prices for configurable products that accurately reflect the **Display Out Of Stock** configuration setting. Previously, the query did not return accurate prices. + + + +* Configurable options are now linked to configurable products that are created in the Admin using `POST /rest/default/V1/configurable-products/configurable1/child`. + + + +* Multi-select attributes are now saved correctly during product edit. Previously, Magento saved the default option for non-selected attributes as well as selected attributes when saving a product. + + + +* Magento now displays configurable attributes as expected during the creation of global `select` attributes via a patch script. Previously, eligible global attributes were hidden. + + + +* `addConfigurableProductsToCart` queries can now be used to add configurable products with custom options. Previously, Magento threw this error: `Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62`. [GitHub-28860](https://github.com/magento/magento2/issues/28860) + ### Customer + + +* Magento now displays predefined EAV system attributes correctly according to the website setting on the storefront. Previously, website-level customer attributes that were enabled for one website and disabled for another were displayed as enabled for both websites. + ### Customer segment + + +* Customer segment-specific Related Product rules now work as expected. The issue has been fixed by calling a method to add a visitor-segment relation for a specific website. Previously, the segments for this rule fetched only on the basis of registered customers and websites. + ### Email + + +* System-issued emails are now successfully sent to recipients with ".-" in their email address. + + + +* Shoppers now get email reminders about their abandoned carts on the correct schedule. The new `TIMESTAMPDIFF(DAY, ,)` SQL function has replaced the `TO_DAYS()` function and calculates the difference in the timestamps on the basis of date and time. Previously, email reminders were not sent per schedule because of the incorrect calculation of two date-time values of cart abandonment (any timezone) and server time (UTC). + ### Frameworks + + +* The `bin/magento setup:config:set` command no longer overrides already set cache ID prefixes. + + + +* `setup:static-content:deploy -s compact` now includes styles from child themes as expected. Previously, these themes were not present on the storefront after deployment. + + + +* A new sniff has been added to check if closing slashes are used in `void` elements. + + + +* Magento no longer throws an SQL error after assigning a new source to a product and changing its quantity. [GitHub-35262](https://github.com/magento/magento2/issues/35262) + + + +* Attribute sort order now works as specified in the `di.xml` file after update. + + + +* The `updateCartCurrency` function now sets string instead of an object inside the cart object. Previously, Magento did not load a quote using `getQuote` because the `updateCartCurrency` function set an object instead of a string inside the cart object. [GitHub-34199](https://github.com/magento/magento2/issues/34199) + + + +* Deprecation notices no longer occur in unit tests due to`\DateTimeFormatter::formatObject()`. This method now works as expected with numeric values for `$format`. + ### General fixes + + +* Magento sessions no longer end after a GraphQL request is made. Previously, the `ClearCustomerSessionAfterRequest` plugin logged out the shopper. [GitHub-34550](https://github.com/magento/magento2/issues/34550) + + + +* Customer address attributes configuration settings are now loaded correctly based the website the customer is assigned to when you add a new customer address from the Admin that is assigned to a non-default website. + + + +* Category creation is now blocked for a restricted admin on both the Category page and Product Edit page. Previously, category creation was blocked on the category page, but was still possible through the Product Edit page. + + + +* Magento no longer throws an exception when you add a bundle product through Page Builder. + + + +* Categories can now be selected from the category tree as a condition for a customer segment. + + + +* You can now create a customer account on an iOS device with the inclined apostrophe (’) in the first, middle, or last name. Previously, only the straight apostrophe was allowed, and using iOS 11+ default inclined apostrophe resulted in a `Name is not valid!` error. + + + +* The `products` query now returns product information that accurately reflects the "Show Related Products" configuration. The `related_products`, `upsell_products`, and `crosssell_products` fields in the GraphQL ProductInterface are now resolved according to Show Related Products, Show Upsell Products, and Show Cross-Sell Products configuration respectively. + + + +The **Set Product as New From Date** attribute now displays the correct date when the **Set Product as New** attribute is set through a mass product bulk update. Previously, **Set Product as New From Date** was displayed as **Jan 1, 1970**. + + + +* Users with restricted roles are no longer automatically granted access to new modules. + + + +* Target rules based on categories display only products from the category that is declared in the rule. Previously, Related Product rules displayed products from categories that were assigned to product and not defined in the rule. + + + +* Related product rule conditions now work as expected with products that contain `multiselect` attributes. + + + +* Merchants can now add a tier price attribute (`tier_price`) to product comparisons. Previously, the product comparisons page crashed when the **Comparable on storefront** setting for this attribute was enabled. [GitHub-35244](https://github.com/magento/magento2/issues/35244) + ### Gift cards + + +* `products` queries now correctly returns product data that contains gift card products with a `gift-card` URL key. + ### GraphQL + + +* `addConfigurableProductsToCart` queries can now be used to add configurable products with custom options. Previously, Magento threw this error: `Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62`. [GitHub-28860](https://github.com/magento/magento2/issues/28860) + + + +* `CartItemInterface` now includes `customizable_options`. [GitHub-31180](https://github.com/magento/magento2/issues/31180) + + + +* A missing `price_range` attribute has been added to the GraphQL `BundleItemOption` type. [GitHub-35010](https://github.com/magento/magento2/issues/35010) + + + +* The `products` query no longer returns attributes as an aggregation when the **Use in Search Results** Layered Navigation setting is disabled. [GitHub-33318](https://github.com/magento/magento2/issues/33318) + + + +* The `updateCartCurrency` function now sets string instead of an object inside the cart object. Previously, Magento did not load a quote using `getQuote` because the `updateCartCurrency` function set an object instead of a string inside the cart object. [GitHub-34199](https://github.com/magento/magento2/issues/34199) + + + +* A `price_including_tax` field has been added to `CartItemPrices`. [GitHub-29057](https://github.com/magento/magento2/issues/29057) + + + +* The `new_from_data` and `new_to_datefields` in `ProductInterface` are no longer deprecated. [GitHub-34783](https://github.com/magento/magento2/issues/34783) + + + +* The `getCartDetails` query now returns only one payment methods for free orders. Previously, all active payment methods were returned in the query response. [GitHub-34036](https://github.com/magento/magento2/issues/34036) + + + +* The `GetLines` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, Magento threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) + + + +* The `GetProductsInCategory` query now returns `category_uid` as an aggregation as expected. [GitHub-32557](https://github.com/magento/magento2/issues/32557) + + + +* The `updateCartItems` query now removes products as expected when the product stock has reached the maximum stock amount. [GitHub-30220](https://github.com/magento/magento2/issues/30220) + + + +* The `urlresolver` query now resolves the path delimiter (/) correctly when multiple homepages have the same identifier. Previously, the query did not resolve the delimiter and returned null. [GitHub-33615](https://github.com/magento/magento2/issues/33615) + + + +* `customer` queries now fetch bundle product multi-select options as expected when querying orders. [GitHub-34717](https://github.com/magento/magento2/issues/34717) + + + +* Magento sessions no longer end after a GraphQL request is made. Previously, the `ClearCustomerSessionAfterRequest` plugin logged out the shopper. [GitHub-34550](https://github.com/magento/magento2/issues/34550) + + + +* `products` queries no longer returns price_range values for configurable products that are affected by disabled variants. [GitHub-33629](https://github.com/magento/magento2/issues/33629) + + + +* Configurable product price range in `products` query responses are now correctly calculated when the **Display Out of Stock Products** configuration setting is enabled. Previously, disabled options were taken into account in the minimum and maximum price calculation. + + + +* The `products` query now returns correctly filtered multiple categories when sorting by position. + + + +* `setShippingAddressesOnCart` requests now successfully validate region IDs. Previously, Magento threw an error when you used region ID instead of region code. + + + +* `products` queries now return only the categories associated with the website passed in the request. + + + +* The `categoryList` query now returns results that reflect the queried store's root category when the store specified in the header. Previously, categories from the default root category were included in results even though another store was specified in the header. + + + +* The `searchProducts` query no longer returns attributes as an aggregation when the **Use in Search Results Layered Navigation** setting is disabled. [GitHub-33318](https://github.com/magento/magento2/issues/33318) + + + +* A missing `price_range` attribute has been added to the GraphQL `BundleItemOption` type. [GitHub-35010](https://github.com/magento/magento2/issues/35010) + + + +* The `products` query no longer returns attributes as an aggregation when the **Use in Search Results** Layered Navigation setting is disabled. [GitHub-33318](https://github.com/magento/magento2/issues/33318) + + + +* A `price_including_tax` field has been added to `CartItemPrices`. [GitHub-29057](https://github.com/magento/magento2/issues/29057) + + + +* The `new_from_data` and `new_to_datefields` in `ProductInterface` are no longer deprecated. [GitHub-34783](https://github.com/magento/magento2/issues/34783) + + + +* The `getCartDetails` query now returns only one payment methods for free orders. Previously, all active payment methods were returned in the query response. [GitHub-34036](https://github.com/magento/magento2/issues/34036) + + + +* The `GetLines` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, Magento threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) + + + +* The `GetProductsInCategory` query now returns `category_uid` as an aggregation as expected. [GitHub-32557](https://github.com/magento/magento2/issues/32557) + + + +* The `updateCartItems` query now removes products as expected when the product stock has reached the maximum stock amount. [GitHub-30220](https://github.com/magento/magento2/issues/30220) + + + +* The `urlresolver` query now resolves the path delimiter (/) correctly when multiple homepages have the same identifier. Previously, the query did not resolve the delimiter and returned null. [GitHub-33615](https://github.com/magento/magento2/issues/33615) + + + +* `customer` queries now fetch bundle product multi-select options as expected when querying orders. [GitHub-34717](https://github.com/magento/magento2/issues/34717) + + + +* `products` queries no longer returns price_range values for configurable products that are affected by disabled variants. [GitHub-33629](https://github.com/magento/magento2/issues/33629) + ### Image + + +* Images on product details page no longer flicker, and the image remains centered as expected. Previously, after a product detail page completed loading an image, the image visibly shifted downwards. + ### Import/export + + +* Related, upsell, and cross-sell product position in the export CSV is now correct after the deletion of a cross-sell product from the Admin before regenerating the CSV file. Previously, cross-sell product positions were not re-calculated after a cross-sell product was removed, and product position order was incorrect. + + + +* Magento now checks for a custom view before filtering columns when exporting reports. Previously, exported reports did not take into account custom views, and exported columns were incorrect. + + + +* Magento now successfully imports images with a long file name. Previously, Magento did not import the image and threw this error: `Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in row(s):`. + + + +* Category ID attributes are now available in scheduled export filters. + + + +* Bundle products that contain a question mark (?) in the option title can now be imported successfully because of improvements to the query builder inside `populateExistingOptions` method. The option title is also displayed correctly. Previously, after the initial import, successive imports resulted in corrupted behavior and doubled options. Shoppers could not add the product to the cart, either. + ### Index ### Infrastructure @@ -135,6 +574,10 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. ### Logging + + +* Customer, customer address, and order actions are now logged correctly in the Admin action report. Previously, Magento did not log actions if the `postDispatch` handler had not been specified in configuration settings. + ### {{ site.data.var.ee }} coding standard ### Media Gallery @@ -151,22 +594,92 @@ Repetitive actions have been replaced with action groups in these tests: #### Refactored tests +### Newsletter + + + +* Logged-in customers are no longer marked as guests in Admin > **Marketing** > **Newsletter Subscribers**. + + + +* The newsletter subscription confirmation email now has the correct, store-specific email address in the **From** field if the customer is assigned to a non-default store and subscribed or unsubscribed from the Admin. Previously, the customer received an email with default email in **From** header. [GitHub-34963](https://github.com/magento/magento2/issues/34963) + ### Order + + +* You can now successfully create a new customer from a new order with custom customer attribute that are hidden from the storefront. Previously, Magento did not save the correct values for the custom customer attribute. + + + +* Reward points can now be refunded when store credit functionality is disabled. + + + +* Guest customer details are now saved successfully after an order is edited. Previously, some customer details were lost, including `customer_firstname` and `customer_lastname, x_forwarded_for`. + + + +* Merchants can no longer create a credit memo with a decimal total quantity when **Decimal qty** is disabled on a product or global setting level. Previously, merchants could create a credit memo for decimal total quantity where it was not applicable. + + + +* Filter by date now works properly for Invoices, shipments, credit memos, CMS pages, and CMS block grids when the timezone set in preferences differs from the timezone set on a local computer. Previously, the date was incorrectly parsed and the filtered results included data outside of the set date range. + + + +* Magento no longer changes custom email addresses that are assigned to orders when you change the main email address assigned to the customer on the Admin account edit page. Previously, when you edited the main email address for a customer, the new email address was assigned to every order created for that customer. [GitHub-34397](https://github.com/magento/magento2/issues/34397) + + + +* Magento now displays records from the requested store on the credit memos grid page in deployments running PHP 7.4. Previously, Magento threw the following error after you created a credit memo and tried to view it: `The store that was requested wasn't found. Verify the store and try again`. + ### Payment methods + + +* Administrators can now place an order on the Admin using the PayPal PayflowPro payment method. Previously, Magento displayed this error: `No such entity with cartId = 0`. + #### PayPal + + +* Magento now shows the correct customer name in a guest order paid for with PayPal. Previously, the customer name was displayed as Guest. + ### Performance + + +* The performance of dynamic block loading has been improved. Previously, visitor segments were not cached per website, which caused redundant queries to the database for the same data. + + + +* Redis cache management has been improved by the addition of TTL (expiration date) for configurable product associated products data caches. Previously, these caches were not evicted due to missing TTL if redis keys eviction policy is configured to any of volatile eviction policies. + ### Pricing + + +* Price attributes that have no value in the default scope (but that are defined at the store-view level) are now indexed properly. Previously, the SQL expressions that retrieves price attributes values from EAV table did not take into account the scenario in which the value was not defined in the default scope. + + + +* The price listed on the product detail page is now the same as the price listed in the checkout workflow for tier prices that differ by quantity selected (for example, a product priced differently based on buying 2 items versus 5 items). Previously, the checkout price reflected the price for the lowest product quantity. + ### ProductAlert ### Product video ### Return Merchandise Authorizations (RMA) + + +* The `/rest/default/V1/returnsAttributeMetadata` endpoint now works correctly when the `rma_item` entity default attribute set ID differs from the default installation ID. Previously, this endpoint returned an empty result if these IDs differed. + + + +* The **Use Default** checkbox to enable RMA on the product edit page now works as expected for Default Store. Previously, the checkbox was cleared immediately after the product was saved. + ### Reviews ### Sales @@ -175,14 +688,98 @@ Repetitive actions have been replaced with action groups in these tests: ### Search + + +* Filtering products by color swatch on the layered navigation displays the correct image for the products after the fix. + + + +* Elasticsearch queries now work as expected when `int` is configured as a searchable backend `type` attribute. Previously, Magento threw an `Elasticsearch\Common\Exceptions\BadRequest400Exception` exception. + + + +* You can now use search synonyms together with the **Minimum Terms to Match** parameter In Elasticsearch queries. Previously, if this parameter was specified in settings and search terms were added for specific keywords, the search returned no results. + + + +* Magento now displays an accurate search results suggestion count on the storefront in deployments where Search Suggestions and the **Show Results Count for Each Suggestion** setting are enabled. Previously, the count displayed next to the keywords was zero. + + + +* Products sorted by custom attributes on the Catalog page are now displayed in the expected order. Previously, products were sorted by their attribute option value ID, which reflects the order in which they they were added to the attribute. [GitHub-33810](https://github.com/magento/magento2/issues/33810) + ### Shipping + + +* Magento no longer throws an error when loading UPS shipping rates if no allowed shipping methods are selected. Previously, when a shopper entered a shipping address in the checkout workflow under these conditions, no other shipping methods were displayed, and Magento displayed an error on the storefront. [GitHub-34411](https://github.com/magento/magento2/issues/34411) + ### Staging + + +* Magento no longer cleans the full-page cache after applying a staging update for a sales rule in which the cached pages remain unchanged. + + + +* The content staging dashboard no longer displays inactive permanent updates. + + + +* Changing the end date for a staging update from the staging dashboard now successfully applies these changes to the staging update and its entities. (A queue has been introduced to process staging updates changes.) + + + +* Merchants can now remove an end date for a schedule update or delete and recreate an update. Previously, when an end date was removed, an entity remained scheduled for that time. Magento now removes the outdated update for removed rollback. + + + +* Active schedule updates for a CMS page are now visible as expected in the Scheduled Changes section on the CMS page. + + + +* The `custom_design_to` attribute value is now updated as expected when a schedule update is changed. Previously, two separate category design updates with no end time were treated as one. When one of the schedule updates was deleted while the first one was running, the `custom_design_from` time value became greater than the `custom_design_to` time values in the next schedule update. + + + +* Magento now displays a form populated with data from the previous scheduled update as expected when you try to create the second schedule update for a product. Previously, Magento displayed this error when you tried to create the second update with a past start date: `The Start Time of this Update cannot be changed. It's been already started`. + + + +* The `vendor/magento/module-catalog-staging/Setup/Patch/Data/MigrateCatalogProducts.php` data patch no longer fails when the database includes product with custom options and the `special_from_date` attribute is set. + ### Store ### Tax + + +* Fixed Product Tax (FPT) is now correctly displayed for products in the shopping cart. Previously, if multiple products in the shopping cart have **Fixed Product Tax (FPT)** and **Apply Tax To FPT** was enabled, all FPTs were assigned to the last product in the shopping cart and reset for other products. + + + +* The Fixed Product Tax (FPT) total for the order summary section of the checkout workflow is now calculated correctly. + + + +* Magento now updates the Excluding Tax tier price for a simple product on the product page as expected after the quantity of the simple product has changed. + + + +* Validation has been added to the store configuration page to verify if the selected country from the dropdown list is on the EU country list. The **Validate VAT Number** button is now visible only for EU countries. Previously, the button was visible for all countries, including the U.K. + + + +* Tier price are now calculated correctly when **Display Product Prices In Catalog** is set to either **Excluding Tax** or **Including and Excluding Tax**. Previously, the product details page displayed tier prices with taxes despite the setting. + + + +* Taxes are now applied correctly for orders to any valid address in storefronts using the Portuguese locale. [GitHub-34271](https://github.com/magento/magento2/issues/34271) + + + +* The `getCartDetails` query no longer includes tax when returning `subtotal_with_discount_excluding_tax`. [GitHub-33905](https://github.com/magento/magento2/issues/33905) + ### Test #### Unit tests @@ -191,14 +788,100 @@ Repetitive actions have been replaced with action groups in these tests: ### Translations and locales + + +* You can now use the Translate inline tool to edit the same element more that once. Previously, only the first change made using this tool was included. + + + +* The store view selector no longer blocks the translation pane when you edit Admin text or labels. You can now edit these features from the translation pane, and the interface displays these changes when you click **Submit**. + + + +* The Admin date-time format for Brazilian Portuguese and French locales is now valid. + ### UI + + +* Long product names in the **Catalog** > **Products** grid are now word-wrapped instead of being displayed in a single line. + + + +* You can now edit default stock from Admin **Stores** > **Inventory** > **Stocks**. Previously, a JavaScript error was displayed in the console when you tried to add or remove sources from default stock, although you could assign websites to default stock. + + + +* The minimal and maximum date-of-birth range is now saved as a correct timestamp and then converted from a valid timestamp to a valid date format. + + + +* The unavailability of `magento.com` no longer cause performance issues during Admin login. A timeout on the request to fetch release notification has been added. + + + +* The results of the Admin order, customer, and product grid filters now persist as expected when displayed in the Chrome browser. + + + +* You can now create a customer from the Admin when `Magento_LoginAsCustomerAdminUi` is enabled and **Store View To Login To** is set to manual selection. Previously, Magento threw this error: `(Magento\Framework\Exception\LocalizedException): Unable to get Customer ID`. [GitHub-33096](https://github.com/magento/magento2/issues/33096) + + + +* The Next arrow is now disabled as expected when a shopper reaches the last thumbnail image in the product image gallery. + + + +* The **Search by keyword** input field now has an `aria-label` element instead of a placeholder on the **Catalog** > **Product** page. + ### URL rewrites +### Video + + + +* You can now use YouTube URL parameters using Page Builder to add a new video. Previously, these parameters were automatically removed from the URL. + + + +* You can now set a Vimeo video to run in the background in a `banner` element when CSP is set to `restrict mode`. Previously, Magento threw this JavaScript error when you tried to save the element: `Refused to connect to 'https://vimeo.com/api/v2/video/76979871.json' because it violates the following Content Security Policy directive`. + ### Web API framework + + +* Mutex has been implemented for orders to prevent race conditions during update by concurrent requests. Previously, race conditions during concurrent REST API calls resulted in an overwrite of shipping status information in the Admin Items Ordered table. + + + +* Dynamic bundle attributes are now updated correctly on the Mass Attribute Update page. Previously, the **Dynamic SKU** attribute remained set to **Yes** even though they were disabled on the Mass Update page. + + + +* Product image role inheritance is now preserved unless explicitly defined in the payload when updating a product in a specific store view via the REST API. + + + +* The Swagger schema (`/rest/schema`) now uses unique operation IDs. + + + +* Cart price rules created through the `/rest/V1/salesRules/` endpoint now retain existing coupon code values after changing status from disabled to enabled. [GitHub-35298](https://github.com/magento/magento2/issues/35298) + + + +* Cart price rules created through the `/rest/V1/salesRules/` endpoint now contain valid `from_date` and `to_date` values. [GitHub-35265](https://github.com/magento/magento2/issues/35265) + + + +* `CartItemInterface` now includes `customizable_options`. [GitHub-31180](https://github.com/magento/magento2/issues/31180) + ### Wish list + + +* Updating an item quantity from the wishlist page now updates the quantity on the product detail page as expected. Magento now picks up the updated value from the product URL and populates the `qty` field of product detail page from the wishlist itself. + ## Known issues ## Community contributions diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index fdf93914334..68b8d680242 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -3,11 +3,10 @@ group: release-notes title: Magento Open Source 2.4.5 Release Notes --- -{{ site.data.var.ce }} 2.4.5 introduces +{{ site.data.var.ce }} 2.4.5 introduces This release includes almost quality fixes and enhancements. - {:.bs-callout-info} Releases may contain backward-incompatible changes (BIC). {{ site.data.var.ce }} 2.4.5 contains backward-incompatible changes. To review these backward-incompatible changes, see [BIC reference]({{page.baseurl}}/release-notes/backward-incompatible-changes/reference.html). (Major backward-incompatible issues are described in [BIC highlights]({{page.baseurl}}/release-notes/backward-incompatible-changes/index.html). Not all releases introduce major BICs.) @@ -43,7 +42,7 @@ Security improvements for this release improve compliance with the latest securi ### Platform enhancements -{{ site.data.var.ce }} 2.4.5 now supports +{{ site.data.var.ce }} 2.4.5 now supports ### GraphQL @@ -57,7 +56,7 @@ See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on thes ### Accessibility updates -This release brings enhanced conformance to standard accessibility guidelines. +This release brings enhanced conformance to standard accessibility guidelines. ### Page Builder @@ -65,7 +64,7 @@ This release brings enhanced conformance to standard accessibility guidelines. -We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. +We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. ### Installation, upgrade, deployment From 53587ede7833ffae2836ba8c256299ac37009b9d Mon Sep 17 00:00:00 2001 From: jfrontain Date: Sun, 22 May 2022 19:03:07 -0500 Subject: [PATCH 015/491] added inventory and b2b notes --- src/guides/v2.3/inventory/release-notes.md | 26 ++++ .../v2.4/release-notes/b2b-release-notes.md | 116 +++++++++--------- .../v2.4/release-notes/commerce-2-4-5.md | 80 ++++++------ 3 files changed, 125 insertions(+), 97 deletions(-) diff --git a/src/guides/v2.3/inventory/release-notes.md b/src/guides/v2.3/inventory/release-notes.md index 6b9f7e481c1..a53df734130 100644 --- a/src/guides/v2.3/inventory/release-notes.md +++ b/src/guides/v2.3/inventory/release-notes.md @@ -20,6 +20,32 @@ The release notes include: - {:.fix}Fixes and improvements - {:.bug}Known issues +### v1.2.x + +{{site.data.var.im}} 1.2.x (module version: `magento/inventory-metapackage = 1.2.4`) is supported with version 2.4.4 and compatible with version 2.4.0 of {{site.data.var.ce}}, {{site.data.var.ee}}, and {{site.data.var.ece}}. + +- {:.fix} The default inventory stock status of bundle and grouped products updates as expected when a merchant creates a shipment from the Admin. Previously, the status of these products remained unchanged after a shipment was created. + +- {:.fix} Configurable products are now returned back to stock when one of these conditions is met: the parent product has at least one saved child in stock, or the configurable itself was updated and set as **in stock** and had at least one child in stock + +- {:.fix} Inventory changes implemented through the REST API are now reflected as expected on product detail pages. The cache for catalog products is now cleaned after comparing the last and current stock statuses. Previously, omitting the callback function resulted in the incorrect evaluation of stock status changes, which did not trigger the necessary cache cleaning. As a result, the storefront did not reflect the inventory changes. + +- {:.fix} Products that are assigned to default stock and that were previously out of stock are now visible on the storefront after updating the source item using `V1/inventory/source-items’. Previously, this REST API endpoint set the wrong 'stock_status`. + +- {:.fix} Unassigning inventory sources through bulk action (**Catalog** > **Products** > **Select Products** > **Actions - Unassign Inventory Source**) now works as expected when sources include SKUs that are duplicate with the exception of a leading zero (for example, `01234` and `1234`). Previously, Magento did not unassign inventory sources and threw an error. + +- {:.fix} Product stock status is now always **in stock** on the storefront when infinite back orders are enabled and the product is assigned to a custom stock, regardless of the quantity backordered. Previously, products went out of stock even when back orders were enabled. + +- {:.fix} Configurable product parent and child product stock is now updated correctly after the source item is updated with `POST /V1/inventory/source-items`. + +- {:.fix} Out-of-stock grouped products are no longer listed on the storefront Category page. + +- {:.fix} Corrected the package name in `CatalogInventory` `composer.json`. + +- {:.fix} Back order status is now correctly represented in the Admin after placing an order with zero quantity product in a multi source/stock deployment. [GitHub-33756](https://github.com/magento/magento2/issues/33756) + +- {:.fix} Out-of-stock bundle products are no longer displayed on the storefront Category page when the bundle product is updated from the stocks section. + ### v1.2.4 {{site.data.var.im}} 1.2.4 (module version: `magento/inventory-metapackage = 1.2.4`) is supported with version 2.4.4 and compatible with version 2.4.0 of {{site.data.var.ce}}, {{site.data.var.ee}}, and {{site.data.var.ece}}. diff --git a/src/guides/v2.4/release-notes/b2b-release-notes.md b/src/guides/v2.4/release-notes/b2b-release-notes.md index c4c237c97e7..d513ffd9df6 100644 --- a/src/guides/v2.4/release-notes/b2b-release-notes.md +++ b/src/guides/v2.4/release-notes/b2b-release-notes.md @@ -3,13 +3,13 @@ group: release-notes title: Commerce B2B Release Notes --- -The release notes for the B2B extension captures additions and bug fixes that Magento has added during a release cycle. +The release notes for the B2B extension captures additions and bug fixes that {{ site.data.var.ee }} has added during a release cycle. These release notes can include: - {:.new} New features - {:.fix} Fixes and improvements -## Magento B2B - Adobe Commerce 2.4.5 +## {{ site.data.var.ee }} B2B - Adobe Commerce 2.4.5 - {:.fix} {{ site.data.var.ee }} no longer sends email notifications each time an existing Company is updated by an API call. Emails are now sent only when a company is created. @@ -17,13 +17,15 @@ These release notes can include: - {:.fix} Configurable products are now moved to the last position in the product listing after stock is updated when the **Move out of stock to the bottom** setting is enabled. A new custom database query has been implemented to negate Elasticsearch index sort order, which disregards Admin-enabled sort order. Previously, configurable products and their child products were not moved to the bottom of the list when this setting was enabled. -- {:.fix} Purchase Order email now honors the email sending setting of each website in a multi-site deployment. A check for the **Disable Email Communications** setting has been added to the custom logic for email queues. Previously, Magento did not honor the email sending setting of the secondary website. +- {:.fix} Purchase Order email now honors the email sending setting of each website in a multi-site deployment. A check for the **Disable Email Communications** setting has been added to the custom logic for email queues. Previously, {{ site.data.var.ee }} did not honor the email sending setting of the secondary website. - {:.fix} The title of the SKU field of the Quick Order page has been edited for clarity. - {:.fix} {{ site.data.var.ee }} now displays a more informative error message when a shopper enters an invalid SKU in the **Enter SKU or Product Name** field. -## Magento B2B - Adobe Commerce 2.4.4 +- {:.fix} The **Account Created in** field for a company administrator now retains its value as expected after you save the company. + +## {{ site.data.var.ee }} B2B - Adobe Commerce 2.4.4 - {:.fix} The time required to upgrade from {{ site.data.var.ee }} 2.3.x to {{ site.data.var.ee }} 2.4.x in deployments with more than 100,000 company roles has been substantially reduced. @@ -47,9 +49,9 @@ These release notes can include: - {:.fix} The `products` query now returns an accurate `total_count` field when shared catalog is enabled. -- {:.fix} You can now update a file for a customer attribute when creating a company. Previously, when you tried to create a company with an attachment of type `File`, Magento did not create the company and logged this error in the exception log: `Something went wrong while saving file`. +- {:.fix} You can now update a file for a customer attribute when creating a company. Previously, when you tried to create a company with an attachment of type `File`, {{ site.data.var.ee }} did not create the company and logged this error in the exception log: `Something went wrong while saving file`. -- {:.fix} The Company Configuration and Create Company pages now work as expected after you disable an online shipping method. Verification has been added to prevent the attempted processing of disabled Shipping modules. Previously, Magento displayed this error: `Type Error occurred when creating object: Magento\CompanyShipping\Model\Source\ShippingMethod, Too few arguments to function Magento\CompanyShipping\Model\Source\ShippingMethod::__construct(), 1 passed in /var/www/html/elmtup/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 121 and exactly 2 expected`. +- {:.fix} The Company Configuration and Create Company pages now work as expected after you disable an online shipping method. Verification has been added to prevent the attempted processing of disabled Shipping modules. Previously, {{ site.data.var.ee }} displayed this error: `Type Error occurred when creating object: Magento\CompanyShipping\Model\Source\ShippingMethod, Too few arguments to function Magento\CompanyShipping\Model\Source\ShippingMethod::__construct(), 1 passed in /var/www/html/elmtup/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 121 and exactly 2 expected`. - {:.fix} The Category page now displays consistent product data while permissions are being generated during partial indexing. A new partial indexer for directory permissions has been added to this process. Previously, the data displayed while the indexer ran was incorrect. @@ -67,13 +69,13 @@ These release notes can include: - {:.fix} Shared catalog save operations have been optimized to execute faster. Previously, saving a shared catalog with many customer groups could take several minutes. -- {:.fix} Magento now deletes all subcategory permissions from the `sharedcatalog_category_permissions` table when the parent category is deleted. Previously, only the parent category data was removed. +- {:.fix} {{ site.data.var.ee }} now deletes all subcategory permissions from the `sharedcatalog_category_permissions` table when the parent category is deleted. Previously, only the parent category data was removed. -## Magento B2B - Version 1.3.2 +## {{ site.data.var.ee }} B2B - Version 1.3.2 -- {:.fix} Magento now successfully sends update emails about expired negotiable quotes. Previously, when a negotiable quote expired, Magento did not send update emails. +- {:.fix} {{ site.data.var.ee }} now successfully sends update emails about expired negotiable quotes. Previously, when a negotiable quote expired, {{ site.data.var.ee }} did not send update emails. -- {:.fix} Magento now successfully sends update emails about soon-to-expire and expired negotiable quotes when a `cron` job is missing. +- {:.fix} {{ site.data.var.ee }} now successfully sends update emails about soon-to-expire and expired negotiable quotes when a `cron` job is missing. ### Company @@ -81,13 +83,13 @@ These release notes can include: - {:.fix} Clicking on the **Return** button for an order that was created by a company user now redirects an administrative user to the Create Return page as expected. Previously, the administrator was redirected to the Order History page. -- {:.fix} Magento no longer fails with an out-of-memory error when executing the `app/code/Magento/PurchaseOrder/Setup/Patch/Data/InitPermissions.php::apply` method during `bin/magento setup:upgrade`. Previously, Magento did not use batch size for collection when initializing permissions, but instead loaded a collection of all company roles. +- {:.fix} {{ site.data.var.ee }} no longer fails with an out-of-memory error when executing the `app/code/Magento/PurchaseOrder/Setup/Patch/Data/InitPermissions.php::apply` method during `bin/magento setup:upgrade`. Previously, {{ site.data.var.ee }} did not use batch size for collection when initializing permissions, but instead loaded a collection of all company roles. -- {:.fix} Company users can now edit and update customer custom attribute values. Previously, these attributes did not bind properly with the create and edit user form. A company user could enter different attribute values, but Magento did not save these values correctly. +- {:.fix} Company users can now edit and update customer custom attribute values. Previously, these attributes did not bind properly with the create and edit user form. A company user could enter different attribute values, but {{ site.data.var.ee }} did not save these values correctly. - {:.fix} The resource tree for company role permissions can now be translated as expected. Previously, the permissions tree was not translated even though valid translation files were present. -- {:.fix} Magento now saves custom customer attribute values for B2B users as expected. Previously, creating a company account that contained custom customer attributes triggered a template error, and Magento did not successfully load the form. Adding an argument to the layout of `company_create_account` resolved this issue. +- {:.fix} {{ site.data.var.ee }} now saves custom customer attribute values for B2B users as expected. Previously, creating a company account that contained custom customer attributes triggered a template error, and {{ site.data.var.ee }} did not successfully load the form. Adding an argument to the layout of `company_create_account` resolved this issue. - {:.fix} Company user filters such as Show All Users, Show Active Users, and Show Inactive Users now work as expected. Previously, filtering actions on the company user page caused a JavaScript error. @@ -95,7 +97,7 @@ These release notes can include: - {:.fix} Administrators with restricted accounts that include only website-level privileges can now create a company that uses a different currency than the website. -- {:.fix} Magento now sends company emails from the correct `from` email address and scope. Previously, Magento did not consider website scope when sending company credit assignment or update email. +- {:.fix} {{ site.data.var.ee }} now sends company emails from the correct `from` email address and scope. Previously, {{ site.data.var.ee }} did not consider website scope when sending company credit assignment or update email. ### Quick Order @@ -105,11 +107,11 @@ These release notes can include: - {:.fix} The Added Product list display now treats SKUs entered in lowercase and uppercase the same when you use SKUs to select multiple products during Quick Order. -- {:.fix} Using Quick Order now adds products in the quantity specified by the shopper. Previously, Magento added one product only even when a shopper specified quantities that exceeded one. +- {:.fix} Using Quick Order now adds products in the quantity specified by the shopper. Previously, {{ site.data.var.ee }} added one product only even when a shopper specified quantities that exceeded one. - {:.fix} The Quick Order autocomplete feature now works with partial SKUs. -- {:.fix} Magento now displays products that have been configured as **Not visible individually** on the Quick Order page’s auto-suggest list and search results. +- {:.fix} {{ site.data.var.ee }} now displays products that have been configured as **Not visible individually** on the Quick Order page’s auto-suggest list and search results. - {:.fix} Shoppers can now use the Quick Order form to add multiple products by SKUs that include upper-case characters. Previously, only the first product was added. @@ -117,7 +119,7 @@ These release notes can include: - {:.fix} Shoppers are now redirected to the negotiable quote page after pasting the link to a negotiable quote in the URL field and successfully logging in. Previously, shoppers were redirected to the My Account page. -- {:.fix} Reordering now works as expected for orders that contain a product with a Date Customizable Option for a customer account that was created during checkout. Previously, Magento did not process the reorder and displayed this error: `The product has required options. Enter the options and try again`. +- {:.fix} Reordering now works as expected for orders that contain a product with a Date Customizable Option for a customer account that was created during checkout. Previously, {{ site.data.var.ee }} did not process the reorder and displayed this error: `The product has required options. Enter the options and try again`. - {:.fix} The shipping address for a negotiable quote is no longer editable during checkout when the Purchase Order module is disabled. This behavior resulted from a previous fix in which `isQuoteAddressLocked` was removed from the negotiable quote checkout renderer. @@ -125,13 +127,13 @@ These release notes can include: ### Purchase orders -- {:.fix} Magento now displays an informative error message as expected when you place a purchase order using Paypal Express Checkout when the **Name Prefix** attribute is set to **required**. Previously, Magento did not place the order or display an error message. [GitHub-552](https://github.com/magento/partners-magento2b2b/issues/552) +- {:.fix} {{ site.data.var.ee }} now displays an informative error message as expected when you place a purchase order using Paypal Express Checkout when the **Name Prefix** attribute is set to **required**. Previously, {{ site.data.var.ee }} did not place the order or display an error message. [GitHub-552](https://github.com/magento/partners-magento2b2b/issues/552) - {:.fix} The UI component for the billing address in the Purchase Order module now uses quote address correctly when Google Tag Manager is enabled. Previously, a JavaScript error occurred on the payment page. ### Requisition lists -- {:.fix} Merchants can now use the POST `rest/all/V1/requisition_lists` endpoint to create a requisition list for a customer. Previously, Magento threw this 400 error when you tried to create a requisition list: `Could not save Requisition List`. +- {:.fix} Merchants can now use the POST `rest/all/V1/requisition_lists` endpoint to create a requisition list for a customer. Previously, {{ site.data.var.ee }} threw this 400 error when you tried to create a requisition list: `Could not save Requisition List`. - {:.fix} The **Add to Requisition List** button now appears for a shopping cart’s in-stock products when the cart also contains out-of-stock products. Previously, if a cart contained two products, one of which was out-of-stock, the **Add to Requisition List** button did not appear for either products. @@ -139,71 +141,71 @@ These release notes can include: - {:.fix} Requisition list **Latest Activity Date** values now adhere to locale format. -- {:.fix} Magento no longer throws a fatal error when you edit a bundle product from a requisition list. +- {:.fix} {{ site.data.var.ee }} no longer throws a fatal error when you edit a bundle product from a requisition list. -- {:.fix} Magento now displays the correct product price when you add a product with a customizable option `(File)` to a wish list from a requisition list. The link to the uploaded file is also visible as expected. Previously, Magento displayed incorrect product prices and did not display the link to the file. +- {:.fix} {{ site.data.var.ee }} now displays the correct product price when you add a product with a customizable option `(File)` to a wish list from a requisition list. The link to the uploaded file is also visible as expected. Previously, {{ site.data.var.ee }} displayed incorrect product prices and did not display the link to the file. - {:.fix} Products with a customizable option `(File)` can now be added to a shopping cart from a requisition list. [GitHub-377](https://github.com/magento/partners-magento2b2b/issues/377) ### Shared catalog -- {:.fix} An administrator with a role limited to a specific website can now create, view, and edit a shared catalog. Previously, Magento threw a fatal error when an administrator with a limited role tried to create a shared catalog. +- {:.fix} An administrator with a role limited to a specific website can now create, view, and edit a shared catalog. Previously, {{ site.data.var.ee }} threw a fatal error when an administrator with a limited role tried to create a shared catalog. -- {:.fix} Layered navigation results now include an accurate count of products with filtered attributes, and shoppers can now apply multiple filters. Previously, only one filter could be applied, and Magento displayed an inaccurate product count in layered navigation. +- {:.fix} Layered navigation results now include an accurate count of products with filtered attributes, and shoppers can now apply multiple filters. Previously, only one filter could be applied, and {{ site.data.var.ee }} displayed an inaccurate product count in layered navigation. -- {:.fix} Magento now correctly displays product counts in layered navigation filters in search results. Previously, a plugin for the Search Results page did not use ElasticSearch but issued a new query to the database. +- {:.fix} {{ site.data.var.ee }} now correctly displays product counts in layered navigation filters in search results. Previously, a plugin for the Search Results page did not use ElasticSearch but issued a new query to the database. -- {:.fix} Magento no longer deletes tier prices when a merchant deletes all products from a default shared catalog. +- {:.fix} {{ site.data.var.ee }} no longer deletes tier prices when a merchant deletes all products from a default shared catalog. - {:.fix} Filters are now filtered by the current category and displayed correctly on all pages when shared catalogs are enabled. Previously, filters were wrongly calculated for the current page only and were not filtered by the current category. - {:.fix} The GraphQL `products` query no longer returns a product’s price range and category for products that are not assigned to a shared catalog when shared catalog is enabled. Previously, the query returned the product’s aggregations, even though the product itself was not returned in the `items` array. -## Magento B2B - Version 1.3.1 +## {{ site.data.var.ee }} B2B - Version 1.3.1 - {:.new} Online payment methods are now supported for purchase orders. - {:.fix} Adding a configurable product to the shopping cart directly from a requisition list when this product was used in a prior order no longer returns a system error. [GitHub-302](https://github.com/magento/partners-magento2b2b/issues/302) -- {:.fix} Magento now displays the Requires My Approval tab correctly for purchase orders when a split database configuration is deployed. [GitHub-259](https://github.com/magento/partners-magento2b2b/issues/259) +- {:.fix} {{ site.data.var.ee }} now displays the Requires My Approval tab correctly for purchase orders when a split database configuration is deployed. [GitHub-259](https://github.com/magento/partners-magento2b2b/issues/259) -- {:.fix} Magento now displays details about bundle products and gift card when you view purchase orders. [GitHub-213](https://github.com/magento/partners-magento2b2b/issues/213) +- {:.fix} {{ site.data.var.ee }} now displays details about bundle products and gift card when you view purchase orders. [GitHub-213](https://github.com/magento/partners-magento2b2b/issues/213) - {:.fix} Shoppers are now redirected as expected after logging into their account while browsing in a store where **Website Restriction** is enabled and **Restriction Mode** is set to **Private Sales: Login Only**. Previously, shoppers were redirected to the store home page. -- {:.fix} Order history now loads as expected in a company administrator's My account page in deployments with a B2B company hierarchy that contains many customers (greater than 13000). Previously, order history loaded very slowly or not at all, and Magento displayed a 503 error. +- {:.fix} Order history now loads as expected in a company administrator's My account page in deployments with a B2B company hierarchy that contains many customers (greater than 13000). Previously, order history loaded very slowly or not at all, and {{ site.data.var.ee }} displayed a 503 error. -- {:.fix} Magento no longer displays multiple identical warning messages when you add an unconfigured product with customizable options to a Requisition List from a Category page. +- {:.fix} {{ site.data.var.ee }} no longer displays multiple identical warning messages when you add an unconfigured product with customizable options to a Requisition List from a Category page. - {:.fix} New and duplicated products are now visible as expected on the category page when B2B shared catalogs are enabled. -- {:.fix} Magento now maintains the correct `store_id` that is associated with a company administrator when the customer group for a company is updated. Previously, the `store_id` changed to the default store when the group was updated. +- {:.fix} {{ site.data.var.ee }} now maintains the correct `store_id` that is associated with a company administrator when the customer group for a company is updated. Previously, the `store_id` changed to the default store when the group was updated. -- {:.fix} Magento now saves a grouped product to a requisition list as a list of simple products in the same way as it adds a grouped product to a shopping cart. Previously, due to how Magento saved grouped products, the link for a grouped product from the requisition list always redirected to simple products and not to the grouped product. +- {:.fix} {{ site.data.var.ee }} now saves a grouped product to a requisition list as a list of simple products in the same way as it adds a grouped product to a shopping cart. Previously, due to how {{ site.data.var.ee }} saved grouped products, the link for a grouped product from the requisition list always redirected to simple products and not to the grouped product. -- {:.fix} You can now filter orders by the **Company Name** field when exporting order information in CSV format. Previously, Magento logged an error in `var/export/{file-id}`. +- {:.fix} You can now filter orders by the **Company Name** field when exporting order information in CSV format. Previously, {{ site.data.var.ee }} logged an error in `var/export/{file-id}`. -- {:.fix} Magento now displays the Create Requisition List popup as expected when you select the Create New Requisition List tab on the storefront. +- {:.fix} {{ site.data.var.ee }} now displays the Create Requisition List popup as expected when you select the Create New Requisition List tab on the storefront. -- {:.fix} Requisition lists now include all grouped products and quantities that have been added to the list. Previously, when a merchant navigated to a requisition list after adding products to it from a product detail page, Magento displayed this error: `1 product(s) require your attention - Options were updated. Please review available configurations`. [GitHub-59](https://github.com/magento/partners-magento2b2b/issues/59) +- {:.fix} Requisition lists now include all grouped products and quantities that have been added to the list. Previously, when a merchant navigated to a requisition list after adding products to it from a product detail page, {{ site.data.var.ee }} displayed this error: `1 product(s) require your attention - Options were updated. Please review available configurations`. [GitHub-59](https://github.com/magento/partners-magento2b2b/issues/59) -- {:.fix} The correct store view is now associated with the relevant website when you create a new company in a multi-site deployment. Previously, you could not create a company, and Magento displayed this error: `The store view is not in the associated website`. +- {:.fix} The correct store view is now associated with the relevant website when you create a new company in a multi-site deployment. Previously, you could not create a company, and {{ site.data.var.ee }} displayed this error: `The store view is not in the associated website`. - {:.fix} Ordering products by SKU using Quick Order no longer results in duplicate product quantities in the CSV file. -- {:.fix} The **Add to Cart** button is no longer blocked when the Enter Multiple SKUs section of the Quick Order page contains an empty value. Instead, Magento now displays a message prompting you to enter valid SKUs. +- {:.fix} The **Add to Cart** button is no longer blocked when the Enter Multiple SKUs section of the Quick Order page contains an empty value. Instead, {{ site.data.var.ee }} now displays a message prompting you to enter valid SKUs. -- {:.fix} Magento now displays this message on the product page when you submit a product review from a requisition list: `You submitted your review for moderation`. The review also appears on the Pending Reviews page (Admin **Marketing** > **Pending Reviews**). Previously, although Magento added the review to the list of pending reviews, it threw a 404 error on the product page. +- {:.fix} {{ site.data.var.ee }} now displays this message on the product page when you submit a product review from a requisition list: `You submitted your review for moderation`. The review also appears on the Pending Reviews page (Admin **Marketing** > **Pending Reviews**). Previously, although {{ site.data.var.ee }} added the review to the list of pending reviews, it threw a 404 error on the product page. - {:.fix} The performance of the `sharedCatalogUpdateCategoryPermissions` consumer has been improved. After creating a shared catalog, the catalog permission indexer now uses only the customer group ID from the shared catalog, not all customer groups. - {:.fix} Custom customer address attribute fields that are associated with a shopper’s non-default address are now saved as expected in the storefront checkout workflow. -- {:.fix} Orders for products that belong to a store’s default shared catalog can now be placed for shoppers through the Admin REST API (`rest/V1/carts/{{CART_ID}}/items`) as expected. Magento now checks if the product was assigned to a public catalog before shared catalog permissions validation in `\Magento\SharedCatalog\Plugin\Quote\Api\ValidateAddProductToCartPlugin::beforeSave`. Previously, Magento did not add the product to the shopper’s cart and threw this error: `No such shared catalog entity`. +- {:.fix} Orders for products that belong to a store’s default shared catalog can now be placed for shoppers through the Admin REST API (`rest/V1/carts/{{CART_ID}}/items`) as expected. {{ site.data.var.ee }} now checks if the product was assigned to a public catalog before shared catalog permissions validation in `\Magento\SharedCatalog\Plugin\Quote\Api\ValidateAddProductToCartPlugin::beforeSave`. Previously, {{ site.data.var.ee }} did not add the product to the shopper’s cart and threw this error: `No such shared catalog entity`. -- {:.fix} Magento now sends new company user registration emails from the Magento store's address. Previously, this email was sent from the company administrator’s address. +- {:.fix} {{ site.data.var.ee }} now sends new company user registration emails from the {{ site.data.var.ee }} store's address. Previously, this email was sent from the company administrator’s address. -- {:.fix} Magento now checks custom attributes for duplication of reserved company attribute names before permitting a merchant to save a new attribute. +- {:.fix} {{ site.data.var.ee }} now checks custom attributes for duplication of reserved company attribute names before permitting a merchant to save a new attribute. - {:.fix} The `credit_history` query now returns the specified company’s credit history for both the originally allocated amount and the purchased amount. Previously, this query returned an error. [GitHub-29990](https://github.com/magento/magento2/issues/29990) @@ -211,16 +213,16 @@ These release notes can include: ### B2B known issues -**Issue**: B2B buyers can use online payment methods to bypass the usual purchase order flow. This scenario can occur if the buyer can reduce their entire checkout total to a 0 — for example, by a promo code or gift card — and subsequently remove the code or gift card. Even under those conditions, Magento still places the order for the correct amount based on the prices of the items in their assigned catalog. **Workaround**: Disable gift cards and coupon codes when online payment methods are enabled for purchase order approval. +**Issue**: B2B buyers can use online payment methods to bypass the usual purchase order flow. This scenario can occur if the buyer can reduce their entire checkout total to a 0 — for example, by a promo code or gift card — and subsequently remove the code or gift card. Even under those conditions, {{ site.data.var.ee }} still places the order for the correct amount based on the prices of the items in their assigned catalog. **Workaround**: Disable gift cards and coupon codes when online payment methods are enabled for purchase order approval. **Issue**: Buyers are redirected to the shopping cart when trying to place an order from a purchase order using PayPal Express Checkout when **In-Context Mode** is disabled. -**Issue**: Magento sometimes displays a 404 error when a buyer creates a purchase order and then navigates to the checkout page. This error occurs when a buyer has previously created a different purchase order with an online payment method before navigating to the checkout page without completing the previous purchase. The buyer can still place the purchase order. **Workaround**: None. +**Issue**: {{ site.data.var.ee }} sometimes displays a 404 error when a buyer creates a purchase order and then navigates to the checkout page. This error occurs when a buyer has previously created a different purchase order with an online payment method before navigating to the checkout page without completing the previous purchase. The buyer can still place the purchase order. **Workaround**: None. **Issue**: Discounts for a specific payment method persist during checkout for a purchase order even when the buyer changes their payment method during final checkout. As a result, customers may receive a discount that they are not entitled to. This occurs because a cart rule for the original payment method is still applied despite the change in payment method. **Workaround**: None. See the [Magento 2.4.2 B2B known issue: discount remains for online Purchase Orders after payment method is changed](https://support.magento.com/hc/en-us/articles/360054667312) Knowledge Base article. **Issue**: The `deleteRequisitionListOutput` query returns details about the deleted requisition list instead of the remaining requisition lists. -## Magento B2B - Version 1.3.0 +## {{ site.data.var.ee }} B2B - Version 1.3.0 This release includes improvements to order approvals, shipping methods, shopping cart, and logging of Admin actions. @@ -244,14 +246,14 @@ This release includes improvements to order approvals, shipping methods, shoppin - {:.new} Admin actions taken in the Company modules are now logged in the Admin Actions Log. Actions are logged from all relevant company modules: `Company`, `NegotiableQuote`, `CompanyCredit`, `SharedCatalog`. -- {:.fix} Magento no longer displays the **Delete customer** button on the **Customers** page when the logged-in administrator does not have rights to delete customers in deployments where B2B is installed. +- {:.fix} {{ site.data.var.ee }} no longer displays the **Delete customer** button on the **Customers** page when the logged-in administrator does not have rights to delete customers in deployments where B2B is installed. - {:.fix} Customer group is no longer automatically changed for a customer who is assigned to a Company when you edit the customer on the Customer grid. - {:.fix} When a merchant creates a new shared catalog, permissions are now automatically set to **Allow** for the **Display Product Prices** and **Add to Cart** features in categories when the customer group has been assigned this access in catalog permission settings. Previously, these settings were automatically set to **Deny** even when catalog permissions were set to **Allow**. - {:.fix} Shared catalog category permissions are no longer overwritten when a product is edited from the product edit page. -- {:.fix} Magento now sends an email notification confirming that a customer has permission to exceed the designated credit limit when a merchant enables the **Allow To Exceed Credit Limit** setting. Previously, the notification email sent by Magento indicated that the customer did not have permission to exceed the limit. +- {:.fix} {{ site.data.var.ee }} now sends an email notification confirming that a customer has permission to exceed the designated credit limit when a merchant enables the **Allow To Exceed Credit Limit** setting. Previously, the notification email sent by {{ site.data.var.ee }} indicated that the customer did not have permission to exceed the limit. - {:.fix} The HTML container that surrounds product price on requisition lists is now rendered correctly for the children of bundled products. @@ -261,11 +263,11 @@ This release includes improvements to order approvals, shipping methods, shoppin - {:.fix} The B2B Features tab (Admin **Stores** > **Configuration** > **General** ) now opens correctly. Guests can now use QuickOrder to add products to their cart and then successfully remove items. Previously, when a shopper used QuickOrder to add multiple products to their cart, and then removed a product, the product was not removed. -- {:.fix} A company can now be updated using the REST API PUT `/V1/company/:companyId` request without specifying the `region_id` when state is configured as **not required**. Previously, even though `region_id` was not required, Magento threw an error if it was not specified. +- {:.fix} A company can now be updated using the REST API PUT `/V1/company/:companyId` request without specifying the `region_id` when state is configured as **not required**. Previously, even though `region_id` was not required, {{ site.data.var.ee }} threw an error if it was not specified. - {:.fix} When you create or update a B2B Company using the REST API (`http://magento.local/rest/V1/company/2`, where `2` represents the company ID), the response now includes the settings for `applicable_payment_method` or `available_payment_methods` as expected. -- {:.fix} Magento no longer displays a 404 page when a merchant uses the **Enter** button instead of clicking the **Save** button when creating a requisition list on the storefront. +- {:.fix} {{ site.data.var.ee }} no longer displays a 404 page when a merchant uses the **Enter** button instead of clicking the **Save** button when creating a requisition list on the storefront. - {:.fix} Category permissions no longer change when a new product is assigned to a public shared catalog. Previously, category permissions were duplicated. @@ -273,29 +275,29 @@ This release includes improvements to order approvals, shipping methods, shoppin - {:.fix} Disabling reward modules no longer affects B2B features on customer accounts. Previously, when reward modules were disabled, the following B2B-related tabs were not displayed: Company Profile, Company Users, and Roles and Permissions. -- {:.fix} Magento now uses the correct sender name on email notifications when changes are made to company accounts. Previously, Magento used the general contact sender name defined in the default scope for all emails. +- {:.fix} {{ site.data.var.ee }} now uses the correct sender name on email notifications when changes are made to company accounts. Previously, {{ site.data.var.ee }} used the general contact sender name defined in the default scope for all emails. - {:.fix} You can now successfully implement multishipping for orders that contain both physical and virtual products. -- {:.fix} Merchants can now create company users from the Company Users section in My Account and Company Structure pages in deployments where **Access Restriction** is enabled and **Restriction Mode** is set to **Sales: Login Only**. Previously, Magento threw this error when a merchant tried to create a user: Can not register new customer due to restrictions are enabled. +- {:.fix} Merchants can now create company users from the Company Users section in My Account and Company Structure pages in deployments where **Access Restriction** is enabled and **Restriction Mode** is set to **Sales: Login Only**. Previously, {{ site.data.var.ee }} threw this error when a merchant tried to create a user: Can not register new customer due to restrictions are enabled. -- {:.fix} Magento no longer resets a customer’s customer group to the default when a customer saves their account information. +- {:.fix} {{ site.data.var.ee }} no longer resets a customer’s customer group to the default when a customer saves their account information. -- {:.fix} Magento no longer throws a fatal error when an administrator assigns a customer who has an active shopping cart to a customer group. +- {:.fix} {{ site.data.var.ee }} no longer throws a fatal error when an administrator assigns a customer who has an active shopping cart to a customer group. -- {:.fix} Magento now provides an `addToCart` DataLayer event for Quick Order and Requisition lists pages. +- {:.fix} {{ site.data.var.ee }} now provides an `addToCart` DataLayer event for Quick Order and Requisition lists pages. - {:.fix} Notification emails that are sent to sales representatives assigned to a company now include the assigned corporate logo. Previously, the notification email included the default LUMA logo, not the uploaded corporate logo. -- {:.fix} A requisition list now includes all grouped products and quantities that have been added to the list. Previously, when a merchant navigated to a requisition list after adding products to it from a product detail page, Magento displayed this error: `1 product(s) require your attention - Options were updated. Please review available configurations`. +- {:.fix} A requisition list now includes all grouped products and quantities that have been added to the list. Previously, when a merchant navigated to a requisition list after adding products to it from a product detail page, Mag{{ site.data.var.ee }}ento displayed this error: `1 product(s) require your attention - Options were updated. Please review available configurations`. - {:.fix} The `products` query now returns an accurate `total_count` field when shared catalog is enabled. -- {:.fix} The Company Configuration and Create Company pages now work as expected after you disable an online shipping method. Verification has been added to prevent the attempted processing of disabled Shipping modules. Previously, Magento displayed this error: `Type Error occurred when creating object: Magento\CompanyShipping\Model\Source\ShippingMethod, Too few arguments to function Magento\CompanyShipping\Model\Source\ShippingMethod::__construct(), 1 passed in /var/www/html/elmtup/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 121 and exactly 2 expected`. +- {:.fix} The Company Configuration and Create Company pages now work as expected after you disable an online shipping method. Verification has been added to prevent the attempted processing of disabled Shipping modules. Previously, {{ site.data.var.ee }} displayed this error: `Type Error occurred when creating object: Magento\CompanyShipping\Model\Source\ShippingMethod, Too few arguments to function Magento\CompanyShipping\Model\Source\ShippingMethod::__construct(), 1 passed in /var/www/html/elmtup/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 121 and exactly 2 expected`. - {:.fix} Integration test memory consumption has been reduced, which improves test performance and reduces the time required for test completion. -## Magento B2B - Version 1.2.0 +## {{ site.data.var.ee }} B2B - Version 1.2.0 - {:.new} [Storefront Order Search](https://github.com/magento/partners-magento2b2b/pull/16) added thanks to contribution by [Marek Mularczyk]( https://github.com/mmularski) from [Divante](https://www.divante.com/) and community members. - {:.new} Purchase Orders have been enhanced and rewritten. They are now included by default in {{site.data.var.ee}}. @@ -329,6 +331,6 @@ This release includes improvements to order approvals, shipping methods, shoppin ### Known Issues -- Magento throws an exception during upgrade to B2B 1.2.0 in a multi-website deployment. When `setup:upgrade` runs, this error occurs on the `PurchaseOrder` module: `Module Magento_PurchaseOrder: Unable to apply data patch Magento\PurchaseOrder\Setup\Patch\Data\InitPurchaseOrderSalesSequence for moduleMagento_PurchaseOrder`. **Workaround**: Install the **B2B-716 Add NonTransactionableInterface interface to the InitPurchaseOrderSalesSequence data patch** hotfix, which is now available from the **My Account** > **Downloads** section of `magento.com`. +- {{ site.data.var.ee }} throws an exception during upgrade to B2B 1.2.0 in a multi-website deployment. When `setup:upgrade` runs, this error occurs on the `PurchaseOrder` module: `Module Magento_PurchaseOrder: Unable to apply data patch Magento\PurchaseOrder\Setup\Patch\Data\InitPurchaseOrderSalesSequence for moduleMagento_PurchaseOrder`. **Workaround**: Install the **B2B-716 Add NonTransactionableInterface interface to the InitPurchaseOrderSalesSequence data patch** hotfix, which is now available from the **My Account** > **Downloads** section of `magento.com`. - If a discount code expires before a Purchase Order (PO) is approved, the PO continues to display the discounted amount, but once the PO is approved, the order is placed at the non-discounted total. **Workaround**: Install the **B2B-709 Purchase Order Discount patch** hotfix for this issue, which is now available from the **My Account** > **Downloads** section of `magento.com`. - If items in a purchase order are out-of-stock, or of insufficient quantity when the purchase order is converted into an actual order, an error will occur. If backorders are enabled, the order will be processed normally. diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 8ee523c53c8..c0352e2b383 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -88,7 +88,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* You can now rename a data patch and add the old class name as an alias in the `patch_list` database table. Magento now checks whether data patch aliases already existed in the database before applying the patch. Previously, Magento threw an error under these conditions. +* You can now rename a data patch and add the old class name as an alias in the `patch_list` database table. {{ site.data.var.ee }} now checks whether data patch aliases already existed in the database before applying the patch. Previously, {{ site.data.var.ee }} threw an error under these conditions. ### Accessibility @@ -122,7 +122,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Permission exceptions are now handled for restricted products that are added by SKU. Shoppers are now given an appropriate message on the storefront, and the quantity field in the error table is disabled. Previously, Magento threw an exception like this: `There has been an error processing your request`. +* Permission exceptions are now handled for restricted products that are added by SKU. Shoppers are now given an appropriate message on the storefront, and the quantity field in the error table is disabled. Previously, {{ site.data.var.ee }} threw an exception like this: `There has been an error processing your request`. @@ -138,7 +138,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* `cart` query responses no longer return null responses when a product is out of stock. Previously, when you ran a query with an out-of-stock product, Magento displayed a `null` value under the `items` section in the response. +* `cart` query responses no longer return null responses when a product is out of stock. Previously, when you ran a query with an out-of-stock product, {{ site.data.var.ee }}displayed a `null` value under the `items` section in the response. @@ -162,7 +162,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Unassigning inventory sources through bulk action (**Catalog** > **Products** > **Select Products** > **Actions - Unassign Inventory Source**) now works as expected when sources include SKUs that are duplicate with the exception of a leading zero (for example, `01234` and `1234`). Previously, Magento did not unassign inventory sources and threw an error. +* Unassigning inventory sources through bulk action (**Catalog** > **Products** > **Select Products** > **Actions - Unassign Inventory Source**) now works as expected when sources include SKUs that are duplicate with the exception of a leading zero (for example, `01234` and `1234`). Previously, {{ site.data.var.ee }}did not unassign inventory sources and threw an error. ### Catalog @@ -208,7 +208,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Magento no longer throws an error when a category rule assigns a product to a category, and the category is subsequently sorted. +* {{ site.data.var.ee }}no longer throws an error when a category rule assigns a product to a category, and the category is subsequently sorted. @@ -228,7 +228,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Magento now provides validation error messages when you try to add a product URL key with a trailing hyphen. Informative tooltip text is also available. +* {{ site.data.var.ee }}now provides validation error messages when you try to add a product URL key with a trailing hyphen. Informative tooltip text is also available. @@ -244,7 +244,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* When the `Synchronize widget products with backend storage` setting is enabled, Magento adds recently view product data into the `catalog_product_frontend_action` database table. It includes the customer or visitor ID when adding records. The `recently_viewed_product` section in the response is now empty if customer ID and visitor ID are null. As a result, when the `customer/section/load` Ajax request is sent, Magento can correctly filter recently viewed products based on customer or visitor ID. Previously, the response included all the data available in the `catalog_product_frontend_action` database table because there was no check for an empty customer or visitor ID. +* When the `Synchronize widget products with backend storage` setting is enabled, {{ site.data.var.ee }}adds recently view product data into the `catalog_product_frontend_action` database table. It includes the customer or visitor ID when adding records. The `recently_viewed_product` section in the response is now empty if customer ID and visitor ID are null. As a result, when the `customer/section/load` Ajax request is sent, {{ site.data.var.ee }} can correctly filter recently viewed products based on customer or visitor ID. Previously, the response included all the data available in the `catalog_product_frontend_action` database table because there was no check for an empty customer or visitor ID. @@ -274,7 +274,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Magento now displays the correct product price for a configurable product with a selected option after changing its quantity on product details page. Previously, the price was reset to the initial value after the quantity changed. +* {{ site.data.var.ee }} now displays the correct product price for a configurable product with a selected option after changing its quantity on product details page. Previously, the price was reset to the initial value after the quantity changed. @@ -286,21 +286,21 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Multi-select attributes are now saved correctly during product edit. Previously, Magento saved the default option for non-selected attributes as well as selected attributes when saving a product. +* Multi-select attributes are now saved correctly during product edit. Previously, {{ site.data.var.ee }} saved the default option for non-selected attributes as well as selected attributes when saving a product. -* Magento now displays configurable attributes as expected during the creation of global `select` attributes via a patch script. Previously, eligible global attributes were hidden. +* {{ site.data.var.ee }} now displays configurable attributes as expected during the creation of global `select` attributes via a patch script. Previously, eligible global attributes were hidden. -* `addConfigurableProductsToCart` queries can now be used to add configurable products with custom options. Previously, Magento threw this error: `Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62`. [GitHub-28860](https://github.com/magento/magento2/issues/28860) +* `addConfigurableProductsToCart` queries can now be used to add configurable products with custom options. Previously, {{ site.data.var.ee }} threw this error: `Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62`. [GitHub-28860](https://github.com/magento/magento2/issues/28860) ### Customer -* Magento now displays predefined EAV system attributes correctly according to the website setting on the storefront. Previously, website-level customer attributes that were enabled for one website and disabled for another were displayed as enabled for both websites. +* {{ site.data.var.ee }} now displays predefined EAV system attributes correctly according to the website setting on the storefront. Previously, website-level customer attributes that were enabled for one website and disabled for another were displayed as enabled for both websites. ### Customer segment @@ -334,7 +334,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Magento no longer throws an SQL error after assigning a new source to a product and changing its quantity. [GitHub-35262](https://github.com/magento/magento2/issues/35262) +* {{ site.data.var.ee }}no longer throws an SQL error after assigning a new source to a product and changing its quantity. [GitHub-35262](https://github.com/magento/magento2/issues/35262) @@ -342,7 +342,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The `updateCartCurrency` function now sets string instead of an object inside the cart object. Previously, Magento did not load a quote using `getQuote` because the `updateCartCurrency` function set an object instead of a string inside the cart object. [GitHub-34199](https://github.com/magento/magento2/issues/34199) +* The `updateCartCurrency` function now sets string instead of an object inside the cart object. Previously, {{ site.data.var.ee }} did not load a quote using `getQuote` because the `updateCartCurrency` function set an object instead of a string inside the cart object. [GitHub-34199](https://github.com/magento/magento2/issues/34199) @@ -352,7 +352,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Magento sessions no longer end after a GraphQL request is made. Previously, the `ClearCustomerSessionAfterRequest` plugin logged out the shopper. [GitHub-34550](https://github.com/magento/magento2/issues/34550) +* {{ site.data.var.ee }} sessions no longer end after a GraphQL request is made. Previously, the `ClearCustomerSessionAfterRequest` plugin logged out the shopper. [GitHub-34550](https://github.com/magento/magento2/issues/34550) @@ -364,7 +364,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Magento no longer throws an exception when you add a bundle product through Page Builder. +* {{ site.data.var.ee }} no longer throws an exception when you add a bundle product through Page Builder. @@ -408,7 +408,7 @@ The **Set Product as New From Date** attribute now displays the correct date whe -* `addConfigurableProductsToCart` queries can now be used to add configurable products with custom options. Previously, Magento threw this error: `Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62`. [GitHub-28860](https://github.com/magento/magento2/issues/28860) +* `addConfigurableProductsToCart` queries can now be used to add configurable products with custom options. Previously, {{ site.data.var.ee }} threw this error: `Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62`. [GitHub-28860](https://github.com/magento/magento2/issues/28860) @@ -424,7 +424,7 @@ The **Set Product as New From Date** attribute now displays the correct date whe -* The `updateCartCurrency` function now sets string instead of an object inside the cart object. Previously, Magento did not load a quote using `getQuote` because the `updateCartCurrency` function set an object instead of a string inside the cart object. [GitHub-34199](https://github.com/magento/magento2/issues/34199) +* The `updateCartCurrency` function now sets string instead of an object inside the cart object. Previously, {{ site.data.var.ee }} did not load a quote using `getQuote` because the `updateCartCurrency` function set an object instead of a string inside the cart object. [GitHub-34199](https://github.com/magento/magento2/issues/34199) @@ -440,7 +440,7 @@ The **Set Product as New From Date** attribute now displays the correct date whe -* The `GetLines` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, Magento threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) +* The `GetLines` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) @@ -460,7 +460,7 @@ The **Set Product as New From Date** attribute now displays the correct date whe -* Magento sessions no longer end after a GraphQL request is made. Previously, the `ClearCustomerSessionAfterRequest` plugin logged out the shopper. [GitHub-34550](https://github.com/magento/magento2/issues/34550) +* {{ site.data.var.ee }} sessions no longer end after a GraphQL request is made. Previously, the `ClearCustomerSessionAfterRequest` plugin logged out the shopper. [GitHub-34550](https://github.com/magento/magento2/issues/34550) @@ -476,7 +476,7 @@ The **Set Product as New From Date** attribute now displays the correct date whe -* `setShippingAddressesOnCart` requests now successfully validate region IDs. Previously, Magento threw an error when you used region ID instead of region code. +* `setShippingAddressesOnCart` requests now successfully validate region IDs. Previously, {{ site.data.var.ee }} threw an error when you used region ID instead of region code. @@ -512,7 +512,7 @@ The **Set Product as New From Date** attribute now displays the correct date whe -* The `GetLines` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, Magento threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) +* The `GetLines` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) @@ -548,11 +548,11 @@ The **Set Product as New From Date** attribute now displays the correct date whe -* Magento now checks for a custom view before filtering columns when exporting reports. Previously, exported reports did not take into account custom views, and exported columns were incorrect. +* {{ site.data.var.ee }} now checks for a custom view before filtering columns when exporting reports. Previously, exported reports did not take into account custom views, and exported columns were incorrect. -* Magento now successfully imports images with a long file name. Previously, Magento did not import the image and threw this error: `Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in row(s):`. +* {{ site.data.var.ee }} now successfully imports images with a long file name. Previously, {{ site.data.var.ee }} did not import the image and threw this error: `Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in row(s):`. @@ -576,7 +576,7 @@ The **Set Product as New From Date** attribute now displays the correct date whe -* Customer, customer address, and order actions are now logged correctly in the Admin action report. Previously, Magento did not log actions if the `postDispatch` handler had not been specified in configuration settings. +* Customer, customer address, and order actions are now logged correctly in the Admin action report. Previously, {{ site.data.var.ee }} did not log actions if the `postDispatch` handler had not been specified in configuration settings. ### {{ site.data.var.ee }} coding standard @@ -608,7 +608,7 @@ Repetitive actions have been replaced with action groups in these tests: -* You can now successfully create a new customer from a new order with custom customer attribute that are hidden from the storefront. Previously, Magento did not save the correct values for the custom customer attribute. +* You can now successfully create a new customer from a new order with custom customer attribute that are hidden from the storefront. Previously, {{ site.data.var.ee }} did not save the correct values for the custom customer attribute. @@ -628,23 +628,23 @@ Repetitive actions have been replaced with action groups in these tests: -* Magento no longer changes custom email addresses that are assigned to orders when you change the main email address assigned to the customer on the Admin account edit page. Previously, when you edited the main email address for a customer, the new email address was assigned to every order created for that customer. [GitHub-34397](https://github.com/magento/magento2/issues/34397) +* {{ site.data.var.ee }} no longer changes custom email addresses that are assigned to orders when you change the main email address assigned to the customer on the Admin account edit page. Previously, when you edited the main email address for a customer, the new email address was assigned to every order created for that customer. [GitHub-34397](https://github.com/magento/magento2/issues/34397) -* Magento now displays records from the requested store on the credit memos grid page in deployments running PHP 7.4. Previously, Magento threw the following error after you created a credit memo and tried to view it: `The store that was requested wasn't found. Verify the store and try again`. +* {{ site.data.var.ee }} now displays records from the requested store on the credit memos grid page in deployments running PHP 7.4. Previously, {{ site.data.var.ee }} threw the following error after you created a credit memo and tried to view it: `The store that was requested wasn't found. Verify the store and try again`. ### Payment methods -* Administrators can now place an order on the Admin using the PayPal PayflowPro payment method. Previously, Magento displayed this error: `No such entity with cartId = 0`. +* Administrators can now place an order on the Admin using the PayPal PayflowPro payment method. Previously, {{ site.data.var.ee }} displayed this error: `No such entity with cartId = 0`. #### PayPal -* Magento now shows the correct customer name in a guest order paid for with PayPal. Previously, the customer name was displayed as Guest. +* {{ site.data.var.ee }} now shows the correct customer name in a guest order paid for with PayPal. Previously, the customer name was displayed as Guest. ### Performance @@ -694,7 +694,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Elasticsearch queries now work as expected when `int` is configured as a searchable backend `type` attribute. Previously, Magento threw an `Elasticsearch\Common\Exceptions\BadRequest400Exception` exception. +* Elasticsearch queries now work as expected when `int` is configured as a searchable backend `type` attribute. Previously, {{ site.data.var.ee }} threw an `Elasticsearch\Common\Exceptions\BadRequest400Exception` exception. @@ -702,7 +702,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Magento now displays an accurate search results suggestion count on the storefront in deployments where Search Suggestions and the **Show Results Count for Each Suggestion** setting are enabled. Previously, the count displayed next to the keywords was zero. +* {{ site.data.var.ee }} now displays an accurate search results suggestion count on the storefront in deployments where Search Suggestions and the **Show Results Count for Each Suggestion** setting are enabled. Previously, the count displayed next to the keywords was zero. @@ -712,13 +712,13 @@ Repetitive actions have been replaced with action groups in these tests: -* Magento no longer throws an error when loading UPS shipping rates if no allowed shipping methods are selected. Previously, when a shopper entered a shipping address in the checkout workflow under these conditions, no other shipping methods were displayed, and Magento displayed an error on the storefront. [GitHub-34411](https://github.com/magento/magento2/issues/34411) +* {{ site.data.var.ee }} no longer throws an error when loading UPS shipping rates if no allowed shipping methods are selected. Previously, when a shopper entered a shipping address in the checkout workflow under these conditions, no other shipping methods were displayed, and {{ site.data.var.ee }} displayed an error on the storefront. [GitHub-34411](https://github.com/magento/magento2/issues/34411) ### Staging -* Magento no longer cleans the full-page cache after applying a staging update for a sales rule in which the cached pages remain unchanged. +* {{ site.data.var.ee }} no longer cleans the full-page cache after applying a staging update for a sales rule in which the cached pages remain unchanged. @@ -730,7 +730,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Merchants can now remove an end date for a schedule update or delete and recreate an update. Previously, when an end date was removed, an entity remained scheduled for that time. Magento now removes the outdated update for removed rollback. +* Merchants can now remove an end date for a schedule update or delete and recreate an update. Previously, when an end date was removed, an entity remained scheduled for that time. {{ site.data.var.ee }} now removes the outdated update for removed rollback. @@ -742,7 +742,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Magento now displays a form populated with data from the previous scheduled update as expected when you try to create the second schedule update for a product. Previously, Magento displayed this error when you tried to create the second update with a past start date: `The Start Time of this Update cannot be changed. It's been already started`. +* {{ site.data.var.ee }} now displays a form populated with data from the previous scheduled update as expected when you try to create the second schedule update for a product. Previously, {{ site.data.var.ee }} displayed this error when you tried to create the second update with a past start date: `The Start Time of this Update cannot be changed. It's been already started`. @@ -762,7 +762,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Magento now updates the Excluding Tax tier price for a simple product on the product page as expected after the quantity of the simple product has changed. +* {{ site.data.var.ee }} now updates the Excluding Tax tier price for a simple product on the product page as expected after the quantity of the simple product has changed. @@ -824,7 +824,7 @@ Repetitive actions have been replaced with action groups in these tests: -* You can now create a customer from the Admin when `Magento_LoginAsCustomerAdminUi` is enabled and **Store View To Login To** is set to manual selection. Previously, Magento threw this error: `(Magento\Framework\Exception\LocalizedException): Unable to get Customer ID`. [GitHub-33096](https://github.com/magento/magento2/issues/33096) +* You can now create a customer from the Admin when `Magento_LoginAsCustomerAdminUi` is enabled and **Store View To Login To** is set to manual selection. Previously, {{ site.data.var.ee }} threw this error: `(Magento\Framework\Exception\LocalizedException): Unable to get Customer ID`. [GitHub-33096](https://github.com/magento/magento2/issues/33096) @@ -844,7 +844,7 @@ Repetitive actions have been replaced with action groups in these tests: -* You can now set a Vimeo video to run in the background in a `banner` element when CSP is set to `restrict mode`. Previously, Magento threw this JavaScript error when you tried to save the element: `Refused to connect to 'https://vimeo.com/api/v2/video/76979871.json' because it violates the following Content Security Policy directive`. +* You can now set a Vimeo video to run in the background in a `banner` element when CSP is set to `restrict mode`. Previously, {{ site.data.var.ee }} threw this JavaScript error when you tried to save the element: `Refused to connect to 'https://vimeo.com/api/v2/video/76979871.json' because it violates the following Content Security Policy directive`. ### Web API framework @@ -880,7 +880,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Updating an item quantity from the wishlist page now updates the quantity on the product detail page as expected. Magento now picks up the updated value from the product URL and populates the `qty` field of product detail page from the wishlist itself. +* Updating an item quantity from the wishlist page now updates the quantity on the product detail page as expected. {{ site.data.var.ee }} now picks up the updated value from the product URL and populates the `qty` field of product detail page from the wishlist itself. ## Known issues From 3224993a1171dce8acfc8b96032fc9e7211f4ca1 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Wed, 25 May 2022 21:29:38 -0500 Subject: [PATCH 016/491] added first security highlights --- src/guides/v2.3/inventory/release-notes.md | 2 +- .../v2.4/release-notes/commerce-2-4-5.md | 106 +++++++++++++++++- 2 files changed, 102 insertions(+), 6 deletions(-) diff --git a/src/guides/v2.3/inventory/release-notes.md b/src/guides/v2.3/inventory/release-notes.md index a53df734130..32cc43f16da 100644 --- a/src/guides/v2.3/inventory/release-notes.md +++ b/src/guides/v2.3/inventory/release-notes.md @@ -32,7 +32,7 @@ The release notes include: - {:.fix} Products that are assigned to default stock and that were previously out of stock are now visible on the storefront after updating the source item using `V1/inventory/source-items’. Previously, this REST API endpoint set the wrong 'stock_status`. -- {:.fix} Unassigning inventory sources through bulk action (**Catalog** > **Products** > **Select Products** > **Actions - Unassign Inventory Source**) now works as expected when sources include SKUs that are duplicate with the exception of a leading zero (for example, `01234` and `1234`). Previously, Magento did not unassign inventory sources and threw an error. +- {:.fix} Unassigning inventory sources through bulk action (**Catalog** > **Products** > **Select Products** > **Actions - Unassign Inventory Source**) now works as expected when sources include SKUs that are duplicates with the exception of a leading zero (for example, `01234` and `1234`). Previously, Magento did not unassign inventory sources and threw an error. - {:.fix} Product stock status is now always **in stock** on the storefront when infinite back orders are enabled and the product is assigned to a custom stock, regardless of the quantity backordered. Previously, products went out of stock even when back orders were enabled. diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index c0352e2b383..9a98b8588aa 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -40,6 +40,14 @@ See Adobe Security Bulletin for the latest discussion of these fixed issues. Security improvements for this release improve compliance with the latest security best practices, including: +* reCAPTCHA support has been added to the Wish List Sharing form, invitation create account form, and gift card redemption forms. + +* ACL resources have been added to Inventory. + +* Inventory template security has been enhanced. + +* The `MaliciousCode` filter has been upgraded to use the `HtmlPurifier` library. + ### Platform enhancements {{ site.data.var.ee }} 2.4.5 now supports @@ -90,8 +98,40 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * You can now rename a data patch and add the old class name as an alias in the `patch_list` database table. {{ site.data.var.ee }} now checks whether data patch aliases already existed in the database before applying the patch. Previously, {{ site.data.var.ee }} threw an error under these conditions. + + +* {{ site.data.var.ee }} no longer throws an exception when you try to change the Admin URL to a custom URL from the Admin. Previously, after changing the Admin URL, you could not log in. [GitHub-35416](https://github.com/magento/magento2/issues/35416) + ### Accessibility + + +The **Shopping bag** button now provides a programmatic or textual indication of its state. Screen reader users are informed that clicking this button will expand other content, or that the associated content is expanded or collapsed. Previously, this button did not provide a programmatic or textual indication of its state. + + + +* Payment Information credit card option text elements or images of text now meet the WCAG 2.0 required minimum color contrast ratio of 4.5:1 for standard text of 18pt (24px) or 14pt (19px) if bolded. Previously, they did not meet the expected contrast ratio. + + + +* **Address book** > **Communication** > **Account information** custom focus indicators now provide a contrast ratio of at least 3:1 against the background color. + + + +* Filter and sort button text now meet the WCAG 2.0 required minimum color contrast ratio of 4.5:1 for standard text of 18pt (24px) or 14pt (19px) if bolded. Previously, navigation buttons for carousels did not meet these minimum contrast requirements. + + + +* Screen readers announce the word “Venia” only once when navigating to Venia headers and footers. Previously, the same word was announced twice consecutively. + + + +* Buttons that trigger dropdowns now provide information to screen readers that indicate their expanded or collapsed state and accessible names. + + + +* Screen reader users are informed when a new page view is rendered. Previously, when a page title changed, the title change was not announced. + ### AdminGWS ### Backend @@ -114,7 +154,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The address search pop-up to save cards on the billing step of the checkout workflow no longer causes DOM errors. +* The address search pop-up on the billing step of the checkout workflow no longer causes DOM errors. @@ -130,7 +170,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Shoppers with global account sharing are no longer required to log in again to a secondary website in a multisite deployment when guest checkout is disabled. Customer data is now loaded when the shopper navigates to the subdomain. The shopper is no longer asked to login again, and the previous cart contents are displayed. +* Shoppers with global account sharing are no longer required to log in again to a secondary website in a multisite deployment when guest checkout is disabled. Customer data is now loaded when the shopper navigates to the subdomain. The shopper is no longer asked to log in again, and the previous cart contents are displayed. @@ -258,6 +298,10 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * Page Cache is now cleared as expected for the configurable product parent when changes to a child product are saved. Previously, because the cache was not cleared, changes were not selected on the storefront configuration product page. [GitHub-34508](https://github.com/magento/magento2/issues/34508) + + +* Product lists are now rendered correctly in the Admin. Previously, the product list did not render, and {{ site.data.var.ee }} displayed this error: `Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "" already exists`. [GitHub-33145](https://github.com/magento/magento2/issues/33145) + ### Catalog rule ### CMS content @@ -334,7 +378,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* {{ site.data.var.ee }}no longer throws an SQL error after assigning a new source to a product and changing its quantity. [GitHub-35262](https://github.com/magento/magento2/issues/35262) +* {{ site.data.var.ee }} no longer throws an SQL error after assigning a new source to a product and changing its quantity. [GitHub-35262](https://github.com/magento/magento2/issues/35262) @@ -348,6 +392,14 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * Deprecation notices no longer occur in unit tests due to`\DateTimeFormatter::formatObject()`. This method now works as expected with numeric values for `$format`. + + +* {{ site.data.var.ee }} no longer displays a `preg_replace()` error on the Admin. The third argument (`$subject`) is now of type `array|string` instead of `bool`. + + + +* The `isFreeShipping` method now returns an integer rather than a Boolean.[GitHub-35164](https://github.com/magento/magento2/issues/35164) + ### General fixes @@ -398,6 +450,10 @@ The **Set Product as New From Date** attribute now displays the correct date whe * Merchants can now add a tier price attribute (`tier_price`) to product comparisons. Previously, the product comparisons page crashed when the **Comparable on storefront** setting for this attribute was enabled. [GitHub-35244](https://github.com/magento/magento2/issues/35244) + + +* {{ site.data.var.ee }} now displays an error message when you set an invalid cookie domain (**Store** > **Configurations** > **Web** > **Default Cookie Settings Cookie Domain**). Previously, the website crashed. [GitHub-35048](https://github.com/magento/magento2/issues/35048) + ### Gift cards @@ -534,6 +590,18 @@ The **Set Product as New From Date** attribute now displays the correct date whe * `products` queries no longer returns price_range values for configurable products that are affected by disabled variants. [GitHub-33629](https://github.com/magento/magento2/issues/33629) + + +* Added a plugin before the `collectQuoteTotals` call to ensure store credits aren't applied multiple times. + + + +* Creating a new special price schedule with the `POST /V1/products/special-price` endpoint now works as expected. Previously, the endpoint returned the message `Future Update already exists in this time range. Set a different range and try again`. + + + +* The `generateCustomerTokenAsAdmin` request now retrieves customer tokens as expected. Previously, tokens were not returned, and this error was returned: `Customer email provided does not exist`. + ### Image @@ -566,6 +634,10 @@ The **Set Product as New From Date** attribute now displays the correct date whe ### Infrastructure + + +* The SQL query that updates affected quotes after a cart price rule is disabled has been optimized to avoid locking the entire quote table. + #### Library removals and deprecations #### Library upgrades @@ -634,6 +706,10 @@ Repetitive actions have been replaced with action groups in these tests: * {{ site.data.var.ee }} now displays records from the requested store on the credit memos grid page in deployments running PHP 7.4. Previously, {{ site.data.var.ee }} threw the following error after you created a credit memo and tried to view it: `The store that was requested wasn't found. Verify the store and try again`. + + +* {{ site.data.var.ee }} now displays credit memos on the credit memo grid page for orders created from store views whose name is prepended with numbers. Previously, {{ site.data.var.ee }} displayed the error: `The store that was requested wasn't found. Verify the store and try again. Exception in /var/www/html/vendor/magento/module-store/Model/StoreRepository.php:75`. [GitHub-35122](https://github.com/magento/magento2/issues/35122) + ### Payment methods @@ -708,12 +784,20 @@ Repetitive actions have been replaced with action groups in these tests: * Products sorted by custom attributes on the Catalog page are now displayed in the expected order. Previously, products were sorted by their attribute option value ID, which reflects the order in which they they were added to the attribute. [GitHub-33810](https://github.com/magento/magento2/issues/33810) + + +* Filtering products by color swatch in the layered navigation now displays the correct product images. Previously, the layered navigation `PageCache` key did not include filter parameters for configurable products. + ### Shipping * {{ site.data.var.ee }} no longer throws an error when loading UPS shipping rates if no allowed shipping methods are selected. Previously, when a shopper entered a shipping address in the checkout workflow under these conditions, no other shipping methods were displayed, and {{ site.data.var.ee }} displayed an error on the storefront. [GitHub-34411](https://github.com/magento/magento2/issues/34411) + + +* Virtual product prices are now excluded in calculation table rate shipping amount. Previously, shipping costs for these products were not calculated correctly.[GitHub-35185](https://github.com/magento/magento2/issues/35185) + ### Staging @@ -754,7 +838,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Fixed Product Tax (FPT) is now correctly displayed for products in the shopping cart. Previously, if multiple products in the shopping cart have **Fixed Product Tax (FPT)** and **Apply Tax To FPT** was enabled, all FPTs were assigned to the last product in the shopping cart and reset for other products. +* Fixed Product Tax (FPT) is now correctly displayed for products in the shopping cart. Previously, if multiple products in the shopping cart have **Fixed Product Tax (FPT)** and **Apply Tax To FPT** were enabled, all FPTs were assigned to the last product in the shopping cart and reset for other products. @@ -782,6 +866,10 @@ Repetitive actions have been replaced with action groups in these tests: ### Test + + +* Corrected errors with `Magento.GraphQl.CatalogGraphQl.ProductSearchTest.testSearchSuggestions` when run with AWS Elasticsearch configuration. + #### Unit tests ### Theme @@ -804,7 +892,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Long product names in the **Catalog** > **Products** grid are now word-wrapped instead of being displayed in a single line. +* Lengthy product names in the **Catalog** > **Products** grid are now word-wrapped instead of being displayed in a single line. @@ -834,8 +922,16 @@ Repetitive actions have been replaced with action groups in these tests: * The **Search by keyword** input field now has an `aria-label` element instead of a placeholder on the **Catalog** > **Product** page. + + +* Category creation is now blocked for an administrator with restricted permissions on both the category and product edit pages. Previously, category creation was blocked on the category page, but was still possible through the product edit page. + ### URL rewrites + + +* URLs for a product in a specific store view only are now removed from the `url_rewrite` table and Admin after the attribute code visibility status for the specific store view is changed to **Not Visible Individually**. Previously, all URLs were removed for the product in the `url_rewrite` table. [GitHub-34937](https://github.com/magento/magento2/issues/34937) + ### Video From 7ac294517fd63cafb9978f02d7cc60fbf71b2c39 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Fri, 27 May 2022 13:22:38 -0500 Subject: [PATCH 017/491] added highlights to seecurity notes --- src/guides/v2.3/release-notes/2-3-7-p4.md | 3 +++ src/guides/v2.4/release-notes/2-4-3-p3.md | 3 +++ src/guides/v2.4/release-notes/2-4-4-p1.md | 3 +++ src/guides/v2.4/release-notes/commerce-2-4-5.md | 4 ++-- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/guides/v2.3/release-notes/2-3-7-p4.md b/src/guides/v2.3/release-notes/2-3-7-p4.md index bff3c56ba11..fab562e08f2 100644 --- a/src/guides/v2.3/release-notes/2-3-7-p4.md +++ b/src/guides/v2.3/release-notes/2-3-7-p4.md @@ -22,6 +22,9 @@ This security patch includes: Security improvements for this release improve compliance with the latest security best practices, including: +* ACL resources have been added to Inventory. +* Inventory template security has been enhanced. + ## Installation and upgrade instructions For instructions on downloading and applying security patches (including patch 2.3.7-p4), see [Quick start install]({{site.baseurl}}/guides/v2.4/install-gde/composer.html). diff --git a/src/guides/v2.4/release-notes/2-4-3-p3.md b/src/guides/v2.4/release-notes/2-4-3-p3.md index 087169a5d6e..019666a5ae7 100644 --- a/src/guides/v2.4/release-notes/2-4-3-p3.md +++ b/src/guides/v2.4/release-notes/2-4-3-p3.md @@ -19,6 +19,9 @@ This security patch includes: Security improvements for this release improve compliance with the latest security best practices, including: +* ACL resources have been added to Inventory. +* Inventory template security has been enhanced. + ## Installation and upgrade instructions For instructions on downloading and applying security patches (including patch 2.4.3-p3), see [Quick start install]({{site.baseurl}}/guides/v2.4/install-gde/composer.html). diff --git a/src/guides/v2.4/release-notes/2-4-4-p1.md b/src/guides/v2.4/release-notes/2-4-4-p1.md index f8d08fe54b9..1c95f6564bd 100644 --- a/src/guides/v2.4/release-notes/2-4-4-p1.md +++ b/src/guides/v2.4/release-notes/2-4-4-p1.md @@ -19,6 +19,9 @@ This security patch includes: Security improvements for this release improve compliance with the latest security best practices, including: +* ACL resources have been added to Inventory. +* Inventory template security has been enhanced. + ## Installation and upgrade instructions For instructions on downloading and applying security patches (including patch 2.4.4-p1), see [Quick start install]({{site.baseurl}}/guides/v2.4/install-gde/composer.html). diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 9a98b8588aa..55acabb7934 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -40,7 +40,7 @@ See Adobe Security Bulletin for the latest discussion of these fixed issues. Security improvements for this release improve compliance with the latest security best practices, including: -* reCAPTCHA support has been added to the Wish List Sharing form, invitation create account form, and gift card redemption forms. +* reCAPTCHA support has been added to the Wish List Sharing, Create New Customer Account, and Gift Card forms. * ACL resources have been added to Inventory. @@ -904,7 +904,7 @@ Repetitive actions have been replaced with action groups in these tests: -* The unavailability of `magento.com` no longer cause performance issues during Admin login. A timeout on the request to fetch release notification has been added. +* The unavailability of `magento.com` no longer causes performance issues during Admin login. A timeout on the request to fetch release notification has been added. From c607bc184b334bd4148b6650490c5cc602dce026 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Tue, 31 May 2022 16:33:27 -0500 Subject: [PATCH 018/491] added new fixed issue descriptions --- .../v2.4/release-notes/commerce-2-4-5.md | 72 ++++++++++++++++++- 1 file changed, 70 insertions(+), 2 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 55acabb7934..080eef71def 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -52,6 +52,24 @@ Security improvements for this release improve compliance with the latest securi {{ site.data.var.ee }} 2.4.5 now supports +* Composer 2.2 + +* Elasticsearch v7.17 + +* The `TinyMCE` library has been upgraded to v5.10.0. + +* `PHPStan` has been upgraded to v1.5. + +* The `league/fly` Composer dependencies have been to v2.4.3. + +* the `grunt-eslint` (NPM) library has been upgraded to the latest version. + +* The `jQuery Storage` libraries have been replaced with `julien-maurel/js-storage`. + +* The `php-cs-fixer` and `phpcs` static code analysis tools are now compatible with PHP 8.x. + +* The `php-cs-fixer` Composer dependency has been updated to v3.4.0. + ### Performance and scalability enhancements {{ site.data.var.ee }} performance enhancements @@ -148,6 +166,8 @@ The **Shopping bag** button now provides a programmatic or textual indication of +* The `Parent Only` attribute scope is now used properly in the Cart Rule condition. + * Company name is now visible as expected in the billing and shipping address sections of the checkout workflow. @@ -204,6 +224,12 @@ The **Shopping bag** button now provides a programmatic or textual indication of * Unassigning inventory sources through bulk action (**Catalog** > **Products** > **Select Products** > **Actions - Unassign Inventory Source**) now works as expected when sources include SKUs that are duplicate with the exception of a leading zero (for example, `01234` and `1234`). Previously, {{ site.data.var.ee }}did not unassign inventory sources and threw an error. +### Cart price rule + + + +* The `Parent Only` attribute scope is now used properly in the Cart Rule condition. + ### Catalog @@ -340,6 +366,10 @@ The **Shopping bag** button now provides a programmatic or textual indication of * `addConfigurableProductsToCart` queries can now be used to add configurable products with custom options. Previously, {{ site.data.var.ee }} threw this error: `Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62`. [GitHub-28860](https://github.com/magento/magento2/issues/28860) + + +* Configurable products are now moved to the last position in the product listing after stock is updated when the **Move out of stock to the bottom** setting is enabled. A new custom database query has been implemented to negate Elasticsearch index sort order, which disregards Admin-enabled sort order. Previously, configurable products and their child products were not moved to the bottom of the list when this setting was enabled. + ### Customer @@ -352,6 +382,12 @@ The **Shopping bag** button now provides a programmatic or textual indication of * Customer segment-specific Related Product rules now work as expected. The issue has been fixed by calling a method to add a visitor-segment relation for a specific website. Previously, the segments for this rule fetched only on the basis of registered customers and websites. +### Downloadable + + + +* You can now remove sample links and files from a downloadable product. [GitHub-31887](https://github.com/magento/magento2/issues/31887) + ### Email @@ -432,7 +468,7 @@ The **Shopping bag** button now provides a programmatic or textual indication of -The **Set Product as New From Date** attribute now displays the correct date when the **Set Product as New** attribute is set through a mass product bulk update. Previously, **Set Product as New From Date** was displayed as **Jan 1, 1970**. +* The **Set Product as New From Date** attribute now displays the correct date when the **Set Product as New** attribute is set through a mass product bulk update. Previously, **Set Product as New From Date** was displayed as **Jan 1, 1970**. @@ -454,6 +490,10 @@ The **Set Product as New From Date** attribute now displays the correct date whe * {{ site.data.var.ee }} now displays an error message when you set an invalid cookie domain (**Store** > **Configurations** > **Web** > **Default Cookie Settings Cookie Domain**). Previously, the website crashed. [GitHub-35048](https://github.com/magento/magento2/issues/35048) + + +* {{ site.data.var.ee }} no longer throws an error when an administrator with roles scoped to a single website adds product to Content Elements using PageBuilder. Previously, {{ site.data.var.ee }} threw an SQL error. + ### Gift cards @@ -602,6 +642,18 @@ The **Set Product as New From Date** attribute now displays the correct date whe * The `generateCustomerTokenAsAdmin` request now retrieves customer tokens as expected. Previously, tokens were not returned, and this error was returned: `Customer email provided does not exist`. + + +* GraphQL schema is now valid when a custom `type` product attribute is defined. Previously, the schema was invalid because the `type` attribute on products types was overwritten by the custom `type` attribute. [GitHub-34929](https://github.com/magento/magento2/issues/34929) + + + +* Customers added through the `createCustomer/createCustomerV2/updateCustomer/updateCustomerV2` mutation are now added with active newsletter subscriptions. Previously, customers were unsubscribed from newsletters even when the request contained proper input parameters. [GitHub-33599](https://github.com/magento/magento2/issues/33599) + + + +* The `productDetail` query for a specific store view now returns only categories that are in the specific website's root category in multi-site deployment. Previously, the query returned categories from the root categories of other websites. [GitHub-34570](https://github.com/magento/magento2/issues/34570) + ### Image @@ -672,7 +724,7 @@ Repetitive actions have been replaced with action groups in these tests: * Logged-in customers are no longer marked as guests in Admin > **Marketing** > **Newsletter Subscribers**. - + * The newsletter subscription confirmation email now has the correct, store-specific email address in the **From** field if the customer is assigned to a non-default store and subscribed or unsubscribed from the Admin. Previously, the customer received an email with default email in **From** header. [GitHub-34963](https://github.com/magento/magento2/issues/34963) @@ -716,6 +768,10 @@ Repetitive actions have been replaced with action groups in these tests: * Administrators can now place an order on the Admin using the PayPal PayflowPro payment method. Previously, {{ site.data.var.ee }} displayed this error: `No such entity with cartId = 0`. + + +* Payment Review page in the checkout workflow now displays the correct payment method name when payment is made with Venmo, PayPal Later, or PayPal. + #### PayPal @@ -798,6 +854,10 @@ Repetitive actions have been replaced with action groups in these tests: * Virtual product prices are now excluded in calculation table rate shipping amount. Previously, shipping costs for these products were not calculated correctly.[GitHub-35185](https://github.com/magento/magento2/issues/35185) + + +* Table rate shipping rates with zero price are now displayed correctly in the checkout workflow Order Summary block for orders that have had a discount coupon applied. Previously, the shipping method was not displayed. + ### Staging @@ -870,6 +930,10 @@ Repetitive actions have been replaced with action groups in these tests: * Corrected errors with `Magento.GraphQl.CatalogGraphQl.ProductSearchTest.testSearchSuggestions` when run with AWS Elasticsearch configuration. + + +* The `testCreateProductOnStoreLevel` integration test no longer a causes nested transaction on the database. + #### Unit tests ### Theme @@ -926,6 +990,10 @@ Repetitive actions have been replaced with action groups in these tests: * Category creation is now blocked for an administrator with restricted permissions on both the category and product edit pages. Previously, category creation was blocked on the category page, but was still possible through the product edit page. + + +* The Privacy Policy link in Admin footer now links to the new Adobe Privacy Policy. + ### URL rewrites From 553f5c3fd16186dcc5a0edc354e320ceac2f0ed5 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Thu, 2 Jun 2022 10:53:59 -0500 Subject: [PATCH 019/491] added new fixed issue descriptions --- src/guides/v2.3/inventory/release-notes.md | 4 +- .../v2.4/release-notes/commerce-2-4-5.md | 58 +++++++++++++++++-- 2 files changed, 56 insertions(+), 6 deletions(-) diff --git a/src/guides/v2.3/inventory/release-notes.md b/src/guides/v2.3/inventory/release-notes.md index 32cc43f16da..f7aa0cd5c50 100644 --- a/src/guides/v2.3/inventory/release-notes.md +++ b/src/guides/v2.3/inventory/release-notes.md @@ -26,7 +26,7 @@ The release notes include: - {:.fix} The default inventory stock status of bundle and grouped products updates as expected when a merchant creates a shipment from the Admin. Previously, the status of these products remained unchanged after a shipment was created. -- {:.fix} Configurable products are now returned back to stock when one of these conditions is met: the parent product has at least one saved child in stock, or the configurable itself was updated and set as **in stock** and had at least one child in stock +- {:.fix} Configurable products are now returned back to stock when one of these conditions is met: the parent product has at least one saved child in stock, or the configurable product itself was updated and set as **in stock** and had at least one child in stock - {:.fix} Inventory changes implemented through the REST API are now reflected as expected on product detail pages. The cache for catalog products is now cleaned after comparing the last and current stock statuses. Previously, omitting the callback function resulted in the incorrect evaluation of stock status changes, which did not trigger the necessary cache cleaning. As a result, the storefront did not reflect the inventory changes. @@ -46,6 +46,8 @@ The release notes include: - {:.fix} Out-of-stock bundle products are no longer displayed on the storefront Category page when the bundle product is updated from the stocks section. +- {:.fix} Compatibility issues with PHP 7.4 have been resolved. + ### v1.2.4 {{site.data.var.im}} 1.2.4 (module version: `magento/inventory-metapackage = 1.2.4`) is supported with version 2.4.4 and compatible with version 2.4.0 of {{site.data.var.ce}}, {{site.data.var.ee}}, and {{site.data.var.ece}}. diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 080eef71def..25c0d71a43d 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -62,13 +62,15 @@ Security improvements for this release improve compliance with the latest securi * The `league/fly` Composer dependencies have been to v2.4.3. -* the `grunt-eslint` (NPM) library has been upgraded to the latest version. +* The `grunt-eslint` (NPM) library has been upgraded to the latest version. * The `jQuery Storage` libraries have been replaced with `julien-maurel/js-storage`. * The `php-cs-fixer` and `phpcs` static code analysis tools are now compatible with PHP 8.x. -* The `php-cs-fixer` Composer dependency has been updated to v3.4.0. +* The `php-cs-fixer` Composer dependency has been updated to ^3.4.0. + +* The `phpunit/phpunit` Composer dependency updated to version ^9.4. ### Performance and scalability enhancements @@ -152,6 +154,12 @@ The **Shopping bag** button now provides a programmatic or textual indication of ### AdminGWS +### Adobe Stock + + + +* Users can now successfully sign out of Adobe Stock. + ### Backend ### Bundle products @@ -274,7 +282,7 @@ The **Shopping bag** button now provides a programmatic or textual indication of -* {{ site.data.var.ee }}no longer throws an error when a category rule assigns a product to a category, and the category is subsequently sorted. +* {{ site.data.var.ee }} no longer throws an error when a category rule assigns a product to a category that is subsequently sorted. @@ -436,8 +444,20 @@ The **Shopping bag** button now provides a programmatic or textual indication of * The `isFreeShipping` method now returns an integer rather than a Boolean.[GitHub-35164](https://github.com/magento/magento2/issues/35164) + + +* {{ site.data.var.ee }} no longer throws the following error when you create a plugin for any method of class `vendor/magento/module-backend/Model/Menu.php`: `Error: Call to undefined method ReflectionUnionType::getName(). [GitHub-35292](https://github.com/magento/magento2/issues/35292) + + + +* {{ site.data.var.ee }} now returns a 404 error instead of a 500 error when you navigate to `/checkout/sidebar/updateItemQty/?item_qty=error` on the storefront. Previously, this error was thrown: `Warning: A non-numeric value encountered in /vendor/magento/module-checkout/Controller/Sidebar/UpdateItemQty.php on line 69`. [GitHub-34380](https://github.com/magento/magento2/issues/34380) + ### General fixes + + +* Setting the maximum session size to 0 (Admin **Store** > **Settings** > **Configuration - Advanced**) no longer logs out the administrator. [GitHub-35312](https://github.com/magento/magento2/issues/35312) + * {{ site.data.var.ee }} sessions no longer end after a GraphQL request is made. Previously, the `ClearCustomerSessionAfterRequest` plugin logged out the shopper. [GitHub-34550](https://github.com/magento/magento2/issues/34550) @@ -654,6 +674,22 @@ The **Shopping bag** button now provides a programmatic or textual indication of * The `productDetail` query for a specific store view now returns only categories that are in the specific website's root category in multi-site deployment. Previously, the query returned categories from the root categories of other websites. [GitHub-34570](https://github.com/magento/magento2/issues/34570) + + +* The `getProductFiltersByCategory` query now returns only the sub category of provided category ID. Previously, it returned all categories. [GitHub-35220](https://github.com/magento/magento2/issues/35220) + + + +* The `customerOrders` query now responds as expected when the `gift_message` object is specified in the response but no gift message exists. Previously, the query returned this message: `Can't load gift message for order is returned`. + + + +* Fixed a bug with the `catalog_category_product` indexer that caused the `products` query to return categories from another store. + + + +* `productDetail` queries for a specific store view now returns only categories that are in the specific website's root category. Previously, this query returned categories in every root category. [GitHub-34570](https://github.com/magento/magento2/issues/34570) + ### Image @@ -932,7 +968,7 @@ Repetitive actions have been replaced with action groups in these tests: -* The `testCreateProductOnStoreLevel` integration test no longer a causes nested transaction on the database. +* The `testCreateProductOnStoreLevel` integration test no longer causes a nested transaction on the database. #### Unit tests @@ -956,7 +992,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Lengthy product names in the **Catalog** > **Products** grid are now word-wrapped instead of being displayed in a single line. +* Lengthy product names in the **Catalog** > **Products** grid are now word-wrapped instead of displayed in a single line. @@ -994,6 +1030,14 @@ Repetitive actions have been replaced with action groups in these tests: * The Privacy Policy link in Admin footer now links to the new Adobe Privacy Policy. + + +* Administrators can now access Admin menu options when JavaScript bundling is enabled in production mode. [GitHub-35325](https://github.com/magento/magento2/issues/35325) + + + +* Administrators can now set the current user’s expiration date higher than 2038 and save the user successfully. Previously, the user whose expiration date was changed could not log back in after logging out. + ### URL rewrites @@ -1040,6 +1084,10 @@ Repetitive actions have been replaced with action groups in these tests: * `CartItemInterface` now includes `customizable_options`. [GitHub-31180](https://github.com/magento/magento2/issues/31180) + + +* REST API bulk PUT and DELETE requests now work as expected when the `Magento_ReCaptchaWebapiRest` module is enabled. [GitHub-35348](https://github.com/magento/magento2/issues/35348) + ### Wish list From 0c4eb2df8260cf6c2f99253affebe189d256386b Mon Sep 17 00:00:00 2001 From: jasperzeinstra Date: Fri, 10 Jun 2022 10:54:50 +0200 Subject: [PATCH 020/491] targetWidget parameter and return was missing As stated in https://devdocs.magento.com/guides/v2.4/javascript-dev-guide/javascript/js_mixins.html#examples, when writing a mixin for jQuery widgets you should have a parameter "targetWidget" and also return a jQuery widget. In this case about adding validation rules we don't change the targetWidget, so we should just return this. Not returning the targetWidget will throw a JS error. --- .../v2.3/frontend-dev-guide/validations/custom-validation.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/guides/v2.3/frontend-dev-guide/validations/custom-validation.md b/src/guides/v2.3/frontend-dev-guide/validations/custom-validation.md index 312b5960f7a..a4942bd4325 100644 --- a/src/guides/v2.3/frontend-dev-guide/validations/custom-validation.md +++ b/src/guides/v2.3/frontend-dev-guide/validations/custom-validation.md @@ -39,7 +39,7 @@ var config = { define(['jquery'], function($) { 'use strict'; - return function() { + return function(targetWidget) { $.validator.addMethod( 'validate-five-words', function(value, element) { @@ -47,6 +47,8 @@ define(['jquery'], function($) { }, $.mage.__('Please enter exactly five words') ) + + return targetWidget; } }); ``` From 80cda0c0d5d71cd6f89559e5b714adb3918e535e Mon Sep 17 00:00:00 2001 From: jfrontain Date: Sat, 11 Jun 2022 22:05:55 -0500 Subject: [PATCH 021/491] added new fixed issue descriptions --- src/guides/v2.3/inventory/release-notes.md | 4 +- .../v2.4/release-notes/b2b-release-notes.md | 8 + .../v2.4/release-notes/commerce-2-4-5.md | 178 ++++++++++++++++-- 3 files changed, 170 insertions(+), 20 deletions(-) diff --git a/src/guides/v2.3/inventory/release-notes.md b/src/guides/v2.3/inventory/release-notes.md index f7aa0cd5c50..21e32913992 100644 --- a/src/guides/v2.3/inventory/release-notes.md +++ b/src/guides/v2.3/inventory/release-notes.md @@ -24,7 +24,7 @@ The release notes include: {{site.data.var.im}} 1.2.x (module version: `magento/inventory-metapackage = 1.2.4`) is supported with version 2.4.4 and compatible with version 2.4.0 of {{site.data.var.ce}}, {{site.data.var.ee}}, and {{site.data.var.ece}}. -- {:.fix} The default inventory stock status of bundle and grouped products updates as expected when a merchant creates a shipment from the Admin. Previously, the status of these products remained unchanged after a shipment was created. +- {:.fix} The default inventory stock status of bundle and grouped products is now updated as expected when a merchant creates a shipment from the Admin. Previously, the status of these products remained unchanged after a shipment was created. - {:.fix} Configurable products are now returned back to stock when one of these conditions is met: the parent product has at least one saved child in stock, or the configurable product itself was updated and set as **in stock** and had at least one child in stock @@ -36,7 +36,7 @@ The release notes include: - {:.fix} Product stock status is now always **in stock** on the storefront when infinite back orders are enabled and the product is assigned to a custom stock, regardless of the quantity backordered. Previously, products went out of stock even when back orders were enabled. -- {:.fix} Configurable product parent and child product stock is now updated correctly after the source item is updated with `POST /V1/inventory/source-items`. +- {:.fix} Configurable product parent and child product stock is now updated correctly after the source item is updated with `POST /V1/inventory/source-items`. After the child product has been updated through the API, a new Inventory plugin for default stock checks and updates configurable product quantity and status. - {:.fix} Out-of-stock grouped products are no longer listed on the storefront Category page. diff --git a/src/guides/v2.4/release-notes/b2b-release-notes.md b/src/guides/v2.4/release-notes/b2b-release-notes.md index d513ffd9df6..fe4746b0c12 100644 --- a/src/guides/v2.4/release-notes/b2b-release-notes.md +++ b/src/guides/v2.4/release-notes/b2b-release-notes.md @@ -25,6 +25,14 @@ These release notes can include: - {:.fix} The **Account Created in** field for a company administrator now retains its value as expected after you save the company. +- {:.fix} customer queries to retrieve customer requisition lists that are filtered by `uid` no longer return empty results. + +- {:.fix} Added a plugin before the `collectQuoteTotals` call to ensure that store credits are applied only once. + +- {:.fix} Customers are now redirected to the login page when their account is deleted by an administrator from the Admin. Previously, {{ site.data.var.ee }} threw an error. The plugin (`SessionPlugin`) code block is now inside the `try…catch` block. Previously, this code was not wrapped inside the generic exception handling block. + +- {:.fix} Pressing **Enter** on the Quick Order page in mobile mode after entering a valid product name or SKU now takes the shopper to the next field as expected. + ## {{ site.data.var.ee }} B2B - Adobe Commerce 2.4.4 - {:.fix} The time required to upgrade from {{ site.data.var.ee }} 2.3.x to {{ site.data.var.ee }} 2.4.x in deployments with more than 100,000 company roles has been substantially reduced. diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 25c0d71a43d..39308095c81 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -108,8 +108,6 @@ This release brings increased conformance to standard accessibility guidelines. ## Fixed issues - - We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. ### Installation, upgrade, deployment @@ -122,6 +120,10 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * {{ site.data.var.ee }} no longer throws an exception when you try to change the Admin URL to a custom URL from the Admin. Previously, after changing the Admin URL, you could not log in. [GitHub-35416](https://github.com/magento/magento2/issues/35416) + + +* Merchants can now successfully upgrade from an {{ site.data.var.ee }} 2.4.2 deployment with Klarna to {{ site.data.var.ee }} 2.4.3. [GitHub-33760](https://github.com/magento/magento2/issues/33760) + ### Accessibility @@ -138,7 +140,7 @@ The **Shopping bag** button now provides a programmatic or textual indication of -* Filter and sort button text now meet the WCAG 2.0 required minimum color contrast ratio of 4.5:1 for standard text of 18pt (24px) or 14pt (19px) if bolded. Previously, navigation buttons for carousels did not meet these minimum contrast requirements. +* **Filter** and **Sort** button text now meet the WCAG 2.0 required minimum color contrast ratio of 4.5:1 for standard text of 18pt (24px) or 14pt (19px) if bolded. Previously, navigation buttons for carousels did not meet these minimum contrast requirements. @@ -168,8 +170,16 @@ The **Shopping bag** button now provides a programmatic or textual indication of * You can now use the REST API to update product price attributes for a specific website. Previously, if some product attributes were overridden for a specific store view, you could not update a price attribute for that product in that same store view. + + +* {{ site.data.var.ee }} now correctly calculates the cart total for a bundle product when the Product Subselect rule is applied. + ### Cache + + +* Full page cache is no longer shown as disabled in the Admin when the Magento cache is flushed and `use_stale_cache` is enabled. + ### Cart and checkout @@ -206,7 +216,7 @@ The **Shopping bag** button now provides a programmatic or textual indication of -* `cart` query responses no longer return null responses when a product is out of stock. Previously, when you ran a query with an out-of-stock product, {{ site.data.var.ee }}displayed a `null` value under the `items` section in the response. +* `cart` query responses no longer return null responses when a product is out of stock, and a new `errors` element containing the error message was introduced to the response. Previously, when you ran a query with an out-of-stock product, Magento displayed a `null` value under the `items` section in the response. See [cart query](https://devdocs.magento.com/guides/v2.4/graphql/queries/cart.html). @@ -230,7 +240,15 @@ The **Shopping bag** button now provides a programmatic or textual indication of -* Unassigning inventory sources through bulk action (**Catalog** > **Products** > **Select Products** > **Actions - Unassign Inventory Source**) now works as expected when sources include SKUs that are duplicate with the exception of a leading zero (for example, `01234` and `1234`). Previously, {{ site.data.var.ee }}did not unassign inventory sources and threw an error. +* Unassigning inventory sources through bulk action (**Catalog** > **Products** > **Select Products** > **Actions - Unassign Inventory Source**) now works as expected when sources include SKUs that are duplicate with the exception of a leading zero (for example, `01234` and `1234`). Previously, {{ site.data.var.ee }} did not unassign inventory sources and threw an error. + + + +* Store credit is now unavailable when the Zero Subtotal Checkout payment method is disabled. Previously, the Store Credit checkbox was not functional during order placement from Admin. {{ site.data.var.ee }} did not place the order with the store credit and displayed this error: `The requested Payment Method is not available`. + + + +* Merchants can now create a credit memo in which **Refund Shipping (Incl. Tax)** is set to -0.01 and can now set this amount to 0. Previously, the credit memo could not be created under these conditions. ### Cart price rule @@ -282,7 +300,7 @@ The **Shopping bag** button now provides a programmatic or textual indication of -* {{ site.data.var.ee }} no longer throws an error when a category rule assigns a product to a category that is subsequently sorted. +* {{ site.data.var.ee }} no longer throws an error when a category rule assigns a product to a category that is subsequently sorted in a multi-site deployment. @@ -294,7 +312,7 @@ The **Shopping bag** button now provides a programmatic or textual indication of -* Products are now enabled as expected after a schedule update completes. +* Products can now be enabled using a scheduled update. @@ -330,12 +348,28 @@ The **Shopping bag** button now provides a programmatic or textual indication of -* Page Cache is now cleared as expected for the configurable product parent when changes to a child product are saved. Previously, because the cache was not cleared, changes were not selected on the storefront configuration product page. [GitHub-34508](https://github.com/magento/magento2/issues/34508) +* Page cache is now cleared as expected for the configurable product parent when changes to a child product are saved. Previously, because the cache was not cleared, changes were not selected on the storefront configuration product page. [GitHub-34508](https://github.com/magento/magento2/issues/34508) * Product lists are now rendered correctly in the Admin. Previously, the product list did not render, and {{ site.data.var.ee }} displayed this error: `Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "" already exists`. [GitHub-33145](https://github.com/magento/magento2/issues/33145) + + +* Product prices are now the same on the product detail page and in storefront search in multi-store deployments after Catalogue Price Scope changes from **website** to **global**. Previously, the Catalog Search Results page displayed the **global** price, and the product details page displayed the **website** price. [GitHub-34074](https://github.com/magento/magento2/issues/34074) + + + +* Layered navigation now displays products with the highest prices as expected when **Price Navigation Step Calculation** is set to **Manual**. + + + +* You can now change the per-page product limit displayed within a category when **Remember Category Pagination** is enabled. Previously, the cookie `form_key` and UI `form_key` differed, and {{ site.data.var.ee }} displayed this error: `Invalid Form Key. Please refresh the page`. + + + +* The EAV indexer now processes product IDs as type `int` to prevent possible performance issues. + ### Catalog rule ### CMS content @@ -378,6 +412,10 @@ The **Shopping bag** button now provides a programmatic or textual indication of * Configurable products are now moved to the last position in the product listing after stock is updated when the **Move out of stock to the bottom** setting is enabled. A new custom database query has been implemented to negate Elasticsearch index sort order, which disregards Admin-enabled sort order. Previously, configurable products and their child products were not moved to the bottom of the list when this setting was enabled. + + +* {{ site.data.var.ee }} now correctly displays a configurable product’s stock status, available configurations, and displayed price when the availability of one of the configurable product’s child product is changed by a scheduled update. Previously, when a configurable product had two children and the availability of one child product was disabled with a scheduled update, the parent product’s stock status was incorrectly displayed as **Out of Stock** when the update was active, After the update completed, the displayed price and the availability of its configurations was miscalculated. + ### Customer @@ -410,11 +448,11 @@ The **Shopping bag** button now provides a programmatic or textual indication of -* The `bin/magento setup:config:set` command no longer overrides already set cache ID prefixes. +* The `bin/magento setup:config:set` command no longer overrides already set cache ID prefixes in `app/etc/env.php`. -* `setup:static-content:deploy -s compact` now includes styles from child themes as expected. Previously, these themes were not present on the storefront after deployment. +* `setup:static-content:deploy -s compact` now includes styles from child themes as expected. Previously, theme CSS files were not present on the storefront after deployment. @@ -452,6 +490,10 @@ The **Shopping bag** button now provides a programmatic or textual indication of * {{ site.data.var.ee }} now returns a 404 error instead of a 500 error when you navigate to `/checkout/sidebar/updateItemQty/?item_qty=error` on the storefront. Previously, this error was thrown: `Warning: A non-numeric value encountered in /vendor/magento/module-checkout/Controller/Sidebar/UpdateItemQty.php on line 69`. [GitHub-34380](https://github.com/magento/magento2/issues/34380) + + +* Magento no longer triggers a `trim(): Passing null to parameter #1 ($string) of type string is deprecated` error when the AMPQ connection is configured without SSL configuration. + ### General fixes @@ -514,6 +556,14 @@ The **Shopping bag** button now provides a programmatic or textual indication of * {{ site.data.var.ee }} no longer throws an error when an administrator with roles scoped to a single website adds product to Content Elements using PageBuilder. Previously, {{ site.data.var.ee }} threw an SQL error. + + +* Validation has been added to the second line of the street address on the edit and add address pages. The minimum and maximum text lengths that are specified on the second are now enforced. + + + +* Magento no longer throws the following error during the creation of a catalog rule in the Admin after upgrade: `A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later`. + ### Gift cards @@ -596,7 +646,7 @@ The **Shopping bag** button now provides a programmatic or textual indication of -* `products` queries now return only the categories associated with the website passed in the request. +* `products` queries now return only the categories associated with the store passed in the request. @@ -694,7 +744,7 @@ The **Shopping bag** button now provides a programmatic or textual indication of -* Images on product details page no longer flicker, and the image remains centered as expected. Previously, after a product detail page completed loading an image, the image visibly shifted downwards. +* Images on product details pages no longer flicker, and images remain centered as expected. Previously, after a product detail page completed loading an image, the image visibly shifted downwards. ### Import/export @@ -708,7 +758,7 @@ The **Shopping bag** button now provides a programmatic or textual indication of -* {{ site.data.var.ee }} now successfully imports images with a long file name. Previously, {{ site.data.var.ee }} did not import the image and threw this error: `Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in row(s):`. +* {{ site.data.var.ee }} now successfully imports images with long file names. Previously, {{ site.data.var.ee }} did not import the image and threw this error: `Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in row(s):`. @@ -718,6 +768,10 @@ The **Shopping bag** button now provides a programmatic or textual indication of * Bundle products that contain a question mark (?) in the option title can now be imported successfully because of improvements to the query builder inside `populateExistingOptions` method. The option title is also displayed correctly. Previously, after the initial import, successive imports resulted in corrupted behavior and doubled options. Shoppers could not add the product to the cart, either. + + +* Added validation for category names during import. Previously, {{ site.data.var.ee }} did not validate category names, which lead to errors when category names exceeded 255 characters. + ### Index ### Infrastructure @@ -764,6 +818,10 @@ Repetitive actions have been replaced with action groups in these tests: * The newsletter subscription confirmation email now has the correct, store-specific email address in the **From** field if the customer is assigned to a non-default store and subscribed or unsubscribed from the Admin. Previously, the customer received an email with default email in **From** header. [GitHub-34963](https://github.com/magento/magento2/issues/34963) + + +* Customers added through the `createCustomer/createCustomerV2/updateCustomer/updateCustomerV2` mutation are now added with active newsletter subscriptions. Previously, customers were unsubscribed from newsletters even when the request contained proper input parameters. [GitHub-33599](https://github.com/magento/magento2/issues/33599) + ### Order @@ -798,6 +856,14 @@ Repetitive actions have been replaced with action groups in these tests: * {{ site.data.var.ee }} now displays credit memos on the credit memo grid page for orders created from store views whose name is prepended with numbers. Previously, {{ site.data.var.ee }} displayed the error: `The store that was requested wasn't found. Verify the store and try again. Exception in /var/www/html/vendor/magento/module-store/Model/StoreRepository.php:75`. [GitHub-35122](https://github.com/magento/magento2/issues/35122) + + +* {{ site.data.var.ee }} now displays the free shipping cost (0) on the Admin and storefront invoice page totals. Previously, when shipping was zero for an order, {{ site.data.var.ee }} did not display the shipping amount in total on the invoice page shipping total. + + + +* Magento now displays correct order status during checkout when customer store credit is used. + ### Payment methods @@ -822,7 +888,11 @@ Repetitive actions have been replaced with action groups in these tests: -* Redis cache management has been improved by the addition of TTL (expiration date) for configurable product associated products data caches. Previously, these caches were not evicted due to missing TTL if redis keys eviction policy is configured to any of volatile eviction policies. +* Redis cache management has been improved by the addition of TTL (expiration date) for configurable products’ associated product data caches. Previously, these caches were not evicted due to missing TTL values if Redis key eviction policy was configured to a volatile eviction policy. + + + +* The new `Grid Filter Condition Type` customer/customer address attribute controls how an attribute filter is matched against the attribute values in the database, Options include `Partial Match`, `Prefix Match`, and `Full Match`. ### Pricing @@ -838,6 +908,16 @@ Repetitive actions have been replaced with action groups in these tests: ### Product video +### Promotions + + + +* The **Times Used** value for a discount is no longer incremented twice when a guest customer places an order with a discount and subsequently registers an account. + +### ReCAPTCHA + +* The **Submit** button on the Login and Create an Account pages is now inactive until ReCaptcha is fully loaded. + ### Return Merchandise Authorizations (RMA) @@ -846,10 +926,24 @@ Repetitive actions have been replaced with action groups in these tests: -* The **Use Default** checkbox to enable RMA on the product edit page now works as expected for Default Store. Previously, the checkbox was cleared immediately after the product was saved. +* The **Use Default** checkbox, which is used to enable RMA on the product edit page, now works as expected for Default Store. Previously, the checkbox was cleared immediately after the product was saved. ### Reviews +### Rewards + + + +* Reward points can now be refunded when store credit functionality is disabled. + + + +* Checkout performance has been improved when reward points are applied. When `entity` is null, then the database query will not be executed because querying the `magento_reward_history` table is not mandatory under the circumstances. + + + +* Credit memos for guest orders no longer check for `customer_id`, which skips querying the `magento_reward_history' database table table for reward points. This change has improved performance. + ### Sales ### Sales Rule @@ -910,7 +1004,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Merchants can now remove an end date for a schedule update or delete and recreate an update. Previously, when an end date was removed, an entity remained scheduled for that time. {{ site.data.var.ee }} now removes the outdated update for removed rollback. +* Merchants can now remove an end date for a scheduled update or delete and recreate an update. Previously, when an end date was removed, an entity remained scheduled for that time. {{ site.data.var.ee }} now removes the outdated update for removed rollback. @@ -918,16 +1012,32 @@ Repetitive actions have been replaced with action groups in these tests: -* The `custom_design_to` attribute value is now updated as expected when a schedule update is changed. Previously, two separate category design updates with no end time were treated as one. When one of the schedule updates was deleted while the first one was running, the `custom_design_from` time value became greater than the `custom_design_to` time values in the next schedule update. +* The `custom_design_to` attribute value is now updated as expected when a scheduled update is changed. Previously, two separate category design updates with no end time were treated as one. When one of the scheduled updates was deleted while the first one was running, the `custom_design_from` time value became greater than the `custom_design_to` time values in the next scheduled update. -* {{ site.data.var.ee }} now displays a form populated with data from the previous scheduled update as expected when you try to create the second schedule update for a product. Previously, {{ site.data.var.ee }} displayed this error when you tried to create the second update with a past start date: `The Start Time of this Update cannot be changed. It's been already started`. +* Forms are now populated with data as expected after a scheduled update is edited. * The `vendor/magento/module-catalog-staging/Setup/Patch/Data/MigrateCatalogProducts.php` data patch no longer fails when the database includes product with custom options and the `special_from_date` attribute is set. + + +* Changes are now saved during a second scheduled update when the changes are added by the running update. Previously, changes were not saved, and merchants needed to re-enter and save changes. + + + +* The Bulk actions log now displays information about failed `to be moved` scheduled updates. Previously, information about these failures was available in the `cron.log` file only. + + + +* Merchants are now restricted to using comma-separated prices when editing a product price in a scheduled update regardless of locale. Previously, prices that contained commas in a scheduled update were divided by 1000 depending on the locale. + + + +* Problems with DHL domestic shipping in deployments running PHP 8.1 have been resolved by requiring dutiable tags for international shipments only. + ### Store ### Tax @@ -960,6 +1070,10 @@ Repetitive actions have been replaced with action groups in these tests: * The `getCartDetails` query no longer includes tax when returning `subtotal_with_discount_excluding_tax`. [GitHub-33905](https://github.com/magento/magento2/issues/33905) + + +* Web API requests for order data (`rest/V1/orders/`) no longer returns negative values for row totals. + ### Test @@ -988,6 +1102,18 @@ Repetitive actions have been replaced with action groups in these tests: * The Admin date-time format for Brazilian Portuguese and French locales is now valid. + + +* Added a grave accent [ ` ] character to the name validator so that customer account can be created for first or last names that include this accent. + + + +* The text on the **Add to cart** button on the Product Details page now remains translated into the language specified in the associated locale. Translation files are now converted to corresponding JavaScript files based on the areas, themes, and locales when `translate_strategy=embedded`. Previously, the text reverted to English after the product was added to the cart. + + + +* Search Synonyms now respect their assigned store scope. Previously, a synonym assigned to a specific store was searchable on any other store. + ### UI @@ -1038,6 +1164,18 @@ Repetitive actions have been replaced with action groups in these tests: * Administrators can now set the current user’s expiration date higher than 2038 and save the user successfully. Previously, the user whose expiration date was changed could not log back in after logging out. + + +* {{ site.data.var.ee }} now displays an informative error message when an administrator tries to save an address with excessive street lines in Admin **Store** > **Attributes** > **Customer Address**. The administrator can now delete the extra address information and successfully save the address. Previously, {{ site.data.var.ee }} committed the extra lines but did not save the data. + + + +* The product listing view configuration in the database and local storage has been updated. Custom grid views are now saved during page reload and view changes. + + + +* You can now switch between store views when website restrictions are enabled. Previously, problems with the store view switcher prevented switching store views. + ### URL rewrites @@ -1088,6 +1226,10 @@ Repetitive actions have been replaced with action groups in these tests: * REST API bulk PUT and DELETE requests now work as expected when the `Magento_ReCaptchaWebapiRest` module is enabled. [GitHub-35348](https://github.com/magento/magento2/issues/35348) + + +* The Bulk Rest API now works with the `bySku` option for configurable products. Previously, it returned a 500 error. + ### Wish list From 26f9768c6c830c99d712b34953814a9dfe299ca5 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Sun, 12 Jun 2022 21:02:45 -0500 Subject: [PATCH 022/491] added platform upgrade highlights --- .../v2.4/release-notes/commerce-2-4-5.md | 65 +++++++++++++++++-- 1 file changed, 59 insertions(+), 6 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 39308095c81..884b76e6e00 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -54,13 +54,50 @@ Security improvements for this release improve compliance with the latest securi * Composer 2.2 -* Elasticsearch v7.17 +* Elasticsearch (~7.17.0 with constraint) -* The `TinyMCE` library has been upgraded to v5.10.0. +* TinyMCE (5.10.2) -* `PHPStan` has been upgraded to v1.5. +* jQueryUI (1.13.1) -* The `league/fly` Composer dependencies have been to v2.4.3. +* `PHPStan` (^1.5.7 with constraint) + +#### Composer dependency updates + + + +The following Composer dependencies have been updated to the latest versions with constraint: + +`colinmollenhour/credis` (1.13.0 or 1.12.2)? +`guzzlehttp/guzzle` (^7.4.2) +`laminas/laminas-captcha` (updated with a constraint ^2.12) +`laminas/laminas-db` (^2.15.0) +`laminas/laminas-di` (^3.4.0) +`laminas/laminas-escaper` (~2.10.0) +`laminas/laminas-eventmanager` (^3.5.0) +`laminas/laminas-feed` (^2.17.0) +`laminas/laminas-mail` (^2.16.0) +`laminas/laminas-mvc` (^3.3.3) +`laminas/laminas-server` (^2.11.1) +`laminas/laminas-servicemanager` (^3.11.0) +`laminas/laminas-session` (^2.12.1) +`laminas/laminas-validator` (^2.17.0) +`league/fly` (2.4.3) +`monolog/monolog` (^2.5) +`phpmd/phpmd` (^2.12.0) +`phpstan/phpstan` (^1.5.7) +`phpunit/phpunit` (~9.5.20) +`phpunit/phpunit` (^9.4) +`php-cs-fixer` (^3.4.0) +`webonyx/graphql-php` (14.11.6) + +The `laminas/laminas-session`, `laminas/laminas-text`, and `laminas/laminas-view` dependencies have been removed. + +#### Other upgrades and replacements + +* The default Gateway URL for USPS shipping has been updated to use `https` instead of `http`. + +* The `Froogaloop` library has been replaced with the Vimeo `Player.js` library (2.16.4). * The `grunt-eslint` (NPM) library has been upgraded to the latest version. @@ -68,9 +105,17 @@ Security improvements for this release improve compliance with the latest securi * The `php-cs-fixer` and `phpcs` static code analysis tools are now compatible with PHP 8.x. -* The `php-cs-fixer` Composer dependency has been updated to ^3.4.0. +* `glob.js` dependency (upgraded with constraint to ~7.2.0) -* The `phpunit/phpunit` Composer dependency updated to version ^9.4. +* `serve-static.js` dependency (upgraded with constraint ~1.14.2) + +* `underscore.js` dependency (NPM) (1.14.2) + +* `moment-timezone-with-data.js` (0.5.34) + +* The library `jquery/jquery-cookie` has been replaced with `js-cookie/js-cookie`. + +* The `jarallax.js` and `jaralax-video.js` libraries have been updated to the latest versions (2.0.3). ### Performance and scalability enhancements @@ -780,6 +825,14 @@ The **Shopping bag** button now provides a programmatic or textual indication of * The SQL query that updates affected quotes after a cart price rule is disabled has been optimized to avoid locking the entire quote table. + + +* A deprecated Context Menu plugin has been removed from plugins list. + + + +* The TinyMCE editor toolbar-related logic in the Page Builder module has been updated as a result of introducing `delayedRender` logic for the toolbar in TinyMCE. + #### Library removals and deprecations #### Library upgrades From 862a9ca108dcd53ff79855fd6ce0a9d3a7a7df54 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Mon, 13 Jun 2022 23:36:53 -0500 Subject: [PATCH 023/491] Add GraphQL session configuration command --- src/_data/toc/graphql.yml | 2 +- .../v2.4/graphql/authorization-tokens.md | 36 +++++++++++++++---- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/_data/toc/graphql.yml b/src/_data/toc/graphql.yml index a0011a66906..345a5156e00 100644 --- a/src/_data/toc/graphql.yml +++ b/src/_data/toc/graphql.yml @@ -9,7 +9,7 @@ pages: - label: GraphQL requests url: /graphql/send-request.html - - label: Authorization tokens + - label: GraphQL Authorization url: /graphql/authorization-tokens.html - label: Protected mutations diff --git a/src/guides/v2.4/graphql/authorization-tokens.md b/src/guides/v2.4/graphql/authorization-tokens.md index 3ce58c4f040..0e80070e4c3 100644 --- a/src/guides/v2.4/graphql/authorization-tokens.md +++ b/src/guides/v2.4/graphql/authorization-tokens.md @@ -1,17 +1,27 @@ --- group: graphql -title: Authorization tokens +title: GraphQL Authorization contributor_name: Atwix contributor_link: https://www.atwix.com/ redirect_from: - /guides/v2.4/graphql/get-customer-authorization-token.html --- -Magento provides separate token services for customers and administrators. When you request a token from one of these services, the service returns a unique access token in exchange for the username and password for a Magento account. +Adobe Commerce and Magento Open Source provide two mechanisms for authorizing GraphQL calls: -Magento GraphQL provides a mutation that returns a token on behalf of a logged-in customer. You must use a REST call to fetch an admin token. Use this token in the Authorization request header field for any queries and mutations. See [Request headers]({{page.baseurl}}/graphql/send-request.html#headers) +* **Authorization tokens**. Commerce generates a JSON Web Token (JWT), a set of cryptographically signed credentials. All calls that perform an action on behalf of a logged-in customer or admin provide an authorization token. Authorization tokens are stateless. Commerce does not need to know the state of a client to execute a request--the token contains all of the information needed for authorization. -## Customer tokens +* **Session cookies**. A session cookie is information generated by Commerce that is stored in the client's browser. It contains details about the session, including the time period the user can access resources. Cookies are stateful, thereby increasing complexity and possibly latency. + +Adobe recommends that you use authorization tokens instead of session cookies for GraphQL requests. By default, session cookies are enabled. As of Commerce 2.4.5, you can disable session cookies, eliminating the chances of encountering problems caused by the differences between the two authorization methods. However, merchants with existing implementations that rely on cookies can continue using this method. [Session cookies](#Session-cookies) describes how to enable or disable cookies for GraphQL. + +## Authorization tokens + +Adobe Commerce provides separate token services for customers and administrators. When you request a token from one of these services, the service returns a unique access token in exchange for the account's username and password. + +GraphQL provides a mutation that returns a token on behalf of a logged-in customer. You must use a REST call to fetch an admin token. Use this token in the Authorization request header field for any queries and mutations. See [Request headers]({{page.baseurl}}/graphql/send-request.html#headers) + +### Customer tokens The [`generateCustomerToken` mutation]({{page.baseurl}}/graphql/mutations/generate-customer-token.html) requires the customer email address and password in the payload, as shown in the following example. @@ -43,7 +53,7 @@ You can now use this token in the Authorization request header field for any que ![GraphQL Authorization Bearer]({{site.baseurl}}/common/images/graphql/graphql-authorization.png) -If necessary, you also can [revoke the customer's token]({{ page.baseurl }}/graphql/mutations/revoke-customer-token.html +If necessary, you also can [revoke the customer's token]({{ page.baseurl }}/graphql/mutations/revoke-customer-token.html). The [`generateCustomerTokenAsAdmin`]({{page.baseurl}}/graphql/mutations/generate-customer-token-as-admin.html) mutation generates a new customer token as an admin so that an administrator can perform remote shopping assistance. The customer must have enabled the `allow_remote_shopping_assistance` feature while creating the customer profile. The mutation requires the customer email address in the payload, as shown in the following example. @@ -72,10 +82,24 @@ mutation{ } ``` -## Admin tokens +### Admin tokens In Magento GraphQL, you specify an admin token only if you need to query products, categories, price rules, or other entities that are scheduled to be in a campaign (staged content). Staging is supported in {{site.data.var.ee}} only. See [Staging queries]({{page.baseurl}}/graphql/queries/index.html#staging) for more information. Magento does not provide a GraphQL mutation that generates an admin token. You must use a REST endpoint such as `POST /V1/tfa/provider/google/authenticate` instead. [Generate the admin token]({{page.baseurl}}/rest/tutorials/prerequisite-tasks/create-admin-token.html) shows how to use this endpoint. By default, an admin token is valid for 4 hours. You can change these values from Admin by selecting **Stores** > **Settings** > **Configuration** > **Services** > **OAuth** > **Access Token Expiration** > **Admin Token Lifetime**. + +## Session cookies + +The client's browser will use a session cookie if the server provides one. Prior to version 2.4.5, Commerce automatically provided these cookies, even if an authorization token was specified. + +Multi-page applications that make GraphQL calls can continue implementing these cookies without changing the default setting. However, most merchants should disable these cookies. As a result, Commerce will be fast more secure. In addition, disabling cookies will prevent a situation in which unnecessary sessions locking HTTP GET requests. + +Run the following command to disable session cookies for GraphQL: + +`bin/magento config:set graphql/session/disable 1` + +To re-enable these cookies, run: + +`bin/magento config:set graphql/session/disable 1` From c26f09cafb51882435f429688ccad14f0e7d1a31 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Wed, 15 Jun 2022 11:00:15 -0500 Subject: [PATCH 024/491] Review comments --- src/guides/v2.4/graphql/authorization-tokens.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/guides/v2.4/graphql/authorization-tokens.md b/src/guides/v2.4/graphql/authorization-tokens.md index 0e80070e4c3..7d9324155ee 100644 --- a/src/guides/v2.4/graphql/authorization-tokens.md +++ b/src/guides/v2.4/graphql/authorization-tokens.md @@ -13,13 +13,13 @@ Adobe Commerce and Magento Open Source provide two mechanisms for authorizing Gr * **Session cookies**. A session cookie is information generated by Commerce that is stored in the client's browser. It contains details about the session, including the time period the user can access resources. Cookies are stateful, thereby increasing complexity and possibly latency. -Adobe recommends that you use authorization tokens instead of session cookies for GraphQL requests. By default, session cookies are enabled. As of Commerce 2.4.5, you can disable session cookies, eliminating the chances of encountering problems caused by the differences between the two authorization methods. However, merchants with existing implementations that rely on cookies can continue using this method. [Session cookies](#Session-cookies) describes how to enable or disable cookies for GraphQL. +Adobe recommends that you use authorization tokens instead of session cookies for GraphQL requests. By default, session cookies are enabled. As of Commerce 2.4.5, you can disable session cookies, eliminating the chances of encountering problems caused by the differences between the two authorization methods. However, merchants with existing implementations that rely on cookies can continue using this method. [Session cookies](#Session-cookies) describes how to enable or disable cookies for GraphQL. ## Authorization tokens Adobe Commerce provides separate token services for customers and administrators. When you request a token from one of these services, the service returns a unique access token in exchange for the account's username and password. -GraphQL provides a mutation that returns a token on behalf of a logged-in customer. You must use a REST call to fetch an admin token. Use this token in the Authorization request header field for any queries and mutations. See [Request headers]({{page.baseurl}}/graphql/send-request.html#headers) +GraphQL provides a mutation that returns a token on behalf of a logged-in customer, but you must use a REST call to fetch an admin token. Any time you make a GraphQL or REST call that requires a token, specify the HTTP `Authorization` request header and assign the value as `Bearer `. [Request headers]({{page.baseurl}}/graphql/send-request.html#headers) provides an example. ### Customer tokens @@ -53,7 +53,7 @@ You can now use this token in the Authorization request header field for any que ![GraphQL Authorization Bearer]({{site.baseurl}}/common/images/graphql/graphql-authorization.png) -If necessary, you also can [revoke the customer's token]({{ page.baseurl }}/graphql/mutations/revoke-customer-token.html). +You can also [revoke the customer's token]({{ page.baseurl }}/graphql/mutations/revoke-customer-token.html) when the customer logs out or changes their password. The [`generateCustomerTokenAsAdmin`]({{page.baseurl}}/graphql/mutations/generate-customer-token-as-admin.html) mutation generates a new customer token as an admin so that an administrator can perform remote shopping assistance. The customer must have enabled the `allow_remote_shopping_assistance` feature while creating the customer profile. The mutation requires the customer email address in the payload, as shown in the following example. @@ -92,9 +92,11 @@ By default, an admin token is valid for 4 hours. You can change these values fro ## Session cookies -The client's browser will use a session cookie if the server provides one. Prior to version 2.4.5, Commerce automatically provided these cookies, even if an authorization token was specified. +The client's browser will use a session cookie if the server provides one. Prior to version 2.4.5, Commerce automatically provides/generated as session cookie even if an authorization token was specified. -Multi-page applications that make GraphQL calls can continue implementing these cookies without changing the default setting. However, most merchants should disable these cookies. As a result, Commerce will be fast more secure. In addition, disabling cookies will prevent a situation in which unnecessary sessions locking HTTP GET requests. +Browser-based applications that make GraphQL calls can continue implementing these cookies without changing the default setting. If you use cookies, avoid specifying Authorization headers to prevent problems caused by using two different authorization methods. + +Adobe recommends that apps should be implemented without cookies. In this case, you should configure GraphQL so that the server doesn't generate them. Disabling cookies also prevents the system file locks and racing conditions on server resources. These problems cause slower HTTP GET requests throughputs under peak traffic conditions. Run the following command to disable session cookies for GraphQL: From 86e8cb36b23098162f980d85123358f94e38f159 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Wed, 15 Jun 2022 15:01:17 -0500 Subject: [PATCH 025/491] Editorial updates --- src/guides/v2.4/graphql/authorization-tokens.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/guides/v2.4/graphql/authorization-tokens.md b/src/guides/v2.4/graphql/authorization-tokens.md index 7d9324155ee..fb291064aa4 100644 --- a/src/guides/v2.4/graphql/authorization-tokens.md +++ b/src/guides/v2.4/graphql/authorization-tokens.md @@ -9,7 +9,7 @@ redirect_from: Adobe Commerce and Magento Open Source provide two mechanisms for authorizing GraphQL calls: -* **Authorization tokens**. Commerce generates a JSON Web Token (JWT), a set of cryptographically signed credentials. All calls that perform an action on behalf of a logged-in customer or admin provide an authorization token. Authorization tokens are stateless. Commerce does not need to know the state of a client to execute a request--the token contains all of the information needed for authorization. +* **Authorization tokens**. Commerce generates a JSON Web Token (JWT), a set of cryptographically signed credentials. All calls that perform an action on behalf of a logged-in customer orgi admin provide an authorization token. Authorization tokens are stateless. Commerce does not need to know the state of a client to execute a request--the token contains all of the information needed for authorization. * **Session cookies**. A session cookie is information generated by Commerce that is stored in the client's browser. It contains details about the session, including the time period the user can access resources. Cookies are stateful, thereby increasing complexity and possibly latency. @@ -92,11 +92,11 @@ By default, an admin token is valid for 4 hours. You can change these values fro ## Session cookies -The client's browser will use a session cookie if the server provides one. Prior to version 2.4.5, Commerce automatically provides/generated as session cookie even if an authorization token was specified. +The client's browser will use a session cookie if the server provides one. Prior to version 2.4.5, Commerce automatically generated session cookies even if an authorization token was specified. Browser-based applications that make GraphQL calls can continue implementing these cookies without changing the default setting. If you use cookies, avoid specifying Authorization headers to prevent problems caused by using two different authorization methods. -Adobe recommends that apps should be implemented without cookies. In this case, you should configure GraphQL so that the server doesn't generate them. Disabling cookies also prevents the system file locks and racing conditions on server resources. These problems cause slower HTTP GET requests throughputs under peak traffic conditions. +Adobe recommends that you do not use session cookies when developing a Commerce-based application. If you adhere to this best practice, you should configure GraphQL so that the server doesn't generate them. Disabling cookies also prevents the system file locks and racing conditions on server resources. These problems cause slower HTTP GET request throughputs under peak traffic conditions. Run the following command to disable session cookies for GraphQL: From 2f0769a62a02ebede1b950b86a5c22bd063227dd Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Thu, 16 Jun 2022 09:16:08 -0500 Subject: [PATCH 026/491] One more comment --- src/guides/v2.4/graphql/authorization-tokens.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/graphql/authorization-tokens.md b/src/guides/v2.4/graphql/authorization-tokens.md index fb291064aa4..d910e3ff24a 100644 --- a/src/guides/v2.4/graphql/authorization-tokens.md +++ b/src/guides/v2.4/graphql/authorization-tokens.md @@ -9,7 +9,7 @@ redirect_from: Adobe Commerce and Magento Open Source provide two mechanisms for authorizing GraphQL calls: -* **Authorization tokens**. Commerce generates a JSON Web Token (JWT), a set of cryptographically signed credentials. All calls that perform an action on behalf of a logged-in customer orgi admin provide an authorization token. Authorization tokens are stateless. Commerce does not need to know the state of a client to execute a request--the token contains all of the information needed for authorization. +* **Authorization tokens**. Commerce generates a JSON Web Token (JWT), a set of cryptographically signed credentials. All calls that perform an action on behalf of a logged-in customer orgi admin provide an authorization token. Authorization tokens are stateless. Commerce does not need to know the state of a client to execute a request--the token contains all of the information needed for authorization and authentication. * **Session cookies**. A session cookie is information generated by Commerce that is stored in the client's browser. It contains details about the session, including the time period the user can access resources. Cookies are stateful, thereby increasing complexity and possibly latency. From 262bcf675019244ca425cd2cbcca0e11bb3f9114 Mon Sep 17 00:00:00 2001 From: hguthrie Date: Thu, 16 Jun 2022 09:23:40 -0500 Subject: [PATCH 027/491] Update src/guides/v2.3/frontend-dev-guide/validations/custom-validation.md Co-authored-by: Barny Shergold --- .../v2.3/frontend-dev-guide/validations/custom-validation.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/guides/v2.3/frontend-dev-guide/validations/custom-validation.md b/src/guides/v2.3/frontend-dev-guide/validations/custom-validation.md index a4942bd4325..5dc0576e377 100644 --- a/src/guides/v2.3/frontend-dev-guide/validations/custom-validation.md +++ b/src/guides/v2.3/frontend-dev-guide/validations/custom-validation.md @@ -47,7 +47,6 @@ define(['jquery'], function($) { }, $.mage.__('Please enter exactly five words') ) - return targetWidget; } }); From fde05c5584d0ee9666bb81166ca5b592f05c27be Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Thu, 16 Jun 2022 09:34:55 -0500 Subject: [PATCH 028/491] Fix typo --- src/guides/v2.4/graphql/authorization-tokens.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/graphql/authorization-tokens.md b/src/guides/v2.4/graphql/authorization-tokens.md index d910e3ff24a..9e9ea448ee5 100644 --- a/src/guides/v2.4/graphql/authorization-tokens.md +++ b/src/guides/v2.4/graphql/authorization-tokens.md @@ -9,7 +9,7 @@ redirect_from: Adobe Commerce and Magento Open Source provide two mechanisms for authorizing GraphQL calls: -* **Authorization tokens**. Commerce generates a JSON Web Token (JWT), a set of cryptographically signed credentials. All calls that perform an action on behalf of a logged-in customer orgi admin provide an authorization token. Authorization tokens are stateless. Commerce does not need to know the state of a client to execute a request--the token contains all of the information needed for authorization and authentication. +* **Authorization tokens**. Commerce generates a JSON Web Token (JWT), a set of cryptographically signed credentials. All calls that perform an action on behalf of a logged-in customer or admin provide an authorization token. Authorization tokens are stateless. Commerce does not need to know the state of a client to execute a request--the token contains all of the information needed for authorization and authentication. * **Session cookies**. A session cookie is information generated by Commerce that is stored in the client's browser. It contains details about the session, including the time period the user can access resources. Cookies are stateful, thereby increasing complexity and possibly latency. From 36cb873154ad6ad91f7a559a3e59aeff0310300f Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Thu, 16 Jun 2022 10:01:13 -0500 Subject: [PATCH 029/491] Apply suggestions from code review Co-authored-by: Donald Booth --- src/guides/v2.4/graphql/authorization-tokens.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/guides/v2.4/graphql/authorization-tokens.md b/src/guides/v2.4/graphql/authorization-tokens.md index 9e9ea448ee5..949f6722fa0 100644 --- a/src/guides/v2.4/graphql/authorization-tokens.md +++ b/src/guides/v2.4/graphql/authorization-tokens.md @@ -96,7 +96,7 @@ The client's browser will use a session cookie if the server provides one. Prior Browser-based applications that make GraphQL calls can continue implementing these cookies without changing the default setting. If you use cookies, avoid specifying Authorization headers to prevent problems caused by using two different authorization methods. -Adobe recommends that you do not use session cookies when developing a Commerce-based application. If you adhere to this best practice, you should configure GraphQL so that the server doesn't generate them. Disabling cookies also prevents the system file locks and racing conditions on server resources. These problems cause slower HTTP GET request throughputs under peak traffic conditions. +Adobe recommends that you do not use session cookies when developing a Commerce-based application. If you adhere to this best practice, you should configure GraphQL so that the server doesn't generate them. Disabling cookies also prevents system file locks and race conditions on server resources. These problems cause slower HTTP GET request throughputs under peak traffic conditions. Run the following command to disable session cookies for GraphQL: @@ -104,4 +104,4 @@ Run the following command to disable session cookies for GraphQL: To re-enable these cookies, run: -`bin/magento config:set graphql/session/disable 1` +`bin/magento config:set graphql/session/disable 0` From a1c1aac9cdb2647d9f1aad471905eec4733f3a00 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Mon, 20 Jun 2022 12:13:06 -0500 Subject: [PATCH 030/491] added last inventory issues --- .../release-notes/engcomm-2-4-5-issues.md | 25 ++ .../release-notes/engcomm-2-4-5-partner.md | 7 + src/guides/v2.3/inventory/release-notes.md | 4 + src/guides/v2.3/release-notes/2-3-7-p4.md | 2 +- src/guides/v2.4/release-notes/2-4-3-p3.md | 2 +- src/guides/v2.4/release-notes/2-4-4-p1.md | 2 +- .../v2.4/release-notes/commerce-2-4-5.md | 214 +++++++++++++++--- 7 files changed, 223 insertions(+), 33 deletions(-) diff --git a/src/_includes/release-notes/engcomm-2-4-5-issues.md b/src/_includes/release-notes/engcomm-2-4-5-issues.md index e69de29bb2d..8b717f9111d 100644 --- a/src/_includes/release-notes/engcomm-2-4-5-issues.md +++ b/src/_includes/release-notes/engcomm-2-4-5-issues.md @@ -0,0 +1,25 @@ +| Contributing community member | Pull Requests | Related GitHub Issues | +| ------- | ------- | ------- | +| hostep | [magento/magento2#30640](https://github.com/magento/magento2/pull/30640) | [magento/magento2#30607](https://github.com/magento/magento2/issues/30607) | +| nuzil | [magento/magento2#31944](https://github.com/magento/magento2/pull/31944) | [magento/magento2#31947](https://github.com/magento/magento2/issues/31947) | +| kate-kyzyma | [magento/magento2#32293](https://github.com/magento/magento2/pull/32293) | [magento/magento2#32378](https://github.com/magento/magento2/issues/32378) | +| wassuupp | [magento/magento2#32371](https://github.com/magento/magento2/pull/32371) | [magento/magento2#33767](https://github.com/magento/magento2/issues/33767) | +| nuzil | [magento/magento2#32648](https://github.com/magento/magento2/pull/32648) | [magento/magento2#32649](https://github.com/magento/magento2/issues/32649) | +| DmitryTsymbal | [magento/magento2#33342](https://github.com/magento/magento2/pull/33342) | [magento/magento2#33344](https://github.com/magento/magento2/issues/33344) | +| AnnaAPak | [magento/magento2#33557](https://github.com/magento/magento2/pull/33557) | [magento/magento2#33692](https://github.com/magento/magento2/issues/33692) | +| ihor-sviziev | [magento/magento2#33904](https://github.com/magento/magento2/pull/33904) | [magento/magento2#33929](https://github.com/magento/magento2/issues/33929) | +| marvinhinz | [magento/magento2#34388](https://github.com/magento/magento2/pull/34388) | [magento/magento2#35150](https://github.com/magento/magento2/issues/35150) | +| kate-kyzyma | [magento/magento2#34552](https://github.com/magento/magento2/pull/34552) | [magento/magento2#34631](https://github.com/magento/magento2/issues/34631) | +| in-session | [magento/magento2#34558](https://github.com/magento/magento2/pull/34558) | [magento/magento2#34563](https://github.com/magento/magento2/issues/34563) [magento/magento2#34595](https://github.com/magento/magento2/issues/34595) | +| convenient | [magento/magento2#34582](https://github.com/magento/magento2/pull/34582) | [magento/magento2#34988](https://github.com/magento/magento2/issues/34988) | +| ihor-sviziev | [magento/magento2#34943](https://github.com/magento/magento2/pull/34943) | [magento/magento2#34942](https://github.com/magento/magento2/issues/34942) | +| liamjtoohey | [magento/magento2#35050](https://github.com/magento/magento2/pull/35050) | [magento/magento2#35180](https://github.com/magento/magento2/issues/35180) | +| dudzio12 | [magento/magento2#35109](https://github.com/magento/magento2/pull/35109) | [magento/magento2#35108](https://github.com/magento/magento2/issues/35108) [magento/magento2#35128](https://github.com/magento/magento2/issues/35128) | +| shochdoerfer | [magento/magento2#35234](https://github.com/magento/magento2/pull/35234) | [magento/magento2#35315](https://github.com/magento/magento2/issues/35315) | +| tobias-forkel | [magento/magento2#35299](https://github.com/magento/magento2/pull/35299) | [magento/magento2#35458](https://github.com/magento/magento2/issues/35458) | +| Inevix | [magento/magento2#35349](https://github.com/magento/magento2/pull/35349) | [magento/magento2#35480](https://github.com/magento/magento2/issues/35480) | +| fredden | [magento/magento2#35356](https://github.com/magento/magento2/pull/35356) | [magento/magento2#35587](https://github.com/magento/magento2/issues/35587) | +| mahesh-singh-rajawat | [magento/magento2#35376](https://github.com/magento/magento2/pull/35376) | [magento/magento2#35204](https://github.com/magento/magento2/issues/35204) | +| Usik2203 | [magento/magento2#35385](https://github.com/magento/magento2/pull/35385) | [magento/magento2#35386](https://github.com/magento/magento2/issues/35386) | +| arifadobe | [magento/magento2#35439](https://github.com/magento/magento2/pull/35439) | [magento/magento2#35506](https://github.com/magento/magento2/issues/35506) | +| pykettk | [magento/magento2#35504](https://github.com/magento/magento2/pull/35504) | [magento/magento2#35505](https://github.com/magento/magento2/issues/35505) | \ No newline at end of file diff --git a/src/_includes/release-notes/engcomm-2-4-5-partner.md b/src/_includes/release-notes/engcomm-2-4-5-partner.md index e69de29bb2d..7cd865118e3 100644 --- a/src/_includes/release-notes/engcomm-2-4-5-partner.md +++ b/src/_includes/release-notes/engcomm-2-4-5-partner.md @@ -0,0 +1,7 @@ +| Partner | Pull Requests | Related GitHub Issues | +| ------- | ------- | ------- | +| Fisheye | [magento/magento2#35504](https://github.com/magento/magento2/pull/35504) [magento/magento2#35356](https://github.com/magento/magento2/pull/35356) [magento/magento2#35355](https://github.com/magento/magento2/pull/35355) | [magento/magento2#35505](https://github.com/magento/magento2/issues/35505) [magento/magento2#35587](https://github.com/magento/magento2/issues/35587) | +| Atwix | [magento/magento2#35421](https://github.com/magento/magento2/pull/35421) [magento/magento2#35385](https://github.com/magento/magento2/pull/35385) [magento/magento2#35118](https://github.com/magento/magento2/pull/35118) [magento/magento2#35099](https://github.com/magento/magento2/pull/35099) [magento/magento2#35040](https://github.com/magento/magento2/pull/35040) [magento/magento2#34883](https://github.com/magento/magento2/pull/34883) [magento/magento2#34862](https://github.com/magento/magento2/pull/34862) [magento/magento2#34552](https://github.com/magento/magento2/pull/34552) [magento/magento2#33795](https://github.com/magento/magento2/pull/33795) [magento/magento2#33557](https://github.com/magento/magento2/pull/33557) [magento/magento2#33536](https://github.com/magento/magento2/pull/33536) [magento/magento2#33409](https://github.com/magento/magento2/pull/33409) [magento/magento2#33342](https://github.com/magento/magento2/pull/33342) [magento/magento2#32293](https://github.com/magento/magento2/pull/32293) [magento/magento2#28958](https://github.com/magento/magento2/pull/28958) | [magento/magento2#35386](https://github.com/magento/magento2/issues/35386) [magento/magento2#34631](https://github.com/magento/magento2/issues/34631) [magento/magento2#33692](https://github.com/magento/magento2/issues/33692) [magento/magento2#33344](https://github.com/magento/magento2/issues/33344) [magento/magento2#32378](https://github.com/magento/magento2/issues/32378) | +| Ampersand | [magento/magento2#35050](https://github.com/magento/magento2/pull/35050) [magento/magento2#34582](https://github.com/magento/magento2/pull/34582) | [magento/magento2#35180](https://github.com/magento/magento2/issues/35180) [magento/magento2#34988](https://github.com/magento/magento2/issues/34988) | +| EY | [magento/magento2#33898](https://github.com/magento/magento2/pull/33898) | | +| Comwrap | [magento/magento2#32648](https://github.com/magento/magento2/pull/32648) [magento/magento2#32371](https://github.com/magento/magento2/pull/32371) [magento/magento2#31944](https://github.com/magento/magento2/pull/31944) | [magento/magento2#32649](https://github.com/magento/magento2/issues/32649) [magento/magento2#33767](https://github.com/magento/magento2/issues/33767) [magento/magento2#31947](https://github.com/magento/magento2/issues/31947) | \ No newline at end of file diff --git a/src/guides/v2.3/inventory/release-notes.md b/src/guides/v2.3/inventory/release-notes.md index 21e32913992..aa60a4affcd 100644 --- a/src/guides/v2.3/inventory/release-notes.md +++ b/src/guides/v2.3/inventory/release-notes.md @@ -48,6 +48,10 @@ The release notes include: - {:.fix} Compatibility issues with PHP 7.4 have been resolved. +- {:.fix} The performance of save operations that include bundle products that contain many options (several hundred) has been improved. Previously, saving these large bundle products took several minutes and sometimes resulted in timeouts in deployments with Inventory services enabled. [GitHub-34732](https://github.com/magento/magento2/issues/34732) + +- {:.fix} The product bulk action tool (**Catalog** > **Products** > **Select Products** > **Actions** > **Assign Inventory Source**) now works as expected when assigning inventory source to multiple products when SKUs are duplicate with the exception of a leading 0 (for example, 01234 and 1234). Previously, only one product was assigned an Inventory source. [GitHub-35171](https://github.com/magento/magento2/issues/35171) + ### v1.2.4 {{site.data.var.im}} 1.2.4 (module version: `magento/inventory-metapackage = 1.2.4`) is supported with version 2.4.4 and compatible with version 2.4.0 of {{site.data.var.ce}}, {{site.data.var.ee}}, and {{site.data.var.ece}}. diff --git a/src/guides/v2.3/release-notes/2-3-7-p4.md b/src/guides/v2.3/release-notes/2-3-7-p4.md index fab562e08f2..e7fa0a836c6 100644 --- a/src/guides/v2.3/release-notes/2-3-7-p4.md +++ b/src/guides/v2.3/release-notes/2-3-7-p4.md @@ -3,7 +3,7 @@ group: release-notes title: Adobe Commerce 2.3.7-p4 Release Notes --- -{{ site.data.var.ee }} 2.3.7-p4 is a security release that provides security fixes that enhance your {{ site.data.var.ee }} 2.3.7 or {{ site.data.var.ce }} 2.3.7 deployment. It provides fixes for vulnerabilities that have been identified in the previous release ({{ site.data.var.ee }} 2.3.7-p3). +{{ site.data.var.ee }} 2.3.7-p4 provides 16 security fixes that enhance your {{ site.data.var.ee }} 2.3.7 or {{ site.data.var.ce }} 2.3.7 deployment. It provides fixes for vulnerabilities that have been identified in the previous release ({{ site.data.var.ee }} 2.3.7-p3). {:.bs-callout-info} PHP 7.3 reached end of support in December 2021, and {{ site.data.var.ee }} 2.3.x and {{ site.data.var.ce }} 2.3.x will reach end of support in September 2022. **We strongly recommend planning your upgrade now to {{ site.data.var.ee }} 2.4.x or {{ site.data.var.ce }} 2.4.x deployment to help maintain PCI compliance**. diff --git a/src/guides/v2.4/release-notes/2-4-3-p3.md b/src/guides/v2.4/release-notes/2-4-3-p3.md index 019666a5ae7..6a098979c2e 100644 --- a/src/guides/v2.4/release-notes/2-4-3-p3.md +++ b/src/guides/v2.4/release-notes/2-4-3-p3.md @@ -3,7 +3,7 @@ group: release-notes title: Adobe Commerce 2.4.3-p3 Release Notes --- -{{ site.data.var.ee }} 2.4.3-p3 is a security release that provides two security fixes that enhance your {{ site.data.var.ee }} 2.4.3 or {{ site.data.var.ce }} 2.4.3 deployment. It provides fixes for vulnerabilities that have been identified in the previous release ({{ site.data.var.ee }} 2.4.3 and {{ site.data.var.ce }} 2.4.3). +{{ site.data.var.ee }} 2.4.3-p3 is a security release that provides 18 security fixes that enhance your {{ site.data.var.ee }} 2.4.3 or {{ site.data.var.ce }} 2.4.3 deployment. It provides fixes for vulnerabilities that have been identified in the previous release ({{ site.data.var.ee }} 2.4.3 and {{ site.data.var.ce }} 2.4.3). {:.bs-callout-info} Releases may contain backward-incompatible changes (BIC). To review minor backward-incompatible changes, see [BIC reference]({{page.baseurl}}/release-notes/backward-incompatible-changes/reference.html). (Major backward-incompatible issues are described in [BIC highlights]({{page.baseurl}}/release-notes/backward-incompatible-changes/index.html). Not all releases introduce major BICs.) diff --git a/src/guides/v2.4/release-notes/2-4-4-p1.md b/src/guides/v2.4/release-notes/2-4-4-p1.md index 1c95f6564bd..199eb71360a 100644 --- a/src/guides/v2.4/release-notes/2-4-4-p1.md +++ b/src/guides/v2.4/release-notes/2-4-4-p1.md @@ -3,7 +3,7 @@ group: release-notes title: Adobe Commerce 2.4.4-p1 Release Notes --- -{{ site.data.var.ee }} 2.4.4-p1 is a security release that provides two security fixes that enhance your {{ site.data.var.ee }} 2.4.4 or {{ site.data.var.ce }} 2.4.4 deployment. It provides fixes for vulnerabilities that have been identified in the previous release ({{ site.data.var.ee }} 2.4.4 and {{ site.data.var.ce }} 2.4.4). +{{ site.data.var.ee }} 2.4.4-p1 is a security release that provides 18 security fixes that enhance your {{ site.data.var.ee }} 2.4.4 or {{ site.data.var.ce }} 2.4.4 deployment. It provides fixes for vulnerabilities that have been identified in the previous release ({{ site.data.var.ee }} 2.4.4 and {{ site.data.var.ce }} 2.4.4). {:.bs-callout-info} Releases may contain backward-incompatible changes (BIC). To review minor backward-incompatible changes, see [BIC reference]({{page.baseurl}}/release-notes/backward-incompatible-changes/reference.html). (Major backward-incompatible issues are described in [BIC highlights]({{page.baseurl}}/release-notes/backward-incompatible-changes/index.html). Not all releases introduce major BICs.) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 884b76e6e00..a1bdeffcdcb 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -24,7 +24,7 @@ Look for the following highlights in this release. ### Security enhancements -This release includes security fix and platform security improvements. This security fix has been backported to {{ site.data.var.ee }} 2.4.3-p3 and {{ site.data.var.ee }} 2.3.7-p4. +This release includes 20 security fix and platform security improvements. This security fix has been backported to {{ site.data.var.ee }} 2.4.3-p3 and {{ site.data.var.ee }} 2.3.7-p4. No confirmed attacks related to these issues have occurred to date. However, certain vulnerabilities can potentially be exploited to access customer information or take over administrator sessions. Most of these issues require that an attacker first obtains access to the Admin. As a result, we remind you to take all necessary steps to protect your Admin, including but not limited to these efforts: @@ -40,13 +40,13 @@ See Adobe Security Bulletin for the latest discussion of these fixed issues. Security improvements for this release improve compliance with the latest security best practices, including: -* reCAPTCHA support has been added to the Wish List Sharing, Create New Customer Account, and Gift Card forms. +* reCAPTCHA support has been added to the Wish List Sharing, Create New Customer Account, and Gift Card forms. -* ACL resources have been added to Inventory. +* ACL resources have been added to Inventory. * Inventory template security has been enhanced. -* The `MaliciousCode` filter has been upgraded to use the `HtmlPurifier` library. +* The `MaliciousCode` filter has been upgraded to use the `HtmlPurifier` library. ### Platform enhancements @@ -56,11 +56,15 @@ Security improvements for this release improve compliance with the latest securi * Elasticsearch (~7.17.0 with constraint) -* TinyMCE (5.10.2) +* TinyMCE (5.10.2). Earlier versions of TinyMCE (v5.9.2 or earlier) allowed arbitrary JavaScript execution when a specially crafted URL or an image with a specially crafted URL was updated. * jQueryUI (1.13.1) -* `PHPStan` (^1.5.7 with constraint) +* `PHPStan` (^1.5.7 with constraint) [GitHub-35315](https://github.com/magento/magento2/issues/35315) + +* DHL Integration schema has been updated from v6.0 to v6.2. DHL is deprecated v6.0 + +Outdated JavaScript libraries have been updated to their latest versions, and outdated dependencies have been removed. These changes are backward compatible. #### Composer dependency updates @@ -68,28 +72,28 @@ Security improvements for this release improve compliance with the latest securi The following Composer dependencies have been updated to the latest versions with constraint: -`colinmollenhour/credis` (1.13.0 or 1.12.2)? -`guzzlehttp/guzzle` (^7.4.2) -`laminas/laminas-captcha` (updated with a constraint ^2.12) -`laminas/laminas-db` (^2.15.0) -`laminas/laminas-di` (^3.4.0) -`laminas/laminas-escaper` (~2.10.0) -`laminas/laminas-eventmanager` (^3.5.0) -`laminas/laminas-feed` (^2.17.0) -`laminas/laminas-mail` (^2.16.0) -`laminas/laminas-mvc` (^3.3.3) -`laminas/laminas-server` (^2.11.1) -`laminas/laminas-servicemanager` (^3.11.0) -`laminas/laminas-session` (^2.12.1) -`laminas/laminas-validator` (^2.17.0) -`league/fly` (2.4.3) -`monolog/monolog` (^2.5) -`phpmd/phpmd` (^2.12.0) -`phpstan/phpstan` (^1.5.7) -`phpunit/phpunit` (~9.5.20) -`phpunit/phpunit` (^9.4) -`php-cs-fixer` (^3.4.0) -`webonyx/graphql-php` (14.11.6) +* `colinmollenhour/credis` (1.13.0 or 1.12.2)? +* `guzzlehttp/guzzle` (^7.4.2) +* `laminas/laminas-captcha` (updated with a constraint ^2.12) +* `laminas/laminas-db` (^2.15.0) +* `laminas/laminas-di` (^3.4.0) +* `laminas/laminas-escaper` (~2.10.0) +* `laminas/laminas-eventmanager` (^3.5.0) +* `laminas/laminas-feed` (^2.17.0) +* `laminas/laminas-mail` (^2.16.0) +* `laminas/laminas-mvc` (^3.3.3) +* `laminas/laminas-server` (^2.11.1) +* `laminas/laminas-servicemanager` (^3.11.0) +* `laminas/laminas-session` (^2.12.1) +* `laminas/laminas-validator` (^2.17.0) +* `league/fly` (2.4.3) +* `monolog/monolog` (^2.5) +* `phpmd/phpmd` (^2.12.0) +* `phpstan/phpstan` (^1.5.7) +* `phpunit/phpunit` (~9.5.20) +* `phpunit/phpunit` (^9.4) +* `php-cs-fixer` (^3.4.0) +* `webonyx/graphql-php` (14.11.6) The `laminas/laminas-session`, `laminas/laminas-text`, and `laminas/laminas-view` dependencies have been removed. @@ -123,6 +127,10 @@ The `laminas/laminas-session`, `laminas/laminas-text`, and `laminas/laminas-view Performance enhancements in this release: +#### Price indexer optimization + +To improve performance of product price indexation, the number of primary indexes has been reduced from 3 to 1 for the `catalog_product_index_price_tmp` table. As a result, the indexation time of the product price index has been significantly reduced. + ### GraphQL This release includes these GraphQL enhancements: @@ -133,24 +141,66 @@ This release includes these GraphQL enhancements: See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on these enhancements. +### Adobe Sign Extension + +The Adobe Commerce check out workflow now supports the inclusion of an esignature agreement page powered by Adobe Sign. + ### B2B This release includes multiple bug fixes. See [B2B Release Notes]({{page.baseurl}}/release-notes/b2b-release-notes.html) +**Reduced eSKU multiplication with Shared Catalogs (Customer Groups)**. The new **Enabled Shared Catalog direct product price assigning** configuration option improves product price indexer performance when enabled. + +### Channel Manager + +Channel Manager can now trigger refunds from Adobe Commerce. Merchants can now manage the entire order workflow from within Adobe Commerce, including these tasks: + +* Process refunds from Adobe Commerce +* Refund shoppers using the origin form of payment + +Requests are now automatically synced back to the Walmart Marketplace. + ### PWA Studio -PWA Studio v.12.x.x is compatible with {{ site.data.var.ee }} 2.4.5. It includes support for . For information about enhancements and bug fixes, see [PWA Studio releases](https://github.com/magento/pwa-studio/releases). See [Version compatibility](https://developer.adobe.com/commerce/pwa-studio/integrations/adobe-commerce/version-compatibility/) for a list of PWA Studio versions and their compatible {{ site.data.var.ee }} core versions. +PWA Studio v.12.x.x is compatible with {{ site.data.var.ee }} 2.4.5. + +New features for this release include: + +* Shopper behavior data is collected on PWA Studio storefront for web analytics services. Merchants can now subscribe and extend these events as needed. +* Merchants can now select a service to deploy from the Admin (Beacon or Google Tag Manager). + +For information about enhancements and bug fixes, see [PWA Studio releases](https://github.com/magento/pwa-studio/releases). See [Version compatibility](https://developer.adobe.com/commerce/pwa-studio/integrations/adobe-commerce/version-compatibility/) for a list of PWA Studio versions and their compatible {{ site.data.var.ee }} core versions. ### PayPal Payment enhancements +Merchants in Spain and Italy can now offer PayPal Pay Later to shoppers. + +### Braintree + ### Live Search +This release introduces support for B2B customer groups and custom pricing. + ### Accessibility updates -This release brings increased conformance to standard accessibility guidelines. +This release includes enhancements to the Admin UI that improve the experience of users with vision limitations and increase conformance to standard accessibility guidelines. These enhancements include: + +* The screen reader now summarizes search results +* Screen readers are now informed when a new page loads +* Contrast and keyboard accessibility have been improved ### Page Builder +Page Builder column layout includes these enhancements: + +* Columns are now exposed, permitting users to control column settings on the storefront. + +* Column resizing now supports wrapping triggered by user actions. + +### Branding and style changes + +The Admin has been updated to align with Adobe’s branch strategy. Changes affect headers, footers, data grid color updates, and navigation elements. + ## Fixed issues We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. @@ -169,6 +219,12 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * Merchants can now successfully upgrade from an {{ site.data.var.ee }} 2.4.2 deployment with Klarna to {{ site.data.var.ee }} 2.4.3. [GitHub-33760](https://github.com/magento/magento2/issues/33760) + + + + + + ### Accessibility @@ -295,6 +351,10 @@ The **Shopping bag** button now provides a programmatic or textual indication of * Merchants can now create a credit memo in which **Refund Shipping (Incl. Tax)** is set to -0.01 and can now set this amount to 0. Previously, the credit memo could not be created under these conditions. + + + + ### Cart price rule @@ -415,6 +475,14 @@ The **Shopping bag** button now provides a programmatic or textual indication of * The EAV indexer now processes product IDs as type `int` to prevent possible performance issues. + + + + + + + + ### Catalog rule ### CMS content @@ -539,6 +607,32 @@ The **Shopping bag** button now provides a programmatic or textual indication of * Magento no longer triggers a `trim(): Passing null to parameter #1 ($string) of type string is deprecated` error when the AMPQ connection is configured without SSL configuration. + + + + + + + + + + + + + + + + + + + + + + + + + + ### General fixes @@ -609,6 +703,14 @@ The **Shopping bag** button now provides a programmatic or textual indication of * Magento no longer throws the following error during the creation of a catalog rule in the Admin after upgrade: `A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later`. + + + + + + + + ### Gift cards @@ -817,6 +919,8 @@ The **Shopping bag** button now provides a programmatic or textual indication of * Added validation for category names during import. Previously, {{ site.data.var.ee }} did not validate category names, which lead to errors when category names exceeded 255 characters. + + ### Index ### Infrastructure @@ -833,6 +937,8 @@ The **Shopping bag** button now provides a programmatic or textual indication of * The TinyMCE editor toolbar-related logic in the Page Builder module has been updated as a result of introducing `delayedRender` logic for the toolbar in TinyMCE. + + #### Library removals and deprecations #### Library upgrades @@ -857,10 +963,16 @@ The **Shopping bag** button now provides a programmatic or textual indication of Repetitive actions have been replaced with action groups in these tests: +`AdminConfigurableProductChildrenOutOfStockTest` [GitHub-32378](https://github.com/magento/magento2/issues/32378) +`AdminCreateStoreViewTest` [GitHub-34631](https://github.com/magento/magento2/issues/34631) + #### New tests +`StorefrontNewsletterSubscriptionWithEnabledNeedToConfirmConfigTest` [GitHub-33344](https://github.com/magento/magento2/issues/33344) #### Refactored tests +`AdminCancelTheCreatedOrderWithCashOnDeliveryPaymentMethodTest` [GitHub-33692](https://github.com/magento/magento2/issues/33692) + ### Newsletter @@ -917,6 +1029,10 @@ Repetitive actions have been replaced with action groups in these tests: * Magento now displays correct order status during checkout when customer store credit is used. + + + + ### Payment methods @@ -927,6 +1043,10 @@ Repetitive actions have been replaced with action groups in these tests: * Payment Review page in the checkout workflow now displays the correct payment method name when payment is made with Venmo, PayPal Later, or PayPal. + + + + #### PayPal @@ -947,6 +1067,8 @@ Repetitive actions have been replaced with action groups in these tests: * The new `Grid Filter Condition Type` customer/customer address attribute controls how an attribute filter is matched against the attribute values in the database, Options include `Partial Match`, `Prefix Match`, and `Full Match`. + + ### Pricing @@ -957,6 +1079,12 @@ Repetitive actions have been replaced with action groups in these tests: * The price listed on the product detail page is now the same as the price listed in the checkout workflow for tier prices that differ by quantity selected (for example, a product priced differently based on buying 2 items versus 5 items). Previously, the checkout price reflected the price for the lowest product quantity. +### Product + + + + + ### ProductAlert ### Product video @@ -967,10 +1095,16 @@ Repetitive actions have been replaced with action groups in these tests: * The **Times Used** value for a discount is no longer incremented twice when a guest customer places an order with a discount and subsequently registers an account. + + ### ReCAPTCHA * The **Submit** button on the Login and Create an Account pages is now inactive until ReCaptcha is fully loaded. +### Reports + + + ### Return Merchandise Authorizations (RMA) @@ -1027,6 +1161,8 @@ Repetitive actions have been replaced with action groups in these tests: * Filtering products by color swatch in the layered navigation now displays the correct product images. Previously, the layered navigation `PageCache` key did not include filter parameters for configurable products. + + ### Shipping @@ -1041,6 +1177,8 @@ Repetitive actions have been replaced with action groups in these tests: * Table rate shipping rates with zero price are now displayed correctly in the checkout workflow Order Summary block for orders that have had a discount coupon applied. Previously, the shipping method was not displayed. + + ### Staging @@ -1127,6 +1265,8 @@ Repetitive actions have been replaced with action groups in these tests: * Web API requests for order data (`rest/V1/orders/`) no longer returns negative values for row totals. + + ### Test @@ -1229,6 +1369,14 @@ Repetitive actions have been replaced with action groups in these tests: * You can now switch between store views when website restrictions are enabled. Previously, problems with the store view switcher prevented switching store views. + + + + + + + + ### URL rewrites @@ -1283,6 +1431,12 @@ Repetitive actions have been replaced with action groups in these tests: * The Bulk Rest API now works with the `bySku` option for configurable products. Previously, it returned a 500 error. + + + + + + ### Wish list From 3331771feed462a9896204e5b02812d621f9969b Mon Sep 17 00:00:00 2001 From: jfrontain Date: Mon, 20 Jun 2022 15:32:38 -0500 Subject: [PATCH 031/491] added Elasticsearch highlihts --- src/guides/v2.4/release-notes/commerce-2-4-5.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index a1bdeffcdcb..4d154d7a295 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -50,12 +50,14 @@ Security improvements for this release improve compliance with the latest securi ### Platform enhancements +* **Adobe Commerce on-premises deployments**: Adobe Commerce 2.4.5 has been tested and confirmed to be compatible with Elasticsearch 7.17 (~7.17.0 with constraint). Merchants hosting Adobe Commerce on-premises can use either Elasticsearch or OpenSearch. + +* **Adobe Commerce cloud-hosted deployments**: ElasticSearch 7.11 or later is not supported on Adobe Commerce 2.4.5 cloud-hosted deployments. OpenSearch is the default search engine for Adobe Commerce 2.4.5 cloud deployments. + {{ site.data.var.ee }} 2.4.5 now supports * Composer 2.2 -* Elasticsearch (~7.17.0 with constraint) - * TinyMCE (5.10.2). Earlier versions of TinyMCE (v5.9.2 or earlier) allowed arbitrary JavaScript execution when a specially crafted URL or an image with a specially crafted URL was updated. * jQueryUI (1.13.1) @@ -99,6 +101,8 @@ The `laminas/laminas-session`, `laminas/laminas-text`, and `laminas/laminas-view #### Other upgrades and replacements +* DHL Integration schema has been updated from v6.0 to v6.2. (DHL is deprecating the v6.0 schema mid-2022.) + * The default Gateway URL for USPS shipping has been updated to use `https` instead of `http`. * The `Froogaloop` library has been replaced with the Vimeo `Player.js` library (2.16.4). @@ -119,7 +123,7 @@ The `laminas/laminas-session`, `laminas/laminas-text`, and `laminas/laminas-view * The library `jquery/jquery-cookie` has been replaced with `js-cookie/js-cookie`. -* The `jarallax.js` and `jaralax-video.js` libraries have been updated to the latest versions (2.0.3). +* The `jarallax.js` and `jaralax-video.js` libraries have been updated to use the latest version of the Vimeo REST API. See [The Basics]( https://developer.vimeo.com/api/guides/start). ### Performance and scalability enhancements @@ -129,7 +133,7 @@ Performance enhancements in this release: #### Price indexer optimization -To improve performance of product price indexation, the number of primary indexes has been reduced from 3 to 1 for the `catalog_product_index_price_tmp` table. As a result, the indexation time of the product price index has been significantly reduced. +Primary index performance has been improved by reducing the number of primary indexes from 3 to 1 for the `catalog_product_index_price_tmp` table. This enhancement reduced the number of records created in the price index by reducing eSKU multiplication that resulted from shared catalogs. Indexing time has been significantly reduced. ### GraphQL From 793c0134e6b4aea58a91ed86994d07e22622d580 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Wed, 22 Jun 2022 15:06:21 -0500 Subject: [PATCH 032/491] added known issue for 2.4.4-p1 --- src/guides/v2.4/release-notes/2-4-4-p1.md | 4 ++++ src/guides/v2.4/release-notes/commerce-2-4-5.md | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/guides/v2.4/release-notes/2-4-4-p1.md b/src/guides/v2.4/release-notes/2-4-4-p1.md index 199eb71360a..6b290f514e5 100644 --- a/src/guides/v2.4/release-notes/2-4-4-p1.md +++ b/src/guides/v2.4/release-notes/2-4-4-p1.md @@ -26,6 +26,10 @@ Security improvements for this release improve compliance with the latest securi For instructions on downloading and applying security patches (including patch 2.4.4-p1), see [Quick start install]({{site.baseurl}}/guides/v2.4/install-gde/composer.html). +## Known issue + +**Issue**: Web API and integration tests display this error when run on the 2.4.4-p1 package: `[2022-06-14T16:58:23.694Z] PHP Fatal error: Declaration of Magento\TestFramework\ErrorLog\Logger::addRecord(int $level, string $message, array $context = []): bool must be compatible with Monolog\Logger::addRecord(int $level, string $message, array $context = [], ?Monolog\DateTimeImmutable $datetime = null): bool in /var/www/html/dev/tests/integration/framework/Magento/TestFramework/ErrorLog/Logger.php on line 69`. **Workaround**: Install the previous version of Monolog by running the `require monolog/monolog:2.6.0` command. + ## More information? For general information about security patches, see [Introducing the New Security Patch Release](https://community.magento.com/t5/Magento-DevBlog/Introducing-the-New-Security-Patch-Release/ba-p/141287). diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 4d154d7a295..1a6c6ebca21 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -50,7 +50,7 @@ Security improvements for this release improve compliance with the latest securi ### Platform enhancements -* **Adobe Commerce on-premises deployments**: Adobe Commerce 2.4.5 has been tested and confirmed to be compatible with Elasticsearch 7.17 (~7.17.0 with constraint). Merchants hosting Adobe Commerce on-premises can use either Elasticsearch or OpenSearch. +* **Adobe Commerce on-premises deployments**: Adobe Commerce 2.4.5 has been tested and confirmed to be compatible with Elasticsearch 7.17 (~7.17.0 with constraint). Merchants hosting Adobe Commerce on-premises can use either Elasticsearch or OpenSearch 1.2. * **Adobe Commerce cloud-hosted deployments**: ElasticSearch 7.11 or later is not supported on Adobe Commerce 2.4.5 cloud-hosted deployments. OpenSearch is the default search engine for Adobe Commerce 2.4.5 cloud deployments. @@ -233,7 +233,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -The **Shopping bag** button now provides a programmatic or textual indication of its state. Screen reader users are informed that clicking this button will expand other content, or that the associated content is expanded or collapsed. Previously, this button did not provide a programmatic or textual indication of its state. +* The **Shopping bag** button now provides a programmatic or textual indication of its state. Screen reader users are informed that clicking this button will expand other content, or that the associated content is expanded or collapsed. Previously, this button did not provide a programmatic or textual indication of its state. From 3240a9e20a08fcb70112e181018161f946d4c049 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Thu, 23 Jun 2022 11:50:32 -0500 Subject: [PATCH 033/491] updated number of fixed issues in security release notes --- src/guides/v2.3/release-notes/2-3-7-p4.md | 2 +- src/guides/v2.4/release-notes/2-4-3-p3.md | 2 +- src/guides/v2.4/release-notes/2-4-4-p1.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/guides/v2.3/release-notes/2-3-7-p4.md b/src/guides/v2.3/release-notes/2-3-7-p4.md index e7fa0a836c6..53cbdbc5f27 100644 --- a/src/guides/v2.3/release-notes/2-3-7-p4.md +++ b/src/guides/v2.3/release-notes/2-3-7-p4.md @@ -3,7 +3,7 @@ group: release-notes title: Adobe Commerce 2.3.7-p4 Release Notes --- -{{ site.data.var.ee }} 2.3.7-p4 provides 16 security fixes that enhance your {{ site.data.var.ee }} 2.3.7 or {{ site.data.var.ce }} 2.3.7 deployment. It provides fixes for vulnerabilities that have been identified in the previous release ({{ site.data.var.ee }} 2.3.7-p3). +{{ site.data.var.ee }} 2.3.7-p4 provides 15 security fixes that enhance your {{ site.data.var.ee }} 2.3.7 or {{ site.data.var.ce }} 2.3.7 deployment. It provides fixes for vulnerabilities that have been identified in the previous release ({{ site.data.var.ee }} 2.3.7-p3). {:.bs-callout-info} PHP 7.3 reached end of support in December 2021, and {{ site.data.var.ee }} 2.3.x and {{ site.data.var.ce }} 2.3.x will reach end of support in September 2022. **We strongly recommend planning your upgrade now to {{ site.data.var.ee }} 2.4.x or {{ site.data.var.ce }} 2.4.x deployment to help maintain PCI compliance**. diff --git a/src/guides/v2.4/release-notes/2-4-3-p3.md b/src/guides/v2.4/release-notes/2-4-3-p3.md index 6a098979c2e..ce431ce7f52 100644 --- a/src/guides/v2.4/release-notes/2-4-3-p3.md +++ b/src/guides/v2.4/release-notes/2-4-3-p3.md @@ -3,7 +3,7 @@ group: release-notes title: Adobe Commerce 2.4.3-p3 Release Notes --- -{{ site.data.var.ee }} 2.4.3-p3 is a security release that provides 18 security fixes that enhance your {{ site.data.var.ee }} 2.4.3 or {{ site.data.var.ce }} 2.4.3 deployment. It provides fixes for vulnerabilities that have been identified in the previous release ({{ site.data.var.ee }} 2.4.3 and {{ site.data.var.ce }} 2.4.3). +{{ site.data.var.ee }} 2.4.3-p3 is a security release that provides 17 security fixes that enhance your {{ site.data.var.ee }} 2.4.3 or {{ site.data.var.ce }} 2.4.3 deployment. It provides fixes for vulnerabilities that have been identified in the previous release ({{ site.data.var.ee }} 2.4.3 and {{ site.data.var.ce }} 2.4.3). {:.bs-callout-info} Releases may contain backward-incompatible changes (BIC). To review minor backward-incompatible changes, see [BIC reference]({{page.baseurl}}/release-notes/backward-incompatible-changes/reference.html). (Major backward-incompatible issues are described in [BIC highlights]({{page.baseurl}}/release-notes/backward-incompatible-changes/index.html). Not all releases introduce major BICs.) diff --git a/src/guides/v2.4/release-notes/2-4-4-p1.md b/src/guides/v2.4/release-notes/2-4-4-p1.md index 6b290f514e5..e52577597f3 100644 --- a/src/guides/v2.4/release-notes/2-4-4-p1.md +++ b/src/guides/v2.4/release-notes/2-4-4-p1.md @@ -3,7 +3,7 @@ group: release-notes title: Adobe Commerce 2.4.4-p1 Release Notes --- -{{ site.data.var.ee }} 2.4.4-p1 is a security release that provides 18 security fixes that enhance your {{ site.data.var.ee }} 2.4.4 or {{ site.data.var.ce }} 2.4.4 deployment. It provides fixes for vulnerabilities that have been identified in the previous release ({{ site.data.var.ee }} 2.4.4 and {{ site.data.var.ce }} 2.4.4). +{{ site.data.var.ee }} 2.4.4-p1 is a security release that provides 17 security fixes that enhance your {{ site.data.var.ee }} 2.4.4 or {{ site.data.var.ce }} 2.4.4 deployment. It provides fixes for vulnerabilities that have been identified in the previous release ({{ site.data.var.ee }} 2.4.4 and {{ site.data.var.ce }} 2.4.4). {:.bs-callout-info} Releases may contain backward-incompatible changes (BIC). To review minor backward-incompatible changes, see [BIC reference]({{page.baseurl}}/release-notes/backward-incompatible-changes/reference.html). (Major backward-incompatible issues are described in [BIC highlights]({{page.baseurl}}/release-notes/backward-incompatible-changes/index.html). Not all releases introduce major BICs.) From ce435473c891998397ea6f09cba5388bc3afbbb2 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Fri, 1 Jul 2022 16:20:19 -0500 Subject: [PATCH 034/491] entered keharper's and hgutherie's review comments --- src/guides/v2.3/inventory/release-notes.md | 6 +- src/guides/v2.3/release-notes/2-3-7-p4.md | 2 +- src/guides/v2.4/release-notes/2-4-3-p3.md | 2 +- src/guides/v2.4/release-notes/2-4-4-p1.md | 2 +- .../v2.4/release-notes/b2b-release-notes.md | 16 +- .../v2.4/release-notes/commerce-2-4-5.md | 193 +++++++++++------- 6 files changed, 134 insertions(+), 87 deletions(-) diff --git a/src/guides/v2.3/inventory/release-notes.md b/src/guides/v2.3/inventory/release-notes.md index aa60a4affcd..4111e2a17d7 100644 --- a/src/guides/v2.3/inventory/release-notes.md +++ b/src/guides/v2.3/inventory/release-notes.md @@ -26,11 +26,11 @@ The release notes include: - {:.fix} The default inventory stock status of bundle and grouped products is now updated as expected when a merchant creates a shipment from the Admin. Previously, the status of these products remained unchanged after a shipment was created. -- {:.fix} Configurable products are now returned back to stock when one of these conditions is met: the parent product has at least one saved child in stock, or the configurable product itself was updated and set as **in stock** and had at least one child in stock +- {:.fix} Configurable products are now returned back to stock when one of these conditions is met: the parent product has at least one saved child in stock, or the configurable product itself was updated and set as **in stock** and had at least one child in stock. - {:.fix} Inventory changes implemented through the REST API are now reflected as expected on product detail pages. The cache for catalog products is now cleaned after comparing the last and current stock statuses. Previously, omitting the callback function resulted in the incorrect evaluation of stock status changes, which did not trigger the necessary cache cleaning. As a result, the storefront did not reflect the inventory changes. -- {:.fix} Products that are assigned to default stock and that were previously out of stock are now visible on the storefront after updating the source item using `V1/inventory/source-items’. Previously, this REST API endpoint set the wrong 'stock_status`. +- {:.fix} Products that are assigned to default stock and that were previously out of stock are now visible on the storefront after updating the source item using `V1/inventory/source-items`. Previously, this REST API endpoint set the wrong 'stock_status`. - {:.fix} Unassigning inventory sources through bulk action (**Catalog** > **Products** > **Select Products** > **Actions - Unassign Inventory Source**) now works as expected when sources include SKUs that are duplicates with the exception of a leading zero (for example, `01234` and `1234`). Previously, Magento did not unassign inventory sources and threw an error. @@ -50,7 +50,7 @@ The release notes include: - {:.fix} The performance of save operations that include bundle products that contain many options (several hundred) has been improved. Previously, saving these large bundle products took several minutes and sometimes resulted in timeouts in deployments with Inventory services enabled. [GitHub-34732](https://github.com/magento/magento2/issues/34732) -- {:.fix} The product bulk action tool (**Catalog** > **Products** > **Select Products** > **Actions** > **Assign Inventory Source**) now works as expected when assigning inventory source to multiple products when SKUs are duplicate with the exception of a leading 0 (for example, 01234 and 1234). Previously, only one product was assigned an Inventory source. [GitHub-35171](https://github.com/magento/magento2/issues/35171) +- {:.fix} The product bulk action tool (**Catalog** > **Products** > **Select Products** > **Actions** > **Assign Inventory Source**) now works as expected when assigning inventory source to multiple products when SKUs are duplicated with the exception of a leading 0 (for example, 01234 and 1234). Previously, only one product was assigned an Inventory source. [GitHub-35171](https://github.com/magento/magento2/issues/35171) ### v1.2.4 diff --git a/src/guides/v2.3/release-notes/2-3-7-p4.md b/src/guides/v2.3/release-notes/2-3-7-p4.md index 53cbdbc5f27..1361e87dcdf 100644 --- a/src/guides/v2.3/release-notes/2-3-7-p4.md +++ b/src/guides/v2.3/release-notes/2-3-7-p4.md @@ -16,7 +16,7 @@ Releases may contain backward-incompatible changes (BIC). To review minor backwa This security patch includes: * Security enhancements -* security bug fixes. See Adobe Security Bulletin for the latest discussion of these fixed issues. +* Security bug fixes. See Adobe Security Bulletin for the latest discussion of these fixed issues. ### Security highlights diff --git a/src/guides/v2.4/release-notes/2-4-3-p3.md b/src/guides/v2.4/release-notes/2-4-3-p3.md index ce431ce7f52..4e998a63333 100644 --- a/src/guides/v2.4/release-notes/2-4-3-p3.md +++ b/src/guides/v2.4/release-notes/2-4-3-p3.md @@ -13,7 +13,7 @@ Releases may contain backward-incompatible changes (BIC). To review minor backwa This security patch includes: * Security enhancements -* security bug fixes. See Adobe Security Bulletin for the latest discussion of these fixed issues. +* Security bug fixes. See Adobe Security Bulletin for the latest discussion of these fixed issues. ### Security highlights diff --git a/src/guides/v2.4/release-notes/2-4-4-p1.md b/src/guides/v2.4/release-notes/2-4-4-p1.md index e52577597f3..d837c0cf612 100644 --- a/src/guides/v2.4/release-notes/2-4-4-p1.md +++ b/src/guides/v2.4/release-notes/2-4-4-p1.md @@ -13,7 +13,7 @@ Releases may contain backward-incompatible changes (BIC). To review minor backwa This security patch includes: * Security enhancements -* security bug fixes. See Adobe Security Bulletin for the latest discussion of these fixed issues. +* Security bug fixes. See Adobe Security Bulletin for the latest discussion of these fixed issues. ### Security highlights diff --git a/src/guides/v2.4/release-notes/b2b-release-notes.md b/src/guides/v2.4/release-notes/b2b-release-notes.md index fe4746b0c12..37eec7e0e23 100644 --- a/src/guides/v2.4/release-notes/b2b-release-notes.md +++ b/src/guides/v2.4/release-notes/b2b-release-notes.md @@ -9,13 +9,13 @@ These release notes can include: - {:.new} New features - {:.fix} Fixes and improvements -## {{ site.data.var.ee }} B2B - Adobe Commerce 2.4.5 +## {{ site.data.var.ee }} B2B 1.3.4 - Adobe Commerce 2.4.5 - {:.fix} {{ site.data.var.ee }} no longer sends email notifications each time an existing Company is updated by an API call. Emails are now sent only when a company is created. - {:.fix} {{ site.data.var.ee }} now correctly calculates a negotiable quote grand total when the **Enable Cross Border Trade** tax calculation setting is enabled. -- {:.fix} Configurable products are now moved to the last position in the product listing after stock is updated when the **Move out of stock to the bottom** setting is enabled. A new custom database query has been implemented to negate Elasticsearch index sort order, which disregards Admin-enabled sort order. Previously, configurable products and their child products were not moved to the bottom of the list when this setting was enabled. +- {:.fix} Configurable products are now moved to the last position in the product listing after stock is updated when the **Move out of stock to the bottom** setting is enabled. A new custom database query has been implemented to ensure Elasticsearch index sort order now honors the Admin-enabled sort order. Previously, configurable products and their child products were not moved to the bottom of the list when this setting was enabled. - {:.fix} Purchase Order email now honors the email sending setting of each website in a multi-site deployment. A check for the **Disable Email Communications** setting has been added to the custom logic for email queues. Previously, {{ site.data.var.ee }} did not honor the email sending setting of the secondary website. @@ -25,9 +25,9 @@ These release notes can include: - {:.fix} The **Account Created in** field for a company administrator now retains its value as expected after you save the company. -- {:.fix} customer queries to retrieve customer requisition lists that are filtered by `uid` no longer return empty results. +- {:.fix} The `customer` query no longer returns empty results when it retrieves requisition lists that are filtered by `uid`. -- {:.fix} Added a plugin before the `collectQuoteTotals` call to ensure that store credits are applied only once. +- {:.fix} Added a plugin before the `collectQuoteTotals` call to ensure that store credits are applied only once. - {:.fix} Customers are now redirected to the login page when their account is deleted by an administrator from the Admin. Previously, {{ site.data.var.ee }} threw an error. The plugin (`SessionPlugin`) code block is now inside the `try…catch` block. Previously, this code was not wrapped inside the generic exception handling block. @@ -141,7 +141,7 @@ These release notes can include: ### Requisition lists -- {:.fix} Merchants can now use the POST `rest/all/V1/requisition_lists` endpoint to create a requisition list for a customer. Previously, {{ site.data.var.ee }} threw this 400 error when you tried to create a requisition list: `Could not save Requisition List`. +- {:.fix} Merchants can now use the POST `/all/V1/requisition_lists` endpoint to create a requisition list for a customer. Previously, {{ site.data.var.ee }} threw this 400 error when you tried to create a requisition list: `Could not save Requisition List`. - {:.fix} The **Add to Requisition List** button now appears for a shopping cart’s in-stock products when the cart also contains out-of-stock products. Previously, if a cart contained two products, one of which was out-of-stock, the **Add to Requisition List** button did not appear for either products. @@ -209,7 +209,7 @@ These release notes can include: - {:.fix} Custom customer address attribute fields that are associated with a shopper’s non-default address are now saved as expected in the storefront checkout workflow. -- {:.fix} Orders for products that belong to a store’s default shared catalog can now be placed for shoppers through the Admin REST API (`rest/V1/carts/{{CART_ID}}/items`) as expected. {{ site.data.var.ee }} now checks if the product was assigned to a public catalog before shared catalog permissions validation in `\Magento\SharedCatalog\Plugin\Quote\Api\ValidateAddProductToCartPlugin::beforeSave`. Previously, {{ site.data.var.ee }} did not add the product to the shopper’s cart and threw this error: `No such shared catalog entity`. +- {:.fix} Orders for products that belong to a store’s default shared catalog can now be placed for shoppers through the Admin REST API (`POST /V1/carts/{{CART_ID}}/items`) as expected. {{ site.data.var.ee }} now checks if the product was assigned to a public catalog before shared catalog permissions validation in `\Magento\SharedCatalog\Plugin\Quote\Api\ValidateAddProductToCartPlugin::beforeSave`. Previously, {{ site.data.var.ee }} did not add the product to the shopper’s cart and threw this error: `No such shared catalog entity`. - {:.fix} {{ site.data.var.ee }} now sends new company user registration emails from the {{ site.data.var.ee }} store's address. Previously, this email was sent from the company administrator’s address. @@ -273,13 +273,13 @@ This release includes improvements to order approvals, shipping methods, shoppin - {:.fix} A company can now be updated using the REST API PUT `/V1/company/:companyId` request without specifying the `region_id` when state is configured as **not required**. Previously, even though `region_id` was not required, {{ site.data.var.ee }} threw an error if it was not specified. -- {:.fix} When you create or update a B2B Company using the REST API (`http://magento.local/rest/V1/company/2`, where `2` represents the company ID), the response now includes the settings for `applicable_payment_method` or `available_payment_methods` as expected. +- {:.fix} When you create or update a B2B Company using the REST API (`POST or PUT /V1/company/2`, where `2` represents the company ID), the response now includes the settings for `applicable_payment_method` or `available_payment_methods` as expected. - {:.fix} {{ site.data.var.ee }} no longer displays a 404 page when a merchant uses the **Enter** button instead of clicking the **Save** button when creating a requisition list on the storefront. - {:.fix} Category permissions no longer change when a new product is assigned to a public shared catalog. Previously, category permissions were duplicated. -- {:.fix} The REST API endpoint PUT `rest/default/V1/company/{id}`, which is used to update Company email, is no longer case-sensitive. +- {:.fix} The REST API endpoint `PUT /V1/company/{id}`, which is used to update Company email, is no longer case-sensitive. - {:.fix} Disabling reward modules no longer affects B2B features on customer accounts. Previously, when reward modules were disabled, the following B2B-related tabs were not displayed: Company Profile, Company Users, and Roles and Permissions. diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 1a6c6ebca21..548581ce575 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -5,7 +5,7 @@ title: Adobe Commerce 2.4.5 Release Notes {{ site.data.var.ee }} 2.4.5 introduces support for -This release includes almost quality fixes and enhancements. +This release includes almost 240 quality fixes and enhancements. {:.bs-callout-info} Releases may contain backward-incompatible changes (BIC). {{ site.data.var.ee }} 2.4.5 contains backward-incompatible changes. To review these backward-incompatible changes, see [BIC reference]({{page.baseurl}}/release-notes/backward-incompatible-changes/reference.html). (Major backward-incompatible issues are described in [BIC highlights]({{page.baseurl}}/release-notes/backward-incompatible-changes/index.html). Not all releases introduce major BICs.) @@ -29,10 +29,10 @@ This release includes 20 security fix and platform security improvements. This s No confirmed attacks related to these issues have occurred to date. However, certain vulnerabilities can potentially be exploited to access customer information or take over administrator sessions. Most of these issues require that an attacker first obtains access to the Admin. As a result, we remind you to take all necessary steps to protect your Admin, including but not limited to these efforts: * IP allowlisting -* [two-factor authentication]({{page.baseurl}}/security/two-factor-authentication.html) -* use of a VPN -* use of a unique location rather than `/admin` -* good password hygiene +* [Two-factor authentication]({{page.baseurl}}/security/two-factor-authentication.html) +* Use of a VPN +* Use of a unique location rather than `/admin` +* Good password hygiene See Adobe Security Bulletin for the latest discussion of these fixed issues. @@ -64,7 +64,7 @@ Security improvements for this release improve compliance with the latest securi * `PHPStan` (^1.5.7 with constraint) [GitHub-35315](https://github.com/magento/magento2/issues/35315) -* DHL Integration schema has been updated from v6.0 to v6.2. DHL is deprecated v6.0 +* DHL Integration schema has been updated from v6.0 to v6.2. DHL has deprecated v6.0 Outdated JavaScript libraries have been updated to their latest versions, and outdated dependencies have been removed. These changes are backward compatible. @@ -74,11 +74,11 @@ Outdated JavaScript libraries have been updated to their latest versions, and ou The following Composer dependencies have been updated to the latest versions with constraint: -* `colinmollenhour/credis` (1.13.0 or 1.12.2)? +* `colinmollenhour/credis` (1.13.0)? * `guzzlehttp/guzzle` (^7.4.2) * `laminas/laminas-captcha` (updated with a constraint ^2.12) * `laminas/laminas-db` (^2.15.0) -* `laminas/laminas-di` (^3.4.0) +* `laminas/laminas-di` (^3.7.0) * `laminas/laminas-escaper` (~2.10.0) * `laminas/laminas-eventmanager` (^3.5.0) * `laminas/laminas-feed` (^2.17.0) @@ -86,14 +86,12 @@ The following Composer dependencies have been updated to the latest versions wit * `laminas/laminas-mvc` (^3.3.3) * `laminas/laminas-server` (^2.11.1) * `laminas/laminas-servicemanager` (^3.11.0) -* `laminas/laminas-session` (^2.12.1) * `laminas/laminas-validator` (^2.17.0) * `league/fly` (2.4.3) * `monolog/monolog` (^2.5) * `phpmd/phpmd` (^2.12.0) * `phpstan/phpstan` (^1.5.7) * `phpunit/phpunit` (~9.5.20) -* `phpunit/phpunit` (^9.4) * `php-cs-fixer` (^3.4.0) * `webonyx/graphql-php` (14.11.6) @@ -139,10 +137,6 @@ Primary index performance has been improved by reducing the number of primary in This release includes these GraphQL enhancements: -#### New mutations - -* **Performance improvements**: - See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on these enhancements. ### Adobe Sign Extension @@ -229,6 +223,10 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. + + +* The path to Magento Analytics is no longer hardcoded. Previously, this hardcoded path resulted in conflicts when multiple Magento instances were installed on one server. [GitHub-29373](https://github.com/magento/magento2/issues/29373) + ### Accessibility @@ -273,7 +271,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* You can now use the REST API to update product price attributes for a specific website. Previously, if some product attributes were overridden for a specific store view, you could not update a price attribute for that product in that same store view. +* You can now use the `PUT /V1/products` endpoint to update product price attributes for a specific website. Previously, if some product attributes were overridden for a specific store view, you could not update a price attribute for that product in that same store view. @@ -285,6 +283,10 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * Full page cache is no longer shown as disabled in the Admin when the Magento cache is flushed and `use_stale_cache` is enabled. + + +* New Relic deployment markers now work as expected when cache is flushed. [GitHub-32649](https://github.com/magento/magento2/issues/32649) + ### Cart and checkout @@ -309,7 +311,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The update SQL query that update affected quotes after disabling cart price rule has been optimized to avoid locking the entire quote table. +* The SQL query that updates affected quotes after disabling a cart price rule has been optimized to avoid locking the entire quote table. @@ -321,7 +323,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* `cart` query responses no longer return null responses when a product is out of stock, and a new `errors` element containing the error message was introduced to the response. Previously, when you ran a query with an out-of-stock product, Magento displayed a `null` value under the `items` section in the response. See [cart query](https://devdocs.magento.com/guides/v2.4/graphql/queries/cart.html). +* The `cart` query no longer return null responses when a product is out of stock. A new `errors` element containing the error message was introduced to the response. Previously, when you ran a query with an out-of-stock product, Magento displayed a `null` value under the `items` section in the response. See [cart query](https://devdocs.magento.com/guides/v2.4/graphql/queries/cart.html). @@ -333,7 +335,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Cart contents and login status are now reloaded as expected after a session times out when **Enable Persistence** is set to **yes**. [GitHub-35182](https://github.com/magento/magento2/issues/35182) +* Cart contents and login status are now reloaded as expected after a session times out when **Enable Persistence** is set to **Yes**. [GitHub-35182](https://github.com/magento/magento2/issues/35182) @@ -343,10 +345,6 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * The mini cart now displays previously added products after a session timeout when **Enable Persistence** is enabled . [GitHub-35183](https://github.com/magento/magento2/issues/35183) - - -* Unassigning inventory sources through bulk action (**Catalog** > **Products** > **Select Products** > **Actions - Unassign Inventory Source**) now works as expected when sources include SKUs that are duplicate with the exception of a leading zero (for example, `01234` and `1234`). Previously, {{ site.data.var.ee }} did not unassign inventory sources and threw an error. - * Store credit is now unavailable when the Zero Subtotal Checkout payment method is disabled. Previously, the Store Credit checkbox was not functional during order placement from Admin. {{ site.data.var.ee }} did not place the order with the store credit and displayed this error: `The requested Payment Method is not available`. @@ -369,7 +367,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Product URL keys now remain unchanged when updating product name via `/rest/default/V1/products/` for a store view. Previously, a new URL key was generated based on the new product name and assigned to the product, which overrode the URL key in that store view. +* Product URL keys now remain unchanged when updating product name via `PUT /V1/products/` for a store view. Previously, a new URL key was generated based on the new product name and assigned to the product, which overrode the URL key in that store view. @@ -425,11 +423,11 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The same error message is now displayed by the API and on the storefront when trying to retrieve the tier prices of a product with duplicate records. Previously, `PUT rest/all/V1/products/tier-prices` returned an incorrect error message. +* The same error message is now displayed by the API and on the storefront when trying to retrieve the tier prices of a product with duplicate records. Previously, `PUT /V1/products/tier-prices` returned an incorrect error message. -* {{ site.data.var.ee }}now provides validation error messages when you try to add a product URL key with a trailing hyphen. Informative tooltip text is also available. +* {{ site.data.var.ee }} now provides validation error messages when you try to add a product URL key with a trailing hyphen. Informative tooltip text is also available. @@ -445,7 +443,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* When the `Synchronize widget products with backend storage` setting is enabled, {{ site.data.var.ee }}adds recently view product data into the `catalog_product_frontend_action` database table. It includes the customer or visitor ID when adding records. The `recently_viewed_product` section in the response is now empty if customer ID and visitor ID are null. As a result, when the `customer/section/load` Ajax request is sent, {{ site.data.var.ee }} can correctly filter recently viewed products based on customer or visitor ID. Previously, the response included all the data available in the `catalog_product_frontend_action` database table because there was no check for an empty customer or visitor ID. +* When the `Synchronize widget products with backend storage` setting is enabled, {{ site.data.var.ee }} adds recently view product data into the `catalog_product_frontend_action` database table. It includes the customer or visitor ID when adding records. The `recently_viewed_product` section in the response is now empty if customer ID and visitor ID are null. As a result, when the `customer/section/load` Ajax request is sent, {{ site.data.var.ee }} can correctly filter recently viewed products based on customer or visitor ID. Previously, the response included all the data available in the `catalog_product_frontend_action` database table because there was no check for an empty customer or visitor ID. @@ -487,6 +485,16 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. +* A new product cache is now successfully generated after you add a new image with a name that contains '.' to a product, then save the product and clean the image cache. [GitHub-32699](https://github.com/magento/magento2/issues/32699) + + + + + +* {{ site.data.var.ee }} now displays an error message as expected when you try to create an attribute from the product page without completing the Admin field. [GitHub-33099](https://github.com/magento/magento2/issues/33099) + +* Product ratings are now correct on all catalog product lists when the home page contains multiple catalog lists. [GitHub-33867](https://github.com/magento/magento2/issues/33867) + ### Catalog rule ### CMS content @@ -511,7 +519,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Configurable options are now linked to configurable products that are created in the Admin using `POST /rest/default/V1/configurable-products/configurable1/child`. +* Configurable options are now linked to configurable products that are created in the Admin using `POST /V1/configurable-products/configurable1/child`. @@ -523,7 +531,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* `addConfigurableProductsToCart` queries can now be used to add configurable products with custom options. Previously, {{ site.data.var.ee }} threw this error: `Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62`. [GitHub-28860](https://github.com/magento/magento2/issues/28860) +* The `addConfigurableProductsToCart` mutation can now be used to add configurable products with custom options. Previously, {{ site.data.var.ee }} threw this error: `Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62`. [GitHub-28860](https://github.com/magento/magento2/issues/28860) @@ -533,6 +541,8 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * {{ site.data.var.ee }} now correctly displays a configurable product’s stock status, available configurations, and displayed price when the availability of one of the configurable product’s child product is changed by a scheduled update. Previously, when a configurable product had two children and the availability of one child product was disabled with a scheduled update, the parent product’s stock status was incorrectly displayed as **Out of Stock** when the update was active, After the update completed, the displayed price and the availability of its configurations was miscalculated. +* You can now re-order configurable products with optional custom options. Previously, re-order attempts failed, and meant displayed this error: `Some of the selected options are not currently available`. [GitHub-35409](https://github.com/magento/magento2/issues/35409) + ### Customer @@ -559,7 +569,11 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Shoppers now get email reminders about their abandoned carts on the correct schedule. The new `TIMESTAMPDIFF(DAY, ,)` SQL function has replaced the `TO_DAYS()` function and calculates the difference in the timestamps on the basis of date and time. Previously, email reminders were not sent per schedule because of the incorrect calculation of two date-time values of cart abandonment (any timezone) and server time (UTC). +* Customers now get email reminders about their abandoned carts on the correct schedule. The new `TIMESTAMPDIFF(DAY, ,)` SQL function has replaced the `TO_DAYS()` function and calculates the difference in the timestamps on the basis of date and time. Previously, email reminders were not sent per schedule because of the incorrect calculation of two date-time values of cart abandonment (any timezone) and server time (UTC). + + + +* {{ site.data.var.ee }} now displays an error message on the Shipping page when a shopper enters an invalid email format after the shopper clicks **Place Order**. Previously, the error message was displayed on the Payment page. [GitHub-33590](https://github.com/magento/magento2/issues/33590 ### Frameworks @@ -569,7 +583,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* `setup:static-content:deploy -s compact` now includes styles from child themes as expected. Previously, theme CSS files were not present on the storefront after deployment. +* The `bin/magento setup:static-content:deploy -s compact` command now includes styles from child themes as expected. Previously, theme CSS files were not present on the storefront after deployment. @@ -601,7 +615,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* {{ site.data.var.ee }} no longer throws the following error when you create a plugin for any method of class `vendor/magento/module-backend/Model/Menu.php`: `Error: Call to undefined method ReflectionUnionType::getName(). [GitHub-35292](https://github.com/magento/magento2/issues/35292) +* {{ site.data.var.ee }} no longer throws the following error when you create a plugin for any method of class `vendor/magento/module-backend/Model/Menu.php`: `Error: Call to undefined method ReflectionUnionType::getName(). [GitHub-35292](https://github.com/magento/magento2/issues/35292) @@ -613,22 +627,35 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. +* Corrected the `longblog` database definition to `long blob`. [GitHub-35108](https://github.com/magento/magento2/issues/35108) + +* Knockout text containing single quotes are now translatable. [GitHub-34319](https://github.com/magento/magento2/issues/34319) + +* A `TypeError` in `magento2/app/code/Magento/Security/Model/AdminSessionsManager.php` has been corrected from int to string. [GitHub-34415](https://github.com/magento/magento2/issues/34415) + - +* Merchants can now successfully upgrade from an {{ site.data.var.ee }} 2.4.2 deployment with Klarna to {{ site.data.var.ee }} 2.4.3. [GitHub-33760](https://github.com/magento/magento2/issues/33760) +* [GitHub-35150](https://github.com/magento/magento2/issues/35150) + +* Load time of category product list pages have been improved by adding `Magento_Ui/js/core/app` as a `deps` to `app/code/Magento/Ui/view/frontend/requirejs-config.js`. [GitHub-34847](https://github.com/magento/magento2/issues/34847) + +Added an error message to a new exception that was created in the exception handler for cron jobs. +[GitHub-34941](https://github.com/magento/magento2/issues/34941) + @@ -705,7 +732,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Magento no longer throws the following error during the creation of a catalog rule in the Admin after upgrade: `A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later`. +* {{ site.data.var.ee }} no longer throws the following error during the creation of a catalog rule in the Admin after upgrade: `A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later`. @@ -715,21 +742,21 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -### Gift cards + - +* Updated the labels and comment descriptions in `app/code/Magento/NewRelicReporting/etc/adminhtml/system.xml`. [GitHub-31947](https://github.com/magento/magento2/issues/31947) -* `products` queries now correctly returns product data that contains gift card products with a `gift-card` URL key. + -### GraphQL +* Removed unneeded csp_whitelist.xml files. [GitHub-30607](https://github.com/magento/magento2/issues/30607) - +### Gift cards -* `addConfigurableProductsToCart` queries can now be used to add configurable products with custom options. Previously, {{ site.data.var.ee }} threw this error: `Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62`. [GitHub-28860](https://github.com/magento/magento2/issues/28860) + - +* `products` queries now correctly returns product data that contains gift card products with a `gift-card` URL key. -* `CartItemInterface` now includes `customizable_options`. [GitHub-31180](https://github.com/magento/magento2/issues/31180) +### GraphQL @@ -739,10 +766,6 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * The `products` query no longer returns attributes as an aggregation when the **Use in Search Results** Layered Navigation setting is disabled. [GitHub-33318](https://github.com/magento/magento2/issues/33318) - - -* The `updateCartCurrency` function now sets string instead of an object inside the cart object. Previously, {{ site.data.var.ee }} did not load a quote using `getQuote` because the `updateCartCurrency` function set an object instead of a string inside the cart object. [GitHub-34199](https://github.com/magento/magento2/issues/34199) - * A `price_including_tax` field has been added to `CartItemPrices`. [GitHub-29057](https://github.com/magento/magento2/issues/29057) @@ -757,11 +780,11 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The `GetLines` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) +* The `categories` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) -* The `GetProductsInCategory` query now returns `category_uid` as an aggregation as expected. [GitHub-32557](https://github.com/magento/magento2/issues/32557) +* The `products` query now returns `category_uid` as an aggregation as expected. [GitHub-32557](https://github.com/magento/magento2/issues/32557) @@ -769,7 +792,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The `urlresolver` query now resolves the path delimiter (/) correctly when multiple homepages have the same identifier. Previously, the query did not resolve the delimiter and returned null. [GitHub-33615](https://github.com/magento/magento2/issues/33615) +* The `urlResolver` query now resolves the path delimiter (/) correctly when multiple homepages have the same identifier. Previously, the query did not resolve the delimiter and returned null. [GitHub-33615](https://github.com/magento/magento2/issues/33615) @@ -781,7 +804,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* `products` queries no longer returns price_range values for configurable products that are affected by disabled variants. [GitHub-33629](https://github.com/magento/magento2/issues/33629) +* The `products` query no longer returns price_range values for configurable products that are affected by disabled variants. [GitHub-33629](https://github.com/magento/magento2/issues/33629) @@ -805,7 +828,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The `searchProducts` query no longer returns attributes as an aggregation when the **Use in Search Results Layered Navigation** setting is disabled. [GitHub-33318](https://github.com/magento/magento2/issues/33318) +* The `products` query no longer returns attributes as an aggregation when the **Use in Search Results Layered Navigation** setting is disabled. [GitHub-33318](https://github.com/magento/magento2/issues/33318) @@ -825,11 +848,11 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The `getCartDetails` query now returns only one payment methods for free orders. Previously, all active payment methods were returned in the query response. [GitHub-34036](https://github.com/magento/magento2/issues/34036) +* The `cart` query now returns only one payment methods for free orders. Previously, all active payment methods were returned in the query response. [GitHub-34036](https://github.com/magento/magento2/issues/34036) -* The `GetLines` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) +* The `categories` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) @@ -839,10 +862,6 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * The `updateCartItems` query now removes products as expected when the product stock has reached the maximum stock amount. [GitHub-30220](https://github.com/magento/magento2/issues/30220) - - -* The `urlresolver` query now resolves the path delimiter (/) correctly when multiple homepages have the same identifier. Previously, the query did not resolve the delimiter and returned null. [GitHub-33615](https://github.com/magento/magento2/issues/33615) - * `customer` queries now fetch bundle product multi-select options as expected when querying orders. [GitHub-34717](https://github.com/magento/magento2/issues/34717) @@ -861,7 +880,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The `generateCustomerTokenAsAdmin` request now retrieves customer tokens as expected. Previously, tokens were not returned, and this error was returned: `Customer email provided does not exist`. +* The `generateCustomerTokenAsAdmin` mutation now retrieves customer tokens as expected. Previously, tokens were not returned, and this error was returned: `Customer email provided does not exist`. @@ -869,27 +888,31 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Customers added through the `createCustomer/createCustomerV2/updateCustomer/updateCustomerV2` mutation are now added with active newsletter subscriptions. Previously, customers were unsubscribed from newsletters even when the request contained proper input parameters. [GitHub-33599](https://github.com/magento/magento2/issues/33599) +* Customers added or updates with the `createCustomer`, `createCustomerV2`, `updateCustomer`, or `updateCustomerV2` mutation are now added with active newsletter subscriptions. Previously, customers were unsubscribed from newsletters even when the request contained proper input parameters. [GitHub-33599](https://github.com/magento/magento2/issues/33599) -* The `productDetail` query for a specific store view now returns only categories that are in the specific website's root category in multi-site deployment. Previously, the query returned categories from the root categories of other websites. [GitHub-34570](https://github.com/magento/magento2/issues/34570) +* The `products` query for a specific store view now returns only categories that are in the specific website's root category in multi-site deployment. Previously, the query returned categories from the root categories of other websites. [GitHub-34570](https://github.com/magento/magento2/issues/34570) -* The `getProductFiltersByCategory` query now returns only the sub category of provided category ID. Previously, it returned all categories. [GitHub-35220](https://github.com/magento/magento2/issues/35220) +* The `products` query now returns only the sub category of provided category ID. Previously, it returned all categories. [GitHub-35220](https://github.com/magento/magento2/issues/35220) -* The `customerOrders` query now responds as expected when the `gift_message` object is specified in the response but no gift message exists. Previously, the query returned this message: `Can't load gift message for order is returned`. +* The `customerOrders` query now responds as expected when the `gift_message` object is specified in the response but no gift message exists. Previously, the query returned this message: `Can't load gift message for order is returned`. [GitHub-28957](https://github.com/magento/magento2/issues/28957) -* Fixed a bug with the `catalog_category_product` indexer that caused the `products` query to return categories from another store. +* Fixed a bug with the `catalog_category_product` indexer that caused the `products` query to return categories from another store. [GitHub-31253](https://github.com/magento/magento2/issues/31253) - + -* `productDetail` queries for a specific store view now returns only categories that are in the specific website's root category. Previously, this query returned categories in every root category. [GitHub-34570](https://github.com/magento/magento2/issues/34570) +* The `generateCustomerToken` mutation now creates an entry in the `customer_log` as expected after generating a customer token. [GitHub-33378](https://github.com/magento/magento2/issues/33378) + + + +* The `V1/products/base-prices` endpoint now works as expected with **Catalog Price Mode - Website**. [GitHub-30132](https://github.com/magento/magento2/issues/30132) ### Image @@ -943,6 +966,18 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. +* Race conditions no longer interrupt the creation of the `contentUpdated` event listener. [GitHub-32068](https://github.com/magento/magento2/issues/32068) + + + +* The `getTypeID` function now returns product type ID not product ID. [GitHub-35458](https://github.com/magento/magento2/issues/35458) + + + +* jQuery UI slider and `SelectMenu` mapping has been corrected in `vendor/magento/module-theme/view/base/requirejs-config.js`. + +* Observers placed on `sales_order_state_change_before` now support the retrieval of data from the order object. The `sales_order_state_change_before` `event` argument has been updated. [GitHub-26789](https://github.com/magento/magento2/issues/26789) + #### Library removals and deprecations #### Library upgrades @@ -987,10 +1022,6 @@ Repetitive actions have been replaced with action groups in these tests: * The newsletter subscription confirmation email now has the correct, store-specific email address in the **From** field if the customer is assigned to a non-default store and subscribed or unsubscribed from the Admin. Previously, the customer received an email with default email in **From** header. [GitHub-34963](https://github.com/magento/magento2/issues/34963) - - -* Customers added through the `createCustomer/createCustomerV2/updateCustomer/updateCustomerV2` mutation are now added with active newsletter subscriptions. Previously, customers were unsubscribed from newsletters even when the request contained proper input parameters. [GitHub-33599](https://github.com/magento/magento2/issues/33599) - ### Order @@ -1073,6 +1104,10 @@ Repetitive actions have been replaced with action groups in these tests: + + +* Fixed issue with `array_merge` in loops. [GitHub-33929](https://github.com/magento/magento2/issues/33929) + ### Pricing @@ -1113,7 +1148,7 @@ Repetitive actions have been replaced with action groups in these tests: -* The `/rest/default/V1/returnsAttributeMetadata` endpoint now works correctly when the `rma_item` entity default attribute set ID differs from the default installation ID. Previously, this endpoint returned an empty result if these IDs differed. +* The `GET /V1/returnsAttributeMetadata` endpoint now works correctly when the `rma_item` entity default attribute set ID differs from the default installation ID. Previously, this endpoint returned an empty result if these IDs differed. @@ -1135,6 +1170,10 @@ Repetitive actions have been replaced with action groups in these tests: * Credit memos for guest orders no longer check for `customer_id`, which skips querying the `magento_reward_history' database table table for reward points. This change has improved performance. +### Roles + +* The **Store** > **Configuration** > **Services** page now displays Magento Web API information as expected when Resource Access is set to **Custom** on the Role Resources tab. [GitHub-35506](https://github.com/magento/magento2/issues/35506) + ### Sales ### Sales Rule @@ -1263,11 +1302,11 @@ Repetitive actions have been replaced with action groups in these tests: -* The `getCartDetails` query no longer includes tax when returning `subtotal_with_discount_excluding_tax`. [GitHub-33905](https://github.com/magento/magento2/issues/33905) +* The `cart` query no longer includes tax when returning `subtotal_with_discount_excluding_tax`. [GitHub-33905](https://github.com/magento/magento2/issues/33905) -* Web API requests for order data (`rest/V1/orders/`) no longer returns negative values for row totals. +* Web API requests for order data (`GET/V1/orders/`) no longer returns negative values for row totals. @@ -1281,6 +1320,8 @@ Repetitive actions have been replaced with action groups in these tests: * The `testCreateProductOnStoreLevel` integration test no longer causes a nested transaction on the database. +* The following exception no longer occurs when running WebAPI tests for the Send Friend feature when product image has not set on PHP 8.1: `exception main.ERROR: /var/www/html/lib/internal/Magento/Framework/DataObject.php:131 strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated`. [GitHub-34864](https://github.com/magento/magento2/issues/34864) + #### Unit tests ### Theme @@ -1377,10 +1418,16 @@ Repetitive actions have been replaced with action groups in these tests: +* The favicon icon upload form now supports `.ico` file types. Previously, when you tried to upload a favicon file with this extension type in the Admin, Magento displayed this error: `Warning: imagecreatefromstring(): one parameter to a memory allocation multiplication is negative or zero, failing operation gracefully in /var/www/html/vendor/magento/module-media-storage/Model/File/Validator/Image.php on line 64`. [GitHub-34858](https://github.com/magento/magento2/issues/34858) + + + +* Corrected display issues with the drop-down Select menu in the Admin grid. [GitHub-35386](https://github.com/magento/magento2/issues/35386) + ### URL rewrites @@ -1417,11 +1464,11 @@ Repetitive actions have been replaced with action groups in these tests: -* Cart price rules created through the `/rest/V1/salesRules/` endpoint now retain existing coupon code values after changing status from disabled to enabled. [GitHub-35298](https://github.com/magento/magento2/issues/35298) +* Cart price rules created through the `POST /V1/salesRules/` endpoint now retain existing coupon code values after changing status from disabled to enabled. [GitHub-35298](https://github.com/magento/magento2/issues/35298) -* Cart price rules created through the `/rest/V1/salesRules/` endpoint now contain valid `from_date` and `to_date` values. [GitHub-35265](https://github.com/magento/magento2/issues/35265) +* Cart price rules created through the `POST /V1/salesRules/` endpoint now contain valid `from_date` and `to_date` values. [GitHub-35265](https://github.com/magento/magento2/issues/35265) From 44677be1dc5467690421d9055cc332e2539203b8 Mon Sep 17 00:00:00 2001 From: Ravi Chandra Date: Wed, 6 Jul 2022 10:58:08 +0530 Subject: [PATCH 035/491] Update apply patch in cloud docs --- src/cloud/project/project-patch.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/cloud/project/project-patch.md b/src/cloud/project/project-patch.md index feb48846137..11c53dba964 100644 --- a/src/cloud/project/project-patch.md +++ b/src/cloud/project/project-patch.md @@ -156,7 +156,11 @@ To apply patches in a Cloud environment: {:.bs-callout-info} After upgrading to a new version of {{site.data.var.ee}}, you must re-apply patches if the patches are not included in the new version. -1. Commit and push the updated `.magento.env.yaml` file. +1. Add, commit and push the updated `.magento.env.yaml` file. + + ```bash + git add .magento.env.yaml + ``` ```bash git commit -m "Apply patch" @@ -187,7 +191,7 @@ To apply and test a custom patch on a Cloud environment: 1. Add, commit, and push code changes. ```bash - git add -A + git add m2-hotfixes/ ``` ```bash From 167390e1a7954758103ff9016cd2c87e4c88f7f2 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Thu, 7 Jul 2022 15:03:58 -0500 Subject: [PATCH 036/491] added final descriptions for community fixes --- src/guides/v2.3/inventory/release-notes.md | 2 + .../v2.4/release-notes/commerce-2-4-5.md | 162 ++++++++---------- 2 files changed, 71 insertions(+), 93 deletions(-) diff --git a/src/guides/v2.3/inventory/release-notes.md b/src/guides/v2.3/inventory/release-notes.md index 4111e2a17d7..b5b06e484b0 100644 --- a/src/guides/v2.3/inventory/release-notes.md +++ b/src/guides/v2.3/inventory/release-notes.md @@ -52,6 +52,8 @@ The release notes include: - {:.fix} The product bulk action tool (**Catalog** > **Products** > **Select Products** > **Actions** > **Assign Inventory Source**) now works as expected when assigning inventory source to multiple products when SKUs are duplicated with the exception of a leading 0 (for example, 01234 and 1234). Previously, only one product was assigned an Inventory source. [GitHub-35171](https://github.com/magento/magento2/issues/35171) +- {:.fix} `only_x_left_in_stock` now returns 0 if inventory is 0. Previously, it returned null. [GitHub-29932](https://github.com/magento/magento2/issues/29932) + ### v1.2.4 {{site.data.var.im}} 1.2.4 (module version: `magento/inventory-metapackage = 1.2.4`) is supported with version 2.4.4 and compatible with version 2.4.0 of {{site.data.var.ce}}, {{site.data.var.ee}}, and {{site.data.var.ece}}. diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 548581ce575..0b133b16b9d 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -217,15 +217,9 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * Merchants can now successfully upgrade from an {{ site.data.var.ee }} 2.4.2 deployment with Klarna to {{ site.data.var.ee }} 2.4.3. [GitHub-33760](https://github.com/magento/magento2/issues/33760) - - - - - - -* The path to Magento Analytics is no longer hardcoded. Previously, this hardcoded path resulted in conflicts when multiple Magento instances were installed on one server. [GitHub-29373](https://github.com/magento/magento2/issues/29373) +* The path to {{ site.data.var.ee }} Analytics is no longer hardcoded. Previously, this hardcoded path resulted in conflicts when multiple {{ site.data.var.ee }} instances were installed on one server. [GitHub-29373](https://github.com/magento/magento2/issues/29373) ### Accessibility @@ -257,16 +251,12 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * Screen reader users are informed when a new page view is rendered. Previously, when a page title changed, the title change was not announced. -### AdminGWS - ### Adobe Stock * Users can now successfully sign out of Adobe Stock. -### Backend - ### Bundle products @@ -281,7 +271,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Full page cache is no longer shown as disabled in the Admin when the Magento cache is flushed and `use_stale_cache` is enabled. +* Full page cache is no longer shown as disabled in the Admin when the {{ site.data.var.ee }} cache is flushed and `use_stale_cache` is enabled. @@ -323,7 +313,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The `cart` query no longer return null responses when a product is out of stock. A new `errors` element containing the error message was introduced to the response. Previously, when you ran a query with an out-of-stock product, Magento displayed a `null` value under the `items` section in the response. See [cart query](https://devdocs.magento.com/guides/v2.4/graphql/queries/cart.html). +* The `cart` query no longer return null responses when a product is out of stock. A new `errors` element containing the error message was introduced to the response. Previously, when you ran a query with an out-of-stock product, {{ site.data.var.ee }} displayed a `null` value under the `items` section in the response. See [cart query](https://devdocs.magento.com/guides/v2.4/graphql/queries/cart.html). @@ -353,10 +343,10 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * Merchants can now create a credit memo in which **Refund Shipping (Incl. Tax)** is set to -0.01 and can now set this amount to 0. Previously, the credit memo could not be created under these conditions. - - +* Coupons that are set for one-time use can now be redeemed only once as expected. [GitHub-35077](https://github.com/magento/magento2/issues/35077) + ### Cart price rule @@ -477,26 +467,16 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * The EAV indexer now processes product IDs as type `int` to prevent possible performance issues. - - - - - - * A new product cache is now successfully generated after you add a new image with a name that contains '.' to a product, then save the product and clean the image cache. [GitHub-32699](https://github.com/magento/magento2/issues/32699) - - * {{ site.data.var.ee }} now displays an error message as expected when you try to create an attribute from the product page without completing the Admin field. [GitHub-33099](https://github.com/magento/magento2/issues/33099) * Product ratings are now correct on all catalog product lists when the home page contains multiple catalog lists. [GitHub-33867](https://github.com/magento/magento2/issues/33867) -### Catalog rule - ### CMS content @@ -543,6 +523,10 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * You can now re-order configurable products with optional custom options. Previously, re-order attempts failed, and meant displayed this error: `Some of the selected options are not currently available`. [GitHub-35409](https://github.com/magento/magento2/issues/35409) + + +* The addConfigurableProductsToCart mutation now works as expected with multiple products. Previously, incorrect product information was returned, or an invalid error message was returned. [GitHub-30948](https://github.com/magento/magento2/issues/30948) + ### Customer @@ -623,7 +607,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Magento no longer triggers a `trim(): Passing null to parameter #1 ($string) of type string is deprecated` error when the AMPQ connection is configured without SSL configuration. +* {{ site.data.var.ee }} no longer triggers a `trim(): Passing null to parameter #1 ($string) of type string is deprecated` error when the AMPQ connection is configured without SSL configuration. @@ -643,7 +627,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* [GitHub-35150](https://github.com/magento/magento2/issues/35150) +* `.htpasswd` has been added to banned locations in the `nginx` configuration file. [GitHub-35150](https://github.com/magento/magento2/issues/35150) @@ -651,19 +635,24 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. - +* The `ProductRepository.php:get` method now returns cache keys once. Previously, they were returned twice. [GitHub-34958](https://github.com/magento/magento2/issues/34958) -Added an error message to a new exception that was created in the exception handler for cron jobs. -[GitHub-34941](https://github.com/magento/magento2/issues/34941) + - +* Added an error message to a new exception that was created in the exception handler for cron jobs. [GitHub-34941](https://github.com/magento/magento2/issues/34941) +* The ReadMe files for the GraphQl-GroupedProductGraphQl modules have been updated. [GitHub-34951](https://github.com/magento/magento2/issues/34951) + +* [GitHub-34430](https://github.com/magento/magento2/issues/34430) + +* The storefront print order/invoice/credit memo pages no longer display the default Luma logo instead of the logo that has been specified for display on the website. [GitHub-34942](https://github.com/magento/magento2/issues/34942) + ### General fixes @@ -736,11 +725,11 @@ Added an error message to a new exception that was created in the exception hand - +* {{ site.data.var.ee }} no longer throws an error when you activate the **Check here to link an RSS feed to your Wish List** checkbox before clicking on **Share Wish list**. [GitHub-34998](https://github.com/magento/magento2/issues/34998) - +* The title of the **Show Password** checkbox (Customer Login, Customer Registration, Customer Edit (Change Password section), and Customer Set New Password forms) is now translatable. [GitHub-34857](https://github.com/magento/magento2/issues/34857) @@ -778,7 +767,7 @@ Added an error message to a new exception that was created in the exception hand * The `getCartDetails` query now returns only one payment methods for free orders. Previously, all active payment methods were returned in the query response. [GitHub-34036](https://github.com/magento/magento2/issues/34036) - + * The `categories` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) @@ -790,7 +779,7 @@ Added an error message to a new exception that was created in the exception hand * The `updateCartItems` query now removes products as expected when the product stock has reached the maximum stock amount. [GitHub-30220](https://github.com/magento/magento2/issues/30220) - + * The `urlResolver` query now resolves the path delimiter (/) correctly when multiple homepages have the same identifier. Previously, the query did not resolve the delimiter and returned null. [GitHub-33615](https://github.com/magento/magento2/issues/33615) @@ -912,7 +901,13 @@ Added an error message to a new exception that was created in the exception hand -* The `V1/products/base-prices` endpoint now works as expected with **Catalog Price Mode - Website**. [GitHub-30132](https://github.com/magento/magento2/issues/30132) +* The `V1/products/base-prices` endpoint now works as expected with **Catalog Price Mode - Website**. [GitHub-30132](https://github.com/magento/magento2/issues/30132) + +### Google Analytics + + + +* The Google Tag module has been added to the codebase, which supports the transition to Google Analytics 4 in July 2023. You can currently use and collect new data in your Google Universal Analytics properties, but Google Universal will reach end-of-life in July 2023. [GitHub-35204](https://github.com/magento/magento2/issues/35204), [GitHub-35376](https://github.com/magento/magento2/issues/35376) ### Image @@ -948,7 +943,7 @@ Added an error message to a new exception that was created in the exception hand -### Index +* Existing records in the `catalog_url_rewrite_product_category` table are now deleted before inserting new ones. Previously, the following error occurred during multi-store product import: `SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '74583' for key 'PRIMARY', query was: INSERT INTO catalog_url_rewrite_product_category (url_rewrite_id,category_id,product_id) VALUES (?, ?, ?)`. [GitHub-34210](https://github.com/magento/magento2/issues/34210) ### Infrastructure @@ -978,12 +973,14 @@ Added an error message to a new exception that was created in the exception hand * Observers placed on `sales_order_state_change_before` now support the retrieval of data from the order object. The `sales_order_state_change_before` `event` argument has been updated. [GitHub-26789](https://github.com/magento/magento2/issues/26789) + + +* `indexer:reset` has been refactored to call `$indexer->invalidate()`. [GitHub-34988](https://github.com/magento/magento2/issues/34988) + #### Library removals and deprecations #### Library upgrades -### Invoice - ### Logging @@ -992,8 +989,6 @@ Added an error message to a new exception that was created in the exception hand ### {{ site.data.var.ee }} coding standard -### Media Gallery - ### MFTF #### New action groups @@ -1007,7 +1002,10 @@ Repetitive actions have been replaced with action groups in these tests: #### New tests +`AdminUnlockAdminUserEntityTest` [GitHub-34836](https://github.com/magento/magento2/issues/34836) + `StorefrontNewsletterSubscriptionWithEnabledNeedToConfirmConfigTest` [GitHub-33344](https://github.com/magento/magento2/issues/33344) + #### Refactored tests `AdminCancelTheCreatedOrderWithCashOnDeliveryPaymentMethodTest` [GitHub-33692](https://github.com/magento/magento2/issues/33692) @@ -1022,6 +1020,10 @@ Repetitive actions have been replaced with action groups in these tests: * The newsletter subscription confirmation email now has the correct, store-specific email address in the **From** field if the customer is assigned to a non-default store and subscribed or unsubscribed from the Admin. Previously, the customer received an email with default email in **From** header. [GitHub-34963](https://github.com/magento/magento2/issues/34963) + + +* The unsubscribe URL in the newsletter email template now works as expected. [GitHub-33310](https://github.com/magento/magento2/issues/33310) + ### Order @@ -1062,12 +1064,12 @@ Repetitive actions have been replaced with action groups in these tests: -* Magento now displays correct order status during checkout when customer store credit is used. - - +* {{ site.data.var.ee }} now displays correct order status during checkout when customer store credit is used. +* The `increment_id` column in the `sales_order` table has been increased. Previously, third-party modules that assumed that `sales_order.increment_id` had a length of 50 characters saved only the first 32 characters of an `increment_id`. [GitHub-34521](https://github.com/magento/magento2/issues/34521) + ### Payment methods @@ -1078,16 +1080,20 @@ Repetitive actions have been replaced with action groups in these tests: * Payment Review page in the checkout workflow now displays the correct payment method name when payment is made with Venmo, PayPal Later, or PayPal. - - +* The `getCartDetails` query no longer returns all active payment methods for free orders. [GitHub-34036](https://github.com/magento/magento2/issues/34036) + #### PayPal * {{ site.data.var.ee }} now shows the correct customer name in a guest order paid for with PayPal. Previously, the customer name was displayed as Guest. + + +* The PaypalExpressToken resolver has been updated to use correct input from the GraphQL schema. Previously, adding the `use_paypal_credit` input that is defined in `etc/schema.graphqls` to `createPaypalExpressToken` requests has no effect because the code was incorrectly checking for the presence of `paypal_credit` rather than `use_paypal_credit`. [GitHub-35180](https://github.com/magento/magento2/issues/35180) + ### Performance @@ -1104,6 +1110,8 @@ Repetitive actions have been replaced with action groups in these tests: +* The Catalog Search fulltext indexer has been relocated outside the stores loop, which streamlines re-indexing. [GitHub-33984](https://github.com/magento/magento2/issues/33984) + * Fixed issue with `array_merge` in loops. [GitHub-33929](https://github.com/magento/magento2/issues/33929) @@ -1118,32 +1126,16 @@ Repetitive actions have been replaced with action groups in these tests: * The price listed on the product detail page is now the same as the price listed in the checkout workflow for tier prices that differ by quantity selected (for example, a product priced differently based on buying 2 items versus 5 items). Previously, the checkout price reflected the price for the lowest product quantity. -### Product - - - - - -### ProductAlert - -### Product video - ### Promotions * The **Times Used** value for a discount is no longer incremented twice when a guest customer places an order with a discount and subsequently registers an account. - - ### ReCAPTCHA * The **Submit** button on the Login and Create an Account pages is now inactive until ReCaptcha is fully loaded. -### Reports - - - ### Return Merchandise Authorizations (RMA) @@ -1154,8 +1146,6 @@ Repetitive actions have been replaced with action groups in these tests: * The **Use Default** checkbox, which is used to enable RMA on the product edit page, now works as expected for Default Store. Previously, the checkbox was cleared immediately after the product was saved. -### Reviews - ### Rewards @@ -1172,11 +1162,7 @@ Repetitive actions have been replaced with action groups in these tests: ### Roles -* The **Store** > **Configuration** > **Services** page now displays Magento Web API information as expected when Resource Access is set to **Custom** on the Role Resources tab. [GitHub-35506](https://github.com/magento/magento2/issues/35506) - -### Sales - -### Sales Rule +* The **Store** > **Configuration** > **Services** page now displays {{ site.data.var.ee }} Web API information as expected when Resource Access is set to **Custom** on the Role Resources tab. [GitHub-35506](https://github.com/magento/magento2/issues/35506) ### Search @@ -1206,6 +1192,8 @@ Repetitive actions have been replaced with action groups in these tests: +* Fixed PHP errors on the `catalogsearch/advanced/result` and  `catalogsearch/advanced/index` pages. Previously, {{ site.data.var.ee }} displayed this error when an array was passed in any advanced search string : `Warning: trim() expects parameter 1 to be string, array given | magento/module-catalog-search`. [GitHub-33586](https://github.com/magento/magento2/issues/33586) + ### Shipping @@ -1220,8 +1208,6 @@ Repetitive actions have been replaced with action groups in these tests: * Table rate shipping rates with zero price are now displayed correctly in the checkout workflow Order Summary block for orders that have had a discount coupon applied. Previously, the shipping method was not displayed. - - ### Staging @@ -1272,8 +1258,6 @@ Repetitive actions have been replaced with action groups in these tests: * Problems with DHL domestic shipping in deployments running PHP 8.1 have been resolved by requiring dutiable tags for international shipments only. -### Store - ### Tax @@ -1308,8 +1292,6 @@ Repetitive actions have been replaced with action groups in these tests: * Web API requests for order data (`GET/V1/orders/`) no longer returns negative values for row totals. - - ### Test @@ -1322,10 +1304,6 @@ Repetitive actions have been replaced with action groups in these tests: * The following exception no longer occurs when running WebAPI tests for the Send Friend feature when product image has not set on PHP 8.1: `exception main.ERROR: /var/www/html/lib/internal/Magento/Framework/DataObject.php:131 strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated`. [GitHub-34864](https://github.com/magento/magento2/issues/34864) -#### Unit tests - -### Theme - ### Translations and locales @@ -1352,6 +1330,10 @@ Repetitive actions have been replaced with action groups in these tests: * Search Synonyms now respect their assigned store scope. Previously, a synonym assigned to a specific store was searchable on any other store. + + +* Problems with the Filipino (Philippines) locale has been resolved. [GitHub-33996](https://github.com/magento/magento2/issues/33996) + ### UI @@ -1414,20 +1396,18 @@ Repetitive actions have been replaced with action groups in these tests: * You can now switch between store views when website restrictions are enabled. Previously, problems with the store view switcher prevented switching store views. - - -* The favicon icon upload form now supports `.ico` file types. Previously, when you tried to upload a favicon file with this extension type in the Admin, Magento displayed this error: `Warning: imagecreatefromstring(): one parameter to a memory allocation multiplication is negative or zero, failing operation gracefully in /var/www/html/vendor/magento/module-media-storage/Model/File/Validator/Image.php on line 64`. [GitHub-34858](https://github.com/magento/magento2/issues/34858) - - - - +* The favicon icon upload form now supports `.ico` file types. Previously, when you tried to upload a favicon file with this extension type in the Admin, {{ site.data.var.ee }} displayed this error: `Warning: imagecreatefromstring(): one parameter to a memory allocation multiplication is negative or zero, failing operation gracefully in /var/www/html/vendor/magento/module-media-storage/Model/File/Validator/Image.php on line 64`. [GitHub-34858](https://github.com/magento/magento2/issues/34858) * Corrected display issues with the drop-down Select menu in the Admin grid. [GitHub-35386](https://github.com/magento/magento2/issues/35386) + + +* [GitHub-34430](https://github.com/magento/magento2/issues/34430) + ### URL rewrites @@ -1482,20 +1462,16 @@ Repetitive actions have been replaced with action groups in these tests: * The Bulk Rest API now works with the `bySku` option for configurable products. Previously, it returned a 500 error. - - - - - - ### Wish list -* Updating an item quantity from the wishlist page now updates the quantity on the product detail page as expected. {{ site.data.var.ee }} now picks up the updated value from the product URL and populates the `qty` field of product detail page from the wishlist itself. +* Updating an item quantity from the wish list page now updates the quantity on the product detail page as expected. {{ site.data.var.ee }} now picks up the updated value from the product URL and populates the `qty` field of product detail page from the wishlist itself. ## Known issues +**Issue**: {{ site.data.var.ee }} displays the following message when an administrator logs in: `Invalid security or form key. Please refresh the page`. **Workaround**: Refresh the page. To permanent remove this error occurrence, you can lengthen the session lifetime from the command line ( for example, `bin/magento config:set admin/security/session_lifetime 10800`). [GitHub-33749](https://github.com/magento/magento2/issues/33749) + ## Community contributions We are grateful to the wider Magento community and would like to acknowledge their contributions to this release. From a5d2321a10eb56f7e663af7e1e0de55f86c74384 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Thu, 7 Jul 2022 21:04:06 -0500 Subject: [PATCH 037/491] entered keharper's review comments --- src/guides/v2.3/inventory/release-notes.md | 4 +- .../v2.4/release-notes/b2b-release-notes.md | 2 +- .../v2.4/release-notes/commerce-2-4-5.md | 22 +- .../v2.4/release-notes/open-source-2-4-5.md | 1214 ++++++++++++++++- 4 files changed, 1201 insertions(+), 41 deletions(-) diff --git a/src/guides/v2.3/inventory/release-notes.md b/src/guides/v2.3/inventory/release-notes.md index b5b06e484b0..d53f0d2b620 100644 --- a/src/guides/v2.3/inventory/release-notes.md +++ b/src/guides/v2.3/inventory/release-notes.md @@ -30,7 +30,7 @@ The release notes include: - {:.fix} Inventory changes implemented through the REST API are now reflected as expected on product detail pages. The cache for catalog products is now cleaned after comparing the last and current stock statuses. Previously, omitting the callback function resulted in the incorrect evaluation of stock status changes, which did not trigger the necessary cache cleaning. As a result, the storefront did not reflect the inventory changes. -- {:.fix} Products that are assigned to default stock and that were previously out of stock are now visible on the storefront after updating the source item using `V1/inventory/source-items`. Previously, this REST API endpoint set the wrong 'stock_status`. +- {:.fix} Products that are assigned to default stock and that were previously out of stock are now visible on the storefront after updating the source item using `/V1/inventory/source-items`. Previously, this REST API endpoint set the wrong `stock_status`. - {:.fix} Unassigning inventory sources through bulk action (**Catalog** > **Products** > **Select Products** > **Actions - Unassign Inventory Source**) now works as expected when sources include SKUs that are duplicates with the exception of a leading zero (for example, `01234` and `1234`). Previously, Magento did not unassign inventory sources and threw an error. @@ -52,7 +52,7 @@ The release notes include: - {:.fix} The product bulk action tool (**Catalog** > **Products** > **Select Products** > **Actions** > **Assign Inventory Source**) now works as expected when assigning inventory source to multiple products when SKUs are duplicated with the exception of a leading 0 (for example, 01234 and 1234). Previously, only one product was assigned an Inventory source. [GitHub-35171](https://github.com/magento/magento2/issues/35171) -- {:.fix} `only_x_left_in_stock` now returns 0 if inventory is 0. Previously, it returned null. [GitHub-29932](https://github.com/magento/magento2/issues/29932) +- {:.fix} The `ProductInterface.only_x_left_in_stock` field now returns 0 if inventory is 0. Previously, it returned null. [GitHub-29932](https://github.com/magento/magento2/issues/29932) ### v1.2.4 diff --git a/src/guides/v2.4/release-notes/b2b-release-notes.md b/src/guides/v2.4/release-notes/b2b-release-notes.md index 37eec7e0e23..0662b280d27 100644 --- a/src/guides/v2.4/release-notes/b2b-release-notes.md +++ b/src/guides/v2.4/release-notes/b2b-release-notes.md @@ -141,7 +141,7 @@ These release notes can include: ### Requisition lists -- {:.fix} Merchants can now use the POST `/all/V1/requisition_lists` endpoint to create a requisition list for a customer. Previously, {{ site.data.var.ee }} threw this 400 error when you tried to create a requisition list: `Could not save Requisition List`. +- {:.fix} Merchants can now use the POST `/V1/requisition_lists` endpoint to create a requisition list for a customer. Previously, {{ site.data.var.ee }} threw this 400 error when you tried to create a requisition list: `Could not save Requisition List`. - {:.fix} The **Add to Requisition List** button now appears for a shopping cart’s in-stock products when the cart also contains out-of-stock products. Previously, if a cart contained two products, one of which was out-of-stock, the **Add to Requisition List** button did not appear for either products. diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 0b133b16b9d..af9e70bd7af 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -99,7 +99,7 @@ The `laminas/laminas-session`, `laminas/laminas-text`, and `laminas/laminas-view #### Other upgrades and replacements -* DHL Integration schema has been updated from v6.0 to v6.2. (DHL is deprecating the v6.0 schema mid-2022.) +* DHL Integration schema has been updated from v6.0 to v6.2. (DHL will deprecate the v6.0 schema mid-2022.) * The default Gateway URL for USPS shipping has been updated to use `https` instead of `http`. @@ -525,7 +525,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The addConfigurableProductsToCart mutation now works as expected with multiple products. Previously, incorrect product information was returned, or an invalid error message was returned. [GitHub-30948](https://github.com/magento/magento2/issues/30948) +* The `addConfigurableProductsToCart` mutation now works as expected with multiple products. Previously, incorrect product information was returned, or an invalid error message was returned. [GitHub-30948](https://github.com/magento/magento2/issues/30948) ### Customer @@ -599,7 +599,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* {{ site.data.var.ee }} no longer throws the following error when you create a plugin for any method of class `vendor/magento/module-backend/Model/Menu.php`: `Error: Call to undefined method ReflectionUnionType::getName(). [GitHub-35292](https://github.com/magento/magento2/issues/35292) +* {{ site.data.var.ee }} no longer throws the following error when you create a plugin for any method of class `vendor/magento/module-backend/Model/Menu.php`: `Error: Call to undefined method ReflectionUnionType::getName()`. [GitHub-35292](https://github.com/magento/magento2/issues/35292) @@ -737,7 +737,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Removed unneeded csp_whitelist.xml files. [GitHub-30607](https://github.com/magento/magento2/issues/30607) +* Removed unneeded `csp_whitelist.xml` files. [GitHub-30607](https://github.com/magento/magento2/issues/30607) ### Gift cards @@ -877,7 +877,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Customers added or updates with the `createCustomer`, `createCustomerV2`, `updateCustomer`, or `updateCustomerV2` mutation are now added with active newsletter subscriptions. Previously, customers were unsubscribed from newsletters even when the request contained proper input parameters. [GitHub-33599](https://github.com/magento/magento2/issues/33599) +* Customers added or updated with the `createCustomer`, `createCustomerV2`, `updateCustomer`, or `updateCustomerV2` mutation are now added with active newsletter subscriptions. Previously, customers were unsubscribed from newsletters even when the request contained proper input parameters. [GitHub-33599](https://github.com/magento/magento2/issues/33599) @@ -901,7 +901,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The `V1/products/base-prices` endpoint now works as expected with **Catalog Price Mode - Website**. [GitHub-30132](https://github.com/magento/magento2/issues/30132) +* The `/V1/products/base-prices` endpoint now works as expected with **Catalog Price Mode - Website**. [GitHub-30132](https://github.com/magento/magento2/issues/30132) ### Google Analytics @@ -943,7 +943,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Existing records in the `catalog_url_rewrite_product_category` table are now deleted before inserting new ones. Previously, the following error occurred during multi-store product import: `SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '74583' for key 'PRIMARY', query was: INSERT INTO catalog_url_rewrite_product_category (url_rewrite_id,category_id,product_id) VALUES (?, ?, ?)`. [GitHub-34210](https://github.com/magento/magento2/issues/34210) +* Existing records in the `catalog_url_rewrite_product_category` table are now deleted before inserting new ones. Previously, the following error occurred during multi-store product import: `SQLSTATE[23000]: Integrity constraint violation`. [GitHub-34210](https://github.com/magento/magento2/issues/34210) ### Infrastructure @@ -1082,7 +1082,7 @@ Repetitive actions have been replaced with action groups in these tests: -* The `getCartDetails` query no longer returns all active payment methods for free orders. [GitHub-34036](https://github.com/magento/magento2/issues/34036) +* The `cart` query no longer returns all active payment methods for free orders. [GitHub-34036](https://github.com/magento/magento2/issues/34036) #### PayPal @@ -1092,7 +1092,7 @@ Repetitive actions have been replaced with action groups in these tests: -* The PaypalExpressToken resolver has been updated to use correct input from the GraphQL schema. Previously, adding the `use_paypal_credit` input that is defined in `etc/schema.graphqls` to `createPaypalExpressToken` requests has no effect because the code was incorrectly checking for the presence of `paypal_credit` rather than `use_paypal_credit`. [GitHub-35180](https://github.com/magento/magento2/issues/35180) +* The resolver for the createPaypalExpressToken mutation has been updated to correctly use the value specified in the use_paypal_credit input field. Previously, it attempted to use an invalid `paypal_credit` field. [GitHub-35180](https://github.com/magento/magento2/issues/35180) ### Performance @@ -1290,7 +1290,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Web API requests for order data (`GET/V1/orders/`) no longer returns negative values for row totals. +* Web API requests for order data (`GET /V1/orders/`) no longer returns negative values for row totals. ### Test @@ -1470,7 +1470,7 @@ Repetitive actions have been replaced with action groups in these tests: ## Known issues -**Issue**: {{ site.data.var.ee }} displays the following message when an administrator logs in: `Invalid security or form key. Please refresh the page`. **Workaround**: Refresh the page. To permanent remove this error occurrence, you can lengthen the session lifetime from the command line ( for example, `bin/magento config:set admin/security/session_lifetime 10800`). [GitHub-33749](https://github.com/magento/magento2/issues/33749) +**Issue**: {{ site.data.var.ee }} displays the following message when an administrator logs in: `Invalid security or form key. Please refresh the page`. **Workaround**: Refresh the page. To permanently remove this error occurrence, you can lengthen the session lifetime from the command line (for example, `bin/magento config:set admin/security/session_lifetime 10800`). [GitHub-33749](https://github.com/magento/magento2/issues/33749) ## Community contributions diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index 68b8d680242..a21f5d8d5aa 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -65,54 +65,791 @@ This release brings enhanced conformance to standard accessibility guidelines. We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. - ### Installation, upgrade, deployment -### Accessibility + + +* You can now rename a data patch and add the old class name as an alias in the `patch_list` database table. {{ site.data.var.ee }} now checks whether data patch aliases already existed in the database before applying the patch. Previously, {{ site.data.var.ee }} threw an error under these conditions. + + + +* {{ site.data.var.ee }} no longer throws an exception when you try to change the Admin URL to a custom URL from the Admin. Previously, after changing the Admin URL, you could not log in. [GitHub-35416](https://github.com/magento/magento2/issues/35416) + + + +* Merchants can now successfully upgrade from an {{ site.data.var.ee }} 2.4.2 deployment with Klarna to {{ site.data.var.ee }} 2.4.3. [GitHub-33760](https://github.com/magento/magento2/issues/33760) + + + +* The path to {{ site.data.var.ee }} Analytics is no longer hardcoded. Previously, this hardcoded path resulted in conflicts when multiple {{ site.data.var.ee }} instances were installed on one server. [GitHub-29373](https://github.com/magento/magento2/issues/29373) + +### Accessibility + + + +* The **Shopping bag** button now provides a programmatic or textual indication of its state. Screen reader users are informed that clicking this button will expand other content, or that the associated content is expanded or collapsed. Previously, this button did not provide a programmatic or textual indication of its state. + + + +* Payment Information credit card option text elements or images of text now meet the WCAG 2.0 required minimum color contrast ratio of 4.5:1 for standard text of 18pt (24px) or 14pt (19px) if bolded. Previously, they did not meet the expected contrast ratio. + + + +* **Address book** > **Communication** > **Account information** custom focus indicators now provide a contrast ratio of at least 3:1 against the background color. + + + +* **Filter** and **Sort** button text now meet the WCAG 2.0 required minimum color contrast ratio of 4.5:1 for standard text of 18pt (24px) or 14pt (19px) if bolded. Previously, navigation buttons for carousels did not meet these minimum contrast requirements. + + + +* Screen readers announce the word “Venia” only once when navigating to Venia headers and footers. Previously, the same word was announced twice consecutively. + + + +* Buttons that trigger dropdowns now provide information to screen readers that indicate their expanded or collapsed state and accessible names. + + + +* Screen reader users are informed when a new page view is rendered. Previously, when a page title changed, the title change was not announced. + +### Adobe Stock + + + +* Users can now successfully sign out of Adobe Stock. + +### Bundle products + + + +* You can now use the `PUT /V1/products` endpoint to update product price attributes for a specific website. Previously, if some product attributes were overridden for a specific store view, you could not update a price attribute for that product in that same store view. + + + +* {{ site.data.var.ee }} now correctly calculates the cart total for a bundle product when the Product Subselect rule is applied. + +### Cache + + + +* Full page cache is no longer shown as disabled in the Admin when the {{ site.data.var.ee }} cache is flushed and `use_stale_cache` is enabled. + + + +* New Relic deployment markers now work as expected when cache is flushed. [GitHub-32649](https://github.com/magento/magento2/issues/32649) + +### Cart and checkout + + + +* The `Parent Only` attribute scope is now used properly in the Cart Rule condition. + + + +* Company name is now visible as expected in the billing and shipping address sections of the checkout workflow. + + + +* The address search pop-up on the billing step of the checkout workflow no longer causes DOM errors. + + + +* The `addProductsToCart` mutation now works correctly with multiple products. Previously, this query returned the first product with an accurate subtotal, but returned a subtotal of 0 for other products. + + + +* Permission exceptions are now handled for restricted products that are added by SKU. Shoppers are now given an appropriate message on the storefront, and the quantity field in the error table is disabled. Previously, {{ site.data.var.ee }} threw an exception like this: `There has been an error processing your request`. + + + +* The SQL query that updates affected quotes after disabling a cart price rule has been optimized to avoid locking the entire quote table. + + + +* Shoppers with global account sharing are no longer required to log in again to a secondary website in a multisite deployment when guest checkout is disabled. Customer data is now loaded when the shopper navigates to the subdomain. The shopper is no longer asked to log in again, and the previous cart contents are displayed. + + + +* Address dropdown values in the checkout workflow no longer change for the remaining items in a quote when a single quantity address item is removed in a multi-address checkout. Previously, when a product was removed from a quote during multi-address checkout, the address dropdown value changed to default for all products. + + + +* The `cart` query no longer return null responses when a product is out of stock. A new `errors` element containing the error message was introduced to the response. Previously, when you ran a query with an out-of-stock product, {{ site.data.var.ee }} displayed a `null` value under the `items` section in the response. See [cart query](https://devdocs.magento.com/guides/v2.4/graphql/queries/cart.html). + + + +* Shipping methods are now available as expected when a guest shopper creates an account after adding a product to their cart before proceeding to checkout. Previously, when a guest added a product the cart before creating an account, no shipping methods were available during checkout. After adding other products to the cart, shipping methods became available. + + + +* Shoppers can now add products to their carts when no options in the **Allow Countries** field have been selected. + + + +* Cart contents and login status are now reloaded as expected after a session times out when **Enable Persistence** is set to **Yes**. [GitHub-35182](https://github.com/magento/magento2/issues/35182) + + + +* Mini cart subtotals are now updated correctly when a shopper navigates from the shipping page to the cart page in the checkout workflow for an order with multiple shipping addresses. Previously, the subtotal was doubled. + + + +* The mini cart now displays previously added products after a session timeout when **Enable Persistence** is enabled . [GitHub-35183](https://github.com/magento/magento2/issues/35183) + + + +* Store credit is now unavailable when the Zero Subtotal Checkout payment method is disabled. Previously, the Store Credit checkbox was not functional during order placement from Admin. {{ site.data.var.ee }} did not place the order with the store credit and displayed this error: `The requested Payment Method is not available`. + + + +* Merchants can now create a credit memo in which **Refund Shipping (Incl. Tax)** is set to -0.01 and can now set this amount to 0. Previously, the credit memo could not be created under these conditions. + + + +* Coupons that are set for one-time use can now be redeemed only once as expected. [GitHub-35077](https://github.com/magento/magento2/issues/35077) + +### Cart price rule + + + +* The `Parent Only` attribute scope is now used properly in the Cart Rule condition. + +### Catalog + + + +* Product URL keys now remain unchanged when updating product name via `PUT /V1/products/` for a store view. Previously, a new URL key was generated based on the new product name and assigned to the product, which overrode the URL key in that store view. + + + +* Rule-based upsell products are no longer shown twice on the product page. + + + +* Adding a product to a category from the Page Builder product widget set to carousel mode no longer triggers a page reload. + + + +* Products set to **Not Visible Individually** no longer appear in catalog Advanced Search results. + + + +* Dynamic bundle attributes are now updated correctly on the Mass Attribute Update page. Previously, the **Dynamic SKU** attribute remained set to **Yes** even though they were disabled on the Mass Update page. + + + +* Catalog rules are now correctly applied using incremental indexers rather than a full re-index. + + + +* You can now successfully switch between list and grid views of multi-page product lists. Previously, when you navigated to the last page of a multi-page product list view before switching to the grid view, {{ site.data.var.ee }} displayed this error: `Unfortunately there are no products in this category on our website currently`. + + + +* Admin Action Log reports now display updated product IDs and updated status information as expected. + + + +* Triggers are now restored as expected to the `catalogrule_product_price` table after a full reindex. Previously, triggers were removed from the `catalogrule_product_price` table after a `catalogrule_rule` or `catalogrule_product` full re-index. + + + +* Category rules that are used to assign products to categories no longer randomly change. + + + +* {{ site.data.var.ee }} no longer throws an error when a category rule assigns a product to a category that is subsequently sorted in a multi-site deployment. + + + +* Categories can no longer be updated globally by an administrator with scope-restricted access. Previously, when multiple websites used the same category but different products, and an administrator with permission restricted to one store changed products in the category, the product selection also changed for other stores. + + + +* The product details page now displays the correct price when a non-default currency for a specified locale is used. Previously, numbers were not localized as expected on the storefront. + + + +* Products can now be enabled using a scheduled update. + + + +* The same error message is now displayed by the API and on the storefront when trying to retrieve the tier prices of a product with duplicate records. Previously, `PUT /V1/products/tier-prices` returned an incorrect error message. + + + +* {{ site.data.var.ee }} now provides validation error messages when you try to add a product URL key with a trailing hyphen. Informative tooltip text is also available. + + + +* The category list product count is now correct when using inventory single-source mode with the **Display Out-Of-Stock Products** setting enabled. A new plugin now uses `AreProductsSalableInterface` and `StockConfigurationInterface` to determine the total number of products. Previously, the category product list returned the wrong product quantity. + + + +* The new `ConfigurableWishlistItem.configured_variant` field has replaced the `ConfigurableWishlistItem.child_sku` field. The latter field triggered an internal error when a customer wishlist contained an un-configured configurable product. + + + +* URL rewrites are now generated only for the selected stores during the mass attribute update to change product visibility. Previously, the mass attribute update created a URL rewrite for the wrong store. + + + +* When the `Synchronize widget products with backend storage` setting is enabled, {{ site.data.var.ee }} adds recently view product data into the `catalog_product_frontend_action` database table. It includes the customer or visitor ID when adding records. The `recently_viewed_product` section in the response is now empty if customer ID and visitor ID are null. As a result, when the `customer/section/load` Ajax request is sent, {{ site.data.var.ee }} can correctly filter recently viewed products based on customer or visitor ID. Previously, the response included all the data available in the `catalog_product_frontend_action` database table because there was no check for an empty customer or visitor ID. + + + +* Category rules with a `Quantity` attribute for configurable products now work correctly when staging is implemented. Previously, when products had different values for `row_id` and `entity_id` in the `catalog_product_entity` table due to staging updates, the Visual Merchandiser **Match product by rule** functionality did not correctly filter the products. + + + +* Administrators can now change configurable product options in a shopper’s cart from the Admin slide panel. Previously, the slide panel did not work correctly. + + + +* Page cache is now cleared as expected for the configurable product parent when changes to a child product are saved. Previously, because the cache was not cleared, changes were not selected on the storefront configuration product page. [GitHub-34508](https://github.com/magento/magento2/issues/34508) + + + +* Product lists are now rendered correctly in the Admin. Previously, the product list did not render, and {{ site.data.var.ee }} displayed this error: `Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "" already exists`. [GitHub-33145](https://github.com/magento/magento2/issues/33145) + + + +* Product prices are now the same on the product detail page and in storefront search in multi-store deployments after Catalogue Price Scope changes from **website** to **global**. Previously, the Catalog Search Results page displayed the **global** price, and the product details page displayed the **website** price. [GitHub-34074](https://github.com/magento/magento2/issues/34074) + + + +* Layered navigation now displays products with the highest prices as expected when **Price Navigation Step Calculation** is set to **Manual**. + + + +* You can now change the per-page product limit displayed within a category when **Remember Category Pagination** is enabled. Previously, the cookie `form_key` and UI `form_key` differed, and {{ site.data.var.ee }} displayed this error: `Invalid Form Key. Please refresh the page`. + + + +* The EAV indexer now processes product IDs as type `int` to prevent possible performance issues. + + + +* A new product cache is now successfully generated after you add a new image with a name that contains '.' to a product, then save the product and clean the image cache. [GitHub-32699](https://github.com/magento/magento2/issues/32699) + + + +* {{ site.data.var.ee }} now displays an error message as expected when you try to create an attribute from the product page without completing the Admin field. [GitHub-33099](https://github.com/magento/magento2/issues/33099) + +* Product ratings are now correct on all catalog product lists when the home page contains multiple catalog lists. [GitHub-33867](https://github.com/magento/magento2/issues/33867) + +### CMS content + + + +* Merchants can no longer edit an active scheduled update from the entity edit page. + + + +* An administrator with restricted permissions can now view a CMS page in the CMS hierarchy after a scheduled update. + +### Configurable products + + + +* {{ site.data.var.ee }} now displays the correct product price for a configurable product with a selected option after changing its quantity on product details page. Previously, the price was reset to the initial value after the quantity changed. + + + +* The `products` query now retrieves prices for configurable products that accurately reflect the **Display Out Of Stock** configuration setting. Previously, the query did not return accurate prices. + + + +* Configurable options are now linked to configurable products that are created in the Admin using `POST /V1/configurable-products/configurable1/child`. + + + +* Multi-select attributes are now saved correctly during product edit. Previously, {{ site.data.var.ee }} saved the default option for non-selected attributes as well as selected attributes when saving a product. + + + +* {{ site.data.var.ee }} now displays configurable attributes as expected during the creation of global `select` attributes via a patch script. Previously, eligible global attributes were hidden. + + + +* The `addConfigurableProductsToCart` mutation can now be used to add configurable products with custom options. Previously, {{ site.data.var.ee }} threw this error: `Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62`. [GitHub-28860](https://github.com/magento/magento2/issues/28860) + + + +* Configurable products are now moved to the last position in the product listing after stock is updated when the **Move out of stock to the bottom** setting is enabled. A new custom database query has been implemented to negate Elasticsearch index sort order, which disregards Admin-enabled sort order. Previously, configurable products and their child products were not moved to the bottom of the list when this setting was enabled. + + + +* {{ site.data.var.ee }} now correctly displays a configurable product’s stock status, available configurations, and displayed price when the availability of one of the configurable product’s child product is changed by a scheduled update. Previously, when a configurable product had two children and the availability of one child product was disabled with a scheduled update, the parent product’s stock status was incorrectly displayed as **Out of Stock** when the update was active, After the update completed, the displayed price and the availability of its configurations was miscalculated. + +* You can now re-order configurable products with optional custom options. Previously, re-order attempts failed, and meant displayed this error: `Some of the selected options are not currently available`. [GitHub-35409](https://github.com/magento/magento2/issues/35409) + + + +* The `addConfigurableProductsToCart` mutation now works as expected with multiple products. Previously, incorrect product information was returned, or an invalid error message was returned. [GitHub-30948](https://github.com/magento/magento2/issues/30948) + +### Customer + + + +* {{ site.data.var.ee }} now displays predefined EAV system attributes correctly according to the website setting on the storefront. Previously, website-level customer attributes that were enabled for one website and disabled for another were displayed as enabled for both websites. + +### Customer segment + + + +* Customer segment-specific Related Product rules now work as expected. The issue has been fixed by calling a method to add a visitor-segment relation for a specific website. Previously, the segments for this rule fetched only on the basis of registered customers and websites. + +### Downloadable + + + +* You can now remove sample links and files from a downloadable product. [GitHub-31887](https://github.com/magento/magento2/issues/31887) + +### Email + + + +* System-issued emails are now successfully sent to recipients with ".-" in their email address. + + + +* Customers now get email reminders about their abandoned carts on the correct schedule. The new `TIMESTAMPDIFF(DAY, ,)` SQL function has replaced the `TO_DAYS()` function and calculates the difference in the timestamps on the basis of date and time. Previously, email reminders were not sent per schedule because of the incorrect calculation of two date-time values of cart abandonment (any timezone) and server time (UTC). + + + +* {{ site.data.var.ee }} now displays an error message on the Shipping page when a shopper enters an invalid email format after the shopper clicks **Place Order**. Previously, the error message was displayed on the Payment page. [GitHub-33590](https://github.com/magento/magento2/issues/33590 + +### Frameworks + + + +* The `bin/magento setup:config:set` command no longer overrides already set cache ID prefixes in `app/etc/env.php`. + + + +* The `bin/magento setup:static-content:deploy -s compact` command now includes styles from child themes as expected. Previously, theme CSS files were not present on the storefront after deployment. + + + +* A new sniff has been added to check if closing slashes are used in `void` elements. + + + +* {{ site.data.var.ee }} no longer throws an SQL error after assigning a new source to a product and changing its quantity. [GitHub-35262](https://github.com/magento/magento2/issues/35262) + + + +* Attribute sort order now works as specified in the `di.xml` file after update. + + + +* The `updateCartCurrency` function now sets string instead of an object inside the cart object. Previously, {{ site.data.var.ee }} did not load a quote using `getQuote` because the `updateCartCurrency` function set an object instead of a string inside the cart object. [GitHub-34199](https://github.com/magento/magento2/issues/34199) + + + +* Deprecation notices no longer occur in unit tests due to`\DateTimeFormatter::formatObject()`. This method now works as expected with numeric values for `$format`. + + + +* {{ site.data.var.ee }} no longer displays a `preg_replace()` error on the Admin. The third argument (`$subject`) is now of type `array|string` instead of `bool`. + + + +* The `isFreeShipping` method now returns an integer rather than a Boolean.[GitHub-35164](https://github.com/magento/magento2/issues/35164) + + + +* {{ site.data.var.ee }} no longer throws the following error when you create a plugin for any method of class `vendor/magento/module-backend/Model/Menu.php`: `Error: Call to undefined method ReflectionUnionType::getName()`. [GitHub-35292](https://github.com/magento/magento2/issues/35292) + + + +* {{ site.data.var.ee }} now returns a 404 error instead of a 500 error when you navigate to `/checkout/sidebar/updateItemQty/?item_qty=error` on the storefront. Previously, this error was thrown: `Warning: A non-numeric value encountered in /vendor/magento/module-checkout/Controller/Sidebar/UpdateItemQty.php on line 69`. [GitHub-34380](https://github.com/magento/magento2/issues/34380) + + + +* {{ site.data.var.ee }} no longer triggers a `trim(): Passing null to parameter #1 ($string) of type string is deprecated` error when the AMPQ connection is configured without SSL configuration. + + + +* Corrected the `longblog` database definition to `long blob`. [GitHub-35108](https://github.com/magento/magento2/issues/35108) + + + +* Knockout text containing single quotes are now translatable. [GitHub-34319](https://github.com/magento/magento2/issues/34319) + + + +* A `TypeError` in `magento2/app/code/Magento/Security/Model/AdminSessionsManager.php` has been corrected from int to string. [GitHub-34415](https://github.com/magento/magento2/issues/34415) + + + +* Merchants can now successfully upgrade from an {{ site.data.var.ee }} 2.4.2 deployment with Klarna to {{ site.data.var.ee }} 2.4.3. [GitHub-33760](https://github.com/magento/magento2/issues/33760) + + + +* `.htpasswd` has been added to banned locations in the `nginx` configuration file. [GitHub-35150](https://github.com/magento/magento2/issues/35150) + + + +* Load time of category product list pages have been improved by adding `Magento_Ui/js/core/app` as a `deps` to `app/code/Magento/Ui/view/frontend/requirejs-config.js`. [GitHub-34847](https://github.com/magento/magento2/issues/34847) + + + +* The `ProductRepository.php:get` method now returns cache keys once. Previously, they were returned twice. [GitHub-34958](https://github.com/magento/magento2/issues/34958) + + + +* Added an error message to a new exception that was created in the exception handler for cron jobs. [GitHub-34941](https://github.com/magento/magento2/issues/34941) + + + +* The ReadMe files for the GraphQl-GroupedProductGraphQl modules have been updated. [GitHub-34951](https://github.com/magento/magento2/issues/34951) + + + +* [GitHub-34430](https://github.com/magento/magento2/issues/34430) + + + +* The storefront print order/invoice/credit memo pages no longer display the default Luma logo instead of the logo that has been specified for display on the website. [GitHub-34942](https://github.com/magento/magento2/issues/34942) + +### General fixes + + + +* Setting the maximum session size to 0 (Admin **Store** > **Settings** > **Configuration - Advanced**) no longer logs out the administrator. [GitHub-35312](https://github.com/magento/magento2/issues/35312) + + + +* {{ site.data.var.ee }} sessions no longer end after a GraphQL request is made. Previously, the `ClearCustomerSessionAfterRequest` plugin logged out the shopper. [GitHub-34550](https://github.com/magento/magento2/issues/34550) + + + +* Customer address attributes configuration settings are now loaded correctly based the website the customer is assigned to when you add a new customer address from the Admin that is assigned to a non-default website. + + + +* Category creation is now blocked for a restricted admin on both the Category page and Product Edit page. Previously, category creation was blocked on the category page, but was still possible through the Product Edit page. + + + +* {{ site.data.var.ee }} no longer throws an exception when you add a bundle product through Page Builder. + + + +* Categories can now be selected from the category tree as a condition for a customer segment. + + + +* You can now create a customer account on an iOS device with the inclined apostrophe (’) in the first, middle, or last name. Previously, only the straight apostrophe was allowed, and using iOS 11+ default inclined apostrophe resulted in a `Name is not valid!` error. + + + +* The `products` query now returns product information that accurately reflects the "Show Related Products" configuration. The `related_products`, `upsell_products`, and `crosssell_products` fields in the GraphQL ProductInterface are now resolved according to Show Related Products, Show Upsell Products, and Show Cross-Sell Products configuration respectively. + + + +* The **Set Product as New From Date** attribute now displays the correct date when the **Set Product as New** attribute is set through a mass product bulk update. Previously, **Set Product as New From Date** was displayed as **Jan 1, 1970**. + + + +* Users with restricted roles are no longer automatically granted access to new modules. + + + +* Target rules based on categories display only products from the category that is declared in the rule. Previously, Related Product rules displayed products from categories that were assigned to product and not defined in the rule. + + + +* Related product rule conditions now work as expected with products that contain `multiselect` attributes. + + + +* Merchants can now add a tier price attribute (`tier_price`) to product comparisons. Previously, the product comparisons page crashed when the **Comparable on storefront** setting for this attribute was enabled. [GitHub-35244](https://github.com/magento/magento2/issues/35244) + + + +* {{ site.data.var.ee }} now displays an error message when you set an invalid cookie domain (**Store** > **Configurations** > **Web** > **Default Cookie Settings Cookie Domain**). Previously, the website crashed. [GitHub-35048](https://github.com/magento/magento2/issues/35048) + + + +* {{ site.data.var.ee }} no longer throws an error when an administrator with roles scoped to a single website adds product to Content Elements using PageBuilder. Previously, {{ site.data.var.ee }} threw an SQL error. + + + +* Validation has been added to the second line of the street address on the edit and add address pages. The minimum and maximum text lengths that are specified on the second are now enforced. + + + +* {{ site.data.var.ee }} no longer throws the following error during the creation of a catalog rule in the Admin after upgrade: `A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later`. + + + +* {{ site.data.var.ee }} no longer throws an error when you activate the **Check here to link an RSS feed to your Wish List** checkbox before clicking on **Share Wish list**. [GitHub-34998](https://github.com/magento/magento2/issues/34998) + + + +* The title of the **Show Password** checkbox (Customer Login, Customer Registration, Customer Edit (Change Password section), and Customer Set New Password forms) is now translatable. [GitHub-34857](https://github.com/magento/magento2/issues/34857) + + + +* Updated the labels and comment descriptions in `app/code/Magento/NewRelicReporting/etc/adminhtml/system.xml`. [GitHub-31947](https://github.com/magento/magento2/issues/31947) + + + +* Removed unneeded `csp_whitelist.xml` files. [GitHub-30607](https://github.com/magento/magento2/issues/30607) + +### Gift cards + + + +* `products` queries now correctly returns product data that contains gift card products with a `gift-card` URL key. + +### GraphQL + + + +* A missing `price_range` attribute has been added to the GraphQL `BundleItemOption` type. [GitHub-35010](https://github.com/magento/magento2/issues/35010) + + + +* The `products` query no longer returns attributes as an aggregation when the **Use in Search Results** Layered Navigation setting is disabled. [GitHub-33318](https://github.com/magento/magento2/issues/33318) + + + +* A `price_including_tax` field has been added to `CartItemPrices`. [GitHub-29057](https://github.com/magento/magento2/issues/29057) + + + +* The `new_from_data` and `new_to_datefields` in `ProductInterface` are no longer deprecated. [GitHub-34783](https://github.com/magento/magento2/issues/34783) + + + +* The `getCartDetails` query now returns only one payment methods for free orders. Previously, all active payment methods were returned in the query response. [GitHub-34036](https://github.com/magento/magento2/issues/34036) + + + +* The `categories` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) + + + +* The `products` query now returns `category_uid` as an aggregation as expected. [GitHub-32557](https://github.com/magento/magento2/issues/32557) + + + +* The `updateCartItems` query now removes products as expected when the product stock has reached the maximum stock amount. [GitHub-30220](https://github.com/magento/magento2/issues/30220) + + + +* The `urlResolver` query now resolves the path delimiter (/) correctly when multiple homepages have the same identifier. Previously, the query did not resolve the delimiter and returned null. [GitHub-33615](https://github.com/magento/magento2/issues/33615) + + + +* `customer` queries now fetch bundle product multi-select options as expected when querying orders. [GitHub-34717](https://github.com/magento/magento2/issues/34717) + + + +* {{ site.data.var.ee }} sessions no longer end after a GraphQL request is made. Previously, the `ClearCustomerSessionAfterRequest` plugin logged out the shopper. [GitHub-34550](https://github.com/magento/magento2/issues/34550) + + + +* The `products` query no longer returns price_range values for configurable products that are affected by disabled variants. [GitHub-33629](https://github.com/magento/magento2/issues/33629) + + + +* Configurable product price range in `products` query responses are now correctly calculated when the **Display Out of Stock Products** configuration setting is enabled. Previously, disabled options were taken into account in the minimum and maximum price calculation. + + + +* The `products` query now returns correctly filtered multiple categories when sorting by position. + + + +* `setShippingAddressesOnCart` requests now successfully validate region IDs. Previously, {{ site.data.var.ee }} threw an error when you used region ID instead of region code. + + + +* `products` queries now return only the categories associated with the store passed in the request. + + + +* The `categoryList` query now returns results that reflect the queried store's root category when the store specified in the header. Previously, categories from the default root category were included in results even though another store was specified in the header. + + + +* The `products` query no longer returns attributes as an aggregation when the **Use in Search Results Layered Navigation** setting is disabled. [GitHub-33318](https://github.com/magento/magento2/issues/33318) + + + +* A missing `price_range` attribute has been added to the GraphQL `BundleItemOption` type. [GitHub-35010](https://github.com/magento/magento2/issues/35010) + + + +* The `products` query no longer returns attributes as an aggregation when the **Use in Search Results** Layered Navigation setting is disabled. [GitHub-33318](https://github.com/magento/magento2/issues/33318) + + + +* A `price_including_tax` field has been added to `CartItemPrices`. [GitHub-29057](https://github.com/magento/magento2/issues/29057) + + + +* The `new_from_data` and `new_to_datefields` in `ProductInterface` are no longer deprecated. [GitHub-34783](https://github.com/magento/magento2/issues/34783) + + + +* The `cart` query now returns only one payment methods for free orders. Previously, all active payment methods were returned in the query response. [GitHub-34036](https://github.com/magento/magento2/issues/34036) + + + +* The `categories` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) + + + +* The `GetProductsInCategory` query now returns `category_uid` as an aggregation as expected. [GitHub-32557](https://github.com/magento/magento2/issues/32557) + + + +* The `updateCartItems` query now removes products as expected when the product stock has reached the maximum stock amount. [GitHub-30220](https://github.com/magento/magento2/issues/30220) + + + +* `customer` queries now fetch bundle product multi-select options as expected when querying orders. [GitHub-34717](https://github.com/magento/magento2/issues/34717) + + + +* `products` queries no longer returns price_range values for configurable products that are affected by disabled variants. [GitHub-33629](https://github.com/magento/magento2/issues/33629) + + + +* Added a plugin before the `collectQuoteTotals` call to ensure store credits aren't applied multiple times. + + + +* Creating a new special price schedule with the `POST /V1/products/special-price` endpoint now works as expected. Previously, the endpoint returned the message `Future Update already exists in this time range. Set a different range and try again`. + + + +* The `generateCustomerTokenAsAdmin` mutation now retrieves customer tokens as expected. Previously, tokens were not returned, and this error was returned: `Customer email provided does not exist`. + + + +* GraphQL schema is now valid when a custom `type` product attribute is defined. Previously, the schema was invalid because the `type` attribute on products types was overwritten by the custom `type` attribute. [GitHub-34929](https://github.com/magento/magento2/issues/34929) + + + +* Customers added or updated with the `createCustomer`, `createCustomerV2`, `updateCustomer`, or `updateCustomerV2` mutation are now added with active newsletter subscriptions. Previously, customers were unsubscribed from newsletters even when the request contained proper input parameters. [GitHub-33599](https://github.com/magento/magento2/issues/33599) + + + +* The `products` query for a specific store view now returns only categories that are in the specific website's root category in multi-site deployment. Previously, the query returned categories from the root categories of other websites. [GitHub-34570](https://github.com/magento/magento2/issues/34570) + + -### Backend +* The `products` query now returns only the sub category of provided category ID. Previously, it returned all categories. [GitHub-35220](https://github.com/magento/magento2/issues/35220) -### Bundle products + -### Cache +* The `customerOrders` query now responds as expected when the `gift_message` object is specified in the response but no gift message exists. Previously, the query returned this message: `Can't load gift message for order is returned`. [GitHub-28957](https://github.com/magento/magento2/issues/28957) -### Cart and checkout + -### Catalog +* Fixed a bug with the `catalog_category_product` indexer that caused the `products` query to return categories from another store. [GitHub-31253](https://github.com/magento/magento2/issues/31253) -### Catalog rule + -### Configurable products +* The `generateCustomerToken` mutation now creates an entry in the `customer_log` as expected after generating a customer token. [GitHub-33378](https://github.com/magento/magento2/issues/33378) -### Customer + -### Email +* The `/V1/products/base-prices` endpoint now works as expected with **Catalog Price Mode - Website**. [GitHub-30132](https://github.com/magento/magento2/issues/30132) -### Frameworks +### Google Analytics -### General fixes + -### GraphQL +* The Google Tag module has been added to the codebase, which supports the transition to Google Analytics 4 in July 2023. You can currently use and collect new data in your Google Universal Analytics properties, but Google Universal will reach end-of-life in July 2023. [GitHub-35204](https://github.com/magento/magento2/issues/35204), [GitHub-35376](https://github.com/magento/magento2/issues/35376) ### Image + + +* Images on product details pages no longer flicker, and images remain centered as expected. Previously, after a product detail page completed loading an image, the image visibly shifted downwards. + ### Import/export -### Index + + +* Related, upsell, and cross-sell product position in the export CSV is now correct after the deletion of a cross-sell product from the Admin before regenerating the CSV file. Previously, cross-sell product positions were not re-calculated after a cross-sell product was removed, and product position order was incorrect. + + + +* {{ site.data.var.ee }} now checks for a custom view before filtering columns when exporting reports. Previously, exported reports did not take into account custom views, and exported columns were incorrect. + + + +* {{ site.data.var.ee }} now successfully imports images with long file names. Previously, {{ site.data.var.ee }} did not import the image and threw this error: `Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in row(s):`. + + + +* Category ID attributes are now available in scheduled export filters. + + + +* Bundle products that contain a question mark (?) in the option title can now be imported successfully because of improvements to the query builder inside `populateExistingOptions` method. The option title is also displayed correctly. Previously, after the initial import, successive imports resulted in corrupted behavior and doubled options. Shoppers could not add the product to the cart, either. + + + +* Added validation for category names during import. Previously, {{ site.data.var.ee }} did not validate category names, which lead to errors when category names exceeded 255 characters. + + + +* Existing records in the `catalog_url_rewrite_product_category` table are now deleted before inserting new ones. Previously, the following error occurred during multi-store product import: `SQLSTATE[23000]: Integrity constraint violation`. [GitHub-34210](https://github.com/magento/magento2/issues/34210) ### Infrastructure + + +* The SQL query that updates affected quotes after a cart price rule is disabled has been optimized to avoid locking the entire quote table. + + + +* A deprecated Context Menu plugin has been removed from plugins list. + + + +* The TinyMCE editor toolbar-related logic in the Page Builder module has been updated as a result of introducing `delayedRender` logic for the toolbar in TinyMCE. + + + +* Race conditions no longer interrupt the creation of the `contentUpdated` event listener. [GitHub-32068](https://github.com/magento/magento2/issues/32068) + + + +* The `getTypeID` function now returns product type ID not product ID. [GitHub-35458](https://github.com/magento/magento2/issues/35458) + + + +* jQuery UI slider and `SelectMenu` mapping has been corrected in `vendor/magento/module-theme/view/base/requirejs-config.js`. + +* Observers placed on `sales_order_state_change_before` now support the retrieval of data from the order object. The `sales_order_state_change_before` `event` argument has been updated. [GitHub-26789](https://github.com/magento/magento2/issues/26789) + + + +* `indexer:reset` has been refactored to call `$indexer->invalidate()`. [GitHub-34988](https://github.com/magento/magento2/issues/34988) + #### Library removals and deprecations #### Library upgrades -### Invoice - ### Logging -### {{ site.data.var.ee }} coding standard + + +* Customer, customer address, and order actions are now logged correctly in the Admin action report. Previously, {{ site.data.var.ee }} did not log actions if the `postDispatch` handler had not been specified in configuration settings. -### Media Gallery +### {{ site.data.var.ee }} coding standard ### MFTF @@ -122,54 +859,477 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. Repetitive actions have been replaced with action groups in these tests: +`AdminConfigurableProductChildrenOutOfStockTest` [GitHub-32378](https://github.com/magento/magento2/issues/32378) +`AdminCreateStoreViewTest` [GitHub-34631](https://github.com/magento/magento2/issues/34631) + #### New tests +`AdminUnlockAdminUserEntityTest` [GitHub-34836](https://github.com/magento/magento2/issues/34836) + +`StorefrontNewsletterSubscriptionWithEnabledNeedToConfirmConfigTest` [GitHub-33344](https://github.com/magento/magento2/issues/33344) + #### Refactored tests +`AdminCancelTheCreatedOrderWithCashOnDeliveryPaymentMethodTest` [GitHub-33692](https://github.com/magento/magento2/issues/33692) + +### Newsletter + + + +* Logged-in customers are no longer marked as guests in Admin > **Marketing** > **Newsletter Subscribers**. + + + +* The newsletter subscription confirmation email now has the correct, store-specific email address in the **From** field if the customer is assigned to a non-default store and subscribed or unsubscribed from the Admin. Previously, the customer received an email with default email in **From** header. [GitHub-34963](https://github.com/magento/magento2/issues/34963) + + + +* The unsubscribe URL in the newsletter email template now works as expected. [GitHub-33310](https://github.com/magento/magento2/issues/33310) + ### Order + + +* You can now successfully create a new customer from a new order with custom customer attribute that are hidden from the storefront. Previously, {{ site.data.var.ee }} did not save the correct values for the custom customer attribute. + + + +* Reward points can now be refunded when store credit functionality is disabled. + + + +* Guest customer details are now saved successfully after an order is edited. Previously, some customer details were lost, including `customer_firstname` and `customer_lastname, x_forwarded_for`. + + + +* Merchants can no longer create a credit memo with a decimal total quantity when **Decimal qty** is disabled on a product or global setting level. Previously, merchants could create a credit memo for decimal total quantity where it was not applicable. + + + +* Filter by date now works properly for Invoices, shipments, credit memos, CMS pages, and CMS block grids when the timezone set in preferences differs from the timezone set on a local computer. Previously, the date was incorrectly parsed and the filtered results included data outside of the set date range. + + + +* {{ site.data.var.ee }} no longer changes custom email addresses that are assigned to orders when you change the main email address assigned to the customer on the Admin account edit page. Previously, when you edited the main email address for a customer, the new email address was assigned to every order created for that customer. [GitHub-34397](https://github.com/magento/magento2/issues/34397) + + + +* {{ site.data.var.ee }} now displays records from the requested store on the credit memos grid page in deployments running PHP 7.4. Previously, {{ site.data.var.ee }} threw the following error after you created a credit memo and tried to view it: `The store that was requested wasn't found. Verify the store and try again`. + + + +* {{ site.data.var.ee }} now displays credit memos on the credit memo grid page for orders created from store views whose name is prepended with numbers. Previously, {{ site.data.var.ee }} displayed the error: `The store that was requested wasn't found. Verify the store and try again. Exception in /var/www/html/vendor/magento/module-store/Model/StoreRepository.php:75`. [GitHub-35122](https://github.com/magento/magento2/issues/35122) + + + +* {{ site.data.var.ee }} now displays the free shipping cost (0) on the Admin and storefront invoice page totals. Previously, when shipping was zero for an order, {{ site.data.var.ee }} did not display the shipping amount in total on the invoice page shipping total. + + + +* {{ site.data.var.ee }} now displays correct order status during checkout when customer store credit is used. + + + +* The `increment_id` column in the `sales_order` table has been increased. Previously, third-party modules that assumed that `sales_order.increment_id` had a length of 50 characters saved only the first 32 characters of an `increment_id`. [GitHub-34521](https://github.com/magento/magento2/issues/34521) + ### Payment methods + + +* Administrators can now place an order on the Admin using the PayPal PayflowPro payment method. Previously, {{ site.data.var.ee }} displayed this error: `No such entity with cartId = 0`. + + + +* Payment Review page in the checkout workflow now displays the correct payment method name when payment is made with Venmo, PayPal Later, or PayPal. + + + +* The `cart` query no longer returns all active payment methods for free orders. [GitHub-34036](https://github.com/magento/magento2/issues/34036) + #### PayPal + + +* {{ site.data.var.ee }} now shows the correct customer name in a guest order paid for with PayPal. Previously, the customer name was displayed as Guest. + + + +* The resolver for the createPaypalExpressToken mutation has been updated to correctly use the value specified in the use_paypal_credit input field. Previously, it attempted to use an invalid `paypal_credit` field. [GitHub-35180](https://github.com/magento/magento2/issues/35180) + ### Performance + + +* The performance of dynamic block loading has been improved. Previously, visitor segments were not cached per website, which caused redundant queries to the database for the same data. + + + +* Redis cache management has been improved by the addition of TTL (expiration date) for configurable products’ associated product data caches. Previously, these caches were not evicted due to missing TTL values if Redis key eviction policy was configured to a volatile eviction policy. + + + +* The new `Grid Filter Condition Type` customer/customer address attribute controls how an attribute filter is matched against the attribute values in the database, Options include `Partial Match`, `Prefix Match`, and `Full Match`. + + + +* The Catalog Search fulltext indexer has been relocated outside the stores loop, which streamlines re-indexing. [GitHub-33984](https://github.com/magento/magento2/issues/33984) + + + +* Fixed issue with `array_merge` in loops. [GitHub-33929](https://github.com/magento/magento2/issues/33929) + ### Pricing -### ProductAlert + + +* Price attributes that have no value in the default scope (but that are defined at the store-view level) are now indexed properly. Previously, the SQL expressions that retrieves price attributes values from EAV table did not take into account the scenario in which the value was not defined in the default scope. + + + +* The price listed on the product detail page is now the same as the price listed in the checkout workflow for tier prices that differ by quantity selected (for example, a product priced differently based on buying 2 items versus 5 items). Previously, the checkout price reflected the price for the lowest product quantity. + +### Promotions + + + +* The **Times Used** value for a discount is no longer incremented twice when a guest customer places an order with a discount and subsequently registers an account. + +### ReCAPTCHA + +* The **Submit** button on the Login and Create an Account pages is now inactive until ReCaptcha is fully loaded. + +### Return Merchandise Authorizations (RMA) + + + +* The `GET /V1/returnsAttributeMetadata` endpoint now works correctly when the `rma_item` entity default attribute set ID differs from the default installation ID. Previously, this endpoint returned an empty result if these IDs differed. + + + +* The **Use Default** checkbox, which is used to enable RMA on the product edit page, now works as expected for Default Store. Previously, the checkbox was cleared immediately after the product was saved. + +### Rewards -### Product video + -### Reviews +* Reward points can now be refunded when store credit functionality is disabled. -### Sales + -### Sales Rule +* Checkout performance has been improved when reward points are applied. When `entity` is null, then the database query will not be executed because querying the `magento_reward_history` table is not mandatory under the circumstances. + + + +* Credit memos for guest orders no longer check for `customer_id`, which skips querying the `magento_reward_history' database table table for reward points. This change has improved performance. + +### Roles + +* The **Store** > **Configuration** > **Services** page now displays {{ site.data.var.ee }} Web API information as expected when Resource Access is set to **Custom** on the Role Resources tab. [GitHub-35506](https://github.com/magento/magento2/issues/35506) ### Search + + +* Filtering products by color swatch on the layered navigation displays the correct image for the products after the fix. + + + +* Elasticsearch queries now work as expected when `int` is configured as a searchable backend `type` attribute. Previously, {{ site.data.var.ee }} threw an `Elasticsearch\Common\Exceptions\BadRequest400Exception` exception. + + + +* You can now use search synonyms together with the **Minimum Terms to Match** parameter In Elasticsearch queries. Previously, if this parameter was specified in settings and search terms were added for specific keywords, the search returned no results. + + + +* {{ site.data.var.ee }} now displays an accurate search results suggestion count on the storefront in deployments where Search Suggestions and the **Show Results Count for Each Suggestion** setting are enabled. Previously, the count displayed next to the keywords was zero. + + + +* Products sorted by custom attributes on the Catalog page are now displayed in the expected order. Previously, products were sorted by their attribute option value ID, which reflects the order in which they they were added to the attribute. [GitHub-33810](https://github.com/magento/magento2/issues/33810) + + + +* Filtering products by color swatch in the layered navigation now displays the correct product images. Previously, the layered navigation `PageCache` key did not include filter parameters for configurable products. + + + +* Fixed PHP errors on the `catalogsearch/advanced/result` and  `catalogsearch/advanced/index` pages. Previously, {{ site.data.var.ee }} displayed this error when an array was passed in any advanced search string : `Warning: trim() expects parameter 1 to be string, array given | magento/module-catalog-search`. [GitHub-33586](https://github.com/magento/magento2/issues/33586) + ### Shipping -### Store + + +* {{ site.data.var.ee }} no longer throws an error when loading UPS shipping rates if no allowed shipping methods are selected. Previously, when a shopper entered a shipping address in the checkout workflow under these conditions, no other shipping methods were displayed, and {{ site.data.var.ee }} displayed an error on the storefront. [GitHub-34411](https://github.com/magento/magento2/issues/34411) + + + +* Virtual product prices are now excluded in calculation table rate shipping amount. Previously, shipping costs for these products were not calculated correctly.[GitHub-35185](https://github.com/magento/magento2/issues/35185) + + + +* Table rate shipping rates with zero price are now displayed correctly in the checkout workflow Order Summary block for orders that have had a discount coupon applied. Previously, the shipping method was not displayed. + +### Staging + + + +* {{ site.data.var.ee }} no longer cleans the full-page cache after applying a staging update for a sales rule in which the cached pages remain unchanged. + + + +* The content staging dashboard no longer displays inactive permanent updates. + + + +* Changing the end date for a staging update from the staging dashboard now successfully applies these changes to the staging update and its entities. (A queue has been introduced to process staging updates changes.) + + + +* Merchants can now remove an end date for a scheduled update or delete and recreate an update. Previously, when an end date was removed, an entity remained scheduled for that time. {{ site.data.var.ee }} now removes the outdated update for removed rollback. + + + +* Active schedule updates for a CMS page are now visible as expected in the Scheduled Changes section on the CMS page. + + + +* The `custom_design_to` attribute value is now updated as expected when a scheduled update is changed. Previously, two separate category design updates with no end time were treated as one. When one of the scheduled updates was deleted while the first one was running, the `custom_design_from` time value became greater than the `custom_design_to` time values in the next scheduled update. + + + +* Forms are now populated with data as expected after a scheduled update is edited. + + + +* The `vendor/magento/module-catalog-staging/Setup/Patch/Data/MigrateCatalogProducts.php` data patch no longer fails when the database includes product with custom options and the `special_from_date` attribute is set. + + + +* Changes are now saved during a second scheduled update when the changes are added by the running update. Previously, changes were not saved, and merchants needed to re-enter and save changes. + + + +* The Bulk actions log now displays information about failed `to be moved` scheduled updates. Previously, information about these failures was available in the `cron.log` file only. + + + +* Merchants are now restricted to using comma-separated prices when editing a product price in a scheduled update regardless of locale. Previously, prices that contained commas in a scheduled update were divided by 1000 depending on the locale. + + + +* Problems with DHL domestic shipping in deployments running PHP 8.1 have been resolved by requiring dutiable tags for international shipments only. ### Tax + + +* Fixed Product Tax (FPT) is now correctly displayed for products in the shopping cart. Previously, if multiple products in the shopping cart have **Fixed Product Tax (FPT)** and **Apply Tax To FPT** were enabled, all FPTs were assigned to the last product in the shopping cart and reset for other products. + + + +* The Fixed Product Tax (FPT) total for the order summary section of the checkout workflow is now calculated correctly. + + + +* {{ site.data.var.ee }} now updates the Excluding Tax tier price for a simple product on the product page as expected after the quantity of the simple product has changed. + + + +* Validation has been added to the store configuration page to verify if the selected country from the dropdown list is on the EU country list. The **Validate VAT Number** button is now visible only for EU countries. Previously, the button was visible for all countries, including the U.K. + + + +* Tier price are now calculated correctly when **Display Product Prices In Catalog** is set to either **Excluding Tax** or **Including and Excluding Tax**. Previously, the product details page displayed tier prices with taxes despite the setting. + + + +* Taxes are now applied correctly for orders to any valid address in storefronts using the Portuguese locale. [GitHub-34271](https://github.com/magento/magento2/issues/34271) + + + +* The `cart` query no longer includes tax when returning `subtotal_with_discount_excluding_tax`. [GitHub-33905](https://github.com/magento/magento2/issues/33905) + + + +* Web API requests for order data (`GET /V1/orders/`) no longer returns negative values for row totals. + ### Test -#### Unit tests + -### Theme +* Corrected errors with `Magento.GraphQl.CatalogGraphQl.ProductSearchTest.testSearchSuggestions` when run with AWS Elasticsearch configuration. + + + +* The `testCreateProductOnStoreLevel` integration test no longer causes a nested transaction on the database. + +* The following exception no longer occurs when running WebAPI tests for the Send Friend feature when product image has not set on PHP 8.1: `exception main.ERROR: /var/www/html/lib/internal/Magento/Framework/DataObject.php:131 strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated`. [GitHub-34864](https://github.com/magento/magento2/issues/34864) ### Translations and locales + + +* You can now use the Translate inline tool to edit the same element more that once. Previously, only the first change made using this tool was included. + + + +* The store view selector no longer blocks the translation pane when you edit Admin text or labels. You can now edit these features from the translation pane, and the interface displays these changes when you click **Submit**. + + + +* The Admin date-time format for Brazilian Portuguese and French locales is now valid. + + + +* Added a grave accent [ ` ] character to the name validator so that customer account can be created for first or last names that include this accent. + + + +* The text on the **Add to cart** button on the Product Details page now remains translated into the language specified in the associated locale. Translation files are now converted to corresponding JavaScript files based on the areas, themes, and locales when `translate_strategy=embedded`. Previously, the text reverted to English after the product was added to the cart. + + + +* Search Synonyms now respect their assigned store scope. Previously, a synonym assigned to a specific store was searchable on any other store. + + + +* Problems with the Filipino (Philippines) locale has been resolved. [GitHub-33996](https://github.com/magento/magento2/issues/33996) + ### UI + + +* Lengthy product names in the **Catalog** > **Products** grid are now word-wrapped instead of displayed in a single line. + + + +* You can now edit default stock from Admin **Stores** > **Inventory** > **Stocks**. Previously, a JavaScript error was displayed in the console when you tried to add or remove sources from default stock, although you could assign websites to default stock. + + + +* The minimal and maximum date-of-birth range is now saved as a correct timestamp and then converted from a valid timestamp to a valid date format. + + + +* The unavailability of `magento.com` no longer causes performance issues during Admin login. A timeout on the request to fetch release notification has been added. + + + +* The results of the Admin order, customer, and product grid filters now persist as expected when displayed in the Chrome browser. + + + +* You can now create a customer from the Admin when `Magento_LoginAsCustomerAdminUi` is enabled and **Store View To Login To** is set to manual selection. Previously, {{ site.data.var.ee }} threw this error: `(Magento\Framework\Exception\LocalizedException): Unable to get Customer ID`. [GitHub-33096](https://github.com/magento/magento2/issues/33096) + + + +* The Next arrow is now disabled as expected when a shopper reaches the last thumbnail image in the product image gallery. + + + +* The **Search by keyword** input field now has an `aria-label` element instead of a placeholder on the **Catalog** > **Product** page. + + + +* Category creation is now blocked for an administrator with restricted permissions on both the category and product edit pages. Previously, category creation was blocked on the category page, but was still possible through the product edit page. + + + +* The Privacy Policy link in Admin footer now links to the new Adobe Privacy Policy. + + + +* Administrators can now access Admin menu options when JavaScript bundling is enabled in production mode. [GitHub-35325](https://github.com/magento/magento2/issues/35325) + + + +* Administrators can now set the current user’s expiration date higher than 2038 and save the user successfully. Previously, the user whose expiration date was changed could not log back in after logging out. + + + +* {{ site.data.var.ee }} now displays an informative error message when an administrator tries to save an address with excessive street lines in Admin **Store** > **Attributes** > **Customer Address**. The administrator can now delete the extra address information and successfully save the address. Previously, {{ site.data.var.ee }} committed the extra lines but did not save the data. + + + +* The product listing view configuration in the database and local storage has been updated. Custom grid views are now saved during page reload and view changes. + + + +* You can now switch between store views when website restrictions are enabled. Previously, problems with the store view switcher prevented switching store views. + + + +* The favicon icon upload form now supports `.ico` file types. Previously, when you tried to upload a favicon file with this extension type in the Admin, {{ site.data.var.ee }} displayed this error: `Warning: imagecreatefromstring(): one parameter to a memory allocation multiplication is negative or zero, failing operation gracefully in /var/www/html/vendor/magento/module-media-storage/Model/File/Validator/Image.php on line 64`. [GitHub-34858](https://github.com/magento/magento2/issues/34858) + + + +* Corrected display issues with the drop-down Select menu in the Admin grid. [GitHub-35386](https://github.com/magento/magento2/issues/35386) + + + +* [GitHub-34430](https://github.com/magento/magento2/issues/34430) + ### URL rewrites + + +* URLs for a product in a specific store view only are now removed from the `url_rewrite` table and Admin after the attribute code visibility status for the specific store view is changed to **Not Visible Individually**. Previously, all URLs were removed for the product in the `url_rewrite` table. [GitHub-34937](https://github.com/magento/magento2/issues/34937) + +### Video + + + +* You can now use YouTube URL parameters using Page Builder to add a new video. Previously, these parameters were automatically removed from the URL. + + + +* You can now set a Vimeo video to run in the background in a `banner` element when CSP is set to `restrict mode`. Previously, {{ site.data.var.ee }} threw this JavaScript error when you tried to save the element: `Refused to connect to 'https://vimeo.com/api/v2/video/76979871.json' because it violates the following Content Security Policy directive`. + ### Web API framework + + +* Mutex has been implemented for orders to prevent race conditions during update by concurrent requests. Previously, race conditions during concurrent REST API calls resulted in an overwrite of shipping status information in the Admin Items Ordered table. + + + +* Dynamic bundle attributes are now updated correctly on the Mass Attribute Update page. Previously, the **Dynamic SKU** attribute remained set to **Yes** even though they were disabled on the Mass Update page. + + + +* Product image role inheritance is now preserved unless explicitly defined in the payload when updating a product in a specific store view via the REST API. + + + +* The Swagger schema (`/rest/schema`) now uses unique operation IDs. + + + +* Cart price rules created through the `POST /V1/salesRules/` endpoint now retain existing coupon code values after changing status from disabled to enabled. [GitHub-35298](https://github.com/magento/magento2/issues/35298) + + + +* Cart price rules created through the `POST /V1/salesRules/` endpoint now contain valid `from_date` and `to_date` values. [GitHub-35265](https://github.com/magento/magento2/issues/35265) + + + +* `CartItemInterface` now includes `customizable_options`. [GitHub-31180](https://github.com/magento/magento2/issues/31180) + + + +* REST API bulk PUT and DELETE requests now work as expected when the `Magento_ReCaptchaWebapiRest` module is enabled. [GitHub-35348](https://github.com/magento/magento2/issues/35348) + + + +* The Bulk Rest API now works with the `bySku` option for configurable products. Previously, it returned a 500 error. + ### Wish list + + +* Updating an item quantity from the wish list page now updates the quantity on the product detail page as expected. {{ site.data.var.ee }} now picks up the updated value from the product URL and populates the `qty` field of product detail page from the wishlist itself. + ## Known Issues ## Community contributions From 35dca6525afb45c8089385f582f67caae7ba6627 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Fri, 8 Jul 2022 16:59:24 -0500 Subject: [PATCH 038/491] removed duplicate issuedescriptions --- src/guides/v2.3/inventory/release-notes.md | 6 + .../v2.4/release-notes/b2b-release-notes.md | 4 + .../v2.4/release-notes/commerce-2-4-5.md | 120 +----- .../v2.4/release-notes/open-source-2-4-5.md | 383 ++++-------------- 4 files changed, 90 insertions(+), 423 deletions(-) diff --git a/src/guides/v2.3/inventory/release-notes.md b/src/guides/v2.3/inventory/release-notes.md index d53f0d2b620..82d010fbd6d 100644 --- a/src/guides/v2.3/inventory/release-notes.md +++ b/src/guides/v2.3/inventory/release-notes.md @@ -54,6 +54,12 @@ The release notes include: - {:.fix} The `ProductInterface.only_x_left_in_stock` field now returns 0 if inventory is 0. Previously, it returned null. [GitHub-29932](https://github.com/magento/magento2/issues/29932) +- {:.fix} You can now edit default stock from Admin **Stores** > **Inventory** > **Stocks**. Previously, a JavaScript error was displayed in the console when you tried to add or remove sources from default stock, although you could assign websites to default stock. + +- {:.fix} The category list product count is now correct when using inventory single-source mode with the **Display Out-Of-Stock Products** setting enabled. A new plugin now uses `AreProductsSalableInterface` and `StockConfigurationInterface` to determine the total number of products. Previously, the category product list returned the wrong product quantity. + +- {:.fix} Configurable products are now moved to the last position in the product listing after stock is updated when the **Move out of stock to the bottom** setting is enabled. A new custom database query has been implemented to negate Elasticsearch index sort order, which disregards Admin-enabled sort order. Previously, configurable products and their child products were not moved to the bottom of the list when this setting was enabled. + ### v1.2.4 {{site.data.var.im}} 1.2.4 (module version: `magento/inventory-metapackage = 1.2.4`) is supported with version 2.4.4 and compatible with version 2.4.0 of {{site.data.var.ce}}, {{site.data.var.ee}}, and {{site.data.var.ece}}. diff --git a/src/guides/v2.4/release-notes/b2b-release-notes.md b/src/guides/v2.4/release-notes/b2b-release-notes.md index 0662b280d27..5708b994f73 100644 --- a/src/guides/v2.4/release-notes/b2b-release-notes.md +++ b/src/guides/v2.4/release-notes/b2b-release-notes.md @@ -33,6 +33,10 @@ These release notes can include: - {:.fix} Pressing **Enter** on the Quick Order page in mobile mode after entering a valid product name or SKU now takes the shopper to the next field as expected. +- {:.fix} Company name is now visible as expected in the billing and shipping address sections of the checkout workflow. + +- {:.fix} Store credit is now unavailable when the Zero Subtotal Checkout payment method is disabled. Previously, the Store Credit checkbox was not functional during order placement from Admin. {{ site.data.var.ce }} did not place the order with the store credit and displayed this error: `The requested Payment Method is not available`. + ## {{ site.data.var.ee }} B2B - Adobe Commerce 2.4.4 - {:.fix} The time required to upgrade from {{ site.data.var.ee }} 2.3.x to {{ site.data.var.ee }} 2.4.x in deployments with more than 100,000 company roles has been substantially reduced. diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index af9e70bd7af..42ac22c7255 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -279,14 +279,6 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. ### Cart and checkout - - -* The `Parent Only` attribute scope is now used properly in the Cart Rule condition. - - - -* Company name is now visible as expected in the billing and shipping address sections of the checkout workflow. - * The address search pop-up on the billing step of the checkout workflow no longer causes DOM errors. @@ -335,18 +327,10 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * The mini cart now displays previously added products after a session timeout when **Enable Persistence** is enabled . [GitHub-35183](https://github.com/magento/magento2/issues/35183) - - -* Store credit is now unavailable when the Zero Subtotal Checkout payment method is disabled. Previously, the Store Credit checkbox was not functional during order placement from Admin. {{ site.data.var.ee }} did not place the order with the store credit and displayed this error: `The requested Payment Method is not available`. - * Merchants can now create a credit memo in which **Refund Shipping (Incl. Tax)** is set to -0.01 and can now set this amount to 0. Previously, the credit memo could not be created under these conditions. - - -* Coupons that are set for one-time use can now be redeemed only once as expected. [GitHub-35077](https://github.com/magento/magento2/issues/35077) - ### Cart price rule @@ -389,7 +373,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Triggers are now restored as expected to the `catalogrule_product_price` table after a full reindex. Previously, triggers were removed from the `catalogrule_product_price` table after a `catalogrule_rule` or `catalogrule_product` full re-index. +* Triggers are now restored as expected to the `catalogrule_product_price` table after a full re-index. Previously, triggers were removed from the `catalogrule_product_price` table after a `catalogrule_rule` or `catalogrule_product` full re-index. @@ -419,10 +403,6 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * {{ site.data.var.ee }} now provides validation error messages when you try to add a product URL key with a trailing hyphen. Informative tooltip text is also available. - - -* The category list product count is now correct when using inventory single-source mode with the **Display Out-Of-Stock Products** setting enabled. A new plugin now uses `AreProductsSalableInterface` and `StockConfigurationInterface` to determine the total number of products. Previously, the category product list returned the wrong product quantity. - * The new `ConfigurableWishlistItem.configured_variant` field has replaced the `ConfigurableWishlistItem.child_sku` field. The latter field triggered an internal error when a customer wishlist contained an un-configured configurable product. @@ -509,14 +489,10 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * {{ site.data.var.ee }} now displays configurable attributes as expected during the creation of global `select` attributes via a patch script. Previously, eligible global attributes were hidden. - + * The `addConfigurableProductsToCart` mutation can now be used to add configurable products with custom options. Previously, {{ site.data.var.ee }} threw this error: `Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62`. [GitHub-28860](https://github.com/magento/magento2/issues/28860) - - -* Configurable products are now moved to the last position in the product listing after stock is updated when the **Move out of stock to the bottom** setting is enabled. A new custom database query has been implemented to negate Elasticsearch index sort order, which disregards Admin-enabled sort order. Previously, configurable products and their child products were not moved to the bottom of the list when this setting was enabled. - * {{ site.data.var.ee }} now correctly displays a configurable product’s stock status, available configurations, and displayed price when the availability of one of the configurable product’s child product is changed by a scheduled update. Previously, when a configurable product had two children and the availability of one child product was disabled with a scheduled update, the parent product’s stock status was incorrectly displayed as **Out of Stock** when the update was active, After the update completed, the displayed price and the availability of its configurations was miscalculated. @@ -615,15 +591,11 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* Knockout text containing single quotes are now translatable. [GitHub-34319](https://github.com/magento/magento2/issues/34319) +* Knockout text containing single quotes is now translatable. [GitHub-34319](https://github.com/magento/magento2/issues/34319) -* A `TypeError` in `magento2/app/code/Magento/Security/Model/AdminSessionsManager.php` has been corrected from int to string. [GitHub-34415](https://github.com/magento/magento2/issues/34415) - - - -* Merchants can now successfully upgrade from an {{ site.data.var.ee }} 2.4.2 deployment with Klarna to {{ site.data.var.ee }} 2.4.3. [GitHub-33760](https://github.com/magento/magento2/issues/33760) +* A `TypeError` in `magento2/app/code/Magento/Security/Model/AdminSessionsManager.php` has been corrected from `int` to `string`. [GitHub-34415](https://github.com/magento/magento2/issues/34415) @@ -643,11 +615,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The ReadMe files for the GraphQl-GroupedProductGraphQl modules have been updated. [GitHub-34951](https://github.com/magento/magento2/issues/34951) - - - -* [GitHub-34430](https://github.com/magento/magento2/issues/34430) +* The ReadMe files for the `GraphQl-GroupedProductGraphQl` modules have been updated. [GitHub-34951](https://github.com/magento/magento2/issues/34951) @@ -659,10 +627,6 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * Setting the maximum session size to 0 (Admin **Store** > **Settings** > **Configuration - Advanced**) no longer logs out the administrator. [GitHub-35312](https://github.com/magento/magento2/issues/35312) - - -* {{ site.data.var.ee }} sessions no longer end after a GraphQL request is made. Previously, the `ClearCustomerSessionAfterRequest` plugin logged out the shopper. [GitHub-34550](https://github.com/magento/magento2/issues/34550) - * Customer address attributes configuration settings are now loaded correctly based the website the customer is assigned to when you add a new customer address from the Admin that is assigned to a non-default website. @@ -763,13 +727,9 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * The `new_from_data` and `new_to_datefields` in `ProductInterface` are no longer deprecated. [GitHub-34783](https://github.com/magento/magento2/issues/34783) - - -* The `getCartDetails` query now returns only one payment methods for free orders. Previously, all active payment methods were returned in the query response. [GitHub-34036](https://github.com/magento/magento2/issues/34036) - -* The `categories` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) +* The `categories` query no longer throws an exception when fetching a list of categories one of which contains an image that cannot be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) @@ -793,7 +753,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The `products` query no longer returns price_range values for configurable products that are affected by disabled variants. [GitHub-33629](https://github.com/magento/magento2/issues/33629) +* The `products` query no longer returns `price_range` values for configurable products that are affected by disabled variants. [GitHub-33629](https://github.com/magento/magento2/issues/33629) @@ -813,59 +773,23 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The `categoryList` query now returns results that reflect the queried store's root category when the store specified in the header. Previously, categories from the default root category were included in results even though another store was specified in the header. +* The `categoryList` query now returns results that reflect the queried store's root category when the store is specified in the header. Previously, categories from the default root category were included in results even though another store was specified in the header. * The `products` query no longer returns attributes as an aggregation when the **Use in Search Results Layered Navigation** setting is disabled. [GitHub-33318](https://github.com/magento/magento2/issues/33318) - - -* A missing `price_range` attribute has been added to the GraphQL `BundleItemOption` type. [GitHub-35010](https://github.com/magento/magento2/issues/35010) - - - -* The `products` query no longer returns attributes as an aggregation when the **Use in Search Results** Layered Navigation setting is disabled. [GitHub-33318](https://github.com/magento/magento2/issues/33318) - - - -* A `price_including_tax` field has been added to `CartItemPrices`. [GitHub-29057](https://github.com/magento/magento2/issues/29057) - - - -* The `new_from_data` and `new_to_datefields` in `ProductInterface` are no longer deprecated. [GitHub-34783](https://github.com/magento/magento2/issues/34783) - * The `cart` query now returns only one payment methods for free orders. Previously, all active payment methods were returned in the query response. [GitHub-34036](https://github.com/magento/magento2/issues/34036) - - -* The `categories` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) - - - -* The `GetProductsInCategory` query now returns `category_uid` as an aggregation as expected. [GitHub-32557](https://github.com/magento/magento2/issues/32557) - - - -* The `updateCartItems` query now removes products as expected when the product stock has reached the maximum stock amount. [GitHub-30220](https://github.com/magento/magento2/issues/30220) - - - -* `customer` queries now fetch bundle product multi-select options as expected when querying orders. [GitHub-34717](https://github.com/magento/magento2/issues/34717) - - - -* `products` queries no longer returns price_range values for configurable products that are affected by disabled variants. [GitHub-33629](https://github.com/magento/magento2/issues/33629) - -* Added a plugin before the `collectQuoteTotals` call to ensure store credits aren't applied multiple times. +* Added a plugin before the `collectQuoteTotals` call to ensure store credits are not applied multiple times. -* Creating a new special price schedule with the `POST /V1/products/special-price` endpoint now works as expected. Previously, the endpoint returned the message `Future Update already exists in this time range. Set a different range and try again`. +* Creating a new special price schedule with the `POST /V1/products/special-price` endpoint now works as expected. Previously, the endpoint returned this error: `Future Update already exists in this time range. Set a different range and try again`. @@ -885,7 +809,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The `products` query now returns only the sub category of provided category ID. Previously, it returned all categories. [GitHub-35220](https://github.com/magento/magento2/issues/35220) +* The `products` query now returns only the subcategory of provided category ID. Previously, it returned all categories. [GitHub-35220](https://github.com/magento/magento2/issues/35220) @@ -947,10 +871,6 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. ### Infrastructure - - -* The SQL query that updates affected quotes after a cart price rule is disabled has been optimized to avoid locking the entire quote table. - * A deprecated Context Menu plugin has been removed from plugins list. @@ -1028,11 +948,7 @@ Repetitive actions have been replaced with action groups in these tests: -* You can now successfully create a new customer from a new order with custom customer attribute that are hidden from the storefront. Previously, {{ site.data.var.ee }} did not save the correct values for the custom customer attribute. - - - -* Reward points can now be refunded when store credit functionality is disabled. +* You can now successfully create a new customer from a new order with custom customer attributes that are hidden from the storefront. Previously, {{ site.data.var.ee }} did not save the correct values for the custom customer attribute. @@ -1340,10 +1256,6 @@ Repetitive actions have been replaced with action groups in these tests: * Lengthy product names in the **Catalog** > **Products** grid are now word-wrapped instead of displayed in a single line. - - -* You can now edit default stock from Admin **Stores** > **Inventory** > **Stocks**. Previously, a JavaScript error was displayed in the console when you tried to add or remove sources from default stock, although you could assign websites to default stock. - * The minimal and maximum date-of-birth range is now saved as a correct timestamp and then converted from a valid timestamp to a valid date format. @@ -1368,10 +1280,6 @@ Repetitive actions have been replaced with action groups in these tests: * The **Search by keyword** input field now has an `aria-label` element instead of a placeholder on the **Catalog** > **Product** page. - - -* Category creation is now blocked for an administrator with restricted permissions on both the category and product edit pages. Previously, category creation was blocked on the category page, but was still possible through the product edit page. - * The Privacy Policy link in Admin footer now links to the new Adobe Privacy Policy. @@ -1430,10 +1338,6 @@ Repetitive actions have been replaced with action groups in these tests: * Mutex has been implemented for orders to prevent race conditions during update by concurrent requests. Previously, race conditions during concurrent REST API calls resulted in an overwrite of shipping status information in the Admin Items Ordered table. - - -* Dynamic bundle attributes are now updated correctly on the Mass Attribute Update page. Previously, the **Dynamic SKU** attribute remained set to **Yes** even though they were disabled on the Mass Update page. - * Product image role inheritance is now preserved unless explicitly defined in the payload when updating a product in a specific store view via the REST API. diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index a21f5d8d5aa..7f499ed2192 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -69,19 +69,19 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* You can now rename a data patch and add the old class name as an alias in the `patch_list` database table. {{ site.data.var.ee }} now checks whether data patch aliases already existed in the database before applying the patch. Previously, {{ site.data.var.ee }} threw an error under these conditions. +* You can now rename a data patch and add the old class name as an alias in the `patch_list` database table. {{ site.data.var.Ce }} now checks whether data patch aliases already existed in the database before applying the patch. Previously, {{ site.data.var.ce }} threw an error under these conditions. -* {{ site.data.var.ee }} no longer throws an exception when you try to change the Admin URL to a custom URL from the Admin. Previously, after changing the Admin URL, you could not log in. [GitHub-35416](https://github.com/magento/magento2/issues/35416) +* {{ site.data.var.ce }} no longer throws an exception when you try to change the Admin URL to a custom URL from the Admin. Previously, after changing the Admin URL, you could not log in. [GitHub-35416](https://github.com/magento/magento2/issues/35416) -* Merchants can now successfully upgrade from an {{ site.data.var.ee }} 2.4.2 deployment with Klarna to {{ site.data.var.ee }} 2.4.3. [GitHub-33760](https://github.com/magento/magento2/issues/33760) +* Merchants can now successfully upgrade from an {{ site.data.var.ce }} 2.4.2 deployment with Klarna to {{ site.data.var.ce }} 2.4.3. [GitHub-33760](https://github.com/magento/magento2/issues/33760) -* The path to {{ site.data.var.ee }} Analytics is no longer hardcoded. Previously, this hardcoded path resulted in conflicts when multiple {{ site.data.var.ee }} instances were installed on one server. [GitHub-29373](https://github.com/magento/magento2/issues/29373) +* The path to {{ site.data.var.ce }} Analytics is no longer hardcoded. Previously, this hardcoded path resulted in conflicts when multiple {{ site.data.var.ce }} instances were installed on one server. [GitHub-29373](https://github.com/magento/magento2/issues/29373) ### Accessibility @@ -127,13 +127,13 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* {{ site.data.var.ee }} now correctly calculates the cart total for a bundle product when the Product Subselect rule is applied. +* {{ site.data.var.ce }} now correctly calculates the cart total for a bundle product when the Product Subselect rule is applied. ### Cache -* Full page cache is no longer shown as disabled in the Admin when the {{ site.data.var.ee }} cache is flushed and `use_stale_cache` is enabled. +* Full page cache is no longer shown as disabled in the Admin when the {{ site.data.var.ce }} cache is flushed and `use_stale_cache` is enabled. @@ -141,14 +141,6 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. ### Cart and checkout - - -* The `Parent Only` attribute scope is now used properly in the Cart Rule condition. - - - -* Company name is now visible as expected in the billing and shipping address sections of the checkout workflow. - * The address search pop-up on the billing step of the checkout workflow no longer causes DOM errors. @@ -159,7 +151,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* Permission exceptions are now handled for restricted products that are added by SKU. Shoppers are now given an appropriate message on the storefront, and the quantity field in the error table is disabled. Previously, {{ site.data.var.ee }} threw an exception like this: `There has been an error processing your request`. +* Permission exceptions are now handled for restricted products that are added by SKU. Shoppers are now given an appropriate message on the storefront, and the quantity field in the error table is disabled. Previously, {{ site.data.var.ce }} threw an exception like this: `There has been an error processing your request`. @@ -167,7 +159,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* Shoppers with global account sharing are no longer required to log in again to a secondary website in a multisite deployment when guest checkout is disabled. Customer data is now loaded when the shopper navigates to the subdomain. The shopper is no longer asked to log in again, and the previous cart contents are displayed. +* Shoppers with global account sharing are no longer required to log in again to a secondary website in a multi-site deployment when guest checkout is disabled. Customer data is now loaded when the shopper navigates to the subdomain. The shopper is no longer asked to log in again, and the previous cart contents are displayed. @@ -175,7 +167,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* The `cart` query no longer return null responses when a product is out of stock. A new `errors` element containing the error message was introduced to the response. Previously, when you ran a query with an out-of-stock product, {{ site.data.var.ee }} displayed a `null` value under the `items` section in the response. See [cart query](https://devdocs.magento.com/guides/v2.4/graphql/queries/cart.html). +* The `cart` query no longer return null responses when a product is out of stock. A new `errors` element containing the error message was introduced to the response. Previously, when you ran a query with an out-of-stock product, {{ site.data.var.ce }} displayed a `null` value under the `items` section in the response. See [cart query](https://devdocs.magento.com/guides/v2.4/graphql/queries/cart.html). @@ -197,18 +189,10 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. * The mini cart now displays previously added products after a session timeout when **Enable Persistence** is enabled . [GitHub-35183](https://github.com/magento/magento2/issues/35183) - - -* Store credit is now unavailable when the Zero Subtotal Checkout payment method is disabled. Previously, the Store Credit checkbox was not functional during order placement from Admin. {{ site.data.var.ee }} did not place the order with the store credit and displayed this error: `The requested Payment Method is not available`. - * Merchants can now create a credit memo in which **Refund Shipping (Incl. Tax)** is set to -0.01 and can now set this amount to 0. Previously, the credit memo could not be created under these conditions. - - -* Coupons that are set for one-time use can now be redeemed only once as expected. [GitHub-35077](https://github.com/magento/magento2/issues/35077) - ### Cart price rule @@ -221,10 +205,6 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. * Product URL keys now remain unchanged when updating product name via `PUT /V1/products/` for a store view. Previously, a new URL key was generated based on the new product name and assigned to the product, which overrode the URL key in that store view. - - -* Rule-based upsell products are no longer shown twice on the product page. - * Adding a product to a category from the Page Builder product widget set to carousel mode no longer triggers a page reload. @@ -243,7 +223,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* You can now successfully switch between list and grid views of multi-page product lists. Previously, when you navigated to the last page of a multi-page product list view before switching to the grid view, {{ site.data.var.ee }} displayed this error: `Unfortunately there are no products in this category on our website currently`. +* You can now successfully switch between list and grid views of multi-page product lists. Previously, when you navigated to the last page of a multi-page product list view before switching to the grid view, {{ site.data.var.ce }} displayed this error: `Unfortunately there are no products in this category on our website currently`. @@ -251,16 +231,12 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* Triggers are now restored as expected to the `catalogrule_product_price` table after a full reindex. Previously, triggers were removed from the `catalogrule_product_price` table after a `catalogrule_rule` or `catalogrule_product` full re-index. +* Triggers are now restored as expected to the `catalogrule_product_price` table after a full re-index. Previously, triggers were removed from the `catalogrule_product_price` table after a `catalogrule_rule` or `catalogrule_product` full re-index. * Category rules that are used to assign products to categories no longer randomly change. - - -* {{ site.data.var.ee }} no longer throws an error when a category rule assigns a product to a category that is subsequently sorted in a multi-site deployment. - * Categories can no longer be updated globally by an administrator with scope-restricted access. Previously, when multiple websites used the same category but different products, and an administrator with permission restricted to one store changed products in the category, the product selection also changed for other stores. @@ -269,25 +245,17 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. * The product details page now displays the correct price when a non-default currency for a specified locale is used. Previously, numbers were not localized as expected on the storefront. - - -* Products can now be enabled using a scheduled update. - * The same error message is now displayed by the API and on the storefront when trying to retrieve the tier prices of a product with duplicate records. Previously, `PUT /V1/products/tier-prices` returned an incorrect error message. -* {{ site.data.var.ee }} now provides validation error messages when you try to add a product URL key with a trailing hyphen. Informative tooltip text is also available. - - - -* The category list product count is now correct when using inventory single-source mode with the **Display Out-Of-Stock Products** setting enabled. A new plugin now uses `AreProductsSalableInterface` and `StockConfigurationInterface` to determine the total number of products. Previously, the category product list returned the wrong product quantity. +* {{ site.data.var.ce }} now provides validation error messages when you try to add a product URL key with a trailing hyphen. Informative tooltip text is also available. -* The new `ConfigurableWishlistItem.configured_variant` field has replaced the `ConfigurableWishlistItem.child_sku` field. The latter field triggered an internal error when a customer wishlist contained an un-configured configurable product. +* The new `ConfigurableWishlistItem.configured_variant` field has replaced the `ConfigurableWishlistItem.child_sku` field. The latter field triggered an internal error when a customer wish list contained an un-configured configurable product. @@ -295,11 +263,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* When the `Synchronize widget products with backend storage` setting is enabled, {{ site.data.var.ee }} adds recently view product data into the `catalog_product_frontend_action` database table. It includes the customer or visitor ID when adding records. The `recently_viewed_product` section in the response is now empty if customer ID and visitor ID are null. As a result, when the `customer/section/load` Ajax request is sent, {{ site.data.var.ee }} can correctly filter recently viewed products based on customer or visitor ID. Previously, the response included all the data available in the `catalog_product_frontend_action` database table because there was no check for an empty customer or visitor ID. - - - -* Category rules with a `Quantity` attribute for configurable products now work correctly when staging is implemented. Previously, when products had different values for `row_id` and `entity_id` in the `catalog_product_entity` table due to staging updates, the Visual Merchandiser **Match product by rule** functionality did not correctly filter the products. +* When the `Synchronize widget products with backend storage` setting is enabled, {{ site.data.var.ce }} adds recently view product data into the `catalog_product_frontend_action` database table. It includes the customer or visitor ID when adding records. The `recently_viewed_product` section in the response is now empty if customer ID and visitor ID are null. As a result, when the `customer/section/load` Ajax request is sent, {{ site.data.var.ce }} can correctly filter recently viewed products based on customer or visitor ID. Previously, the response included all the data available in the `catalog_product_frontend_action` database table because there was no check for an empty customer or visitor ID. @@ -311,7 +275,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* Product lists are now rendered correctly in the Admin. Previously, the product list did not render, and {{ site.data.var.ee }} displayed this error: `Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "" already exists`. [GitHub-33145](https://github.com/magento/magento2/issues/33145) +* Product lists are now rendered correctly in the Admin. Previously, the product list did not render, and {{ site.data.var.ce }} displayed this error: `Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "" already exists`. [GitHub-33145](https://github.com/magento/magento2/issues/33145) @@ -323,7 +287,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* You can now change the per-page product limit displayed within a category when **Remember Category Pagination** is enabled. Previously, the cookie `form_key` and UI `form_key` differed, and {{ site.data.var.ee }} displayed this error: `Invalid Form Key. Please refresh the page`. +* You can now change the per-page product limit displayed within a category when **Remember Category Pagination** is enabled. Previously, the cookie `form_key` and UI `form_key` differed, and {{ site.data.var.ce }} displayed this error: `Invalid Form Key. Please refresh the page`. @@ -335,25 +299,15 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* {{ site.data.var.ee }} now displays an error message as expected when you try to create an attribute from the product page without completing the Admin field. [GitHub-33099](https://github.com/magento/magento2/issues/33099) +* {{ site.data.var.ce }} now displays an error message as expected when you try to create an attribute from the product page without completing the Admin field. [GitHub-33099](https://github.com/magento/magento2/issues/33099) * Product ratings are now correct on all catalog product lists when the home page contains multiple catalog lists. [GitHub-33867](https://github.com/magento/magento2/issues/33867) -### CMS content - - - -* Merchants can no longer edit an active scheduled update from the entity edit page. - - - -* An administrator with restricted permissions can now view a CMS page in the CMS hierarchy after a scheduled update. - ### Configurable products -* {{ site.data.var.ee }} now displays the correct product price for a configurable product with a selected option after changing its quantity on product details page. Previously, the price was reset to the initial value after the quantity changed. +* {{ site.data.var.ce }} now displays the correct product price for a configurable product with a selected option after changing its quantity on product details page. Previously, the price was reset to the initial value after the quantity changed. @@ -365,25 +319,17 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* Multi-select attributes are now saved correctly during product edit. Previously, {{ site.data.var.ee }} saved the default option for non-selected attributes as well as selected attributes when saving a product. +* Multi-select attributes are now saved correctly during product edit. Previously, {{ site.data.var.ce }} saved the default option for non-selected attributes as well as selected attributes when saving a product. -* {{ site.data.var.ee }} now displays configurable attributes as expected during the creation of global `select` attributes via a patch script. Previously, eligible global attributes were hidden. - - - -* The `addConfigurableProductsToCart` mutation can now be used to add configurable products with custom options. Previously, {{ site.data.var.ee }} threw this error: `Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62`. [GitHub-28860](https://github.com/magento/magento2/issues/28860) - - +* {{ site.data.var.ce }} now displays configurable attributes as expected during the creation of global `select` attributes via a patch script. Previously, eligible global attributes were hidden. -* Configurable products are now moved to the last position in the product listing after stock is updated when the **Move out of stock to the bottom** setting is enabled. A new custom database query has been implemented to negate Elasticsearch index sort order, which disregards Admin-enabled sort order. Previously, configurable products and their child products were not moved to the bottom of the list when this setting was enabled. + - +* The `addConfigurableProductsToCart` mutation can now be used to add configurable products with custom options. Previously, {{ site.data.var.ce }} threw this error: `Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62`. [GitHub-28860](https://github.com/magento/magento2/issues/28860) -* {{ site.data.var.ee }} now correctly displays a configurable product’s stock status, available configurations, and displayed price when the availability of one of the configurable product’s child product is changed by a scheduled update. Previously, when a configurable product had two children and the availability of one child product was disabled with a scheduled update, the parent product’s stock status was incorrectly displayed as **Out of Stock** when the update was active, After the update completed, the displayed price and the availability of its configurations was miscalculated. - -* You can now re-order configurable products with optional custom options. Previously, re-order attempts failed, and meant displayed this error: `Some of the selected options are not currently available`. [GitHub-35409](https://github.com/magento/magento2/issues/35409) +* You can now re-order configurable products with optional custom options. Previously, re-order attempts failed, and meant displayed this error: `Some of the selected options are not currently available`. [GitHub-35409](https://github.com/magento/magento2/issues/35409) @@ -393,13 +339,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* {{ site.data.var.ee }} now displays predefined EAV system attributes correctly according to the website setting on the storefront. Previously, website-level customer attributes that were enabled for one website and disabled for another were displayed as enabled for both websites. - -### Customer segment - - - -* Customer segment-specific Related Product rules now work as expected. The issue has been fixed by calling a method to add a visitor-segment relation for a specific website. Previously, the segments for this rule fetched only on the basis of registered customers and websites. +* {{ site.data.var.ce }} now displays predefined EAV system attributes correctly according to the website setting on the storefront. Previously, website-level customer attributes that were enabled for one website and disabled for another were displayed as enabled for both websites. ### Downloadable @@ -419,7 +359,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* {{ site.data.var.ee }} now displays an error message on the Shipping page when a shopper enters an invalid email format after the shopper clicks **Place Order**. Previously, the error message was displayed on the Payment page. [GitHub-33590](https://github.com/magento/magento2/issues/33590 +* {{ site.data.var.ce }} now displays an error message on the Shipping page when a shopper enters an invalid email format after the shopper clicks **Place Order**. Previously, the error message was displayed on the Payment page. [GitHub-33590](https://github.com/magento/magento2/issues/33590 ### Frameworks @@ -437,7 +377,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* {{ site.data.var.ee }} no longer throws an SQL error after assigning a new source to a product and changing its quantity. [GitHub-35262](https://github.com/magento/magento2/issues/35262) +* {{ site.data.var.ce }} no longer throws an SQL error after assigning a new source to a product and changing its quantity. [GitHub-35262](https://github.com/magento/magento2/issues/35262) @@ -445,7 +385,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* The `updateCartCurrency` function now sets string instead of an object inside the cart object. Previously, {{ site.data.var.ee }} did not load a quote using `getQuote` because the `updateCartCurrency` function set an object instead of a string inside the cart object. [GitHub-34199](https://github.com/magento/magento2/issues/34199) +* The `updateCartCurrency` function now sets string instead of an object inside the cart object. Previously, {{ site.data.var.ce }} did not load a quote using `getQuote` because the `updateCartCurrency` function set an object instead of a string inside the cart object. [GitHub-34199](https://github.com/magento/magento2/issues/34199) @@ -453,7 +393,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* {{ site.data.var.ee }} no longer displays a `preg_replace()` error on the Admin. The third argument (`$subject`) is now of type `array|string` instead of `bool`. +* {{ site.data.var.ce }} no longer displays a `preg_replace()` error on the Admin. The third argument (`$subject`) is now of type `array|string` instead of `bool`. @@ -461,15 +401,15 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* {{ site.data.var.ee }} no longer throws the following error when you create a plugin for any method of class `vendor/magento/module-backend/Model/Menu.php`: `Error: Call to undefined method ReflectionUnionType::getName()`. [GitHub-35292](https://github.com/magento/magento2/issues/35292) +* {{ site.data.var.ce }} no longer throws the following error when you create a plugin for any method of class `vendor/magento/module-backend/Model/Menu.php`: `Error: Call to undefined method ReflectionUnionType::getName()`. [GitHub-35292](https://github.com/magento/magento2/issues/35292) -* {{ site.data.var.ee }} now returns a 404 error instead of a 500 error when you navigate to `/checkout/sidebar/updateItemQty/?item_qty=error` on the storefront. Previously, this error was thrown: `Warning: A non-numeric value encountered in /vendor/magento/module-checkout/Controller/Sidebar/UpdateItemQty.php on line 69`. [GitHub-34380](https://github.com/magento/magento2/issues/34380) +* {{ site.data.var.ce }} now returns a 404 error instead of a 500 error when you navigate to `/checkout/sidebar/updateItemQty/?item_qty=error` on the storefront. Previously, this error was thrown: `Warning: A non-numeric value encountered in /vendor/magento/module-checkout/Controller/Sidebar/UpdateItemQty.php on line 69`. [GitHub-34380](https://github.com/magento/magento2/issues/34380) -* {{ site.data.var.ee }} no longer triggers a `trim(): Passing null to parameter #1 ($string) of type string is deprecated` error when the AMPQ connection is configured without SSL configuration. +* {{ site.data.var.ce }} no longer triggers a `trim(): Passing null to parameter #1 ($string) of type string is deprecated` error when the AMPQ connection is configured without SSL configuration. @@ -477,15 +417,11 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* Knockout text containing single quotes are now translatable. [GitHub-34319](https://github.com/magento/magento2/issues/34319) +* Knockout text containing single quotes is now translatable. [GitHub-34319](https://github.com/magento/magento2/issues/34319) -* A `TypeError` in `magento2/app/code/Magento/Security/Model/AdminSessionsManager.php` has been corrected from int to string. [GitHub-34415](https://github.com/magento/magento2/issues/34415) - - - -* Merchants can now successfully upgrade from an {{ site.data.var.ee }} 2.4.2 deployment with Klarna to {{ site.data.var.ee }} 2.4.3. [GitHub-33760](https://github.com/magento/magento2/issues/33760) +* A `TypeError` in `magento2/app/code/Magento/Security/Model/AdminSessionsManager.php` has been corrected from `int` to `string`. [GitHub-34415](https://github.com/magento/magento2/issues/34415) @@ -505,11 +441,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* The ReadMe files for the GraphQl-GroupedProductGraphQl modules have been updated. [GitHub-34951](https://github.com/magento/magento2/issues/34951) - - - -* [GitHub-34430](https://github.com/magento/magento2/issues/34430) +* The ReadMe files for the `GraphQl-GroupedProductGraphQl` modules have been updated. [GitHub-34951](https://github.com/magento/magento2/issues/34951) @@ -521,25 +453,13 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. * Setting the maximum session size to 0 (Admin **Store** > **Settings** > **Configuration - Advanced**) no longer logs out the administrator. [GitHub-35312](https://github.com/magento/magento2/issues/35312) - - -* {{ site.data.var.ee }} sessions no longer end after a GraphQL request is made. Previously, the `ClearCustomerSessionAfterRequest` plugin logged out the shopper. [GitHub-34550](https://github.com/magento/magento2/issues/34550) - * Customer address attributes configuration settings are now loaded correctly based the website the customer is assigned to when you add a new customer address from the Admin that is assigned to a non-default website. - - -* Category creation is now blocked for a restricted admin on both the Category page and Product Edit page. Previously, category creation was blocked on the category page, but was still possible through the Product Edit page. - -* {{ site.data.var.ee }} no longer throws an exception when you add a bundle product through Page Builder. - - - -* Categories can now be selected from the category tree as a condition for a customer segment. +* {{ site.data.var.ce }} no longer throws an exception when you add a bundle product through Page Builder. @@ -557,10 +477,6 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. * Users with restricted roles are no longer automatically granted access to new modules. - - -* Target rules based on categories display only products from the category that is declared in the rule. Previously, Related Product rules displayed products from categories that were assigned to product and not defined in the rule. - * Related product rule conditions now work as expected with products that contain `multiselect` attributes. @@ -571,11 +487,11 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* {{ site.data.var.ee }} now displays an error message when you set an invalid cookie domain (**Store** > **Configurations** > **Web** > **Default Cookie Settings Cookie Domain**). Previously, the website crashed. [GitHub-35048](https://github.com/magento/magento2/issues/35048) +* {{ site.data.var.ce }} now displays an error message when you set an invalid cookie domain (**Store** > **Configurations** > **Web** > **Default Cookie Settings Cookie Domain**). Previously, the website crashed. [GitHub-35048](https://github.com/magento/magento2/issues/35048) -* {{ site.data.var.ee }} no longer throws an error when an administrator with roles scoped to a single website adds product to Content Elements using PageBuilder. Previously, {{ site.data.var.ee }} threw an SQL error. +* {{ site.data.var.ce }} no longer throws an error when an administrator with roles scoped to a single website adds product to Content Elements using PageBuilder. Previously, {{ site.data.var.ce }} threw an SQL error. @@ -583,11 +499,11 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* {{ site.data.var.ee }} no longer throws the following error during the creation of a catalog rule in the Admin after upgrade: `A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later`. +* {{ site.data.var.ce }} no longer throws the following error during the creation of a catalog rule in the Admin after upgrade: `A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later`. -* {{ site.data.var.ee }} no longer throws an error when you activate the **Check here to link an RSS feed to your Wish List** checkbox before clicking on **Share Wish list**. [GitHub-34998](https://github.com/magento/magento2/issues/34998) +* {{ site.data.var.ce }} no longer throws an error when you activate the **Check here to link an RSS feed to your Wish List** checkbox before clicking on **Share Wish list**. [GitHub-34998](https://github.com/magento/magento2/issues/34998) @@ -601,12 +517,6 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. * Removed unneeded `csp_whitelist.xml` files. [GitHub-30607](https://github.com/magento/magento2/issues/30607) -### Gift cards - - - -* `products` queries now correctly returns product data that contains gift card products with a `gift-card` URL key. - ### GraphQL @@ -625,13 +535,9 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. * The `new_from_data` and `new_to_datefields` in `ProductInterface` are no longer deprecated. [GitHub-34783](https://github.com/magento/magento2/issues/34783) - - -* The `getCartDetails` query now returns only one payment methods for free orders. Previously, all active payment methods were returned in the query response. [GitHub-34036](https://github.com/magento/magento2/issues/34036) - -* The `categories` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) +* The `categories` query no longer throws an exception when fetching a list of categories one of which contains an image that cannot be found on the filesystem. Previously, {{ site.data.var.ce }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) @@ -651,11 +557,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* {{ site.data.var.ee }} sessions no longer end after a GraphQL request is made. Previously, the `ClearCustomerSessionAfterRequest` plugin logged out the shopper. [GitHub-34550](https://github.com/magento/magento2/issues/34550) - - - -* The `products` query no longer returns price_range values for configurable products that are affected by disabled variants. [GitHub-33629](https://github.com/magento/magento2/issues/33629) +* {{ site.data.var.ce }} sessions no longer end after a GraphQL request is made. Previously, the `ClearCustomerSessionAfterRequest` plugin logged out the shopper. [GitHub-34550](https://github.com/magento/magento2/issues/34550) @@ -667,7 +569,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* `setShippingAddressesOnCart` requests now successfully validate region IDs. Previously, {{ site.data.var.ee }} threw an error when you used region ID instead of region code. +* `setShippingAddressesOnCart` requests now successfully validate region IDs. Previously, {{ site.data.var.ce }} threw an error when you used region ID instead of region code. @@ -675,59 +577,27 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* The `categoryList` query now returns results that reflect the queried store's root category when the store specified in the header. Previously, categories from the default root category were included in results even though another store was specified in the header. +* The `categoryList` query now returns results that reflect the queried store's root category when the store is specified in the header. Previously, categories from the default root category were included in results even though another store was specified in the header. * The `products` query no longer returns attributes as an aggregation when the **Use in Search Results Layered Navigation** setting is disabled. [GitHub-33318](https://github.com/magento/magento2/issues/33318) - - -* A missing `price_range` attribute has been added to the GraphQL `BundleItemOption` type. [GitHub-35010](https://github.com/magento/magento2/issues/35010) - - - -* The `products` query no longer returns attributes as an aggregation when the **Use in Search Results** Layered Navigation setting is disabled. [GitHub-33318](https://github.com/magento/magento2/issues/33318) - - - -* A `price_including_tax` field has been added to `CartItemPrices`. [GitHub-29057](https://github.com/magento/magento2/issues/29057) - - - -* The `new_from_data` and `new_to_datefields` in `ProductInterface` are no longer deprecated. [GitHub-34783](https://github.com/magento/magento2/issues/34783) - * The `cart` query now returns only one payment methods for free orders. Previously, all active payment methods were returned in the query response. [GitHub-34036](https://github.com/magento/magento2/issues/34036) - - -* The `categories` query no longer throws an exception when fetching a list of categories one of which contains an image that can’t be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) - - - -* The `GetProductsInCategory` query now returns `category_uid` as an aggregation as expected. [GitHub-32557](https://github.com/magento/magento2/issues/32557) - - - -* The `updateCartItems` query now removes products as expected when the product stock has reached the maximum stock amount. [GitHub-30220](https://github.com/magento/magento2/issues/30220) - - - -* `customer` queries now fetch bundle product multi-select options as expected when querying orders. [GitHub-34717](https://github.com/magento/magento2/issues/34717) - -* `products` queries no longer returns price_range values for configurable products that are affected by disabled variants. [GitHub-33629](https://github.com/magento/magento2/issues/33629) +* `products` queries no longer returns `price_range` values for configurable products that are affected by disabled variants. [GitHub-33629](https://github.com/magento/magento2/issues/33629) -* Added a plugin before the `collectQuoteTotals` call to ensure store credits aren't applied multiple times. +* Added a plugin before the `collectQuoteTotals` call to ensure store credits are not applied multiple times. -* Creating a new special price schedule with the `POST /V1/products/special-price` endpoint now works as expected. Previously, the endpoint returned the message `Future Update already exists in this time range. Set a different range and try again`. +* Creating a new special price schedule with the `POST /V1/products/special-price` endpoint now works as expected. Previously, the endpoint returned this error: `Future Update already exists in this time range. Set a different range and try again`. @@ -747,7 +617,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* The `products` query now returns only the sub category of provided category ID. Previously, it returned all categories. [GitHub-35220](https://github.com/magento/magento2/issues/35220) +* The `products` query now returns only the subcategory of provided category ID. Previously, it returned all categories. [GitHub-35220](https://github.com/magento/magento2/issues/35220) @@ -785,11 +655,11 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* {{ site.data.var.ee }} now checks for a custom view before filtering columns when exporting reports. Previously, exported reports did not take into account custom views, and exported columns were incorrect. +* {{ site.data.var.ce }} now checks for a custom view before filtering columns when exporting reports. Previously, exported reports did not take into account custom views, and exported columns were incorrect. -* {{ site.data.var.ee }} now successfully imports images with long file names. Previously, {{ site.data.var.ee }} did not import the image and threw this error: `Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in row(s):`. +* {{ site.data.var.ce }} now successfully imports images with long file names. Previously, {{ site.data.var.ce }} did not import the image and threw this error: `Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in row(s):`. @@ -801,7 +671,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* Added validation for category names during import. Previously, {{ site.data.var.ee }} did not validate category names, which lead to errors when category names exceeded 255 characters. +* Added validation for category names during import. Previously, {{ site.data.var.ce }} did not validate category names, which lead to errors when category names exceeded 255 characters. @@ -809,10 +679,6 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. ### Infrastructure - - -* The SQL query that updates affected quotes after a cart price rule is disabled has been optimized to avoid locking the entire quote table. - * A deprecated Context Menu plugin has been removed from plugins list. @@ -847,14 +713,9 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* Customer, customer address, and order actions are now logged correctly in the Admin action report. Previously, {{ site.data.var.ee }} did not log actions if the `postDispatch` handler had not been specified in configuration settings. - -### {{ site.data.var.ee }} coding standard +* Customer, customer address, and order actions are now logged correctly in the Admin action report. Previously, {{ site.data.var.ce }} did not log actions if the `postDispatch` handler had not been specified in configuration settings. ### MFTF - -#### New action groups - #### Action groups Repetitive actions have been replaced with action groups in these tests: @@ -888,14 +749,6 @@ Repetitive actions have been replaced with action groups in these tests: ### Order - - -* You can now successfully create a new customer from a new order with custom customer attribute that are hidden from the storefront. Previously, {{ site.data.var.ee }} did not save the correct values for the custom customer attribute. - - - -* Reward points can now be refunded when store credit functionality is disabled. - * Guest customer details are now saved successfully after an order is edited. Previously, some customer details were lost, including `customer_firstname` and `customer_lastname, x_forwarded_for`. @@ -910,23 +763,19 @@ Repetitive actions have been replaced with action groups in these tests: -* {{ site.data.var.ee }} no longer changes custom email addresses that are assigned to orders when you change the main email address assigned to the customer on the Admin account edit page. Previously, when you edited the main email address for a customer, the new email address was assigned to every order created for that customer. [GitHub-34397](https://github.com/magento/magento2/issues/34397) +* {{ site.data.var.ce }} no longer changes custom email addresses that are assigned to orders when you change the main email address assigned to the customer on the Admin account edit page. Previously, when you edited the main email address for a customer, the new email address was assigned to every order created for that customer. [GitHub-34397](https://github.com/magento/magento2/issues/34397) -* {{ site.data.var.ee }} now displays records from the requested store on the credit memos grid page in deployments running PHP 7.4. Previously, {{ site.data.var.ee }} threw the following error after you created a credit memo and tried to view it: `The store that was requested wasn't found. Verify the store and try again`. +* {{ site.data.var.ce }} now displays records from the requested store on the credit memos grid page in deployments running PHP 7.4. Previously, {{ site.data.var.ce }} threw the following error after you created a credit memo and tried to view it: `The store that was requested wasn't found. Verify the store and try again`. -* {{ site.data.var.ee }} now displays credit memos on the credit memo grid page for orders created from store views whose name is prepended with numbers. Previously, {{ site.data.var.ee }} displayed the error: `The store that was requested wasn't found. Verify the store and try again. Exception in /var/www/html/vendor/magento/module-store/Model/StoreRepository.php:75`. [GitHub-35122](https://github.com/magento/magento2/issues/35122) +* {{ site.data.var.ce }} now displays credit memos on the credit memo grid page for orders created from store views whose name is prepended with numbers. Previously, {{ site.data.var.ce }} displayed the error: `The store that was requested wasn't found. Verify the store and try again. Exception in /var/www/html/vendor/magento/module-store/Model/StoreRepository.php:75`. [GitHub-35122](https://github.com/magento/magento2/issues/35122) -* {{ site.data.var.ee }} now displays the free shipping cost (0) on the Admin and storefront invoice page totals. Previously, when shipping was zero for an order, {{ site.data.var.ee }} did not display the shipping amount in total on the invoice page shipping total. - - - -* {{ site.data.var.ee }} now displays correct order status during checkout when customer store credit is used. +* {{ site.data.var.ce }} now displays the free shipping cost (0) on the Admin and storefront invoice page totals. Previously, when shipping was zero for an order, {{ site.data.var.ce }} did not display the shipping amount in total on the invoice page shipping total. @@ -936,7 +785,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Administrators can now place an order on the Admin using the PayPal PayflowPro payment method. Previously, {{ site.data.var.ee }} displayed this error: `No such entity with cartId = 0`. +* Administrators can now place an order on the Admin using the PayPal PayflowPro payment method. Previously, {{ site.data.var.ce }} displayed this error: `No such entity with cartId = 0`. @@ -950,7 +799,7 @@ Repetitive actions have been replaced with action groups in these tests: -* {{ site.data.var.ee }} now shows the correct customer name in a guest order paid for with PayPal. Previously, the customer name was displayed as Guest. +* {{ site.data.var.ce }} now shows the correct customer name in a guest order paid for with PayPal. Previously, the customer name was displayed as Guest. @@ -958,10 +807,6 @@ Repetitive actions have been replaced with action groups in these tests: ### Performance - - -* The performance of dynamic block loading has been improved. Previously, visitor segments were not cached per website, which caused redundant queries to the database for the same data. - * Redis cache management has been improved by the addition of TTL (expiration date) for configurable products’ associated product data caches. Previously, these caches were not evicted due to missing TTL values if Redis key eviction policy was configured to a volatile eviction policy. @@ -988,43 +833,13 @@ Repetitive actions have been replaced with action groups in these tests: * The price listed on the product detail page is now the same as the price listed in the checkout workflow for tier prices that differ by quantity selected (for example, a product priced differently based on buying 2 items versus 5 items). Previously, the checkout price reflected the price for the lowest product quantity. -### Promotions - - - -* The **Times Used** value for a discount is no longer incremented twice when a guest customer places an order with a discount and subsequently registers an account. - ### ReCAPTCHA * The **Submit** button on the Login and Create an Account pages is now inactive until ReCaptcha is fully loaded. -### Return Merchandise Authorizations (RMA) - - - -* The `GET /V1/returnsAttributeMetadata` endpoint now works correctly when the `rma_item` entity default attribute set ID differs from the default installation ID. Previously, this endpoint returned an empty result if these IDs differed. - - - -* The **Use Default** checkbox, which is used to enable RMA on the product edit page, now works as expected for Default Store. Previously, the checkbox was cleared immediately after the product was saved. - -### Rewards - - - -* Reward points can now be refunded when store credit functionality is disabled. - - - -* Checkout performance has been improved when reward points are applied. When `entity` is null, then the database query will not be executed because querying the `magento_reward_history` table is not mandatory under the circumstances. - - - -* Credit memos for guest orders no longer check for `customer_id`, which skips querying the `magento_reward_history' database table table for reward points. This change has improved performance. - ### Roles -* The **Store** > **Configuration** > **Services** page now displays {{ site.data.var.ee }} Web API information as expected when Resource Access is set to **Custom** on the Role Resources tab. [GitHub-35506](https://github.com/magento/magento2/issues/35506) +* The **Store** > **Configuration** > **Services** page now displays {{ site.data.var.ce }} Web API information as expected when Resource Access is set to **Custom** on the Role Resources tab. [GitHub-35506](https://github.com/magento/magento2/issues/35506) ### Search @@ -1034,7 +849,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Elasticsearch queries now work as expected when `int` is configured as a searchable backend `type` attribute. Previously, {{ site.data.var.ee }} threw an `Elasticsearch\Common\Exceptions\BadRequest400Exception` exception. +* Elasticsearch queries now work as expected when `int` is configured as a searchable backend `type` attribute. Previously, {{ site.data.var.ce }} threw an `Elasticsearch\Common\Exceptions\BadRequest400Exception` exception. @@ -1042,7 +857,7 @@ Repetitive actions have been replaced with action groups in these tests: -* {{ site.data.var.ee }} now displays an accurate search results suggestion count on the storefront in deployments where Search Suggestions and the **Show Results Count for Each Suggestion** setting are enabled. Previously, the count displayed next to the keywords was zero. +* {{ site.data.var.ce }} now displays an accurate search results suggestion count on the storefront in deployments where Search Suggestions and the **Show Results Count for Each Suggestion** setting are enabled. Previously, the count displayed next to the keywords was zero. @@ -1054,13 +869,13 @@ Repetitive actions have been replaced with action groups in these tests: -* Fixed PHP errors on the `catalogsearch/advanced/result` and  `catalogsearch/advanced/index` pages. Previously, {{ site.data.var.ee }} displayed this error when an array was passed in any advanced search string : `Warning: trim() expects parameter 1 to be string, array given | magento/module-catalog-search`. [GitHub-33586](https://github.com/magento/magento2/issues/33586) +* Fixed PHP errors on the `catalogsearch/advanced/result` and  `catalogsearch/advanced/index` pages. Previously, {{ site.data.var.ce }} displayed this error when an array was passed in any advanced search string : `Warning: trim() expects parameter 1 to be string, array given | magento/module-catalog-search`. [GitHub-33586](https://github.com/magento/magento2/issues/33586) ### Shipping -* {{ site.data.var.ee }} no longer throws an error when loading UPS shipping rates if no allowed shipping methods are selected. Previously, when a shopper entered a shipping address in the checkout workflow under these conditions, no other shipping methods were displayed, and {{ site.data.var.ee }} displayed an error on the storefront. [GitHub-34411](https://github.com/magento/magento2/issues/34411) +* {{ site.data.var.ce }} no longer throws an error when loading UPS shipping rates if no allowed shipping methods are selected. Previously, when a shopper entered a shipping address in the checkout workflow under these conditions, no other shipping methods were displayed, and {{ site.data.var.ce }} displayed an error on the storefront. [GitHub-34411](https://github.com/magento/magento2/issues/34411) @@ -1070,56 +885,6 @@ Repetitive actions have been replaced with action groups in these tests: * Table rate shipping rates with zero price are now displayed correctly in the checkout workflow Order Summary block for orders that have had a discount coupon applied. Previously, the shipping method was not displayed. -### Staging - - - -* {{ site.data.var.ee }} no longer cleans the full-page cache after applying a staging update for a sales rule in which the cached pages remain unchanged. - - - -* The content staging dashboard no longer displays inactive permanent updates. - - - -* Changing the end date for a staging update from the staging dashboard now successfully applies these changes to the staging update and its entities. (A queue has been introduced to process staging updates changes.) - - - -* Merchants can now remove an end date for a scheduled update or delete and recreate an update. Previously, when an end date was removed, an entity remained scheduled for that time. {{ site.data.var.ee }} now removes the outdated update for removed rollback. - - - -* Active schedule updates for a CMS page are now visible as expected in the Scheduled Changes section on the CMS page. - - - -* The `custom_design_to` attribute value is now updated as expected when a scheduled update is changed. Previously, two separate category design updates with no end time were treated as one. When one of the scheduled updates was deleted while the first one was running, the `custom_design_from` time value became greater than the `custom_design_to` time values in the next scheduled update. - - - -* Forms are now populated with data as expected after a scheduled update is edited. - - - -* The `vendor/magento/module-catalog-staging/Setup/Patch/Data/MigrateCatalogProducts.php` data patch no longer fails when the database includes product with custom options and the `special_from_date` attribute is set. - - - -* Changes are now saved during a second scheduled update when the changes are added by the running update. Previously, changes were not saved, and merchants needed to re-enter and save changes. - - - -* The Bulk actions log now displays information about failed `to be moved` scheduled updates. Previously, information about these failures was available in the `cron.log` file only. - - - -* Merchants are now restricted to using comma-separated prices when editing a product price in a scheduled update regardless of locale. Previously, prices that contained commas in a scheduled update were divided by 1000 depending on the locale. - - - -* Problems with DHL domestic shipping in deployments running PHP 8.1 have been resolved by requiring dutiable tags for international shipments only. - ### Tax @@ -1132,7 +897,7 @@ Repetitive actions have been replaced with action groups in these tests: -* {{ site.data.var.ee }} now updates the Excluding Tax tier price for a simple product on the product page as expected after the quantity of the simple product has changed. +* {{ site.data.var.ce }} now updates the Excluding Tax tier price for a simple product on the product page as expected after the quantity of the simple product has changed. @@ -1202,10 +967,6 @@ Repetitive actions have been replaced with action groups in these tests: * Lengthy product names in the **Catalog** > **Products** grid are now word-wrapped instead of displayed in a single line. - - -* You can now edit default stock from Admin **Stores** > **Inventory** > **Stocks**. Previously, a JavaScript error was displayed in the console when you tried to add or remove sources from default stock, although you could assign websites to default stock. - * The minimal and maximum date-of-birth range is now saved as a correct timestamp and then converted from a valid timestamp to a valid date format. @@ -1220,7 +981,7 @@ Repetitive actions have been replaced with action groups in these tests: -* You can now create a customer from the Admin when `Magento_LoginAsCustomerAdminUi` is enabled and **Store View To Login To** is set to manual selection. Previously, {{ site.data.var.ee }} threw this error: `(Magento\Framework\Exception\LocalizedException): Unable to get Customer ID`. [GitHub-33096](https://github.com/magento/magento2/issues/33096) +* You can now create a customer from the Admin when `Magento_LoginAsCustomerAdminUi` is enabled and **Store View To Login To** is set to manual selection. Previously, {{ site.data.var.ce }} threw this error: `(Magento\Framework\Exception\LocalizedException): Unable to get Customer ID`. [GitHub-33096](https://github.com/magento/magento2/issues/33096) @@ -1230,10 +991,6 @@ Repetitive actions have been replaced with action groups in these tests: * The **Search by keyword** input field now has an `aria-label` element instead of a placeholder on the **Catalog** > **Product** page. - - -* Category creation is now blocked for an administrator with restricted permissions on both the category and product edit pages. Previously, category creation was blocked on the category page, but was still possible through the product edit page. - * The Privacy Policy link in Admin footer now links to the new Adobe Privacy Policy. @@ -1248,7 +1005,7 @@ Repetitive actions have been replaced with action groups in these tests: -* {{ site.data.var.ee }} now displays an informative error message when an administrator tries to save an address with excessive street lines in Admin **Store** > **Attributes** > **Customer Address**. The administrator can now delete the extra address information and successfully save the address. Previously, {{ site.data.var.ee }} committed the extra lines but did not save the data. +* {{ site.data.var.ce }} now displays an informative error message when an administrator tries to save an address with excessive street lines in Admin **Store** > **Attributes** > **Customer Address**. The administrator can now delete the extra address information and successfully save the address. Previously, {{ site.data.var.ce }} committed the extra lines but did not save the data. @@ -1260,7 +1017,7 @@ Repetitive actions have been replaced with action groups in these tests: -* The favicon icon upload form now supports `.ico` file types. Previously, when you tried to upload a favicon file with this extension type in the Admin, {{ site.data.var.ee }} displayed this error: `Warning: imagecreatefromstring(): one parameter to a memory allocation multiplication is negative or zero, failing operation gracefully in /var/www/html/vendor/magento/module-media-storage/Model/File/Validator/Image.php on line 64`. [GitHub-34858](https://github.com/magento/magento2/issues/34858) +* The favicon icon upload form now supports `.ico` file types. Previously, when you tried to upload a favicon file with this extension type in the Admin, {{ site.data.var.ce }} displayed this error: `Warning: imagecreatefromstring(): one parameter to a memory allocation multiplication is negative or zero, failing operation gracefully in /var/www/html/vendor/magento/module-media-storage/Model/File/Validator/Image.php on line 64`. [GitHub-34858](https://github.com/magento/magento2/issues/34858) @@ -1284,7 +1041,7 @@ Repetitive actions have been replaced with action groups in these tests: -* You can now set a Vimeo video to run in the background in a `banner` element when CSP is set to `restrict mode`. Previously, {{ site.data.var.ee }} threw this JavaScript error when you tried to save the element: `Refused to connect to 'https://vimeo.com/api/v2/video/76979871.json' because it violates the following Content Security Policy directive`. +* You can now set a Vimeo video to run in the background in a `banner` element when CSP is set to `restrict mode`. Previously, {{ site.data.var.ce }} threw this JavaScript error when you tried to save the element: `Refused to connect to 'https://vimeo.com/api/v2/video/76979871.json' because it violates the following Content Security Policy directive`. ### Web API framework @@ -1292,10 +1049,6 @@ Repetitive actions have been replaced with action groups in these tests: * Mutex has been implemented for orders to prevent race conditions during update by concurrent requests. Previously, race conditions during concurrent REST API calls resulted in an overwrite of shipping status information in the Admin Items Ordered table. - - -* Dynamic bundle attributes are now updated correctly on the Mass Attribute Update page. Previously, the **Dynamic SKU** attribute remained set to **Yes** even though they were disabled on the Mass Update page. - * Product image role inheritance is now preserved unless explicitly defined in the payload when updating a product in a specific store view via the REST API. @@ -1328,7 +1081,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Updating an item quantity from the wish list page now updates the quantity on the product detail page as expected. {{ site.data.var.ee }} now picks up the updated value from the product URL and populates the `qty` field of product detail page from the wishlist itself. +* Updating an item quantity from the wish list page now updates the quantity on the product detail page as expected. {{ site.data.var.ce }} now picks up the updated value from the product URL and populates the `qty` field of product detail page from the wishlist itself. ## Known Issues From ac319917ae84c7b7cc35d3be74490d6c46b0f51b Mon Sep 17 00:00:00 2001 From: jfrontain Date: Sun, 10 Jul 2022 21:39:18 -0500 Subject: [PATCH 039/491] added highlights --- .../v2.4/release-notes/commerce-2-4-5.md | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 42ac22c7255..5f53fb18905 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -135,7 +135,11 @@ Primary index performance has been improved by reducing the number of primary in ### GraphQL -This release includes these GraphQL enhancements: +GraphQL performance hs been improved by these enhancements: + +* **Optimized creation of unified GraphQL schemas**. Rebuilding a GraphQL schema after flushing a Commerce instance’s cache can consume many resources, particularly during heavy site traffic. The time required to rebuild a schema has been reduced significantly. + +* **Improved authorization processing** through the use of JSON Web Tokens (JWT) and session-less GraphQL API. See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on these enhancements. @@ -158,6 +162,9 @@ Channel Manager can now trigger refunds from Adobe Commerce. Merchants can now m Requests are now automatically synced back to the Walmart Marketplace. +### Google Analytics + +See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en). ### PWA Studio PWA Studio v.12.x.x is compatible with {{ site.data.var.ee }} 2.4.5. @@ -173,8 +180,6 @@ For information about enhancements and bug fixes, see [PWA Studio releases](http Merchants in Spain and Italy can now offer PayPal Pay Later to shoppers. -### Braintree - ### Live Search This release introduces support for B2B customer groups and custom pricing. @@ -199,6 +204,18 @@ Page Builder column layout includes these enhancements: The Admin has been updated to align with Adobe’s branch strategy. Changes affect headers, footers, data grid color updates, and navigation elements. +### Upgrade Compatibility Tool + +New enhancements include: + +* Method signature validation now identifies incompatible changes within a method or a constructor signature. + +* Database schema validation now identifies schema changes and incompatibilities. + +* DI configuration validation now verifies references to removed or deprecated non-API core classes in `di.xml` and preferences for core classes and interfaces. + +* UCT now identifies code deprecations and provides specific recommendations for resolving each issue. + ## Fixed issues We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. From d3ff7924bc5eb17a70abdd48a6e22e81126d4803 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Mon, 11 Jul 2022 14:40:07 -0500 Subject: [PATCH 040/491] added keharper's comments --- src/guides/v2.4/release-notes/commerce-2-4-5.md | 16 +++++++++++----- .../v2.4/release-notes/open-source-2-4-5.md | 6 +++--- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 5f53fb18905..65986b03ded 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -64,7 +64,7 @@ Security improvements for this release improve compliance with the latest securi * `PHPStan` (^1.5.7 with constraint) [GitHub-35315](https://github.com/magento/magento2/issues/35315) -* DHL Integration schema has been updated from v6.0 to v6.2. DHL has deprecated v6.0 +* DHL Integration schema has been updated from v6.0 to v6.2. DHL has deprecated v6.0. This upgrade will not result in a change in product behavior. Outdated JavaScript libraries have been updated to their latest versions, and outdated dependencies have been removed. These changes are backward compatible. @@ -178,7 +178,13 @@ New features for this release include: For information about enhancements and bug fixes, see [PWA Studio releases](https://github.com/magento/pwa-studio/releases). See [Version compatibility](https://developer.adobe.com/commerce/pwa-studio/integrations/adobe-commerce/version-compatibility/) for a list of PWA Studio versions and their compatible {{ site.data.var.ee }} core versions. ### PayPal Payment enhancements -Merchants in Spain and Italy can now offer PayPal Pay Later to shoppers. +* Merchants in Spain and Italy can now offer PayPal Pay Later to shoppers. + +* Previews of the PayPal, Credit and Pay Later buttons are now available in the Admin for the checkout, minicart, cart, and product pages. Previews reveal how these buttons will look when they are enabled and rendered on the storefront. + +#### Braintree + +The KOUNT integration has been removed due to discontinuation by Braintree. ### Live Search @@ -746,7 +752,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The `categories` query no longer throws an exception when fetching a list of categories one of which contains an image that cannot be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) +* The `categories` query no longer throws an exception when fetching a list of categories one of which contains an image that cannot be found on the filesystem. Previously, {{ site.data.var.ee }} threw this exception: `Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) @@ -754,7 +760,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. -* The `updateCartItems` query now removes products as expected when the product stock has reached the maximum stock amount. [GitHub-30220](https://github.com/magento/magento2/issues/30220) +* The `updateCartItems` mutation now removes products as expected when the product stock has reached the maximum stock amount. [GitHub-30220](https://github.com/magento/magento2/issues/30220) @@ -1253,7 +1259,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Added a grave accent [ ` ] character to the name validator so that customer account can be created for first or last names that include this accent. +* Added a grave accent [ \` ] character to the name validator so that customer account can be created for first or last names that include this accent. diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index 7f499ed2192..04516e57f1b 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -537,7 +537,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* The `categories` query no longer throws an exception when fetching a list of categories one of which contains an image that cannot be found on the filesystem. Previously, {{ site.data.var.ce }} threw this exception: Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) +* The `categories` query no longer throws an exception when fetching a list of categories one of which contains an image that cannot be found on the filesystem. Previously, {{ site.data.var.ce }} threw this exception: `Category image not found`. [GitHub-34266](https://github.com/magento/magento2/issues/34266) @@ -545,7 +545,7 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -* The `updateCartItems` query now removes products as expected when the product stock has reached the maximum stock amount. [GitHub-30220](https://github.com/magento/magento2/issues/30220) +* The `updateCartItems` mutation now removes products as expected when the product stock has reached the maximum stock amount. [GitHub-30220](https://github.com/magento/magento2/issues/30220) @@ -947,7 +947,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Added a grave accent [ ` ] character to the name validator so that customer account can be created for first or last names that include this accent. +* Added a grave accent [ \` ] character to the name validator so that customer account can be created for first or last names that include this accent. From 9d8469b4d5f3e250641ab7db29a645e92391c532 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Mon, 11 Jul 2022 15:11:38 -0500 Subject: [PATCH 041/491] removed invalid link --- src/guides/v2.4/release-notes/commerce-2-4-5.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 65986b03ded..50273929101 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -121,7 +121,7 @@ The `laminas/laminas-session`, `laminas/laminas-text`, and `laminas/laminas-view * The library `jquery/jquery-cookie` has been replaced with `js-cookie/js-cookie`. -* The `jarallax.js` and `jaralax-video.js` libraries have been updated to use the latest version of the Vimeo REST API. See [The Basics]( https://developer.vimeo.com/api/guides/start). +* The `jarallax.js` and `jaralax-video.js` libraries have been updated to use the latest version of the Vimeo REST API. ### Performance and scalability enhancements From fd67d91f855501ef8ca832774a46189b7aca17f2 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Mon, 11 Jul 2022 16:18:28 -0500 Subject: [PATCH 042/491] removed error message --- src/guides/v2.4/release-notes/commerce-2-4-5.md | 2 +- src/guides/v2.4/release-notes/open-source-2-4-5.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 50273929101..de36b1a652f 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -1353,7 +1353,7 @@ Repetitive actions have been replaced with action groups in these tests: -* You can now set a Vimeo video to run in the background in a `banner` element when CSP is set to `restrict mode`. Previously, {{ site.data.var.ee }} threw this JavaScript error when you tried to save the element: `Refused to connect to 'https://vimeo.com/api/v2/video/76979871.json' because it violates the following Content Security Policy directive`. +* You can now set a Vimeo video to run in the background in a `banner` element when CSP is set to `restrict mode`. Previously, {{ site.data.var.ee }} threw a JavaScript error. ### Web API framework diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index 04516e57f1b..403c26b4894 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -1041,7 +1041,7 @@ Repetitive actions have been replaced with action groups in these tests: -* You can now set a Vimeo video to run in the background in a `banner` element when CSP is set to `restrict mode`. Previously, {{ site.data.var.ce }} threw this JavaScript error when you tried to save the element: `Refused to connect to 'https://vimeo.com/api/v2/video/76979871.json' because it violates the following Content Security Policy directive`. +* You can now set a Vimeo video to run in the background in a `banner` element when CSP is set to `restrict mode`. Previously, {{ site.data.var.ce }} threw a JavaScript error. ### Web API framework From cef197bc67d5283035a58364e46386fff825618a Mon Sep 17 00:00:00 2001 From: jfrontain Date: Tue, 12 Jul 2022 16:17:36 -0500 Subject: [PATCH 043/491] added highlights for RTM --- .../v2.4/release-notes/commerce-2-4-5.md | 84 +++++------ .../v2.4/release-notes/open-source-2-4-5.md | 137 ++++++++++++++++-- 2 files changed, 165 insertions(+), 56 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index de36b1a652f..6a6b67e1d78 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -3,9 +3,7 @@ group: release-notes title: Adobe Commerce 2.4.5 Release Notes --- -{{ site.data.var.ee }} 2.4.5 introduces support for - -This release includes almost 240 quality fixes and enhancements. +This release includes over 400 quality fixes and enhancements. {:.bs-callout-info} Releases may contain backward-incompatible changes (BIC). {{ site.data.var.ee }} 2.4.5 contains backward-incompatible changes. To review these backward-incompatible changes, see [BIC reference]({{page.baseurl}}/release-notes/backward-incompatible-changes/reference.html). (Major backward-incompatible issues are described in [BIC highlights]({{page.baseurl}}/release-notes/backward-incompatible-changes/index.html). Not all releases introduce major BICs.) @@ -50,9 +48,9 @@ Security improvements for this release improve compliance with the latest securi ### Platform enhancements -* **Adobe Commerce on-premises deployments**: Adobe Commerce 2.4.5 has been tested and confirmed to be compatible with Elasticsearch 7.17 (~7.17.0 with constraint). Merchants hosting Adobe Commerce on-premises can use either Elasticsearch or OpenSearch 1.2. +* **{{ site.data.var.ee }} on-premises deployments**: {{ site.data.var.ee }} 2.4.5 has been tested and confirmed to be compatible with Elasticsearch 7.17 (~7.17.0 with constraint). Merchants hosting {{ site.data.var.ee }} on-premises can use either Elasticsearch or OpenSearch 1.2. -* **Adobe Commerce cloud-hosted deployments**: ElasticSearch 7.11 or later is not supported on Adobe Commerce 2.4.5 cloud-hosted deployments. OpenSearch is the default search engine for Adobe Commerce 2.4.5 cloud deployments. +* **{{ site.data.var.ee }} cloud-hosted deployments**: ElasticSearch 7.11 or later is not supported on {{ site.data.var.ee }} 2.4.5 cloud-hosted deployments. OpenSearch is the default search engine for {{ site.data.var.ee }} 2.4.5 cloud deployments. {{ site.data.var.ee }} 2.4.5 now supports @@ -64,7 +62,7 @@ Security improvements for this release improve compliance with the latest securi * `PHPStan` (^1.5.7 with constraint) [GitHub-35315](https://github.com/magento/magento2/issues/35315) -* DHL Integration schema has been updated from v6.0 to v6.2. DHL has deprecated v6.0. This upgrade will not result in a change in product behavior. +The DHL Integration schema has been updated from v6.0 to v6.2. DHL has deprecated v6.0. This upgrade will not result in a change in product behavior. Outdated JavaScript libraries have been updated to their latest versions, and outdated dependencies have been removed. These changes are backward compatible. @@ -99,7 +97,7 @@ The `laminas/laminas-session`, `laminas/laminas-text`, and `laminas/laminas-view #### Other upgrades and replacements -* DHL Integration schema has been updated from v6.0 to v6.2. (DHL will deprecate the v6.0 schema mid-2022.) +* The DHL Integration schema has been updated from v6.0 to v6.2. (DHL will deprecate the v6.0 schema mid-2022.) * The default Gateway URL for USPS shipping has been updated to use `https` instead of `http`. @@ -125,39 +123,37 @@ The `laminas/laminas-session`, `laminas/laminas-text`, and `laminas/laminas-view ### Performance and scalability enhancements -{{ site.data.var.ee }} performance enhancements - -Performance enhancements in this release: - #### Price indexer optimization Primary index performance has been improved by reducing the number of primary indexes from 3 to 1 for the `catalog_product_index_price_tmp` table. This enhancement reduced the number of records created in the price index by reducing eSKU multiplication that resulted from shared catalogs. Indexing time has been significantly reduced. -### GraphQL +### Accessibility updates -GraphQL performance hs been improved by these enhancements: +This release includes enhancements to the Admin UI that improve the experience of users with vision limitations and increase conformance to standard accessibility guidelines. These enhancements include: -* **Optimized creation of unified GraphQL schemas**. Rebuilding a GraphQL schema after flushing a Commerce instance’s cache can consume many resources, particularly during heavy site traffic. The time required to rebuild a schema has been reduced significantly. +* The screen reader now summarizes search results +* Screen readers are now informed when a new page loads +* Contrast and keyboard accessibility have been improved -* **Improved authorization processing** through the use of JSON Web Tokens (JWT) and session-less GraphQL API. +### Adobe Sign Extension -See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on these enhancements. +The {{ site.data.var.ee }} checkout workflow now supports the inclusion of an esignature agreement page powered by Adobe Sign. -### Adobe Sign Extension +### Branding and style changes -The Adobe Commerce check out workflow now supports the inclusion of an esignature agreement page powered by Adobe Sign. +The Admin has been updated to align with Adobe’s branch strategy. Changes affect headers, footers, data grid color updates, and navigation elements. ### B2B -This release includes multiple bug fixes. See [B2B Release Notes]({{page.baseurl}}/release-notes/b2b-release-notes.html) - **Reduced eSKU multiplication with Shared Catalogs (Customer Groups)**. The new **Enabled Shared Catalog direct product price assigning** configuration option improves product price indexer performance when enabled. +This release includes multiple bug fixes. See [B2B Release Notes]({{page.baseurl}}/release-notes/b2b-release-notes.html). + ### Channel Manager -Channel Manager can now trigger refunds from Adobe Commerce. Merchants can now manage the entire order workflow from within Adobe Commerce, including these tasks: +Channel Manager can now trigger refunds from {{ site.data.var.ee }}. Merchants can now manage the entire order workflow from within {{ site.data.var.ee }}, including these tasks: -* Process refunds from Adobe Commerce +* Process refunds from {{ site.data.var.ee }} * Refund shoppers using the origin form of payment Requests are now automatically synced back to the Walmart Marketplace. @@ -165,9 +161,24 @@ Requests are now automatically synced back to the Walmart Marketplace. ### Google Analytics See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en). + +### GraphQL + +GraphQL performance enhancements include: + +* **Optimized creation of unified GraphQL schemas**. Rebuilding a GraphQL schema after flushing a Commerce instance’s cache can consume many resources, particularly during heavy site traffic. The time required to rebuild a schema has been reduced significantly. + +* **Improved authorization processing** through the use of JSON Web Tokens (JWT) and session-less GraphQL API. + +See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on these enhancements. + +### Inventory + +Inventory template security has been enhanced. + ### PWA Studio -PWA Studio v.12.x.x is compatible with {{ site.data.var.ee }} 2.4.5. +PWA Studio v.12.5.x is compatible with {{ site.data.var.ee }} 2.4.5. New features for this release include: @@ -176,6 +187,7 @@ New features for this release include: * Merchants can now select a service to deploy from the Admin (Beacon or Google Tag Manager). For information about enhancements and bug fixes, see [PWA Studio releases](https://github.com/magento/pwa-studio/releases). See [Version compatibility](https://developer.adobe.com/commerce/pwa-studio/integrations/adobe-commerce/version-compatibility/) for a list of PWA Studio versions and their compatible {{ site.data.var.ee }} core versions. + ### PayPal Payment enhancements * Merchants in Spain and Italy can now offer PayPal Pay Later to shoppers. @@ -184,35 +196,25 @@ For information about enhancements and bug fixes, see [PWA Studio releases](http #### Braintree -The KOUNT integration has been removed due to discontinuation by Braintree. +Braintree has discontinued the KOUNT integration and it has been removed from the codebase. ### Live Search This release introduces support for B2B customer groups and custom pricing. -### Accessibility updates - -This release includes enhancements to the Admin UI that improve the experience of users with vision limitations and increase conformance to standard accessibility guidelines. These enhancements include: - -* The screen reader now summarizes search results -* Screen readers are now informed when a new page loads -* Contrast and keyboard accessibility have been improved - ### Page Builder +Page Builder v.1.7.2 is compatible with {{ site.data.var.ee }} 2.4.5. + Page Builder column layout includes these enhancements: * Columns are now exposed, permitting users to control column settings on the storefront. * Column resizing now supports wrapping triggered by user actions. -### Branding and style changes - -The Admin has been updated to align with Adobe’s branch strategy. Changes affect headers, footers, data grid color updates, and navigation elements. - ### Upgrade Compatibility Tool -New enhancements include: +Enhancements include: * Method signature validation now identifies incompatible changes within a method or a constructor signature. @@ -920,22 +922,14 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * `indexer:reset` has been refactored to call `$indexer->invalidate()`. [GitHub-34988](https://github.com/magento/magento2/issues/34988) -#### Library removals and deprecations - -#### Library upgrades - ### Logging * Customer, customer address, and order actions are now logged correctly in the Admin action report. Previously, {{ site.data.var.ee }} did not log actions if the `postDispatch` handler had not been specified in configuration settings. -### {{ site.data.var.ee }} coding standard - ### MFTF -#### New action groups - #### Action groups Repetitive actions have been replaced with action groups in these tests: diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index 403c26b4894..44a09fa18fa 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -3,9 +3,7 @@ group: release-notes title: Magento Open Source 2.4.5 Release Notes --- -{{ site.data.var.ce }} 2.4.5 introduces - -This release includes almost quality fixes and enhancements. +This release includes over 290 quality fixes and enhancements. {:.bs-callout-info} Releases may contain backward-incompatible changes (BIC). {{ site.data.var.ce }} 2.4.5 contains backward-incompatible changes. To review these backward-incompatible changes, see [BIC reference]({{page.baseurl}}/release-notes/backward-incompatible-changes/reference.html). (Major backward-incompatible issues are described in [BIC highlights]({{page.baseurl}}/release-notes/backward-incompatible-changes/index.html). Not all releases introduce major BICs.) @@ -16,7 +14,7 @@ Although code for these features is bundled with quarterly releases of the {{ si ### Hotfixes included in this release -{{ site.data.var.ce }} 2.4.4 includes resolution of all issues that were addressed by the following hotfixes, which were provided for {{ site.data.var.ee }} and {{ site.data.var.ce }} 2.4.4, 2.4.3-p2, and 2.3.7-p3: +{{ site.data.var.ce }} 2.4.5 includes resolution of all issues that were addressed by the following hotfixes, which were provided for {{ site.data.var.ee }} and {{ site.data.var.ce }} 2.4.4, 2.4.3-p2, and 2.3.7-p3: ## {{ site.data.var.ce }} 2.4.5 highlights @@ -40,26 +38,147 @@ See Adobe Security Bulletin for the latest discussion of these fixed issues. Security improvements for this release improve compliance with the latest security best practices, including: +* reCAPTCHA support has been added to the Wish List Sharing, Create New Customer Account, and Gift Card forms. + +* ACL resources have been added to Inventory. + +* Inventory template security has been enhanced. + +* The `MaliciousCode` filter has been upgraded to use the `HtmlPurifier` library. + ### Platform enhancements {{ site.data.var.ce }} 2.4.5 now supports +* Composer 2.2 + +* TinyMCE (5.10.2). Earlier versions of TinyMCE (v5.9.2 or earlier) allowed arbitrary JavaScript execution when a specially crafted URL or an image with a specially crafted URL was updated. + +* jQueryUI (1.13.1) + +* `PHPStan` (^1.5.7 with constraint) [GitHub-35315](https://github.com/magento/magento2/issues/35315) + +The DHL Integration schema has been updated from v6.0 to v6.2. DHL has deprecated v6.0. This upgrade will not result in a change in product behavior. + +Outdated JavaScript libraries have been updated to their latest versions, and outdated dependencies have been removed. These changes are backward compatible. + +#### Composer dependency updates + + + +The following Composer dependencies have been updated to the latest versions with constraint: + +* `colinmollenhour/credis` (1.13.0)? +* `guzzlehttp/guzzle` (^7.4.2) +* `laminas/laminas-captcha` (updated with a constraint ^2.12) +* `laminas/laminas-db` (^2.15.0) +* `laminas/laminas-di` (^3.7.0) +* `laminas/laminas-escaper` (~2.10.0) +* `laminas/laminas-eventmanager` (^3.5.0) +* `laminas/laminas-feed` (^2.17.0) +* `laminas/laminas-mail` (^2.16.0) +* `laminas/laminas-mvc` (^3.3.3) +* `laminas/laminas-server` (^2.11.1) +* `laminas/laminas-servicemanager` (^3.11.0) +* `laminas/laminas-validator` (^2.17.0) +* `league/fly` (2.4.3) +* `monolog/monolog` (^2.5) +* `phpmd/phpmd` (^2.12.0) +* `phpstan/phpstan` (^1.5.7) +* `phpunit/phpunit` (~9.5.20) +* `php-cs-fixer` (^3.4.0) +* `webonyx/graphql-php` (14.11.6) + +The `laminas/laminas-session`, `laminas/laminas-text`, and `laminas/laminas-view` dependencies have been removed. + +#### Other upgrades and replacements + +* The DHL Integration schema has been updated from v6.0 to v6.2. (DHL will deprecate the v6.0 schema mid-2022.) + +* The default Gateway URL for USPS shipping has been updated to use `https` instead of `http`. + +* The `Froogaloop` library has been replaced with the Vimeo `Player.js` library (2.16.4). + +* The `grunt-eslint` (NPM) library has been upgraded to the latest version. + +* The `jQuery Storage` libraries have been replaced with `julien-maurel/js-storage`. + +* The `php-cs-fixer` and `phpcs` static code analysis tools are now compatible with PHP 8.x. + +* `glob.js` dependency (upgraded with constraint to ~7.2.0) + +* `serve-static.js` dependency (upgraded with constraint ~1.14.2) + +* `underscore.js` dependency (NPM) (1.14.2) + +* `moment-timezone-with-data.js` (0.5.34) + +* The library `jquery/jquery-cookie` has been replaced with `js-cookie/js-cookie`. + +* The `jarallax.js` and `jaralax-video.js` libraries have been updated to use the latest version of the Vimeo REST API. + ### GraphQL -This release includes these GraphQL enhancements: +GraphQL performance enhancements include: + +* **Optimized creation of unified GraphQL schemas**. Rebuilding a GraphQL schema after flushing a Commerce instance’s cache can consume many resources, particularly during heavy site traffic. The time required to rebuild a schema has been reduced significantly. -* **Performance improvements**: +* **Improved authorization processing** through the use of JSON Web Tokens (JWT) and session-less GraphQL API. See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on these enhancements. +### Channel Manager + +Channel Manager can now trigger refunds from {{ site.data.var.ce }}. Merchants can now manage the entire order workflow from within {{ site.data.var.ce }}, including these tasks: + +* Process refunds from {{ site.data.var.ce }} +* Refund shoppers using the origin form of payment + +Requests are now automatically synced back to the Walmart Marketplace. + +### Inventory + +Inventory template security has been enhanced. + +### PWA Studio + +PWA Studio v.12.5.x is compatible with {{ site.data.var.ce }} 2.4.5. + +New features for this release include: + +* Shopper behavior data is collected on PWA Studio storefront for web analytics services. Merchants can now subscribe and extend these events as needed. + +* Merchants can now select a service to deploy from the Admin (Beacon or Google Tag Manager). + +For information about enhancements and bug fixes, see [PWA Studio releases](https://github.com/magento/pwa-studio/releases). See [Version compatibility](https://developer.adobe.com/commerce/pwa-studio/integrations/adobe-commerce/version-compatibility/) for a list of PWA Studio versions and their compatible {{ site.data.var.ee }} core versions. + ### PayPal Payment enhancements +* Merchants in Spain and Italy can now offer PayPal Pay Later to shoppers. + +* Previews of the PayPal, Credit and Pay Later buttons are now available in the Admin for the checkout, minicart, cart, and product pages. Previews reveal how these buttons will look when they are enabled and rendered on the storefront. + +#### Braintree + +Braintree has discontinued the KOUNT integration and it has been removed from the codebase. ### Accessibility updates -This release brings enhanced conformance to standard accessibility guidelines. +This release includes enhancements to the Admin UI that improve the experience of users with vision limitations and increase conformance to standard accessibility guidelines. These enhancements include: + +* The screen reader now summarizes search results +* Screen readers are now informed when a new page loads +* Contrast and keyboard accessibility have been improved ### Page Builder +Page Builder v.1.7.2 is compatible with {{ site.data.var.ee }} 2.4.5. + +Page Builder column layout includes these enhancements: + +* Columns are now exposed, permitting users to control column settings on the storefront. + +* Column resizing now supports wrapping triggered by user actions. + ## Fixed issues @@ -705,10 +824,6 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. * `indexer:reset` has been refactored to call `$indexer->invalidate()`. [GitHub-34988](https://github.com/magento/magento2/issues/34988) -#### Library removals and deprecations - -#### Library upgrades - ### Logging From cd87ecf539ea78cbe17a83605747a355a34c7816 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Tue, 12 Jul 2022 16:32:29 -0500 Subject: [PATCH 044/491] changed branch to brand --- src/guides/v2.4/release-notes/commerce-2-4-5.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 6a6b67e1d78..639c547b60f 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -141,7 +141,7 @@ The {{ site.data.var.ee }} checkout workflow now supports the inclusion of an es ### Branding and style changes -The Admin has been updated to align with Adobe’s branch strategy. Changes affect headers, footers, data grid color updates, and navigation elements. +The Admin has been updated to align with Adobe’s brand strategy. Changes affect headers, footers, data grid color updates, and navigation elements. ### B2B From cfbed95c88cdeacc50bceacaacb8e9ce04a68cb1 Mon Sep 17 00:00:00 2001 From: Jeff Matthews Date: Wed, 13 Jul 2022 09:19:57 -0500 Subject: [PATCH 045/491] Removed inventory mgmt notes --- src/guides/v2.3/inventory/release-notes.md | 40 ---------------------- 1 file changed, 40 deletions(-) diff --git a/src/guides/v2.3/inventory/release-notes.md b/src/guides/v2.3/inventory/release-notes.md index 130e6889cdd..e08a1437df9 100644 --- a/src/guides/v2.3/inventory/release-notes.md +++ b/src/guides/v2.3/inventory/release-notes.md @@ -22,46 +22,6 @@ The release notes include: - {:.fix}Fixes and improvements - {:.bug}Known issues -### v1.2.x - -{{site.data.var.im}} 1.2.x (module version: `magento/inventory-metapackage = 1.2.4`) is supported with version 2.4.4 and compatible with version 2.4.0 of {{site.data.var.ce}}, {{site.data.var.ee}}, and {{site.data.var.ece}}. - -- {:.fix} The default inventory stock status of bundle and grouped products is now updated as expected when a merchant creates a shipment from the Admin. Previously, the status of these products remained unchanged after a shipment was created. - -- {:.fix} Configurable products are now returned back to stock when one of these conditions is met: the parent product has at least one saved child in stock, or the configurable product itself was updated and set as **in stock** and had at least one child in stock. - -- {:.fix} Inventory changes implemented through the REST API are now reflected as expected on product detail pages. The cache for catalog products is now cleaned after comparing the last and current stock statuses. Previously, omitting the callback function resulted in the incorrect evaluation of stock status changes, which did not trigger the necessary cache cleaning. As a result, the storefront did not reflect the inventory changes. - -- {:.fix} Products that are assigned to default stock and that were previously out of stock are now visible on the storefront after updating the source item using `/V1/inventory/source-items`. Previously, this REST API endpoint set the wrong `stock_status`. - -- {:.fix} Unassigning inventory sources through bulk action (**Catalog** > **Products** > **Select Products** > **Actions - Unassign Inventory Source**) now works as expected when sources include SKUs that are duplicates with the exception of a leading zero (for example, `01234` and `1234`). Previously, Magento did not unassign inventory sources and threw an error. - -- {:.fix} Product stock status is now always **in stock** on the storefront when infinite back orders are enabled and the product is assigned to a custom stock, regardless of the quantity backordered. Previously, products went out of stock even when back orders were enabled. - -- {:.fix} Configurable product parent and child product stock is now updated correctly after the source item is updated with `POST /V1/inventory/source-items`. After the child product has been updated through the API, a new Inventory plugin for default stock checks and updates configurable product quantity and status. - -- {:.fix} Out-of-stock grouped products are no longer listed on the storefront Category page. - -- {:.fix} Corrected the package name in `CatalogInventory` `composer.json`. - -- {:.fix} Back order status is now correctly represented in the Admin after placing an order with zero quantity product in a multi source/stock deployment. [GitHub-33756](https://github.com/magento/magento2/issues/33756) - -- {:.fix} Out-of-stock bundle products are no longer displayed on the storefront Category page when the bundle product is updated from the stocks section. - -- {:.fix} Compatibility issues with PHP 7.4 have been resolved. - -- {:.fix} The performance of save operations that include bundle products that contain many options (several hundred) has been improved. Previously, saving these large bundle products took several minutes and sometimes resulted in timeouts in deployments with Inventory services enabled. [GitHub-34732](https://github.com/magento/magento2/issues/34732) - -- {:.fix} The product bulk action tool (**Catalog** > **Products** > **Select Products** > **Actions** > **Assign Inventory Source**) now works as expected when assigning inventory source to multiple products when SKUs are duplicated with the exception of a leading 0 (for example, 01234 and 1234). Previously, only one product was assigned an Inventory source. [GitHub-35171](https://github.com/magento/magento2/issues/35171) - -- {:.fix} The `ProductInterface.only_x_left_in_stock` field now returns 0 if inventory is 0. Previously, it returned null. [GitHub-29932](https://github.com/magento/magento2/issues/29932) - -- {:.fix} You can now edit default stock from Admin **Stores** > **Inventory** > **Stocks**. Previously, a JavaScript error was displayed in the console when you tried to add or remove sources from default stock, although you could assign websites to default stock. - -- {:.fix} The category list product count is now correct when using inventory single-source mode with the **Display Out-Of-Stock Products** setting enabled. A new plugin now uses `AreProductsSalableInterface` and `StockConfigurationInterface` to determine the total number of products. Previously, the category product list returned the wrong product quantity. - -- {:.fix} Configurable products are now moved to the last position in the product listing after stock is updated when the **Move out of stock to the bottom** setting is enabled. A new custom database query has been implemented to negate Elasticsearch index sort order, which disregards Admin-enabled sort order. Previously, configurable products and their child products were not moved to the bottom of the list when this setting was enabled. - ### v1.2.4 {{site.data.var.im}} 1.2.4 (module version: `magento/inventory-metapackage = 1.2.4`) is supported with version 2.4.4 and compatible with version 2.4.0 of {{site.data.var.ce}}, {{site.data.var.ee}}, and {{site.data.var.ece}}. From 22e4df0f4a2b0036d351b111d3831e5ecea62ebb Mon Sep 17 00:00:00 2001 From: Jeff Matthews Date: Wed, 13 Jul 2022 09:21:04 -0500 Subject: [PATCH 046/491] Removed B2B notes --- .../v2.4/release-notes/b2b-release-notes.md | 28 ------------------- 1 file changed, 28 deletions(-) diff --git a/src/guides/v2.4/release-notes/b2b-release-notes.md b/src/guides/v2.4/release-notes/b2b-release-notes.md index 04b66bc0748..845a7abca93 100644 --- a/src/guides/v2.4/release-notes/b2b-release-notes.md +++ b/src/guides/v2.4/release-notes/b2b-release-notes.md @@ -11,34 +11,6 @@ These release notes can include: - {:.new} New features - {:.fix} Fixes and improvements -## {{ site.data.var.ee }} B2B 1.3.4 - Adobe Commerce 2.4.5 - -- {:.fix} {{ site.data.var.ee }} no longer sends email notifications each time an existing Company is updated by an API call. Emails are now sent only when a company is created. - -- {:.fix} {{ site.data.var.ee }} now correctly calculates a negotiable quote grand total when the **Enable Cross Border Trade** tax calculation setting is enabled. - -- {:.fix} Configurable products are now moved to the last position in the product listing after stock is updated when the **Move out of stock to the bottom** setting is enabled. A new custom database query has been implemented to ensure Elasticsearch index sort order now honors the Admin-enabled sort order. Previously, configurable products and their child products were not moved to the bottom of the list when this setting was enabled. - -- {:.fix} Purchase Order email now honors the email sending setting of each website in a multi-site deployment. A check for the **Disable Email Communications** setting has been added to the custom logic for email queues. Previously, {{ site.data.var.ee }} did not honor the email sending setting of the secondary website. - -- {:.fix} The title of the SKU field of the Quick Order page has been edited for clarity. - -- {:.fix} {{ site.data.var.ee }} now displays a more informative error message when a shopper enters an invalid SKU in the **Enter SKU or Product Name** field. - -- {:.fix} The **Account Created in** field for a company administrator now retains its value as expected after you save the company. - -- {:.fix} The `customer` query no longer returns empty results when it retrieves requisition lists that are filtered by `uid`. - -- {:.fix} Added a plugin before the `collectQuoteTotals` call to ensure that store credits are applied only once. - -- {:.fix} Customers are now redirected to the login page when their account is deleted by an administrator from the Admin. Previously, {{ site.data.var.ee }} threw an error. The plugin (`SessionPlugin`) code block is now inside the `try…catch` block. Previously, this code was not wrapped inside the generic exception handling block. - -- {:.fix} Pressing **Enter** on the Quick Order page in mobile mode after entering a valid product name or SKU now takes the shopper to the next field as expected. - -- {:.fix} Company name is now visible as expected in the billing and shipping address sections of the checkout workflow. - -- {:.fix} Store credit is now unavailable when the Zero Subtotal Checkout payment method is disabled. Previously, the Store Credit checkbox was not functional during order placement from Admin. {{ site.data.var.ce }} did not place the order with the store credit and displayed this error: `The requested Payment Method is not available`. - ## {{ site.data.var.ee }} B2B - Adobe Commerce 2.4.4 - {:.fix} The time required to upgrade from {{ site.data.var.ee }} 2.3.x to {{ site.data.var.ee }} 2.4.x in deployments with more than 100,000 company roles has been substantially reduced. From 21db235f8a3a2874fe18d1e51c98adf618572b03 Mon Sep 17 00:00:00 2001 From: Alexandra Zota Date: Fri, 15 Jul 2022 15:14:44 +0300 Subject: [PATCH 047/491] ACP2E-996: update cart discounts section with: All applicable promotions for a requested cart are returned together: Line item discounts Cart rules/discounts Coupons Gift Cards Store Credit --- src/guides/v2.4/graphql/queries/cart.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/guides/v2.4/graphql/queries/cart.md b/src/guides/v2.4/graphql/queries/cart.md index e574c96b197..7f897d9e418 100644 --- a/src/guides/v2.4/graphql/queries/cart.md +++ b/src/guides/v2.4/graphql/queries/cart.md @@ -267,6 +267,9 @@ In this query, the **Buy 3 tee shirts and get the 4th free** cart price rule fro The `3T1free` rule is applied first, and Magento returns the price of a single shirt, $29, as the discount. Magento then applies a 10% discount to the remaining total of the products in the cart. +If other promotions or price adjustments are applied to the cart through either store credit or gift cards, these will reflect under "discounts" with the appropriate label. + + **Request:** ```graphql @@ -332,15 +335,21 @@ The `3T1free` rule is applied first, and Magento returns the price of a single s }, "discounts": [ { - "label": "3T1free", + "label": "Discount (3T1free, 10% Off for New Customers)", + "amount": { + "value": 37.7 + } + }, + { + "label": "Gift Card", "amount": { - "value": 29 + "value": 0.1 } }, { - "label": "10% Off for New Customers", + "label": "Store Credit", "amount": { - "value": 8.7 + "value": 0.1 } } ] From e13bbad8fcd2cb748b7197788dbb754669de5666 Mon Sep 17 00:00:00 2001 From: Alexandra Zota Date: Fri, 15 Jul 2022 16:05:55 +0300 Subject: [PATCH 048/491] ACP2E-996: update cart discounts section with: All applicable promotions for a requested cart are returned together: Line item discounts Cart rules/discounts Coupons Gift Cards Store Credit --- src/guides/v2.4/graphql/queries/cart.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/guides/v2.4/graphql/queries/cart.md b/src/guides/v2.4/graphql/queries/cart.md index 7f897d9e418..08728457953 100644 --- a/src/guides/v2.4/graphql/queries/cart.md +++ b/src/guides/v2.4/graphql/queries/cart.md @@ -269,7 +269,6 @@ The `3T1free` rule is applied first, and Magento returns the price of a single s If other promotions or price adjustments are applied to the cart through either store credit or gift cards, these will reflect under "discounts" with the appropriate label. - **Request:** ```graphql From 57635110377c589518f58731e22029d1f0fbe306 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Mon, 18 Jul 2022 08:39:09 -0500 Subject: [PATCH 049/491] added GQL highlights --- .../v2.4/release-notes/commerce-2-4-5.md | 32 ++++++++++++++----- .../v2.4/release-notes/open-source-2-4-5.md | 20 ++++++++++-- 2 files changed, 42 insertions(+), 10 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 639c547b60f..ef70a13a111 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -135,10 +135,6 @@ This release includes enhancements to the Admin UI that improve the experience o * Screen readers are now informed when a new page loads * Contrast and keyboard accessibility have been improved -### Adobe Sign Extension - -The {{ site.data.var.ee }} checkout workflow now supports the inclusion of an esignature agreement page powered by Adobe Sign. - ### Branding and style changes The Admin has been updated to align with Adobe’s brand strategy. Changes affect headers, footers, data grid color updates, and navigation elements. @@ -147,6 +143,14 @@ The Admin has been updated to align with Adobe’s brand strategy. Changes affec **Reduced eSKU multiplication with Shared Catalogs (Customer Groups)**. The new **Enabled Shared Catalog direct product price assigning** configuration option improves product price indexer performance when enabled. +B2B-related GraphQL performance enhancements: + +* Session class proxies is now used in constructors for classes that depend upon session. Using session proxy delays the lock start time, and can consequently reduce lock duration. + +* Session has been removed from and is not longer stored in `Magento\DirectoryGraphQl\Controller\HttpHeaderProcessor\CurrencyProcessor`. + +* Administrators can now toggle between enabling and disabling session support for GraphQL tasks. + This release includes multiple bug fixes. See [B2B Release Notes]({{page.baseurl}}/release-notes/b2b-release-notes.html). ### Channel Manager @@ -160,13 +164,13 @@ Requests are now automatically synced back to the Walmart Marketplace. ### Google Analytics -See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en). +Google has updated the tracking and integration mechanisms of AdWords and Analytics in web applications through integration with GTag. This integration of Google functionality into website pages extends opportunities to track and manage content through Google Services. Adobe Commerce has a set of built-in modules including Google AdWords, Analytics, Optimizer, and TagManager that leverage the former API for integration with Google services.  In this release, we have re-implemented this integration using the GTag approach.​ See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en).​ See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en). ### GraphQL GraphQL performance enhancements include: -* **Optimized creation of unified GraphQL schemas**. Rebuilding a GraphQL schema after flushing a Commerce instance’s cache can consume many resources, particularly during heavy site traffic. The time required to rebuild a schema has been reduced significantly. +* **Optimized creation of unified GraphQL schemas**. Shoppers and administrators no longer experience decreased product performance when a merchant rebuilds their GraphQL schema. Previously, page load speeds were significantly increased when the GraphQL schema was rebuilt. The number and size of files that are required to rebuild the GraphQL schema has been reduced, which lessens the load on {{ site.data.var.ee }}. * **Improved authorization processing** through the use of JSON Web Tokens (JWT) and session-less GraphQL API. @@ -196,11 +200,13 @@ For information about enhancements and bug fixes, see [PWA Studio releases](http #### Braintree -Braintree has discontinued the KOUNT integration and it has been removed from the codebase. +* Braintree has discontinued the KOUNT fraud protection integration. It has been removed from the {{ site.data.var.ee }} codebase. + +* The **Always request 3DS** option has been added to the Admin. ### Live Search -This release introduces support for B2B customer groups and custom pricing. +This release introduces support for B2B customer groups and custom pricing. Livesearch now respects product assignments to customer groups and the pricing that is set for a specific customer group/shared catalog. ### Page Builder @@ -922,6 +928,10 @@ We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * `indexer:reset` has been refactored to call `$indexer->invalidate()`. [GitHub-34988](https://github.com/magento/magento2/issues/34988) + + +* You can now use use the colon symbol in an `htmlClass` attribute value, which supports the use of additional components such as the Tailwind UI. [GitHub-34430](https://github.com/magento/magento2/issues/34430) + ### Logging @@ -1017,6 +1027,12 @@ Repetitive actions have been replaced with action groups in these tests: * The `cart` query no longer returns all active payment methods for free orders. [GitHub-34036](https://github.com/magento/magento2/issues/34036) +#### Braintree + + + +* Merchants can now submit a partial refund for orders paid with Apple Pay through Braintree. This was a known issue in {{ site.data.var.ee }} 2.4.4. + #### PayPal diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index 44a09fa18fa..81ccb59e9b3 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -117,11 +117,14 @@ The `laminas/laminas-session`, `laminas/laminas-text`, and `laminas/laminas-view * The `jarallax.js` and `jaralax-video.js` libraries have been updated to use the latest version of the Vimeo REST API. +### Google Analytics + +Google has updated the tracking and integration mechanisms of AdWords and Analytics in web applications through integration with GTag. This integration of Google functionality into website pages extends opportunities to track and manage content through Google Services. Adobe Commerce has a set of built-in modules including Google AdWords, Analytics, Optimizer, and TagManager that leverage the former API for integration with Google services.  In this release, we have re-implemented this integration using the GTag approach.​ See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en).​ See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en). ### GraphQL GraphQL performance enhancements include: -* **Optimized creation of unified GraphQL schemas**. Rebuilding a GraphQL schema after flushing a Commerce instance’s cache can consume many resources, particularly during heavy site traffic. The time required to rebuild a schema has been reduced significantly. +* **Optimized creation of unified GraphQL schemas**. Shoppers and administrators no longer experience decreased product performance when a merchant rebuilds their GraphQL schema. Previously, page load speeds were significantly increased when the GraphQL schema was rebuilt. The number and size of files that are required to rebuild the GraphQL schema has been reduced, which lessens the load on {{ site.data.var.ee }}. * **Improved authorization processing** through the use of JSON Web Tokens (JWT) and session-less GraphQL API. @@ -160,7 +163,10 @@ For information about enhancements and bug fixes, see [PWA Studio releases](http #### Braintree -Braintree has discontinued the KOUNT integration and it has been removed from the codebase. +* Braintree has discontinued the KOUNT fraud protection integration. It has been removed from the {{ site.data.var.ee }} codebase. + +* The **Always request 3DS** option has been added to the Admin. + ### Accessibility updates This release includes enhancements to the Admin UI that improve the experience of users with vision limitations and increase conformance to standard accessibility guidelines. These enhancements include: @@ -824,6 +830,10 @@ We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. * `indexer:reset` has been refactored to call `$indexer->invalidate()`. [GitHub-34988](https://github.com/magento/magento2/issues/34988) + + +* You can now use use the colon symbol in an `htmlClass` attribute value, which supports the use of additional components such as the Tailwind UI. [GitHub-34430](https://github.com/magento/magento2/issues/34430) + ### Logging @@ -910,6 +920,12 @@ Repetitive actions have been replaced with action groups in these tests: * The `cart` query no longer returns all active payment methods for free orders. [GitHub-34036](https://github.com/magento/magento2/issues/34036) +#### Braintree + + + +* Merchants can now submit a partial refund for orders paid with Apple Pay through Braintree. This was a known issue in {{ site.data.var.ee }} 2.4.4. + #### PayPal From 1634622c0f516ca8281be8ef388605b844362326 Mon Sep 17 00:00:00 2001 From: Jeff Matthews Date: Mon, 18 Jul 2022 14:40:49 -0500 Subject: [PATCH 050/491] Added 2.4.5 packages --- src/_data/mde.yml | 168 +++++++++++++++++++++++++++++++++++- src/release/availability.md | 4 +- 2 files changed, 169 insertions(+), 3 deletions(-) diff --git a/src/_data/mde.yml b/src/_data/mde.yml index e964aeedd4e..dcb56fd6ad6 100644 --- a/src/_data/mde.yml +++ b/src/_data/mde.yml @@ -1,5 +1,6 @@ --- versions: + - 2.4.5 - 2.4.4 - 2.4.3 - 2.4.2 @@ -20,6 +21,7 @@ extensions: - name: 4.4.3 support: + 2.4.5: supported 2.2.4: supported 2.4.3: supported 2.4.2: supported @@ -36,6 +38,7 @@ extensions: - name: 4.4.2 support: + 2.4.5: supported 2.4.4: supported 2.4.3: supported 2.4.2: supported @@ -52,6 +55,7 @@ extensions: - name: 4.4.1 support: + 2.4.5: supported 2.4.4: supported 2.4.3: supported 2.4.2: supported @@ -68,6 +72,7 @@ extensions: - name: 4.4.0 support: + 2.4.5: supported 2.4.4: supported 2.4.3: supported 2.4.2: supported @@ -84,6 +89,7 @@ extensions: - name: 4.3.0 support: + 2.4.5: supported 2.4.4: supported 2.4.3: supported 2.4.2: supported @@ -100,6 +106,7 @@ extensions: - name: 4.2.0 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -116,6 +123,7 @@ extensions: - name: 4.1.0 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -132,6 +140,7 @@ extensions: - name: 4.0.0 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -148,6 +157,7 @@ extensions: - name: 3.0.1 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -164,6 +174,7 @@ extensions: - name: 3.0.0 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -180,6 +191,7 @@ extensions: - name: 2.0.0 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -196,9 +208,27 @@ extensions: - name: B2B versions: + - + name: 1.3.4 + support: + 2.4.5: supported + 2.4.4: compatible + 2.4.3: compatible + 2.4.2: compatible + 2.4.1: compatible + 2.4.0: compatible + 2.3.7: compatible + 2.3.6: compatible + 2.3.5-p1: compatible + 2.3.4: compatible + 2.3.3: compatible + 2.3.2: compatible + 2.3.1: compatible + 2.3.0: compatible - name: 1.3.3 support: + 2.4.5: compatible 2.4.4: supported 2.4.3: compatible 2.4.2: compatible @@ -215,6 +245,7 @@ extensions: - name: 1.3.2 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: supported 2.4.2: compatible @@ -231,6 +262,7 @@ extensions: - name: 1.3.1 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: supported @@ -247,6 +279,7 @@ extensions: - name: 1.3.0 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -263,6 +296,7 @@ extensions: - name: 1.2.0 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -279,6 +313,7 @@ extensions: - name: 1.1.7 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -295,6 +330,7 @@ extensions: - name: 1.1.6 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -311,6 +347,7 @@ extensions: - name: 1.1.5 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -327,6 +364,7 @@ extensions: - name: 1.1.4 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -343,6 +381,7 @@ extensions: - name: 1.1.3 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -359,6 +398,7 @@ extensions: - name: 1.1.2 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -375,6 +415,7 @@ extensions: - name: 1.1.1 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -391,6 +432,7 @@ extensions: - name: 1.1.0 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -407,9 +449,27 @@ extensions: - name: Inventory Management versions: + - + name: 1.2.5 + support: + 2.4.5: supported + 2.4.4: compatible + 2.4.3: compatible + 2.4.2: compatible + 2.4.1: compatible + 2.4.0: compatible + 2.3.7: compatible + 2.3.6: compatible + 2.3.5-p1: compatible + 2.3.4: compatible + 2.3.3: compatible + 2.3.2: compatible + 2.3.1: compatible + 2.3.0: compatible - name: 1.2.4 support: + 2.4.5: compatible 2.4.4: supported 2.4.3: compatible 2.4.2: compatible @@ -426,6 +486,7 @@ extensions: - name: 1.2.3 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: supported 2.4.2: compatible @@ -442,6 +503,7 @@ extensions: - name: 1.2.2 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: supported @@ -458,6 +520,7 @@ extensions: - name: 1.2.1 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -474,6 +537,7 @@ extensions: - name: 1.2.0 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -490,6 +554,7 @@ extensions: - name: 1.1.7 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -506,6 +571,7 @@ extensions: - name: 1.1.6 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -522,6 +588,7 @@ extensions: - name: 1.1.5 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -538,6 +605,7 @@ extensions: - name: 1.1.4 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -554,6 +622,7 @@ extensions: - name: 1.1.3 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -570,6 +639,7 @@ extensions: - name: 1.1.2 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -586,6 +656,7 @@ extensions: - name: 1.1.1 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -602,6 +673,7 @@ extensions: - name: 1.1.0 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -619,8 +691,26 @@ extensions: name: Live Search versions: - - name: 1.3.1 + name: 2.0.3 + support: + 2.4.5: supported + 2.4.4: supported + 2.4.3: supported + 2.4.2: supported + 2.4.1: supported + 2.4.0: supported + 2.3.7: not supported + 2.3.6: not supported + 2.3.5-p1: not supported + 2.3.4: not supported + 2.3.3: not supported + 2.3.2: not supported + 2.3.1: not supported + 2.3.0: not supported + - + name: 2.0.0 support: + 2.4.5: supported 2.4.4: supported 2.4.3: supported 2.4.2: supported @@ -637,6 +727,7 @@ extensions: - name: 1.3.0 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -653,6 +744,7 @@ extensions: - name: 1.2.0 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -669,6 +761,7 @@ extensions: - name: 1.1.0 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -685,9 +778,27 @@ extensions: - name: Page Builder versions: + - + name: 1.7.2 + support: + 2.4.5: supported + 2.4.4: not supported + 2.4.3: not supported + 2.4.2: not supported + 2.4.1: not supported + 2.4.0: not supported + 2.3.7: not supported + 2.3.6: not supported + 2.3.5-p1: not supported + 2.3.4: not supported + 2.3.3: not supported + 2.3.2: not supported + 2.3.1: not supported + 2.3.0: not supported - name: 1.7.1 support: + 2.4.5: not supported 2.4.4: supported 2.4.3: not supported 2.4.2: not supported @@ -704,6 +815,7 @@ extensions: - name: 1.7.0 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: supported 2.4.2: not supported @@ -720,6 +832,7 @@ extensions: - name: 1.6.0 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: supported @@ -736,6 +849,7 @@ extensions: - name: 1.5.0 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -752,6 +866,7 @@ extensions: - name: 1.4.0 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -768,6 +883,7 @@ extensions: - name: 1.3.6 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -784,6 +900,7 @@ extensions: - name: 1.3.4 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -800,6 +917,7 @@ extensions: - name: 1.3.1 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -816,6 +934,7 @@ extensions: - name: 1.2.0 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -832,6 +951,8 @@ extensions: - name: 1.1.0 support: + 2.4.5: not supported + 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported 2.4.1: not supported @@ -847,6 +968,7 @@ extensions: - name: 1.0.1 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -863,6 +985,7 @@ extensions: - name: 1.0.0 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -879,9 +1002,27 @@ extensions: - name: Payment Services versions: + - + name: 1.3.0 + support: + 2.4.5: supported + 2.4.4: supported + 2.4.3: supported + 2.4.2: supported + 2.4.1: supported + 2.4.0: supported + 2.3.7: not supported + 2.3.6: not supported + 2.3.5-p1: not supported + 2.3.4: not supported + 2.3.3: not supported + 2.3.2: not supported + 2.3.1: not supported + 2.3.0: not supported - name: 1.1.0 support: + 2.4.5: supported 2.4.4: supported 2.4.3: supported 2.4.2: supported @@ -898,6 +1039,7 @@ extensions: - name: 1.0.0 support: + 2.4.5: supported 2.4.4: supported 2.4.3: supported 2.4.2: supported @@ -917,6 +1059,7 @@ extensions: - name: 4.0.0 support: + 2.4.5: supported 2.4.4: supported 2.4.3: supported 2.4.2: supported @@ -933,6 +1076,7 @@ extensions: - name: 3.3.7 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -949,6 +1093,7 @@ extensions: - name: 3.3.6 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -965,6 +1110,7 @@ extensions: - name: 3.3.5 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -981,6 +1127,7 @@ extensions: - name: 3.3.3 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -997,6 +1144,7 @@ extensions: - name: 3.3.2 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -1013,6 +1161,7 @@ extensions: - name: 3.3.1 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -1029,6 +1178,7 @@ extensions: - name: 3.3.0 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -1045,6 +1195,7 @@ extensions: - name: 3.2.6 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -1061,6 +1212,7 @@ extensions: - name: 3.2.5 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -1077,6 +1229,7 @@ extensions: - name: 3.2.4 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -1093,6 +1246,7 @@ extensions: - name: 3.2.3 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -1109,6 +1263,7 @@ extensions: - name: 3.2.2 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -1125,6 +1280,7 @@ extensions: - name: 3.10.0 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -1141,6 +1297,7 @@ extensions: - name: 3.0.8 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -1157,6 +1314,7 @@ extensions: - name: 3.0.6 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -1173,6 +1331,7 @@ extensions: - name: 3.0.5 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -1189,6 +1348,7 @@ extensions: - name: 3.0.4 support: + 2.4.5: compatible 2.4.4: compatible 2.4.3: compatible 2.4.2: compatible @@ -1205,6 +1365,7 @@ extensions: - name: 3.0.3 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -1221,6 +1382,7 @@ extensions: - name: 3.0.2 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -1237,6 +1399,7 @@ extensions: - name: 3.0.1 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -1253,6 +1416,7 @@ extensions: - name: 3.0.0 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -1269,6 +1433,7 @@ extensions: - name: 2.0.0 support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported @@ -1285,6 +1450,7 @@ extensions: - name: 1.x.x support: + 2.4.5: not supported 2.4.4: not supported 2.4.3: not supported 2.4.2: not supported diff --git a/src/release/availability.md b/src/release/availability.md index bc5219827d1..10cdedac2fa 100644 --- a/src/release/availability.md +++ b/src/release/availability.md @@ -7,13 +7,13 @@ The following table describes the status of Adobe Commerce software availability | Product | Availability | How to get it | |-|-|-| -| **{{site.data.var.ee}} 2.4.4** | Available now | [Composer]({{ site.baseurl }}{{ site.gdeurl }}/install-gde/composer.html) | +| **{{site.data.var.ee}} 2.4.5** | Available now | [Composer]({{ site.baseurl }}{{ site.gdeurl }}/install-gde/composer.html) | | **{{site.data.var.ece}} Tools (aka ECE-Tools)** | Available now | [Composer]({{ site.baseurl }}/cloud/project/ece-tools-update.html) | | **Live Search** | Available now | [Commerce Marketplace](https://marketplace.magento.com/magento-live-search.html) \| [Developer Documentation]({{ site.baseurl }}/live-search/overview.html) \| [Release Notes](https://docs.magento.com/user-guide/live-search/release-notes.html) \| [User Guide](https://docs.magento.com/user-guide/live-search/overview.html) | | **Payment Services** | Available now | [Commerce Marketplace](https://marketplace.magento.com/magento-payment-services.html) \| [Release Notes](https://experienceleague.adobe.com/docs/commerce-merchant-services/payment-services/release-notes.html) \| [User Guide](https://experienceleague.adobe.com/docs/commerce-merchant-services/payment-services/guide-overview.html) | | **Product Recommendations** | Available now | [Commerce Marketplace](https://marketplace.magento.com/magento-product-recommendations.html) \| [Developer Documentation]({{ site.baseurl }}/recommendations/product-recs.html) \| [Release Notes](https://experienceleague.adobe.com/docs/commerce-merchant-services/product-recommendations/release-notes.html) \| [User Guide](https://docs.magento.com/m2/ee/user_guide/marketing/product-recommendations.html) | | **PWA Studio** | Available now | [Documentation](https://developer.adobe.com/commerce/pwa-studio/) and [GitHub](https://github.com/magento/pwa-studio) | -| **Amazon Sales Channel 4.4.1** | Available now for {{site.data.var.ee}} versions 2.4.x and 2.3.x (US, Canada, Mexico, and UK) | [Commerce Marketplace](https://marketplace.magento.com/magento-module-amazon.html) \| [Release Notes](https://experienceleague.adobe.com/docs/commerce-channels/amazon/release-notes.html) \| [User Guide]({{ site.user_guide_url }}/sales-channels/asc/amazon-sales-channel.html) | +| **Amazon Sales Channel** | Available now for {{site.data.var.ee}} versions 2.4.x and 2.3.x (US, Canada, Mexico, and UK) | [Commerce Marketplace](https://marketplace.magento.com/magento-module-amazon.html) \| [Release Notes](https://experienceleague.adobe.com/docs/commerce-channels/amazon/release-notes.html) \| [User Guide]({{ site.user_guide_url }}/sales-channels/asc/amazon-sales-channel.html) | ## Compatibility From 028ed188f0ec1dd20efb95203c5523fcd8a5d840 Mon Sep 17 00:00:00 2001 From: Jeff Matthews Date: Mon, 18 Jul 2022 14:58:27 -0500 Subject: [PATCH 051/491] Fixed typo --- src/_data/mde.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/_data/mde.yml b/src/_data/mde.yml index dcb56fd6ad6..ba2f0aacdb3 100644 --- a/src/_data/mde.yml +++ b/src/_data/mde.yml @@ -22,7 +22,7 @@ extensions: name: 4.4.3 support: 2.4.5: supported - 2.2.4: supported + 2.4.4: supported 2.4.3: supported 2.4.2: supported 2.4.1: supported From 1f622cb637bb6dbd351ebd4201a58ca0ec3be917 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Mon, 18 Jul 2022 21:25:33 -0500 Subject: [PATCH 052/491] entered cpartica's review comments --- .../v2.4/release-notes/commerce-2-4-5.md | 56 +++++++-------- .../v2.4/release-notes/open-source-2-4-5.md | 68 +++++++++++-------- 2 files changed, 68 insertions(+), 56 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index ef70a13a111..3c497a2b087 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -3,6 +3,8 @@ group: release-notes title: Adobe Commerce 2.4.5 Release Notes --- +{{ site.data.var.ee }} introduces improvements to platform quality, payment methods, GraphQL caching performance, and accessibility. It includes updates to integrated Google modules and the Upgrade Compatibility Tool and introduces Live Search B2B support. + This release includes over 400 quality fixes and enhancements. {:.bs-callout-info} @@ -22,7 +24,7 @@ Look for the following highlights in this release. ### Security enhancements -This release includes 20 security fix and platform security improvements. This security fix has been backported to {{ site.data.var.ee }} 2.4.3-p3 and {{ site.data.var.ee }} 2.3.7-p4. +This release includes 20 security fixes and platform security improvements. This security fix has been backported to {{ site.data.var.ee }} 2.4.3-p3 and {{ site.data.var.ee }} 2.3.7-p4. No confirmed attacks related to these issues have occurred to date. However, certain vulnerabilities can potentially be exploited to access customer information or take over administrator sessions. Most of these issues require that an attacker first obtains access to the Admin. As a result, we remind you to take all necessary steps to protect your Admin, including but not limited to these efforts: @@ -141,15 +143,7 @@ The Admin has been updated to align with Adobe’s brand strategy. Changes affec ### B2B -**Reduced eSKU multiplication with Shared Catalogs (Customer Groups)**. The new **Enabled Shared Catalog direct product price assigning** configuration option improves product price indexer performance when enabled. - -B2B-related GraphQL performance enhancements: - -* Session class proxies is now used in constructors for classes that depend upon session. Using session proxy delays the lock start time, and can consequently reduce lock duration. - -* Session has been removed from and is not longer stored in `Magento\DirectoryGraphQl\Controller\HttpHeaderProcessor\CurrencyProcessor`. - -* Administrators can now toggle between enabling and disabling session support for GraphQL tasks. +We have optimized the normalized database data that is needed to implement the Shared Catalogs feature. This reduction in eSKU multiplication results in a performance boost as fewer database rows must be stored. Enabling the new **Enabled Shared Catalog direct product price assigning** configuration option also improves product price indexer performance. This release includes multiple bug fixes. See [B2B Release Notes]({{page.baseurl}}/release-notes/b2b-release-notes.html). @@ -170,9 +164,15 @@ Google has updated the tracking and integration mechanisms of AdWords and Analyt GraphQL performance enhancements include: -* **Optimized creation of unified GraphQL schemas**. Shoppers and administrators no longer experience decreased product performance when a merchant rebuilds their GraphQL schema. Previously, page load speeds were significantly increased when the GraphQL schema was rebuilt. The number and size of files that are required to rebuild the GraphQL schema has been reduced, which lessens the load on {{ site.data.var.ee }}. +* Developers and administrators experience faster rebuilding of the unified storefront GraphQL schema on deployment or when changing attributes in production. Shoppers also experience significantly faster page load speeds when the GraphQL schema must be rebuilt for any reason. -* **Improved authorization processing** through the use of JSON Web Tokens (JWT) and session-less GraphQL API. +* Added capability to consume the expiration date/time of the authorization token through the use of JSON Web Tokens (JWT) in the GraphQL API. + +* The `bin/magento config:set graphql/session/disable 1` command allows merchants of Adobe Commerce to to completely disable the creation of session cookies for all GraphQL operations. By default, Adobe Commerce creates these cookies and relies on them for authorization, which affects performance. Going forward, the only form of authorization we recommend for GraphQL requests is authorization tokens that should not used in combination with cookies. See [GraphQL Authorization]({{page.baseurl}}/graphql/authorization-tokens.html). + +* Session cookies are now launched in GraphQL operations using class proxies only when needed. + +* Session usage has been removed from `http` header processors in GraphQL such as store, customer or currency. See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on these enhancements. @@ -180,19 +180,23 @@ See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on thes Inventory template security has been enhanced. -### PWA Studio +### Live Search -PWA Studio v.12.5.x is compatible with {{ site.data.var.ee }} 2.4.5. +This release introduces support for B2B customer groups and custom pricing. Livesearch now respects product assignments to customer groups and the pricing that is set for a specific customer group/shared catalog. -New features for this release include: +### Page Builder -* Shopper behavior data is collected on PWA Studio storefront for web analytics services. Merchants can now subscribe and extend these events as needed. +Page Builder v.1.7.2 is compatible with {{ site.data.var.ee }} 2.4.5. -* Merchants can now select a service to deploy from the Admin (Beacon or Google Tag Manager). +Page Builder column layout includes these enhancements: -For information about enhancements and bug fixes, see [PWA Studio releases](https://github.com/magento/pwa-studio/releases). See [Version compatibility](https://developer.adobe.com/commerce/pwa-studio/integrations/adobe-commerce/version-compatibility/) for a list of PWA Studio versions and their compatible {{ site.data.var.ee }} core versions. +* Columns are now exposed, permitting users to control column settings on the storefront. + +* Column resizing now supports wrapping triggered by user actions. -### PayPal Payment enhancements +### Payments + +#### PayPal * Merchants in Spain and Italy can now offer PayPal Pay Later to shoppers. @@ -204,19 +208,17 @@ For information about enhancements and bug fixes, see [PWA Studio releases](http * The **Always request 3DS** option has been added to the Admin. -### Live Search - -This release introduces support for B2B customer groups and custom pricing. Livesearch now respects product assignments to customer groups and the pricing that is set for a specific customer group/shared catalog. +### PWA Studio -### Page Builder +PWA Studio v.12.5.x is compatible with {{ site.data.var.ee }} 2.4.5. -Page Builder v.1.7.2 is compatible with {{ site.data.var.ee }} 2.4.5. +New features for this release include: -Page Builder column layout includes these enhancements: +* Shopper behavior data is collected on PWA Studio storefront for web analytics services. Merchants can now subscribe and extend these events as needed. -* Columns are now exposed, permitting users to control column settings on the storefront. +* Merchants can now select a service to deploy from the Admin (Beacon or Google Tag Manager). -* Column resizing now supports wrapping triggered by user actions. +For information about enhancements and bug fixes, see [PWA Studio releases](https://github.com/magento/pwa-studio/releases). See [Version compatibility](https://developer.adobe.com/commerce/pwa-studio/integrations/adobe-commerce/version-compatibility/) for a list of PWA Studio versions and their compatible {{ site.data.var.ee }} core versions. ### Upgrade Compatibility Tool diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index 81ccb59e9b3..df3a8d02247 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -3,6 +3,8 @@ group: release-notes title: Magento Open Source 2.4.5 Release Notes --- +{{ site.data.var.ce }} introduces improvements to platform quality, payment methods, GraphQL caching performance, and accessibility. It includes updates to integrated Google modules. + This release includes over 290 quality fixes and enhancements. {:.bs-callout-info} @@ -22,7 +24,7 @@ Look for the following highlights in this release. ### Security enhancements -This release includes security fix and platform security improvements. This security fix has been backported to {{ site.data.var.ce }} 2.4.4-p1 and {{ site.data.var.ce }} 2.3.7-p4. +This release includes 20 security fix and platform security improvements. This security fix has been backported to {{ site.data.var.ce }} 2.4.4-p1 and {{ site.data.var.ce }} 2.3.7-p4. No confirmed attacks related to these issues have occurred to date. However, certain vulnerabilities can potentially be exploited to access customer information or take over administrator sessions. Most of these issues require that an attacker first obtains access to the Admin. As a result, we remind you to take all necessary steps to protect your Admin, including but not limited to these efforts: @@ -117,6 +119,23 @@ The `laminas/laminas-session`, `laminas/laminas-text`, and `laminas/laminas-view * The `jarallax.js` and `jaralax-video.js` libraries have been updated to use the latest version of the Vimeo REST API. +### Accessibility updates + +This release includes enhancements to the Admin UI that improve the experience of users with vision limitations and increase conformance to standard accessibility guidelines. These enhancements include: + +* The screen reader now summarizes search results +* Screen readers are now informed when a new page loads +* Contrast and keyboard accessibility have been improved + +### Channel Manager + +Channel Manager can now trigger refunds from {{ site.data.var.ce }}. Merchants can now manage the entire order workflow from within {{ site.data.var.ce }}, including these tasks: + +* Process refunds from {{ site.data.var.ce }} +* Refund shoppers using the origin form of payment + +Requests are now automatically synced back to the Walmart Marketplace. + ### Google Analytics Google has updated the tracking and integration mechanisms of AdWords and Analytics in web applications through integration with GTag. This integration of Google functionality into website pages extends opportunities to track and manage content through Google Services. Adobe Commerce has a set of built-in modules including Google AdWords, Analytics, Optimizer, and TagManager that leverage the former API for integration with Google services.  In this release, we have re-implemented this integration using the GTag approach.​ See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en).​ See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en). @@ -124,38 +143,35 @@ Google has updated the tracking and integration mechanisms of AdWords and Analyt GraphQL performance enhancements include: -* **Optimized creation of unified GraphQL schemas**. Shoppers and administrators no longer experience decreased product performance when a merchant rebuilds their GraphQL schema. Previously, page load speeds were significantly increased when the GraphQL schema was rebuilt. The number and size of files that are required to rebuild the GraphQL schema has been reduced, which lessens the load on {{ site.data.var.ee }}. +* Developers and administrators experience faster rebuilding of the unified storefront GraphQL schema on deployment or when changing attributes in production. Shoppers also experience significantly faster page load speeds when the GraphQL schema must be rebuilt for any reason. -* **Improved authorization processing** through the use of JSON Web Tokens (JWT) and session-less GraphQL API. +* Added capability to consume the expiration date/time of the authorization token through the use of JSON Web Tokens (JWT) in the GraphQL API. -See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on these enhancements. - -### Channel Manager +* The `bin/magento config:set graphql/session/disable 1` command allows merchants of Adobe Commerce to to completely disable the creation of session cookies for all GraphQL operations. By default, Adobe Commerce creates these cookies and relies on them for authorization, which affects performance. Going forward, the only form of authorization we recommend for GraphQL requests is authorization tokens that should not used in combination with cookies. See [GraphQL Authorization]({{page.baseurl}}/graphql/authorization-tokens.html). -Channel Manager can now trigger refunds from {{ site.data.var.ce }}. Merchants can now manage the entire order workflow from within {{ site.data.var.ce }}, including these tasks: +* Session cookies are now launched in GraphQL operations using class proxies only when needed. -* Process refunds from {{ site.data.var.ce }} -* Refund shoppers using the origin form of payment +* Session usage has been removed from `http` header processors in GraphQL such as store, customer or currency. -Requests are now automatically synced back to the Walmart Marketplace. +See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on these enhancements. ### Inventory Inventory template security has been enhanced. -### PWA Studio +### Page Builder -PWA Studio v.12.5.x is compatible with {{ site.data.var.ce }} 2.4.5. +Page Builder v.1.7.2 is compatible with {{ site.data.var.ee }} 2.4.5. -New features for this release include: +Page Builder column layout includes these enhancements: -* Shopper behavior data is collected on PWA Studio storefront for web analytics services. Merchants can now subscribe and extend these events as needed. +* Columns are now exposed, permitting users to control column settings on the storefront. -* Merchants can now select a service to deploy from the Admin (Beacon or Google Tag Manager). +* Column resizing now supports wrapping triggered by user actions. -For information about enhancements and bug fixes, see [PWA Studio releases](https://github.com/magento/pwa-studio/releases). See [Version compatibility](https://developer.adobe.com/commerce/pwa-studio/integrations/adobe-commerce/version-compatibility/) for a list of PWA Studio versions and their compatible {{ site.data.var.ee }} core versions. +### Payments -### PayPal Payment enhancements +#### PayPal * Merchants in Spain and Italy can now offer PayPal Pay Later to shoppers. @@ -167,23 +183,17 @@ For information about enhancements and bug fixes, see [PWA Studio releases](http * The **Always request 3DS** option has been added to the Admin. -### Accessibility updates - -This release includes enhancements to the Admin UI that improve the experience of users with vision limitations and increase conformance to standard accessibility guidelines. These enhancements include: - -* The screen reader now summarizes search results -* Screen readers are now informed when a new page loads -* Contrast and keyboard accessibility have been improved +### PWA Studio -### Page Builder +PWA Studio v.12.5.x is compatible with {{ site.data.var.ce }} 2.4.5. -Page Builder v.1.7.2 is compatible with {{ site.data.var.ee }} 2.4.5. +New features for this release include: -Page Builder column layout includes these enhancements: +* Shopper behavior data is collected on PWA Studio storefront for web analytics services. Merchants can now subscribe and extend these events as needed. -* Columns are now exposed, permitting users to control column settings on the storefront. +* Merchants can now select a service to deploy from the Admin (Beacon or Google Tag Manager). -* Column resizing now supports wrapping triggered by user actions. +For information about enhancements and bug fixes, see [PWA Studio releases](https://github.com/magento/pwa-studio/releases). See [Version compatibility](https://developer.adobe.com/commerce/pwa-studio/integrations/adobe-commerce/version-compatibility/) for a list of PWA Studio versions and their compatible {{ site.data.var.ee }} core versions. ## Fixed issues From 5066f170b40110606fd9a2082807a95cf0913e4d Mon Sep 17 00:00:00 2001 From: jfrontain Date: Mon, 18 Jul 2022 21:54:32 -0500 Subject: [PATCH 053/491] linted --- src/guides/v2.4/release-notes/commerce-2-4-5.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 3c497a2b087..fabff9ba22c 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -143,7 +143,9 @@ The Admin has been updated to align with Adobe’s brand strategy. Changes affec ### B2B -We have optimized the normalized database data that is needed to implement the Shared Catalogs feature. This reduction in eSKU multiplication results in a performance boost as fewer database rows must be stored. Enabling the new **Enabled Shared Catalog direct product price assigning** configuration option also improves product price indexer performance. +We have optimized the normalized database data that is needed to implement the Shared Catalogs feature. This reduction in eSKU multiplication results in a performance boost as fewer database rows must be stored. Previously, {{ site.data.var.ee }} duplicated every SKU in the catalog for each Shared Catalog. {{ site.data.var.ee }} now creates unique eSKUs for those directly assigned to a Shared Catalog. + +Enabling the new **Enabled Shared Catalog direct product price assigning** configuration option also improves product price indexer performance. This release includes multiple bug fixes. See [B2B Release Notes]({{page.baseurl}}/release-notes/b2b-release-notes.html). From 23acefe20867baf921e0cda592a0182d6843a377 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Tue, 19 Jul 2022 08:01:41 -0500 Subject: [PATCH 054/491] deleted duplicated link --- src/guides/v2.4/release-notes/commerce-2-4-5.md | 2 +- src/guides/v2.4/release-notes/open-source-2-4-5.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index fabff9ba22c..fb8de676452 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -160,7 +160,7 @@ Requests are now automatically synced back to the Walmart Marketplace. ### Google Analytics -Google has updated the tracking and integration mechanisms of AdWords and Analytics in web applications through integration with GTag. This integration of Google functionality into website pages extends opportunities to track and manage content through Google Services. Adobe Commerce has a set of built-in modules including Google AdWords, Analytics, Optimizer, and TagManager that leverage the former API for integration with Google services.  In this release, we have re-implemented this integration using the GTag approach.​ See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en).​ See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en). +Google has updated the tracking and integration mechanisms of AdWords and Analytics in web applications through integration with GTag. This integration of Google functionality into website pages extends opportunities to track and manage content through Google Services. Adobe Commerce has a set of built-in modules including Google AdWords, Analytics, Optimizer, and TagManager that leverage the former API for integration with Google services.  In this release, we have re-implemented this integration using the GTag approach.​ See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en).​ ### GraphQL diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index df3a8d02247..701333c4647 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -138,7 +138,7 @@ Requests are now automatically synced back to the Walmart Marketplace. ### Google Analytics -Google has updated the tracking and integration mechanisms of AdWords and Analytics in web applications through integration with GTag. This integration of Google functionality into website pages extends opportunities to track and manage content through Google Services. Adobe Commerce has a set of built-in modules including Google AdWords, Analytics, Optimizer, and TagManager that leverage the former API for integration with Google services.  In this release, we have re-implemented this integration using the GTag approach.​ See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en).​ See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en). +Google has updated the tracking and integration mechanisms of AdWords and Analytics in web applications through integration with GTag. This integration of Google functionality into website pages extends opportunities to track and manage content through Google Services. Adobe Commerce has a set of built-in modules including Google AdWords, Analytics, Optimizer, and TagManager that leverage the former API for integration with Google services.  In this release, we have re-implemented this integration using the GTag approach.​ See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en).​ ### GraphQL GraphQL performance enhancements include: From c1e2b710dc151c033c970128f1b90ee6a015c4e0 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Tue, 19 Jul 2022 16:11:50 -0500 Subject: [PATCH 055/491] added jmatthew's comments --- .../v2.4/release-notes/commerce-2-4-5.md | 32 ++++++++++++------- .../v2.4/release-notes/open-source-2-4-5.md | 26 +++++++-------- 2 files changed, 33 insertions(+), 25 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index fb8de676452..3beb65870f5 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -16,7 +16,11 @@ Although code for these features is bundled with quarterly releases of the {{ si ### Hotfixes included in this release -{{ site.data.var.ee }} 2.4.5 includes resolution of all issues that were addressed by the following hotfixes, which were provided for {{ site.data.var.ee }} and {{ site.data.var.ce }} 2.4.4, 2.4.3-p2, and 2.3.7-p3: +{{ site.data.var.ee }} 2.4.5 includes resolution of all issues that were addressed by the following hotfixes, which were provided for {{ site.data.var.ee }} and {{ site.data.var.ce }} 2.4.4: + +* `Braintree_disabled_partial_capture_for_applepay_googlepay.zip`. This patch addresses the inability of users to create partial invoices when using either Apple Pay or Google Pay through Braintree as a payment method. See the [Adobe Commerce 2.4.4: Unable to create partial invoices](https://support.magento.com/hc/en-us/articles/4487952754957-Adobe-Commerce-2-4-4-Unable-to-create-partial-invoices) Knowledge Base article. + +* `AC-2655_2.4.4.patch.zip`. This patch addresses an issue where shoppers cannot add a product to their cart when the Allow Countries option is unselected. See the [Users not able to add product to cart if nothing selected in Allow Countries](https://support.magento.com/hc/en-us/articles/5377681213325-Users-not-able-to-add-product-to-cart-if-nothing-selected-in-Allow-Countries) Knowledge Base article. ## {{ site.data.var.ee }} 2.4.5 highlights @@ -64,7 +68,7 @@ Security improvements for this release improve compliance with the latest securi * `PHPStan` (^1.5.7 with constraint) [GitHub-35315](https://github.com/magento/magento2/issues/35315) -The DHL Integration schema has been updated from v6.0 to v6.2. DHL has deprecated v6.0. This upgrade will not result in a change in product behavior. +The DHL Integration schema has been updated from v6.0 to v6.2. This upgrade will not result in a change in product behavior. Outdated JavaScript libraries have been updated to their latest versions, and outdated dependencies have been removed. These changes are backward compatible. @@ -99,7 +103,7 @@ The `laminas/laminas-session`, `laminas/laminas-text`, and `laminas/laminas-view #### Other upgrades and replacements -* The DHL Integration schema has been updated from v6.0 to v6.2. (DHL will deprecate the v6.0 schema mid-2022.) +* The DHL Integration schema has been updated from v6.0 to v6.2. * The default Gateway URL for USPS shipping has been updated to use `https` instead of `http`. @@ -131,12 +135,16 @@ Primary index performance has been improved by reducing the number of primary in ### Accessibility updates -This release includes enhancements to the Admin UI that improve the experience of users with vision limitations and increase conformance to standard accessibility guidelines. These enhancements include: +The focus of this release has been on creating a storefront experience on Venia (PWA) that is more perceivable, operable, understandable, and robust. These enhancements include: -* The screen reader now summarizes search results -* Screen readers are now informed when a new page loads +* Search results summary information is now announced to screen reader users +* Screen readers are now informed when a new page view loads * Contrast and keyboard accessibility have been improved +### Adobe Sign + +Merchants can now include an esignature agreement page powered by Adobe Sign in the {{ site.data.var.ee }} checkout. + ### Branding and style changes The Admin has been updated to align with Adobe’s brand strategy. Changes affect headers, footers, data grid color updates, and navigation elements. @@ -160,7 +168,7 @@ Requests are now automatically synced back to the Walmart Marketplace. ### Google Analytics -Google has updated the tracking and integration mechanisms of AdWords and Analytics in web applications through integration with GTag. This integration of Google functionality into website pages extends opportunities to track and manage content through Google Services. Adobe Commerce has a set of built-in modules including Google AdWords, Analytics, Optimizer, and TagManager that leverage the former API for integration with Google services.  In this release, we have re-implemented this integration using the GTag approach.​ See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en).​ +Google has updated the tracking and integration mechanisms of AdWords and Analytics in web applications through integration with GTag. This integration of Google functionality into website pages extends opportunities to track and manage content through Google Services. Adobe Commerce has a set of built-in modules including Google AdWords, Analytics, Optimizer, and TagManager that leverage the former API for integration with Google services.  In this release, we have re-implemented this integration using the GTag approach.​ See [Migrate from analytics.js to gtag.js (Universal Analytics)](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs). ### GraphQL @@ -174,7 +182,7 @@ GraphQL performance enhancements include: * Session cookies are now launched in GraphQL operations using class proxies only when needed. -* Session usage has been removed from `http` header processors in GraphQL such as store, customer or currency. +* Session usage has been removed from `http` header processors in GraphQL such as store, customer, or currency. See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on these enhancements. @@ -198,11 +206,13 @@ Page Builder column layout includes these enhancements: ### Payments +Apple Pay is now available to all merchants running deployments with Payment Services enabled. This payment method does not require shoppers to enter their credit or debit card details. Apple Pay is available on the product details page, mini cart, shopping cart, and checkout workflow. Merchants can toggle on this feature. + #### PayPal * Merchants in Spain and Italy can now offer PayPal Pay Later to shoppers. -* Previews of the PayPal, Credit and Pay Later buttons are now available in the Admin for the checkout, minicart, cart, and product pages. Previews reveal how these buttons will look when they are enabled and rendered on the storefront. +* Previews of the PayPal, Credit and Pay Later buttons are now available in the Admin for the checkout, mini cart, cart, and product pages. Previews reveal how these buttons will look when they are enabled and rendered on the storefront. #### Braintree @@ -218,7 +228,7 @@ New features for this release include: * Shopper behavior data is collected on PWA Studio storefront for web analytics services. Merchants can now subscribe and extend these events as needed. -* Merchants can now select a service to deploy from the Admin (Beacon or Google Tag Manager). +* Merchants can now select a service to deploy from the Admin (Google Tag Manager). For information about enhancements and bug fixes, see [PWA Studio releases](https://github.com/magento/pwa-studio/releases). See [Version compatibility](https://developer.adobe.com/commerce/pwa-studio/integrations/adobe-commerce/version-compatibility/) for a list of PWA Studio versions and their compatible {{ site.data.var.ee }} core versions. @@ -236,7 +246,7 @@ Enhancements include: ## Fixed issues -We are fixing hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. +We have fixed hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. ### Installation, upgrade, deployment diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index 701333c4647..f66d71ac0d2 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -14,10 +14,6 @@ Releases may contain backward-incompatible changes (BIC). {{ site.data.var.ce }} Although code for these features is bundled with quarterly releases of the {{ site.data.var.ce }} core code, several of these projects are also released independently. Bug fixes for these projects are documented in the separate, project-specific release information that is available in the documentation for each project. -### Hotfixes included in this release - -{{ site.data.var.ce }} 2.4.5 includes resolution of all issues that were addressed by the following hotfixes, which were provided for {{ site.data.var.ee }} and {{ site.data.var.ce }} 2.4.4, 2.4.3-p2, and 2.3.7-p3: - ## {{ site.data.var.ce }} 2.4.5 highlights Look for the following highlights in this release. @@ -60,7 +56,7 @@ Security improvements for this release improve compliance with the latest securi * `PHPStan` (^1.5.7 with constraint) [GitHub-35315](https://github.com/magento/magento2/issues/35315) -The DHL Integration schema has been updated from v6.0 to v6.2. DHL has deprecated v6.0. This upgrade will not result in a change in product behavior. +The DHL Integration schema has been updated from v6.0 to v6.2. This upgrade will not result in a change in product behavior. Outdated JavaScript libraries have been updated to their latest versions, and outdated dependencies have been removed. These changes are backward compatible. @@ -95,7 +91,7 @@ The `laminas/laminas-session`, `laminas/laminas-text`, and `laminas/laminas-view #### Other upgrades and replacements -* The DHL Integration schema has been updated from v6.0 to v6.2. (DHL will deprecate the v6.0 schema mid-2022.) +* The DHL Integration schema has been updated from v6.0 to v6.2. * The default Gateway URL for USPS shipping has been updated to use `https` instead of `http`. @@ -121,10 +117,10 @@ The `laminas/laminas-session`, `laminas/laminas-text`, and `laminas/laminas-view ### Accessibility updates -This release includes enhancements to the Admin UI that improve the experience of users with vision limitations and increase conformance to standard accessibility guidelines. These enhancements include: +The focus of this release has been on creating a storefront experience on Venia (PWA) that is more perceivable, operable, understandable, and robust. These enhancements include: -* The screen reader now summarizes search results -* Screen readers are now informed when a new page loads +* Search results summary information is now announced to screen reader users +* Screen readers are now informed when a new page view loads * Contrast and keyboard accessibility have been improved ### Channel Manager @@ -138,7 +134,8 @@ Requests are now automatically synced back to the Walmart Marketplace. ### Google Analytics -Google has updated the tracking and integration mechanisms of AdWords and Analytics in web applications through integration with GTag. This integration of Google functionality into website pages extends opportunities to track and manage content through Google Services. Adobe Commerce has a set of built-in modules including Google AdWords, Analytics, Optimizer, and TagManager that leverage the former API for integration with Google services.  In this release, we have re-implemented this integration using the GTag approach.​ See [Migrate from analytics.js to gtag.js (Universal Analytics) ](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs​https://support.google.com/google-ads/answer/7548399?hl=en).​ +Google has updated the tracking and integration mechanisms of AdWords and Analytics in web applications through integration with GTag. This integration of Google functionality into website pages extends opportunities to track and manage content through Google Services. Adobe Commerce has a set of built-in modules including Google AdWords, Analytics, Optimizer, and TagManager that leverage the former API for integration with Google services.  In this release, we have re-implemented this integration using the GTag approach.​ See [Migrate from analytics.js to gtag.js (Universal Analytics)](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs). + ### GraphQL GraphQL performance enhancements include: @@ -151,7 +148,7 @@ GraphQL performance enhancements include: * Session cookies are now launched in GraphQL operations using class proxies only when needed. -* Session usage has been removed from `http` header processors in GraphQL such as store, customer or currency. +* Session usage has been removed from `http` header processors in GraphQL such as store, customer, or currency. See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on these enhancements. @@ -171,6 +168,8 @@ Page Builder column layout includes these enhancements: ### Payments +Apple Pay is now available to all merchants running deployments with Payment Services enabled. This payment method does not require shoppers to enter their credit or debit card details. Apple Pay is available on the product details page, mini cart, shopping cart, and checkout workflow. Merchants can toggle on this feature. + #### PayPal * Merchants in Spain and Italy can now offer PayPal Pay Later to shoppers. @@ -191,15 +190,14 @@ New features for this release include: * Shopper behavior data is collected on PWA Studio storefront for web analytics services. Merchants can now subscribe and extend these events as needed. -* Merchants can now select a service to deploy from the Admin (Beacon or Google Tag Manager). +* Merchants can now select a service to deploy from the Admin (Google Tag Manager). For information about enhancements and bug fixes, see [PWA Studio releases](https://github.com/magento/pwa-studio/releases). See [Version compatibility](https://developer.adobe.com/commerce/pwa-studio/integrations/adobe-commerce/version-compatibility/) for a list of PWA Studio versions and their compatible {{ site.data.var.ee }} core versions. ## Fixed issues - +We have fixed hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. -We are fixing hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. ### Installation, upgrade, deployment From fdc2c40f1a98e5ec1e1241b0e59f2d2c4ad75673 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Wed, 20 Jul 2022 10:23:02 -0500 Subject: [PATCH 056/491] removed outdated section about the data migration tool --- src/guides/v2.4/release-notes/commerce-2-4-5.md | 12 +++--------- src/guides/v2.4/release-notes/open-source-2-4-5.md | 9 ++------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 3beb65870f5..0b0504b26cc 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -16,7 +16,7 @@ Although code for these features is bundled with quarterly releases of the {{ si ### Hotfixes included in this release -{{ site.data.var.ee }} 2.4.5 includes resolution of all issues that were addressed by the following hotfixes, which were provided for {{ site.data.var.ee }} and {{ site.data.var.ce }} 2.4.4: +{{ site.data.var.ee }} 2.4.5 includes resolution of all issues that were addressed by the following hotfixes, which were provided for {{ site.data.var.ee }}: * `Braintree_disabled_partial_capture_for_applepay_googlepay.zip`. This patch addresses the inability of users to create partial invoices when using either Apple Pay or Google Pay through Braintree as a payment method. See the [Adobe Commerce 2.4.4: Unable to create partial invoices](https://support.magento.com/hc/en-us/articles/4487952754957-Adobe-Commerce-2-4-4-Unable-to-create-partial-invoices) Knowledge Base article. @@ -1441,16 +1441,10 @@ The following table identifies contributions from our community members. This ta {% include release-notes/engcomm-2-4-5-issues.md %} -### System requirements +## System requirements Our technology stack is built on PHP and MySQL. For more information, see [System Requirements]({{site.baseurl}}/system-requirements.html). -### Installation and upgrade instructions +## Installation and upgrade instructions You can install {{site.data.var.ee}} 2.4.5 using [Composer]({{ page.baseurl }}/install-gde/composer.html). - -## Migration tool kits - -The Data Migration Tool helps transfer existing Magento 1.x store data to Magento 2.x. This command-line interface includes verification, progress tracking, logging, and testing functions. For installation instructions, see [Install the Data Migration Tool]({{page.baseurl}}/migration/migration-tool-install.html). Consider exploring or contributing to the [Magento Data Migration repository](https://github.com/magento/data-migration-tool). - -The [Code Migration Toolkit](https://github.com/magento-commerce/code-migration) helps transfer existing Magento 1.x store extensions and customizations to Magento 2.x. The command-line interface includes scripts for converting Magento 1.x modules and layouts. \ No newline at end of file diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index f66d71ac0d2..0fe31215ca0 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -1242,16 +1242,11 @@ The following table identifies contributions from our community members. This ta {% include release-notes/engcomm-2-4-5-issues.md %} -### System requirements +## System requirements Our technology stack is built on PHP and MySQL. For more information, see [System Requirements]({{site.baseurl}}/system-requirements.html). -### Installation and upgrade instructions +## Installation and upgrade instructions You can install {{site.data.var.ce}} 2.4.5 using [Composer]({{ page.baseurl }}/install-gde/composer.html). -## Migration tool kits - -The Data Migration Tool helps transfer existing Magento 1.x store data to Magento 2.x. This command-line interface includes verification, progress tracking, logging, and testing functions. For installation instructions, see [Install the Data Migration Tool]({{page.baseurl}}/migration/migration-tool-install.html). Consider exploring or contributing to the [Magento Data Migration repository](https://github.com/magento/data-migration-tool). - -The [Code Migration Toolkit](https://github.com/magento-commerce/code-migration) helps transfer existing Magento 1.x store extensions and customizations to Magento 2.x. The command-line interface includes scripts for converting Magento 1.x modules and layouts. From 1b4bac5a8c6f8bb41b4b515622d06109468c829b Mon Sep 17 00:00:00 2001 From: jfrontain Date: Wed, 20 Jul 2022 11:02:46 -0500 Subject: [PATCH 057/491] removed extraneous spaces --- src/guides/v2.4/release-notes/commerce-2-4-5.md | 2 +- src/guides/v2.4/release-notes/open-source-2-4-5.md | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 0b0504b26cc..da44c666271 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -1447,4 +1447,4 @@ Our technology stack is built on PHP and MySQL. For more information, see [Syste ## Installation and upgrade instructions -You can install {{site.data.var.ee}} 2.4.5 using [Composer]({{ page.baseurl }}/install-gde/composer.html). +You can install {{site.data.var.ee}} 2.4.5 using [Composer]({{ page.baseurl }}/install-gde/composer.html). \ No newline at end of file diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index 0fe31215ca0..2ddaa2364ed 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -1248,5 +1248,4 @@ Our technology stack is built on PHP and MySQL. For more information, see [Syste ## Installation and upgrade instructions -You can install {{site.data.var.ce}} 2.4.5 using [Composer]({{ page.baseurl }}/install-gde/composer.html). - +You can install {{site.data.var.ce}} 2.4.5 using [Composer]({{ page.baseurl }}/install-gde/composer.html). \ No newline at end of file From 437022e8355392e91b4dd558b73618e702b77e60 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Sun, 24 Jul 2022 22:13:41 -0500 Subject: [PATCH 058/491] added list of potential known issues --- .../v2.4/release-notes/commerce-2-4-5.md | 50 ++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index da44c666271..97df3bb21b1 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -1421,7 +1421,55 @@ Repetitive actions have been replaced with action groups in these tests: ## Known issues -**Issue**: {{ site.data.var.ee }} displays the following message when an administrator logs in: `Invalid security or form key. Please refresh the page`. **Workaround**: Refresh the page. To permanently remove this error occurrence, you can lengthen the session lifetime from the command line (for example, `bin/magento config:set admin/security/session_lifetime 10800`). [GitHub-33749](https://github.com/magento/magento2/issues/33749) +**Issue**: {{ site.data.var.ee }} adds a `Can not resolve reCAPTCHA parameter` error to the `var/log/exception.log` file repeatedly after enabling reCAPTCHA for the Admin, quickly increasing the size of the log file. **Workaround**: Disable both **Enable for Login** and **Enable for Forgot Password** for the Admin. [GitHub-34975](https://github.com/magento/magento2/issues/34975) + +**Issue**: `.gitignore` files are overridden during Composer installation. [GitHub-32888](https://github.com/magento/magento2/issues/32888) + +**Issue**: {{ site.data.var.ee }} displays the following message when an administrator logs in: `Invalid security or form key. Please refresh the page`. **Workaround**: Refresh the page. To permanently remove this error occurrence, you can lengthen the session lifetime from the command line (for example, `bin/magento config:set admin/security/session_lifetime 10800`). [GitHub-33749](https://github.com/magento/magento2/issues/33749) + +**Issue**: Removing all websites under **Product in Websites** on the product edit page and clicking **Save** triggers an `SQLSTATE[42000]: Syntax error or access violation` exception. [GitHub-35133](https://github.com/magento/magento2/issues/35133) + +**Issue**: Diacritics are not fully supported in email addresses. [GitHub-12075](https://github.com/magento/magento2/issues/12075) + +**Issue**: The `getFilteredTimerIds` method (class `Magento\Framework\Profiler\Driver\Standard\Stat`) throws the following error on deployments running PHP 8.1: `(Exception): Deprecated Functionality: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/html/vendor/magento/framework/Profiler/Driver/Standard/Stat.php on line 213`. [GitHub-35307](https://github.com/magento/magento2/issues/35307) + +**Issue**: {{ site.data.var.ee }} throws the following error and does not start the consumer when using `bin/magento queue:consumer:start` to start RabbitMQ consumers in deployments running PHP 8.1: `Deprecated Functionality: trim(): Passing null to parameter #1 ($string) of type string is deprecated in .../vendor/magento/framework-amqp/Config.php on line 143`. [GitHub-35434](https://github.com/magento/magento2/issues/35434) + +**Issue**: This occurs when a bundle product is created with a special price. When you try to filter products to display bundle products, Magento displays this error: `Something went wrong with processing the default view and we have restored the filter to its original state`. [GitHub-35704](https://github.com/magento/magento2/issues/35704) + +**Issue**: [GitHub-35339](https://github.com/magento/magento2/issues/35339) + +**Issue**: {{ site.data.var.ee }} throws the following error when you click on the **Reports** > **Braintree Settlement** grid on a deployment running PHP 8.1: `Error: Undefined constant Braintree\PaymentInstrumentType::ANDROID_PAY_CARD in /var/www/html/vendor/paypal/module-braintree-core/Ui/Component/Report/Listing/Column/PaymentType.php:49`. [GitHub-35339](https://github.com/magento/magento2/issues/35339) + +**Issue**: Bulk API requests throw an error when items to be returned exceed 20 in deployments where Inventory is enabled. [GitHub-34154](https://github.com/magento/magento2/issues/34154) + +**Issue**: The `cart` query does not include tax when returning the value of the selected shipping method. [GitHub-31206](https://github.com/magento/magento2/issues/31206) + +**Issue**: The `products` query returns only IDs for dropdown and multi-select fields but no labels. [GitHub-28200](https://github.com/magento/magento2/issues/28200) + +**Issue**: GraphQL queries that send a `Content-Currency` header that contains a value different from the default currency do not update cart totals correctly. [GitHub-29994](https://github.com/magento/magento2/issues/29994) + +**Issue**: GraphQL requests add bundle products to quotes without defining required options. [GitHub-25676](https://github.com/magento/magento2/issues/25676) + +**Issue**: The `products` query does not return correct `attribute_code` and `label` values in `aggregations` data.[GitHub-28878](https://github.com/magento/magento2/issues/28878) + +**Issue**: Shoppers cannot place an order after applying a discount code in the Review & Payment step of the checkout workflow if the discount code affects the previously selected shipping method. [GitHub-33697](https://github.com/magento/magento2/issues/33697) + +**Issue**: Customer who exceed the maximum number of permitted login failures cannot log back in after resetting their password. [GitHub-34981](https://github.com/magento/magento2/issues/34981) + +**Issue**: Cart Price rules default to Free Shipping set to **No** despite merchant setting. [GitHub-34981](https://github.com/magento/magento2/issues/34981), [GitHub-35013](https://github.com/magento/magento2/issues/35013) + +**Issue**: Braintree payment methods with stored cards are not saved on the store level as expected. [GitHub-34253](https://github.com/magento/magento2/issues/34253) + +**Issue**: Magento does not apply coupons as expected to orders for In-Store pickup in deployments with Inventory enabled. [GitHub-35334](https://github.com/magento/magento2/issues/35334) + +**Issue**: {{ site.data.var.ee }} displays an error message when a shopper tries to add a product to their cart from the product details page that exceeds the minimum quantity allowed in the shopping cart. [GitHub-33955](https://github.com/magento/magento2/issues/33955) + +**Issue**: Checkout does not complete for orders being shipped to multiple addresses when a cart price rule is applied. + +**Issue**: {{ site.data.var.ee }} throws this error when a module that contains `db_schema` has a constraint on another module in which the table is created via `Install/Upgrade Schema`: `Notice: Undefined index: {{table_name}} in /var/www/html/vendor/magento/framework/Setup/Declaration/Schema/Declaration/SchemaBuilder.php on line 354`. [GitHub-35339](https://github.com/magento/magento2/issues/35339) + +**Issue**: ## Community contributions From e492a0234c61cf6727cfaec153d029786f66c12f Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Mon, 25 Jul 2022 16:11:40 -0500 Subject: [PATCH 059/491] Add infrastructure --- src/_data/main-nav.yml | 3 ++ src/_data/toc/catalog-services.yml | 9 ++++++ src/catalog-service/index.md | 9 ++++++ src/catalog-service/products.md | 51 ++++++++++++++++++++++++++++++ 4 files changed, 72 insertions(+) create mode 100644 src/_data/toc/catalog-services.yml create mode 100644 src/catalog-service/index.md create mode 100644 src/catalog-service/products.md diff --git a/src/_data/main-nav.yml b/src/_data/main-nav.yml index b3356604290..bef1112257d 100644 --- a/src/_data/main-nav.yml +++ b/src/_data/main-nav.yml @@ -213,6 +213,9 @@ url: /live-search/overview.html versionless: true + - label: Catalog Service + url: /catalog-service/index.html + - label: Commerce Marketplace url: /marketplace/sellers/getting-started.html versionless: true diff --git a/src/_data/toc/catalog-services.yml b/src/_data/toc/catalog-services.yml new file mode 100644 index 00000000000..5e201d2e114 --- /dev/null +++ b/src/_data/toc/catalog-services.yml @@ -0,0 +1,9 @@ +label: Catalog Service +pages: + - label: Overview + url: /catalog-service/index.html + versionless: true + + - label: products query + url: /catalog-service/products.html + versionless: true diff --git a/src/catalog-service/index.md b/src/catalog-service/index.md new file mode 100644 index 00000000000..d61c16d11f4 --- /dev/null +++ b/src/catalog-service/index.md @@ -0,0 +1,9 @@ +--- +group: catalog-service +title: Catalog Service for Adobe Commerce +ee_only: True +--- + + +## Architectural overview + diff --git a/src/catalog-service/products.md b/src/catalog-service/products.md new file mode 100644 index 00000000000..68c94ec709c --- /dev/null +++ b/src/catalog-service/products.md @@ -0,0 +1,51 @@ +--- +group: catalog-service +title: products query +ee_only: True +--- + +The `X` query returns . + +## Syntax + +## Required headers + +You must specify the following HTTP headers to run this query. [GraphQL Support]({{ site.baseurl }}/live-search/graphql-support.html#headers-list) describes each of these headers. + +- `Magento-Environment-Id` +- `Magento-Website-Cod` +- `Magento-Store-Code` +- `Magento-Store-View-Code` +- `X-Api-Key` + +## Example usage + +The following query returns + +**Request:** + +```graphql +``` + +**Response:** + +```json +``` + +## Output fields + +The `` return object can contain the following fields: +Field | Data Type | Description +--- | --- | --- +### data type {#} +The `` data type can contain the following fields: + +Field | Data Type | Description +--- | --- | --- + +### data type {#} + +The `` data type can contain the following fields: +Field | Data Type | Description +--- | --- | --- + From 4768c4ebc6dc54109f33143b1c71574074212de7 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Mon, 25 Jul 2022 16:21:08 -0500 Subject: [PATCH 060/491] Review draft --- src/catalog-service/products.md | 539 +++++++++++++++++++++++++++++++- 1 file changed, 526 insertions(+), 13 deletions(-) diff --git a/src/catalog-service/products.md b/src/catalog-service/products.md index 68c94ec709c..2a19961c006 100644 --- a/src/catalog-service/products.md +++ b/src/catalog-service/products.md @@ -4,48 +4,561 @@ title: products query ee_only: True --- -The `X` query returns . +The Catalog Service for Adobe Commerce `products` query returns details about the SKUs specified as input. Although this query has the same name as the [`products` query]({{site.baseurl}}/guides/v2.4/graphql/queries/products.html) that is provided with core Adobe Commerce and Magento Open Source, it works differently. + +The Catalog Service query requires one or more SKU values as input. The query is primarily designed to retrieve information to render the following types of content: + +* Product detail pages. You can provide full details about the product identified by the specified SKU. + +* Product compare pages. You can retrieve selected information about multiple products, such as the name, price and image. + +{:.bs-callout-tip} +Use the Live Search [`productSearch` query]({{site.baseurl}}/live-search/product-search.html) to return product list page content. + +The `ProductView` output object is significantly different than the core `products` query `Products` output object. Key differences include: + +* Products are either simple or complex. Simple and virtual products map to `SimpleProductView`. All other product types map to `ComplexProductView`. Simple products have defined prices. Complex products have price ranges. Since complex products are comprised of multiple simple products, they have access to simple product prices. + +* Merchant-defined attributes are exposed in a top-level container and indicate their storefront roles. Roles include Show on PDP, Show on PLP, and Show on Search Results. + +* Images are also accessible as a top-level container and can be filtered by roles. + + ## Syntax +```graphql +products (skus [String]) [ProductView] +``` + ## Required headers -You must specify the following HTTP headers to run this query. [GraphQL Support]({{ site.baseurl }}/live-search/graphql-support.html#headers-list) describes each of these headers. +You must specify the following HTTP headers to run this query. -- `Magento-Environment-Id` -- `Magento-Website-Cod` -- `Magento-Store-Code` -- `Magento-Store-View-Code` -- `X-Api-Key` +Header | Description +--- | --- +`Magento-Customer-Group` | A hard-coded value. +`Magento-Environment-Id` | This value is displayed at **Stores** > **Configuration** > **Services** > **Magento Services** > **SaaS Environment** or can be obtained by running the `bin/magento config:show services_connector/services_id/environment_id` command. +`Magento-Store-Code`| The code assigned to the store associated with the active store view. For example, `main_website_store`. +`Magento-Store-View-Code`| The code assigned to the active store view. For example, `default`. +`Magento-Website-Code`| The code assigned to the website associated with the active store view. For example, `base`. +`X-Api-Key` | This value must be set to `storefront-catalog`. ## Example usage -The following query returns +### Return details about a simple product + +The following query returns details about a simple product. + +**Request:** + +```graphql +{ + "data": { + "products": [ + { + "id": "TWpRdFRVSXdNZwBaR1ZtWVhWc2RBAE16UmxNamMwTUdFdE56UTNNeTAwWXpnNUxUZzNNekF0TlRjME1ETm1ZMlV5TjJGbABiV0ZwYmw5M1pXSnphWFJsWDNOMGIzSmwAWW1GelpRAFRVRkhVMVJITURBMU5UYzVNRE00", + "sku": "24-MB02", + "name": "Fusion Backpack 567890", + "url": "http://master-7rqtwti-ima6q5tyxltfe.eu-4.magentosite.cloud/fusion-backpack.html", + "description": "

With the Fusion Backpack strapped on, every trek is an adventure - even a bus ride to work. That's partly because two large zippered compartments store everything you need, while a front zippered pocket and side mesh pouches are perfect for stashing those little extras, in case you change your mind and take the day off.

\r\n
    \r\n
  • Durable nylon construction.
  • \r\n
  • 2 main zippered compartments.
  • \r\n
  • 1 exterior zippered pocket.
  • \r\n
  • Mesh side pouches.
  • \r\n
  • Padded, adjustable straps.
  • \r\n
  • Top carry handle.
  • \r\n
  • Dimensions: 18\" x 10\" x 6\".
  • \r\n
", + "shortDescription": "", + "attributes": [ + { + "name": "activity", + "label": "Activity", + "value": [ + "Hiking", + "School", + "Yoga" + ], + "roles": [ + "visible in PDP", + "visible in compare list", + "visible in Search" + ] + }, + { + "name": "features_bags", + "label": "Features", + "value": [ + "Hydration Pocket", + "Audio Pocket", + "Waterproof", + "Lightweight" + ], + "roles": [ + "visible in PDP", + "visible in Search" + ] + }, + { + "name": "material", + "label": "Material", + "value": [ + "Burlap", + "Nylon", + "Polyester" + ], + "roles": [ + "visible in PDP", + "visible in Search" + ] + }, + { + "name": "strap_bags", + "label": "Strap/Handle", + "value": [ + "Adjustable", + "Double", + "Padded" + ], + "roles": [ + "visible in PDP", + "visible in Search" + ] + }, + { + "name": "style_bags", + "label": "Style Bags", + "value": [ + "Backpack", + "Laptop" + ], + "roles": [ + "visible in PDP", + "visible in Search" + ] + } + ] + } + ] + } +} +``` + +**Response:** + +```json +{ + "data": { + "products": [ + { + "id": "TWpRdFRVSXdNZwBaR1ZtWVhWc2RBAE16UmxNamMwTUdFdE56UTNNeTAwWXpnNUxUZzNNekF0TlRjME1ETm1ZMlV5TjJGbABiV0ZwYmw5M1pXSnphWFJsWDNOMGIzSmwAWW1GelpRAFRVRkhVMVJITURBMU5UYzVNRE00", + "sku": "24-MB02", + "name": "Fusion Backpack 567890", + "url": "http://master-7rqtwti-ima6q5tyxltfe.eu-4.magentosite.cloud/fusion-backpack.html", + "description": "

With the Fusion Backpack strapped on, every trek is an adventure - even a bus ride to work. That's partly because two large zippered compartments store everything you need, while a front zippered pocket and side mesh pouches are perfect for stashing those little extras, in case you change your mind and take the day off.

\r\n
    \r\n
  • Durable nylon construction.
  • \r\n
  • 2 main zippered compartments.
  • \r\n
  • 1 exterior zippered pocket.
  • \r\n
  • Mesh side pouches.
  • \r\n
  • Padded, adjustable straps.
  • \r\n
  • Top carry handle.
  • \r\n
  • Dimensions: 18\" x 10\" x 6\".
  • \r\n
", + "shortDescription": "", + "attributes": [ + { + "name": "activity", + "label": "Activity", + "value": [ + "Hiking", + "School", + "Yoga" + ], + "roles": [ + "visible in PDP", + "visible in compare list", + "visible in Search" + ] + }, + { + "name": "features_bags", + "label": "Features", + "value": [ + "Hydration Pocket", + "Audio Pocket", + "Waterproof", + "Lightweight" + ], + "roles": [ + "visible in PDP", + "visible in Search" + ] + }, + { + "name": "material", + "label": "Material", + "value": [ + "Burlap", + "Nylon", + "Polyester" + ], + "roles": [ + "visible in PDP", + "visible in Search" + ] + }, + { + "name": "strap_bags", + "label": "Strap/Handle", + "value": [ + "Adjustable", + "Double", + "Padded" + ], + "roles": [ + "visible in PDP", + "visible in Search" + ] + }, + { + "name": "style_bags", + "label": "Style Bags", + "value": [ + "Backpack", + "Laptop" + ], + "roles": [ + "visible in PDP", + "visible in Search" + ] + } + ] + } + ] + } +} +``` + +### Return details about a complex product + +The following query returns details about a configurable product. **Request:** ```graphql +query { + products(skus: ["MH02"]) { + id + sku + name + url + description + shortDescription + attributes(roles: ["visible in Search"]) { + name + label + value + roles + } + ... on ComplexProductView { + priceRange { + maximum { + regular { + amount { + value + currency + } + } + } + minimum { + regular { + amount { + value + currency + } + } + } + } + options { + id + required + title + values { + id + title + } + } + } + } +} ``` **Response:** ```json +{ + "data": { + "products": [ + { + "id": "VFVnd01nAFpHVm1ZWFZzZEEATXpSbE1qYzBNR0V0TnpRM015MDBZemc1TFRnM016QXROVGMwTURObVkyVXlOMkZsAGJXRnBibDkzWldKemFYUmxYM04wYjNKbABZbUZ6WlEAVFVGSFUxUkhNREExTlRjNU1ETTQ", + "sku": "MH02", + "name": "Teton Pullover Hoodie", + "url": "http://master-7rqtwti-ima6q5tyxltfe.eu-4.magentosite.cloud/teton-pullover-hoodie.html", + "description": "

This Teton Pullover Hoodie gives you more than laid-back style. It's equipped with moisture-wicking fabric to keep light and dry inside, especially in chilly-weather workouts. An elasticized hem lets you move about freely.

\n

• Black pullover hoodie.
• Soft, brushed interior.
• Front hand pockets.
• Machine wash/dry.

", + "shortDescription": "", + "attributes": [ + { + "name": "climate", + "label": "Climate", + "value": [ + "All-Weather", + "Cool", + "Indoor", + "Spring", + "Windy" + ], + "roles": [ + "visible in PDP", + "visible in Search" + ] + }, + { + "name": "material", + "label": "Material", + "value": [ + "Wool", + "Fleece", + "Nylon" + ], + "roles": [ + "visible in PDP", + "visible in Search" + ] + }, + { + "name": "pattern", + "label": "Pattern", + "value": "Solid", + "roles": [ + "visible in PDP", + "visible in Search" + ] + } + ], + "priceRange": { + "maximum": { + "regular": { + "amount": { + "value": 70, + "currency": "USD" + } + } + }, + "minimum": { + "regular": { + "amount": { + "value": 70, + "currency": "USD" + } + } + } + }, + "options": [ + { + "id": "color", + "required": false, + "title": "Color", + "values": [ + { + "id": "Y29uZmlndXJhYmxlLzkzLzU4", + "title": "Black" + }, + { + "id": "Y29uZmlndXJhYmxlLzkzLzY2", + "title": "Purple" + }, + { + "id": "Y29uZmlndXJhYmxlLzkzLzY3", + "title": "Red" + } + ] + }, + { + "id": "size", + "required": false, + "title": "Size", + "values": [ + { + "id": "Y29uZmlndXJhYmxlLzE4Ni8xNzU=", + "title": "XS" + }, + { + "id": "Y29uZmlndXJhYmxlLzE4Ni8xNzY=", + "title": "S" + }, + { + "id": "Y29uZmlndXJhYmxlLzE4Ni8xNzc=", + "title": "M" + }, + { + "id": "Y29uZmlndXJhYmxlLzE4Ni8xNzg=", + "title": "L" + }, + { + "id": "Y29uZmlndXJhYmxlLzE4Ni8xNzk=", + "title": "XL" + } + ] + } + ] + } + ] + } +} ``` ## Output fields -The `` return object can contain the following fields: +The `ProductView` return object is an interface that can contain the following fields. It is implemented by the [`SimpleProductView`](#SimpleProductView-type) and [`ComplexProductView`](#ComplexProductView-type) types. + +Field | Data Type | Description +--- | --- | --- +`attributes(roles: [String])` | [ProductViewAttribute] | A list of merchant-defined attributes designated for the storefront. +`description` | String | The detailed description of the product. +`id` | ID! | The product ID, generated as a composite key, unique per locale. +`images(roles: [String])` | [ProductViewImage] | A list of images defined for the product. +`metaDescription` | String | A brief overview of the product for search results listings. +`metaKeyword` | String | A comma-separated list of keywords that are visible only to search engines. +`metaTitle` | String | A string that is displayed in the title bar and tab of the browser and in search results lists. +`name` | String | Product name. +`shortDescription` | String | A summary of the product. +`sku` | String | Product SKU. +`url` | String | Canonical URL of the product. + +### ComplexProductView type {#ComplexProductView-type} + +The `ComplexProductView`type represents bundle, configurable, and group products. Complex product prices are returned as a price range, because price values can vary based on selected options. The type implements `ProductView`. + +Field | Data Type | Description +--- | --- | --- +`attributes(roles: [String])` | [ProductViewAttribute] | A list of merchant-defined attributes designated for the storefront. +`description` | String | The detailed description of the product. +`id` | ID! | The product ID, generated as a composite key, unique per locale. +`images(roles: [String])` | [ProductViewImage] | A list of images defined for the product. +`metaDescription` | String | A brief overview of the product for search results listings. +`metaKeyword` | String | A comma-separated list of keywords that are visible only to search engines. +`metaTitle` | String | A string that is displayed in the title bar and tab of the browser and in search results lists. +`name` | String | Product name. +`options` | [ProductViewOption] | A list of selectable options. +`priceRange` | ProductViewPriceRange | A range of possible prices for a complex product. +`shortDescription` | String | A summary of the product. +`sku` | String | Product SKU. +`url` | String | Canonical URL of the product. + +### Price type + +The `Price type` defines the price of a simple product or a part of a price range for a complex product. It can include a list of price adjustments. + +Field | Data Type | Description +--- | --- | --- +`adjustments` | [PriceAdjustment] | A list of price adjustments. +`amount` | ProductViewMoney | Contains the monetary value and currency code of a product. + +### PriceAdjustment type + +The `PriceAdjustment` type specifies the amount and type of price adjustment. + +Field | Data Type | Description +--- | --- | --- +`amount` | Float | The amount of the price adjustment. +`code` | String | Identifies the type of price adjustment. + +### ProductViewAttribute type + +The `ProductViewAttribute` type is a container for customer-defined attributes that are displayed the storefront. + +Field | Data Type | Description +--- | --- | --- +`label` | String | Label of the attribute. +`name` | String! | Name of an attribute code. +`roles` | [String] | Roles designated for an attribute on the storefront, such as "Show on PLP", "Show in PDP", or "Show in Search". +`value` | JSON | Attribute value, arbitrary of type. + +### ProductViewImage type + +The `ProductViewImage` type contains details about a product image. + +Field | Data Type | Description +--- | --- | --- +`label` | String | The display label of the product image. +`roles` | [String] | A list that describes how the image is used. Can be `image`, `small_image`, or `thumbnail`. +`url` | String! | The URL to the product image. + +### ProductViewMoney type + +The `ProductViewMoney` type defines a monetary value, including a numeric value and a currency code. + +Field | Data Type | Description +--- | --- | --- +`currency` | ProductViewCurrency | A three-letter currency code, such as USD or EUR. +`value` | Float | A number expressing a monetary value. + +### ProductViewOption type + +Product options provide a way to configure products by making selections of particular option values. Selecting one or many options will point to a specific simple product. + +Field | Data Type | Description +--- | --- | --- +`id` | ID | The ID of the option. +`multi` | Boolean | Indicates whether the option allows multiple choices. +`required` | Boolean | Indicates whether the option must be selected. +`title` | String | The display name of the option. +`values` | [ProductViewOptionValue!] | List of available option values. + +### ProductViewOptionValue interface + +The `ProductViewOptionValue` interface defines the product fields available to the `ProductViewOptionValueProduct` and `ProductViewOptionValueConfiguration` types. + +Field | Data Type | Description +--- | --- | --- +`id` | ID | The ID of an option value. +`title` | String | The display name of the option value. + +### ProductViewOptionValueConfiguration type + +The `ProductViewOptionValueConfiguration` type is an implementation of `ProductViewOptionValue` for configuration values. + Field | Data Type | Description --- | --- | --- -### data type {#} -The `` data type can contain the following fields: +`id` | ID | The ID of an option value. +`title` | String | The display name of the option value. + +### ProductViewOptionValueProduct type +The `ProductViewOptionValueProduct` type is an implementation of `ProductViewOptionValue` that adds details about a simple product. +` Field | Data Type | Description --- | --- | --- +`id` | ID | The ID of an option value. +`title` | String | The display name of the option value. +`product` | SimpleProductView | Details about a simple product. + +### ProductViewPrice type -### data type {#} +The `ProductViewPrice` type provides the base product price view, inherent for simple products. -The `` data type can contain the following fields: Field | Data Type | Description --- | --- | --- +`final` | Price | Price value after discounts, excluding personalized promotions. +`regular` | Price | Base product price specified by the merchant.v + +### ProductViewPriceRange type + +The `ProductViewPriceRange` type lists the minimum and maximum price of a complex product. +`maximum` | ProductViewPrice | Maximum price. +`minimum` | ProductViewPrice | Minimum price. + +### SimpleProductView type {#SimpleProductView-type} + +The `SimpleProductView` type represents all product types, except bundle, configurable, and group. Simple product prices do not contain price ranges. `SimpleProductView` implements `ProductView`. + +Field | Data Type | Description +--- | --- | --- +`attributes(roles: [String])` | [ProductViewAttribute] | A list of merchant-defined attributes designated for the storefront. +`description` | String | The detailed description of the product. +`id` | ID! | The product ID, generated as a composite key, unique per locale. +`images(roles: [String])` | [ProductViewImage] | A list of images defined for the product. +`metaDescription` | String | A brief overview of the product for search results listings. +`metaKeyword` | String | A comma-separated list of keywords that are visible only to search engines. +`metaTitle` | String | A string that is displayed in the title bar and tab of the browser and in search results lists. +`name` | String | Product name. +`price` | ProductViewPrice | Base product price view. +`shortDescription` | String | A summary of the product. +`sku` | String | Product SKU. +`url` | String | Canonical URL of the product. From 8ab35a47536b67f5081c50b7528c25562a148ae4 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Mon, 25 Jul 2022 16:27:31 -0500 Subject: [PATCH 061/491] Linting error --- src/catalog-service/index.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/catalog-service/index.md b/src/catalog-service/index.md index d61c16d11f4..f5d04c2ae76 100644 --- a/src/catalog-service/index.md +++ b/src/catalog-service/index.md @@ -4,6 +4,4 @@ title: Catalog Service for Adobe Commerce ee_only: True --- - ## Architectural overview - From f2edf933aec1a4d8be63af9a1111c6fe0c4c3bb6 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Mon, 25 Jul 2022 16:42:13 -0500 Subject: [PATCH 062/491] Fix TOC error --- src/_data/main-nav.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/_data/main-nav.yml b/src/_data/main-nav.yml index bef1112257d..83f2c2bbdbd 100644 --- a/src/_data/main-nav.yml +++ b/src/_data/main-nav.yml @@ -215,6 +215,7 @@ - label: Catalog Service url: /catalog-service/index.html + versionless: true - label: Commerce Marketplace url: /marketplace/sellers/getting-started.html From d83a6facb76c8f7f74cb65d73ded1c34e864242a Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Mon, 25 Jul 2022 17:24:45 -0500 Subject: [PATCH 063/491] Add comment --- ...talog-services.yml => catalog-service.yml} | 0 src/catalog-service/products.md | 102 +++++------------- 2 files changed, 24 insertions(+), 78 deletions(-) rename src/_data/toc/{catalog-services.yml => catalog-service.yml} (100%) diff --git a/src/_data/toc/catalog-services.yml b/src/_data/toc/catalog-service.yml similarity index 100% rename from src/_data/toc/catalog-services.yml rename to src/_data/toc/catalog-service.yml diff --git a/src/catalog-service/products.md b/src/catalog-service/products.md index 2a19961c006..37f52fed9b8 100644 --- a/src/catalog-service/products.md +++ b/src/catalog-service/products.md @@ -50,89 +50,35 @@ Header | Description The following query returns details about a simple product. + + **Request:** ```graphql -{ - "data": { - "products": [ - { - "id": "TWpRdFRVSXdNZwBaR1ZtWVhWc2RBAE16UmxNamMwTUdFdE56UTNNeTAwWXpnNUxUZzNNekF0TlRjME1ETm1ZMlV5TjJGbABiV0ZwYmw5M1pXSnphWFJsWDNOMGIzSmwAWW1GelpRAFRVRkhVMVJITURBMU5UYzVNRE00", - "sku": "24-MB02", - "name": "Fusion Backpack 567890", - "url": "http://master-7rqtwti-ima6q5tyxltfe.eu-4.magentosite.cloud/fusion-backpack.html", - "description": "

With the Fusion Backpack strapped on, every trek is an adventure - even a bus ride to work. That's partly because two large zippered compartments store everything you need, while a front zippered pocket and side mesh pouches are perfect for stashing those little extras, in case you change your mind and take the day off.

\r\n
    \r\n
  • Durable nylon construction.
  • \r\n
  • 2 main zippered compartments.
  • \r\n
  • 1 exterior zippered pocket.
  • \r\n
  • Mesh side pouches.
  • \r\n
  • Padded, adjustable straps.
  • \r\n
  • Top carry handle.
  • \r\n
  • Dimensions: 18\" x 10\" x 6\".
  • \r\n
", - "shortDescription": "", - "attributes": [ - { - "name": "activity", - "label": "Activity", - "value": [ - "Hiking", - "School", - "Yoga" - ], - "roles": [ - "visible in PDP", - "visible in compare list", - "visible in Search" - ] - }, - { - "name": "features_bags", - "label": "Features", - "value": [ - "Hydration Pocket", - "Audio Pocket", - "Waterproof", - "Lightweight" - ], - "roles": [ - "visible in PDP", - "visible in Search" - ] - }, - { - "name": "material", - "label": "Material", - "value": [ - "Burlap", - "Nylon", - "Polyester" - ], - "roles": [ - "visible in PDP", - "visible in Search" - ] - }, - { - "name": "strap_bags", - "label": "Strap/Handle", - "value": [ - "Adjustable", - "Double", - "Padded" - ], - "roles": [ - "visible in PDP", - "visible in Search" - ] - }, - { - "name": "style_bags", - "label": "Style Bags", - "value": [ - "Backpack", - "Laptop" - ], - "roles": [ - "visible in PDP", - "visible in Search" - ] +query { + products(skus: ["24-MB02"]) { + id + sku + name + url + description + shortDescription + attributes(roles: ["visible in Search"]) { + name + label + value + roles + } + ... on SimpleProductView { + price { + regular { + amount { + value + currency } - ] + } } - ] + } } } ``` From 62a548e2da0593670070e51ace3e6d5403dcce2c Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Mon, 25 Jul 2022 17:38:13 -0500 Subject: [PATCH 064/491] Fix nav problems --- src/_data/main-nav.yml | 1 + src/_data/toc/{catalog-services.yml => catalog-service.yml} | 0 2 files changed, 1 insertion(+) rename src/_data/toc/{catalog-services.yml => catalog-service.yml} (100%) diff --git a/src/_data/main-nav.yml b/src/_data/main-nav.yml index bef1112257d..83f2c2bbdbd 100644 --- a/src/_data/main-nav.yml +++ b/src/_data/main-nav.yml @@ -215,6 +215,7 @@ - label: Catalog Service url: /catalog-service/index.html + versionless: true - label: Commerce Marketplace url: /marketplace/sellers/getting-started.html diff --git a/src/_data/toc/catalog-services.yml b/src/_data/toc/catalog-service.yml similarity index 100% rename from src/_data/toc/catalog-services.yml rename to src/_data/toc/catalog-service.yml From 4e276b5a36e12ec089d0878dce63543d48b70074 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Mon, 25 Jul 2022 20:54:56 -0500 Subject: [PATCH 065/491] Add comment --- src/catalog-service/products.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/catalog-service/products.md b/src/catalog-service/products.md index 37f52fed9b8..06e37757a83 100644 --- a/src/catalog-service/products.md +++ b/src/catalog-service/products.md @@ -35,6 +35,8 @@ products (skus [String]) [ProductView] You must specify the following HTTP headers to run this query. + + Header | Description --- | --- `Magento-Customer-Group` | A hard-coded value. From e1ff12696225e04012d4c0be2b660887cb79e059 Mon Sep 17 00:00:00 2001 From: Donald Booth Date: Tue, 26 Jul 2022 08:39:19 -0400 Subject: [PATCH 066/491] Added EU-5 regions --- src/cloud/env/environments-start.md | 112 +++------------------------- 1 file changed, 9 insertions(+), 103 deletions(-) diff --git a/src/cloud/env/environments-start.md b/src/cloud/env/environments-start.md index 193f593e97a..a0124102160 100644 --- a/src/cloud/env/environments-start.md +++ b/src/cloud/env/environments-start.md @@ -116,109 +116,15 @@ If you have a corporate firewall that blocks outgoing SSH connections, you can a ### AWS regions - - - - - - - - - - - - - - - - - - - - - - -
Incoming IP addresses
US RegionUS-2 RegionUS-3 RegionUS-5 RegionEU RegionEU-3 RegionAP-3 Region
-

52.200.159.23

-

52.200.159.125

-

52.200.160.5

-
-

34.197.214.148

-

34.197.144.144

-

34.196.44.47

-
-

34.210.133.187

-

34.214.72.239

-

34.215.10.85

-
-

50.112.160.58

-

54.213.195.223

-

35.163.170.185

-
-

52.209.44.44

-

52.209.23.96

-

52.51.117.101

-
-

34.240.75.192

-

34.251.110.37

-

52.19.113.35

-
-

52.65.39.201

-

52.65.10.202

-

52.65.30.37

-
- - - - - - - - - - - - - - - - - - - - - - - -
Outgoing IP addresses
US RegionUS-2 RegionUS-3 RegionUS-5 RegionEU RegionEU-3 RegionAP-3 Region
-

52.200.155.111

-

52.200.149.44

-

50.17.163.75

-
-

34.197.219.58

-

34.197.201.45

-

34.197.217.71

-
-

34.210.166.180

-

34.215.83.92

-

34.213.20.158

-
-

54.70.238.217

-

52.88.113.98

-

52.36.188.230

-
-

52.51.163.159

-

52.209.44.60

-

52.208.156.247

-
-

34.240.57.142

-

52.16.140.48

-

52.209.134.55

-
-

52.65.143.178

-

13.54.80.197

-

52.62.224.4

-
+| **Incoming IP addresses** | | | | | | | | +| --- | --- | --- | --- | --- | --- | --- | --- | +| US Region | US-2 Region | US-3 Region | US-5 Region | EU Region | EU-3 Region | EU-5 Region | AP-3 Region | +| 52.200.159.23

52.200.159.125

52.200.160.5 | 34.197.214.148

34.197.144.144

34.196.44.47 | 34.210.133.187

34.214.72.239

34.215.10.85 | 50.112.160.58

54.213.195.223

35.163.170.185 | 52.209.44.44

52.209.23.96

52.51.117.101 | 34.240.75.192

34.251.110.37

52.19.113.35 | 35.157.81.88

3.122.198.131

52.28.102.195 | 52.65.39.201

52.65.10.202

52.65.30.37 | + +| **Outgoing IP addresses** | | | | | | | | +| --- | --- | --- | --- | --- | --- | --- | --- | +| US Region | US-2 Region | US-3 Region | US-5 Region | EU Region | EU-3 Region | EU-5 Region | AP-3 Region | +| 52.200.155.111

52.200.149.44

50.17.163.75 | 34.197.219.58

34.197.201.45

34.197.217.71 | 34.210.166.180

34.215.83.92

34.213.20.158 | 54.70.238.217

52.88.113.98

52.36.188.230 | 52.51.163.159

52.209.44.60

52.208.156.247 | 34.240.57.142

52.16.140.48

52.209.134.55 | 3.121.163.221

3.121.79.229

18.197.3.230 | 52.65.143.178

13.54.80.197

52.62.224.4 | ### Azure region From 874d671bad4e0b8b215948253fcfdc8bf928f418 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Wed, 27 Jul 2022 10:52:59 -0500 Subject: [PATCH 067/491] Apply suggestions from code review Co-authored-by: Shrie Spangler --- src/catalog-service/products.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/catalog-service/products.md b/src/catalog-service/products.md index 06e37757a83..1854ddc7c89 100644 --- a/src/catalog-service/products.md +++ b/src/catalog-service/products.md @@ -8,9 +8,9 @@ The Catalog Service for Adobe Commerce `products` query returns details about th The Catalog Service query requires one or more SKU values as input. The query is primarily designed to retrieve information to render the following types of content: -* Product detail pages. You can provide full details about the product identified by the specified SKU. +* Product detail pages - You can provide full details about the product identified by the specified SKU. -* Product compare pages. You can retrieve selected information about multiple products, such as the name, price and image. +* Product compare pages - You can retrieve selected information about multiple products, such as the name, price and image. {:.bs-callout-tip} Use the Live Search [`productSearch` query]({{site.baseurl}}/live-search/product-search.html) to return product list page content. @@ -438,7 +438,7 @@ Field | Data Type | Description ### ProductViewOption type -Product options provide a way to configure products by making selections of particular option values. Selecting one or many options will point to a specific simple product. +Product options provide a way to configure products by making selections of particular option values. Selecting one or many options will point to a specific simple product. Field | Data Type | Description --- | --- | --- From 290d1df6336a2da94134bdeae36a1052e281de6b Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 27 Jul 2022 12:13:03 -0500 Subject: [PATCH 068/491] AC-6026: Update RabbitMQ configuration --- src/guides/v2.3/install-gde/prereq/install-rabbitmq.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md b/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md index 8c2ed8ad672..18c9a940b76 100644 --- a/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md +++ b/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md @@ -100,7 +100,13 @@ If you already had Magento installed and you want to connect it to RabbitMQ, add ), ``` -Then, run `bin/magento setup:upgrade` to apply the changes and create the required queues in RabbitMQ. +RabbitMQ configuration values can also be set via `bin/magento setup:config:set` CLI command: + +```bash +bin/magento setup:config:set --amqp-host="rabbitmq.example.com" --amqp-port="11213" --amqp-user="magento" --amqp-password="magento" --amqp-virtualhost="/" +``` + +After `/app/etc/env.php` file is updated with AMQP configuratiion, run `bin/magento setup:upgrade` to apply the changes and create the required queues and exchanges in RabbitMQ. ## Configure SSL From 6ea20048a62b9d158bca032394fbad089d163536 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 27 Jul 2022 12:40:17 -0500 Subject: [PATCH 069/491] Update src/guides/v2.3/install-gde/prereq/install-rabbitmq.md Co-authored-by: Kevin Harper --- src/guides/v2.3/install-gde/prereq/install-rabbitmq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md b/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md index 18c9a940b76..da882ecd3e8 100644 --- a/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md +++ b/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md @@ -100,7 +100,7 @@ If you already had Magento installed and you want to connect it to RabbitMQ, add ), ``` -RabbitMQ configuration values can also be set via `bin/magento setup:config:set` CLI command: +You can also set RabbitMQ configuration values using the `bin/magento setup:config:set` command: ```bash bin/magento setup:config:set --amqp-host="rabbitmq.example.com" --amqp-port="11213" --amqp-user="magento" --amqp-password="magento" --amqp-virtualhost="/" From ca89f4d713ef528565f9b96e9a9f5ec8ca7664c4 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 27 Jul 2022 12:40:59 -0500 Subject: [PATCH 070/491] Update src/guides/v2.3/install-gde/prereq/install-rabbitmq.md Co-authored-by: Kevin Harper --- src/guides/v2.3/install-gde/prereq/install-rabbitmq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md b/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md index da882ecd3e8..b3fface57f9 100644 --- a/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md +++ b/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md @@ -106,7 +106,7 @@ You can also set RabbitMQ configuration values using the `bin/magento setup:conf bin/magento setup:config:set --amqp-host="rabbitmq.example.com" --amqp-port="11213" --amqp-user="magento" --amqp-password="magento" --amqp-virtualhost="/" ``` -After `/app/etc/env.php` file is updated with AMQP configuratiion, run `bin/magento setup:upgrade` to apply the changes and create the required queues and exchanges in RabbitMQ. +After the running the command or updating the `/app/etc/env.php` file with AMQP configuration values, run `bin/magento setup:upgrade` to apply the changes and create the required queues and exchanges in RabbitMQ. ## Configure SSL From a41f53bd598fe91db525411ca5c2c77d3a1afbe3 Mon Sep 17 00:00:00 2001 From: Dmytro Poperechnyy Date: Wed, 27 Jul 2022 12:43:34 -0500 Subject: [PATCH 071/491] AC-6026: Update RabbitMQ configuration --- src/guides/v2.3/install-gde/prereq/install-rabbitmq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md b/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md index b3fface57f9..b690b44d142 100644 --- a/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md +++ b/src/guides/v2.3/install-gde/prereq/install-rabbitmq.md @@ -106,7 +106,7 @@ You can also set RabbitMQ configuration values using the `bin/magento setup:conf bin/magento setup:config:set --amqp-host="rabbitmq.example.com" --amqp-port="11213" --amqp-user="magento" --amqp-password="magento" --amqp-virtualhost="/" ``` -After the running the command or updating the `/app/etc/env.php` file with AMQP configuration values, run `bin/magento setup:upgrade` to apply the changes and create the required queues and exchanges in RabbitMQ. +After the running the command or updating the `/app/etc/env.php` file with AMQP configuration values, run `bin/magento setup:upgrade` to apply the changes and create the required queues and exchanges in RabbitMQ. ## Configure SSL From 80bda8516f95c9fb1cc7959c8fcccfc52b3c5d6e Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Wed, 27 Jul 2022 12:58:29 -0500 Subject: [PATCH 072/491] Apply suggestions from code review Co-authored-by: Misha --- src/catalog-service/products.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/catalog-service/products.md b/src/catalog-service/products.md index 1854ddc7c89..2d11cabf6e9 100644 --- a/src/catalog-service/products.md +++ b/src/catalog-service/products.md @@ -4,7 +4,7 @@ title: products query ee_only: True --- -The Catalog Service for Adobe Commerce `products` query returns details about the SKUs specified as input. Although this query has the same name as the [`products` query]({{site.baseurl}}/guides/v2.4/graphql/queries/products.html) that is provided with core Adobe Commerce and Magento Open Source, it works differently. +The Catalog Service for Adobe Commerce `products` query returns details about the SKUs specified as input. Although this query has the same name as the [`products` query]({{site.baseurl}}/guides/v2.4/graphql/queries/products.html) that is provided with core Adobe Commerce and Magento Open Source, there are some differences. The Catalog Service query requires one or more SKU values as input. The query is primarily designed to retrieve information to render the following types of content: @@ -13,7 +13,7 @@ The Catalog Service query requires one or more SKU values as input. The query is * Product compare pages - You can retrieve selected information about multiple products, such as the name, price and image. {:.bs-callout-tip} -Use the Live Search [`productSearch` query]({{site.baseurl}}/live-search/product-search.html) to return product list page content. +Use the Live Search [`productSearch` query]({{site.baseurl}}/live-search/product-search.html) to return product listing page content. The `ProductView` output object is significantly different than the core `products` query `Products` output object. Key differences include: From c1fb283d6660089e336815d9ec13bc36eacd65fe Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Wed, 27 Jul 2022 13:56:42 -0500 Subject: [PATCH 073/491] Review comments --- src/catalog-service/products.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/catalog-service/products.md b/src/catalog-service/products.md index 2d11cabf6e9..61727a1ea96 100644 --- a/src/catalog-service/products.md +++ b/src/catalog-service/products.md @@ -21,7 +21,7 @@ The `ProductView` output object is significantly different than the core `produc * Merchant-defined attributes are exposed in a top-level container and indicate their storefront roles. Roles include Show on PDP, Show on PLP, and Show on Search Results. -* Images are also accessible as a top-level container and can be filtered by roles. +* Images are also accessible as a top-level container and can be filtered by their role. An image can have a base, small, or thumbnail role. @@ -40,7 +40,7 @@ You must specify the following HTTP headers to run this query. Header | Description --- | --- `Magento-Customer-Group` | A hard-coded value. -`Magento-Environment-Id` | This value is displayed at **Stores** > **Configuration** > **Services** > **Magento Services** > **SaaS Environment** or can be obtained by running the `bin/magento config:show services_connector/services_id/environment_id` command. +`Magento-Environment-Id` | This value is displayed at **System** > **Commerce Services Connector** > **SaaS Identifier** > **Data Space ID** or can be obtained by running the `bin/magento config:show services_connector/services_id/environment_id` command. `Magento-Store-Code`| The code assigned to the store associated with the active store view. For example, `main_website_store`. `Magento-Store-View-Code`| The code assigned to the active store view. For example, `default`. `Magento-Website-Code`| The code assigned to the website associated with the active store view. For example, `base`. @@ -399,7 +399,7 @@ Field | Data Type | Description ### PriceAdjustment type -The `PriceAdjustment` type specifies the amount and type of price adjustment. +The `PriceAdjustment` type specifies the amount and type of a price adjustment. An example code value is `weee`. Field | Data Type | Description --- | --- | --- From 8f21f9bd9f72f5933f4d668fb8de105921acb9a0 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Wed, 27 Jul 2022 14:24:33 -0500 Subject: [PATCH 074/491] Customer-Group addition --- src/catalog-service/products.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/catalog-service/products.md b/src/catalog-service/products.md index 61727a1ea96..2452ab893b3 100644 --- a/src/catalog-service/products.md +++ b/src/catalog-service/products.md @@ -39,7 +39,7 @@ You must specify the following HTTP headers to run this query. Header | Description --- | --- -`Magento-Customer-Group` | A hard-coded value. +`Magento-Customer-Group` | For storefront clients, this value will be available at the storefront in the `dataservices_customer_group` cookie. `Magento-Environment-Id` | This value is displayed at **System** > **Commerce Services Connector** > **SaaS Identifier** > **Data Space ID** or can be obtained by running the `bin/magento config:show services_connector/services_id/environment_id` command. `Magento-Store-Code`| The code assigned to the store associated with the active store view. For example, `main_website_store`. `Magento-Store-View-Code`| The code assigned to the active store view. For example, `default`. From 7c22c3d949db4ae6ecf90b8bef290b6280938d2b Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Wed, 27 Jul 2022 14:25:20 -0500 Subject: [PATCH 075/491] Delete comment --- src/catalog-service/products.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/catalog-service/products.md b/src/catalog-service/products.md index 2452ab893b3..1b0b15ed2f5 100644 --- a/src/catalog-service/products.md +++ b/src/catalog-service/products.md @@ -35,8 +35,6 @@ products (skus [String]) [ProductView] You must specify the following HTTP headers to run this query. - - Header | Description --- | --- `Magento-Customer-Group` | For storefront clients, this value will be available at the storefront in the `dataservices_customer_group` cookie. From 94dc490e83960ed4bc7547873987a867591824da Mon Sep 17 00:00:00 2001 From: jfrontain Date: Wed, 27 Jul 2022 18:42:21 -0500 Subject: [PATCH 076/491] added known issue description and workarounds for AC-6026 --- .../v2.4/release-notes/commerce-2-4-5.md | 52 ++----------------- 1 file changed, 5 insertions(+), 47 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 97df3bb21b1..3a3ad2396e4 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -1419,57 +1419,15 @@ Repetitive actions have been replaced with action groups in these tests: * Updating an item quantity from the wish list page now updates the quantity on the product detail page as expected. {{ site.data.var.ee }} now picks up the updated value from the product URL and populates the `qty` field of product detail page from the wishlist itself. -## Known issues +## Known issue -**Issue**: {{ site.data.var.ee }} adds a `Can not resolve reCAPTCHA parameter` error to the `var/log/exception.log` file repeatedly after enabling reCAPTCHA for the Admin, quickly increasing the size of the log file. **Workaround**: Disable both **Enable for Login** and **Enable for Forgot Password** for the Admin. [GitHub-34975](https://github.com/magento/magento2/issues/34975) +**Issue**: RabbitMQ infrastructure elements (exchanges, queues) may be not initialized after a fresh installation (not upgrade) of {{ site.data.var.ee }} 2.4.5. This incorrect configuration of RabbitMQ may result in a fatal error when asynchronous operations are executed or a performance profile is generated. -**Issue**: `.gitignore` files are overridden during Composer installation. [GitHub-32888](https://github.com/magento/magento2/issues/32888) +**Workarounds**: -**Issue**: {{ site.data.var.ee }} displays the following message when an administrator logs in: `Invalid security or form key. Please refresh the page`. **Workaround**: Refresh the page. To permanently remove this error occurrence, you can lengthen the session lifetime from the command line (for example, `bin/magento config:set admin/security/session_lifetime 10800`). [GitHub-33749](https://github.com/magento/magento2/issues/33749) +Merchants performing a fresh installation of {{ site.data.var.ee }} 2.4.5 for Cloud must run `bin/magento setup:upgrade --keep-generated` using ssh or redeploy on Cloud without uninstalling {{ site.data.var.ee }} 2.4.5. (Redeploy automatically runs `setup:upgrade`.) We will release an upgrade to `ece-tools` before {{ site.data.var.ee }} 2.4.5 General Availability that will resolve this issue. -**Issue**: Removing all websites under **Product in Websites** on the product edit page and clicking **Save** triggers an `SQLSTATE[42000]: Syntax error or access violation` exception. [GitHub-35133](https://github.com/magento/magento2/issues/35133) - -**Issue**: Diacritics are not fully supported in email addresses. [GitHub-12075](https://github.com/magento/magento2/issues/12075) - -**Issue**: The `getFilteredTimerIds` method (class `Magento\Framework\Profiler\Driver\Standard\Stat`) throws the following error on deployments running PHP 8.1: `(Exception): Deprecated Functionality: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/html/vendor/magento/framework/Profiler/Driver/Standard/Stat.php on line 213`. [GitHub-35307](https://github.com/magento/magento2/issues/35307) - -**Issue**: {{ site.data.var.ee }} throws the following error and does not start the consumer when using `bin/magento queue:consumer:start` to start RabbitMQ consumers in deployments running PHP 8.1: `Deprecated Functionality: trim(): Passing null to parameter #1 ($string) of type string is deprecated in .../vendor/magento/framework-amqp/Config.php on line 143`. [GitHub-35434](https://github.com/magento/magento2/issues/35434) - -**Issue**: This occurs when a bundle product is created with a special price. When you try to filter products to display bundle products, Magento displays this error: `Something went wrong with processing the default view and we have restored the filter to its original state`. [GitHub-35704](https://github.com/magento/magento2/issues/35704) - -**Issue**: [GitHub-35339](https://github.com/magento/magento2/issues/35339) - -**Issue**: {{ site.data.var.ee }} throws the following error when you click on the **Reports** > **Braintree Settlement** grid on a deployment running PHP 8.1: `Error: Undefined constant Braintree\PaymentInstrumentType::ANDROID_PAY_CARD in /var/www/html/vendor/paypal/module-braintree-core/Ui/Component/Report/Listing/Column/PaymentType.php:49`. [GitHub-35339](https://github.com/magento/magento2/issues/35339) - -**Issue**: Bulk API requests throw an error when items to be returned exceed 20 in deployments where Inventory is enabled. [GitHub-34154](https://github.com/magento/magento2/issues/34154) - -**Issue**: The `cart` query does not include tax when returning the value of the selected shipping method. [GitHub-31206](https://github.com/magento/magento2/issues/31206) - -**Issue**: The `products` query returns only IDs for dropdown and multi-select fields but no labels. [GitHub-28200](https://github.com/magento/magento2/issues/28200) - -**Issue**: GraphQL queries that send a `Content-Currency` header that contains a value different from the default currency do not update cart totals correctly. [GitHub-29994](https://github.com/magento/magento2/issues/29994) - -**Issue**: GraphQL requests add bundle products to quotes without defining required options. [GitHub-25676](https://github.com/magento/magento2/issues/25676) - -**Issue**: The `products` query does not return correct `attribute_code` and `label` values in `aggregations` data.[GitHub-28878](https://github.com/magento/magento2/issues/28878) - -**Issue**: Shoppers cannot place an order after applying a discount code in the Review & Payment step of the checkout workflow if the discount code affects the previously selected shipping method. [GitHub-33697](https://github.com/magento/magento2/issues/33697) - -**Issue**: Customer who exceed the maximum number of permitted login failures cannot log back in after resetting their password. [GitHub-34981](https://github.com/magento/magento2/issues/34981) - -**Issue**: Cart Price rules default to Free Shipping set to **No** despite merchant setting. [GitHub-34981](https://github.com/magento/magento2/issues/34981), [GitHub-35013](https://github.com/magento/magento2/issues/35013) - -**Issue**: Braintree payment methods with stored cards are not saved on the store level as expected. [GitHub-34253](https://github.com/magento/magento2/issues/34253) - -**Issue**: Magento does not apply coupons as expected to orders for In-Store pickup in deployments with Inventory enabled. [GitHub-35334](https://github.com/magento/magento2/issues/35334) - -**Issue**: {{ site.data.var.ee }} displays an error message when a shopper tries to add a product to their cart from the product details page that exceeds the minimum quantity allowed in the shopping cart. [GitHub-33955](https://github.com/magento/magento2/issues/33955) - -**Issue**: Checkout does not complete for orders being shipped to multiple addresses when a cart price rule is applied. - -**Issue**: {{ site.data.var.ee }} throws this error when a module that contains `db_schema` has a constraint on another module in which the table is created via `Install/Upgrade Schema`: `Notice: Undefined index: {{table_name}} in /var/www/html/vendor/magento/framework/Setup/Declaration/Schema/Declaration/SchemaBuilder.php on line 354`. [GitHub-35339](https://github.com/magento/magento2/issues/35339) - -**Issue**: +Merchants performing a fresh installation of {{ site.data.var.ee }} 2.4.5 on-premises should run `bin/magento setup:upgrade --keep-generated` after using `bin/magento setup:config:set` to configure RabbitMQ or install {{ site.data.var.ee }} by passing RabbitMQ configuration options to the `setup:install` command. See [RabbitMQ](https://devdocs.magento.com/guides/v2.4/install-gde/prereq/install-rabbitmq.html). ## Community contributions From 8f87373c1dc99b2619342f686e4e34edf81dbf6b Mon Sep 17 00:00:00 2001 From: kavingas Date: Thu, 28 Jul 2022 13:01:39 +1000 Subject: [PATCH 077/491] Reference https://magento.zendesk.com/agent/tickets/535551 Fastly module does not support redirections between websites. --- src/cloud/cdn/configure-fastly-customize-cache.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/cloud/cdn/configure-fastly-customize-cache.md b/src/cloud/cdn/configure-fastly-customize-cache.md index c5ddf274060..4f405fd489f 100644 --- a/src/cloud/cdn/configure-fastly-customize-cache.md +++ b/src/cloud/cdn/configure-fastly-customize-cache.md @@ -98,6 +98,9 @@ To set up GeoIp handling: 1. After page reload, click **Upload VCL to Fastly** in the *Fastly Configuration* section. +{:.bs-callout-info} +The current Adobe Commerce Fastly GeoIP module implementation does not support redirections between websites. + Fastly also provides a series of [geolocation-related VCL features](https://docs.fastly.com/guides/vcl/geolocation-related-vcl-features) for customized geolocation coding. ## Enable Fastly Edge modules From 18090603b2973727124126ca2e0b629c64e1cd0d Mon Sep 17 00:00:00 2001 From: jfrontain Date: Thu, 28 Jul 2022 09:21:20 -0500 Subject: [PATCH 078/491] removed Channel manager highlights --- src/guides/v2.4/release-notes/commerce-2-4-5.md | 9 --------- src/guides/v2.4/release-notes/open-source-2-4-5.md | 9 --------- 2 files changed, 18 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 3a3ad2396e4..7ba98955e9f 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -157,15 +157,6 @@ Enabling the new **Enabled Shared Catalog direct product price assigning** con This release includes multiple bug fixes. See [B2B Release Notes]({{page.baseurl}}/release-notes/b2b-release-notes.html). -### Channel Manager - -Channel Manager can now trigger refunds from {{ site.data.var.ee }}. Merchants can now manage the entire order workflow from within {{ site.data.var.ee }}, including these tasks: - -* Process refunds from {{ site.data.var.ee }} -* Refund shoppers using the origin form of payment - -Requests are now automatically synced back to the Walmart Marketplace. - ### Google Analytics Google has updated the tracking and integration mechanisms of AdWords and Analytics in web applications through integration with GTag. This integration of Google functionality into website pages extends opportunities to track and manage content through Google Services. Adobe Commerce has a set of built-in modules including Google AdWords, Analytics, Optimizer, and TagManager that leverage the former API for integration with Google services.  In this release, we have re-implemented this integration using the GTag approach.​ See [Migrate from analytics.js to gtag.js (Universal Analytics)](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs). diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index 2ddaa2364ed..021f22cf5eb 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -123,15 +123,6 @@ The focus of this release has been on creating a storefront experience on Venia * Screen readers are now informed when a new page view loads * Contrast and keyboard accessibility have been improved -### Channel Manager - -Channel Manager can now trigger refunds from {{ site.data.var.ce }}. Merchants can now manage the entire order workflow from within {{ site.data.var.ce }}, including these tasks: - -* Process refunds from {{ site.data.var.ce }} -* Refund shoppers using the origin form of payment - -Requests are now automatically synced back to the Walmart Marketplace. - ### Google Analytics Google has updated the tracking and integration mechanisms of AdWords and Analytics in web applications through integration with GTag. This integration of Google functionality into website pages extends opportunities to track and manage content through Google Services. Adobe Commerce has a set of built-in modules including Google AdWords, Analytics, Optimizer, and TagManager that leverage the former API for integration with Google services.  In this release, we have re-implemented this integration using the GTag approach.​ See [Migrate from analytics.js to gtag.js (Universal Analytics)](https://developers.google.com/analytics/devguides/migration/ua/analyticsjs-to-gtagjs). From 22cdf7980601d340f9fa4b5404e2ef967c216215 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Fri, 29 Jul 2022 09:23:14 -0500 Subject: [PATCH 079/491] updated bic highlights for 2.4.5 --- .../v2.4/release-notes/backward-incompatible-changes/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/guides/v2.4/release-notes/backward-incompatible-changes/index.md b/src/guides/v2.4/release-notes/backward-incompatible-changes/index.md index 730a20fdebc..11b7fe8fd62 100644 --- a/src/guides/v2.4/release-notes/backward-incompatible-changes/index.md +++ b/src/guides/v2.4/release-notes/backward-incompatible-changes/index.md @@ -5,6 +5,10 @@ title: Magento 2.4 backward incompatible changes This page highlights backward incompatible changes between releases that have a major impact and require detailed explanation and special instructions to ensure third-party modules continue working with Magento. High-level reference information for all backward incompatible changes in each release are documented in the [Backward incompatible changes reference]({{page.baseurl}}/release-notes/backward-incompatible-changes/reference.html) topic. +## 2.4.5 + +The `grunt-contrib-jasmine.js` library has been updated. The `toBeFalsy()` function does not work correctly with undefined values. Use the `toBeUndefined()` function instead to check results. + ## 2.4.4 ### Removal of deprecated email variable usage From 727f823f501c1437a06b4e3a29ef3f300dd2aec4 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Fri, 29 Jul 2022 10:08:38 -0500 Subject: [PATCH 080/491] entered keharper's review comments --- src/guides/v2.4/release-notes/commerce-2-4-5.md | 2 +- src/guides/v2.4/release-notes/open-source-2-4-5.md | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 7ba98955e9f..3f0b3a97455 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -169,7 +169,7 @@ GraphQL performance enhancements include: * Added capability to consume the expiration date/time of the authorization token through the use of JSON Web Tokens (JWT) in the GraphQL API. -* The `bin/magento config:set graphql/session/disable 1` command allows merchants of Adobe Commerce to to completely disable the creation of session cookies for all GraphQL operations. By default, Adobe Commerce creates these cookies and relies on them for authorization, which affects performance. Going forward, the only form of authorization we recommend for GraphQL requests is authorization tokens that should not used in combination with cookies. See [GraphQL Authorization]({{page.baseurl}}/graphql/authorization-tokens.html). +* The `bin/magento config:set graphql/session/disable 1` command allows merchants of {{ site.data.var.ee }} to completely disable the creation of session cookies for all GraphQL operations. By default, {{ site.data.var.ee }} creates these cookies and relies on them for authorization, which affects performance. Going forward, we recommend using tokens as the only form of authorization for GraphQL requests. We do not recommend using session cookies alone or in conjunction with authorization tokens. See [GraphQL Authorization]({{page.baseurl}}/graphql/authorization-tokens.html). * Session cookies are now launched in GraphQL operations using class proxies only when needed. diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index 021f22cf5eb..9f2712f0e27 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -135,11 +135,11 @@ GraphQL performance enhancements include: * Added capability to consume the expiration date/time of the authorization token through the use of JSON Web Tokens (JWT) in the GraphQL API. -* The `bin/magento config:set graphql/session/disable 1` command allows merchants of Adobe Commerce to to completely disable the creation of session cookies for all GraphQL operations. By default, Adobe Commerce creates these cookies and relies on them for authorization, which affects performance. Going forward, the only form of authorization we recommend for GraphQL requests is authorization tokens that should not used in combination with cookies. See [GraphQL Authorization]({{page.baseurl}}/graphql/authorization-tokens.html). +* The `bin/magento config:set graphql/session/disable 1` command allows merchants of {{ site.data.var.ce }} to completely disable the creation of session cookies for all GraphQL operations. By default, {{ site.data.var.ce }} creates these cookies and relies on them for authorization, which affects performance. Going forward, we recommend using tokens as the only form of authorization for GraphQL requests. We do not recommend using session cookies alone or in conjunction with authorization tokens. See [GraphQL Authorization]({{page.baseurl}}/graphql/authorization-tokens.html). * Session cookies are now launched in GraphQL operations using class proxies only when needed. -* Session usage has been removed from `http` header processors in GraphQL such as store, customer, or currency. +* Session usage has been removed from `http` header processors in GraphQL such as store, customer, or currency. @@ -169,7 +169,7 @@ Apple Pay is now available to all merchants running deployments with Payment Ser #### Braintree -* Braintree has discontinued the KOUNT fraud protection integration. It has been removed from the {{ site.data.var.ee }} codebase. +* Braintree has discontinued the KOUNT fraud protection integration. It has been removed from the {{ site.data.var.ce }} codebase. * The **Always request 3DS** option has been added to the Admin. @@ -183,7 +183,7 @@ New features for this release include: * Merchants can now select a service to deploy from the Admin (Google Tag Manager). -For information about enhancements and bug fixes, see [PWA Studio releases](https://github.com/magento/pwa-studio/releases). See [Version compatibility](https://developer.adobe.com/commerce/pwa-studio/integrations/adobe-commerce/version-compatibility/) for a list of PWA Studio versions and their compatible {{ site.data.var.ee }} core versions. +For information about enhancements and bug fixes, see [PWA Studio releases](https://github.com/magento/pwa-studio/releases). See [Version compatibility](https://developer.adobe.com/commerce/pwa-studio/integrations/adobe-commerce/version-compatibility/) for a list of PWA Studio versions and their compatible {{ site.data.var.ce }} core versions. ## Fixed issues @@ -923,7 +923,7 @@ Repetitive actions have been replaced with action groups in these tests: -* Merchants can now submit a partial refund for orders paid with Apple Pay through Braintree. This was a known issue in {{ site.data.var.ee }} 2.4.4. +* Merchants can now submit a partial refund for orders paid with Apple Pay through Braintree. This was a known issue in {{ site.data.var.ce }} 2.4.4. #### PayPal From 73698a12c992e771997709c7f7c0a5a69c6b0e6b Mon Sep 17 00:00:00 2001 From: jfrontain Date: Fri, 29 Jul 2022 11:17:46 -0500 Subject: [PATCH 081/491] entered keharper's review comments --- .../v2.4/release-notes/commerce-2-4-5.md | 2 +- .../v2.4/release-notes/open-source-2-4-5.md | 20 +++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 3f0b3a97455..de89224de43 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -169,7 +169,7 @@ GraphQL performance enhancements include: * Added capability to consume the expiration date/time of the authorization token through the use of JSON Web Tokens (JWT) in the GraphQL API. -* The `bin/magento config:set graphql/session/disable 1` command allows merchants of {{ site.data.var.ee }} to completely disable the creation of session cookies for all GraphQL operations. By default, {{ site.data.var.ee }} creates these cookies and relies on them for authorization, which affects performance. Going forward, we recommend using tokens as the only form of authorization for GraphQL requests. We do not recommend using session cookies alone or in conjunction with authorization tokens. See [GraphQL Authorization]({{page.baseurl}}/graphql/authorization-tokens.html). +* The `bin/magento config:set graphql/session/disable 1` command allows merchants to completely disable the creation of session cookies for all GraphQL operations. By default, {{ site.data.var.ee }} creates these cookies and relies on them for authorization, which affects performance. Going forward, we recommend using tokens as the only form of authorization for GraphQL requests. We do not recommend using session cookies alone or in conjunction with authorization tokens. See [GraphQL Authorization]({{page.baseurl}}/graphql/authorization-tokens.html). * Session cookies are now launched in GraphQL operations using class proxies only when needed. diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index 9f2712f0e27..fa7b7a58542 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -135,11 +135,11 @@ GraphQL performance enhancements include: * Added capability to consume the expiration date/time of the authorization token through the use of JSON Web Tokens (JWT) in the GraphQL API. -* The `bin/magento config:set graphql/session/disable 1` command allows merchants of {{ site.data.var.ce }} to completely disable the creation of session cookies for all GraphQL operations. By default, {{ site.data.var.ce }} creates these cookies and relies on them for authorization, which affects performance. Going forward, we recommend using tokens as the only form of authorization for GraphQL requests. We do not recommend using session cookies alone or in conjunction with authorization tokens. See [GraphQL Authorization]({{page.baseurl}}/graphql/authorization-tokens.html). +* The `bin/magento config:set graphql/session/disable 1` command allows merchants to completely disable the creation of session cookies for all GraphQL operations. By default, {{ site.data.var.ce }} creates these cookies and relies on them for authorization, which affects performance. Going forward, we recommend using tokens as the only form of authorization for GraphQL requests. We do not recommend using session cookies alone or in conjunction with authorization tokens. See [GraphQL Authorization]({{page.baseurl}}/graphql/authorization-tokens.html). * Session cookies are now launched in GraphQL operations using class proxies only when needed. -* Session usage has been removed from `http` header processors in GraphQL such as store, customer, or currency. See the [GraphQL Developer Guide]({{page.baseurl}}/graphql/) for details on these enhancements. @@ -719,10 +719,6 @@ We have fixed hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. * Added a plugin before the `collectQuoteTotals` call to ensure store credits are not applied multiple times. - - -* Creating a new special price schedule with the `POST /V1/products/special-price` endpoint now works as expected. Previously, the endpoint returned this error: `Future Update already exists in this time range. Set a different range and try again`. - * The `generateCustomerTokenAsAdmin` mutation now retrieves customer tokens as expected. Previously, tokens were not returned, and this error was returned: `Customer email provided does not exist`. @@ -755,10 +751,6 @@ We have fixed hundreds of issues in the {{ site.data.var.ce }} 2.4.5 core code. * The `generateCustomerToken` mutation now creates an entry in the `customer_log` as expected after generating a customer token. [GitHub-33378](https://github.com/magento/magento2/issues/33378) - - -* The `/V1/products/base-prices` endpoint now works as expected with **Catalog Price Mode - Website**. [GitHub-30132](https://github.com/magento/magento2/issues/30132) - ### Google Analytics @@ -1207,6 +1199,14 @@ Repetitive actions have been replaced with action groups in these tests: * The Bulk Rest API now works with the `bySku` option for configurable products. Previously, it returned a 500 error. + + +* Creating a new special price schedule with the `POST /V1/products/special-price` endpoint now works as expected. Previously, the endpoint returned this error: `Future Update already exists in this time range. Set a different range and try again`. + + + +* The `/V1/products/base-prices` endpoint now works as expected with **Catalog Price Mode - Website**. [GitHub-30132](https://github.com/magento/magento2/issues/30132) + ### Wish list From abdd98e85273988601a301bf4a1bc8fcdc63e41e Mon Sep 17 00:00:00 2001 From: jfrontain Date: Fri, 29 Jul 2022 11:21:21 -0500 Subject: [PATCH 082/491] entered keharper's review comments --- src/guides/v2.4/release-notes/commerce-2-4-5.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index de89224de43..4122489691b 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -823,10 +823,6 @@ We have fixed hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * Added a plugin before the `collectQuoteTotals` call to ensure store credits are not applied multiple times. - - -* Creating a new special price schedule with the `POST /V1/products/special-price` endpoint now works as expected. Previously, the endpoint returned this error: `Future Update already exists in this time range. Set a different range and try again`. - * The `generateCustomerTokenAsAdmin` mutation now retrieves customer tokens as expected. Previously, tokens were not returned, and this error was returned: `Customer email provided does not exist`. @@ -859,10 +855,6 @@ We have fixed hundreds of issues in the {{ site.data.var.ee }} 2.4.5 core code. * The `generateCustomerToken` mutation now creates an entry in the `customer_log` as expected after generating a customer token. [GitHub-33378](https://github.com/magento/magento2/issues/33378) - - -* The `/V1/products/base-prices` endpoint now works as expected with **Catalog Price Mode - Website**. [GitHub-30132](https://github.com/magento/magento2/issues/30132) - ### Google Analytics @@ -1404,6 +1396,14 @@ Repetitive actions have been replaced with action groups in these tests: * The Bulk Rest API now works with the `bySku` option for configurable products. Previously, it returned a 500 error. + + +* The `/V1/products/base-prices` endpoint now works as expected with **Catalog Price Mode - Website**. [GitHub-30132](https://github.com/magento/magento2/issues/30132) + + + +* Creating a new special price schedule with the `POST /V1/products/special-price` endpoint now works as expected. Previously, the endpoint returned this error: `Future Update already exists in this time range. Set a different range and try again`. + ### Wish list From 398a8b335d9ba175dbc6e6681fcd0383968d2355 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Fri, 29 Jul 2022 16:45:33 -0500 Subject: [PATCH 083/491] Add refine query --- src/_data/toc/catalog-service.yml | 6 +- .../graphql/catalog-service/headers.md | 8 + .../graphql/catalog-service/product-view.md | 158 +++++++++++ src/catalog-service/products.md | 227 +++------------ src/catalog-service/refine.md | 258 ++++++++++++++++++ 5 files changed, 471 insertions(+), 186 deletions(-) create mode 100644 src/_includes/graphql/catalog-service/headers.md create mode 100644 src/_includes/graphql/catalog-service/product-view.md create mode 100644 src/catalog-service/refine.md diff --git a/src/_data/toc/catalog-service.yml b/src/_data/toc/catalog-service.yml index 5e201d2e114..72a339bce76 100644 --- a/src/_data/toc/catalog-service.yml +++ b/src/_data/toc/catalog-service.yml @@ -6,4 +6,8 @@ pages: - label: products query url: /catalog-service/products.html - versionless: true + versionless: true + + - label: refine query + url: /catalog-service/refine.html + versionless: true diff --git a/src/_includes/graphql/catalog-service/headers.md b/src/_includes/graphql/catalog-service/headers.md new file mode 100644 index 00000000000..3ca67c9a57b --- /dev/null +++ b/src/_includes/graphql/catalog-service/headers.md @@ -0,0 +1,8 @@ +Header | Description +--- | --- +`Magento-Customer-Group` | For storefront clients, this value will be available at the storefront in the `dataservices_customer_group` cookie. +`Magento-Environment-Id` | This value is displayed at **System** > **Commerce Services Connector** > **SaaS Identifier** > **Data Space ID** or can be obtained by running the `bin/magento config:show services_connector/services_id/environment_id` command. +`Magento-Store-Code`| The code assigned to the store associated with the active store view. For example, `main_website_store`. +`Magento-Store-View-Code`| The code assigned to the active store view. For example, `default`. +`Magento-Website-Code`| The code assigned to the website associated with the active store view. For example, `base`. +`X-Api-Key` | This value must be set to `storefront-catalog`. diff --git a/src/_includes/graphql/catalog-service/product-view.md b/src/_includes/graphql/catalog-service/product-view.md new file mode 100644 index 00000000000..c68ebe1517c --- /dev/null +++ b/src/_includes/graphql/catalog-service/product-view.md @@ -0,0 +1,158 @@ +The `ProductView` return object is an interface that can contain the following fields. It is implemented by the [`SimpleProductView`](#SimpleProductView-type) and [`ComplexProductView`](#ComplexProductView-type) types. + +Field | Data Type | Description +--- | --- | --- +`attributes(roles: [String])` | [ProductViewAttribute] | A list of merchant-defined attributes designated for the storefront. +`description` | String | The detailed description of the product. +`id` | ID! | The product ID, generated as a composite key, unique per locale. +`images(roles: [String])` | [ProductViewImage] | A list of images defined for the product. +`metaDescription` | String | A brief overview of the product for search results listings. +`metaKeyword` | String | A comma-separated list of keywords that are visible only to search engines. +`metaTitle` | String | A string that is displayed in the title bar and tab of the browser and in search results lists. +`name` | String | Product name. +`shortDescription` | String | A summary of the product. +`sku` | String | Product SKU. +`url` | String | Canonical URL of the product. + +### ComplexProductView type {#ComplexProductView-type} + +The `ComplexProductView`type represents bundle, configurable, and group products. Complex product prices are returned as a price range, because price values can vary based on selected options. The type implements `ProductView`. + +Field | Data Type | Description +--- | --- | --- +`attributes(roles: [String])` | [ProductViewAttribute] | A list of merchant-defined attributes designated for the storefront. +`description` | String | The detailed description of the product. +`id` | ID! | The product ID, generated as a composite key, unique per locale. +`images(roles: [String])` | [ProductViewImage] | A list of images defined for the product. +`metaDescription` | String | A brief overview of the product for search results listings. +`metaKeyword` | String | A comma-separated list of keywords that are visible only to search engines. +`metaTitle` | String | A string that is displayed in the title bar and tab of the browser and in search results lists. +`name` | String | Product name. +`options` | [ProductViewOption] | A list of selectable options. +`priceRange` | ProductViewPriceRange | A range of possible prices for a complex product. +`shortDescription` | String | A summary of the product. +`sku` | String | Product SKU. +`url` | String | Canonical URL of the product. + +### Price type + +The `Price type` defines the price of a simple product or a part of a price range for a complex product. It can include a list of price adjustments. + +Field | Data Type | Description +--- | --- | --- +`adjustments` | [PriceAdjustment] | A list of price adjustments. +`amount` | ProductViewMoney | Contains the monetary value and currency code of a product. + +### PriceAdjustment type + +The `PriceAdjustment` type specifies the amount and type of a price adjustment. An example code value is `weee`. + +Field | Data Type | Description +--- | --- | --- +`amount` | Float | The amount of the price adjustment. +`code` | String | Identifies the type of price adjustment. + +### ProductViewAttribute type + +The `ProductViewAttribute` type is a container for customer-defined attributes that are displayed the storefront. + +Field | Data Type | Description +--- | --- | --- +`label` | String | Label of the attribute. +`name` | String! | Name of an attribute code. +`roles` | [String] | Roles designated for an attribute on the storefront, such as "Show on PLP", "Show in PDP", or "Show in Search". +`value` | JSON | Attribute value, arbitrary of type. + +### ProductViewImage type + +The `ProductViewImage` type contains details about a product image. + +Field | Data Type | Description +--- | --- | --- +`label` | String | The display label of the product image. +`roles` | [String] | A list that describes how the image is used. Can be `image`, `small_image`, or `thumbnail`. +`url` | String! | The URL to the product image. + +### ProductViewMoney type + +The `ProductViewMoney` type defines a monetary value, including a numeric value and a currency code. + +Field | Data Type | Description +--- | --- | --- +`currency` | ProductViewCurrency | A three-letter currency code, such as USD or EUR. +`value` | Float | A number expressing a monetary value. + +### ProductViewOption type + +Product options provide a way to configure products by making selections of particular option values. Selecting one or many options will point to a specific simple product. + +Field | Data Type | Description +--- | --- | --- +`id` | ID | The ID of the option. +`multi` | Boolean | Indicates whether the option allows multiple choices. +`required` | Boolean | Indicates whether the option must be selected. +`title` | String | The display name of the option. +`values` | [ProductViewOptionValue!] | List of available option values. + +### ProductViewOptionValue interface + +The `ProductViewOptionValue` interface defines the product fields available to the `ProductViewOptionValueProduct` and `ProductViewOptionValueConfiguration` types. + +Field | Data Type | Description +--- | --- | --- +`id` | ID | The ID of an option value. +`title` | String | The display name of the option value. + +### ProductViewOptionValueConfiguration type + +The `ProductViewOptionValueConfiguration` type is an implementation of `ProductViewOptionValue` for configuration values. + +Field | Data Type | Description +--- | --- | --- +`id` | ID | The ID of an option value. +`title` | String | The display name of the option value. + +### ProductViewOptionValueProduct type + +The `ProductViewOptionValueProduct` type is an implementation of `ProductViewOptionValue` that adds details about a simple product. + +Field | Data Type | Description +--- | --- | --- +`id` | ID | The ID of an option value. +`title` | String | The display name of the option value. +`product` | SimpleProductView | Details about a simple product. + +### ProductViewPrice type + +The `ProductViewPrice` type provides the base product price view, inherent for simple products. + +Field | Data Type | Description +--- | --- | --- +`final` | Price | Price value after discounts, excluding personalized promotions. +`regular` | Price | Base product price specified by the merchant.v + +### ProductViewPriceRange type + +The `ProductViewPriceRange` type lists the minimum and maximum price of a complex product. + +`maximum` | ProductViewPrice | Maximum price. +`minimum` | ProductViewPrice | Minimum price. + +### SimpleProductView type {#SimpleProductView-type} + +The `SimpleProductView` type represents all product types, except bundle, configurable, and group. Simple product prices do not contain price ranges. `SimpleProductView` implements `ProductView`. + +Field | Data Type | Description +--- | --- | --- +`attributes(roles: [String])` | [ProductViewAttribute] | A list of merchant-defined attributes designated for the storefront. +`description` | String | The detailed description of the product. +`id` | ID! | The product ID, generated as a composite key, unique per locale. +`images(roles: [String])` | [ProductViewImage] | A list of images defined for the product. +`metaDescription` | String | A brief overview of the product for search results listings. +`metaKeyword` | String | A comma-separated list of keywords that are visible only to search engines. +`metaTitle` | String | A string that is displayed in the title bar and tab of the browser and in search results lists. +`name` | String | Product name. +`price` | ProductViewPrice | Base product price view. +`shortDescription` | String | A summary of the product. +`sku` | String | Product SKU. +`url` | String | Canonical URL of the product. diff --git a/src/catalog-service/products.md b/src/catalog-service/products.md index 1b0b15ed2f5..e8a775e4cd7 100644 --- a/src/catalog-service/products.md +++ b/src/catalog-service/products.md @@ -35,14 +35,7 @@ products (skus [String]) [ProductView] You must specify the following HTTP headers to run this query. -Header | Description ---- | --- -`Magento-Customer-Group` | For storefront clients, this value will be available at the storefront in the `dataservices_customer_group` cookie. -`Magento-Environment-Id` | This value is displayed at **System** > **Commerce Services Connector** > **SaaS Identifier** > **Data Space ID** or can be obtained by running the `bin/magento config:show services_connector/services_id/environment_id` command. -`Magento-Store-Code`| The code assigned to the store associated with the active store view. For example, `main_website_store`. -`Magento-Store-View-Code`| The code assigned to the active store view. For example, `default`. -`Magento-Website-Code`| The code assigned to the website associated with the active store view. For example, `base`. -`X-Api-Key` | This value must be set to `storefront-catalog`. +{% include graphql/catalog-service/headers.md %} ## Example usage @@ -93,7 +86,7 @@ query { "id": "TWpRdFRVSXdNZwBaR1ZtWVhWc2RBAE16UmxNamMwTUdFdE56UTNNeTAwWXpnNUxUZzNNekF0TlRjME1ETm1ZMlV5TjJGbABiV0ZwYmw5M1pXSnphWFJsWDNOMGIzSmwAWW1GelpRAFRVRkhVMVJITURBMU5UYzVNRE00", "sku": "24-MB02", "name": "Fusion Backpack 567890", - "url": "http://master-7rqtwti-ima6q5tyxltfe.eu-4.magentosite.cloud/fusion-backpack.html", + "url": "http://example.com/fusion-backpack.html", "description": "

With the Fusion Backpack strapped on, every trek is an adventure - even a bus ride to work. That's partly because two large zippered compartments store everything you need, while a front zippered pocket and side mesh pouches are perfect for stashing those little extras, in case you change your mind and take the day off.

\r\n
    \r\n
  • Durable nylon construction.
  • \r\n
  • 2 main zippered compartments.
  • \r\n
  • 1 exterior zippered pocket.
  • \r\n
  • Mesh side pouches.
  • \r\n
  • Padded, adjustable straps.
  • \r\n
  • Top carry handle.
  • \r\n
  • Dimensions: 18\" x 10\" x 6\".
  • \r\n
", "shortDescription": "", "attributes": [ @@ -170,7 +163,7 @@ query { } ``` -### Return details about a complex product +### Return details about a complex product {#complex-product-example} The following query returns details about a configurable product. @@ -178,7 +171,8 @@ The following query returns details about a configurable product. ```graphql query { - products(skus: ["MH02"]) { + products(skus: ["MH12"]) { + __typename id sku name @@ -231,11 +225,12 @@ query { "data": { "products": [ { - "id": "VFVnd01nAFpHVm1ZWFZzZEEATXpSbE1qYzBNR0V0TnpRM015MDBZemc1TFRnM016QXROVGMwTURObVkyVXlOMkZsAGJXRnBibDkzWldKemFYUmxYM04wYjNKbABZbUZ6WlEAVFVGSFUxUkhNREExTlRjNU1ETTQ", - "sku": "MH02", - "name": "Teton Pullover Hoodie", - "url": "http://master-7rqtwti-ima6q5tyxltfe.eu-4.magentosite.cloud/teton-pullover-hoodie.html", - "description": "

This Teton Pullover Hoodie gives you more than laid-back style. It's equipped with moisture-wicking fabric to keep light and dry inside, especially in chilly-weather workouts. An elasticized hem lets you move about freely.

\n

• Black pullover hoodie.
• Soft, brushed interior.
• Front hand pockets.
• Machine wash/dry.

", + "__typename": "ComplexProductView", + "id": "VFVneE1nAFpHVm1ZWFZzZEEATXpSbE1qYzBNR0V0TnpRM015MDBZemc1TFRnM016QXROVGMwTURObVkyVXlOMkZsAGJXRnBibDkzWldKemFYUmxYM04wYjNKbABZbUZ6WlEAVFVGSFUxUkhNREExTlRjNU1ETTQ", + "sku": "MH12", + "name": "Ajax Full-Zip Sweatshirt 2", + "url": "http://example.com/ajax-full-zip-sweatshirt.html", + "description": "

The Ajax Full-Zip Sweatshirt makes the optimal layering or outer piece for archers, golfers, hikers and virtually any other sportsmen. Not only does it have top-notch moisture-wicking abilities, but the tight-weave fabric also prevents pilling from repeated wash-and-wear cycles.

\r\n

• Mint striped full zip hoodie.
• 100% bonded polyester fleece.
• Pouch pocket.
• Rib cuffs and hem.
• Machine washable.

", "shortDescription": "", "attributes": [ { @@ -253,13 +248,22 @@ query { "visible in Search" ] }, + { + "name": "customattribute", + "label": "customAttribute", + "value": "asd", + "roles": [ + "visible in PDP", + "visible in PLP", + "visible in Search" + ] + }, { "name": "material", "label": "Material", "value": [ - "Wool", "Fleece", - "Nylon" + "Polyester" ], "roles": [ "visible in PDP", @@ -269,18 +273,28 @@ query { { "name": "pattern", "label": "Pattern", - "value": "Solid", + "value": "Striped", "roles": [ "visible in PDP", "visible in Search" ] + }, + { + "name": "testtttattribute", + "label": "testtttAttribute", + "value": "asd", + "roles": [ + "visible in PDP", + "visible in PLP", + "visible in Search" + ] } ], "priceRange": { "maximum": { "regular": { "amount": { - "value": 70, + "value": 69, "currency": "USD" } } @@ -288,7 +302,7 @@ query { "minimum": { "regular": { "amount": { - "value": 70, + "value": 69, "currency": "USD" } } @@ -301,16 +315,16 @@ query { "title": "Color", "values": [ { - "id": "Y29uZmlndXJhYmxlLzkzLzU4", - "title": "Black" - }, - { - "id": "Y29uZmlndXJhYmxlLzkzLzY2", - "title": "Purple" + "id": "Y29uZmlndXJhYmxlLzkzLzU5", + "title": "Blue" }, { "id": "Y29uZmlndXJhYmxlLzkzLzY3", "title": "Red" + }, + { + "id": "Y29uZmlndXJhYmxlLzkzLzYy", + "title": "Green" } ] }, @@ -350,161 +364,4 @@ query { ## Output fields -The `ProductView` return object is an interface that can contain the following fields. It is implemented by the [`SimpleProductView`](#SimpleProductView-type) and [`ComplexProductView`](#ComplexProductView-type) types. - -Field | Data Type | Description ---- | --- | --- -`attributes(roles: [String])` | [ProductViewAttribute] | A list of merchant-defined attributes designated for the storefront. -`description` | String | The detailed description of the product. -`id` | ID! | The product ID, generated as a composite key, unique per locale. -`images(roles: [String])` | [ProductViewImage] | A list of images defined for the product. -`metaDescription` | String | A brief overview of the product for search results listings. -`metaKeyword` | String | A comma-separated list of keywords that are visible only to search engines. -`metaTitle` | String | A string that is displayed in the title bar and tab of the browser and in search results lists. -`name` | String | Product name. -`shortDescription` | String | A summary of the product. -`sku` | String | Product SKU. -`url` | String | Canonical URL of the product. - -### ComplexProductView type {#ComplexProductView-type} - -The `ComplexProductView`type represents bundle, configurable, and group products. Complex product prices are returned as a price range, because price values can vary based on selected options. The type implements `ProductView`. - -Field | Data Type | Description ---- | --- | --- -`attributes(roles: [String])` | [ProductViewAttribute] | A list of merchant-defined attributes designated for the storefront. -`description` | String | The detailed description of the product. -`id` | ID! | The product ID, generated as a composite key, unique per locale. -`images(roles: [String])` | [ProductViewImage] | A list of images defined for the product. -`metaDescription` | String | A brief overview of the product for search results listings. -`metaKeyword` | String | A comma-separated list of keywords that are visible only to search engines. -`metaTitle` | String | A string that is displayed in the title bar and tab of the browser and in search results lists. -`name` | String | Product name. -`options` | [ProductViewOption] | A list of selectable options. -`priceRange` | ProductViewPriceRange | A range of possible prices for a complex product. -`shortDescription` | String | A summary of the product. -`sku` | String | Product SKU. -`url` | String | Canonical URL of the product. - -### Price type - -The `Price type` defines the price of a simple product or a part of a price range for a complex product. It can include a list of price adjustments. - -Field | Data Type | Description ---- | --- | --- -`adjustments` | [PriceAdjustment] | A list of price adjustments. -`amount` | ProductViewMoney | Contains the monetary value and currency code of a product. - -### PriceAdjustment type - -The `PriceAdjustment` type specifies the amount and type of a price adjustment. An example code value is `weee`. - -Field | Data Type | Description ---- | --- | --- -`amount` | Float | The amount of the price adjustment. -`code` | String | Identifies the type of price adjustment. - -### ProductViewAttribute type - -The `ProductViewAttribute` type is a container for customer-defined attributes that are displayed the storefront. - -Field | Data Type | Description ---- | --- | --- -`label` | String | Label of the attribute. -`name` | String! | Name of an attribute code. -`roles` | [String] | Roles designated for an attribute on the storefront, such as "Show on PLP", "Show in PDP", or "Show in Search". -`value` | JSON | Attribute value, arbitrary of type. - -### ProductViewImage type - -The `ProductViewImage` type contains details about a product image. - -Field | Data Type | Description ---- | --- | --- -`label` | String | The display label of the product image. -`roles` | [String] | A list that describes how the image is used. Can be `image`, `small_image`, or `thumbnail`. -`url` | String! | The URL to the product image. - -### ProductViewMoney type - -The `ProductViewMoney` type defines a monetary value, including a numeric value and a currency code. - -Field | Data Type | Description ---- | --- | --- -`currency` | ProductViewCurrency | A three-letter currency code, such as USD or EUR. -`value` | Float | A number expressing a monetary value. - -### ProductViewOption type - -Product options provide a way to configure products by making selections of particular option values. Selecting one or many options will point to a specific simple product. - -Field | Data Type | Description ---- | --- | --- -`id` | ID | The ID of the option. -`multi` | Boolean | Indicates whether the option allows multiple choices. -`required` | Boolean | Indicates whether the option must be selected. -`title` | String | The display name of the option. -`values` | [ProductViewOptionValue!] | List of available option values. - -### ProductViewOptionValue interface - -The `ProductViewOptionValue` interface defines the product fields available to the `ProductViewOptionValueProduct` and `ProductViewOptionValueConfiguration` types. - -Field | Data Type | Description ---- | --- | --- -`id` | ID | The ID of an option value. -`title` | String | The display name of the option value. - -### ProductViewOptionValueConfiguration type - -The `ProductViewOptionValueConfiguration` type is an implementation of `ProductViewOptionValue` for configuration values. - -Field | Data Type | Description ---- | --- | --- -`id` | ID | The ID of an option value. -`title` | String | The display name of the option value. - -### ProductViewOptionValueProduct type - -The `ProductViewOptionValueProduct` type is an implementation of `ProductViewOptionValue` that adds details about a simple product. -` -Field | Data Type | Description ---- | --- | --- -`id` | ID | The ID of an option value. -`title` | String | The display name of the option value. -`product` | SimpleProductView | Details about a simple product. - -### ProductViewPrice type - -The `ProductViewPrice` type provides the base product price view, inherent for simple products. - -Field | Data Type | Description ---- | --- | --- -`final` | Price | Price value after discounts, excluding personalized promotions. -`regular` | Price | Base product price specified by the merchant.v - -### ProductViewPriceRange type - -The `ProductViewPriceRange` type lists the minimum and maximum price of a complex product. - -`maximum` | ProductViewPrice | Maximum price. -`minimum` | ProductViewPrice | Minimum price. - -### SimpleProductView type {#SimpleProductView-type} - -The `SimpleProductView` type represents all product types, except bundle, configurable, and group. Simple product prices do not contain price ranges. `SimpleProductView` implements `ProductView`. - -Field | Data Type | Description ---- | --- | --- -`attributes(roles: [String])` | [ProductViewAttribute] | A list of merchant-defined attributes designated for the storefront. -`description` | String | The detailed description of the product. -`id` | ID! | The product ID, generated as a composite key, unique per locale. -`images(roles: [String])` | [ProductViewImage] | A list of images defined for the product. -`metaDescription` | String | A brief overview of the product for search results listings. -`metaKeyword` | String | A comma-separated list of keywords that are visible only to search engines. -`metaTitle` | String | A string that is displayed in the title bar and tab of the browser and in search results lists. -`name` | String | Product name. -`price` | ProductViewPrice | Base product price view. -`shortDescription` | String | A summary of the product. -`sku` | String | Product SKU. -`url` | String | Canonical URL of the product. +{% include graphql/catalog-service/product-view.md %} diff --git a/src/catalog-service/refine.md b/src/catalog-service/refine.md new file mode 100644 index 00000000000..ffd7b123f20 --- /dev/null +++ b/src/catalog-service/refine.md @@ -0,0 +1,258 @@ +--- +group: catalog-service +title: refine query +ee_only: True +--- + +The `refine` query narrows the results of a `products` query that was run against a complex product. Before you run the `refine` query, you must run the `products` query and construct the response so that it returns a list of `options` within a `ComplexProductView` inline fragment. When a shopper selects a product option (such as size or color) on the storefront, run the `refine` query, specifying the SKU and selected option value IDs as input. Depending on the number of product options the complex product has, you might need to run the `refine` query multiple times, until the shopper has selected a specific variant. + +You should construct the response of your query so that it contains both the `ComplexProductView` and `SimpleProductView` inline fragments. If the shopper has not selected all of the required options, the query will return the IDs of unselected options and the minimum and maximum price of the product, based on the selected options and possible remaining options. If the shopper has selected all the required options, the query returns details about a simple product, which includes a set price. + +## Syntax + +```graphql +refine(sku: String, optionIds: [String]): ProductView +``` + +## Required headers + +You must specify the following HTTP headers to run this query. + +{% include graphql/catalog-service/headers.md %} + +## Example usage + +### Return details about a partially selected complex product + +The following query returns details about the color options available for a medium-sized variant of product `MH12`. The value of the `optionIDs` input parameter is taken from the `products` query's [Return details about a complex product](products.html#complex-product-example) example. + +**Request:** + +```graphql +query { + refine(optionIds: ["Y29uZmlndXJhYmxlLzE4Ni8xNzc="], sku: "MH12") { + __typename + id + sku + name + url + ... on SimpleProductView { + price { + final { + amount { + value + } + } + regular { + amount { + value + } + } + } + } + ... on ComplexProductView { + options { + id + title + required + values { + id + title + + } + } + priceRange { + maximum { + final { + amount { + value + } + } + regular { + amount { + value + } + } + } + minimum { + final { + amount { + value + } + } + regular { + amount { + value + } + } + } + } + } + } +} +``` + +**Response:** + +```json +{ + "data": { + "refine": { + "__typename": "ComplexProductView", + "id": "VFVneE1nAFpHVm1ZWFZzZEEATXpSbE1qYzBNR0V0TnpRM015MDBZemc1TFRnM016QXROVGMwTURObVkyVXlOMkZsAGJXRnBibDkzWldKemFYUmxYM04wYjNKbABZbUZ6WlEAVFVGSFUxUkhNREExTlRjNU1ETTQ", + "sku": "MH12", + "name": "Ajax Full-Zip Sweatshirt 2", + "url": "http://example.com/ajax-full-zip-sweatshirt.html", + "options": [ + { + "id": "color", + "title": "Color", + "required": false, + "values": [ + { + "id": "Y29uZmlndXJhYmxlLzkzLzU5", + "title": "Blue" + }, + { + "id": "Y29uZmlndXJhYmxlLzkzLzY3", + "title": "Red" + }, + { + "id": "Y29uZmlndXJhYmxlLzkzLzYy", + "title": "Green" + } + ] + } + ], + "priceRange": { + "maximum": { + "final": { + "amount": { + "value": 69 + } + }, + "regular": { + "amount": { + "value": 69 + } + } + }, + "minimum": { + "final": { + "amount": { + "value": 69 + } + }, + "regular": { + "amount": { + "value": 69 + } + } + } + } + } + } +} +``` + +### Return details about a fully selected complex product + +In the following query, the shopper has selected options for both size and color. The response contains details about the corresponding simple product. + +**Request:** + +```graphql +query { + refine(optionIds: ["Y29uZmlndXJhYmxlLzE4Ni8xNzc=", "Y29uZmlndXJhYmxlLzkzLzU5"], sku: "MH12") { + __typename + id + sku + name + url + ... on SimpleProductView { + price { + final { + amount { + value + } + } + regular { + amount { + value + } + } + } + } + ... on ComplexProductView { + options { + id + title + required + values { + id + title + + } + } + priceRange { + maximum { + final { + amount { + value + } + } + regular { + amount { + value + } + } + } + minimum { + final { + amount { + value + } + } + regular { + amount { + value + } + } + } + } + } + } +} +``` + +**Response:** + +```json +{ + "data": { + "refine": { + "__typename": "SimpleProductView", + "id": "VFVneE1pMU5MVUpzZFdVAFpHVm1ZWFZzZEEATXpSbE1qYzBNR0V0TnpRM015MDBZemc1TFRnM016QXROVGMwTURObVkyVXlOMkZsAGJXRnBibDkzWldKemFYUmxYM04wYjNKbABZbUZ6WlEAVFVGSFUxUkhNREExTlRjNU1ETTQ", + "sku": "MH12-M-Blue", + "name": "Ajax Full-Zip Sweatshirt -M-Blue", + "url": "http://example.com/catalog/product/view/id/235/s/ajax-full-zip-sweatshirt-m-blue/", + "price": { + "final": { + "amount": { + "value": 69 + } + }, + "regular": { + "amount": { + "value": 69 + } + } + } + } + } +} +``` + +## Output fields + +{% include graphql/catalog-service/product-view.md %} From 8f9242b77c54f38a7e950c6d5c9ea0174c900b4c Mon Sep 17 00:00:00 2001 From: jfrontain Date: Sun, 31 Jul 2022 16:21:10 -0500 Subject: [PATCH 084/491] added marketing review comments --- src/guides/v2.4/release-notes/commerce-2-4-5.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 4122489691b..317f64166ec 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -143,7 +143,7 @@ The focus of this release has been on creating a storefront experience on Venia ### Adobe Sign -Merchants can now include an esignature agreement page powered by Adobe Sign in the {{ site.data.var.ee }} checkout. +Merchants can now allow customers to electronically sign customized agreements, such as warranty documents, purchase agreements, and terms and conditions, during {{ site.data.var.ee }} checkout. ### Branding and style changes @@ -183,7 +183,7 @@ Inventory template security has been enhanced. ### Live Search -This release introduces support for B2B customer groups and custom pricing. Livesearch now respects product assignments to customer groups and the pricing that is set for a specific customer group/shared catalog. +This release introduces support for B2B customer groups and custom pricing. Live Search now respects product assignments to customer groups and the pricing that is set for a specific customer group/shared catalog. ### Page Builder From 956b04b6b090954fd75cbc87334926afa5acbca8 Mon Sep 17 00:00:00 2001 From: Margaret Eker Date: Mon, 1 Aug 2022 11:27:58 -0400 Subject: [PATCH 085/491] Small fixes to development workflow - Remove extraneous comma - Incorporate comment from [PR #9063](https://github.com/magento/devdocs/pull/9063/files). --- src/cloud/architecture/pro-develop-deploy-workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cloud/architecture/pro-develop-deploy-workflow.md b/src/cloud/architecture/pro-develop-deploy-workflow.md index ec9ae8ac46f..f5b74be187a 100644 --- a/src/cloud/architecture/pro-develop-deploy-workflow.md +++ b/src/cloud/architecture/pro-develop-deploy-workflow.md @@ -17,7 +17,7 @@ The following graphic demonstrates the Pro develop and deploy workflow, which us ## Development workflow {#develop} -The Integration environment provides a single, base integration branch containing your {{site.data.var.ece}} code. You can create one additional, environment branch. This allows for up to two active branches deployed to Platform-as-a-Service (PaaS) containers. +The Integration environment provides a single, base integration branch containing your {{site.data.var.ece}} code. You can create one additional active environment branch. This allows for up to two active branches deployed to Platform-as-a-Service (PaaS) containers. There is no limit on the number of inactive environments. {% include cloud/note-enhanced-integration-envs-kb.md%} From 1bac2ea4951f56aefae833fe659713f94c73887c Mon Sep 17 00:00:00 2001 From: Bohdan Korablov Date: Mon, 1 Aug 2022 12:32:50 -0500 Subject: [PATCH 086/491] MCLOUD-9083: Release ece-tools 2002.1.11 and MCC 1.0.11 --- src/_data/var.yml | 4 ++-- src/cloud/release-notes/ece-release-notes.md | 8 ++++++++ src/cloud/release-notes/mcc-release-notes.md | 6 ++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/_data/var.yml b/src/_data/var.yml index 34274e004d9..a849febc450 100644 --- a/src/_data/var.yml +++ b/src/_data/var.yml @@ -26,11 +26,11 @@ csuite: Cloud Suite for Commerce ct: ece-tools ct-repo: magento/ece-tools -ct-release: 2002.1.10 +ct-release: 2002.1.11 mcc-prod: Cloud Components of Commerce mcc-package: magento/magento-cloud-components -mcc-release: 1.0.10 +mcc-release: 1.0.11 mcd-prod: Cloud Docker for Commerce mcd-package: magento/magento-cloud-docker diff --git a/src/cloud/release-notes/ece-release-notes.md b/src/cloud/release-notes/ece-release-notes.md index b9e699ae36f..9a06d3e80de 100644 --- a/src/cloud/release-notes/ece-release-notes.md +++ b/src/cloud/release-notes/ece-release-notes.md @@ -21,6 +21,14 @@ The release notes include: +## v2002.1.11 + +Release date: August 4, 2022 + +- {:.fix}**ElasticSuite Validator**—Fixed validator for ElasticSuite when installed Opensearch instead of ElasticSearch. +- {:.fix}**Fixed return types**—Fixed return types for generate schema error. +- {:.fix}**RabbitMQ issue**—Fixed RabbitMQ issues with fresh installation Magento 2.4.5. + ## v2002.1.10 Release date: March 31, 2022 diff --git a/src/cloud/release-notes/mcc-release-notes.md b/src/cloud/release-notes/mcc-release-notes.md index b466385c3f5..d8feb2d1de0 100644 --- a/src/cloud/release-notes/mcc-release-notes.md +++ b/src/cloud/release-notes/mcc-release-notes.md @@ -18,6 +18,12 @@ The release notes include: +## v1.0.11 + +Release date: August 4, 2022 + +- {:.fix}Fixes for compatibility with Symfony 5.4. + ## v1.0.10 Release date: March 10, 2022 From 9addba97009fa4c65ba44a75848120517330393e Mon Sep 17 00:00:00 2001 From: Bohdan Korablov Date: Mon, 1 Aug 2022 12:37:39 -0500 Subject: [PATCH 087/491] MCLOUD-9083: Release ece-tools 2002.1.11 and MCC 1.0.11 --- src/cloud/release-notes/ece-release-notes.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/cloud/release-notes/ece-release-notes.md b/src/cloud/release-notes/ece-release-notes.md index 9a06d3e80de..f82406b7d72 100644 --- a/src/cloud/release-notes/ece-release-notes.md +++ b/src/cloud/release-notes/ece-release-notes.md @@ -25,9 +25,9 @@ The release notes include: Release date: August 4, 2022 -- {:.fix}**ElasticSuite Validator**—Fixed validator for ElasticSuite when installed Opensearch instead of ElasticSearch. -- {:.fix}**Fixed return types**—Fixed return types for generate schema error. -- {:.fix}**RabbitMQ issue**—Fixed RabbitMQ issues with fresh installation Magento 2.4.5. +- {:.fix}**ElasticSuite Validator**—Fixed validator for ElasticSuite when installed Opensearch instead of ElasticSearch. +- {:.fix}**Fixed return types**—Fixed return types for generate schema error. +- {:.fix}**RabbitMQ issue**—Fixed RabbitMQ issues with fresh installation Magento 2.4.5. ## v2002.1.10 From 45d83c7745ee0985ab6335b5738f31595c5c070e Mon Sep 17 00:00:00 2001 From: magedocs Date: Mon, 1 Aug 2022 21:33:23 +0000 Subject: [PATCH 088/491] Update BIC reference data Updated reference documentation on backward incompatible changes for 2.4.4-2.4.5 versions delta. --- .../b2b/2.4.4-2.4.5.md | 904 ++++++++++++++++++ .../commerce/2.4.4-2.4.5.md | 858 +++++++++++++++++ .../open-source/2.4.4-2.4.5.md | 781 +++++++++++++++ 3 files changed, 2543 insertions(+) create mode 100644 src/_includes/backward-incompatible-changes/b2b/2.4.4-2.4.5.md create mode 100644 src/_includes/backward-incompatible-changes/commerce/2.4.4-2.4.5.md create mode 100644 src/_includes/backward-incompatible-changes/open-source/2.4.4-2.4.5.md diff --git a/src/_includes/backward-incompatible-changes/b2b/2.4.4-2.4.5.md b/src/_includes/backward-incompatible-changes/b2b/2.4.4-2.4.5.md new file mode 100644 index 00000000000..4a06f83e186 --- /dev/null +++ b/src/_includes/backward-incompatible-changes/b2b/2.4.4-2.4.5.md @@ -0,0 +1,904 @@ +#### Class changes {#b2b-244-245-class} + +| What changed | How it changed | +| --- | --- | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\CustomOptions::formatPrice | [protected] Method has been removed. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav::formatPrice | [protected] Method has been removed. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\General::formatPrice | [protected] Method has been removed. | +| Magento\GoogleTagManager\Model\Config\Source\GtagAccountType | Class was added. | +| Magento\GoogleTagManager\Block\GtagGa | Class was added. | +| Magento\GoogleTagManager\Block\Adminhtml\GtagGa | Class was added. | +| Magento\GoogleTagManager\Block\Adminhtml\Creditmemo\GtagGa | Class was added. | +| Magento\GoogleGtag\Block\Ga | Class was added. | +| Magento\CatalogInventory\Model\Source\Stock::\_\_construct | [public] Method has been added. | + +#### Database changes {#b2b-244-245-database} + +| What changed | How it changed | +| --- | --- | +| salesrule\_label/SALESRULE\_LABEL\_RULE\_ID\_SEQUENCE\_SALESRULE\_SEQUENCE\_VALUE | Foreign key was removed | +| salesrule\_label/SALESRULE\_LABEL\_ROW\_ID\_SALESRULE\_ROW\_ID | Foreign key was added | +| catalog\_product\_index\_price\_tmp/PRIMARY | Primary key was changed | +| magento\_catalogpermissions\_index\_product/PRIMARY | Primary key was added | +| magento\_catalogpermissions\_index\_product\_replica/PRIMARY | Primary key was added | +| salesrule\_label/SALESRULE\_LABEL\_RULE\_ID\_STORE\_ID | Unique key was added | +| salesrule\_label/SALESRULE\_LABEL\_ROW\_ID\_STORE\_ID | Unique key was added | +| salesrule\_label/rule\_id | Column was added | +| salesrule\_label/row\_id | Column was added | +| customer\_eav\_attribute/grid\_filter\_condition\_type | Column was added | +| catalog\_product\_index\_price\_tmp/id | Column was added | +| magento\_catalogpermissions\_index\_product/index\_id | Column was added | +| magento\_catalogpermissions\_index\_product\_replica/index\_id | Column was added | + +#### System changes {#b2b-244-245-system} + +| What changed | How it changed | +| --- | --- | +| btob/website\_configuration/direct\_products\_price\_assigning | A field-node was added | +| recaptcha\_frontend | A section-node was added | +| recaptcha\_frontend/type\_for | A group-node was added | +| recaptcha\_frontend/type\_for/wishlist | A field-node was added | +| recaptcha\_frontend/type\_for/customer\_invite\_create | A field-node was added | +| recaptcha\_frontend/type\_for/giftcard | A field-node was added | +| webapi/graphql\_session | A group-node was added | +| webapi/graphql\_session/disabled | A field-node was added | +| web\_api | A section-node was added | +| web\_api/graphql | A group-node was added | +| web\_api/graphql/include\_dynamic\_attributes\_as\_entity\_type\_fields | A field-node was added | +| google/gtag | A group-node was added | +| google/gtag/analytics4 | A group-node was added | +| google/gtag/analytics4/type | A field-node was added | +| google/gtag/analytics4/measurement\_id | A field-node was added | +| google/gtag/analytics4/container\_id | A field-node was added | +| google/gtag/analytics4/catalog\_page\_list\_value | A field-node was added | +| google/gtag/analytics4/crosssell\_block\_list\_value | A field-node was added | +| google/gtag/analytics4/upsell\_block\_list\_value | A field-node was added | +| google/gtag/analytics4/related\_block\_list\_value | A field-node was added | +| google/gtag/analytics4/search\_page\_list\_value | A field-node was added | +| google/gtag/analytics4/promotions\_list\_value | A field-node was added | +| google/gtag/analytics4/experiments | A field-node was added | +| google/gtag/analytics4/active | A field-node was added | +| google/gtag/adwords | A group-node was added | +| google/gtag/adwords/active | A field-node was added | +| google/gtag/adwords/conversion\_id | A field-node was added | +| google/gtag/adwords/conversion\_label | A field-node was added | + +#### Class API membership changes {#b2b-244-245-class-api-membership} + +| What changed | How it changed | +| --- | --- | +| Magento\Wishlist\Model\Wishlist\Data\WishlistItem | Class was added. | +| Magento\VisualMerchandiser\Model\Sorting\Factory | Class was added. | +| Magento\VisualMerchandiser\Model\Rules\Factory | Class was added. | +| Magento\Ui\Component\Form\Fieldset\Factory | Class was added. | +| Magento\Ui\Component\Control\Container | Class was added. | +| Magento\TargetRule\Block\Product\AbstractProduct | Class was added. | +| Magento\Store\Ui\Component\Listing\Column\Store\Options | Class was added. | +| Magento\ScheduledImportExport\Model\Scheduled\Operation | Class was added. | +| Magento\Sales\Setup\SalesSetup | Class was added. | +| Magento\Sales\Model\Service\InvoiceService | Class was added. | +| Magento\Sales\Model\ResourceModel\Order\CollectionFactory | Class was added. | +| Magento\Sales\Model\ResourceModel\Order\Collection\Factory | Class was added. | +| Magento\Sales\Model\Order\CreditmemoFactory | Class was added. | +| Magento\Sales\Model\Order\Pdf\Total\DefaultTotal | Class was added. | +| Magento\Sales\Model\Order\Email\Sender\InvoiceSender | Class was added. | +| Magento\Sales\Model\Order\Email\Sender\OrderSender | Class was added. | +| Magento\Sales\Controller\Adminhtml\Order | Class was added. | +| Magento\SalesRule\Model\Validator | Class was added. | +| Magento\SalesRule\Api\Exception\CodeRequestLimitException | Class was added. | +| Magento\Quote\Setup\QuoteSetup | Class was added. | +| Magento\Quote\Model\Quote\Item\CartItemOptionsProcessor | Class was added. | +| Magento\Quote\Model\Quote\Item\Option | Class was added. | +| Magento\Quote\Model\Quote\Address\RateCollectorInterfaceFactory | Class was added. | +| Magento\Quote\Model\Cart\Data\CartItem | Class was added. | +| Magento\Paypal\Model\Billing\AbstractAgreement | Class was added. | +| Magento\Payment\Gateway\Config\Config | Class was added. | +| Magento\NegotiableQuote\Model\Validator\ValidatorResult | Class was added. | +| Magento\Indexer\Model\DimensionModes | Class was added. | +| Magento\ImportExport\Model\Export\Factory | Class was added. | +| Magento\GiftCardAccount\Api\Exception\TooManyAttemptsException | Class was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\AttributeAdapter | Class was added. | +| Magento\Deploy\Package\Package | Class was added. | +| Magento\Deploy\Package\PackageFile | Class was added. | +| Magento\Customer\Setup\CustomerSetup | Class was added. | +| Magento\Customer\Model\Context | Class was added. | +| Magento\Customer\Model\CustomerRegistry | Class was added. | +| Magento\Customer\Model\Url | Class was added. | +| Magento\Customer\Model\Metadata\FormFactory | Class was added. | +| Magento\Customer\Controller\RegistryConstants | Class was added. | +| Magento\Customer\Controller\Adminhtml\Index | Class was added. | +| Magento\Customer\Block\Adminhtml\Edit\GenericButton | Class was added. | +| Magento\Config\Block\System\Config\Form\Fieldset\Factory | Class was added. | +| Magento\Config\Block\System\Config\Form\Field\Factory | Class was added. | +| Magento\Cms\Model\Template\FilterProvider | Class was added. | +| Magento\Checkout\Model\Type\Onepage | Class was added. | +| Magento\Checkout\Controller\Cart | Class was added. | +| Magento\Checkout\Api\Exception\PaymentProcessingRateLimitExceededException | Class was added. | +| Magento\Catalog\Pricing\Price\FinalPrice | Class was added. | +| Magento\Catalog\Model\Config | Class was added. | +| Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\IndexTableStructure | Class was added. | +| Magento\Catalog\Model\Product\Type\Price\Factory | Class was added. | +| Magento\Catalog\Model\Layer\Resolver | Class was added. | +| Magento\Catalog\Model\Layer\Filter\Item | Class was added. | +| Magento\Catalog\Controller\Adminhtml\Product | Class was added. | +| Magento\Catalog\Block\Product\ImageFactory | Class was added. | +| Magento\Catalog\Block\Adminhtml\Product\Edit\Button\Generic | Class was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\SearchResult | Class was added. | +| Magento\Analytics\ReportXml\DB\SelectBuilder | Class was added. | +| Magento\Framework\AclFactory | Class was added. | +| Magento\Framework\EventFactory | Class was added. | +| Magento\Framework\Url | Class was added. | +| Magento\Framework\UrlFactory | Class was added. | +| Magento\Framework\ValidatorFactory | Class was added. | +| Magento\Framework\Webapi\Exception | Class was added. | +| Magento\Framework\Webapi\Rest\Request | Class was added. | +| Magento\Framework\View\Asset | Class was added. | +| Magento\Framework\View\LayoutFactory | Class was added. | +| Magento\Framework\View\PageLayout\Config | Class was added. | +| Magento\Framework\View\Page\ConfigFactory | Class was added. | +| Magento\Framework\View\Layout\Reader\ContextFactory | Class was added. | +| Magento\Framework\View\Layout\Generator\ContextFactory | Class was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\EventHandlerData | Class was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\TagData | Class was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider | Class was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult | Class was added. | +| Magento\Framework\View\Element\Html\Select | Class was added. | +| Magento\Framework\View\Asset\FileFactory | Class was added. | +| Magento\Framework\View\Asset\File\FallbackContextFactory | Class was added. | +| Magento\Framework\Url\Helper\Data | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\ElementHistory | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Schema | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Table | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Diff\DiffFactory | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\StatementAggregator | Class was added. | +| Magento\Framework\Session\Config | Class was added. | +| Magento\Framework\Session\SessionManager | Class was added. | +| Magento\Framework\Profiler\Driver\Standard\Stat | Class was added. | +| Magento\Framework\Module\Dir | Class was added. | +| Magento\Framework\Module\Manager | Class was added. | +| Magento\Framework\Module\Setup\MigrationFactory | Class was added. | +| Magento\Framework\Message\CollectionFactory | Class was added. | +| Magento\Framework\Mail\Address | Class was added. | +| Magento\Framework\Mail\TransportInterfaceFactory | Class was added. | +| Magento\Framework\Logger\Handler\Base | Class was added. | +| Magento\Framework\Image\AdapterFactory | Class was added. | +| Magento\Framework\Image\Adapter\AbstractAdapter | Class was added. | +| Magento\Framework\HTTP\PhpEnvironment\RemoteAddress | Class was added. | +| Magento\Framework\HTTP\PhpEnvironment\Request | Class was added. | +| Magento\Framework\HTTP\Client\Curl | Class was added. | +| Magento\Framework\HTTP\AsyncClient\Request | Class was added. | +| Magento\Framework\HTTP\AsyncClient\Response | Class was added. | +| Magento\Framework\HTTP\Adapter\Curl | Class was added. | +| Magento\Framework\GraphQl\Schema | Class was added. | +| Magento\Framework\GraphQl\Schema\Type\ResolveInfo | Class was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchResponse | Class was added. | +| Magento\Framework\GraphQl\Query\Resolver\Value | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlAuthenticationException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlAuthorizationException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlInputException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlNoSuchEntityException | Class was added. | +| Magento\Framework\GraphQl\Config\Element\Field | Class was added. | +| Magento\Framework\Filesystem\DirectoryList | Class was added. | +| Magento\Framework\Filesystem\Io\File | Class was added. | +| Magento\Framework\Filesystem\Directory\ReadFactory | Class was added. | +| Magento\Framework\File\Csv | Class was added. | +| Magento\Framework\File\UploaderFactory | Class was added. | +| Magento\Framework\Event\ObserverFactory | Class was added. | +| Magento\Framework\DataObject\Factory | Class was added. | +| Magento\Framework\Data\FormFactory | Class was added. | +| Magento\Framework\Data\TreeFactory | Class was added. | +| Magento\Framework\Data\Tree\Dbp | Class was added. | +| Magento\Framework\Data\Tree\NodeFactory | Class was added. | +| Magento\Framework\Data\Form\Element\Factory | Class was added. | +| Magento\Framework\Data\Form\Element\Image | Class was added. | +| Magento\Framework\DB\Helper | Class was added. | +| Magento\Framework\DB\Transaction | Class was added. | +| Magento\Framework\DB\Helper\AbstractHelper | Class was added. | +| Magento\Framework\DB\Ddl\TriggerFactory | Class was added. | +| Magento\Framework\DB\Adapter\Pdo\MysqlFactory | Class was added. | +| Magento\Framework\Convert\DataObject | Class was added. | +| Magento\Framework\Controller\Result\Forward | Class was added. | +| Magento\Framework\Controller\Result\JsonFactory | Class was added. | +| Magento\Framework\Controller\Result\Raw | Class was added. | +| Magento\Framework\Console\Cli | Class was added. | +| Magento\Framework\Config\ViewFactory | Class was added. | +| Magento\Framework\Config\Data\ConfigDataFactory | Class was added. | +| Magento\Framework\App\Area | Class was added. | +| Magento\Framework\App\Response\Http | Class was added. | +| Magento\Framework\App\Response\Http\FileFactory | Class was added. | +| Magento\Framework\App\Request\Http | Class was added. | +| Magento\Framework\App\Request\InvalidRequestException | Class was added. | +| Magento\Framework\App\Http\Context | Class was added. | +| Magento\Framework\App\Filesystem\DirectoryList | Class was added. | +| Magento\Framework\App\Config\ValueFactory | Class was added. | +| Magento\Framework\App\Cache\Type\Config | Class was added. | +| Magento\Framework\Api\AbstractSimpleObject | Class was added. | +| Magento\Framework\Api\SearchCriteriaBuilder | Class was added. | +| Magento\Framework\Api\Search\DocumentFactory | Class was added. | +| Magento\Framework\Api\Search\SearchCriteriaFactory | Class was added. | +| Magento\Framework\Api\ExtensionAttribute\JoinData | Class was added. | +| Magento\Framework\Api\ExtensionAttribute\JoinDataInterfaceFactory | Class was added. | +| Magento\Framework\Acl\AclResourceFactory | Class was added. | +| Magento\Framework\Amqp\ConfigFactory | Class was added. | + +#### Interface API membership changes {#b2b-244-245-interface-api-membership} + +| What changed | How it changed | +| --- | --- | +| Magento\Wishlist\Model\AuthenticationStateInterface | Interface was added. | +| Magento\Wishlist\Model\Wishlist\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | +| Magento\Wishlist\Model\ResourceModel\Item\Product\CollectionBuilderInterface | Interface was added. | +| Magento\Wishlist\Controller\IndexInterface | Interface was added. | +| Magento\Wishlist\Controller\WishlistProviderInterface | Interface was added. | +| Magento\Widget\Block\BlockInterface | Interface was added. | +| Magento\Webapi\Controller\Rest\RequestProcessorInterface | Interface was added. | +| Magento\VisualMerchandiser\Api\RuleFactoryPoolInterface | Interface was added. | +| Magento\VersionsCms\Model\CurrentNodeResolverInterface | Interface was added. | +| Magento\VersionsCms\Model\Hierarchy\ConfigInterface | Interface was added. | +| Magento\Vault\Block\Customer\IconInterface | Interface was added. | +| Magento\User\Model\Spi\NotificationExceptionInterface | Interface was added. | +| Magento\User\Model\Spi\NotificatorInterface | Interface was added. | +| Magento\UrlRewriteGraphQl\Model\Resolver\UrlRewrite\CustomUrlLocatorInterface | Interface was added. | +| Magento\Ui\Model\UrlInput\ConfigInterface | Interface was added. | +| Magento\Ui\Model\ColorPicker\ModeInterface | Interface was added. | +| Magento\Ui\DataProvider\AddFieldToCollectionInterface | Interface was added. | +| Magento\Ui\DataProvider\AddFilterToCollectionInterface | Interface was added. | +| Magento\Ui\DataProvider\Modifier\PoolInterface | Interface was added. | +| Magento\Ui\DataProvider\Mapper\MapperInterface | Interface was added. | +| Magento\Ui\Controller\UiActionInterface | Interface was added. | +| Magento\Ui\Config\ConverterInterface | Interface was added. | +| Magento\Ui\Config\Argument\ParserInterface | Interface was added. | +| Magento\Ui\Component\Wysiwyg\ConfigInterface | Interface was added. | +| Magento\Ui\Component\Layout\Tabs\TabInterface | Interface was added. | +| Magento\Ui\Component\Form\Element\DataType\DataTypeInterface | Interface was added. | +| Magento\Theme\Model\Theme\StoreThemesResolverInterface | Interface was added. | +| Magento\Theme\Model\Design\Config\MetadataProviderInterface | Interface was added. | +| Magento\Tax\Model\TaxClass\Type\TypeInterface | Interface was added. | +| Magento\Tax\Model\System\Message\NotificationInterface | Interface was added. | +| Magento\Tax\Api\TaxAddressManagerInterface | Interface was added. | +| Magento\Swat\Api\Data\JwtInterface | Interface was added. | +| Magento\Swat\Api\Data\SwatKeyPairInterface | Interface was added. | +| Magento\Support\Model\Report\ConfigInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcherInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\ContextInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataPostprocessorInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataPreprocessorInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataSerializerInterface | Interface was added. | +| Magento\Store\Model\StoreResolver\ReaderInterface | Interface was added. | +| Magento\Store\Model\Config\Importer\Processor\ProcessorInterface | Interface was added. | +| Magento\Staging\Ui\Component\Listing\Column\Entity\UrlProviderInterface | Interface was added. | +| Magento\Staging\Model\StagingApplierInterface | Interface was added. | +| Magento\Staging\Model\VersionHistoryInterface | Interface was added. | +| Magento\Staging\Model\Update\IncludesInterface | Interface was added. | +| Magento\Staging\Model\Update\Grid\ActionDataProviderInterface | Interface was added. | +| Magento\Staging\Model\Operation\Update\UpdateProcessorInterface | Interface was added. | +| Magento\Staging\Model\Entity\BuilderInterface | Interface was added. | +| Magento\Staging\Model\Entity\HydratorInterface | Interface was added. | +| Magento\Staging\Model\Entity\PersisterInterface | Interface was added. | +| Magento\Staging\Model\Entity\RemoverInterface | Interface was added. | +| Magento\Staging\Model\Entity\RetrieverInterface | Interface was added. | +| Magento\Staging\Model\Entity\Update\Action\TransactionExecutorInterface | Interface was added. | +| Magento\Staging\Block\Adminhtml\Update\Entity\EntityProviderInterface | Interface was added. | +| Magento\Staging\Block\Adminhtml\Update\Entity\StoreIdProviderInterface | Interface was added. | +| Magento\Shipping\Model\Carrier\Source\GenericInterface | Interface was added. | +| Magento\SharedCatalog\Model\Configure\Category\Tree\RendererInterface | Interface was added. | +| Magento\SharedCatalog\Api\SharedCatalogDuplicationInterface | Interface was added. | +| Magento\SharedCatalog\Api\Data\PermissionInterface | Interface was added. | +| Magento\Security\Api\Data\UserExpirationInterface | Interface was added. | +| Magento\Search\Setup\InstallConfigInterface | Interface was added. | +| Magento\Search\Model\SearchEngine\ValidatorInterface | Interface was added. | +| Magento\ScheduledImportExport\Model\Scheduled\Operation\OperationInterface | Interface was added. | +| Magento\Sales\Model\ValidatorInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderAddressResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderPaymentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderStatusHistoryResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentTrackResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\TransactionResourceInterface | Interface was added. | +| Magento\Sales\Model\ResourceModel\Provider\NotSyncedDataProviderInterface | Interface was added. | +| Magento\Sales\Model\ResourceModel\Order\CollectionFactoryInterface | Interface was added. | +| Magento\Sales\Model\Order\OrderValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Shipment\SenderInterface | Interface was added. | +| Magento\Sales\Model\Order\Shipment\ShipmentValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\Transaction\BuilderInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\Transaction\ManagerInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\State\CommandInterface | Interface was added. | +| Magento\Sales\Model\Order\Invoice\InvoiceValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Invoice\SenderInterface | Interface was added. | +| Magento\Sales\Model\Order\Email\Container\IdentityInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\CreditmemoValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\ItemCreationValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\SenderInterface | Interface was added. | +| Magento\Sales\Controller\OrderInterface | Interface was added. | +| Magento\Sales\Controller\AbstractController\OrderLoaderInterface | Interface was added. | +| Magento\Sales\Controller\AbstractController\OrderViewAuthorizationInterface | Interface was added. | +| Magento\Sales\Api\OrderCustomerDelegateInterface | Interface was added. | +| Magento\Sales\Api\PaymentFailuresInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\CodeLimitManagerInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\QuoteResetAppliedRulesInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\RuleQuoteRecollectTotalsInterface | Interface was added. | +| Magento\SalesRule\Api\Data\DiscountDataInterface | Interface was added. | +| Magento\SalesRule\Api\Data\RuleDiscountInterface | Interface was added. | +| Magento\SalesGraphQl\Model\Shipment\Item\FormatterInterface | Interface was added. | +| Magento\Rma\Model\Spi\CommentResourceInterface | Interface was added. | +| Magento\Rma\Model\Spi\RmaResourceInterface | Interface was added. | +| Magento\Rma\Model\Spi\TrackResourceInterface | Interface was added. | +| Magento\Reward\Observer\PlaceOrder\RestrictionInterface | Interface was added. | +| Magento\RewardGraphQl\Model\Formatter\Customer\FormatterInterface | Interface was added. | +| Magento\RequisitionList\Model\Checker\ProductQtyChangeAvailabilityInterface | Interface was added. | +| Magento\RemoteStorage\FilesystemInterface | Interface was added. | +| Magento\RemoteStorage\Driver\DriverFactoryInterface | Interface was added. | +| Magento\RemoteStorage\Driver\RemoteDriverInterface | Interface was added. | +| Magento\ReleaseNotification\Model\ContentProviderInterface | Interface was added. | +| Magento\Quote\Model\ValidationRules\QuoteValidationRuleInterface | Interface was added. | +| Magento\Quote\Model\Quote\Item\CartItemProcessorInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\CustomAttributeListInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\Total\CollectorInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\Total\ReaderInterface | Interface was added. | +| Magento\Quote\Model\Product\QuoteItemsCleanerInterface | Interface was added. | +| Magento\Quote\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | +| Magento\Quote\Api\ChangeQuoteControlInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\CartItem\DataProvider\CustomizableOptionValueInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\CartItem\DataProvider\Processor\ItemDataProcessorInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\SetShippingAddressesOnCartInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\SetShippingMethodsOnCartInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\Payment\AdditionalDataProviderInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | +| Magento\PurchaseOrder\Model\CommentRepositoryInterface | Interface was added. | +| Magento\PurchaseOrder\Model\ProcessorInterface | Interface was added. | +| Magento\PurchaseOrder\Model\PurchaseOrderLogRepositoryInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Validator\ValidatorInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Validator\ActionReady\ValidatorInterface | Interface was added. | +| Magento\PurchaseOrder\Model\PurchaseOrder\LogManagementInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Processor\ApprovalProcessorInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Payment\DeferredPaymentStrategyInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Notification\ActionNotificationInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Notification\ContentSourceInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Notification\NotifierInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Notification\SenderInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Notification\Config\ProviderInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Notification\Action\Recipient\ResolverInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Customer\Authorization\ActionInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Company\ConfigInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Company\Config\RepositoryInterface | Interface was added. | +| Magento\PurchaseOrder\Api\PurchaseOrderManagementInterface | Interface was added. | +| Magento\PurchaseOrder\Api\PurchaseOrderRepositoryInterface | Interface was added. | +| Magento\PurchaseOrder\Api\Data\PurchaseOrderInterface | Interface was added. | +| Magento\PurchaseOrder\Api\Data\PurchaseOrderSearchResultsInterface | Interface was added. | +| Magento\PurchaseOrderRule\Model\Rule\ConditionInterface | Interface was added. | +| Magento\PurchaseOrderRule\Model\Rule\ValidateInterface | Interface was added. | +| Magento\PurchaseOrderRule\Api\Data\AppliedRuleApproverSearchResultsInterface | Interface was added. | +| Magento\PurchaseOrderRule\Api\Data\AppliedRuleSearchResultsInterface | Interface was added. | +| Magento\PurchaseOrderRule\Api\Data\RuleSearchResultsInterface | Interface was added. | +| Magento\Paypal\Model\IpnInterface | Interface was added. | +| Magento\Paypal\Model\Payflow\Service\Response\Handler\HandlerInterface | Interface was added. | +| Magento\Paypal\Model\Billing\Agreement\MethodInterface | Interface was added. | +| Magento\Paypal\Helper\Shortcut\ValidatorInterface | Interface was added. | +| Magento\Payment\Model\Method\TransparentInterface | Interface was added. | +| Magento\Payment\Api\Data\PaymentAdditionalInfoInterface | Interface was added. | +| Magento\PageCache\Model\Spi\PageCacheTagsPreprocessorInterface | Interface was added. | +| Magento\OrderHistorySearch\Model\Filter\FilterInterface | Interface was added. | +| Magento\Newsletter\Model\SubscriptionManagerInterface | Interface was added. | +| Magento\NegotiableQuote\Model\ProductOptionsProviderInterface | Interface was added. | +| Magento\NegotiableQuote\Model\Validator\ValidatorInterface | Interface was added. | +| Magento\NegotiableQuote\Model\Status\LabelProviderInterface | Interface was added. | +| Magento\NegotiableQuote\Model\Restriction\RestrictionInterface | Interface was added. | +| Magento\NegotiableQuote\Model\ResourceModel\QuoteGridInterface | Interface was added. | +| Magento\NegotiableQuote\Model\Quote\ViewAccessInterface | Interface was added. | +| Magento\NegotiableQuote\Model\Attachment\DownloadPermission\AllowInterface | Interface was added. | +| Magento\NegotiableQuote\Api\NegotiableCartRepositoryInterface | Interface was added. | +| Magento\MultipleWishlist\Model\Search\Strategy\StrategyInterface | Interface was added. | +| Magento\MultipleWishlist\Controller\IndexInterface | Interface was added. | +| Magento\Msrp\Pricing\MsrpPriceCalculatorInterface | Interface was added. | +| Magento\MediaGalleryUiApi\Api\ConfigInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\CreateAssetFromFileInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\FetchBatchesInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\ImportFilesInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Api\SynchronizeFilesInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Api\SynchronizeInterface | Interface was added. | +| Magento\MediaGalleryRenditionsApi\Api\GenerateRenditionsInterface | Interface was added. | +| Magento\MediaGalleryRenditionsApi\Api\GetRenditionPathInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\FileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\ReadFileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\ReadMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\SegmentInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\WriteFileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\WriteMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\AddMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\ExtractMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\Data\MetadataInterface | Interface was added. | +| Magento\MediaGalleryApi\Model\ExcludedPatternsConfigInterface | Interface was added. | +| Magento\MediaGalleryApi\Api\SearchAssetsInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Model\GetEntitiesInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Api\SynchronizeIdentitiesInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Api\SynchronizeInterface | Interface was added. | +| Magento\MediaContentApi\Model\GetAssetIdsByContentFieldInterface | Interface was added. | +| Magento\MediaContentApi\Model\SearchPatternConfigInterface | Interface was added. | +| Magento\MediaContentApi\Api\GetAssetIdsByContentFieldInterface | Interface was added. | +| Magento\MediaContentApi\Api\UpdateContentAssetLinksInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\ConfigInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\IsAssistanceEnabledInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\SetAssistanceInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerAdminIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerCustomerIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\IsLoginAsCustomerEnabledForCustomerInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerAdminIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerCustomerIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\Data\IsLoginAsCustomerEnabledForCustomerResultInterface | Interface was added. | +| Magento\Invitation\Controller\Customer\AccountInterface | Interface was added. | +| Magento\InventoryIndexer\Indexer\SelectBuilderInterface | Interface was added. | +| Magento\Integration\Model\Oauth\Token\RequestLog\ReaderInterface | Interface was added. | +| Magento\Integration\Model\Oauth\Token\RequestLog\WriterInterface | Interface was added. | +| Magento\Indexer\Model\ModeSwitcherInterface | Interface was added. | +| Magento\Indexer\Model\Source\DataInterface | Interface was added. | +| Magento\ImportExport\Model\Report\ReportProcessorInterface | Interface was added. | +| Magento\ImportExport\Api\Data\ExtendedExportInfoInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextParametersInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextParametersProcessorInterface | Interface was added. | +| Magento\GraphQl\Controller\HttpHeaderProcessorInterface | Interface was added. | +| Magento\GraphQl\Controller\HttpRequestValidatorInterface | Interface was added. | +| Magento\GiftRegistry\Model\Attribute\ConfigInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\GiftCardAccountManagerInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\GiftCardAccountResourceInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\UsageAttemptFactoryInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\UsageAttemptsManagerInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\Data\UsageAttemptInterface | Interface was added. | +| Magento\GiftCardAccount\Api\GiftCardRedeemerInterface | Interface was added. | +| Magento\Elasticsearch\SearchAdapter\QueryAwareInterface | Interface was added. | +| Magento\Elasticsearch\SearchAdapter\Query\ValueTransformerInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldsMappingPreprocessorInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProviderInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldType\ResolverInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\ResolverInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ConverterInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ResolverInterface | Interface was added. | +| Magento\Eav\Model\ResourceModel\Attribute\DefaultEntityAttributes\ProviderInterface | Interface was added. | +| Magento\Eav\Model\Entity\AttributeLoaderInterface | Interface was added. | +| Magento\Eav\Model\Entity\Setup\PropertyMapperInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\AttributeInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\UniqueValidationInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\Source\SpecificSourceInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\Backend\BackendInterface | Interface was added. | +| Magento\Downloadable\Pricing\Price\LinkPriceInterface | Interface was added. | +| Magento\Downloadable\Api\DomainManagerInterface | Interface was added. | +| Magento\Directory\Model\Country\Postcode\ConfigInterface | Interface was added. | +| Magento\Directory\Model\Country\Postcode\ValidatorInterface | Interface was added. | +| Magento\Deploy\Strategy\StrategyInterface | Interface was added. | +| Magento\Deploy\Source\SourceInterface | Interface was added. | +| Magento\Deploy\Package\BundleInterface | Interface was added. | +| Magento\Deploy\Package\Processor\ProcessorInterface | Interface was added. | +| Magento\Deploy\Console\Command\App\SensitiveConfigSet\CollectorInterface | Interface was added. | +| Magento\Deploy\Collector\CollectorInterface | Interface was added. | +| Magento\Customer\Model\Customer\Attribute\Source\GroupSourceLoggedInOnlyInterface | Interface was added. | +| Magento\Customer\CustomerData\JsLayoutDataProviderPoolInterface | Interface was added. | +| Magento\Customer\CustomerData\SectionPoolInterface | Interface was added. | +| Magento\Customer\Controller\AccountInterface | Interface was added. | +| Magento\Customer\Block\Address\Renderer\RendererInterface | Interface was added. | +| Magento\Customer\Api\AccountDelegationInterface | Interface was added. | +| Magento\Customer\Api\SessionCleanerInterface | Interface was added. | +| Magento\CustomerCustomAttributes\Model\Customer\Attribute\ValidatorInterface | Interface was added. | +| Magento\Csp\Model\Policy\SimplePolicyInterface | Interface was added. | +| Magento\Csp\Model\Collector\MergerInterface | Interface was added. | +| Magento\Csp\Model\Collector\Config\PolicyReaderInterface | Interface was added. | +| Magento\Csp\Api\CspAwareActionInterface | Interface was added. | +| Magento\Csp\Api\CspRendererInterface | Interface was added. | +| Magento\Csp\Api\InlineUtilInterface | Interface was added. | +| Magento\Csp\Api\ModeConfigManagerInterface | Interface was added. | +| Magento\Csp\Api\PolicyCollectorInterface | Interface was added. | +| Magento\Csp\Api\PolicyRendererInterface | Interface was added. | +| Magento\Csp\Api\Data\ModeConfiguredInterface | Interface was added. | +| Magento\Csp\Api\Data\PolicyInterface | Interface was added. | +| Magento\Cron\Model\DeadlockRetrierInterface | Interface was added. | +| Magento\ConfigurableProduct\Model\ResourceModel\Attribute\OptionSelectBuilderInterface | Interface was added. | +| Magento\Company\Model\SaveValidatorInterface | Interface was added. | +| Magento\Company\Model\Customer\PermissionInterface | Interface was added. | +| Magento\Company\Api\CompanyUserManagerInterface | Interface was added. | +| Magento\CompanyCredit\Model\HistoryInterface | Interface was added. | +| Magento\CompanyCredit\Model\HistoryRepositoryInterface | Interface was added. | +| Magento\Cms\Ui\Component\AddFilterInterface | Interface was added. | +| Magento\Cms\Model\PageRepository\ValidatorInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayoutManagerInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayoutRepositoryInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayout\Data\CustomLayoutSelectedInterface | Interface was added. | +| Magento\Checkout\CustomerData\ItemPoolInterface | Interface was added. | +| Magento\Checkout\Controller\Express\RedirectLoginInterface | Interface was added. | +| Magento\Checkout\Api\PaymentProcessingRateLimiterInterface | Interface was added. | +| Magento\CheckoutAgreements\Model\AgreementsProviderInterface | Interface was added. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav\WysiwygConfigDataProcessorInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\ConfiguredPriceInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\MinimalPriceCalculatorInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\SpecialPriceInterface | Interface was added. | +| Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderInterface | Interface was added. | +| Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\PriceModifierInterface | Interface was added. | +| Magento\Catalog\Model\ProductOptions\ConfigInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\CollectionProviderInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\MapProviderInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Data\ListCriteriaInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Data\ListResultInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Converter\ConverterInterface | Interface was added. | +| Magento\Catalog\Model\Product\Pricing\Renderer\SalableResolverInterface | Interface was added. | +| Magento\Catalog\Model\Product\Media\ConfigInterface | Interface was added. | +| Magento\Catalog\Model\Product\Configuration\Item\Option\OptionInterface | Interface was added. | +| Magento\Catalog\Model\Product\Condition\ConditionInterface | Interface was added. | +| Magento\Catalog\Model\Layer\CollectionFilterInterface | Interface was added. | +| Magento\Catalog\Model\Layer\FilterableAttributeListInterface | Interface was added. | +| Magento\Catalog\Model\Layer\ItemCollectionProviderInterface | Interface was added. | +| Magento\Catalog\Model\Layer\StateKeyInterface | Interface was added. | +| Magento\Catalog\Model\Indexer\Product\Flat\TableDataInterface | Interface was added. | +| Magento\Catalog\Model\Entity\Product\Attribute\Group\AttributeMapperInterface | Interface was added. | +| Magento\Catalog\Model\Config\Source\ProductPriceOptionsInterface | Interface was added. | +| Magento\Catalog\Model\Attribute\LockValidatorInterface | Interface was added. | +| Magento\Catalog\Controller\Product\View\ViewInterface | Interface was added. | +| Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper\HandlerInterface | Interface was added. | +| Magento\Catalog\Block\Product\AwareInterface | Interface was added. | +| Magento\Catalog\Block\Product\ReviewRendererInterface | Interface was added. | +| Magento\CatalogUrlRewrite\Model\Map\DatabaseMapInterface | Interface was added. | +| Magento\CatalogUrlRewrite\Model\Map\HashMapInterface | Interface was added. | +| Magento\CatalogSearch\Model\Search\ItemCollectionProviderInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchCriteriaResolverInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchResultApplierInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\TotalRecordsResolverInterface | Interface was added. | +| Magento\CatalogSearch\Model\Advanced\ProductCollectionPrepareStrategyInterface | Interface was added. | +| Magento\CatalogSearch\Model\Adapter\Aggregation\RequestCheckerInterface | Interface was added. | +| Magento\CatalogRule\Model\Indexer\IndexerTableSwapperInterface | Interface was added. | +| Magento\CatalogImportExport\Model\Export\ProductFilterInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\Query\ProductQueryInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Product\CollectionProcessorInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Product\Price\ProviderInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Categories\DataProvider\Category\CollectionProcessorInterface | Interface was added. | +| Magento\CatalogGraphQl\DataProvider\Product\LayeredNavigation\LayerBuilderInterface | Interface was added. | +| Magento\CardinalCommerce\Model\Response\JwtParserInterface | Interface was added. | +| Magento\CardinalCommerce\Model\Response\JwtPayloadValidatorInterface | Interface was added. | +| Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface | Interface was added. | +| Magento\Backend\Model\Search\Config\Structure\ElementBuilderInterface | Interface was added. | +| Magento\Backend\Model\Image\UploadResizeConfigInterface | Interface was added. | +| Magento\Analytics\ReportXml\DB\Assembler\AssemblerInterface | Interface was added. | +| Magento\Analytics\Model\ExportDataHandlerInterface | Interface was added. | +| Magento\Analytics\Model\ReportWriterInterface | Interface was added. | +| Magento\Analytics\Model\Connector\CommandInterface | Interface was added. | +| Magento\Analytics\Api\LinkProviderInterface | Interface was added. | +| Magento\Analytics\Api\Data\LinkInterface | Interface was added. | +| Magento\AdvancedSearch\Block\SearchDataInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterGroupInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterTextGeneratorInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterableConditionInterface | Interface was added. | +| Magento\AdvancedCheckout\Model\AreProductsSalableForRequestedQtyInterface | Interface was added. | +| Magento\Framework\TranslateInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttributeTypeLocatorInterface | Interface was added. | +| Magento\Framework\Webapi\Rest\Request\DeserializerInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttribute\PreprocessorInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttribute\ServiceTypeListInterface | Interface was added. | +| Magento\Framework\View\DesignInterface | Interface was added. | +| Magento\Framework\View\TemplateEngineInterface | Interface was added. | +| Magento\Framework\View\Xsd\Media\TypeDataExtractorInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\ResultInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\AttributeInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CdataInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CommentInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\TextInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Element\ElementInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Directive\DirectiveInterface | Interface was added. | +| Magento\Framework\View\Page\Config\RendererInterface | Interface was added. | +| Magento\Framework\View\Model\PageLayout\Config\BuilderInterface | Interface was added. | +| Magento\Framework\View\Layout\GeneratorInterface | Interface was added. | +| Magento\Framework\View\Layout\LayoutCacheKeyInterface | Interface was added. | +| Magento\Framework\View\Layout\ProcessorInterface | Interface was added. | +| Magento\Framework\View\Layout\ReaderInterface | Interface was added. | +| Magento\Framework\View\Layout\Condition\VisibilityConditionInterface | Interface was added. | +| Magento\Framework\View\Layout\Argument\UpdaterInterface | Interface was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\SecurityProcessorInterface | Interface was added. | +| Magento\Framework\View\File\FileList\CollateInterface | Interface was added. | +| Magento\Framework\View\Element\ComponentVisibilityInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\BlockWrapperInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContainerInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContextInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\DataSourceInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\JsConfigInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\LayoutInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ObserverInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\PoolInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\SubjectInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Factory\ComponentFactoryInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\FilterApplierInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ActionPoolInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ControlInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContentType\ContentTypeInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\DomMergerInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\FileCollectorInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\UiReaderInterface | Interface was added. | +| Magento\Framework\View\Element\Message\InterpretationStrategyInterface | Interface was added. | +| Magento\Framework\View\Element\Message\Renderer\PoolInterface | Interface was added. | +| Magento\Framework\View\Element\Message\Renderer\RendererInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\CustomizationInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\FileInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\ResolverInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\ThemeProviderInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Image\PathInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\File\CollectionInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\ConfigInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\FileAssetInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\FileInterface | Interface was added. | +| Magento\Framework\View\Design\FileResolution\Fallback\ResolverInterface | Interface was added. | +| Magento\Framework\View\Design\Fallback\Rule\RuleInterface | Interface was added. | +| Magento\Framework\View\Asset\ContentProcessorInterface | Interface was added. | +| Magento\Framework\View\Asset\ContextInterface | Interface was added. | +| Magento\Framework\View\Asset\LockerProcessInterface | Interface was added. | +| Magento\Framework\View\Asset\MergeStrategyInterface | Interface was added. | +| Magento\Framework\View\Asset\MergeableInterface | Interface was added. | +| Magento\Framework\View\Asset\PreProcessor\FilenameResolverInterface | Interface was added. | +| Magento\Framework\Validator\HTML\AttributeValidatorInterface | Interface was added. | +| Magento\Framework\Validator\HTML\TagValidatorInterface | Interface was added. | +| Magento\Framework\Validator\HTML\WYSIWYGValidatorInterface | Interface was added. | +| Magento\Framework\Validator\Constraint\OptionInterface | Interface was added. | +| Magento\Framework\Url\ModifierInterface | Interface was added. | +| Magento\Framework\Url\RouteParamsPreprocessorInterface | Interface was added. | +| Magento\Framework\Translate\Inline\ProviderInterface | Interface was added. | +| Magento\Framework\TestFramework\Unit\Autoloader\GeneratorInterface | Interface was added. | +| Magento\Framework\Setup\ConfigOptionsListInterface | Interface was added. | +| Magento\Framework\Setup\DataCacheInterface | Interface was added. | +| Magento\Framework\Setup\UpToDateValidatorInterface | Interface was added. | +| Magento\Framework\Setup\SchemaListenerHandlers\SchemaListenerHandlerInterface | Interface was added. | +| Magento\Framework\Setup\SchemaListenerDefinition\DefinitionConverterInterface | Interface was added. | +| Magento\Framework\Setup\SampleData\InstallerInterface | Interface was added. | +| Magento\Framework\Setup\SampleData\StateInterface | Interface was added. | +| Magento\Framework\Setup\Patch\DataPatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\DependentPatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\NonTransactionableInterface | Interface was added. | +| Magento\Framework\Setup\Patch\PatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\PatchRevertableInterface | Interface was added. | +| Magento\Framework\Setup\Patch\SchemaPatchInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\OperationInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\SchemaConfigInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\ElementDiffAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\TableElementInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Factories\FactoryInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnDefaultAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnIdentityAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnNullableAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnUnsignedAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Diff\DiffInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DDLTriggerInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbDefinitionProcessorInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaReaderInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaWriterInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\DataSavior\DataSaviorInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\DataSavior\DumpAccessorInterface | Interface was added. | +| Magento\Framework\Session\SaveHandlerInterface | Interface was added. | +| Magento\Framework\Session\StorageInterface | Interface was added. | +| Magento\Framework\Session\ValidatorInterface | Interface was added. | +| Magento\Framework\Session\Config\ConfigInterface | Interface was added. | +| Magento\Framework\Search\AdapterInterface | Interface was added. | +| Magento\Framework\Search\ResponseInterface | Interface was added. | +| Magento\Framework\Search\SearchEngineInterface | Interface was added. | +| Magento\Framework\Search\SearchEngine\ConfigInterface | Interface was added. | +| Magento\Framework\Search\Request\IndexScopeResolverInterface | Interface was added. | +| Magento\Framework\Search\Request\Aggregation\StatusInterface | Interface was added. | +| Magento\Framework\Search\Dynamic\Algorithm\AlgorithmInterface | Interface was added. | +| Magento\Framework\Search\Adapter\OptionsInterface | Interface was added. | +| Magento\Framework\Search\Adapter\Preprocessor\PreprocessorInterface | Interface was added. | +| Magento\Framework\Search\Adapter\Aggregation\AggregationResolverInterface | Interface was added. | +| Magento\Framework\Profiler\Driver\Standard\OutputInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigCacheInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigLoaderInterface | Interface was added. | +| Magento\Framework\ObjectManager\DefinitionInterface | Interface was added. | +| Magento\Framework\ObjectManager\DynamicConfigInterface | Interface was added. | +| Magento\Framework\ObjectManager\FactoryInterface | Interface was added. | +| Magento\Framework\ObjectManager\NoninterceptableInterface | Interface was added. | +| Magento\Framework\ObjectManager\RelationsInterface | Interface was added. | +| Magento\Framework\Mview\ConfigInterface | Interface was added. | +| Magento\Framework\Mview\ProcessorInterface | Interface was added. | +| Magento\Framework\Mview\ViewInterface | Interface was added. | +| Magento\Framework\Mview\View\ChangelogInterface | Interface was added. | +| Magento\Framework\Mview\View\CollectionInterface | Interface was added. | +| Magento\Framework\Mview\View\StateInterface | Interface was added. | +| Magento\Framework\Mview\View\SubscriptionInterface | Interface was added. | +| Magento\Framework\Mview\View\State\CollectionInterface | Interface was added. | +| Magento\Framework\Module\ModuleListInterface | Interface was added. | +| Magento\Framework\Model\ResourceModel\Type\Db\ConnectionFactoryInterface | Interface was added. | +| Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface | Interface was added. | +| Magento\Framework\Model\EntitySnapshot\AttributeProviderInterface | Interface was added. | +| Magento\Framework\Model\Entity\ScopeInterface | Interface was added. | +| Magento\Framework\Model\Entity\ScopeProviderInterface | Interface was added. | +| Magento\Framework\Message\ExceptionMessageFactoryInterface | Interface was added. | +| Magento\Framework\Mail\EmailMessageInterface | Interface was added. | +| Magento\Framework\Mail\MimeInterface | Interface was added. | +| Magento\Framework\Mail\MimeMessageInterface | Interface was added. | +| Magento\Framework\Mail\MimePartInterface | Interface was added. | +| Magento\Framework\Locale\AvailableLocalesInterface | Interface was added. | +| Magento\Framework\Locale\OptionInterface | Interface was added. | +| Magento\Framework\Interception\ConfigInterface | Interface was added. | +| Magento\Framework\Interception\ConfigLoaderInterface | Interface was added. | +| Magento\Framework\Interception\ConfigWriterInterface | Interface was added. | +| Magento\Framework\Interception\DefinitionInterface | Interface was added. | +| Magento\Framework\Interception\InterceptorInterface | Interface was added. | +| Magento\Framework\Interception\PluginListInterface | Interface was added. | +| Magento\Framework\Interception\ObjectManager\ConfigInterface | Interface was added. | +| Magento\Framework\Indexer\Table\StrategyInterface | Interface was added. | +| Magento\Framework\Indexer\Config\DependencyInfoProviderInterface | Interface was added. | +| Magento\Framework\Image\Adapter\AdapterInterface | Interface was added. | +| Magento\Framework\Image\Adapter\ConfigInterface | Interface was added. | +| Magento\Framework\HTTP\AsyncClientInterface | Interface was added. | +| Magento\Framework\HTTP\AsyncClient\HttpResponseDeferredInterface | Interface was added. | +| Magento\Framework\GraphQlSchemaStitching\GraphQlReader\TypeMetaReaderInterface | Interface was added. | +| Magento\Framework\GraphQl\ConfigInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\SchemaGeneratorInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\TypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\InputTypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\OutputTypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\WrappedTypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Output\ElementMapper\FormatterInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Enum\DataMapperInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Entity\MapperInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\ErrorHandlerInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\ResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchRequestItemInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchServiceContractResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\ContextInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\IdentityInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\ResolveRequestInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\TypeResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\Argument\FieldEntityAttributesInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\Argument\SearchCriteria\ArgumentApplierInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\ConfigElementFactoryInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\ConfigElementInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\FieldInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\OutputFieldInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\TypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\UnionInterface | Interface was added. | +| Magento\Framework\Filter\DirectiveProcessorInterface | Interface was added. | +| Magento\Framework\Filter\FactoryInterface | Interface was added. | +| Magento\Framework\Filter\VariableResolverInterface | Interface was added. | +| Magento\Framework\Filter\SimpleDirective\ProcessorInterface | Interface was added. | +| Magento\Framework\Filter\FilterManager\ConfigInterface | Interface was added. | +| Magento\Framework\Filter\DirectiveProcessor\FilterInterface | Interface was added. | +| Magento\Framework\Filesystem\DriverPoolInterface | Interface was added. | +| Magento\Framework\Filesystem\File\ReadInterface | Interface was added. | +| Magento\Framework\Filesystem\Directory\PathValidatorInterface | Interface was added. | +| Magento\Framework\Exception\TemporaryStateExceptionInterface | Interface was added. | +| Magento\Framework\Event\ConfigInterface | Interface was added. | +| Magento\Framework\Event\InvokerInterface | Interface was added. | +| Magento\Framework\Event\ManagerInterface | Interface was added. | +| Magento\Framework\Encryption\Adapter\EncryptionAdapterInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityGeneratorInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityValidatorInterface | Interface was added. | +| Magento\Framework\DataObject\KeyValueObjectInterface | Interface was added. | +| Magento\Framework\Data\CollectionDataSourceInterface | Interface was added. | +| Magento\Framework\Data\CollectionModifierInterface | Interface was added. | +| Magento\Framework\Data\SearchResultInterface | Interface was added. | +| Magento\Framework\Data\SearchResultProcessorInterface | Interface was added. | +| Magento\Framework\Data\ValueSourceInterface | Interface was added. | +| Magento\Framework\Data\Collection\EntityFactoryInterface | Interface was added. | +| Magento\Framework\Data\Collection\Db\FetchStrategyInterface | Interface was added. | +| Magento\Framework\DB\LoggerInterface | Interface was added. | +| Magento\Framework\DB\MapperInterface | Interface was added. | +| Magento\Framework\DB\QueryInterface | Interface was added. | +| Magento\Framework\DB\Sql\ExpressionInterface | Interface was added. | +| Magento\Framework\DB\Sequence\SequenceInterface | Interface was added. | +| Magento\Framework\DB\Select\QueryModifierInterface | Interface was added. | +| Magento\Framework\DB\Select\RendererInterface | Interface was added. | +| Magento\Framework\DB\Query\BatchIteratorInterface | Interface was added. | +| Magento\Framework\DB\DataConverter\DataConverterInterface | Interface was added. | +| Magento\Framework\Css\PreProcessor\ErrorHandlerInterface | Interface was added. | +| Magento\Framework\Crontab\CrontabManagerInterface | Interface was added. | +| Magento\Framework\Crontab\TasksProviderInterface | Interface was added. | +| Magento\Framework\Component\ComponentRegistrarInterface | Interface was added. | +| Magento\Framework\Code\ValidatorInterface | Interface was added. | +| Magento\Framework\Code\Reader\ClassReaderInterface | Interface was added. | +| Magento\Framework\Code\Minifier\AdapterInterface | Interface was added. | +| Magento\Framework\Code\Generator\CodeGeneratorInterface | Interface was added. | +| Magento\Framework\Cache\ConfigInterface | Interface was added. | +| Magento\Framework\Cache\StaleCacheNotifierInterface | Interface was added. | +| Magento\Framework\Backup\SourceFileInterface | Interface was added. | +| Magento\Framework\Autoload\AutoloaderInterface | Interface was added. | +| Magento\Framework\Async\CancelableDeferredInterface | Interface was added. | +| Magento\Framework\Async\DeferredInterface | Interface was added. | +| Magento\Framework\App\AreaInterface | Interface was added. | +| Magento\Framework\App\CsrfAwareActionInterface | Interface was added. | +| Magento\Framework\App\DefaultPathInterface | Interface was added. | +| Magento\Framework\App\DesignInterface | Interface was added. | +| Magento\Framework\App\EnvironmentInterface | Interface was added. | +| Magento\Framework\App\ExceptionHandlerInterface | Interface was added. | +| Magento\Framework\App\FeedFactoryInterface | Interface was added. | +| Magento\Framework\App\FeedInterface | Interface was added. | +| Magento\Framework\App\HttpRequestInterface | Interface was added. | +| Magento\Framework\App\RouterInterface | Interface was added. | +| Magento\Framework\App\RouterListInterface | Interface was added. | +| Magento\Framework\App\ScopeFallbackResolverInterface | Interface was added. | +| Magento\Framework\App\ScopeResolverInterface | Interface was added. | +| Magento\Framework\App\ScopeTreeProviderInterface | Interface was added. | +| Magento\Framework\App\ScopeValidatorInterface | Interface was added. | +| Magento\Framework\App\View\Deployment\Version\StorageInterface | Interface was added. | +| Magento\Framework\App\View\Asset\MaterializationStrategy\StrategyInterface | Interface was added. | +| Magento\Framework\App\Scope\ValidatorInterface | Interface was added. | +| Magento\Framework\App\Rss\RssManagerInterface | Interface was added. | +| Magento\Framework\App\Rss\UrlBuilderInterface | Interface was added. | +| Magento\Framework\App\Router\NoRouteHandlerInterface | Interface was added. | +| Magento\Framework\App\Router\PathConfigInterface | Interface was added. | +| Magento\Framework\App\Response\FileInterface | Interface was added. | +| Magento\Framework\App\Response\RedirectInterface | Interface was added. | +| Magento\Framework\App\Response\HeaderProvider\HeaderProviderInterface | Interface was added. | +| Magento\Framework\App\ResourceConnection\ConfigInterface | Interface was added. | +| Magento\Framework\App\ResourceConnection\ConnectionAdapterInterface | Interface was added. | +| Magento\Framework\App\Request\ValidatorInterface | Interface was added. | +| Magento\Framework\App\PageCache\NotCacheableInterface | Interface was added. | +| Magento\Framework\App\ObjectManager\ConfigWriterInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\ImporterInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\ValidatorInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\Writer\FormatterInterface | Interface was added. | +| Magento\Framework\App\Config\CommentInterface | Interface was added. | +| Magento\Framework\App\Config\CommentParserInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigSourceInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigTypeInterface | Interface was added. | +| Magento\Framework\App\Config\ValueInterface | Interface was added. | +| Magento\Framework\App\Config\Spi\PostProcessorInterface | Interface was added. | +| Magento\Framework\App\Config\Spi\PreProcessorInterface | Interface was added. | +| Magento\Framework\App\Config\Scope\ReaderInterface | Interface was added. | +| Magento\Framework\App\Config\Reader\Source\SourceInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigResource\ConfigInterface | Interface was added. | +| Magento\Framework\App\Action\HttpConnectActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpDeleteActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpGetActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpOptionsActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPatchActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPostActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPropfindActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPutActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpTraceActionInterface | Interface was added. | +| Magento\Framework\Api\AttributeTypeResolverInterface | Interface was added. | +| Magento\Framework\Api\CriteriaInterface | Interface was added. | +| Magento\Framework\Api\SimpleBuilderInterface | Interface was added. | +| Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionInterface | Interface was added. | +| Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionProviderInterface | Interface was added. | +| Magento\Framework\Api\Search\AggregationInterface | Interface was added. | +| Magento\Framework\Api\Search\AggregationValueInterface | Interface was added. | +| Magento\Framework\Api\Search\BucketInterface | Interface was added. | +| Magento\Framework\Api\Search\DocumentInterface | Interface was added. | +| Magento\Framework\Api\Search\ReportingInterface | Interface was added. | +| Magento\Framework\MessageQueue\BulkPublisherInterface | Interface was added. | +| Magento\Framework\MessageQueue\CallbackInvokerInterface | Interface was added. | +| Magento\Framework\MessageQueue\ConnectionTypeResolverInterface | Interface was added. | +| Magento\Framework\MessageQueue\ConsumerConfigurationInterface | Interface was added. | +| Magento\Framework\MessageQueue\LockInterface | Interface was added. | +| Magento\Framework\MessageQueue\MergedMessageInterface | Interface was added. | +| Magento\Framework\MessageQueue\MergerInterface | Interface was added. | +| Magento\Framework\MessageQueue\MessageProcessorInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\QueueConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItem\BindingInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\PublisherConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\PublisherConnectionInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillCompareInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillReadInterface | Interface was added. | +| Magento\Framework\MessageQueue\Lock\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Lock\WriterInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItem\HandlerInterface | Interface was added. | +| Magento\Framework\ForeignKey\ConfigInterface | Interface was added. | +| Magento\Framework\ForeignKey\ConstraintInterface | Interface was added. | +| Magento\Framework\ForeignKey\StrategyInterface | Interface was added. | +| Magento\Framework\Amqp\Topology\BindingInstallerInterface | Interface was added. | diff --git a/src/_includes/backward-incompatible-changes/commerce/2.4.4-2.4.5.md b/src/_includes/backward-incompatible-changes/commerce/2.4.4-2.4.5.md new file mode 100644 index 00000000000..c211f245345 --- /dev/null +++ b/src/_includes/backward-incompatible-changes/commerce/2.4.4-2.4.5.md @@ -0,0 +1,858 @@ +#### Class changes {#ee-244-245-class} + +| What changed | How it changed | +| --- | --- | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\CustomOptions::formatPrice | [protected] Method has been removed. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav::formatPrice | [protected] Method has been removed. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\General::formatPrice | [protected] Method has been removed. | +| Magento\GoogleTagManager\Model\Config\Source\GtagAccountType | Class was added. | +| Magento\GoogleTagManager\Block\GtagGa | Class was added. | +| Magento\GoogleTagManager\Block\Adminhtml\GtagGa | Class was added. | +| Magento\GoogleTagManager\Block\Adminhtml\Creditmemo\GtagGa | Class was added. | +| Magento\GoogleGtag\Block\Ga | Class was added. | +| Magento\CatalogInventory\Model\Source\Stock::\_\_construct | [public] Method has been added. | + +#### Database changes {#ee-244-245-database} + +| What changed | How it changed | +| --- | --- | +| salesrule\_label/SALESRULE\_LABEL\_RULE\_ID\_SEQUENCE\_SALESRULE\_SEQUENCE\_VALUE | Foreign key was removed | +| salesrule\_label/SALESRULE\_LABEL\_ROW\_ID\_SALESRULE\_ROW\_ID | Foreign key was added | +| catalog\_product\_index\_price\_tmp/PRIMARY | Primary key was changed | +| magento\_catalogpermissions\_index\_product/PRIMARY | Primary key was added | +| magento\_catalogpermissions\_index\_product\_replica/PRIMARY | Primary key was added | +| salesrule\_label/SALESRULE\_LABEL\_RULE\_ID\_STORE\_ID | Unique key was added | +| salesrule\_label/SALESRULE\_LABEL\_ROW\_ID\_STORE\_ID | Unique key was added | +| salesrule\_label/rule\_id | Column was added | +| salesrule\_label/row\_id | Column was added | +| customer\_eav\_attribute/grid\_filter\_condition\_type | Column was added | +| catalog\_product\_index\_price\_tmp/id | Column was added | +| magento\_catalogpermissions\_index\_product/index\_id | Column was added | +| magento\_catalogpermissions\_index\_product\_replica/index\_id | Column was added | + +#### System changes {#ee-244-245-system} + +| What changed | How it changed | +| --- | --- | +| recaptcha\_frontend | A section-node was added | +| recaptcha\_frontend/type\_for | A group-node was added | +| recaptcha\_frontend/type\_for/wishlist | A field-node was added | +| recaptcha\_frontend/type\_for/customer\_invite\_create | A field-node was added | +| recaptcha\_frontend/type\_for/giftcard | A field-node was added | +| webapi/graphql\_session | A group-node was added | +| webapi/graphql\_session/disabled | A field-node was added | +| web\_api | A section-node was added | +| web\_api/graphql | A group-node was added | +| web\_api/graphql/include\_dynamic\_attributes\_as\_entity\_type\_fields | A field-node was added | +| google/gtag | A group-node was added | +| google/gtag/analytics4 | A group-node was added | +| google/gtag/analytics4/type | A field-node was added | +| google/gtag/analytics4/measurement\_id | A field-node was added | +| google/gtag/analytics4/container\_id | A field-node was added | +| google/gtag/analytics4/catalog\_page\_list\_value | A field-node was added | +| google/gtag/analytics4/crosssell\_block\_list\_value | A field-node was added | +| google/gtag/analytics4/upsell\_block\_list\_value | A field-node was added | +| google/gtag/analytics4/related\_block\_list\_value | A field-node was added | +| google/gtag/analytics4/search\_page\_list\_value | A field-node was added | +| google/gtag/analytics4/promotions\_list\_value | A field-node was added | +| google/gtag/analytics4/experiments | A field-node was added | +| google/gtag/analytics4/active | A field-node was added | +| google/gtag/adwords | A group-node was added | +| google/gtag/adwords/active | A field-node was added | +| google/gtag/adwords/conversion\_id | A field-node was added | +| google/gtag/adwords/conversion\_label | A field-node was added | + +#### Class API membership changes {#ee-244-245-class-api-membership} + +| What changed | How it changed | +| --- | --- | +| Magento\Wishlist\Model\Wishlist\Data\WishlistItem | Class was added. | +| Magento\VisualMerchandiser\Model\Sorting\Factory | Class was added. | +| Magento\VisualMerchandiser\Model\Rules\Factory | Class was added. | +| Magento\Ui\Component\Form\Fieldset\Factory | Class was added. | +| Magento\Ui\Component\Control\Container | Class was added. | +| Magento\TargetRule\Block\Product\AbstractProduct | Class was added. | +| Magento\Store\Ui\Component\Listing\Column\Store\Options | Class was added. | +| Magento\ScheduledImportExport\Model\Scheduled\Operation | Class was added. | +| Magento\Sales\Setup\SalesSetup | Class was added. | +| Magento\Sales\Model\Service\InvoiceService | Class was added. | +| Magento\Sales\Model\ResourceModel\Order\CollectionFactory | Class was added. | +| Magento\Sales\Model\ResourceModel\Order\Collection\Factory | Class was added. | +| Magento\Sales\Model\Order\CreditmemoFactory | Class was added. | +| Magento\Sales\Model\Order\Pdf\Total\DefaultTotal | Class was added. | +| Magento\Sales\Model\Order\Email\Sender\InvoiceSender | Class was added. | +| Magento\Sales\Model\Order\Email\Sender\OrderSender | Class was added. | +| Magento\Sales\Controller\Adminhtml\Order | Class was added. | +| Magento\SalesRule\Model\Validator | Class was added. | +| Magento\SalesRule\Api\Exception\CodeRequestLimitException | Class was added. | +| Magento\Quote\Setup\QuoteSetup | Class was added. | +| Magento\Quote\Model\Quote\Item\CartItemOptionsProcessor | Class was added. | +| Magento\Quote\Model\Quote\Item\Option | Class was added. | +| Magento\Quote\Model\Quote\Address\RateCollectorInterfaceFactory | Class was added. | +| Magento\Quote\Model\Cart\Data\CartItem | Class was added. | +| Magento\Paypal\Model\Billing\AbstractAgreement | Class was added. | +| Magento\Payment\Gateway\Config\Config | Class was added. | +| Magento\Indexer\Model\DimensionModes | Class was added. | +| Magento\ImportExport\Model\Export\Factory | Class was added. | +| Magento\GiftCardAccount\Api\Exception\TooManyAttemptsException | Class was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\AttributeAdapter | Class was added. | +| Magento\Deploy\Package\Package | Class was added. | +| Magento\Deploy\Package\PackageFile | Class was added. | +| Magento\Customer\Setup\CustomerSetup | Class was added. | +| Magento\Customer\Model\Context | Class was added. | +| Magento\Customer\Model\CustomerRegistry | Class was added. | +| Magento\Customer\Model\Url | Class was added. | +| Magento\Customer\Model\Metadata\FormFactory | Class was added. | +| Magento\Customer\Controller\RegistryConstants | Class was added. | +| Magento\Customer\Controller\Adminhtml\Index | Class was added. | +| Magento\Customer\Block\Adminhtml\Edit\GenericButton | Class was added. | +| Magento\Config\Block\System\Config\Form\Fieldset\Factory | Class was added. | +| Magento\Config\Block\System\Config\Form\Field\Factory | Class was added. | +| Magento\Cms\Model\Template\FilterProvider | Class was added. | +| Magento\Checkout\Model\Type\Onepage | Class was added. | +| Magento\Checkout\Controller\Cart | Class was added. | +| Magento\Checkout\Api\Exception\PaymentProcessingRateLimitExceededException | Class was added. | +| Magento\Catalog\Pricing\Price\FinalPrice | Class was added. | +| Magento\Catalog\Model\Config | Class was added. | +| Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\IndexTableStructure | Class was added. | +| Magento\Catalog\Model\Product\Type\Price\Factory | Class was added. | +| Magento\Catalog\Model\Layer\Resolver | Class was added. | +| Magento\Catalog\Model\Layer\Filter\Item | Class was added. | +| Magento\Catalog\Controller\Adminhtml\Product | Class was added. | +| Magento\Catalog\Block\Product\ImageFactory | Class was added. | +| Magento\Catalog\Block\Adminhtml\Product\Edit\Button\Generic | Class was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\SearchResult | Class was added. | +| Magento\Analytics\ReportXml\DB\SelectBuilder | Class was added. | +| Magento\Framework\AclFactory | Class was added. | +| Magento\Framework\EventFactory | Class was added. | +| Magento\Framework\Url | Class was added. | +| Magento\Framework\UrlFactory | Class was added. | +| Magento\Framework\ValidatorFactory | Class was added. | +| Magento\Framework\Webapi\Exception | Class was added. | +| Magento\Framework\Webapi\Rest\Request | Class was added. | +| Magento\Framework\View\Asset | Class was added. | +| Magento\Framework\View\LayoutFactory | Class was added. | +| Magento\Framework\View\PageLayout\Config | Class was added. | +| Magento\Framework\View\Page\ConfigFactory | Class was added. | +| Magento\Framework\View\Layout\Reader\ContextFactory | Class was added. | +| Magento\Framework\View\Layout\Generator\ContextFactory | Class was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\EventHandlerData | Class was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\TagData | Class was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider | Class was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult | Class was added. | +| Magento\Framework\View\Element\Html\Select | Class was added. | +| Magento\Framework\View\Asset\FileFactory | Class was added. | +| Magento\Framework\View\Asset\File\FallbackContextFactory | Class was added. | +| Magento\Framework\Url\Helper\Data | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\ElementHistory | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Schema | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Table | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Diff\DiffFactory | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\StatementAggregator | Class was added. | +| Magento\Framework\Session\Config | Class was added. | +| Magento\Framework\Session\SessionManager | Class was added. | +| Magento\Framework\Profiler\Driver\Standard\Stat | Class was added. | +| Magento\Framework\Module\Dir | Class was added. | +| Magento\Framework\Module\Manager | Class was added. | +| Magento\Framework\Module\Setup\MigrationFactory | Class was added. | +| Magento\Framework\Message\CollectionFactory | Class was added. | +| Magento\Framework\Mail\Address | Class was added. | +| Magento\Framework\Mail\TransportInterfaceFactory | Class was added. | +| Magento\Framework\Logger\Handler\Base | Class was added. | +| Magento\Framework\Image\AdapterFactory | Class was added. | +| Magento\Framework\Image\Adapter\AbstractAdapter | Class was added. | +| Magento\Framework\HTTP\PhpEnvironment\RemoteAddress | Class was added. | +| Magento\Framework\HTTP\PhpEnvironment\Request | Class was added. | +| Magento\Framework\HTTP\Client\Curl | Class was added. | +| Magento\Framework\HTTP\AsyncClient\Request | Class was added. | +| Magento\Framework\HTTP\AsyncClient\Response | Class was added. | +| Magento\Framework\HTTP\Adapter\Curl | Class was added. | +| Magento\Framework\GraphQl\Schema | Class was added. | +| Magento\Framework\GraphQl\Schema\Type\ResolveInfo | Class was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchResponse | Class was added. | +| Magento\Framework\GraphQl\Query\Resolver\Value | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlAuthenticationException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlAuthorizationException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlInputException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlNoSuchEntityException | Class was added. | +| Magento\Framework\GraphQl\Config\Element\Field | Class was added. | +| Magento\Framework\Filesystem\DirectoryList | Class was added. | +| Magento\Framework\Filesystem\Io\File | Class was added. | +| Magento\Framework\Filesystem\Directory\ReadFactory | Class was added. | +| Magento\Framework\File\Csv | Class was added. | +| Magento\Framework\File\UploaderFactory | Class was added. | +| Magento\Framework\Event\ObserverFactory | Class was added. | +| Magento\Framework\DataObject\Factory | Class was added. | +| Magento\Framework\Data\FormFactory | Class was added. | +| Magento\Framework\Data\TreeFactory | Class was added. | +| Magento\Framework\Data\Tree\Dbp | Class was added. | +| Magento\Framework\Data\Tree\NodeFactory | Class was added. | +| Magento\Framework\Data\Form\Element\Factory | Class was added. | +| Magento\Framework\Data\Form\Element\Image | Class was added. | +| Magento\Framework\DB\Helper | Class was added. | +| Magento\Framework\DB\Transaction | Class was added. | +| Magento\Framework\DB\Helper\AbstractHelper | Class was added. | +| Magento\Framework\DB\Ddl\TriggerFactory | Class was added. | +| Magento\Framework\DB\Adapter\Pdo\MysqlFactory | Class was added. | +| Magento\Framework\Convert\DataObject | Class was added. | +| Magento\Framework\Controller\Result\Forward | Class was added. | +| Magento\Framework\Controller\Result\JsonFactory | Class was added. | +| Magento\Framework\Controller\Result\Raw | Class was added. | +| Magento\Framework\Console\Cli | Class was added. | +| Magento\Framework\Config\ViewFactory | Class was added. | +| Magento\Framework\Config\Data\ConfigDataFactory | Class was added. | +| Magento\Framework\App\Area | Class was added. | +| Magento\Framework\App\Response\Http | Class was added. | +| Magento\Framework\App\Response\Http\FileFactory | Class was added. | +| Magento\Framework\App\Request\Http | Class was added. | +| Magento\Framework\App\Request\InvalidRequestException | Class was added. | +| Magento\Framework\App\Http\Context | Class was added. | +| Magento\Framework\App\Filesystem\DirectoryList | Class was added. | +| Magento\Framework\App\Config\ValueFactory | Class was added. | +| Magento\Framework\App\Cache\Type\Config | Class was added. | +| Magento\Framework\Api\AbstractSimpleObject | Class was added. | +| Magento\Framework\Api\SearchCriteriaBuilder | Class was added. | +| Magento\Framework\Api\Search\DocumentFactory | Class was added. | +| Magento\Framework\Api\Search\SearchCriteriaFactory | Class was added. | +| Magento\Framework\Api\ExtensionAttribute\JoinData | Class was added. | +| Magento\Framework\Api\ExtensionAttribute\JoinDataInterfaceFactory | Class was added. | +| Magento\Framework\Acl\AclResourceFactory | Class was added. | +| Magento\Framework\Amqp\ConfigFactory | Class was added. | + +#### Interface API membership changes {#ee-244-245-interface-api-membership} + +| What changed | How it changed | +| --- | --- | +| Magento\Wishlist\Model\AuthenticationStateInterface | Interface was added. | +| Magento\Wishlist\Model\Wishlist\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | +| Magento\Wishlist\Model\ResourceModel\Item\Product\CollectionBuilderInterface | Interface was added. | +| Magento\Wishlist\Controller\IndexInterface | Interface was added. | +| Magento\Wishlist\Controller\WishlistProviderInterface | Interface was added. | +| Magento\Widget\Block\BlockInterface | Interface was added. | +| Magento\Webapi\Controller\Rest\RequestProcessorInterface | Interface was added. | +| Magento\VisualMerchandiser\Api\RuleFactoryPoolInterface | Interface was added. | +| Magento\VersionsCms\Model\CurrentNodeResolverInterface | Interface was added. | +| Magento\VersionsCms\Model\Hierarchy\ConfigInterface | Interface was added. | +| Magento\Vault\Block\Customer\IconInterface | Interface was added. | +| Magento\User\Model\Spi\NotificationExceptionInterface | Interface was added. | +| Magento\User\Model\Spi\NotificatorInterface | Interface was added. | +| Magento\UrlRewriteGraphQl\Model\Resolver\UrlRewrite\CustomUrlLocatorInterface | Interface was added. | +| Magento\Ui\Model\UrlInput\ConfigInterface | Interface was added. | +| Magento\Ui\Model\ColorPicker\ModeInterface | Interface was added. | +| Magento\Ui\DataProvider\AddFieldToCollectionInterface | Interface was added. | +| Magento\Ui\DataProvider\AddFilterToCollectionInterface | Interface was added. | +| Magento\Ui\DataProvider\Modifier\PoolInterface | Interface was added. | +| Magento\Ui\DataProvider\Mapper\MapperInterface | Interface was added. | +| Magento\Ui\Controller\UiActionInterface | Interface was added. | +| Magento\Ui\Config\ConverterInterface | Interface was added. | +| Magento\Ui\Config\Argument\ParserInterface | Interface was added. | +| Magento\Ui\Component\Wysiwyg\ConfigInterface | Interface was added. | +| Magento\Ui\Component\Layout\Tabs\TabInterface | Interface was added. | +| Magento\Ui\Component\Form\Element\DataType\DataTypeInterface | Interface was added. | +| Magento\Theme\Model\Theme\StoreThemesResolverInterface | Interface was added. | +| Magento\Theme\Model\Design\Config\MetadataProviderInterface | Interface was added. | +| Magento\Tax\Model\TaxClass\Type\TypeInterface | Interface was added. | +| Magento\Tax\Model\System\Message\NotificationInterface | Interface was added. | +| Magento\Tax\Api\TaxAddressManagerInterface | Interface was added. | +| Magento\Swat\Api\Data\JwtInterface | Interface was added. | +| Magento\Swat\Api\Data\SwatKeyPairInterface | Interface was added. | +| Magento\Support\Model\Report\ConfigInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcherInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\ContextInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataPostprocessorInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataPreprocessorInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataSerializerInterface | Interface was added. | +| Magento\Store\Model\StoreResolver\ReaderInterface | Interface was added. | +| Magento\Store\Model\Config\Importer\Processor\ProcessorInterface | Interface was added. | +| Magento\Staging\Ui\Component\Listing\Column\Entity\UrlProviderInterface | Interface was added. | +| Magento\Staging\Model\StagingApplierInterface | Interface was added. | +| Magento\Staging\Model\VersionHistoryInterface | Interface was added. | +| Magento\Staging\Model\Update\IncludesInterface | Interface was added. | +| Magento\Staging\Model\Update\Grid\ActionDataProviderInterface | Interface was added. | +| Magento\Staging\Model\Operation\Update\UpdateProcessorInterface | Interface was added. | +| Magento\Staging\Model\Entity\BuilderInterface | Interface was added. | +| Magento\Staging\Model\Entity\HydratorInterface | Interface was added. | +| Magento\Staging\Model\Entity\PersisterInterface | Interface was added. | +| Magento\Staging\Model\Entity\RemoverInterface | Interface was added. | +| Magento\Staging\Model\Entity\RetrieverInterface | Interface was added. | +| Magento\Staging\Model\Entity\Update\Action\TransactionExecutorInterface | Interface was added. | +| Magento\Staging\Block\Adminhtml\Update\Entity\EntityProviderInterface | Interface was added. | +| Magento\Staging\Block\Adminhtml\Update\Entity\StoreIdProviderInterface | Interface was added. | +| Magento\Shipping\Model\Carrier\Source\GenericInterface | Interface was added. | +| Magento\Security\Api\Data\UserExpirationInterface | Interface was added. | +| Magento\Search\Setup\InstallConfigInterface | Interface was added. | +| Magento\Search\Model\SearchEngine\ValidatorInterface | Interface was added. | +| Magento\ScheduledImportExport\Model\Scheduled\Operation\OperationInterface | Interface was added. | +| Magento\Sales\Model\ValidatorInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderAddressResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderPaymentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderStatusHistoryResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentTrackResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\TransactionResourceInterface | Interface was added. | +| Magento\Sales\Model\ResourceModel\Provider\NotSyncedDataProviderInterface | Interface was added. | +| Magento\Sales\Model\ResourceModel\Order\CollectionFactoryInterface | Interface was added. | +| Magento\Sales\Model\Order\OrderValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Shipment\SenderInterface | Interface was added. | +| Magento\Sales\Model\Order\Shipment\ShipmentValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\Transaction\BuilderInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\Transaction\ManagerInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\State\CommandInterface | Interface was added. | +| Magento\Sales\Model\Order\Invoice\InvoiceValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Invoice\SenderInterface | Interface was added. | +| Magento\Sales\Model\Order\Email\Container\IdentityInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\CreditmemoValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\ItemCreationValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\SenderInterface | Interface was added. | +| Magento\Sales\Controller\OrderInterface | Interface was added. | +| Magento\Sales\Controller\AbstractController\OrderLoaderInterface | Interface was added. | +| Magento\Sales\Controller\AbstractController\OrderViewAuthorizationInterface | Interface was added. | +| Magento\Sales\Api\OrderCustomerDelegateInterface | Interface was added. | +| Magento\Sales\Api\PaymentFailuresInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\CodeLimitManagerInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\QuoteResetAppliedRulesInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\RuleQuoteRecollectTotalsInterface | Interface was added. | +| Magento\SalesRule\Api\Data\DiscountDataInterface | Interface was added. | +| Magento\SalesRule\Api\Data\RuleDiscountInterface | Interface was added. | +| Magento\SalesGraphQl\Model\Shipment\Item\FormatterInterface | Interface was added. | +| Magento\Rma\Model\Spi\CommentResourceInterface | Interface was added. | +| Magento\Rma\Model\Spi\RmaResourceInterface | Interface was added. | +| Magento\Rma\Model\Spi\TrackResourceInterface | Interface was added. | +| Magento\Reward\Observer\PlaceOrder\RestrictionInterface | Interface was added. | +| Magento\RewardGraphQl\Model\Formatter\Customer\FormatterInterface | Interface was added. | +| Magento\RemoteStorage\FilesystemInterface | Interface was added. | +| Magento\RemoteStorage\Driver\DriverFactoryInterface | Interface was added. | +| Magento\RemoteStorage\Driver\RemoteDriverInterface | Interface was added. | +| Magento\ReleaseNotification\Model\ContentProviderInterface | Interface was added. | +| Magento\Quote\Model\ValidationRules\QuoteValidationRuleInterface | Interface was added. | +| Magento\Quote\Model\Quote\Item\CartItemProcessorInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\CustomAttributeListInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\Total\CollectorInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\Total\ReaderInterface | Interface was added. | +| Magento\Quote\Model\Product\QuoteItemsCleanerInterface | Interface was added. | +| Magento\Quote\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | +| Magento\Quote\Api\ChangeQuoteControlInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\CartItem\DataProvider\CustomizableOptionValueInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\CartItem\DataProvider\Processor\ItemDataProcessorInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\SetShippingAddressesOnCartInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\SetShippingMethodsOnCartInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\Payment\AdditionalDataProviderInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | +| Magento\Paypal\Model\IpnInterface | Interface was added. | +| Magento\Paypal\Model\Payflow\Service\Response\Handler\HandlerInterface | Interface was added. | +| Magento\Paypal\Model\Billing\Agreement\MethodInterface | Interface was added. | +| Magento\Paypal\Helper\Shortcut\ValidatorInterface | Interface was added. | +| Magento\Payment\Model\Method\TransparentInterface | Interface was added. | +| Magento\Payment\Api\Data\PaymentAdditionalInfoInterface | Interface was added. | +| Magento\PageCache\Model\Spi\PageCacheTagsPreprocessorInterface | Interface was added. | +| Magento\Newsletter\Model\SubscriptionManagerInterface | Interface was added. | +| Magento\MultipleWishlist\Model\Search\Strategy\StrategyInterface | Interface was added. | +| Magento\MultipleWishlist\Controller\IndexInterface | Interface was added. | +| Magento\Msrp\Pricing\MsrpPriceCalculatorInterface | Interface was added. | +| Magento\MediaGalleryUiApi\Api\ConfigInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\CreateAssetFromFileInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\FetchBatchesInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\ImportFilesInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Api\SynchronizeFilesInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Api\SynchronizeInterface | Interface was added. | +| Magento\MediaGalleryRenditionsApi\Api\GenerateRenditionsInterface | Interface was added. | +| Magento\MediaGalleryRenditionsApi\Api\GetRenditionPathInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\FileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\ReadFileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\ReadMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\SegmentInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\WriteFileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\WriteMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\AddMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\ExtractMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\Data\MetadataInterface | Interface was added. | +| Magento\MediaGalleryApi\Model\ExcludedPatternsConfigInterface | Interface was added. | +| Magento\MediaGalleryApi\Api\SearchAssetsInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Model\GetEntitiesInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Api\SynchronizeIdentitiesInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Api\SynchronizeInterface | Interface was added. | +| Magento\MediaContentApi\Model\GetAssetIdsByContentFieldInterface | Interface was added. | +| Magento\MediaContentApi\Model\SearchPatternConfigInterface | Interface was added. | +| Magento\MediaContentApi\Api\GetAssetIdsByContentFieldInterface | Interface was added. | +| Magento\MediaContentApi\Api\UpdateContentAssetLinksInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\ConfigInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\IsAssistanceEnabledInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\SetAssistanceInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerAdminIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerCustomerIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\IsLoginAsCustomerEnabledForCustomerInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerAdminIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerCustomerIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\Data\IsLoginAsCustomerEnabledForCustomerResultInterface | Interface was added. | +| Magento\Invitation\Controller\Customer\AccountInterface | Interface was added. | +| Magento\InventoryIndexer\Indexer\SelectBuilderInterface | Interface was added. | +| Magento\Integration\Model\Oauth\Token\RequestLog\ReaderInterface | Interface was added. | +| Magento\Integration\Model\Oauth\Token\RequestLog\WriterInterface | Interface was added. | +| Magento\Indexer\Model\ModeSwitcherInterface | Interface was added. | +| Magento\Indexer\Model\Source\DataInterface | Interface was added. | +| Magento\ImportExport\Model\Report\ReportProcessorInterface | Interface was added. | +| Magento\ImportExport\Api\Data\ExtendedExportInfoInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextParametersInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextParametersProcessorInterface | Interface was added. | +| Magento\GraphQl\Controller\HttpHeaderProcessorInterface | Interface was added. | +| Magento\GraphQl\Controller\HttpRequestValidatorInterface | Interface was added. | +| Magento\GiftRegistry\Model\Attribute\ConfigInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\GiftCardAccountManagerInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\GiftCardAccountResourceInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\UsageAttemptFactoryInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\UsageAttemptsManagerInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\Data\UsageAttemptInterface | Interface was added. | +| Magento\GiftCardAccount\Api\GiftCardRedeemerInterface | Interface was added. | +| Magento\Elasticsearch\SearchAdapter\QueryAwareInterface | Interface was added. | +| Magento\Elasticsearch\SearchAdapter\Query\ValueTransformerInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldsMappingPreprocessorInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProviderInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldType\ResolverInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\ResolverInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ConverterInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ResolverInterface | Interface was added. | +| Magento\Eav\Model\ResourceModel\Attribute\DefaultEntityAttributes\ProviderInterface | Interface was added. | +| Magento\Eav\Model\Entity\AttributeLoaderInterface | Interface was added. | +| Magento\Eav\Model\Entity\Setup\PropertyMapperInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\AttributeInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\UniqueValidationInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\Source\SpecificSourceInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\Backend\BackendInterface | Interface was added. | +| Magento\Downloadable\Pricing\Price\LinkPriceInterface | Interface was added. | +| Magento\Downloadable\Api\DomainManagerInterface | Interface was added. | +| Magento\Directory\Model\Country\Postcode\ConfigInterface | Interface was added. | +| Magento\Directory\Model\Country\Postcode\ValidatorInterface | Interface was added. | +| Magento\Deploy\Strategy\StrategyInterface | Interface was added. | +| Magento\Deploy\Source\SourceInterface | Interface was added. | +| Magento\Deploy\Package\BundleInterface | Interface was added. | +| Magento\Deploy\Package\Processor\ProcessorInterface | Interface was added. | +| Magento\Deploy\Console\Command\App\SensitiveConfigSet\CollectorInterface | Interface was added. | +| Magento\Deploy\Collector\CollectorInterface | Interface was added. | +| Magento\Customer\Model\Customer\Attribute\Source\GroupSourceLoggedInOnlyInterface | Interface was added. | +| Magento\Customer\CustomerData\JsLayoutDataProviderPoolInterface | Interface was added. | +| Magento\Customer\CustomerData\SectionPoolInterface | Interface was added. | +| Magento\Customer\Controller\AccountInterface | Interface was added. | +| Magento\Customer\Block\Address\Renderer\RendererInterface | Interface was added. | +| Magento\Customer\Api\AccountDelegationInterface | Interface was added. | +| Magento\Customer\Api\SessionCleanerInterface | Interface was added. | +| Magento\CustomerCustomAttributes\Model\Customer\Attribute\ValidatorInterface | Interface was added. | +| Magento\Csp\Model\Policy\SimplePolicyInterface | Interface was added. | +| Magento\Csp\Model\Collector\MergerInterface | Interface was added. | +| Magento\Csp\Model\Collector\Config\PolicyReaderInterface | Interface was added. | +| Magento\Csp\Api\CspAwareActionInterface | Interface was added. | +| Magento\Csp\Api\CspRendererInterface | Interface was added. | +| Magento\Csp\Api\InlineUtilInterface | Interface was added. | +| Magento\Csp\Api\ModeConfigManagerInterface | Interface was added. | +| Magento\Csp\Api\PolicyCollectorInterface | Interface was added. | +| Magento\Csp\Api\PolicyRendererInterface | Interface was added. | +| Magento\Csp\Api\Data\ModeConfiguredInterface | Interface was added. | +| Magento\Csp\Api\Data\PolicyInterface | Interface was added. | +| Magento\Cron\Model\DeadlockRetrierInterface | Interface was added. | +| Magento\ConfigurableProduct\Model\ResourceModel\Attribute\OptionSelectBuilderInterface | Interface was added. | +| Magento\Cms\Ui\Component\AddFilterInterface | Interface was added. | +| Magento\Cms\Model\PageRepository\ValidatorInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayoutManagerInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayoutRepositoryInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayout\Data\CustomLayoutSelectedInterface | Interface was added. | +| Magento\Checkout\CustomerData\ItemPoolInterface | Interface was added. | +| Magento\Checkout\Controller\Express\RedirectLoginInterface | Interface was added. | +| Magento\Checkout\Api\PaymentProcessingRateLimiterInterface | Interface was added. | +| Magento\CheckoutAgreements\Model\AgreementsProviderInterface | Interface was added. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav\WysiwygConfigDataProcessorInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\ConfiguredPriceInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\MinimalPriceCalculatorInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\SpecialPriceInterface | Interface was added. | +| Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderInterface | Interface was added. | +| Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\PriceModifierInterface | Interface was added. | +| Magento\Catalog\Model\ProductOptions\ConfigInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\CollectionProviderInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\MapProviderInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Data\ListCriteriaInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Data\ListResultInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Converter\ConverterInterface | Interface was added. | +| Magento\Catalog\Model\Product\Pricing\Renderer\SalableResolverInterface | Interface was added. | +| Magento\Catalog\Model\Product\Media\ConfigInterface | Interface was added. | +| Magento\Catalog\Model\Product\Configuration\Item\Option\OptionInterface | Interface was added. | +| Magento\Catalog\Model\Product\Condition\ConditionInterface | Interface was added. | +| Magento\Catalog\Model\Layer\CollectionFilterInterface | Interface was added. | +| Magento\Catalog\Model\Layer\FilterableAttributeListInterface | Interface was added. | +| Magento\Catalog\Model\Layer\ItemCollectionProviderInterface | Interface was added. | +| Magento\Catalog\Model\Layer\StateKeyInterface | Interface was added. | +| Magento\Catalog\Model\Indexer\Product\Flat\TableDataInterface | Interface was added. | +| Magento\Catalog\Model\Entity\Product\Attribute\Group\AttributeMapperInterface | Interface was added. | +| Magento\Catalog\Model\Config\Source\ProductPriceOptionsInterface | Interface was added. | +| Magento\Catalog\Model\Attribute\LockValidatorInterface | Interface was added. | +| Magento\Catalog\Controller\Product\View\ViewInterface | Interface was added. | +| Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper\HandlerInterface | Interface was added. | +| Magento\Catalog\Block\Product\AwareInterface | Interface was added. | +| Magento\Catalog\Block\Product\ReviewRendererInterface | Interface was added. | +| Magento\CatalogUrlRewrite\Model\Map\DatabaseMapInterface | Interface was added. | +| Magento\CatalogUrlRewrite\Model\Map\HashMapInterface | Interface was added. | +| Magento\CatalogSearch\Model\Search\ItemCollectionProviderInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchCriteriaResolverInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchResultApplierInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\TotalRecordsResolverInterface | Interface was added. | +| Magento\CatalogSearch\Model\Advanced\ProductCollectionPrepareStrategyInterface | Interface was added. | +| Magento\CatalogSearch\Model\Adapter\Aggregation\RequestCheckerInterface | Interface was added. | +| Magento\CatalogRule\Model\Indexer\IndexerTableSwapperInterface | Interface was added. | +| Magento\CatalogImportExport\Model\Export\ProductFilterInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\Query\ProductQueryInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Product\CollectionProcessorInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Product\Price\ProviderInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Categories\DataProvider\Category\CollectionProcessorInterface | Interface was added. | +| Magento\CatalogGraphQl\DataProvider\Product\LayeredNavigation\LayerBuilderInterface | Interface was added. | +| Magento\CardinalCommerce\Model\Response\JwtParserInterface | Interface was added. | +| Magento\CardinalCommerce\Model\Response\JwtPayloadValidatorInterface | Interface was added. | +| Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface | Interface was added. | +| Magento\Backend\Model\Search\Config\Structure\ElementBuilderInterface | Interface was added. | +| Magento\Backend\Model\Image\UploadResizeConfigInterface | Interface was added. | +| Magento\Analytics\ReportXml\DB\Assembler\AssemblerInterface | Interface was added. | +| Magento\Analytics\Model\ExportDataHandlerInterface | Interface was added. | +| Magento\Analytics\Model\ReportWriterInterface | Interface was added. | +| Magento\Analytics\Model\Connector\CommandInterface | Interface was added. | +| Magento\Analytics\Api\LinkProviderInterface | Interface was added. | +| Magento\Analytics\Api\Data\LinkInterface | Interface was added. | +| Magento\AdvancedSearch\Block\SearchDataInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterGroupInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterTextGeneratorInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterableConditionInterface | Interface was added. | +| Magento\AdvancedCheckout\Model\AreProductsSalableForRequestedQtyInterface | Interface was added. | +| Magento\Framework\TranslateInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttributeTypeLocatorInterface | Interface was added. | +| Magento\Framework\Webapi\Rest\Request\DeserializerInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttribute\PreprocessorInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttribute\ServiceTypeListInterface | Interface was added. | +| Magento\Framework\View\DesignInterface | Interface was added. | +| Magento\Framework\View\TemplateEngineInterface | Interface was added. | +| Magento\Framework\View\Xsd\Media\TypeDataExtractorInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\ResultInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\AttributeInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CdataInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CommentInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\TextInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Element\ElementInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Directive\DirectiveInterface | Interface was added. | +| Magento\Framework\View\Page\Config\RendererInterface | Interface was added. | +| Magento\Framework\View\Model\PageLayout\Config\BuilderInterface | Interface was added. | +| Magento\Framework\View\Layout\GeneratorInterface | Interface was added. | +| Magento\Framework\View\Layout\LayoutCacheKeyInterface | Interface was added. | +| Magento\Framework\View\Layout\ProcessorInterface | Interface was added. | +| Magento\Framework\View\Layout\ReaderInterface | Interface was added. | +| Magento\Framework\View\Layout\Condition\VisibilityConditionInterface | Interface was added. | +| Magento\Framework\View\Layout\Argument\UpdaterInterface | Interface was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\SecurityProcessorInterface | Interface was added. | +| Magento\Framework\View\File\FileList\CollateInterface | Interface was added. | +| Magento\Framework\View\Element\ComponentVisibilityInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\BlockWrapperInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContainerInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContextInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\DataSourceInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\JsConfigInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\LayoutInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ObserverInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\PoolInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\SubjectInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Factory\ComponentFactoryInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\FilterApplierInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ActionPoolInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ControlInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContentType\ContentTypeInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\DomMergerInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\FileCollectorInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\UiReaderInterface | Interface was added. | +| Magento\Framework\View\Element\Message\InterpretationStrategyInterface | Interface was added. | +| Magento\Framework\View\Element\Message\Renderer\PoolInterface | Interface was added. | +| Magento\Framework\View\Element\Message\Renderer\RendererInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\CustomizationInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\FileInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\ResolverInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\ThemeProviderInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Image\PathInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\File\CollectionInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\ConfigInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\FileAssetInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\FileInterface | Interface was added. | +| Magento\Framework\View\Design\FileResolution\Fallback\ResolverInterface | Interface was added. | +| Magento\Framework\View\Design\Fallback\Rule\RuleInterface | Interface was added. | +| Magento\Framework\View\Asset\ContentProcessorInterface | Interface was added. | +| Magento\Framework\View\Asset\ContextInterface | Interface was added. | +| Magento\Framework\View\Asset\LockerProcessInterface | Interface was added. | +| Magento\Framework\View\Asset\MergeStrategyInterface | Interface was added. | +| Magento\Framework\View\Asset\MergeableInterface | Interface was added. | +| Magento\Framework\View\Asset\PreProcessor\FilenameResolverInterface | Interface was added. | +| Magento\Framework\Validator\HTML\AttributeValidatorInterface | Interface was added. | +| Magento\Framework\Validator\HTML\TagValidatorInterface | Interface was added. | +| Magento\Framework\Validator\HTML\WYSIWYGValidatorInterface | Interface was added. | +| Magento\Framework\Validator\Constraint\OptionInterface | Interface was added. | +| Magento\Framework\Url\ModifierInterface | Interface was added. | +| Magento\Framework\Url\RouteParamsPreprocessorInterface | Interface was added. | +| Magento\Framework\Translate\Inline\ProviderInterface | Interface was added. | +| Magento\Framework\TestFramework\Unit\Autoloader\GeneratorInterface | Interface was added. | +| Magento\Framework\Setup\ConfigOptionsListInterface | Interface was added. | +| Magento\Framework\Setup\DataCacheInterface | Interface was added. | +| Magento\Framework\Setup\UpToDateValidatorInterface | Interface was added. | +| Magento\Framework\Setup\SchemaListenerHandlers\SchemaListenerHandlerInterface | Interface was added. | +| Magento\Framework\Setup\SchemaListenerDefinition\DefinitionConverterInterface | Interface was added. | +| Magento\Framework\Setup\SampleData\InstallerInterface | Interface was added. | +| Magento\Framework\Setup\SampleData\StateInterface | Interface was added. | +| Magento\Framework\Setup\Patch\DataPatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\DependentPatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\NonTransactionableInterface | Interface was added. | +| Magento\Framework\Setup\Patch\PatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\PatchRevertableInterface | Interface was added. | +| Magento\Framework\Setup\Patch\SchemaPatchInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\OperationInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\SchemaConfigInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\ElementDiffAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\TableElementInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Factories\FactoryInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnDefaultAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnIdentityAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnNullableAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnUnsignedAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Diff\DiffInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DDLTriggerInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbDefinitionProcessorInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaReaderInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaWriterInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\DataSavior\DataSaviorInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\DataSavior\DumpAccessorInterface | Interface was added. | +| Magento\Framework\Session\SaveHandlerInterface | Interface was added. | +| Magento\Framework\Session\StorageInterface | Interface was added. | +| Magento\Framework\Session\ValidatorInterface | Interface was added. | +| Magento\Framework\Session\Config\ConfigInterface | Interface was added. | +| Magento\Framework\Search\AdapterInterface | Interface was added. | +| Magento\Framework\Search\ResponseInterface | Interface was added. | +| Magento\Framework\Search\SearchEngineInterface | Interface was added. | +| Magento\Framework\Search\SearchEngine\ConfigInterface | Interface was added. | +| Magento\Framework\Search\Request\IndexScopeResolverInterface | Interface was added. | +| Magento\Framework\Search\Request\Aggregation\StatusInterface | Interface was added. | +| Magento\Framework\Search\Dynamic\Algorithm\AlgorithmInterface | Interface was added. | +| Magento\Framework\Search\Adapter\OptionsInterface | Interface was added. | +| Magento\Framework\Search\Adapter\Preprocessor\PreprocessorInterface | Interface was added. | +| Magento\Framework\Search\Adapter\Aggregation\AggregationResolverInterface | Interface was added. | +| Magento\Framework\Profiler\Driver\Standard\OutputInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigCacheInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigLoaderInterface | Interface was added. | +| Magento\Framework\ObjectManager\DefinitionInterface | Interface was added. | +| Magento\Framework\ObjectManager\DynamicConfigInterface | Interface was added. | +| Magento\Framework\ObjectManager\FactoryInterface | Interface was added. | +| Magento\Framework\ObjectManager\NoninterceptableInterface | Interface was added. | +| Magento\Framework\ObjectManager\RelationsInterface | Interface was added. | +| Magento\Framework\Mview\ConfigInterface | Interface was added. | +| Magento\Framework\Mview\ProcessorInterface | Interface was added. | +| Magento\Framework\Mview\ViewInterface | Interface was added. | +| Magento\Framework\Mview\View\ChangelogInterface | Interface was added. | +| Magento\Framework\Mview\View\CollectionInterface | Interface was added. | +| Magento\Framework\Mview\View\StateInterface | Interface was added. | +| Magento\Framework\Mview\View\SubscriptionInterface | Interface was added. | +| Magento\Framework\Mview\View\State\CollectionInterface | Interface was added. | +| Magento\Framework\Module\ModuleListInterface | Interface was added. | +| Magento\Framework\Model\ResourceModel\Type\Db\ConnectionFactoryInterface | Interface was added. | +| Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface | Interface was added. | +| Magento\Framework\Model\EntitySnapshot\AttributeProviderInterface | Interface was added. | +| Magento\Framework\Model\Entity\ScopeInterface | Interface was added. | +| Magento\Framework\Model\Entity\ScopeProviderInterface | Interface was added. | +| Magento\Framework\Message\ExceptionMessageFactoryInterface | Interface was added. | +| Magento\Framework\Mail\EmailMessageInterface | Interface was added. | +| Magento\Framework\Mail\MimeInterface | Interface was added. | +| Magento\Framework\Mail\MimeMessageInterface | Interface was added. | +| Magento\Framework\Mail\MimePartInterface | Interface was added. | +| Magento\Framework\Locale\AvailableLocalesInterface | Interface was added. | +| Magento\Framework\Locale\OptionInterface | Interface was added. | +| Magento\Framework\Interception\ConfigInterface | Interface was added. | +| Magento\Framework\Interception\ConfigLoaderInterface | Interface was added. | +| Magento\Framework\Interception\ConfigWriterInterface | Interface was added. | +| Magento\Framework\Interception\DefinitionInterface | Interface was added. | +| Magento\Framework\Interception\InterceptorInterface | Interface was added. | +| Magento\Framework\Interception\PluginListInterface | Interface was added. | +| Magento\Framework\Interception\ObjectManager\ConfigInterface | Interface was added. | +| Magento\Framework\Indexer\Table\StrategyInterface | Interface was added. | +| Magento\Framework\Indexer\Config\DependencyInfoProviderInterface | Interface was added. | +| Magento\Framework\Image\Adapter\AdapterInterface | Interface was added. | +| Magento\Framework\Image\Adapter\ConfigInterface | Interface was added. | +| Magento\Framework\HTTP\AsyncClientInterface | Interface was added. | +| Magento\Framework\HTTP\AsyncClient\HttpResponseDeferredInterface | Interface was added. | +| Magento\Framework\GraphQlSchemaStitching\GraphQlReader\TypeMetaReaderInterface | Interface was added. | +| Magento\Framework\GraphQl\ConfigInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\SchemaGeneratorInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\TypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\InputTypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\OutputTypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\WrappedTypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Output\ElementMapper\FormatterInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Enum\DataMapperInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Entity\MapperInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\ErrorHandlerInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\ResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchRequestItemInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchServiceContractResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\ContextInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\IdentityInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\ResolveRequestInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\TypeResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\Argument\FieldEntityAttributesInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\Argument\SearchCriteria\ArgumentApplierInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\ConfigElementFactoryInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\ConfigElementInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\FieldInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\OutputFieldInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\TypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\UnionInterface | Interface was added. | +| Magento\Framework\Filter\DirectiveProcessorInterface | Interface was added. | +| Magento\Framework\Filter\FactoryInterface | Interface was added. | +| Magento\Framework\Filter\VariableResolverInterface | Interface was added. | +| Magento\Framework\Filter\SimpleDirective\ProcessorInterface | Interface was added. | +| Magento\Framework\Filter\FilterManager\ConfigInterface | Interface was added. | +| Magento\Framework\Filter\DirectiveProcessor\FilterInterface | Interface was added. | +| Magento\Framework\Filesystem\DriverPoolInterface | Interface was added. | +| Magento\Framework\Filesystem\File\ReadInterface | Interface was added. | +| Magento\Framework\Filesystem\Directory\PathValidatorInterface | Interface was added. | +| Magento\Framework\Exception\TemporaryStateExceptionInterface | Interface was added. | +| Magento\Framework\Event\ConfigInterface | Interface was added. | +| Magento\Framework\Event\InvokerInterface | Interface was added. | +| Magento\Framework\Event\ManagerInterface | Interface was added. | +| Magento\Framework\Encryption\Adapter\EncryptionAdapterInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityGeneratorInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityValidatorInterface | Interface was added. | +| Magento\Framework\DataObject\KeyValueObjectInterface | Interface was added. | +| Magento\Framework\Data\CollectionDataSourceInterface | Interface was added. | +| Magento\Framework\Data\CollectionModifierInterface | Interface was added. | +| Magento\Framework\Data\SearchResultInterface | Interface was added. | +| Magento\Framework\Data\SearchResultProcessorInterface | Interface was added. | +| Magento\Framework\Data\ValueSourceInterface | Interface was added. | +| Magento\Framework\Data\Collection\EntityFactoryInterface | Interface was added. | +| Magento\Framework\Data\Collection\Db\FetchStrategyInterface | Interface was added. | +| Magento\Framework\DB\LoggerInterface | Interface was added. | +| Magento\Framework\DB\MapperInterface | Interface was added. | +| Magento\Framework\DB\QueryInterface | Interface was added. | +| Magento\Framework\DB\Sql\ExpressionInterface | Interface was added. | +| Magento\Framework\DB\Sequence\SequenceInterface | Interface was added. | +| Magento\Framework\DB\Select\QueryModifierInterface | Interface was added. | +| Magento\Framework\DB\Select\RendererInterface | Interface was added. | +| Magento\Framework\DB\Query\BatchIteratorInterface | Interface was added. | +| Magento\Framework\DB\DataConverter\DataConverterInterface | Interface was added. | +| Magento\Framework\Css\PreProcessor\ErrorHandlerInterface | Interface was added. | +| Magento\Framework\Crontab\CrontabManagerInterface | Interface was added. | +| Magento\Framework\Crontab\TasksProviderInterface | Interface was added. | +| Magento\Framework\Component\ComponentRegistrarInterface | Interface was added. | +| Magento\Framework\Code\ValidatorInterface | Interface was added. | +| Magento\Framework\Code\Reader\ClassReaderInterface | Interface was added. | +| Magento\Framework\Code\Minifier\AdapterInterface | Interface was added. | +| Magento\Framework\Code\Generator\CodeGeneratorInterface | Interface was added. | +| Magento\Framework\Cache\ConfigInterface | Interface was added. | +| Magento\Framework\Cache\StaleCacheNotifierInterface | Interface was added. | +| Magento\Framework\Backup\SourceFileInterface | Interface was added. | +| Magento\Framework\Autoload\AutoloaderInterface | Interface was added. | +| Magento\Framework\Async\CancelableDeferredInterface | Interface was added. | +| Magento\Framework\Async\DeferredInterface | Interface was added. | +| Magento\Framework\App\AreaInterface | Interface was added. | +| Magento\Framework\App\CsrfAwareActionInterface | Interface was added. | +| Magento\Framework\App\DefaultPathInterface | Interface was added. | +| Magento\Framework\App\DesignInterface | Interface was added. | +| Magento\Framework\App\EnvironmentInterface | Interface was added. | +| Magento\Framework\App\ExceptionHandlerInterface | Interface was added. | +| Magento\Framework\App\FeedFactoryInterface | Interface was added. | +| Magento\Framework\App\FeedInterface | Interface was added. | +| Magento\Framework\App\HttpRequestInterface | Interface was added. | +| Magento\Framework\App\RouterInterface | Interface was added. | +| Magento\Framework\App\RouterListInterface | Interface was added. | +| Magento\Framework\App\ScopeFallbackResolverInterface | Interface was added. | +| Magento\Framework\App\ScopeResolverInterface | Interface was added. | +| Magento\Framework\App\ScopeTreeProviderInterface | Interface was added. | +| Magento\Framework\App\ScopeValidatorInterface | Interface was added. | +| Magento\Framework\App\View\Deployment\Version\StorageInterface | Interface was added. | +| Magento\Framework\App\View\Asset\MaterializationStrategy\StrategyInterface | Interface was added. | +| Magento\Framework\App\Scope\ValidatorInterface | Interface was added. | +| Magento\Framework\App\Rss\RssManagerInterface | Interface was added. | +| Magento\Framework\App\Rss\UrlBuilderInterface | Interface was added. | +| Magento\Framework\App\Router\NoRouteHandlerInterface | Interface was added. | +| Magento\Framework\App\Router\PathConfigInterface | Interface was added. | +| Magento\Framework\App\Response\FileInterface | Interface was added. | +| Magento\Framework\App\Response\RedirectInterface | Interface was added. | +| Magento\Framework\App\Response\HeaderProvider\HeaderProviderInterface | Interface was added. | +| Magento\Framework\App\ResourceConnection\ConfigInterface | Interface was added. | +| Magento\Framework\App\ResourceConnection\ConnectionAdapterInterface | Interface was added. | +| Magento\Framework\App\Request\ValidatorInterface | Interface was added. | +| Magento\Framework\App\PageCache\NotCacheableInterface | Interface was added. | +| Magento\Framework\App\ObjectManager\ConfigWriterInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\ImporterInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\ValidatorInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\Writer\FormatterInterface | Interface was added. | +| Magento\Framework\App\Config\CommentInterface | Interface was added. | +| Magento\Framework\App\Config\CommentParserInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigSourceInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigTypeInterface | Interface was added. | +| Magento\Framework\App\Config\ValueInterface | Interface was added. | +| Magento\Framework\App\Config\Spi\PostProcessorInterface | Interface was added. | +| Magento\Framework\App\Config\Spi\PreProcessorInterface | Interface was added. | +| Magento\Framework\App\Config\Scope\ReaderInterface | Interface was added. | +| Magento\Framework\App\Config\Reader\Source\SourceInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigResource\ConfigInterface | Interface was added. | +| Magento\Framework\App\Action\HttpConnectActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpDeleteActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpGetActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpOptionsActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPatchActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPostActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPropfindActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPutActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpTraceActionInterface | Interface was added. | +| Magento\Framework\Api\AttributeTypeResolverInterface | Interface was added. | +| Magento\Framework\Api\CriteriaInterface | Interface was added. | +| Magento\Framework\Api\SimpleBuilderInterface | Interface was added. | +| Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionInterface | Interface was added. | +| Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionProviderInterface | Interface was added. | +| Magento\Framework\Api\Search\AggregationInterface | Interface was added. | +| Magento\Framework\Api\Search\AggregationValueInterface | Interface was added. | +| Magento\Framework\Api\Search\BucketInterface | Interface was added. | +| Magento\Framework\Api\Search\DocumentInterface | Interface was added. | +| Magento\Framework\Api\Search\ReportingInterface | Interface was added. | +| Magento\Framework\MessageQueue\BulkPublisherInterface | Interface was added. | +| Magento\Framework\MessageQueue\CallbackInvokerInterface | Interface was added. | +| Magento\Framework\MessageQueue\ConnectionTypeResolverInterface | Interface was added. | +| Magento\Framework\MessageQueue\ConsumerConfigurationInterface | Interface was added. | +| Magento\Framework\MessageQueue\LockInterface | Interface was added. | +| Magento\Framework\MessageQueue\MergedMessageInterface | Interface was added. | +| Magento\Framework\MessageQueue\MergerInterface | Interface was added. | +| Magento\Framework\MessageQueue\MessageProcessorInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\QueueConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItem\BindingInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\PublisherConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\PublisherConnectionInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillCompareInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillReadInterface | Interface was added. | +| Magento\Framework\MessageQueue\Lock\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Lock\WriterInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItem\HandlerInterface | Interface was added. | +| Magento\Framework\ForeignKey\ConfigInterface | Interface was added. | +| Magento\Framework\ForeignKey\ConstraintInterface | Interface was added. | +| Magento\Framework\ForeignKey\StrategyInterface | Interface was added. | +| Magento\Framework\Amqp\Topology\BindingInstallerInterface | Interface was added. | diff --git a/src/_includes/backward-incompatible-changes/open-source/2.4.4-2.4.5.md b/src/_includes/backward-incompatible-changes/open-source/2.4.4-2.4.5.md new file mode 100644 index 00000000000..f6a48cafa30 --- /dev/null +++ b/src/_includes/backward-incompatible-changes/open-source/2.4.4-2.4.5.md @@ -0,0 +1,781 @@ +#### Class changes {#ce-244-245-class} + +| What changed | How it changed | +| --- | --- | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\CustomOptions::formatPrice | [protected] Method has been removed. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav::formatPrice | [protected] Method has been removed. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\General::formatPrice | [protected] Method has been removed. | +| Magento\GoogleGtag\Block\Ga | Class was added. | +| Magento\CatalogInventory\Model\Source\Stock::\_\_construct | [public] Method has been added. | + +#### Database changes {#ce-244-245-database} + +| What changed | How it changed | +| --- | --- | +| catalog\_product\_index\_price\_tmp/PRIMARY | Primary key was changed | +| customer\_eav\_attribute/grid\_filter\_condition\_type | Column was added | +| catalog\_product\_index\_price\_tmp/id | Column was added | + +#### System changes {#ce-244-245-system} + +| What changed | How it changed | +| --- | --- | +| webapi/graphql\_session | A group-node was added | +| webapi/graphql\_session/disabled | A field-node was added | +| web\_api | A section-node was added | +| web\_api/graphql | A group-node was added | +| web\_api/graphql/include\_dynamic\_attributes\_as\_entity\_type\_fields | A field-node was added | +| google/gtag | A group-node was added | +| google/gtag/analytics4 | A group-node was added | +| google/gtag/analytics4/experiments | A field-node was added | +| google/gtag/analytics4/active | A field-node was added | +| google/gtag/analytics4/measurement\_id | A field-node was added | +| google/gtag/adwords | A group-node was added | +| google/gtag/adwords/active | A field-node was added | +| google/gtag/adwords/conversion\_id | A field-node was added | +| google/gtag/adwords/conversion\_label | A field-node was added | + +#### Class API membership changes {#ce-244-245-class-api-membership} + +| What changed | How it changed | +| --- | --- | +| Magento\Wishlist\Model\Wishlist\Data\WishlistItem | Class was added. | +| Magento\Ui\Component\Form\Fieldset\Factory | Class was added. | +| Magento\Ui\Component\Control\Container | Class was added. | +| Magento\Store\Ui\Component\Listing\Column\Store\Options | Class was added. | +| Magento\Sales\Setup\SalesSetup | Class was added. | +| Magento\Sales\Model\Service\InvoiceService | Class was added. | +| Magento\Sales\Model\ResourceModel\Order\CollectionFactory | Class was added. | +| Magento\Sales\Model\ResourceModel\Order\Collection\Factory | Class was added. | +| Magento\Sales\Model\Order\CreditmemoFactory | Class was added. | +| Magento\Sales\Model\Order\Pdf\Total\DefaultTotal | Class was added. | +| Magento\Sales\Model\Order\Email\Sender\InvoiceSender | Class was added. | +| Magento\Sales\Model\Order\Email\Sender\OrderSender | Class was added. | +| Magento\Sales\Controller\Adminhtml\Order | Class was added. | +| Magento\SalesRule\Model\Validator | Class was added. | +| Magento\SalesRule\Api\Exception\CodeRequestLimitException | Class was added. | +| Magento\Quote\Setup\QuoteSetup | Class was added. | +| Magento\Quote\Model\Quote\Item\CartItemOptionsProcessor | Class was added. | +| Magento\Quote\Model\Quote\Item\Option | Class was added. | +| Magento\Quote\Model\Quote\Address\RateCollectorInterfaceFactory | Class was added. | +| Magento\Quote\Model\Cart\Data\CartItem | Class was added. | +| Magento\Paypal\Model\Billing\AbstractAgreement | Class was added. | +| Magento\Payment\Gateway\Config\Config | Class was added. | +| Magento\Indexer\Model\DimensionModes | Class was added. | +| Magento\ImportExport\Model\Export\Factory | Class was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\AttributeAdapter | Class was added. | +| Magento\Deploy\Package\Package | Class was added. | +| Magento\Deploy\Package\PackageFile | Class was added. | +| Magento\Customer\Setup\CustomerSetup | Class was added. | +| Magento\Customer\Model\Context | Class was added. | +| Magento\Customer\Model\CustomerRegistry | Class was added. | +| Magento\Customer\Model\Url | Class was added. | +| Magento\Customer\Model\Metadata\FormFactory | Class was added. | +| Magento\Customer\Controller\RegistryConstants | Class was added. | +| Magento\Customer\Controller\Adminhtml\Index | Class was added. | +| Magento\Customer\Block\Adminhtml\Edit\GenericButton | Class was added. | +| Magento\Config\Block\System\Config\Form\Fieldset\Factory | Class was added. | +| Magento\Config\Block\System\Config\Form\Field\Factory | Class was added. | +| Magento\Cms\Model\Template\FilterProvider | Class was added. | +| Magento\Checkout\Model\Type\Onepage | Class was added. | +| Magento\Checkout\Controller\Cart | Class was added. | +| Magento\Checkout\Api\Exception\PaymentProcessingRateLimitExceededException | Class was added. | +| Magento\Catalog\Pricing\Price\FinalPrice | Class was added. | +| Magento\Catalog\Model\Config | Class was added. | +| Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\IndexTableStructure | Class was added. | +| Magento\Catalog\Model\Product\Type\Price\Factory | Class was added. | +| Magento\Catalog\Model\Layer\Resolver | Class was added. | +| Magento\Catalog\Model\Layer\Filter\Item | Class was added. | +| Magento\Catalog\Controller\Adminhtml\Product | Class was added. | +| Magento\Catalog\Block\Product\ImageFactory | Class was added. | +| Magento\Catalog\Block\Adminhtml\Product\Edit\Button\Generic | Class was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\SearchResult | Class was added. | +| Magento\Analytics\ReportXml\DB\SelectBuilder | Class was added. | +| Magento\Framework\AclFactory | Class was added. | +| Magento\Framework\EventFactory | Class was added. | +| Magento\Framework\Url | Class was added. | +| Magento\Framework\UrlFactory | Class was added. | +| Magento\Framework\ValidatorFactory | Class was added. | +| Magento\Framework\Webapi\Exception | Class was added. | +| Magento\Framework\Webapi\Rest\Request | Class was added. | +| Magento\Framework\View\Asset | Class was added. | +| Magento\Framework\View\LayoutFactory | Class was added. | +| Magento\Framework\View\PageLayout\Config | Class was added. | +| Magento\Framework\View\Page\ConfigFactory | Class was added. | +| Magento\Framework\View\Layout\Reader\ContextFactory | Class was added. | +| Magento\Framework\View\Layout\Generator\ContextFactory | Class was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\EventHandlerData | Class was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\TagData | Class was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider | Class was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult | Class was added. | +| Magento\Framework\View\Element\Html\Select | Class was added. | +| Magento\Framework\View\Asset\FileFactory | Class was added. | +| Magento\Framework\View\Asset\File\FallbackContextFactory | Class was added. | +| Magento\Framework\Url\Helper\Data | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\ElementHistory | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Schema | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Table | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Diff\DiffFactory | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\StatementAggregator | Class was added. | +| Magento\Framework\Session\Config | Class was added. | +| Magento\Framework\Session\SessionManager | Class was added. | +| Magento\Framework\Profiler\Driver\Standard\Stat | Class was added. | +| Magento\Framework\Module\Dir | Class was added. | +| Magento\Framework\Module\Manager | Class was added. | +| Magento\Framework\Module\Setup\MigrationFactory | Class was added. | +| Magento\Framework\Message\CollectionFactory | Class was added. | +| Magento\Framework\Mail\Address | Class was added. | +| Magento\Framework\Mail\TransportInterfaceFactory | Class was added. | +| Magento\Framework\Logger\Handler\Base | Class was added. | +| Magento\Framework\Image\AdapterFactory | Class was added. | +| Magento\Framework\Image\Adapter\AbstractAdapter | Class was added. | +| Magento\Framework\HTTP\PhpEnvironment\RemoteAddress | Class was added. | +| Magento\Framework\HTTP\PhpEnvironment\Request | Class was added. | +| Magento\Framework\HTTP\Client\Curl | Class was added. | +| Magento\Framework\HTTP\AsyncClient\Request | Class was added. | +| Magento\Framework\HTTP\AsyncClient\Response | Class was added. | +| Magento\Framework\HTTP\Adapter\Curl | Class was added. | +| Magento\Framework\GraphQl\Schema | Class was added. | +| Magento\Framework\GraphQl\Schema\Type\ResolveInfo | Class was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchResponse | Class was added. | +| Magento\Framework\GraphQl\Query\Resolver\Value | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlAuthenticationException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlAuthorizationException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlInputException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlNoSuchEntityException | Class was added. | +| Magento\Framework\GraphQl\Config\Element\Field | Class was added. | +| Magento\Framework\Filesystem\DirectoryList | Class was added. | +| Magento\Framework\Filesystem\Io\File | Class was added. | +| Magento\Framework\Filesystem\Directory\ReadFactory | Class was added. | +| Magento\Framework\File\Csv | Class was added. | +| Magento\Framework\File\UploaderFactory | Class was added. | +| Magento\Framework\Event\ObserverFactory | Class was added. | +| Magento\Framework\DataObject\Factory | Class was added. | +| Magento\Framework\Data\FormFactory | Class was added. | +| Magento\Framework\Data\TreeFactory | Class was added. | +| Magento\Framework\Data\Tree\Dbp | Class was added. | +| Magento\Framework\Data\Tree\NodeFactory | Class was added. | +| Magento\Framework\Data\Form\Element\Factory | Class was added. | +| Magento\Framework\Data\Form\Element\Image | Class was added. | +| Magento\Framework\DB\Helper | Class was added. | +| Magento\Framework\DB\Transaction | Class was added. | +| Magento\Framework\DB\Helper\AbstractHelper | Class was added. | +| Magento\Framework\DB\Ddl\TriggerFactory | Class was added. | +| Magento\Framework\DB\Adapter\Pdo\MysqlFactory | Class was added. | +| Magento\Framework\Convert\DataObject | Class was added. | +| Magento\Framework\Controller\Result\Forward | Class was added. | +| Magento\Framework\Controller\Result\JsonFactory | Class was added. | +| Magento\Framework\Controller\Result\Raw | Class was added. | +| Magento\Framework\Console\Cli | Class was added. | +| Magento\Framework\Config\ViewFactory | Class was added. | +| Magento\Framework\Config\Data\ConfigDataFactory | Class was added. | +| Magento\Framework\App\Area | Class was added. | +| Magento\Framework\App\Response\Http | Class was added. | +| Magento\Framework\App\Response\Http\FileFactory | Class was added. | +| Magento\Framework\App\Request\Http | Class was added. | +| Magento\Framework\App\Request\InvalidRequestException | Class was added. | +| Magento\Framework\App\Http\Context | Class was added. | +| Magento\Framework\App\Filesystem\DirectoryList | Class was added. | +| Magento\Framework\App\Config\ValueFactory | Class was added. | +| Magento\Framework\App\Cache\Type\Config | Class was added. | +| Magento\Framework\Api\AbstractSimpleObject | Class was added. | +| Magento\Framework\Api\SearchCriteriaBuilder | Class was added. | +| Magento\Framework\Api\Search\DocumentFactory | Class was added. | +| Magento\Framework\Api\Search\SearchCriteriaFactory | Class was added. | +| Magento\Framework\Api\ExtensionAttribute\JoinData | Class was added. | +| Magento\Framework\Api\ExtensionAttribute\JoinDataInterfaceFactory | Class was added. | +| Magento\Framework\Acl\AclResourceFactory | Class was added. | +| Magento\Framework\Amqp\ConfigFactory | Class was added. | + +#### Interface API membership changes {#ce-244-245-interface-api-membership} + +| What changed | How it changed | +| --- | --- | +| Magento\Wishlist\Model\AuthenticationStateInterface | Interface was added. | +| Magento\Wishlist\Model\Wishlist\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | +| Magento\Wishlist\Model\ResourceModel\Item\Product\CollectionBuilderInterface | Interface was added. | +| Magento\Wishlist\Controller\IndexInterface | Interface was added. | +| Magento\Wishlist\Controller\WishlistProviderInterface | Interface was added. | +| Magento\Widget\Block\BlockInterface | Interface was added. | +| Magento\Webapi\Controller\Rest\RequestProcessorInterface | Interface was added. | +| Magento\Vault\Block\Customer\IconInterface | Interface was added. | +| Magento\User\Model\Spi\NotificationExceptionInterface | Interface was added. | +| Magento\User\Model\Spi\NotificatorInterface | Interface was added. | +| Magento\UrlRewriteGraphQl\Model\Resolver\UrlRewrite\CustomUrlLocatorInterface | Interface was added. | +| Magento\Ui\Model\UrlInput\ConfigInterface | Interface was added. | +| Magento\Ui\Model\ColorPicker\ModeInterface | Interface was added. | +| Magento\Ui\DataProvider\AddFieldToCollectionInterface | Interface was added. | +| Magento\Ui\DataProvider\AddFilterToCollectionInterface | Interface was added. | +| Magento\Ui\DataProvider\Modifier\PoolInterface | Interface was added. | +| Magento\Ui\DataProvider\Mapper\MapperInterface | Interface was added. | +| Magento\Ui\Controller\UiActionInterface | Interface was added. | +| Magento\Ui\Config\ConverterInterface | Interface was added. | +| Magento\Ui\Config\Argument\ParserInterface | Interface was added. | +| Magento\Ui\Component\Wysiwyg\ConfigInterface | Interface was added. | +| Magento\Ui\Component\Layout\Tabs\TabInterface | Interface was added. | +| Magento\Ui\Component\Form\Element\DataType\DataTypeInterface | Interface was added. | +| Magento\Theme\Model\Theme\StoreThemesResolverInterface | Interface was added. | +| Magento\Theme\Model\Design\Config\MetadataProviderInterface | Interface was added. | +| Magento\Tax\Model\TaxClass\Type\TypeInterface | Interface was added. | +| Magento\Tax\Model\System\Message\NotificationInterface | Interface was added. | +| Magento\Tax\Api\TaxAddressManagerInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcherInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\ContextInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataPostprocessorInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataPreprocessorInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataSerializerInterface | Interface was added. | +| Magento\Store\Model\StoreResolver\ReaderInterface | Interface was added. | +| Magento\Store\Model\Config\Importer\Processor\ProcessorInterface | Interface was added. | +| Magento\Shipping\Model\Carrier\Source\GenericInterface | Interface was added. | +| Magento\Security\Api\Data\UserExpirationInterface | Interface was added. | +| Magento\Search\Setup\InstallConfigInterface | Interface was added. | +| Magento\Search\Model\SearchEngine\ValidatorInterface | Interface was added. | +| Magento\Sales\Model\ValidatorInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderAddressResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderPaymentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderStatusHistoryResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentTrackResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\TransactionResourceInterface | Interface was added. | +| Magento\Sales\Model\ResourceModel\Provider\NotSyncedDataProviderInterface | Interface was added. | +| Magento\Sales\Model\ResourceModel\Order\CollectionFactoryInterface | Interface was added. | +| Magento\Sales\Model\Order\OrderValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Shipment\SenderInterface | Interface was added. | +| Magento\Sales\Model\Order\Shipment\ShipmentValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\Transaction\BuilderInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\Transaction\ManagerInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\State\CommandInterface | Interface was added. | +| Magento\Sales\Model\Order\Invoice\InvoiceValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Invoice\SenderInterface | Interface was added. | +| Magento\Sales\Model\Order\Email\Container\IdentityInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\CreditmemoValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\ItemCreationValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\SenderInterface | Interface was added. | +| Magento\Sales\Controller\OrderInterface | Interface was added. | +| Magento\Sales\Controller\AbstractController\OrderLoaderInterface | Interface was added. | +| Magento\Sales\Controller\AbstractController\OrderViewAuthorizationInterface | Interface was added. | +| Magento\Sales\Api\OrderCustomerDelegateInterface | Interface was added. | +| Magento\Sales\Api\PaymentFailuresInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\CodeLimitManagerInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\QuoteResetAppliedRulesInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\RuleQuoteRecollectTotalsInterface | Interface was added. | +| Magento\SalesRule\Api\Data\DiscountDataInterface | Interface was added. | +| Magento\SalesRule\Api\Data\RuleDiscountInterface | Interface was added. | +| Magento\SalesGraphQl\Model\Shipment\Item\FormatterInterface | Interface was added. | +| Magento\RemoteStorage\FilesystemInterface | Interface was added. | +| Magento\RemoteStorage\Driver\DriverFactoryInterface | Interface was added. | +| Magento\RemoteStorage\Driver\RemoteDriverInterface | Interface was added. | +| Magento\ReleaseNotification\Model\ContentProviderInterface | Interface was added. | +| Magento\Quote\Model\ValidationRules\QuoteValidationRuleInterface | Interface was added. | +| Magento\Quote\Model\Quote\Item\CartItemProcessorInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\CustomAttributeListInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\Total\CollectorInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\Total\ReaderInterface | Interface was added. | +| Magento\Quote\Model\Product\QuoteItemsCleanerInterface | Interface was added. | +| Magento\Quote\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | +| Magento\Quote\Api\ChangeQuoteControlInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\CartItem\DataProvider\CustomizableOptionValueInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\CartItem\DataProvider\Processor\ItemDataProcessorInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\SetShippingAddressesOnCartInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\SetShippingMethodsOnCartInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\Payment\AdditionalDataProviderInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | +| Magento\Paypal\Model\IpnInterface | Interface was added. | +| Magento\Paypal\Model\Payflow\Service\Response\Handler\HandlerInterface | Interface was added. | +| Magento\Paypal\Model\Billing\Agreement\MethodInterface | Interface was added. | +| Magento\Paypal\Helper\Shortcut\ValidatorInterface | Interface was added. | +| Magento\Payment\Model\Method\TransparentInterface | Interface was added. | +| Magento\Payment\Api\Data\PaymentAdditionalInfoInterface | Interface was added. | +| Magento\PageCache\Model\Spi\PageCacheTagsPreprocessorInterface | Interface was added. | +| Magento\Newsletter\Model\SubscriptionManagerInterface | Interface was added. | +| Magento\Msrp\Pricing\MsrpPriceCalculatorInterface | Interface was added. | +| Magento\MediaGalleryUiApi\Api\ConfigInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\CreateAssetFromFileInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\FetchBatchesInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\ImportFilesInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Api\SynchronizeFilesInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Api\SynchronizeInterface | Interface was added. | +| Magento\MediaGalleryRenditionsApi\Api\GenerateRenditionsInterface | Interface was added. | +| Magento\MediaGalleryRenditionsApi\Api\GetRenditionPathInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\FileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\ReadFileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\ReadMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\SegmentInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\WriteFileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\WriteMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\AddMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\ExtractMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\Data\MetadataInterface | Interface was added. | +| Magento\MediaGalleryApi\Model\ExcludedPatternsConfigInterface | Interface was added. | +| Magento\MediaGalleryApi\Api\SearchAssetsInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Model\GetEntitiesInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Api\SynchronizeIdentitiesInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Api\SynchronizeInterface | Interface was added. | +| Magento\MediaContentApi\Model\GetAssetIdsByContentFieldInterface | Interface was added. | +| Magento\MediaContentApi\Model\SearchPatternConfigInterface | Interface was added. | +| Magento\MediaContentApi\Api\GetAssetIdsByContentFieldInterface | Interface was added. | +| Magento\MediaContentApi\Api\UpdateContentAssetLinksInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\ConfigInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\IsAssistanceEnabledInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\SetAssistanceInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerAdminIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerCustomerIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\IsLoginAsCustomerEnabledForCustomerInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerAdminIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerCustomerIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\Data\IsLoginAsCustomerEnabledForCustomerResultInterface | Interface was added. | +| Magento\InventoryIndexer\Indexer\SelectBuilderInterface | Interface was added. | +| Magento\Integration\Model\Oauth\Token\RequestLog\ReaderInterface | Interface was added. | +| Magento\Integration\Model\Oauth\Token\RequestLog\WriterInterface | Interface was added. | +| Magento\Indexer\Model\ModeSwitcherInterface | Interface was added. | +| Magento\Indexer\Model\Source\DataInterface | Interface was added. | +| Magento\ImportExport\Model\Report\ReportProcessorInterface | Interface was added. | +| Magento\ImportExport\Api\Data\ExtendedExportInfoInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextParametersInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextParametersProcessorInterface | Interface was added. | +| Magento\GraphQl\Controller\HttpHeaderProcessorInterface | Interface was added. | +| Magento\GraphQl\Controller\HttpRequestValidatorInterface | Interface was added. | +| Magento\Elasticsearch\SearchAdapter\QueryAwareInterface | Interface was added. | +| Magento\Elasticsearch\SearchAdapter\Query\ValueTransformerInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldsMappingPreprocessorInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProviderInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldType\ResolverInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\ResolverInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ConverterInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ResolverInterface | Interface was added. | +| Magento\Eav\Model\ResourceModel\Attribute\DefaultEntityAttributes\ProviderInterface | Interface was added. | +| Magento\Eav\Model\Entity\AttributeLoaderInterface | Interface was added. | +| Magento\Eav\Model\Entity\Setup\PropertyMapperInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\AttributeInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\UniqueValidationInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\Source\SpecificSourceInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\Backend\BackendInterface | Interface was added. | +| Magento\Downloadable\Pricing\Price\LinkPriceInterface | Interface was added. | +| Magento\Downloadable\Api\DomainManagerInterface | Interface was added. | +| Magento\Directory\Model\Country\Postcode\ConfigInterface | Interface was added. | +| Magento\Directory\Model\Country\Postcode\ValidatorInterface | Interface was added. | +| Magento\Deploy\Strategy\StrategyInterface | Interface was added. | +| Magento\Deploy\Source\SourceInterface | Interface was added. | +| Magento\Deploy\Package\BundleInterface | Interface was added. | +| Magento\Deploy\Package\Processor\ProcessorInterface | Interface was added. | +| Magento\Deploy\Console\Command\App\SensitiveConfigSet\CollectorInterface | Interface was added. | +| Magento\Deploy\Collector\CollectorInterface | Interface was added. | +| Magento\Customer\Model\Customer\Attribute\Source\GroupSourceLoggedInOnlyInterface | Interface was added. | +| Magento\Customer\CustomerData\JsLayoutDataProviderPoolInterface | Interface was added. | +| Magento\Customer\CustomerData\SectionPoolInterface | Interface was added. | +| Magento\Customer\Controller\AccountInterface | Interface was added. | +| Magento\Customer\Block\Address\Renderer\RendererInterface | Interface was added. | +| Magento\Customer\Api\AccountDelegationInterface | Interface was added. | +| Magento\Customer\Api\SessionCleanerInterface | Interface was added. | +| Magento\Csp\Model\Policy\SimplePolicyInterface | Interface was added. | +| Magento\Csp\Model\Collector\MergerInterface | Interface was added. | +| Magento\Csp\Model\Collector\Config\PolicyReaderInterface | Interface was added. | +| Magento\Csp\Api\CspAwareActionInterface | Interface was added. | +| Magento\Csp\Api\CspRendererInterface | Interface was added. | +| Magento\Csp\Api\InlineUtilInterface | Interface was added. | +| Magento\Csp\Api\ModeConfigManagerInterface | Interface was added. | +| Magento\Csp\Api\PolicyCollectorInterface | Interface was added. | +| Magento\Csp\Api\PolicyRendererInterface | Interface was added. | +| Magento\Csp\Api\Data\ModeConfiguredInterface | Interface was added. | +| Magento\Csp\Api\Data\PolicyInterface | Interface was added. | +| Magento\Cron\Model\DeadlockRetrierInterface | Interface was added. | +| Magento\ConfigurableProduct\Model\ResourceModel\Attribute\OptionSelectBuilderInterface | Interface was added. | +| Magento\Cms\Ui\Component\AddFilterInterface | Interface was added. | +| Magento\Cms\Model\PageRepository\ValidatorInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayoutManagerInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayoutRepositoryInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayout\Data\CustomLayoutSelectedInterface | Interface was added. | +| Magento\Checkout\CustomerData\ItemPoolInterface | Interface was added. | +| Magento\Checkout\Controller\Express\RedirectLoginInterface | Interface was added. | +| Magento\Checkout\Api\PaymentProcessingRateLimiterInterface | Interface was added. | +| Magento\CheckoutAgreements\Model\AgreementsProviderInterface | Interface was added. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav\WysiwygConfigDataProcessorInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\ConfiguredPriceInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\MinimalPriceCalculatorInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\SpecialPriceInterface | Interface was added. | +| Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderInterface | Interface was added. | +| Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\PriceModifierInterface | Interface was added. | +| Magento\Catalog\Model\ProductOptions\ConfigInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\CollectionProviderInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\MapProviderInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Data\ListCriteriaInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Data\ListResultInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Converter\ConverterInterface | Interface was added. | +| Magento\Catalog\Model\Product\Pricing\Renderer\SalableResolverInterface | Interface was added. | +| Magento\Catalog\Model\Product\Media\ConfigInterface | Interface was added. | +| Magento\Catalog\Model\Product\Configuration\Item\Option\OptionInterface | Interface was added. | +| Magento\Catalog\Model\Product\Condition\ConditionInterface | Interface was added. | +| Magento\Catalog\Model\Layer\CollectionFilterInterface | Interface was added. | +| Magento\Catalog\Model\Layer\FilterableAttributeListInterface | Interface was added. | +| Magento\Catalog\Model\Layer\ItemCollectionProviderInterface | Interface was added. | +| Magento\Catalog\Model\Layer\StateKeyInterface | Interface was added. | +| Magento\Catalog\Model\Indexer\Product\Flat\TableDataInterface | Interface was added. | +| Magento\Catalog\Model\Entity\Product\Attribute\Group\AttributeMapperInterface | Interface was added. | +| Magento\Catalog\Model\Config\Source\ProductPriceOptionsInterface | Interface was added. | +| Magento\Catalog\Model\Attribute\LockValidatorInterface | Interface was added. | +| Magento\Catalog\Controller\Product\View\ViewInterface | Interface was added. | +| Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper\HandlerInterface | Interface was added. | +| Magento\Catalog\Block\Product\AwareInterface | Interface was added. | +| Magento\Catalog\Block\Product\ReviewRendererInterface | Interface was added. | +| Magento\CatalogUrlRewrite\Model\Map\DatabaseMapInterface | Interface was added. | +| Magento\CatalogUrlRewrite\Model\Map\HashMapInterface | Interface was added. | +| Magento\CatalogSearch\Model\Search\ItemCollectionProviderInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchCriteriaResolverInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchResultApplierInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\TotalRecordsResolverInterface | Interface was added. | +| Magento\CatalogSearch\Model\Advanced\ProductCollectionPrepareStrategyInterface | Interface was added. | +| Magento\CatalogSearch\Model\Adapter\Aggregation\RequestCheckerInterface | Interface was added. | +| Magento\CatalogRule\Model\Indexer\IndexerTableSwapperInterface | Interface was added. | +| Magento\CatalogImportExport\Model\Export\ProductFilterInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\Query\ProductQueryInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Product\CollectionProcessorInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Product\Price\ProviderInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Categories\DataProvider\Category\CollectionProcessorInterface | Interface was added. | +| Magento\CatalogGraphQl\DataProvider\Product\LayeredNavigation\LayerBuilderInterface | Interface was added. | +| Magento\CardinalCommerce\Model\Response\JwtParserInterface | Interface was added. | +| Magento\CardinalCommerce\Model\Response\JwtPayloadValidatorInterface | Interface was added. | +| Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface | Interface was added. | +| Magento\Backend\Model\Search\Config\Structure\ElementBuilderInterface | Interface was added. | +| Magento\Backend\Model\Image\UploadResizeConfigInterface | Interface was added. | +| Magento\Analytics\ReportXml\DB\Assembler\AssemblerInterface | Interface was added. | +| Magento\Analytics\Model\ExportDataHandlerInterface | Interface was added. | +| Magento\Analytics\Model\ReportWriterInterface | Interface was added. | +| Magento\Analytics\Model\Connector\CommandInterface | Interface was added. | +| Magento\Analytics\Api\LinkProviderInterface | Interface was added. | +| Magento\Analytics\Api\Data\LinkInterface | Interface was added. | +| Magento\AdvancedSearch\Block\SearchDataInterface | Interface was added. | +| Magento\Framework\TranslateInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttributeTypeLocatorInterface | Interface was added. | +| Magento\Framework\Webapi\Rest\Request\DeserializerInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttribute\PreprocessorInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttribute\ServiceTypeListInterface | Interface was added. | +| Magento\Framework\View\DesignInterface | Interface was added. | +| Magento\Framework\View\TemplateEngineInterface | Interface was added. | +| Magento\Framework\View\Xsd\Media\TypeDataExtractorInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\ResultInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\AttributeInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CdataInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CommentInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\TextInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Element\ElementInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Directive\DirectiveInterface | Interface was added. | +| Magento\Framework\View\Page\Config\RendererInterface | Interface was added. | +| Magento\Framework\View\Model\PageLayout\Config\BuilderInterface | Interface was added. | +| Magento\Framework\View\Layout\GeneratorInterface | Interface was added. | +| Magento\Framework\View\Layout\LayoutCacheKeyInterface | Interface was added. | +| Magento\Framework\View\Layout\ProcessorInterface | Interface was added. | +| Magento\Framework\View\Layout\ReaderInterface | Interface was added. | +| Magento\Framework\View\Layout\Condition\VisibilityConditionInterface | Interface was added. | +| Magento\Framework\View\Layout\Argument\UpdaterInterface | Interface was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\SecurityProcessorInterface | Interface was added. | +| Magento\Framework\View\File\FileList\CollateInterface | Interface was added. | +| Magento\Framework\View\Element\ComponentVisibilityInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\BlockWrapperInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContainerInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContextInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\DataSourceInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\JsConfigInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\LayoutInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ObserverInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\PoolInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\SubjectInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Factory\ComponentFactoryInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\FilterApplierInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ActionPoolInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ControlInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContentType\ContentTypeInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\DomMergerInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\FileCollectorInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\UiReaderInterface | Interface was added. | +| Magento\Framework\View\Element\Message\InterpretationStrategyInterface | Interface was added. | +| Magento\Framework\View\Element\Message\Renderer\PoolInterface | Interface was added. | +| Magento\Framework\View\Element\Message\Renderer\RendererInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\CustomizationInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\FileInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\ResolverInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\ThemeProviderInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Image\PathInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\File\CollectionInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\ConfigInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\FileAssetInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\FileInterface | Interface was added. | +| Magento\Framework\View\Design\FileResolution\Fallback\ResolverInterface | Interface was added. | +| Magento\Framework\View\Design\Fallback\Rule\RuleInterface | Interface was added. | +| Magento\Framework\View\Asset\ContentProcessorInterface | Interface was added. | +| Magento\Framework\View\Asset\ContextInterface | Interface was added. | +| Magento\Framework\View\Asset\LockerProcessInterface | Interface was added. | +| Magento\Framework\View\Asset\MergeStrategyInterface | Interface was added. | +| Magento\Framework\View\Asset\MergeableInterface | Interface was added. | +| Magento\Framework\View\Asset\PreProcessor\FilenameResolverInterface | Interface was added. | +| Magento\Framework\Validator\HTML\AttributeValidatorInterface | Interface was added. | +| Magento\Framework\Validator\HTML\TagValidatorInterface | Interface was added. | +| Magento\Framework\Validator\HTML\WYSIWYGValidatorInterface | Interface was added. | +| Magento\Framework\Validator\Constraint\OptionInterface | Interface was added. | +| Magento\Framework\Url\ModifierInterface | Interface was added. | +| Magento\Framework\Url\RouteParamsPreprocessorInterface | Interface was added. | +| Magento\Framework\Translate\Inline\ProviderInterface | Interface was added. | +| Magento\Framework\TestFramework\Unit\Autoloader\GeneratorInterface | Interface was added. | +| Magento\Framework\Setup\ConfigOptionsListInterface | Interface was added. | +| Magento\Framework\Setup\DataCacheInterface | Interface was added. | +| Magento\Framework\Setup\UpToDateValidatorInterface | Interface was added. | +| Magento\Framework\Setup\SchemaListenerHandlers\SchemaListenerHandlerInterface | Interface was added. | +| Magento\Framework\Setup\SchemaListenerDefinition\DefinitionConverterInterface | Interface was added. | +| Magento\Framework\Setup\SampleData\InstallerInterface | Interface was added. | +| Magento\Framework\Setup\SampleData\StateInterface | Interface was added. | +| Magento\Framework\Setup\Patch\DataPatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\DependentPatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\NonTransactionableInterface | Interface was added. | +| Magento\Framework\Setup\Patch\PatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\PatchRevertableInterface | Interface was added. | +| Magento\Framework\Setup\Patch\SchemaPatchInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\OperationInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\SchemaConfigInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\ElementDiffAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\TableElementInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Factories\FactoryInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnDefaultAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnIdentityAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnNullableAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnUnsignedAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Diff\DiffInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DDLTriggerInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbDefinitionProcessorInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaReaderInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaWriterInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\DataSavior\DataSaviorInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\DataSavior\DumpAccessorInterface | Interface was added. | +| Magento\Framework\Session\SaveHandlerInterface | Interface was added. | +| Magento\Framework\Session\StorageInterface | Interface was added. | +| Magento\Framework\Session\ValidatorInterface | Interface was added. | +| Magento\Framework\Session\Config\ConfigInterface | Interface was added. | +| Magento\Framework\Search\AdapterInterface | Interface was added. | +| Magento\Framework\Search\ResponseInterface | Interface was added. | +| Magento\Framework\Search\SearchEngineInterface | Interface was added. | +| Magento\Framework\Search\SearchEngine\ConfigInterface | Interface was added. | +| Magento\Framework\Search\Request\IndexScopeResolverInterface | Interface was added. | +| Magento\Framework\Search\Request\Aggregation\StatusInterface | Interface was added. | +| Magento\Framework\Search\Dynamic\Algorithm\AlgorithmInterface | Interface was added. | +| Magento\Framework\Search\Adapter\OptionsInterface | Interface was added. | +| Magento\Framework\Search\Adapter\Preprocessor\PreprocessorInterface | Interface was added. | +| Magento\Framework\Search\Adapter\Aggregation\AggregationResolverInterface | Interface was added. | +| Magento\Framework\Profiler\Driver\Standard\OutputInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigCacheInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigLoaderInterface | Interface was added. | +| Magento\Framework\ObjectManager\DefinitionInterface | Interface was added. | +| Magento\Framework\ObjectManager\DynamicConfigInterface | Interface was added. | +| Magento\Framework\ObjectManager\FactoryInterface | Interface was added. | +| Magento\Framework\ObjectManager\NoninterceptableInterface | Interface was added. | +| Magento\Framework\ObjectManager\RelationsInterface | Interface was added. | +| Magento\Framework\Mview\ConfigInterface | Interface was added. | +| Magento\Framework\Mview\ProcessorInterface | Interface was added. | +| Magento\Framework\Mview\ViewInterface | Interface was added. | +| Magento\Framework\Mview\View\ChangelogInterface | Interface was added. | +| Magento\Framework\Mview\View\CollectionInterface | Interface was added. | +| Magento\Framework\Mview\View\StateInterface | Interface was added. | +| Magento\Framework\Mview\View\SubscriptionInterface | Interface was added. | +| Magento\Framework\Mview\View\State\CollectionInterface | Interface was added. | +| Magento\Framework\Module\ModuleListInterface | Interface was added. | +| Magento\Framework\Model\ResourceModel\Type\Db\ConnectionFactoryInterface | Interface was added. | +| Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface | Interface was added. | +| Magento\Framework\Model\EntitySnapshot\AttributeProviderInterface | Interface was added. | +| Magento\Framework\Model\Entity\ScopeInterface | Interface was added. | +| Magento\Framework\Model\Entity\ScopeProviderInterface | Interface was added. | +| Magento\Framework\Message\ExceptionMessageFactoryInterface | Interface was added. | +| Magento\Framework\Mail\EmailMessageInterface | Interface was added. | +| Magento\Framework\Mail\MimeInterface | Interface was added. | +| Magento\Framework\Mail\MimeMessageInterface | Interface was added. | +| Magento\Framework\Mail\MimePartInterface | Interface was added. | +| Magento\Framework\Locale\AvailableLocalesInterface | Interface was added. | +| Magento\Framework\Locale\OptionInterface | Interface was added. | +| Magento\Framework\Interception\ConfigInterface | Interface was added. | +| Magento\Framework\Interception\ConfigLoaderInterface | Interface was added. | +| Magento\Framework\Interception\ConfigWriterInterface | Interface was added. | +| Magento\Framework\Interception\DefinitionInterface | Interface was added. | +| Magento\Framework\Interception\InterceptorInterface | Interface was added. | +| Magento\Framework\Interception\PluginListInterface | Interface was added. | +| Magento\Framework\Interception\ObjectManager\ConfigInterface | Interface was added. | +| Magento\Framework\Indexer\Table\StrategyInterface | Interface was added. | +| Magento\Framework\Indexer\Config\DependencyInfoProviderInterface | Interface was added. | +| Magento\Framework\Image\Adapter\AdapterInterface | Interface was added. | +| Magento\Framework\Image\Adapter\ConfigInterface | Interface was added. | +| Magento\Framework\HTTP\AsyncClientInterface | Interface was added. | +| Magento\Framework\HTTP\AsyncClient\HttpResponseDeferredInterface | Interface was added. | +| Magento\Framework\GraphQlSchemaStitching\GraphQlReader\TypeMetaReaderInterface | Interface was added. | +| Magento\Framework\GraphQl\ConfigInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\SchemaGeneratorInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\TypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\InputTypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\OutputTypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\WrappedTypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Output\ElementMapper\FormatterInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Enum\DataMapperInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Entity\MapperInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\ErrorHandlerInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\ResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchRequestItemInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchServiceContractResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\ContextInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\IdentityInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\ResolveRequestInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\TypeResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\Argument\FieldEntityAttributesInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\Argument\SearchCriteria\ArgumentApplierInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\ConfigElementFactoryInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\ConfigElementInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\FieldInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\OutputFieldInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\TypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\UnionInterface | Interface was added. | +| Magento\Framework\Filter\DirectiveProcessorInterface | Interface was added. | +| Magento\Framework\Filter\FactoryInterface | Interface was added. | +| Magento\Framework\Filter\VariableResolverInterface | Interface was added. | +| Magento\Framework\Filter\SimpleDirective\ProcessorInterface | Interface was added. | +| Magento\Framework\Filter\FilterManager\ConfigInterface | Interface was added. | +| Magento\Framework\Filter\DirectiveProcessor\FilterInterface | Interface was added. | +| Magento\Framework\Filesystem\DriverPoolInterface | Interface was added. | +| Magento\Framework\Filesystem\File\ReadInterface | Interface was added. | +| Magento\Framework\Filesystem\Directory\PathValidatorInterface | Interface was added. | +| Magento\Framework\Exception\TemporaryStateExceptionInterface | Interface was added. | +| Magento\Framework\Event\ConfigInterface | Interface was added. | +| Magento\Framework\Event\InvokerInterface | Interface was added. | +| Magento\Framework\Event\ManagerInterface | Interface was added. | +| Magento\Framework\Encryption\Adapter\EncryptionAdapterInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityGeneratorInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityValidatorInterface | Interface was added. | +| Magento\Framework\DataObject\KeyValueObjectInterface | Interface was added. | +| Magento\Framework\Data\CollectionDataSourceInterface | Interface was added. | +| Magento\Framework\Data\CollectionModifierInterface | Interface was added. | +| Magento\Framework\Data\SearchResultInterface | Interface was added. | +| Magento\Framework\Data\SearchResultProcessorInterface | Interface was added. | +| Magento\Framework\Data\ValueSourceInterface | Interface was added. | +| Magento\Framework\Data\Collection\EntityFactoryInterface | Interface was added. | +| Magento\Framework\Data\Collection\Db\FetchStrategyInterface | Interface was added. | +| Magento\Framework\DB\LoggerInterface | Interface was added. | +| Magento\Framework\DB\MapperInterface | Interface was added. | +| Magento\Framework\DB\QueryInterface | Interface was added. | +| Magento\Framework\DB\Sql\ExpressionInterface | Interface was added. | +| Magento\Framework\DB\Sequence\SequenceInterface | Interface was added. | +| Magento\Framework\DB\Select\QueryModifierInterface | Interface was added. | +| Magento\Framework\DB\Select\RendererInterface | Interface was added. | +| Magento\Framework\DB\Query\BatchIteratorInterface | Interface was added. | +| Magento\Framework\DB\DataConverter\DataConverterInterface | Interface was added. | +| Magento\Framework\Css\PreProcessor\ErrorHandlerInterface | Interface was added. | +| Magento\Framework\Crontab\CrontabManagerInterface | Interface was added. | +| Magento\Framework\Crontab\TasksProviderInterface | Interface was added. | +| Magento\Framework\Component\ComponentRegistrarInterface | Interface was added. | +| Magento\Framework\Code\ValidatorInterface | Interface was added. | +| Magento\Framework\Code\Reader\ClassReaderInterface | Interface was added. | +| Magento\Framework\Code\Minifier\AdapterInterface | Interface was added. | +| Magento\Framework\Code\Generator\CodeGeneratorInterface | Interface was added. | +| Magento\Framework\Cache\ConfigInterface | Interface was added. | +| Magento\Framework\Cache\StaleCacheNotifierInterface | Interface was added. | +| Magento\Framework\Backup\SourceFileInterface | Interface was added. | +| Magento\Framework\Autoload\AutoloaderInterface | Interface was added. | +| Magento\Framework\Async\CancelableDeferredInterface | Interface was added. | +| Magento\Framework\Async\DeferredInterface | Interface was added. | +| Magento\Framework\App\AreaInterface | Interface was added. | +| Magento\Framework\App\CsrfAwareActionInterface | Interface was added. | +| Magento\Framework\App\DefaultPathInterface | Interface was added. | +| Magento\Framework\App\DesignInterface | Interface was added. | +| Magento\Framework\App\EnvironmentInterface | Interface was added. | +| Magento\Framework\App\ExceptionHandlerInterface | Interface was added. | +| Magento\Framework\App\FeedFactoryInterface | Interface was added. | +| Magento\Framework\App\FeedInterface | Interface was added. | +| Magento\Framework\App\HttpRequestInterface | Interface was added. | +| Magento\Framework\App\RouterInterface | Interface was added. | +| Magento\Framework\App\RouterListInterface | Interface was added. | +| Magento\Framework\App\ScopeFallbackResolverInterface | Interface was added. | +| Magento\Framework\App\ScopeResolverInterface | Interface was added. | +| Magento\Framework\App\ScopeTreeProviderInterface | Interface was added. | +| Magento\Framework\App\ScopeValidatorInterface | Interface was added. | +| Magento\Framework\App\View\Deployment\Version\StorageInterface | Interface was added. | +| Magento\Framework\App\View\Asset\MaterializationStrategy\StrategyInterface | Interface was added. | +| Magento\Framework\App\Scope\ValidatorInterface | Interface was added. | +| Magento\Framework\App\Rss\RssManagerInterface | Interface was added. | +| Magento\Framework\App\Rss\UrlBuilderInterface | Interface was added. | +| Magento\Framework\App\Router\NoRouteHandlerInterface | Interface was added. | +| Magento\Framework\App\Router\PathConfigInterface | Interface was added. | +| Magento\Framework\App\Response\FileInterface | Interface was added. | +| Magento\Framework\App\Response\RedirectInterface | Interface was added. | +| Magento\Framework\App\Response\HeaderProvider\HeaderProviderInterface | Interface was added. | +| Magento\Framework\App\ResourceConnection\ConfigInterface | Interface was added. | +| Magento\Framework\App\ResourceConnection\ConnectionAdapterInterface | Interface was added. | +| Magento\Framework\App\Request\ValidatorInterface | Interface was added. | +| Magento\Framework\App\PageCache\NotCacheableInterface | Interface was added. | +| Magento\Framework\App\ObjectManager\ConfigWriterInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\ImporterInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\ValidatorInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\Writer\FormatterInterface | Interface was added. | +| Magento\Framework\App\Config\CommentInterface | Interface was added. | +| Magento\Framework\App\Config\CommentParserInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigSourceInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigTypeInterface | Interface was added. | +| Magento\Framework\App\Config\ValueInterface | Interface was added. | +| Magento\Framework\App\Config\Spi\PostProcessorInterface | Interface was added. | +| Magento\Framework\App\Config\Spi\PreProcessorInterface | Interface was added. | +| Magento\Framework\App\Config\Scope\ReaderInterface | Interface was added. | +| Magento\Framework\App\Config\Reader\Source\SourceInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigResource\ConfigInterface | Interface was added. | +| Magento\Framework\App\Action\HttpConnectActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpDeleteActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpGetActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpOptionsActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPatchActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPostActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPropfindActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPutActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpTraceActionInterface | Interface was added. | +| Magento\Framework\Api\AttributeTypeResolverInterface | Interface was added. | +| Magento\Framework\Api\CriteriaInterface | Interface was added. | +| Magento\Framework\Api\SimpleBuilderInterface | Interface was added. | +| Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionInterface | Interface was added. | +| Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionProviderInterface | Interface was added. | +| Magento\Framework\Api\Search\AggregationInterface | Interface was added. | +| Magento\Framework\Api\Search\AggregationValueInterface | Interface was added. | +| Magento\Framework\Api\Search\BucketInterface | Interface was added. | +| Magento\Framework\Api\Search\DocumentInterface | Interface was added. | +| Magento\Framework\Api\Search\ReportingInterface | Interface was added. | +| Magento\Framework\MessageQueue\BulkPublisherInterface | Interface was added. | +| Magento\Framework\MessageQueue\CallbackInvokerInterface | Interface was added. | +| Magento\Framework\MessageQueue\ConnectionTypeResolverInterface | Interface was added. | +| Magento\Framework\MessageQueue\ConsumerConfigurationInterface | Interface was added. | +| Magento\Framework\MessageQueue\LockInterface | Interface was added. | +| Magento\Framework\MessageQueue\MergedMessageInterface | Interface was added. | +| Magento\Framework\MessageQueue\MergerInterface | Interface was added. | +| Magento\Framework\MessageQueue\MessageProcessorInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\QueueConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItem\BindingInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\PublisherConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\PublisherConnectionInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillCompareInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillReadInterface | Interface was added. | +| Magento\Framework\MessageQueue\Lock\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Lock\WriterInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItem\HandlerInterface | Interface was added. | +| Magento\Framework\Amqp\Topology\BindingInstallerInterface | Interface was added. | From 3dadb63d265a9bf4a19294dfcc2a401ffe097247 Mon Sep 17 00:00:00 2001 From: Dmytro Shevtsov Date: Mon, 1 Aug 2022 16:56:11 -0500 Subject: [PATCH 089/491] Add BIC reference, 2.4.5 pre-release --- .../backward-incompatible-changes/reference.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/guides/v2.4/release-notes/backward-incompatible-changes/reference.md b/src/guides/v2.4/release-notes/backward-incompatible-changes/reference.md index 99212ea5fee..ddf544c2b77 100644 --- a/src/guides/v2.4/release-notes/backward-incompatible-changes/reference.md +++ b/src/guides/v2.4/release-notes/backward-incompatible-changes/reference.md @@ -22,6 +22,20 @@ To view changes in functional tests, refer to [Backward incompatible changes in {:.bs-callout-info} Patch releases are primarily focused on delivering security and quality enhancements on a regular basis to help you keep your sites performing at their peak. On an exceptional basis, breaking changes or additional patches or hotfixes may be released to address security or compliance issues and high-impact quality issues. On the module level, these are mostly PATCH-level changes; sometimes MINOR-level changes. See [Release policy]({{site.baseurl}}/release/policy/). +## 2.4.4 - 2.4.5 (pre-release) + +### {{ site.data.var.ce }} + +{% include backward-incompatible-changes/open-source/2.4.4-2.4.5.md %} + +### {{ site.data.var.ee }} + +{% include backward-incompatible-changes/commerce/2.4.4-2.4.5.md %} + +### {{ site.data.var.b2b }} + +{% include backward-incompatible-changes/b2b/2.4.4-2.4.5.md %} + ## 2.4.3 - 2.4.4 ### {{ site.data.var.ce }} From ccec3c0c7485aa67819cb43ae2c07d9ec9628607 Mon Sep 17 00:00:00 2001 From: Dmytro Shevtsov Date: Mon, 1 Aug 2022 17:24:42 -0500 Subject: [PATCH 090/491] Format MD tables --- .../b2b/2.4.4-2.4.5.md | 1774 ++++++++--------- .../commerce/2.4.4-2.4.5.md | 1683 ++++++++-------- .../open-source/2.4.4-2.4.5.md | 1528 +++++++------- 3 files changed, 2493 insertions(+), 2492 deletions(-) diff --git a/src/_includes/backward-incompatible-changes/b2b/2.4.4-2.4.5.md b/src/_includes/backward-incompatible-changes/b2b/2.4.4-2.4.5.md index 4a06f83e186..575e679de03 100644 --- a/src/_includes/backward-incompatible-changes/b2b/2.4.4-2.4.5.md +++ b/src/_includes/backward-incompatible-changes/b2b/2.4.4-2.4.5.md @@ -1,904 +1,904 @@ #### Class changes {#b2b-244-245-class} -| What changed | How it changed | -| --- | --- | +| What changed | How it changed | +| -------------------------------------------------------------------------------- | ------------------------------------ | +| Magento\CatalogInventory\Model\Source\Stock::\_\_construct | [public] Method has been added. | | Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\CustomOptions::formatPrice | [protected] Method has been removed. | -| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav::formatPrice | [protected] Method has been removed. | -| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\General::formatPrice | [protected] Method has been removed. | -| Magento\GoogleTagManager\Model\Config\Source\GtagAccountType | Class was added. | -| Magento\GoogleTagManager\Block\GtagGa | Class was added. | -| Magento\GoogleTagManager\Block\Adminhtml\GtagGa | Class was added. | -| Magento\GoogleTagManager\Block\Adminhtml\Creditmemo\GtagGa | Class was added. | -| Magento\GoogleGtag\Block\Ga | Class was added. | -| Magento\CatalogInventory\Model\Source\Stock::\_\_construct | [public] Method has been added. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav::formatPrice | [protected] Method has been removed. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\General::formatPrice | [protected] Method has been removed. | +| Magento\GoogleGtag\Block\Ga | Class was added. | +| Magento\GoogleTagManager\Block\Adminhtml\Creditmemo\GtagGa | Class was added. | +| Magento\GoogleTagManager\Block\Adminhtml\GtagGa | Class was added. | +| Magento\GoogleTagManager\Block\GtagGa | Class was added. | +| Magento\GoogleTagManager\Model\Config\Source\GtagAccountType | Class was added. | #### Database changes {#b2b-244-245-database} -| What changed | How it changed | -| --- | --- | -| salesrule\_label/SALESRULE\_LABEL\_RULE\_ID\_SEQUENCE\_SALESRULE\_SEQUENCE\_VALUE | Foreign key was removed | -| salesrule\_label/SALESRULE\_LABEL\_ROW\_ID\_SALESRULE\_ROW\_ID | Foreign key was added | -| catalog\_product\_index\_price\_tmp/PRIMARY | Primary key was changed | -| magento\_catalogpermissions\_index\_product/PRIMARY | Primary key was added | -| magento\_catalogpermissions\_index\_product\_replica/PRIMARY | Primary key was added | -| salesrule\_label/SALESRULE\_LABEL\_RULE\_ID\_STORE\_ID | Unique key was added | -| salesrule\_label/SALESRULE\_LABEL\_ROW\_ID\_STORE\_ID | Unique key was added | -| salesrule\_label/rule\_id | Column was added | -| salesrule\_label/row\_id | Column was added | -| customer\_eav\_attribute/grid\_filter\_condition\_type | Column was added | -| catalog\_product\_index\_price\_tmp/id | Column was added | -| magento\_catalogpermissions\_index\_product/index\_id | Column was added | -| magento\_catalogpermissions\_index\_product\_replica/index\_id | Column was added | +| What changed | How it changed | +| ------------------------------------------------------------------------- | ----------------------- | +| catalog_product_index_price_tmp/PRIMARY | Primary key was changed | +| catalog_product_index_price_tmp/id | Column was added | +| customer_eav_attribute/grid_filter_condition_type | Column was added | +| magento_catalogpermissions_index_product/PRIMARY | Primary key was added | +| magento_catalogpermissions_index_product/index_id | Column was added | +| magento_catalogpermissions_index_product_replica/PRIMARY | Primary key was added | +| magento_catalogpermissions_index_product_replica/index_id | Column was added | +| salesrule_label/SALESRULE_LABEL_ROW_ID_SALESRULE_ROW_ID | Foreign key was added | +| salesrule_label/SALESRULE_LABEL_ROW_ID_STORE_ID | Unique key was added | +| salesrule_label/SALESRULE_LABEL_RULE_ID_SEQUENCE_SALESRULE_SEQUENCE_VALUE | Foreign key was removed | +| salesrule_label/SALESRULE_LABEL_RULE_ID_STORE_ID | Unique key was added | +| salesrule_label/row_id | Column was added | +| salesrule_label/rule_id | Column was added | #### System changes {#b2b-244-245-system} -| What changed | How it changed | -| --- | --- | -| btob/website\_configuration/direct\_products\_price\_assigning | A field-node was added | -| recaptcha\_frontend | A section-node was added | -| recaptcha\_frontend/type\_for | A group-node was added | -| recaptcha\_frontend/type\_for/wishlist | A field-node was added | -| recaptcha\_frontend/type\_for/customer\_invite\_create | A field-node was added | -| recaptcha\_frontend/type\_for/giftcard | A field-node was added | -| webapi/graphql\_session | A group-node was added | -| webapi/graphql\_session/disabled | A field-node was added | -| web\_api | A section-node was added | -| web\_api/graphql | A group-node was added | -| web\_api/graphql/include\_dynamic\_attributes\_as\_entity\_type\_fields | A field-node was added | -| google/gtag | A group-node was added | -| google/gtag/analytics4 | A group-node was added | -| google/gtag/analytics4/type | A field-node was added | -| google/gtag/analytics4/measurement\_id | A field-node was added | -| google/gtag/analytics4/container\_id | A field-node was added | -| google/gtag/analytics4/catalog\_page\_list\_value | A field-node was added | -| google/gtag/analytics4/crosssell\_block\_list\_value | A field-node was added | -| google/gtag/analytics4/upsell\_block\_list\_value | A field-node was added | -| google/gtag/analytics4/related\_block\_list\_value | A field-node was added | -| google/gtag/analytics4/search\_page\_list\_value | A field-node was added | -| google/gtag/analytics4/promotions\_list\_value | A field-node was added | -| google/gtag/analytics4/experiments | A field-node was added | -| google/gtag/analytics4/active | A field-node was added | -| google/gtag/adwords | A group-node was added | -| google/gtag/adwords/active | A field-node was added | -| google/gtag/adwords/conversion\_id | A field-node was added | -| google/gtag/adwords/conversion\_label | A field-node was added | +| What changed | How it changed | +| ---------------------------------------------------------------- | ------------------------ | +| btob/website_configuration/direct_products_price_assigning | A field-node was added | +| google/gtag | A group-node was added | +| google/gtag/adwords | A group-node was added | +| google/gtag/adwords/active | A field-node was added | +| google/gtag/adwords/conversion_id | A field-node was added | +| google/gtag/adwords/conversion_label | A field-node was added | +| google/gtag/analytics4 | A group-node was added | +| google/gtag/analytics4/active | A field-node was added | +| google/gtag/analytics4/catalog_page_list_value | A field-node was added | +| google/gtag/analytics4/container_id | A field-node was added | +| google/gtag/analytics4/crosssell_block_list_value | A field-node was added | +| google/gtag/analytics4/experiments | A field-node was added | +| google/gtag/analytics4/measurement_id | A field-node was added | +| google/gtag/analytics4/promotions_list_value | A field-node was added | +| google/gtag/analytics4/related_block_list_value | A field-node was added | +| google/gtag/analytics4/search_page_list_value | A field-node was added | +| google/gtag/analytics4/type | A field-node was added | +| google/gtag/analytics4/upsell_block_list_value | A field-node was added | +| recaptcha_frontend | A section-node was added | +| recaptcha_frontend/type_for | A group-node was added | +| recaptcha_frontend/type_for/customer_invite_create | A field-node was added | +| recaptcha_frontend/type_for/giftcard | A field-node was added | +| recaptcha_frontend/type_for/wishlist | A field-node was added | +| web_api | A section-node was added | +| web_api/graphql | A group-node was added | +| web_api/graphql/include_dynamic_attributes_as_entity_type_fields | A field-node was added | +| webapi/graphql_session | A group-node was added | +| webapi/graphql_session/disabled | A field-node was added | #### Class API membership changes {#b2b-244-245-class-api-membership} -| What changed | How it changed | -| --- | --- | -| Magento\Wishlist\Model\Wishlist\Data\WishlistItem | Class was added. | -| Magento\VisualMerchandiser\Model\Sorting\Factory | Class was added. | -| Magento\VisualMerchandiser\Model\Rules\Factory | Class was added. | -| Magento\Ui\Component\Form\Fieldset\Factory | Class was added. | -| Magento\Ui\Component\Control\Container | Class was added. | -| Magento\TargetRule\Block\Product\AbstractProduct | Class was added. | -| Magento\Store\Ui\Component\Listing\Column\Store\Options | Class was added. | -| Magento\ScheduledImportExport\Model\Scheduled\Operation | Class was added. | -| Magento\Sales\Setup\SalesSetup | Class was added. | -| Magento\Sales\Model\Service\InvoiceService | Class was added. | -| Magento\Sales\Model\ResourceModel\Order\CollectionFactory | Class was added. | -| Magento\Sales\Model\ResourceModel\Order\Collection\Factory | Class was added. | -| Magento\Sales\Model\Order\CreditmemoFactory | Class was added. | -| Magento\Sales\Model\Order\Pdf\Total\DefaultTotal | Class was added. | -| Magento\Sales\Model\Order\Email\Sender\InvoiceSender | Class was added. | -| Magento\Sales\Model\Order\Email\Sender\OrderSender | Class was added. | -| Magento\Sales\Controller\Adminhtml\Order | Class was added. | -| Magento\SalesRule\Model\Validator | Class was added. | -| Magento\SalesRule\Api\Exception\CodeRequestLimitException | Class was added. | -| Magento\Quote\Setup\QuoteSetup | Class was added. | -| Magento\Quote\Model\Quote\Item\CartItemOptionsProcessor | Class was added. | -| Magento\Quote\Model\Quote\Item\Option | Class was added. | -| Magento\Quote\Model\Quote\Address\RateCollectorInterfaceFactory | Class was added. | -| Magento\Quote\Model\Cart\Data\CartItem | Class was added. | -| Magento\Paypal\Model\Billing\AbstractAgreement | Class was added. | -| Magento\Payment\Gateway\Config\Config | Class was added. | -| Magento\NegotiableQuote\Model\Validator\ValidatorResult | Class was added. | -| Magento\Indexer\Model\DimensionModes | Class was added. | -| Magento\ImportExport\Model\Export\Factory | Class was added. | -| Magento\GiftCardAccount\Api\Exception\TooManyAttemptsException | Class was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\AttributeAdapter | Class was added. | -| Magento\Deploy\Package\Package | Class was added. | -| Magento\Deploy\Package\PackageFile | Class was added. | -| Magento\Customer\Setup\CustomerSetup | Class was added. | -| Magento\Customer\Model\Context | Class was added. | -| Magento\Customer\Model\CustomerRegistry | Class was added. | -| Magento\Customer\Model\Url | Class was added. | -| Magento\Customer\Model\Metadata\FormFactory | Class was added. | -| Magento\Customer\Controller\RegistryConstants | Class was added. | -| Magento\Customer\Controller\Adminhtml\Index | Class was added. | -| Magento\Customer\Block\Adminhtml\Edit\GenericButton | Class was added. | -| Magento\Config\Block\System\Config\Form\Fieldset\Factory | Class was added. | -| Magento\Config\Block\System\Config\Form\Field\Factory | Class was added. | -| Magento\Cms\Model\Template\FilterProvider | Class was added. | -| Magento\Checkout\Model\Type\Onepage | Class was added. | -| Magento\Checkout\Controller\Cart | Class was added. | -| Magento\Checkout\Api\Exception\PaymentProcessingRateLimitExceededException | Class was added. | -| Magento\Catalog\Pricing\Price\FinalPrice | Class was added. | -| Magento\Catalog\Model\Config | Class was added. | +| What changed | How it changed | +| ----------------------------------------------------------------------------- | ---------------- | +| Magento\Analytics\ReportXml\DB\SelectBuilder | Class was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\SearchResult | Class was added. | +| Magento\Catalog\Block\Adminhtml\Product\Edit\Button\Generic | Class was added. | +| Magento\Catalog\Block\Product\ImageFactory | Class was added. | +| Magento\Catalog\Controller\Adminhtml\Product | Class was added. | +| Magento\Catalog\Model\Config | Class was added. | +| Magento\Catalog\Model\Layer\Filter\Item | Class was added. | +| Magento\Catalog\Model\Layer\Resolver | Class was added. | +| Magento\Catalog\Model\Product\Type\Price\Factory | Class was added. | | Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\IndexTableStructure | Class was added. | -| Magento\Catalog\Model\Product\Type\Price\Factory | Class was added. | -| Magento\Catalog\Model\Layer\Resolver | Class was added. | -| Magento\Catalog\Model\Layer\Filter\Item | Class was added. | -| Magento\Catalog\Controller\Adminhtml\Product | Class was added. | -| Magento\Catalog\Block\Product\ImageFactory | Class was added. | -| Magento\Catalog\Block\Adminhtml\Product\Edit\Button\Generic | Class was added. | -| Magento\CatalogGraphQl\Model\Resolver\Products\SearchResult | Class was added. | -| Magento\Analytics\ReportXml\DB\SelectBuilder | Class was added. | -| Magento\Framework\AclFactory | Class was added. | -| Magento\Framework\EventFactory | Class was added. | -| Magento\Framework\Url | Class was added. | -| Magento\Framework\UrlFactory | Class was added. | -| Magento\Framework\ValidatorFactory | Class was added. | -| Magento\Framework\Webapi\Exception | Class was added. | -| Magento\Framework\Webapi\Rest\Request | Class was added. | -| Magento\Framework\View\Asset | Class was added. | -| Magento\Framework\View\LayoutFactory | Class was added. | -| Magento\Framework\View\PageLayout\Config | Class was added. | -| Magento\Framework\View\Page\ConfigFactory | Class was added. | -| Magento\Framework\View\Layout\Reader\ContextFactory | Class was added. | -| Magento\Framework\View\Layout\Generator\ContextFactory | Class was added. | -| Magento\Framework\View\Helper\SecureHtmlRender\EventHandlerData | Class was added. | -| Magento\Framework\View\Helper\SecureHtmlRender\TagData | Class was added. | -| Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider | Class was added. | -| Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult | Class was added. | -| Magento\Framework\View\Element\Html\Select | Class was added. | -| Magento\Framework\View\Asset\FileFactory | Class was added. | -| Magento\Framework\View\Asset\File\FallbackContextFactory | Class was added. | -| Magento\Framework\Url\Helper\Data | Class was added. | -| Magento\Framework\Setup\Declaration\Schema\ElementHistory | Class was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Schema | Class was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Table | Class was added. | -| Magento\Framework\Setup\Declaration\Schema\Diff\DiffFactory | Class was added. | -| Magento\Framework\Setup\Declaration\Schema\Db\StatementAggregator | Class was added. | -| Magento\Framework\Session\Config | Class was added. | -| Magento\Framework\Session\SessionManager | Class was added. | -| Magento\Framework\Profiler\Driver\Standard\Stat | Class was added. | -| Magento\Framework\Module\Dir | Class was added. | -| Magento\Framework\Module\Manager | Class was added. | -| Magento\Framework\Module\Setup\MigrationFactory | Class was added. | -| Magento\Framework\Message\CollectionFactory | Class was added. | -| Magento\Framework\Mail\Address | Class was added. | -| Magento\Framework\Mail\TransportInterfaceFactory | Class was added. | -| Magento\Framework\Logger\Handler\Base | Class was added. | -| Magento\Framework\Image\AdapterFactory | Class was added. | -| Magento\Framework\Image\Adapter\AbstractAdapter | Class was added. | -| Magento\Framework\HTTP\PhpEnvironment\RemoteAddress | Class was added. | -| Magento\Framework\HTTP\PhpEnvironment\Request | Class was added. | -| Magento\Framework\HTTP\Client\Curl | Class was added. | -| Magento\Framework\HTTP\AsyncClient\Request | Class was added. | -| Magento\Framework\HTTP\AsyncClient\Response | Class was added. | -| Magento\Framework\HTTP\Adapter\Curl | Class was added. | -| Magento\Framework\GraphQl\Schema | Class was added. | -| Magento\Framework\GraphQl\Schema\Type\ResolveInfo | Class was added. | -| Magento\Framework\GraphQl\Query\Resolver\BatchResponse | Class was added. | -| Magento\Framework\GraphQl\Query\Resolver\Value | Class was added. | -| Magento\Framework\GraphQl\Exception\GraphQlAuthenticationException | Class was added. | -| Magento\Framework\GraphQl\Exception\GraphQlAuthorizationException | Class was added. | -| Magento\Framework\GraphQl\Exception\GraphQlInputException | Class was added. | -| Magento\Framework\GraphQl\Exception\GraphQlNoSuchEntityException | Class was added. | -| Magento\Framework\GraphQl\Config\Element\Field | Class was added. | -| Magento\Framework\Filesystem\DirectoryList | Class was added. | -| Magento\Framework\Filesystem\Io\File | Class was added. | -| Magento\Framework\Filesystem\Directory\ReadFactory | Class was added. | -| Magento\Framework\File\Csv | Class was added. | -| Magento\Framework\File\UploaderFactory | Class was added. | -| Magento\Framework\Event\ObserverFactory | Class was added. | -| Magento\Framework\DataObject\Factory | Class was added. | -| Magento\Framework\Data\FormFactory | Class was added. | -| Magento\Framework\Data\TreeFactory | Class was added. | -| Magento\Framework\Data\Tree\Dbp | Class was added. | -| Magento\Framework\Data\Tree\NodeFactory | Class was added. | -| Magento\Framework\Data\Form\Element\Factory | Class was added. | -| Magento\Framework\Data\Form\Element\Image | Class was added. | -| Magento\Framework\DB\Helper | Class was added. | -| Magento\Framework\DB\Transaction | Class was added. | -| Magento\Framework\DB\Helper\AbstractHelper | Class was added. | -| Magento\Framework\DB\Ddl\TriggerFactory | Class was added. | -| Magento\Framework\DB\Adapter\Pdo\MysqlFactory | Class was added. | -| Magento\Framework\Convert\DataObject | Class was added. | -| Magento\Framework\Controller\Result\Forward | Class was added. | -| Magento\Framework\Controller\Result\JsonFactory | Class was added. | -| Magento\Framework\Controller\Result\Raw | Class was added. | -| Magento\Framework\Console\Cli | Class was added. | -| Magento\Framework\Config\ViewFactory | Class was added. | -| Magento\Framework\Config\Data\ConfigDataFactory | Class was added. | -| Magento\Framework\App\Area | Class was added. | -| Magento\Framework\App\Response\Http | Class was added. | -| Magento\Framework\App\Response\Http\FileFactory | Class was added. | -| Magento\Framework\App\Request\Http | Class was added. | -| Magento\Framework\App\Request\InvalidRequestException | Class was added. | -| Magento\Framework\App\Http\Context | Class was added. | -| Magento\Framework\App\Filesystem\DirectoryList | Class was added. | -| Magento\Framework\App\Config\ValueFactory | Class was added. | -| Magento\Framework\App\Cache\Type\Config | Class was added. | -| Magento\Framework\Api\AbstractSimpleObject | Class was added. | -| Magento\Framework\Api\SearchCriteriaBuilder | Class was added. | -| Magento\Framework\Api\Search\DocumentFactory | Class was added. | -| Magento\Framework\Api\Search\SearchCriteriaFactory | Class was added. | -| Magento\Framework\Api\ExtensionAttribute\JoinData | Class was added. | -| Magento\Framework\Api\ExtensionAttribute\JoinDataInterfaceFactory | Class was added. | -| Magento\Framework\Acl\AclResourceFactory | Class was added. | -| Magento\Framework\Amqp\ConfigFactory | Class was added. | +| Magento\Catalog\Pricing\Price\FinalPrice | Class was added. | +| Magento\Checkout\Api\Exception\PaymentProcessingRateLimitExceededException | Class was added. | +| Magento\Checkout\Controller\Cart | Class was added. | +| Magento\Checkout\Model\Type\Onepage | Class was added. | +| Magento\Cms\Model\Template\FilterProvider | Class was added. | +| Magento\Config\Block\System\Config\Form\Field\Factory | Class was added. | +| Magento\Config\Block\System\Config\Form\Fieldset\Factory | Class was added. | +| Magento\Customer\Block\Adminhtml\Edit\GenericButton | Class was added. | +| Magento\Customer\Controller\Adminhtml\Index | Class was added. | +| Magento\Customer\Controller\RegistryConstants | Class was added. | +| Magento\Customer\Model\Context | Class was added. | +| Magento\Customer\Model\CustomerRegistry | Class was added. | +| Magento\Customer\Model\Metadata\FormFactory | Class was added. | +| Magento\Customer\Model\Url | Class was added. | +| Magento\Customer\Setup\CustomerSetup | Class was added. | +| Magento\Deploy\Package\Package | Class was added. | +| Magento\Deploy\Package\PackageFile | Class was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\AttributeAdapter | Class was added. | +| Magento\Framework\AclFactory | Class was added. | +| Magento\Framework\Acl\AclResourceFactory | Class was added. | +| Magento\Framework\Amqp\ConfigFactory | Class was added. | +| Magento\Framework\Api\AbstractSimpleObject | Class was added. | +| Magento\Framework\Api\ExtensionAttribute\JoinData | Class was added. | +| Magento\Framework\Api\ExtensionAttribute\JoinDataInterfaceFactory | Class was added. | +| Magento\Framework\Api\SearchCriteriaBuilder | Class was added. | +| Magento\Framework\Api\Search\DocumentFactory | Class was added. | +| Magento\Framework\Api\Search\SearchCriteriaFactory | Class was added. | +| Magento\Framework\App\Area | Class was added. | +| Magento\Framework\App\Cache\Type\Config | Class was added. | +| Magento\Framework\App\Config\ValueFactory | Class was added. | +| Magento\Framework\App\Filesystem\DirectoryList | Class was added. | +| Magento\Framework\App\Http\Context | Class was added. | +| Magento\Framework\App\Request\Http | Class was added. | +| Magento\Framework\App\Request\InvalidRequestException | Class was added. | +| Magento\Framework\App\Response\Http | Class was added. | +| Magento\Framework\App\Response\Http\FileFactory | Class was added. | +| Magento\Framework\Config\Data\ConfigDataFactory | Class was added. | +| Magento\Framework\Config\ViewFactory | Class was added. | +| Magento\Framework\Console\Cli | Class was added. | +| Magento\Framework\Controller\Result\Forward | Class was added. | +| Magento\Framework\Controller\Result\JsonFactory | Class was added. | +| Magento\Framework\Controller\Result\Raw | Class was added. | +| Magento\Framework\Convert\DataObject | Class was added. | +| Magento\Framework\DB\Adapter\Pdo\MysqlFactory | Class was added. | +| Magento\Framework\DB\Ddl\TriggerFactory | Class was added. | +| Magento\Framework\DB\Helper | Class was added. | +| Magento\Framework\DB\Helper\AbstractHelper | Class was added. | +| Magento\Framework\DB\Transaction | Class was added. | +| Magento\Framework\DataObject\Factory | Class was added. | +| Magento\Framework\Data\FormFactory | Class was added. | +| Magento\Framework\Data\Form\Element\Factory | Class was added. | +| Magento\Framework\Data\Form\Element\Image | Class was added. | +| Magento\Framework\Data\TreeFactory | Class was added. | +| Magento\Framework\Data\Tree\Dbp | Class was added. | +| Magento\Framework\Data\Tree\NodeFactory | Class was added. | +| Magento\Framework\EventFactory | Class was added. | +| Magento\Framework\Event\ObserverFactory | Class was added. | +| Magento\Framework\File\Csv | Class was added. | +| Magento\Framework\File\UploaderFactory | Class was added. | +| Magento\Framework\Filesystem\DirectoryList | Class was added. | +| Magento\Framework\Filesystem\Directory\ReadFactory | Class was added. | +| Magento\Framework\Filesystem\Io\File | Class was added. | +| Magento\Framework\GraphQl\Config\Element\Field | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlAuthenticationException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlAuthorizationException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlInputException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlNoSuchEntityException | Class was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchResponse | Class was added. | +| Magento\Framework\GraphQl\Query\Resolver\Value | Class was added. | +| Magento\Framework\GraphQl\Schema | Class was added. | +| Magento\Framework\GraphQl\Schema\Type\ResolveInfo | Class was added. | +| Magento\Framework\HTTP\Adapter\Curl | Class was added. | +| Magento\Framework\HTTP\AsyncClient\Request | Class was added. | +| Magento\Framework\HTTP\AsyncClient\Response | Class was added. | +| Magento\Framework\HTTP\Client\Curl | Class was added. | +| Magento\Framework\HTTP\PhpEnvironment\RemoteAddress | Class was added. | +| Magento\Framework\HTTP\PhpEnvironment\Request | Class was added. | +| Magento\Framework\Image\AdapterFactory | Class was added. | +| Magento\Framework\Image\Adapter\AbstractAdapter | Class was added. | +| Magento\Framework\Logger\Handler\Base | Class was added. | +| Magento\Framework\Mail\Address | Class was added. | +| Magento\Framework\Mail\TransportInterfaceFactory | Class was added. | +| Magento\Framework\Message\CollectionFactory | Class was added. | +| Magento\Framework\Module\Dir | Class was added. | +| Magento\Framework\Module\Manager | Class was added. | +| Magento\Framework\Module\Setup\MigrationFactory | Class was added. | +| Magento\Framework\Profiler\Driver\Standard\Stat | Class was added. | +| Magento\Framework\Session\Config | Class was added. | +| Magento\Framework\Session\SessionManager | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\StatementAggregator | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Diff\DiffFactory | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Schema | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Table | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\ElementHistory | Class was added. | +| Magento\Framework\Url | Class was added. | +| Magento\Framework\UrlFactory | Class was added. | +| Magento\Framework\Url\Helper\Data | Class was added. | +| Magento\Framework\ValidatorFactory | Class was added. | +| Magento\Framework\View\Asset | Class was added. | +| Magento\Framework\View\Asset\FileFactory | Class was added. | +| Magento\Framework\View\Asset\File\FallbackContextFactory | Class was added. | +| Magento\Framework\View\Element\Html\Select | Class was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider | Class was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult | Class was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\EventHandlerData | Class was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\TagData | Class was added. | +| Magento\Framework\View\LayoutFactory | Class was added. | +| Magento\Framework\View\Layout\Generator\ContextFactory | Class was added. | +| Magento\Framework\View\Layout\Reader\ContextFactory | Class was added. | +| Magento\Framework\View\PageLayout\Config | Class was added. | +| Magento\Framework\View\Page\ConfigFactory | Class was added. | +| Magento\Framework\Webapi\Exception | Class was added. | +| Magento\Framework\Webapi\Rest\Request | Class was added. | +| Magento\GiftCardAccount\Api\Exception\TooManyAttemptsException | Class was added. | +| Magento\ImportExport\Model\Export\Factory | Class was added. | +| Magento\Indexer\Model\DimensionModes | Class was added. | +| Magento\NegotiableQuote\Model\Validator\ValidatorResult | Class was added. | +| Magento\Payment\Gateway\Config\Config | Class was added. | +| Magento\Paypal\Model\Billing\AbstractAgreement | Class was added. | +| Magento\Quote\Model\Cart\Data\CartItem | Class was added. | +| Magento\Quote\Model\Quote\Address\RateCollectorInterfaceFactory | Class was added. | +| Magento\Quote\Model\Quote\Item\CartItemOptionsProcessor | Class was added. | +| Magento\Quote\Model\Quote\Item\Option | Class was added. | +| Magento\Quote\Setup\QuoteSetup | Class was added. | +| Magento\SalesRule\Api\Exception\CodeRequestLimitException | Class was added. | +| Magento\SalesRule\Model\Validator | Class was added. | +| Magento\Sales\Controller\Adminhtml\Order | Class was added. | +| Magento\Sales\Model\Order\CreditmemoFactory | Class was added. | +| Magento\Sales\Model\Order\Email\Sender\InvoiceSender | Class was added. | +| Magento\Sales\Model\Order\Email\Sender\OrderSender | Class was added. | +| Magento\Sales\Model\Order\Pdf\Total\DefaultTotal | Class was added. | +| Magento\Sales\Model\ResourceModel\Order\CollectionFactory | Class was added. | +| Magento\Sales\Model\ResourceModel\Order\Collection\Factory | Class was added. | +| Magento\Sales\Model\Service\InvoiceService | Class was added. | +| Magento\Sales\Setup\SalesSetup | Class was added. | +| Magento\ScheduledImportExport\Model\Scheduled\Operation | Class was added. | +| Magento\Store\Ui\Component\Listing\Column\Store\Options | Class was added. | +| Magento\TargetRule\Block\Product\AbstractProduct | Class was added. | +| Magento\Ui\Component\Control\Container | Class was added. | +| Magento\Ui\Component\Form\Fieldset\Factory | Class was added. | +| Magento\VisualMerchandiser\Model\Rules\Factory | Class was added. | +| Magento\VisualMerchandiser\Model\Sorting\Factory | Class was added. | +| Magento\Wishlist\Model\Wishlist\Data\WishlistItem | Class was added. | #### Interface API membership changes {#b2b-244-245-interface-api-membership} -| What changed | How it changed | -| --- | --- | -| Magento\Wishlist\Model\AuthenticationStateInterface | Interface was added. | -| Magento\Wishlist\Model\Wishlist\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | -| Magento\Wishlist\Model\ResourceModel\Item\Product\CollectionBuilderInterface | Interface was added. | -| Magento\Wishlist\Controller\IndexInterface | Interface was added. | -| Magento\Wishlist\Controller\WishlistProviderInterface | Interface was added. | -| Magento\Widget\Block\BlockInterface | Interface was added. | -| Magento\Webapi\Controller\Rest\RequestProcessorInterface | Interface was added. | -| Magento\VisualMerchandiser\Api\RuleFactoryPoolInterface | Interface was added. | -| Magento\VersionsCms\Model\CurrentNodeResolverInterface | Interface was added. | -| Magento\VersionsCms\Model\Hierarchy\ConfigInterface | Interface was added. | -| Magento\Vault\Block\Customer\IconInterface | Interface was added. | -| Magento\User\Model\Spi\NotificationExceptionInterface | Interface was added. | -| Magento\User\Model\Spi\NotificatorInterface | Interface was added. | -| Magento\UrlRewriteGraphQl\Model\Resolver\UrlRewrite\CustomUrlLocatorInterface | Interface was added. | -| Magento\Ui\Model\UrlInput\ConfigInterface | Interface was added. | -| Magento\Ui\Model\ColorPicker\ModeInterface | Interface was added. | -| Magento\Ui\DataProvider\AddFieldToCollectionInterface | Interface was added. | -| Magento\Ui\DataProvider\AddFilterToCollectionInterface | Interface was added. | -| Magento\Ui\DataProvider\Modifier\PoolInterface | Interface was added. | -| Magento\Ui\DataProvider\Mapper\MapperInterface | Interface was added. | -| Magento\Ui\Controller\UiActionInterface | Interface was added. | -| Magento\Ui\Config\ConverterInterface | Interface was added. | -| Magento\Ui\Config\Argument\ParserInterface | Interface was added. | -| Magento\Ui\Component\Wysiwyg\ConfigInterface | Interface was added. | -| Magento\Ui\Component\Layout\Tabs\TabInterface | Interface was added. | -| Magento\Ui\Component\Form\Element\DataType\DataTypeInterface | Interface was added. | -| Magento\Theme\Model\Theme\StoreThemesResolverInterface | Interface was added. | -| Magento\Theme\Model\Design\Config\MetadataProviderInterface | Interface was added. | -| Magento\Tax\Model\TaxClass\Type\TypeInterface | Interface was added. | -| Magento\Tax\Model\System\Message\NotificationInterface | Interface was added. | -| Magento\Tax\Api\TaxAddressManagerInterface | Interface was added. | -| Magento\Swat\Api\Data\JwtInterface | Interface was added. | -| Magento\Swat\Api\Data\SwatKeyPairInterface | Interface was added. | -| Magento\Support\Model\Report\ConfigInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcherInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcher\ContextInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcher\RedirectDataInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcher\RedirectDataPostprocessorInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcher\RedirectDataPreprocessorInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcher\RedirectDataSerializerInterface | Interface was added. | -| Magento\Store\Model\StoreResolver\ReaderInterface | Interface was added. | -| Magento\Store\Model\Config\Importer\Processor\ProcessorInterface | Interface was added. | -| Magento\Staging\Ui\Component\Listing\Column\Entity\UrlProviderInterface | Interface was added. | -| Magento\Staging\Model\StagingApplierInterface | Interface was added. | -| Magento\Staging\Model\VersionHistoryInterface | Interface was added. | -| Magento\Staging\Model\Update\IncludesInterface | Interface was added. | -| Magento\Staging\Model\Update\Grid\ActionDataProviderInterface | Interface was added. | -| Magento\Staging\Model\Operation\Update\UpdateProcessorInterface | Interface was added. | -| Magento\Staging\Model\Entity\BuilderInterface | Interface was added. | -| Magento\Staging\Model\Entity\HydratorInterface | Interface was added. | -| Magento\Staging\Model\Entity\PersisterInterface | Interface was added. | -| Magento\Staging\Model\Entity\RemoverInterface | Interface was added. | -| Magento\Staging\Model\Entity\RetrieverInterface | Interface was added. | -| Magento\Staging\Model\Entity\Update\Action\TransactionExecutorInterface | Interface was added. | -| Magento\Staging\Block\Adminhtml\Update\Entity\EntityProviderInterface | Interface was added. | -| Magento\Staging\Block\Adminhtml\Update\Entity\StoreIdProviderInterface | Interface was added. | -| Magento\Shipping\Model\Carrier\Source\GenericInterface | Interface was added. | -| Magento\SharedCatalog\Model\Configure\Category\Tree\RendererInterface | Interface was added. | -| Magento\SharedCatalog\Api\SharedCatalogDuplicationInterface | Interface was added. | -| Magento\SharedCatalog\Api\Data\PermissionInterface | Interface was added. | -| Magento\Security\Api\Data\UserExpirationInterface | Interface was added. | -| Magento\Search\Setup\InstallConfigInterface | Interface was added. | -| Magento\Search\Model\SearchEngine\ValidatorInterface | Interface was added. | -| Magento\ScheduledImportExport\Model\Scheduled\Operation\OperationInterface | Interface was added. | -| Magento\Sales\Model\ValidatorInterface | Interface was added. | -| Magento\Sales\Model\Spi\CreditmemoCommentResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\CreditmemoItemResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\CreditmemoResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\InvoiceCommentResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\InvoiceItemResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\InvoiceResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\OrderAddressResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\OrderItemResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\OrderPaymentResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\OrderResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\OrderStatusHistoryResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\ShipmentCommentResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\ShipmentItemResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\ShipmentResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\ShipmentTrackResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\TransactionResourceInterface | Interface was added. | -| Magento\Sales\Model\ResourceModel\Provider\NotSyncedDataProviderInterface | Interface was added. | -| Magento\Sales\Model\ResourceModel\Order\CollectionFactoryInterface | Interface was added. | -| Magento\Sales\Model\Order\OrderValidatorInterface | Interface was added. | -| Magento\Sales\Model\Order\Shipment\SenderInterface | Interface was added. | -| Magento\Sales\Model\Order\Shipment\ShipmentValidatorInterface | Interface was added. | -| Magento\Sales\Model\Order\Payment\Transaction\BuilderInterface | Interface was added. | -| Magento\Sales\Model\Order\Payment\Transaction\ManagerInterface | Interface was added. | -| Magento\Sales\Model\Order\Payment\State\CommandInterface | Interface was added. | -| Magento\Sales\Model\Order\Invoice\InvoiceValidatorInterface | Interface was added. | -| Magento\Sales\Model\Order\Invoice\SenderInterface | Interface was added. | -| Magento\Sales\Model\Order\Email\Container\IdentityInterface | Interface was added. | -| Magento\Sales\Model\Order\Creditmemo\CreditmemoValidatorInterface | Interface was added. | -| Magento\Sales\Model\Order\Creditmemo\ItemCreationValidatorInterface | Interface was added. | -| Magento\Sales\Model\Order\Creditmemo\SenderInterface | Interface was added. | -| Magento\Sales\Controller\OrderInterface | Interface was added. | -| Magento\Sales\Controller\AbstractController\OrderLoaderInterface | Interface was added. | -| Magento\Sales\Controller\AbstractController\OrderViewAuthorizationInterface | Interface was added. | -| Magento\Sales\Api\OrderCustomerDelegateInterface | Interface was added. | -| Magento\Sales\Api\PaymentFailuresInterface | Interface was added. | -| Magento\SalesRule\Model\Spi\CodeLimitManagerInterface | Interface was added. | -| Magento\SalesRule\Model\Spi\QuoteResetAppliedRulesInterface | Interface was added. | -| Magento\SalesRule\Model\Spi\RuleQuoteRecollectTotalsInterface | Interface was added. | -| Magento\SalesRule\Api\Data\DiscountDataInterface | Interface was added. | -| Magento\SalesRule\Api\Data\RuleDiscountInterface | Interface was added. | -| Magento\SalesGraphQl\Model\Shipment\Item\FormatterInterface | Interface was added. | -| Magento\Rma\Model\Spi\CommentResourceInterface | Interface was added. | -| Magento\Rma\Model\Spi\RmaResourceInterface | Interface was added. | -| Magento\Rma\Model\Spi\TrackResourceInterface | Interface was added. | -| Magento\Reward\Observer\PlaceOrder\RestrictionInterface | Interface was added. | -| Magento\RewardGraphQl\Model\Formatter\Customer\FormatterInterface | Interface was added. | -| Magento\RequisitionList\Model\Checker\ProductQtyChangeAvailabilityInterface | Interface was added. | -| Magento\RemoteStorage\FilesystemInterface | Interface was added. | -| Magento\RemoteStorage\Driver\DriverFactoryInterface | Interface was added. | -| Magento\RemoteStorage\Driver\RemoteDriverInterface | Interface was added. | -| Magento\ReleaseNotification\Model\ContentProviderInterface | Interface was added. | -| Magento\Quote\Model\ValidationRules\QuoteValidationRuleInterface | Interface was added. | -| Magento\Quote\Model\Quote\Item\CartItemProcessorInterface | Interface was added. | -| Magento\Quote\Model\Quote\Address\CustomAttributeListInterface | Interface was added. | -| Magento\Quote\Model\Quote\Address\Total\CollectorInterface | Interface was added. | -| Magento\Quote\Model\Quote\Address\Total\ReaderInterface | Interface was added. | -| Magento\Quote\Model\Product\QuoteItemsCleanerInterface | Interface was added. | -| Magento\Quote\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | -| Magento\Quote\Api\ChangeQuoteControlInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\CartItem\DataProvider\CustomizableOptionValueInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\CartItem\DataProvider\Processor\ItemDataProcessorInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\Cart\SetShippingAddressesOnCartInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\Cart\SetShippingMethodsOnCartInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\Cart\Payment\AdditionalDataProviderInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | -| Magento\PurchaseOrder\Model\CommentRepositoryInterface | Interface was added. | -| Magento\PurchaseOrder\Model\ProcessorInterface | Interface was added. | -| Magento\PurchaseOrder\Model\PurchaseOrderLogRepositoryInterface | Interface was added. | -| Magento\PurchaseOrder\Model\Validator\ValidatorInterface | Interface was added. | -| Magento\PurchaseOrder\Model\Validator\ActionReady\ValidatorInterface | Interface was added. | -| Magento\PurchaseOrder\Model\PurchaseOrder\LogManagementInterface | Interface was added. | -| Magento\PurchaseOrder\Model\Processor\ApprovalProcessorInterface | Interface was added. | -| Magento\PurchaseOrder\Model\Payment\DeferredPaymentStrategyInterface | Interface was added. | -| Magento\PurchaseOrder\Model\Notification\ActionNotificationInterface | Interface was added. | -| Magento\PurchaseOrder\Model\Notification\ContentSourceInterface | Interface was added. | -| Magento\PurchaseOrder\Model\Notification\NotifierInterface | Interface was added. | -| Magento\PurchaseOrder\Model\Notification\SenderInterface | Interface was added. | -| Magento\PurchaseOrder\Model\Notification\Config\ProviderInterface | Interface was added. | -| Magento\PurchaseOrder\Model\Notification\Action\Recipient\ResolverInterface | Interface was added. | -| Magento\PurchaseOrder\Model\Customer\Authorization\ActionInterface | Interface was added. | -| Magento\PurchaseOrder\Model\Company\ConfigInterface | Interface was added. | -| Magento\PurchaseOrder\Model\Company\Config\RepositoryInterface | Interface was added. | -| Magento\PurchaseOrder\Api\PurchaseOrderManagementInterface | Interface was added. | -| Magento\PurchaseOrder\Api\PurchaseOrderRepositoryInterface | Interface was added. | -| Magento\PurchaseOrder\Api\Data\PurchaseOrderInterface | Interface was added. | -| Magento\PurchaseOrder\Api\Data\PurchaseOrderSearchResultsInterface | Interface was added. | -| Magento\PurchaseOrderRule\Model\Rule\ConditionInterface | Interface was added. | -| Magento\PurchaseOrderRule\Model\Rule\ValidateInterface | Interface was added. | -| Magento\PurchaseOrderRule\Api\Data\AppliedRuleApproverSearchResultsInterface | Interface was added. | -| Magento\PurchaseOrderRule\Api\Data\AppliedRuleSearchResultsInterface | Interface was added. | -| Magento\PurchaseOrderRule\Api\Data\RuleSearchResultsInterface | Interface was added. | -| Magento\Paypal\Model\IpnInterface | Interface was added. | -| Magento\Paypal\Model\Payflow\Service\Response\Handler\HandlerInterface | Interface was added. | -| Magento\Paypal\Model\Billing\Agreement\MethodInterface | Interface was added. | -| Magento\Paypal\Helper\Shortcut\ValidatorInterface | Interface was added. | -| Magento\Payment\Model\Method\TransparentInterface | Interface was added. | -| Magento\Payment\Api\Data\PaymentAdditionalInfoInterface | Interface was added. | -| Magento\PageCache\Model\Spi\PageCacheTagsPreprocessorInterface | Interface was added. | -| Magento\OrderHistorySearch\Model\Filter\FilterInterface | Interface was added. | -| Magento\Newsletter\Model\SubscriptionManagerInterface | Interface was added. | -| Magento\NegotiableQuote\Model\ProductOptionsProviderInterface | Interface was added. | -| Magento\NegotiableQuote\Model\Validator\ValidatorInterface | Interface was added. | -| Magento\NegotiableQuote\Model\Status\LabelProviderInterface | Interface was added. | -| Magento\NegotiableQuote\Model\Restriction\RestrictionInterface | Interface was added. | -| Magento\NegotiableQuote\Model\ResourceModel\QuoteGridInterface | Interface was added. | -| Magento\NegotiableQuote\Model\Quote\ViewAccessInterface | Interface was added. | -| Magento\NegotiableQuote\Model\Attachment\DownloadPermission\AllowInterface | Interface was added. | -| Magento\NegotiableQuote\Api\NegotiableCartRepositoryInterface | Interface was added. | -| Magento\MultipleWishlist\Model\Search\Strategy\StrategyInterface | Interface was added. | -| Magento\MultipleWishlist\Controller\IndexInterface | Interface was added. | -| Magento\Msrp\Pricing\MsrpPriceCalculatorInterface | Interface was added. | -| Magento\MediaGalleryUiApi\Api\ConfigInterface | Interface was added. | -| Magento\MediaGallerySynchronizationApi\Model\CreateAssetFromFileInterface | Interface was added. | -| Magento\MediaGallerySynchronizationApi\Model\FetchBatchesInterface | Interface was added. | -| Magento\MediaGallerySynchronizationApi\Model\ImportFilesInterface | Interface was added. | -| Magento\MediaGallerySynchronizationApi\Api\SynchronizeFilesInterface | Interface was added. | -| Magento\MediaGallerySynchronizationApi\Api\SynchronizeInterface | Interface was added. | -| Magento\MediaGalleryRenditionsApi\Api\GenerateRenditionsInterface | Interface was added. | -| Magento\MediaGalleryRenditionsApi\Api\GetRenditionPathInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\FileInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\ReadFileInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\ReadMetadataInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\SegmentInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\WriteFileInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\WriteMetadataInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Api\AddMetadataInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Api\ExtractMetadataInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Api\Data\MetadataInterface | Interface was added. | -| Magento\MediaGalleryApi\Model\ExcludedPatternsConfigInterface | Interface was added. | -| Magento\MediaGalleryApi\Api\SearchAssetsInterface | Interface was added. | -| Magento\MediaContentSynchronizationApi\Model\GetEntitiesInterface | Interface was added. | -| Magento\MediaContentSynchronizationApi\Api\SynchronizeIdentitiesInterface | Interface was added. | -| Magento\MediaContentSynchronizationApi\Api\SynchronizeInterface | Interface was added. | -| Magento\MediaContentApi\Model\GetAssetIdsByContentFieldInterface | Interface was added. | -| Magento\MediaContentApi\Model\SearchPatternConfigInterface | Interface was added. | -| Magento\MediaContentApi\Api\GetAssetIdsByContentFieldInterface | Interface was added. | -| Magento\MediaContentApi\Api\UpdateContentAssetLinksInterface | Interface was added. | -| Magento\LoginAsCustomerAssistance\Api\ConfigInterface | Interface was added. | -| Magento\LoginAsCustomerAssistance\Api\IsAssistanceEnabledInterface | Interface was added. | -| Magento\LoginAsCustomerAssistance\Api\SetAssistanceInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerAdminIdInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerCustomerIdInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\IsLoginAsCustomerEnabledForCustomerInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerAdminIdInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerCustomerIdInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\Data\IsLoginAsCustomerEnabledForCustomerResultInterface | Interface was added. | -| Magento\Invitation\Controller\Customer\AccountInterface | Interface was added. | -| Magento\InventoryIndexer\Indexer\SelectBuilderInterface | Interface was added. | -| Magento\Integration\Model\Oauth\Token\RequestLog\ReaderInterface | Interface was added. | -| Magento\Integration\Model\Oauth\Token\RequestLog\WriterInterface | Interface was added. | -| Magento\Indexer\Model\ModeSwitcherInterface | Interface was added. | -| Magento\Indexer\Model\Source\DataInterface | Interface was added. | -| Magento\ImportExport\Model\Report\ReportProcessorInterface | Interface was added. | -| Magento\ImportExport\Api\Data\ExtendedExportInfoInterface | Interface was added. | -| Magento\GraphQl\Model\Query\ContextInterface | Interface was added. | -| Magento\GraphQl\Model\Query\ContextParametersInterface | Interface was added. | -| Magento\GraphQl\Model\Query\ContextParametersProcessorInterface | Interface was added. | -| Magento\GraphQl\Controller\HttpHeaderProcessorInterface | Interface was added. | -| Magento\GraphQl\Controller\HttpRequestValidatorInterface | Interface was added. | -| Magento\GiftRegistry\Model\Attribute\ConfigInterface | Interface was added. | -| Magento\GiftCardAccount\Model\Spi\GiftCardAccountManagerInterface | Interface was added. | -| Magento\GiftCardAccount\Model\Spi\GiftCardAccountResourceInterface | Interface was added. | -| Magento\GiftCardAccount\Model\Spi\UsageAttemptFactoryInterface | Interface was added. | -| Magento\GiftCardAccount\Model\Spi\UsageAttemptsManagerInterface | Interface was added. | -| Magento\GiftCardAccount\Model\Spi\Data\UsageAttemptInterface | Interface was added. | -| Magento\GiftCardAccount\Api\GiftCardRedeemerInterface | Interface was added. | -| Magento\Elasticsearch\SearchAdapter\QueryAwareInterface | Interface was added. | -| Magento\Elasticsearch\SearchAdapter\Query\ValueTransformerInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldsMappingPreprocessorInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProviderInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldType\ResolverInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\ResolverInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ConverterInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ResolverInterface | Interface was added. | -| Magento\Eav\Model\ResourceModel\Attribute\DefaultEntityAttributes\ProviderInterface | Interface was added. | -| Magento\Eav\Model\Entity\AttributeLoaderInterface | Interface was added. | -| Magento\Eav\Model\Entity\Setup\PropertyMapperInterface | Interface was added. | -| Magento\Eav\Model\Entity\Attribute\AttributeInterface | Interface was added. | -| Magento\Eav\Model\Entity\Attribute\UniqueValidationInterface | Interface was added. | -| Magento\Eav\Model\Entity\Attribute\Source\SpecificSourceInterface | Interface was added. | -| Magento\Eav\Model\Entity\Attribute\Backend\BackendInterface | Interface was added. | -| Magento\Downloadable\Pricing\Price\LinkPriceInterface | Interface was added. | -| Magento\Downloadable\Api\DomainManagerInterface | Interface was added. | -| Magento\Directory\Model\Country\Postcode\ConfigInterface | Interface was added. | -| Magento\Directory\Model\Country\Postcode\ValidatorInterface | Interface was added. | -| Magento\Deploy\Strategy\StrategyInterface | Interface was added. | -| Magento\Deploy\Source\SourceInterface | Interface was added. | -| Magento\Deploy\Package\BundleInterface | Interface was added. | -| Magento\Deploy\Package\Processor\ProcessorInterface | Interface was added. | -| Magento\Deploy\Console\Command\App\SensitiveConfigSet\CollectorInterface | Interface was added. | -| Magento\Deploy\Collector\CollectorInterface | Interface was added. | -| Magento\Customer\Model\Customer\Attribute\Source\GroupSourceLoggedInOnlyInterface | Interface was added. | -| Magento\Customer\CustomerData\JsLayoutDataProviderPoolInterface | Interface was added. | -| Magento\Customer\CustomerData\SectionPoolInterface | Interface was added. | -| Magento\Customer\Controller\AccountInterface | Interface was added. | -| Magento\Customer\Block\Address\Renderer\RendererInterface | Interface was added. | -| Magento\Customer\Api\AccountDelegationInterface | Interface was added. | -| Magento\Customer\Api\SessionCleanerInterface | Interface was added. | -| Magento\CustomerCustomAttributes\Model\Customer\Attribute\ValidatorInterface | Interface was added. | -| Magento\Csp\Model\Policy\SimplePolicyInterface | Interface was added. | -| Magento\Csp\Model\Collector\MergerInterface | Interface was added. | -| Magento\Csp\Model\Collector\Config\PolicyReaderInterface | Interface was added. | -| Magento\Csp\Api\CspAwareActionInterface | Interface was added. | -| Magento\Csp\Api\CspRendererInterface | Interface was added. | -| Magento\Csp\Api\InlineUtilInterface | Interface was added. | -| Magento\Csp\Api\ModeConfigManagerInterface | Interface was added. | -| Magento\Csp\Api\PolicyCollectorInterface | Interface was added. | -| Magento\Csp\Api\PolicyRendererInterface | Interface was added. | -| Magento\Csp\Api\Data\ModeConfiguredInterface | Interface was added. | -| Magento\Csp\Api\Data\PolicyInterface | Interface was added. | -| Magento\Cron\Model\DeadlockRetrierInterface | Interface was added. | -| Magento\ConfigurableProduct\Model\ResourceModel\Attribute\OptionSelectBuilderInterface | Interface was added. | -| Magento\Company\Model\SaveValidatorInterface | Interface was added. | -| Magento\Company\Model\Customer\PermissionInterface | Interface was added. | -| Magento\Company\Api\CompanyUserManagerInterface | Interface was added. | -| Magento\CompanyCredit\Model\HistoryInterface | Interface was added. | -| Magento\CompanyCredit\Model\HistoryRepositoryInterface | Interface was added. | -| Magento\Cms\Ui\Component\AddFilterInterface | Interface was added. | -| Magento\Cms\Model\PageRepository\ValidatorInterface | Interface was added. | -| Magento\Cms\Model\Page\CustomLayoutManagerInterface | Interface was added. | -| Magento\Cms\Model\Page\CustomLayoutRepositoryInterface | Interface was added. | -| Magento\Cms\Model\Page\CustomLayout\Data\CustomLayoutSelectedInterface | Interface was added. | -| Magento\Checkout\CustomerData\ItemPoolInterface | Interface was added. | -| Magento\Checkout\Controller\Express\RedirectLoginInterface | Interface was added. | -| Magento\Checkout\Api\PaymentProcessingRateLimiterInterface | Interface was added. | -| Magento\CheckoutAgreements\Model\AgreementsProviderInterface | Interface was added. | -| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav\WysiwygConfigDataProcessorInterface | Interface was added. | -| Magento\Catalog\Pricing\Price\ConfiguredPriceInterface | Interface was added. | -| Magento\Catalog\Pricing\Price\MinimalPriceCalculatorInterface | Interface was added. | -| Magento\Catalog\Pricing\Price\SpecialPriceInterface | Interface was added. | -| Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderInterface | Interface was added. | -| Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\PriceModifierInterface | Interface was added. | -| Magento\Catalog\Model\ProductOptions\ConfigInterface | Interface was added. | -| Magento\Catalog\Model\ProductLink\CollectionProviderInterface | Interface was added. | -| Magento\Catalog\Model\ProductLink\MapProviderInterface | Interface was added. | -| Magento\Catalog\Model\ProductLink\Data\ListCriteriaInterface | Interface was added. | -| Magento\Catalog\Model\ProductLink\Data\ListResultInterface | Interface was added. | -| Magento\Catalog\Model\ProductLink\Converter\ConverterInterface | Interface was added. | -| Magento\Catalog\Model\Product\Pricing\Renderer\SalableResolverInterface | Interface was added. | -| Magento\Catalog\Model\Product\Media\ConfigInterface | Interface was added. | -| Magento\Catalog\Model\Product\Configuration\Item\Option\OptionInterface | Interface was added. | -| Magento\Catalog\Model\Product\Condition\ConditionInterface | Interface was added. | -| Magento\Catalog\Model\Layer\CollectionFilterInterface | Interface was added. | -| Magento\Catalog\Model\Layer\FilterableAttributeListInterface | Interface was added. | -| Magento\Catalog\Model\Layer\ItemCollectionProviderInterface | Interface was added. | -| Magento\Catalog\Model\Layer\StateKeyInterface | Interface was added. | -| Magento\Catalog\Model\Indexer\Product\Flat\TableDataInterface | Interface was added. | -| Magento\Catalog\Model\Entity\Product\Attribute\Group\AttributeMapperInterface | Interface was added. | -| Magento\Catalog\Model\Config\Source\ProductPriceOptionsInterface | Interface was added. | -| Magento\Catalog\Model\Attribute\LockValidatorInterface | Interface was added. | -| Magento\Catalog\Controller\Product\View\ViewInterface | Interface was added. | -| Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper\HandlerInterface | Interface was added. | -| Magento\Catalog\Block\Product\AwareInterface | Interface was added. | -| Magento\Catalog\Block\Product\ReviewRendererInterface | Interface was added. | -| Magento\CatalogUrlRewrite\Model\Map\DatabaseMapInterface | Interface was added. | -| Magento\CatalogUrlRewrite\Model\Map\HashMapInterface | Interface was added. | -| Magento\CatalogSearch\Model\Search\ItemCollectionProviderInterface | Interface was added. | -| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchCriteriaResolverInterface | Interface was added. | -| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchResultApplierInterface | Interface was added. | -| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\TotalRecordsResolverInterface | Interface was added. | -| Magento\CatalogSearch\Model\Advanced\ProductCollectionPrepareStrategyInterface | Interface was added. | -| Magento\CatalogSearch\Model\Adapter\Aggregation\RequestCheckerInterface | Interface was added. | -| Magento\CatalogRule\Model\Indexer\IndexerTableSwapperInterface | Interface was added. | -| Magento\CatalogImportExport\Model\Export\ProductFilterInterface | Interface was added. | -| Magento\CatalogGraphQl\Model\Resolver\Products\Query\ProductQueryInterface | Interface was added. | -| Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Product\CollectionProcessorInterface | Interface was added. | -| Magento\CatalogGraphQl\Model\Resolver\Product\Price\ProviderInterface | Interface was added. | -| Magento\CatalogGraphQl\Model\Resolver\Categories\DataProvider\Category\CollectionProcessorInterface | Interface was added. | -| Magento\CatalogGraphQl\DataProvider\Product\LayeredNavigation\LayerBuilderInterface | Interface was added. | -| Magento\CardinalCommerce\Model\Response\JwtParserInterface | Interface was added. | -| Magento\CardinalCommerce\Model\Response\JwtPayloadValidatorInterface | Interface was added. | -| Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface | Interface was added. | -| Magento\Backend\Model\Search\Config\Structure\ElementBuilderInterface | Interface was added. | -| Magento\Backend\Model\Image\UploadResizeConfigInterface | Interface was added. | -| Magento\Analytics\ReportXml\DB\Assembler\AssemblerInterface | Interface was added. | -| Magento\Analytics\Model\ExportDataHandlerInterface | Interface was added. | -| Magento\Analytics\Model\ReportWriterInterface | Interface was added. | -| Magento\Analytics\Model\Connector\CommandInterface | Interface was added. | -| Magento\Analytics\Api\LinkProviderInterface | Interface was added. | -| Magento\Analytics\Api\Data\LinkInterface | Interface was added. | -| Magento\AdvancedSearch\Block\SearchDataInterface | Interface was added. | -| Magento\AdvancedRule\Model\Condition\FilterGroupInterface | Interface was added. | -| Magento\AdvancedRule\Model\Condition\FilterInterface | Interface was added. | -| Magento\AdvancedRule\Model\Condition\FilterTextGeneratorInterface | Interface was added. | -| Magento\AdvancedRule\Model\Condition\FilterableConditionInterface | Interface was added. | -| Magento\AdvancedCheckout\Model\AreProductsSalableForRequestedQtyInterface | Interface was added. | -| Magento\Framework\TranslateInterface | Interface was added. | -| Magento\Framework\Webapi\CustomAttributeTypeLocatorInterface | Interface was added. | -| Magento\Framework\Webapi\Rest\Request\DeserializerInterface | Interface was added. | -| Magento\Framework\Webapi\CustomAttribute\PreprocessorInterface | Interface was added. | -| Magento\Framework\Webapi\CustomAttribute\ServiceTypeListInterface | Interface was added. | -| Magento\Framework\View\DesignInterface | Interface was added. | -| Magento\Framework\View\TemplateEngineInterface | Interface was added. | -| Magento\Framework\View\Xsd\Media\TypeDataExtractorInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\ResultInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\AttributeInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CdataInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CommentInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\TextInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Element\ElementInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Directive\DirectiveInterface | Interface was added. | -| Magento\Framework\View\Page\Config\RendererInterface | Interface was added. | -| Magento\Framework\View\Model\PageLayout\Config\BuilderInterface | Interface was added. | -| Magento\Framework\View\Layout\GeneratorInterface | Interface was added. | -| Magento\Framework\View\Layout\LayoutCacheKeyInterface | Interface was added. | -| Magento\Framework\View\Layout\ProcessorInterface | Interface was added. | -| Magento\Framework\View\Layout\ReaderInterface | Interface was added. | -| Magento\Framework\View\Layout\Condition\VisibilityConditionInterface | Interface was added. | -| Magento\Framework\View\Layout\Argument\UpdaterInterface | Interface was added. | -| Magento\Framework\View\Helper\SecureHtmlRender\SecurityProcessorInterface | Interface was added. | -| Magento\Framework\View\File\FileList\CollateInterface | Interface was added. | -| Magento\Framework\View\Element\ComponentVisibilityInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\BlockWrapperInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\ContainerInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\ContextInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\DataSourceInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\JsConfigInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\LayoutInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\ObserverInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\PoolInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\SubjectInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Factory\ComponentFactoryInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\DataProvider\FilterApplierInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Control\ActionPoolInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Control\ControlInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\ContentType\ContentTypeInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Config\DomMergerInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Config\FileCollectorInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Config\UiReaderInterface | Interface was added. | -| Magento\Framework\View\Element\Message\InterpretationStrategyInterface | Interface was added. | -| Magento\Framework\View\Element\Message\Renderer\PoolInterface | Interface was added. | -| Magento\Framework\View\Element\Message\Renderer\RendererInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\CustomizationInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\FileInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\ResolverInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\ThemeProviderInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\Image\PathInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\File\CollectionInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\Customization\ConfigInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\Customization\FileAssetInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\Customization\FileInterface | Interface was added. | -| Magento\Framework\View\Design\FileResolution\Fallback\ResolverInterface | Interface was added. | -| Magento\Framework\View\Design\Fallback\Rule\RuleInterface | Interface was added. | -| Magento\Framework\View\Asset\ContentProcessorInterface | Interface was added. | -| Magento\Framework\View\Asset\ContextInterface | Interface was added. | -| Magento\Framework\View\Asset\LockerProcessInterface | Interface was added. | -| Magento\Framework\View\Asset\MergeStrategyInterface | Interface was added. | -| Magento\Framework\View\Asset\MergeableInterface | Interface was added. | -| Magento\Framework\View\Asset\PreProcessor\FilenameResolverInterface | Interface was added. | -| Magento\Framework\Validator\HTML\AttributeValidatorInterface | Interface was added. | -| Magento\Framework\Validator\HTML\TagValidatorInterface | Interface was added. | -| Magento\Framework\Validator\HTML\WYSIWYGValidatorInterface | Interface was added. | -| Magento\Framework\Validator\Constraint\OptionInterface | Interface was added. | -| Magento\Framework\Url\ModifierInterface | Interface was added. | -| Magento\Framework\Url\RouteParamsPreprocessorInterface | Interface was added. | -| Magento\Framework\Translate\Inline\ProviderInterface | Interface was added. | -| Magento\Framework\TestFramework\Unit\Autoloader\GeneratorInterface | Interface was added. | -| Magento\Framework\Setup\ConfigOptionsListInterface | Interface was added. | -| Magento\Framework\Setup\DataCacheInterface | Interface was added. | -| Magento\Framework\Setup\UpToDateValidatorInterface | Interface was added. | -| Magento\Framework\Setup\SchemaListenerHandlers\SchemaListenerHandlerInterface | Interface was added. | -| Magento\Framework\Setup\SchemaListenerDefinition\DefinitionConverterInterface | Interface was added. | -| Magento\Framework\Setup\SampleData\InstallerInterface | Interface was added. | -| Magento\Framework\Setup\SampleData\StateInterface | Interface was added. | -| Magento\Framework\Setup\Patch\DataPatchInterface | Interface was added. | -| Magento\Framework\Setup\Patch\DependentPatchInterface | Interface was added. | -| Magento\Framework\Setup\Patch\NonTransactionableInterface | Interface was added. | -| Magento\Framework\Setup\Patch\PatchInterface | Interface was added. | -| Magento\Framework\Setup\Patch\PatchRevertableInterface | Interface was added. | -| Magento\Framework\Setup\Patch\SchemaPatchInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\OperationInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\SchemaConfigInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\ElementDiffAwareInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\TableElementInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Factories\FactoryInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnDefaultAwareInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnIdentityAwareInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnNullableAwareInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnUnsignedAwareInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Diff\DiffInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Db\DDLTriggerInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Db\DbDefinitionProcessorInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaReaderInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaWriterInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\DataSavior\DataSaviorInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\DataSavior\DumpAccessorInterface | Interface was added. | -| Magento\Framework\Session\SaveHandlerInterface | Interface was added. | -| Magento\Framework\Session\StorageInterface | Interface was added. | -| Magento\Framework\Session\ValidatorInterface | Interface was added. | -| Magento\Framework\Session\Config\ConfigInterface | Interface was added. | -| Magento\Framework\Search\AdapterInterface | Interface was added. | -| Magento\Framework\Search\ResponseInterface | Interface was added. | -| Magento\Framework\Search\SearchEngineInterface | Interface was added. | -| Magento\Framework\Search\SearchEngine\ConfigInterface | Interface was added. | -| Magento\Framework\Search\Request\IndexScopeResolverInterface | Interface was added. | -| Magento\Framework\Search\Request\Aggregation\StatusInterface | Interface was added. | -| Magento\Framework\Search\Dynamic\Algorithm\AlgorithmInterface | Interface was added. | -| Magento\Framework\Search\Adapter\OptionsInterface | Interface was added. | -| Magento\Framework\Search\Adapter\Preprocessor\PreprocessorInterface | Interface was added. | -| Magento\Framework\Search\Adapter\Aggregation\AggregationResolverInterface | Interface was added. | -| Magento\Framework\Profiler\Driver\Standard\OutputInterface | Interface was added. | -| Magento\Framework\ObjectManager\ConfigCacheInterface | Interface was added. | -| Magento\Framework\ObjectManager\ConfigInterface | Interface was added. | -| Magento\Framework\ObjectManager\ConfigLoaderInterface | Interface was added. | -| Magento\Framework\ObjectManager\DefinitionInterface | Interface was added. | -| Magento\Framework\ObjectManager\DynamicConfigInterface | Interface was added. | -| Magento\Framework\ObjectManager\FactoryInterface | Interface was added. | -| Magento\Framework\ObjectManager\NoninterceptableInterface | Interface was added. | -| Magento\Framework\ObjectManager\RelationsInterface | Interface was added. | -| Magento\Framework\Mview\ConfigInterface | Interface was added. | -| Magento\Framework\Mview\ProcessorInterface | Interface was added. | -| Magento\Framework\Mview\ViewInterface | Interface was added. | -| Magento\Framework\Mview\View\ChangelogInterface | Interface was added. | -| Magento\Framework\Mview\View\CollectionInterface | Interface was added. | -| Magento\Framework\Mview\View\StateInterface | Interface was added. | -| Magento\Framework\Mview\View\SubscriptionInterface | Interface was added. | -| Magento\Framework\Mview\View\State\CollectionInterface | Interface was added. | -| Magento\Framework\Module\ModuleListInterface | Interface was added. | -| Magento\Framework\Model\ResourceModel\Type\Db\ConnectionFactoryInterface | Interface was added. | -| Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface | Interface was added. | -| Magento\Framework\Model\EntitySnapshot\AttributeProviderInterface | Interface was added. | -| Magento\Framework\Model\Entity\ScopeInterface | Interface was added. | -| Magento\Framework\Model\Entity\ScopeProviderInterface | Interface was added. | -| Magento\Framework\Message\ExceptionMessageFactoryInterface | Interface was added. | -| Magento\Framework\Mail\EmailMessageInterface | Interface was added. | -| Magento\Framework\Mail\MimeInterface | Interface was added. | -| Magento\Framework\Mail\MimeMessageInterface | Interface was added. | -| Magento\Framework\Mail\MimePartInterface | Interface was added. | -| Magento\Framework\Locale\AvailableLocalesInterface | Interface was added. | -| Magento\Framework\Locale\OptionInterface | Interface was added. | -| Magento\Framework\Interception\ConfigInterface | Interface was added. | -| Magento\Framework\Interception\ConfigLoaderInterface | Interface was added. | -| Magento\Framework\Interception\ConfigWriterInterface | Interface was added. | -| Magento\Framework\Interception\DefinitionInterface | Interface was added. | -| Magento\Framework\Interception\InterceptorInterface | Interface was added. | -| Magento\Framework\Interception\PluginListInterface | Interface was added. | -| Magento\Framework\Interception\ObjectManager\ConfigInterface | Interface was added. | -| Magento\Framework\Indexer\Table\StrategyInterface | Interface was added. | -| Magento\Framework\Indexer\Config\DependencyInfoProviderInterface | Interface was added. | -| Magento\Framework\Image\Adapter\AdapterInterface | Interface was added. | -| Magento\Framework\Image\Adapter\ConfigInterface | Interface was added. | -| Magento\Framework\HTTP\AsyncClientInterface | Interface was added. | -| Magento\Framework\HTTP\AsyncClient\HttpResponseDeferredInterface | Interface was added. | -| Magento\Framework\GraphQlSchemaStitching\GraphQlReader\TypeMetaReaderInterface | Interface was added. | -| Magento\Framework\GraphQl\ConfigInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\SchemaGeneratorInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\TypeInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\InputTypeInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\OutputTypeInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\WrappedTypeInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\Output\ElementMapper\FormatterInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\Enum\DataMapperInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\Entity\MapperInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\ErrorHandlerInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\ResolverInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\BatchRequestItemInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\BatchResolverInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\BatchServiceContractResolverInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\ContextInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\IdentityInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\ResolveRequestInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\TypeResolverInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\Argument\FieldEntityAttributesInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\Argument\SearchCriteria\ArgumentApplierInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\ConfigElementFactoryInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\ConfigElementInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\Element\FieldInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\Element\OutputFieldInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\Element\TypeInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\Element\UnionInterface | Interface was added. | -| Magento\Framework\Filter\DirectiveProcessorInterface | Interface was added. | -| Magento\Framework\Filter\FactoryInterface | Interface was added. | -| Magento\Framework\Filter\VariableResolverInterface | Interface was added. | -| Magento\Framework\Filter\SimpleDirective\ProcessorInterface | Interface was added. | -| Magento\Framework\Filter\FilterManager\ConfigInterface | Interface was added. | -| Magento\Framework\Filter\DirectiveProcessor\FilterInterface | Interface was added. | -| Magento\Framework\Filesystem\DriverPoolInterface | Interface was added. | -| Magento\Framework\Filesystem\File\ReadInterface | Interface was added. | -| Magento\Framework\Filesystem\Directory\PathValidatorInterface | Interface was added. | -| Magento\Framework\Exception\TemporaryStateExceptionInterface | Interface was added. | -| Magento\Framework\Event\ConfigInterface | Interface was added. | -| Magento\Framework\Event\InvokerInterface | Interface was added. | -| Magento\Framework\Event\ManagerInterface | Interface was added. | -| Magento\Framework\Encryption\Adapter\EncryptionAdapterInterface | Interface was added. | -| Magento\Framework\DataObject\IdentityGeneratorInterface | Interface was added. | -| Magento\Framework\DataObject\IdentityInterface | Interface was added. | -| Magento\Framework\DataObject\IdentityValidatorInterface | Interface was added. | -| Magento\Framework\DataObject\KeyValueObjectInterface | Interface was added. | -| Magento\Framework\Data\CollectionDataSourceInterface | Interface was added. | -| Magento\Framework\Data\CollectionModifierInterface | Interface was added. | -| Magento\Framework\Data\SearchResultInterface | Interface was added. | -| Magento\Framework\Data\SearchResultProcessorInterface | Interface was added. | -| Magento\Framework\Data\ValueSourceInterface | Interface was added. | -| Magento\Framework\Data\Collection\EntityFactoryInterface | Interface was added. | -| Magento\Framework\Data\Collection\Db\FetchStrategyInterface | Interface was added. | -| Magento\Framework\DB\LoggerInterface | Interface was added. | -| Magento\Framework\DB\MapperInterface | Interface was added. | -| Magento\Framework\DB\QueryInterface | Interface was added. | -| Magento\Framework\DB\Sql\ExpressionInterface | Interface was added. | -| Magento\Framework\DB\Sequence\SequenceInterface | Interface was added. | -| Magento\Framework\DB\Select\QueryModifierInterface | Interface was added. | -| Magento\Framework\DB\Select\RendererInterface | Interface was added. | -| Magento\Framework\DB\Query\BatchIteratorInterface | Interface was added. | -| Magento\Framework\DB\DataConverter\DataConverterInterface | Interface was added. | -| Magento\Framework\Css\PreProcessor\ErrorHandlerInterface | Interface was added. | -| Magento\Framework\Crontab\CrontabManagerInterface | Interface was added. | -| Magento\Framework\Crontab\TasksProviderInterface | Interface was added. | -| Magento\Framework\Component\ComponentRegistrarInterface | Interface was added. | -| Magento\Framework\Code\ValidatorInterface | Interface was added. | -| Magento\Framework\Code\Reader\ClassReaderInterface | Interface was added. | -| Magento\Framework\Code\Minifier\AdapterInterface | Interface was added. | -| Magento\Framework\Code\Generator\CodeGeneratorInterface | Interface was added. | -| Magento\Framework\Cache\ConfigInterface | Interface was added. | -| Magento\Framework\Cache\StaleCacheNotifierInterface | Interface was added. | -| Magento\Framework\Backup\SourceFileInterface | Interface was added. | -| Magento\Framework\Autoload\AutoloaderInterface | Interface was added. | -| Magento\Framework\Async\CancelableDeferredInterface | Interface was added. | -| Magento\Framework\Async\DeferredInterface | Interface was added. | -| Magento\Framework\App\AreaInterface | Interface was added. | -| Magento\Framework\App\CsrfAwareActionInterface | Interface was added. | -| Magento\Framework\App\DefaultPathInterface | Interface was added. | -| Magento\Framework\App\DesignInterface | Interface was added. | -| Magento\Framework\App\EnvironmentInterface | Interface was added. | -| Magento\Framework\App\ExceptionHandlerInterface | Interface was added. | -| Magento\Framework\App\FeedFactoryInterface | Interface was added. | -| Magento\Framework\App\FeedInterface | Interface was added. | -| Magento\Framework\App\HttpRequestInterface | Interface was added. | -| Magento\Framework\App\RouterInterface | Interface was added. | -| Magento\Framework\App\RouterListInterface | Interface was added. | -| Magento\Framework\App\ScopeFallbackResolverInterface | Interface was added. | -| Magento\Framework\App\ScopeResolverInterface | Interface was added. | -| Magento\Framework\App\ScopeTreeProviderInterface | Interface was added. | -| Magento\Framework\App\ScopeValidatorInterface | Interface was added. | -| Magento\Framework\App\View\Deployment\Version\StorageInterface | Interface was added. | -| Magento\Framework\App\View\Asset\MaterializationStrategy\StrategyInterface | Interface was added. | -| Magento\Framework\App\Scope\ValidatorInterface | Interface was added. | -| Magento\Framework\App\Rss\RssManagerInterface | Interface was added. | -| Magento\Framework\App\Rss\UrlBuilderInterface | Interface was added. | -| Magento\Framework\App\Router\NoRouteHandlerInterface | Interface was added. | -| Magento\Framework\App\Router\PathConfigInterface | Interface was added. | -| Magento\Framework\App\Response\FileInterface | Interface was added. | -| Magento\Framework\App\Response\RedirectInterface | Interface was added. | -| Magento\Framework\App\Response\HeaderProvider\HeaderProviderInterface | Interface was added. | -| Magento\Framework\App\ResourceConnection\ConfigInterface | Interface was added. | -| Magento\Framework\App\ResourceConnection\ConnectionAdapterInterface | Interface was added. | -| Magento\Framework\App\Request\ValidatorInterface | Interface was added. | -| Magento\Framework\App\PageCache\NotCacheableInterface | Interface was added. | -| Magento\Framework\App\ObjectManager\ConfigWriterInterface | Interface was added. | -| Magento\Framework\App\DeploymentConfig\ImporterInterface | Interface was added. | -| Magento\Framework\App\DeploymentConfig\ValidatorInterface | Interface was added. | -| Magento\Framework\App\DeploymentConfig\Writer\FormatterInterface | Interface was added. | -| Magento\Framework\App\Config\CommentInterface | Interface was added. | -| Magento\Framework\App\Config\CommentParserInterface | Interface was added. | -| Magento\Framework\App\Config\ConfigSourceInterface | Interface was added. | -| Magento\Framework\App\Config\ConfigTypeInterface | Interface was added. | -| Magento\Framework\App\Config\ValueInterface | Interface was added. | -| Magento\Framework\App\Config\Spi\PostProcessorInterface | Interface was added. | -| Magento\Framework\App\Config\Spi\PreProcessorInterface | Interface was added. | -| Magento\Framework\App\Config\Scope\ReaderInterface | Interface was added. | -| Magento\Framework\App\Config\Reader\Source\SourceInterface | Interface was added. | -| Magento\Framework\App\Config\ConfigResource\ConfigInterface | Interface was added. | -| Magento\Framework\App\Action\HttpConnectActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpDeleteActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpGetActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpOptionsActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpPatchActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpPostActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpPropfindActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpPutActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpTraceActionInterface | Interface was added. | -| Magento\Framework\Api\AttributeTypeResolverInterface | Interface was added. | -| Magento\Framework\Api\CriteriaInterface | Interface was added. | -| Magento\Framework\Api\SimpleBuilderInterface | Interface was added. | -| Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionInterface | Interface was added. | +| What changed | How it changed | +| ------------------------------------------------------------------------------------------------------------ | -------------------- | +| Magento\AdvancedCheckout\Model\AreProductsSalableForRequestedQtyInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterGroupInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterTextGeneratorInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterableConditionInterface | Interface was added. | +| Magento\AdvancedSearch\Block\SearchDataInterface | Interface was added. | +| Magento\Analytics\Api\Data\LinkInterface | Interface was added. | +| Magento\Analytics\Api\LinkProviderInterface | Interface was added. | +| Magento\Analytics\Model\Connector\CommandInterface | Interface was added. | +| Magento\Analytics\Model\ExportDataHandlerInterface | Interface was added. | +| Magento\Analytics\Model\ReportWriterInterface | Interface was added. | +| Magento\Analytics\ReportXml\DB\Assembler\AssemblerInterface | Interface was added. | +| Magento\Backend\Model\Image\UploadResizeConfigInterface | Interface was added. | +| Magento\Backend\Model\Search\Config\Structure\ElementBuilderInterface | Interface was added. | +| Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface | Interface was added. | +| Magento\CardinalCommerce\Model\Response\JwtParserInterface | Interface was added. | +| Magento\CardinalCommerce\Model\Response\JwtPayloadValidatorInterface | Interface was added. | +| Magento\CatalogGraphQl\DataProvider\Product\LayeredNavigation\LayerBuilderInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Categories\DataProvider\Category\CollectionProcessorInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Product\Price\ProviderInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Product\CollectionProcessorInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\Query\ProductQueryInterface | Interface was added. | +| Magento\CatalogImportExport\Model\Export\ProductFilterInterface | Interface was added. | +| Magento\CatalogRule\Model\Indexer\IndexerTableSwapperInterface | Interface was added. | +| Magento\CatalogSearch\Model\Adapter\Aggregation\RequestCheckerInterface | Interface was added. | +| Magento\CatalogSearch\Model\Advanced\ProductCollectionPrepareStrategyInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchCriteriaResolverInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchResultApplierInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\TotalRecordsResolverInterface | Interface was added. | +| Magento\CatalogSearch\Model\Search\ItemCollectionProviderInterface | Interface was added. | +| Magento\CatalogUrlRewrite\Model\Map\DatabaseMapInterface | Interface was added. | +| Magento\CatalogUrlRewrite\Model\Map\HashMapInterface | Interface was added. | +| Magento\Catalog\Block\Product\AwareInterface | Interface was added. | +| Magento\Catalog\Block\Product\ReviewRendererInterface | Interface was added. | +| Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper\HandlerInterface | Interface was added. | +| Magento\Catalog\Controller\Product\View\ViewInterface | Interface was added. | +| Magento\Catalog\Model\Attribute\LockValidatorInterface | Interface was added. | +| Magento\Catalog\Model\Config\Source\ProductPriceOptionsInterface | Interface was added. | +| Magento\Catalog\Model\Entity\Product\Attribute\Group\AttributeMapperInterface | Interface was added. | +| Magento\Catalog\Model\Indexer\Product\Flat\TableDataInterface | Interface was added. | +| Magento\Catalog\Model\Layer\CollectionFilterInterface | Interface was added. | +| Magento\Catalog\Model\Layer\FilterableAttributeListInterface | Interface was added. | +| Magento\Catalog\Model\Layer\ItemCollectionProviderInterface | Interface was added. | +| Magento\Catalog\Model\Layer\StateKeyInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\CollectionProviderInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Converter\ConverterInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Data\ListCriteriaInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Data\ListResultInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\MapProviderInterface | Interface was added. | +| Magento\Catalog\Model\ProductOptions\ConfigInterface | Interface was added. | +| Magento\Catalog\Model\Product\Condition\ConditionInterface | Interface was added. | +| Magento\Catalog\Model\Product\Configuration\Item\Option\OptionInterface | Interface was added. | +| Magento\Catalog\Model\Product\Media\ConfigInterface | Interface was added. | +| Magento\Catalog\Model\Product\Pricing\Renderer\SalableResolverInterface | Interface was added. | +| Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\PriceModifierInterface | Interface was added. | +| Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\ConfiguredPriceInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\MinimalPriceCalculatorInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\SpecialPriceInterface | Interface was added. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav\WysiwygConfigDataProcessorInterface | Interface was added. | +| Magento\CheckoutAgreements\Model\AgreementsProviderInterface | Interface was added. | +| Magento\Checkout\Api\PaymentProcessingRateLimiterInterface | Interface was added. | +| Magento\Checkout\Controller\Express\RedirectLoginInterface | Interface was added. | +| Magento\Checkout\CustomerData\ItemPoolInterface | Interface was added. | +| Magento\Cms\Model\PageRepository\ValidatorInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayoutManagerInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayoutRepositoryInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayout\Data\CustomLayoutSelectedInterface | Interface was added. | +| Magento\Cms\Ui\Component\AddFilterInterface | Interface was added. | +| Magento\CompanyCredit\Model\HistoryInterface | Interface was added. | +| Magento\CompanyCredit\Model\HistoryRepositoryInterface | Interface was added. | +| Magento\Company\Api\CompanyUserManagerInterface | Interface was added. | +| Magento\Company\Model\Customer\PermissionInterface | Interface was added. | +| Magento\Company\Model\SaveValidatorInterface | Interface was added. | +| Magento\ConfigurableProduct\Model\ResourceModel\Attribute\OptionSelectBuilderInterface | Interface was added. | +| Magento\Cron\Model\DeadlockRetrierInterface | Interface was added. | +| Magento\Csp\Api\CspAwareActionInterface | Interface was added. | +| Magento\Csp\Api\CspRendererInterface | Interface was added. | +| Magento\Csp\Api\Data\ModeConfiguredInterface | Interface was added. | +| Magento\Csp\Api\Data\PolicyInterface | Interface was added. | +| Magento\Csp\Api\InlineUtilInterface | Interface was added. | +| Magento\Csp\Api\ModeConfigManagerInterface | Interface was added. | +| Magento\Csp\Api\PolicyCollectorInterface | Interface was added. | +| Magento\Csp\Api\PolicyRendererInterface | Interface was added. | +| Magento\Csp\Model\Collector\Config\PolicyReaderInterface | Interface was added. | +| Magento\Csp\Model\Collector\MergerInterface | Interface was added. | +| Magento\Csp\Model\Policy\SimplePolicyInterface | Interface was added. | +| Magento\CustomerCustomAttributes\Model\Customer\Attribute\ValidatorInterface | Interface was added. | +| Magento\Customer\Api\AccountDelegationInterface | Interface was added. | +| Magento\Customer\Api\SessionCleanerInterface | Interface was added. | +| Magento\Customer\Block\Address\Renderer\RendererInterface | Interface was added. | +| Magento\Customer\Controller\AccountInterface | Interface was added. | +| Magento\Customer\CustomerData\JsLayoutDataProviderPoolInterface | Interface was added. | +| Magento\Customer\CustomerData\SectionPoolInterface | Interface was added. | +| Magento\Customer\Model\Customer\Attribute\Source\GroupSourceLoggedInOnlyInterface | Interface was added. | +| Magento\Deploy\Collector\CollectorInterface | Interface was added. | +| Magento\Deploy\Console\Command\App\SensitiveConfigSet\CollectorInterface | Interface was added. | +| Magento\Deploy\Package\BundleInterface | Interface was added. | +| Magento\Deploy\Package\Processor\ProcessorInterface | Interface was added. | +| Magento\Deploy\Source\SourceInterface | Interface was added. | +| Magento\Deploy\Strategy\StrategyInterface | Interface was added. | +| Magento\Directory\Model\Country\Postcode\ConfigInterface | Interface was added. | +| Magento\Directory\Model\Country\Postcode\ValidatorInterface | Interface was added. | +| Magento\Downloadable\Api\DomainManagerInterface | Interface was added. | +| Magento\Downloadable\Pricing\Price\LinkPriceInterface | Interface was added. | +| Magento\Eav\Model\Entity\AttributeLoaderInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\AttributeInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\Backend\BackendInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\Source\SpecificSourceInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\UniqueValidationInterface | Interface was added. | +| Magento\Eav\Model\Entity\Setup\PropertyMapperInterface | Interface was added. | +| Magento\Eav\Model\ResourceModel\Attribute\DefaultEntityAttributes\ProviderInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProviderInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ConverterInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ResolverInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\ResolverInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldType\ResolverInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldsMappingPreprocessorInterface | Interface was added. | +| Magento\Elasticsearch\SearchAdapter\QueryAwareInterface | Interface was added. | +| Magento\Elasticsearch\SearchAdapter\Query\ValueTransformerInterface | Interface was added. | +| Magento\Framework\Amqp\Topology\BindingInstallerInterface | Interface was added. | +| Magento\Framework\Api\AttributeTypeResolverInterface | Interface was added. | +| Magento\Framework\Api\CriteriaInterface | Interface was added. | +| Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionInterface | Interface was added. | | Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionProviderInterface | Interface was added. | -| Magento\Framework\Api\Search\AggregationInterface | Interface was added. | -| Magento\Framework\Api\Search\AggregationValueInterface | Interface was added. | -| Magento\Framework\Api\Search\BucketInterface | Interface was added. | -| Magento\Framework\Api\Search\DocumentInterface | Interface was added. | -| Magento\Framework\Api\Search\ReportingInterface | Interface was added. | -| Magento\Framework\MessageQueue\BulkPublisherInterface | Interface was added. | -| Magento\Framework\MessageQueue\CallbackInvokerInterface | Interface was added. | -| Magento\Framework\MessageQueue\ConnectionTypeResolverInterface | Interface was added. | -| Magento\Framework\MessageQueue\ConsumerConfigurationInterface | Interface was added. | -| Magento\Framework\MessageQueue\LockInterface | Interface was added. | -| Magento\Framework\MessageQueue\MergedMessageInterface | Interface was added. | -| Magento\Framework\MessageQueue\MergerInterface | Interface was added. | -| Magento\Framework\MessageQueue\MessageProcessorInterface | Interface was added. | -| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItemInterface | Interface was added. | -| Magento\Framework\MessageQueue\Topology\Config\QueueConfigItemInterface | Interface was added. | -| Magento\Framework\MessageQueue\Topology\Config\ReaderInterface | Interface was added. | -| Magento\Framework\MessageQueue\Topology\Config\ValidatorInterface | Interface was added. | -| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItem\BindingInterface | Interface was added. | -| Magento\Framework\MessageQueue\Publisher\Config\PublisherConfigItemInterface | Interface was added. | -| Magento\Framework\MessageQueue\Publisher\Config\PublisherConnectionInterface | Interface was added. | -| Magento\Framework\MessageQueue\Publisher\Config\ReaderInterface | Interface was added. | -| Magento\Framework\MessageQueue\Publisher\Config\ValidatorInterface | Interface was added. | -| Magento\Framework\MessageQueue\PoisonPill\PoisonPillCompareInterface | Interface was added. | -| Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface | Interface was added. | -| Magento\Framework\MessageQueue\PoisonPill\PoisonPillReadInterface | Interface was added. | -| Magento\Framework\MessageQueue\Lock\ReaderInterface | Interface was added. | -| Magento\Framework\MessageQueue\Lock\WriterInterface | Interface was added. | -| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItemInterface | Interface was added. | -| Magento\Framework\MessageQueue\Consumer\Config\ReaderInterface | Interface was added. | -| Magento\Framework\MessageQueue\Consumer\Config\ValidatorInterface | Interface was added. | -| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItem\HandlerInterface | Interface was added. | -| Magento\Framework\ForeignKey\ConfigInterface | Interface was added. | -| Magento\Framework\ForeignKey\ConstraintInterface | Interface was added. | -| Magento\Framework\ForeignKey\StrategyInterface | Interface was added. | -| Magento\Framework\Amqp\Topology\BindingInstallerInterface | Interface was added. | +| Magento\Framework\Api\Search\AggregationInterface | Interface was added. | +| Magento\Framework\Api\Search\AggregationValueInterface | Interface was added. | +| Magento\Framework\Api\Search\BucketInterface | Interface was added. | +| Magento\Framework\Api\Search\DocumentInterface | Interface was added. | +| Magento\Framework\Api\Search\ReportingInterface | Interface was added. | +| Magento\Framework\Api\SimpleBuilderInterface | Interface was added. | +| Magento\Framework\App\Action\HttpConnectActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpDeleteActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpGetActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpOptionsActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPatchActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPostActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPropfindActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPutActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpTraceActionInterface | Interface was added. | +| Magento\Framework\App\AreaInterface | Interface was added. | +| Magento\Framework\App\Config\CommentInterface | Interface was added. | +| Magento\Framework\App\Config\CommentParserInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigResource\ConfigInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigSourceInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigTypeInterface | Interface was added. | +| Magento\Framework\App\Config\Reader\Source\SourceInterface | Interface was added. | +| Magento\Framework\App\Config\Scope\ReaderInterface | Interface was added. | +| Magento\Framework\App\Config\Spi\PostProcessorInterface | Interface was added. | +| Magento\Framework\App\Config\Spi\PreProcessorInterface | Interface was added. | +| Magento\Framework\App\Config\ValueInterface | Interface was added. | +| Magento\Framework\App\CsrfAwareActionInterface | Interface was added. | +| Magento\Framework\App\DefaultPathInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\ImporterInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\ValidatorInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\Writer\FormatterInterface | Interface was added. | +| Magento\Framework\App\DesignInterface | Interface was added. | +| Magento\Framework\App\EnvironmentInterface | Interface was added. | +| Magento\Framework\App\ExceptionHandlerInterface | Interface was added. | +| Magento\Framework\App\FeedFactoryInterface | Interface was added. | +| Magento\Framework\App\FeedInterface | Interface was added. | +| Magento\Framework\App\HttpRequestInterface | Interface was added. | +| Magento\Framework\App\ObjectManager\ConfigWriterInterface | Interface was added. | +| Magento\Framework\App\PageCache\NotCacheableInterface | Interface was added. | +| Magento\Framework\App\Request\ValidatorInterface | Interface was added. | +| Magento\Framework\App\ResourceConnection\ConfigInterface | Interface was added. | +| Magento\Framework\App\ResourceConnection\ConnectionAdapterInterface | Interface was added. | +| Magento\Framework\App\Response\FileInterface | Interface was added. | +| Magento\Framework\App\Response\HeaderProvider\HeaderProviderInterface | Interface was added. | +| Magento\Framework\App\Response\RedirectInterface | Interface was added. | +| Magento\Framework\App\RouterInterface | Interface was added. | +| Magento\Framework\App\RouterListInterface | Interface was added. | +| Magento\Framework\App\Router\NoRouteHandlerInterface | Interface was added. | +| Magento\Framework\App\Router\PathConfigInterface | Interface was added. | +| Magento\Framework\App\Rss\RssManagerInterface | Interface was added. | +| Magento\Framework\App\Rss\UrlBuilderInterface | Interface was added. | +| Magento\Framework\App\ScopeFallbackResolverInterface | Interface was added. | +| Magento\Framework\App\ScopeResolverInterface | Interface was added. | +| Magento\Framework\App\ScopeTreeProviderInterface | Interface was added. | +| Magento\Framework\App\ScopeValidatorInterface | Interface was added. | +| Magento\Framework\App\Scope\ValidatorInterface | Interface was added. | +| Magento\Framework\App\View\Asset\MaterializationStrategy\StrategyInterface | Interface was added. | +| Magento\Framework\App\View\Deployment\Version\StorageInterface | Interface was added. | +| Magento\Framework\Async\CancelableDeferredInterface | Interface was added. | +| Magento\Framework\Async\DeferredInterface | Interface was added. | +| Magento\Framework\Autoload\AutoloaderInterface | Interface was added. | +| Magento\Framework\Backup\SourceFileInterface | Interface was added. | +| Magento\Framework\Cache\ConfigInterface | Interface was added. | +| Magento\Framework\Cache\StaleCacheNotifierInterface | Interface was added. | +| Magento\Framework\Code\Generator\CodeGeneratorInterface | Interface was added. | +| Magento\Framework\Code\Minifier\AdapterInterface | Interface was added. | +| Magento\Framework\Code\Reader\ClassReaderInterface | Interface was added. | +| Magento\Framework\Code\ValidatorInterface | Interface was added. | +| Magento\Framework\Component\ComponentRegistrarInterface | Interface was added. | +| Magento\Framework\Crontab\CrontabManagerInterface | Interface was added. | +| Magento\Framework\Crontab\TasksProviderInterface | Interface was added. | +| Magento\Framework\Css\PreProcessor\ErrorHandlerInterface | Interface was added. | +| Magento\Framework\DB\DataConverter\DataConverterInterface | Interface was added. | +| Magento\Framework\DB\LoggerInterface | Interface was added. | +| Magento\Framework\DB\MapperInterface | Interface was added. | +| Magento\Framework\DB\QueryInterface | Interface was added. | +| Magento\Framework\DB\Query\BatchIteratorInterface | Interface was added. | +| Magento\Framework\DB\Select\QueryModifierInterface | Interface was added. | +| Magento\Framework\DB\Select\RendererInterface | Interface was added. | +| Magento\Framework\DB\Sequence\SequenceInterface | Interface was added. | +| Magento\Framework\DB\Sql\ExpressionInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityGeneratorInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityValidatorInterface | Interface was added. | +| Magento\Framework\DataObject\KeyValueObjectInterface | Interface was added. | +| Magento\Framework\Data\CollectionDataSourceInterface | Interface was added. | +| Magento\Framework\Data\CollectionModifierInterface | Interface was added. | +| Magento\Framework\Data\Collection\Db\FetchStrategyInterface | Interface was added. | +| Magento\Framework\Data\Collection\EntityFactoryInterface | Interface was added. | +| Magento\Framework\Data\SearchResultInterface | Interface was added. | +| Magento\Framework\Data\SearchResultProcessorInterface | Interface was added. | +| Magento\Framework\Data\ValueSourceInterface | Interface was added. | +| Magento\Framework\Encryption\Adapter\EncryptionAdapterInterface | Interface was added. | +| Magento\Framework\Event\ConfigInterface | Interface was added. | +| Magento\Framework\Event\InvokerInterface | Interface was added. | +| Magento\Framework\Event\ManagerInterface | Interface was added. | +| Magento\Framework\Exception\TemporaryStateExceptionInterface | Interface was added. | +| Magento\Framework\Filesystem\Directory\PathValidatorInterface | Interface was added. | +| Magento\Framework\Filesystem\DriverPoolInterface | Interface was added. | +| Magento\Framework\Filesystem\File\ReadInterface | Interface was added. | +| Magento\Framework\Filter\DirectiveProcessorInterface | Interface was added. | +| Magento\Framework\Filter\DirectiveProcessor\FilterInterface | Interface was added. | +| Magento\Framework\Filter\FactoryInterface | Interface was added. | +| Magento\Framework\Filter\FilterManager\ConfigInterface | Interface was added. | +| Magento\Framework\Filter\SimpleDirective\ProcessorInterface | Interface was added. | +| Magento\Framework\Filter\VariableResolverInterface | Interface was added. | +| Magento\Framework\ForeignKey\ConfigInterface | Interface was added. | +| Magento\Framework\ForeignKey\ConstraintInterface | Interface was added. | +| Magento\Framework\ForeignKey\StrategyInterface | Interface was added. | +| Magento\Framework\GraphQlSchemaStitching\GraphQlReader\TypeMetaReaderInterface | Interface was added. | +| Magento\Framework\GraphQl\ConfigInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\ConfigElementFactoryInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\ConfigElementInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\FieldInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\OutputFieldInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\TypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\UnionInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\ErrorHandlerInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\ResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\Argument\FieldEntityAttributesInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\Argument\SearchCriteria\ArgumentApplierInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchRequestItemInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchServiceContractResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\ContextInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\IdentityInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\ResolveRequestInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\TypeResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\SchemaGeneratorInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\TypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Entity\MapperInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Enum\DataMapperInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\InputTypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\OutputTypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Output\ElementMapper\FormatterInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\WrappedTypeInterface | Interface was added. | +| Magento\Framework\HTTP\AsyncClientInterface | Interface was added. | +| Magento\Framework\HTTP\AsyncClient\HttpResponseDeferredInterface | Interface was added. | +| Magento\Framework\Image\Adapter\AdapterInterface | Interface was added. | +| Magento\Framework\Image\Adapter\ConfigInterface | Interface was added. | +| Magento\Framework\Indexer\Config\DependencyInfoProviderInterface | Interface was added. | +| Magento\Framework\Indexer\Table\StrategyInterface | Interface was added. | +| Magento\Framework\Interception\ConfigInterface | Interface was added. | +| Magento\Framework\Interception\ConfigLoaderInterface | Interface was added. | +| Magento\Framework\Interception\ConfigWriterInterface | Interface was added. | +| Magento\Framework\Interception\DefinitionInterface | Interface was added. | +| Magento\Framework\Interception\InterceptorInterface | Interface was added. | +| Magento\Framework\Interception\ObjectManager\ConfigInterface | Interface was added. | +| Magento\Framework\Interception\PluginListInterface | Interface was added. | +| Magento\Framework\Locale\AvailableLocalesInterface | Interface was added. | +| Magento\Framework\Locale\OptionInterface | Interface was added. | +| Magento\Framework\Mail\EmailMessageInterface | Interface was added. | +| Magento\Framework\Mail\MimeInterface | Interface was added. | +| Magento\Framework\Mail\MimeMessageInterface | Interface was added. | +| Magento\Framework\Mail\MimePartInterface | Interface was added. | +| Magento\Framework\MessageQueue\BulkPublisherInterface | Interface was added. | +| Magento\Framework\MessageQueue\CallbackInvokerInterface | Interface was added. | +| Magento\Framework\MessageQueue\ConnectionTypeResolverInterface | Interface was added. | +| Magento\Framework\MessageQueue\ConsumerConfigurationInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItem\HandlerInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\MessageQueue\LockInterface | Interface was added. | +| Magento\Framework\MessageQueue\Lock\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Lock\WriterInterface | Interface was added. | +| Magento\Framework\MessageQueue\MergedMessageInterface | Interface was added. | +| Magento\Framework\MessageQueue\MergerInterface | Interface was added. | +| Magento\Framework\MessageQueue\MessageProcessorInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillCompareInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillReadInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\PublisherConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\PublisherConnectionInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItem\BindingInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\QueueConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\Message\ExceptionMessageFactoryInterface | Interface was added. | +| Magento\Framework\Model\EntitySnapshot\AttributeProviderInterface | Interface was added. | +| Magento\Framework\Model\Entity\ScopeInterface | Interface was added. | +| Magento\Framework\Model\Entity\ScopeProviderInterface | Interface was added. | +| Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface | Interface was added. | +| Magento\Framework\Model\ResourceModel\Type\Db\ConnectionFactoryInterface | Interface was added. | +| Magento\Framework\Module\ModuleListInterface | Interface was added. | +| Magento\Framework\Mview\ConfigInterface | Interface was added. | +| Magento\Framework\Mview\ProcessorInterface | Interface was added. | +| Magento\Framework\Mview\ViewInterface | Interface was added. | +| Magento\Framework\Mview\View\ChangelogInterface | Interface was added. | +| Magento\Framework\Mview\View\CollectionInterface | Interface was added. | +| Magento\Framework\Mview\View\StateInterface | Interface was added. | +| Magento\Framework\Mview\View\State\CollectionInterface | Interface was added. | +| Magento\Framework\Mview\View\SubscriptionInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigCacheInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigLoaderInterface | Interface was added. | +| Magento\Framework\ObjectManager\DefinitionInterface | Interface was added. | +| Magento\Framework\ObjectManager\DynamicConfigInterface | Interface was added. | +| Magento\Framework\ObjectManager\FactoryInterface | Interface was added. | +| Magento\Framework\ObjectManager\NoninterceptableInterface | Interface was added. | +| Magento\Framework\ObjectManager\RelationsInterface | Interface was added. | +| Magento\Framework\Profiler\Driver\Standard\OutputInterface | Interface was added. | +| Magento\Framework\Search\AdapterInterface | Interface was added. | +| Magento\Framework\Search\Adapter\Aggregation\AggregationResolverInterface | Interface was added. | +| Magento\Framework\Search\Adapter\OptionsInterface | Interface was added. | +| Magento\Framework\Search\Adapter\Preprocessor\PreprocessorInterface | Interface was added. | +| Magento\Framework\Search\Dynamic\Algorithm\AlgorithmInterface | Interface was added. | +| Magento\Framework\Search\Request\Aggregation\StatusInterface | Interface was added. | +| Magento\Framework\Search\Request\IndexScopeResolverInterface | Interface was added. | +| Magento\Framework\Search\ResponseInterface | Interface was added. | +| Magento\Framework\Search\SearchEngineInterface | Interface was added. | +| Magento\Framework\Search\SearchEngine\ConfigInterface | Interface was added. | +| Magento\Framework\Session\Config\ConfigInterface | Interface was added. | +| Magento\Framework\Session\SaveHandlerInterface | Interface was added. | +| Magento\Framework\Session\StorageInterface | Interface was added. | +| Magento\Framework\Session\ValidatorInterface | Interface was added. | +| Magento\Framework\Setup\ConfigOptionsListInterface | Interface was added. | +| Magento\Framework\Setup\DataCacheInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\DataSavior\DataSaviorInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\DataSavior\DumpAccessorInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DDLTriggerInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbDefinitionProcessorInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaReaderInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaWriterInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Diff\DiffInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnDefaultAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnIdentityAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnNullableAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnUnsignedAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\ElementDiffAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Factories\FactoryInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\TableElementInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\OperationInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\SchemaConfigInterface | Interface was added. | +| Magento\Framework\Setup\Patch\DataPatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\DependentPatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\NonTransactionableInterface | Interface was added. | +| Magento\Framework\Setup\Patch\PatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\PatchRevertableInterface | Interface was added. | +| Magento\Framework\Setup\Patch\SchemaPatchInterface | Interface was added. | +| Magento\Framework\Setup\SampleData\InstallerInterface | Interface was added. | +| Magento\Framework\Setup\SampleData\StateInterface | Interface was added. | +| Magento\Framework\Setup\SchemaListenerDefinition\DefinitionConverterInterface | Interface was added. | +| Magento\Framework\Setup\SchemaListenerHandlers\SchemaListenerHandlerInterface | Interface was added. | +| Magento\Framework\Setup\UpToDateValidatorInterface | Interface was added. | +| Magento\Framework\TestFramework\Unit\Autoloader\GeneratorInterface | Interface was added. | +| Magento\Framework\TranslateInterface | Interface was added. | +| Magento\Framework\Translate\Inline\ProviderInterface | Interface was added. | +| Magento\Framework\Url\ModifierInterface | Interface was added. | +| Magento\Framework\Url\RouteParamsPreprocessorInterface | Interface was added. | +| Magento\Framework\Validator\Constraint\OptionInterface | Interface was added. | +| Magento\Framework\Validator\HTML\AttributeValidatorInterface | Interface was added. | +| Magento\Framework\Validator\HTML\TagValidatorInterface | Interface was added. | +| Magento\Framework\Validator\HTML\WYSIWYGValidatorInterface | Interface was added. | +| Magento\Framework\View\Asset\ContentProcessorInterface | Interface was added. | +| Magento\Framework\View\Asset\ContextInterface | Interface was added. | +| Magento\Framework\View\Asset\LockerProcessInterface | Interface was added. | +| Magento\Framework\View\Asset\MergeStrategyInterface | Interface was added. | +| Magento\Framework\View\Asset\MergeableInterface | Interface was added. | +| Magento\Framework\View\Asset\PreProcessor\FilenameResolverInterface | Interface was added. | +| Magento\Framework\View\DesignInterface | Interface was added. | +| Magento\Framework\View\Design\Fallback\Rule\RuleInterface | Interface was added. | +| Magento\Framework\View\Design\FileResolution\Fallback\ResolverInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\CustomizationInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\ConfigInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\FileAssetInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\FileInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\FileInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\File\CollectionInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Image\PathInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\ResolverInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\ThemeProviderInterface | Interface was added. | +| Magento\Framework\View\Element\ComponentVisibilityInterface | Interface was added. | +| Magento\Framework\View\Element\Message\InterpretationStrategyInterface | Interface was added. | +| Magento\Framework\View\Element\Message\Renderer\PoolInterface | Interface was added. | +| Magento\Framework\View\Element\Message\Renderer\RendererInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\BlockWrapperInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\DomMergerInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\FileCollectorInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\UiReaderInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContainerInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContentType\ContentTypeInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContextInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ActionPoolInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ControlInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\FilterApplierInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\DataSourceInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Factory\ComponentFactoryInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\JsConfigInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\LayoutInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ObserverInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\PoolInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\SubjectInterface | Interface was added. | +| Magento\Framework\View\File\FileList\CollateInterface | Interface was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\SecurityProcessorInterface | Interface was added. | +| Magento\Framework\View\Layout\Argument\UpdaterInterface | Interface was added. | +| Magento\Framework\View\Layout\Condition\VisibilityConditionInterface | Interface was added. | +| Magento\Framework\View\Layout\GeneratorInterface | Interface was added. | +| Magento\Framework\View\Layout\LayoutCacheKeyInterface | Interface was added. | +| Magento\Framework\View\Layout\ProcessorInterface | Interface was added. | +| Magento\Framework\View\Layout\ReaderInterface | Interface was added. | +| Magento\Framework\View\Model\PageLayout\Config\BuilderInterface | Interface was added. | +| Magento\Framework\View\Page\Config\RendererInterface | Interface was added. | +| Magento\Framework\View\TemplateEngineInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\AttributeInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CdataInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CommentInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Directive\DirectiveInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Element\ElementInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\TextInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\ResultInterface | Interface was added. | +| Magento\Framework\View\Xsd\Media\TypeDataExtractorInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttributeTypeLocatorInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttribute\PreprocessorInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttribute\ServiceTypeListInterface | Interface was added. | +| Magento\Framework\Webapi\Rest\Request\DeserializerInterface | Interface was added. | +| Magento\GiftCardAccount\Api\GiftCardRedeemerInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\Data\UsageAttemptInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\GiftCardAccountManagerInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\GiftCardAccountResourceInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\UsageAttemptFactoryInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\UsageAttemptsManagerInterface | Interface was added. | +| Magento\GiftRegistry\Model\Attribute\ConfigInterface | Interface was added. | +| Magento\GraphQl\Controller\HttpHeaderProcessorInterface | Interface was added. | +| Magento\GraphQl\Controller\HttpRequestValidatorInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextParametersInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextParametersProcessorInterface | Interface was added. | +| Magento\ImportExport\Api\Data\ExtendedExportInfoInterface | Interface was added. | +| Magento\ImportExport\Model\Report\ReportProcessorInterface | Interface was added. | +| Magento\Indexer\Model\ModeSwitcherInterface | Interface was added. | +| Magento\Indexer\Model\Source\DataInterface | Interface was added. | +| Magento\Integration\Model\Oauth\Token\RequestLog\ReaderInterface | Interface was added. | +| Magento\Integration\Model\Oauth\Token\RequestLog\WriterInterface | Interface was added. | +| Magento\InventoryIndexer\Indexer\SelectBuilderInterface | Interface was added. | +| Magento\Invitation\Controller\Customer\AccountInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\Data\IsLoginAsCustomerEnabledForCustomerResultInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerAdminIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerCustomerIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\IsLoginAsCustomerEnabledForCustomerInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerAdminIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerCustomerIdInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\ConfigInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\IsAssistanceEnabledInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\SetAssistanceInterface | Interface was added. | +| Magento\MediaContentApi\Api\GetAssetIdsByContentFieldInterface | Interface was added. | +| Magento\MediaContentApi\Api\UpdateContentAssetLinksInterface | Interface was added. | +| Magento\MediaContentApi\Model\GetAssetIdsByContentFieldInterface | Interface was added. | +| Magento\MediaContentApi\Model\SearchPatternConfigInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Api\SynchronizeIdentitiesInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Api\SynchronizeInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Model\GetEntitiesInterface | Interface was added. | +| Magento\MediaGalleryApi\Api\SearchAssetsInterface | Interface was added. | +| Magento\MediaGalleryApi\Model\ExcludedPatternsConfigInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\AddMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\Data\MetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\ExtractMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\FileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\ReadFileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\ReadMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\SegmentInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\WriteFileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\WriteMetadataInterface | Interface was added. | +| Magento\MediaGalleryRenditionsApi\Api\GenerateRenditionsInterface | Interface was added. | +| Magento\MediaGalleryRenditionsApi\Api\GetRenditionPathInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Api\SynchronizeFilesInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Api\SynchronizeInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\CreateAssetFromFileInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\FetchBatchesInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\ImportFilesInterface | Interface was added. | +| Magento\MediaGalleryUiApi\Api\ConfigInterface | Interface was added. | +| Magento\Msrp\Pricing\MsrpPriceCalculatorInterface | Interface was added. | +| Magento\MultipleWishlist\Controller\IndexInterface | Interface was added. | +| Magento\MultipleWishlist\Model\Search\Strategy\StrategyInterface | Interface was added. | +| Magento\NegotiableQuote\Api\NegotiableCartRepositoryInterface | Interface was added. | +| Magento\NegotiableQuote\Model\Attachment\DownloadPermission\AllowInterface | Interface was added. | +| Magento\NegotiableQuote\Model\ProductOptionsProviderInterface | Interface was added. | +| Magento\NegotiableQuote\Model\Quote\ViewAccessInterface | Interface was added. | +| Magento\NegotiableQuote\Model\ResourceModel\QuoteGridInterface | Interface was added. | +| Magento\NegotiableQuote\Model\Restriction\RestrictionInterface | Interface was added. | +| Magento\NegotiableQuote\Model\Status\LabelProviderInterface | Interface was added. | +| Magento\NegotiableQuote\Model\Validator\ValidatorInterface | Interface was added. | +| Magento\Newsletter\Model\SubscriptionManagerInterface | Interface was added. | +| Magento\OrderHistorySearch\Model\Filter\FilterInterface | Interface was added. | +| Magento\PageCache\Model\Spi\PageCacheTagsPreprocessorInterface | Interface was added. | +| Magento\Payment\Api\Data\PaymentAdditionalInfoInterface | Interface was added. | +| Magento\Payment\Model\Method\TransparentInterface | Interface was added. | +| Magento\Paypal\Helper\Shortcut\ValidatorInterface | Interface was added. | +| Magento\Paypal\Model\Billing\Agreement\MethodInterface | Interface was added. | +| Magento\Paypal\Model\IpnInterface | Interface was added. | +| Magento\Paypal\Model\Payflow\Service\Response\Handler\HandlerInterface | Interface was added. | +| Magento\PurchaseOrderRule\Api\Data\AppliedRuleApproverSearchResultsInterface | Interface was added. | +| Magento\PurchaseOrderRule\Api\Data\AppliedRuleSearchResultsInterface | Interface was added. | +| Magento\PurchaseOrderRule\Api\Data\RuleSearchResultsInterface | Interface was added. | +| Magento\PurchaseOrderRule\Model\Rule\ConditionInterface | Interface was added. | +| Magento\PurchaseOrderRule\Model\Rule\ValidateInterface | Interface was added. | +| Magento\PurchaseOrder\Api\Data\PurchaseOrderInterface | Interface was added. | +| Magento\PurchaseOrder\Api\Data\PurchaseOrderSearchResultsInterface | Interface was added. | +| Magento\PurchaseOrder\Api\PurchaseOrderManagementInterface | Interface was added. | +| Magento\PurchaseOrder\Api\PurchaseOrderRepositoryInterface | Interface was added. | +| Magento\PurchaseOrder\Model\CommentRepositoryInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Company\ConfigInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Company\Config\RepositoryInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Customer\Authorization\ActionInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Notification\ActionNotificationInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Notification\Action\Recipient\ResolverInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Notification\Config\ProviderInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Notification\ContentSourceInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Notification\NotifierInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Notification\SenderInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Payment\DeferredPaymentStrategyInterface | Interface was added. | +| Magento\PurchaseOrder\Model\ProcessorInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Processor\ApprovalProcessorInterface | Interface was added. | +| Magento\PurchaseOrder\Model\PurchaseOrderLogRepositoryInterface | Interface was added. | +| Magento\PurchaseOrder\Model\PurchaseOrder\LogManagementInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Validator\ActionReady\ValidatorInterface | Interface was added. | +| Magento\PurchaseOrder\Model\Validator\ValidatorInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\CartItem\DataProvider\CustomizableOptionValueInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\CartItem\DataProvider\Processor\ItemDataProcessorInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\Payment\AdditionalDataProviderInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\SetShippingAddressesOnCartInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\SetShippingMethodsOnCartInterface | Interface was added. | +| Magento\Quote\Api\ChangeQuoteControlInterface | Interface was added. | +| Magento\Quote\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | +| Magento\Quote\Model\Product\QuoteItemsCleanerInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\CustomAttributeListInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\Total\CollectorInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\Total\ReaderInterface | Interface was added. | +| Magento\Quote\Model\Quote\Item\CartItemProcessorInterface | Interface was added. | +| Magento\Quote\Model\ValidationRules\QuoteValidationRuleInterface | Interface was added. | +| Magento\ReleaseNotification\Model\ContentProviderInterface | Interface was added. | +| Magento\RemoteStorage\Driver\DriverFactoryInterface | Interface was added. | +| Magento\RemoteStorage\Driver\RemoteDriverInterface | Interface was added. | +| Magento\RemoteStorage\FilesystemInterface | Interface was added. | +| Magento\RequisitionList\Model\Checker\ProductQtyChangeAvailabilityInterface | Interface was added. | +| Magento\RewardGraphQl\Model\Formatter\Customer\FormatterInterface | Interface was added. | +| Magento\Reward\Observer\PlaceOrder\RestrictionInterface | Interface was added. | +| Magento\Rma\Model\Spi\CommentResourceInterface | Interface was added. | +| Magento\Rma\Model\Spi\RmaResourceInterface | Interface was added. | +| Magento\Rma\Model\Spi\TrackResourceInterface | Interface was added. | +| Magento\SalesGraphQl\Model\Shipment\Item\FormatterInterface | Interface was added. | +| Magento\SalesRule\Api\Data\DiscountDataInterface | Interface was added. | +| Magento\SalesRule\Api\Data\RuleDiscountInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\CodeLimitManagerInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\QuoteResetAppliedRulesInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\RuleQuoteRecollectTotalsInterface | Interface was added. | +| Magento\Sales\Api\OrderCustomerDelegateInterface | Interface was added. | +| Magento\Sales\Api\PaymentFailuresInterface | Interface was added. | +| Magento\Sales\Controller\AbstractController\OrderLoaderInterface | Interface was added. | +| Magento\Sales\Controller\AbstractController\OrderViewAuthorizationInterface | Interface was added. | +| Magento\Sales\Controller\OrderInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\CreditmemoValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\ItemCreationValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\SenderInterface | Interface was added. | +| Magento\Sales\Model\Order\Email\Container\IdentityInterface | Interface was added. | +| Magento\Sales\Model\Order\Invoice\InvoiceValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Invoice\SenderInterface | Interface was added. | +| Magento\Sales\Model\Order\OrderValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\State\CommandInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\Transaction\BuilderInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\Transaction\ManagerInterface | Interface was added. | +| Magento\Sales\Model\Order\Shipment\SenderInterface | Interface was added. | +| Magento\Sales\Model\Order\Shipment\ShipmentValidatorInterface | Interface was added. | +| Magento\Sales\Model\ResourceModel\Order\CollectionFactoryInterface | Interface was added. | +| Magento\Sales\Model\ResourceModel\Provider\NotSyncedDataProviderInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderAddressResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderPaymentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderStatusHistoryResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentTrackResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\TransactionResourceInterface | Interface was added. | +| Magento\Sales\Model\ValidatorInterface | Interface was added. | +| Magento\ScheduledImportExport\Model\Scheduled\Operation\OperationInterface | Interface was added. | +| Magento\Search\Model\SearchEngine\ValidatorInterface | Interface was added. | +| Magento\Search\Setup\InstallConfigInterface | Interface was added. | +| Magento\Security\Api\Data\UserExpirationInterface | Interface was added. | +| Magento\SharedCatalog\Api\Data\PermissionInterface | Interface was added. | +| Magento\SharedCatalog\Api\SharedCatalogDuplicationInterface | Interface was added. | +| Magento\SharedCatalog\Model\Configure\Category\Tree\RendererInterface | Interface was added. | +| Magento\Shipping\Model\Carrier\Source\GenericInterface | Interface was added. | +| Magento\Staging\Block\Adminhtml\Update\Entity\EntityProviderInterface | Interface was added. | +| Magento\Staging\Block\Adminhtml\Update\Entity\StoreIdProviderInterface | Interface was added. | +| Magento\Staging\Model\Entity\BuilderInterface | Interface was added. | +| Magento\Staging\Model\Entity\HydratorInterface | Interface was added. | +| Magento\Staging\Model\Entity\PersisterInterface | Interface was added. | +| Magento\Staging\Model\Entity\RemoverInterface | Interface was added. | +| Magento\Staging\Model\Entity\RetrieverInterface | Interface was added. | +| Magento\Staging\Model\Entity\Update\Action\TransactionExecutorInterface | Interface was added. | +| Magento\Staging\Model\Operation\Update\UpdateProcessorInterface | Interface was added. | +| Magento\Staging\Model\StagingApplierInterface | Interface was added. | +| Magento\Staging\Model\Update\Grid\ActionDataProviderInterface | Interface was added. | +| Magento\Staging\Model\Update\IncludesInterface | Interface was added. | +| Magento\Staging\Model\VersionHistoryInterface | Interface was added. | +| Magento\Staging\Ui\Component\Listing\Column\Entity\UrlProviderInterface | Interface was added. | +| Magento\Store\Model\Config\Importer\Processor\ProcessorInterface | Interface was added. | +| Magento\Store\Model\StoreResolver\ReaderInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcherInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\ContextInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataPostprocessorInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataPreprocessorInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataSerializerInterface | Interface was added. | +| Magento\Support\Model\Report\ConfigInterface | Interface was added. | +| Magento\Swat\Api\Data\JwtInterface | Interface was added. | +| Magento\Swat\Api\Data\SwatKeyPairInterface | Interface was added. | +| Magento\Tax\Api\TaxAddressManagerInterface | Interface was added. | +| Magento\Tax\Model\System\Message\NotificationInterface | Interface was added. | +| Magento\Tax\Model\TaxClass\Type\TypeInterface | Interface was added. | +| Magento\Theme\Model\Design\Config\MetadataProviderInterface | Interface was added. | +| Magento\Theme\Model\Theme\StoreThemesResolverInterface | Interface was added. | +| Magento\Ui\Component\Form\Element\DataType\DataTypeInterface | Interface was added. | +| Magento\Ui\Component\Layout\Tabs\TabInterface | Interface was added. | +| Magento\Ui\Component\Wysiwyg\ConfigInterface | Interface was added. | +| Magento\Ui\Config\Argument\ParserInterface | Interface was added. | +| Magento\Ui\Config\ConverterInterface | Interface was added. | +| Magento\Ui\Controller\UiActionInterface | Interface was added. | +| Magento\Ui\DataProvider\AddFieldToCollectionInterface | Interface was added. | +| Magento\Ui\DataProvider\AddFilterToCollectionInterface | Interface was added. | +| Magento\Ui\DataProvider\Mapper\MapperInterface | Interface was added. | +| Magento\Ui\DataProvider\Modifier\PoolInterface | Interface was added. | +| Magento\Ui\Model\ColorPicker\ModeInterface | Interface was added. | +| Magento\Ui\Model\UrlInput\ConfigInterface | Interface was added. | +| Magento\UrlRewriteGraphQl\Model\Resolver\UrlRewrite\CustomUrlLocatorInterface | Interface was added. | +| Magento\User\Model\Spi\NotificationExceptionInterface | Interface was added. | +| Magento\User\Model\Spi\NotificatorInterface | Interface was added. | +| Magento\Vault\Block\Customer\IconInterface | Interface was added. | +| Magento\VersionsCms\Model\CurrentNodeResolverInterface | Interface was added. | +| Magento\VersionsCms\Model\Hierarchy\ConfigInterface | Interface was added. | +| Magento\VisualMerchandiser\Api\RuleFactoryPoolInterface | Interface was added. | +| Magento\Webapi\Controller\Rest\RequestProcessorInterface | Interface was added. | +| Magento\Widget\Block\BlockInterface | Interface was added. | +| Magento\Wishlist\Controller\IndexInterface | Interface was added. | +| Magento\Wishlist\Controller\WishlistProviderInterface | Interface was added. | +| Magento\Wishlist\Model\AuthenticationStateInterface | Interface was added. | +| Magento\Wishlist\Model\ResourceModel\Item\Product\CollectionBuilderInterface | Interface was added. | +| Magento\Wishlist\Model\Wishlist\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | diff --git a/src/_includes/backward-incompatible-changes/commerce/2.4.4-2.4.5.md b/src/_includes/backward-incompatible-changes/commerce/2.4.4-2.4.5.md index c211f245345..081f33070de 100644 --- a/src/_includes/backward-incompatible-changes/commerce/2.4.4-2.4.5.md +++ b/src/_includes/backward-incompatible-changes/commerce/2.4.4-2.4.5.md @@ -1,858 +1,859 @@ #### Class changes {#ee-244-245-class} -| What changed | How it changed | -| --- | --- | +| What changed | How it changed | +| -------------------------------------------------------------------------------- | ------------------------------------ | +| Magento\CatalogInventory\Model\Source\Stock::\_\_construct | [public] Method has been added. | | Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\CustomOptions::formatPrice | [protected] Method has been removed. | -| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav::formatPrice | [protected] Method has been removed. | -| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\General::formatPrice | [protected] Method has been removed. | -| Magento\GoogleTagManager\Model\Config\Source\GtagAccountType | Class was added. | -| Magento\GoogleTagManager\Block\GtagGa | Class was added. | -| Magento\GoogleTagManager\Block\Adminhtml\GtagGa | Class was added. | -| Magento\GoogleTagManager\Block\Adminhtml\Creditmemo\GtagGa | Class was added. | -| Magento\GoogleGtag\Block\Ga | Class was added. | -| Magento\CatalogInventory\Model\Source\Stock::\_\_construct | [public] Method has been added. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav::formatPrice | [protected] Method has been removed. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\General::formatPrice | [protected] Method has been removed. | +| Magento\GoogleGtag\Block\Ga | Class was added. | +| Magento\GoogleTagManager\Block\Adminhtml\Creditmemo\GtagGa | Class was added. | +| Magento\GoogleTagManager\Block\Adminhtml\GtagGa | Class was added. | +| Magento\GoogleTagManager\Block\GtagGa | Class was added. | +| Magento\GoogleTagManager\Model\Config\Source\GtagAccountType | Class was added. | + #### Database changes {#ee-244-245-database} -| What changed | How it changed | -| --- | --- | -| salesrule\_label/SALESRULE\_LABEL\_RULE\_ID\_SEQUENCE\_SALESRULE\_SEQUENCE\_VALUE | Foreign key was removed | -| salesrule\_label/SALESRULE\_LABEL\_ROW\_ID\_SALESRULE\_ROW\_ID | Foreign key was added | -| catalog\_product\_index\_price\_tmp/PRIMARY | Primary key was changed | -| magento\_catalogpermissions\_index\_product/PRIMARY | Primary key was added | -| magento\_catalogpermissions\_index\_product\_replica/PRIMARY | Primary key was added | -| salesrule\_label/SALESRULE\_LABEL\_RULE\_ID\_STORE\_ID | Unique key was added | -| salesrule\_label/SALESRULE\_LABEL\_ROW\_ID\_STORE\_ID | Unique key was added | -| salesrule\_label/rule\_id | Column was added | -| salesrule\_label/row\_id | Column was added | -| customer\_eav\_attribute/grid\_filter\_condition\_type | Column was added | -| catalog\_product\_index\_price\_tmp/id | Column was added | -| magento\_catalogpermissions\_index\_product/index\_id | Column was added | -| magento\_catalogpermissions\_index\_product\_replica/index\_id | Column was added | +| What changed | How it changed | +| ------------------------------------------------------------------------- | ----------------------- | +| catalog_product_index_price_tmp/PRIMARY | Primary key was changed | +| catalog_product_index_price_tmp/id | Column was added | +| customer_eav_attribute/grid_filter_condition_type | Column was added | +| magento_catalogpermissions_index_product/PRIMARY | Primary key was added | +| magento_catalogpermissions_index_product/index_id | Column was added | +| magento_catalogpermissions_index_product_replica/PRIMARY | Primary key was added | +| magento_catalogpermissions_index_product_replica/index_id | Column was added | +| salesrule_label/SALESRULE_LABEL_ROW_ID_SALESRULE_ROW_ID | Foreign key was added | +| salesrule_label/SALESRULE_LABEL_ROW_ID_STORE_ID | Unique key was added | +| salesrule_label/SALESRULE_LABEL_RULE_ID_SEQUENCE_SALESRULE_SEQUENCE_VALUE | Foreign key was removed | +| salesrule_label/SALESRULE_LABEL_RULE_ID_STORE_ID | Unique key was added | +| salesrule_label/row_id | Column was added | +| salesrule_label/rule_id | Column was added | #### System changes {#ee-244-245-system} -| What changed | How it changed | -| --- | --- | -| recaptcha\_frontend | A section-node was added | -| recaptcha\_frontend/type\_for | A group-node was added | -| recaptcha\_frontend/type\_for/wishlist | A field-node was added | -| recaptcha\_frontend/type\_for/customer\_invite\_create | A field-node was added | -| recaptcha\_frontend/type\_for/giftcard | A field-node was added | -| webapi/graphql\_session | A group-node was added | -| webapi/graphql\_session/disabled | A field-node was added | -| web\_api | A section-node was added | -| web\_api/graphql | A group-node was added | -| web\_api/graphql/include\_dynamic\_attributes\_as\_entity\_type\_fields | A field-node was added | -| google/gtag | A group-node was added | -| google/gtag/analytics4 | A group-node was added | -| google/gtag/analytics4/type | A field-node was added | -| google/gtag/analytics4/measurement\_id | A field-node was added | -| google/gtag/analytics4/container\_id | A field-node was added | -| google/gtag/analytics4/catalog\_page\_list\_value | A field-node was added | -| google/gtag/analytics4/crosssell\_block\_list\_value | A field-node was added | -| google/gtag/analytics4/upsell\_block\_list\_value | A field-node was added | -| google/gtag/analytics4/related\_block\_list\_value | A field-node was added | -| google/gtag/analytics4/search\_page\_list\_value | A field-node was added | -| google/gtag/analytics4/promotions\_list\_value | A field-node was added | -| google/gtag/analytics4/experiments | A field-node was added | -| google/gtag/analytics4/active | A field-node was added | -| google/gtag/adwords | A group-node was added | -| google/gtag/adwords/active | A field-node was added | -| google/gtag/adwords/conversion\_id | A field-node was added | -| google/gtag/adwords/conversion\_label | A field-node was added | +| What changed | How it changed | +| ---------------------------------------------------------------- | ------------------------ | +| google/gtag | A group-node was added | +| google/gtag/adwords | A group-node was added | +| google/gtag/adwords/active | A field-node was added | +| google/gtag/adwords/conversion_id | A field-node was added | +| google/gtag/adwords/conversion_label | A field-node was added | +| google/gtag/analytics4 | A group-node was added | +| google/gtag/analytics4/active | A field-node was added | +| google/gtag/analytics4/catalog_page_list_value | A field-node was added | +| google/gtag/analytics4/container_id | A field-node was added | +| google/gtag/analytics4/crosssell_block_list_value | A field-node was added | +| google/gtag/analytics4/experiments | A field-node was added | +| google/gtag/analytics4/measurement_id | A field-node was added | +| google/gtag/analytics4/promotions_list_value | A field-node was added | +| google/gtag/analytics4/related_block_list_value | A field-node was added | +| google/gtag/analytics4/search_page_list_value | A field-node was added | +| google/gtag/analytics4/type | A field-node was added | +| google/gtag/analytics4/upsell_block_list_value | A field-node was added | +| recaptcha_frontend | A section-node was added | +| recaptcha_frontend/type_for | A group-node was added | +| recaptcha_frontend/type_for/customer_invite_create | A field-node was added | +| recaptcha_frontend/type_for/giftcard | A field-node was added | +| recaptcha_frontend/type_for/wishlist | A field-node was added | +| web_api | A section-node was added | +| web_api/graphql | A group-node was added | +| web_api/graphql/include_dynamic_attributes_as_entity_type_fields | A field-node was added | +| webapi/graphql_session | A group-node was added | +| webapi/graphql_session/disabled | A field-node was added | #### Class API membership changes {#ee-244-245-class-api-membership} -| What changed | How it changed | -| --- | --- | -| Magento\Wishlist\Model\Wishlist\Data\WishlistItem | Class was added. | -| Magento\VisualMerchandiser\Model\Sorting\Factory | Class was added. | -| Magento\VisualMerchandiser\Model\Rules\Factory | Class was added. | -| Magento\Ui\Component\Form\Fieldset\Factory | Class was added. | -| Magento\Ui\Component\Control\Container | Class was added. | -| Magento\TargetRule\Block\Product\AbstractProduct | Class was added. | -| Magento\Store\Ui\Component\Listing\Column\Store\Options | Class was added. | -| Magento\ScheduledImportExport\Model\Scheduled\Operation | Class was added. | -| Magento\Sales\Setup\SalesSetup | Class was added. | -| Magento\Sales\Model\Service\InvoiceService | Class was added. | -| Magento\Sales\Model\ResourceModel\Order\CollectionFactory | Class was added. | -| Magento\Sales\Model\ResourceModel\Order\Collection\Factory | Class was added. | -| Magento\Sales\Model\Order\CreditmemoFactory | Class was added. | -| Magento\Sales\Model\Order\Pdf\Total\DefaultTotal | Class was added. | -| Magento\Sales\Model\Order\Email\Sender\InvoiceSender | Class was added. | -| Magento\Sales\Model\Order\Email\Sender\OrderSender | Class was added. | -| Magento\Sales\Controller\Adminhtml\Order | Class was added. | -| Magento\SalesRule\Model\Validator | Class was added. | -| Magento\SalesRule\Api\Exception\CodeRequestLimitException | Class was added. | -| Magento\Quote\Setup\QuoteSetup | Class was added. | -| Magento\Quote\Model\Quote\Item\CartItemOptionsProcessor | Class was added. | -| Magento\Quote\Model\Quote\Item\Option | Class was added. | -| Magento\Quote\Model\Quote\Address\RateCollectorInterfaceFactory | Class was added. | -| Magento\Quote\Model\Cart\Data\CartItem | Class was added. | -| Magento\Paypal\Model\Billing\AbstractAgreement | Class was added. | -| Magento\Payment\Gateway\Config\Config | Class was added. | -| Magento\Indexer\Model\DimensionModes | Class was added. | -| Magento\ImportExport\Model\Export\Factory | Class was added. | -| Magento\GiftCardAccount\Api\Exception\TooManyAttemptsException | Class was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\AttributeAdapter | Class was added. | -| Magento\Deploy\Package\Package | Class was added. | -| Magento\Deploy\Package\PackageFile | Class was added. | -| Magento\Customer\Setup\CustomerSetup | Class was added. | -| Magento\Customer\Model\Context | Class was added. | -| Magento\Customer\Model\CustomerRegistry | Class was added. | -| Magento\Customer\Model\Url | Class was added. | -| Magento\Customer\Model\Metadata\FormFactory | Class was added. | -| Magento\Customer\Controller\RegistryConstants | Class was added. | -| Magento\Customer\Controller\Adminhtml\Index | Class was added. | -| Magento\Customer\Block\Adminhtml\Edit\GenericButton | Class was added. | -| Magento\Config\Block\System\Config\Form\Fieldset\Factory | Class was added. | -| Magento\Config\Block\System\Config\Form\Field\Factory | Class was added. | -| Magento\Cms\Model\Template\FilterProvider | Class was added. | -| Magento\Checkout\Model\Type\Onepage | Class was added. | -| Magento\Checkout\Controller\Cart | Class was added. | -| Magento\Checkout\Api\Exception\PaymentProcessingRateLimitExceededException | Class was added. | -| Magento\Catalog\Pricing\Price\FinalPrice | Class was added. | -| Magento\Catalog\Model\Config | Class was added. | +| What changed | How it changed | +| ----------------------------------------------------------------------------- | ---------------- | +| Magento\Analytics\ReportXml\DB\SelectBuilder | Class was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\SearchResult | Class was added. | +| Magento\Catalog\Block\Adminhtml\Product\Edit\Button\Generic | Class was added. | +| Magento\Catalog\Block\Product\ImageFactory | Class was added. | +| Magento\Catalog\Controller\Adminhtml\Product | Class was added. | +| Magento\Catalog\Model\Config | Class was added. | +| Magento\Catalog\Model\Layer\Filter\Item | Class was added. | +| Magento\Catalog\Model\Layer\Resolver | Class was added. | +| Magento\Catalog\Model\Product\Type\Price\Factory | Class was added. | | Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\IndexTableStructure | Class was added. | -| Magento\Catalog\Model\Product\Type\Price\Factory | Class was added. | -| Magento\Catalog\Model\Layer\Resolver | Class was added. | -| Magento\Catalog\Model\Layer\Filter\Item | Class was added. | -| Magento\Catalog\Controller\Adminhtml\Product | Class was added. | -| Magento\Catalog\Block\Product\ImageFactory | Class was added. | -| Magento\Catalog\Block\Adminhtml\Product\Edit\Button\Generic | Class was added. | -| Magento\CatalogGraphQl\Model\Resolver\Products\SearchResult | Class was added. | -| Magento\Analytics\ReportXml\DB\SelectBuilder | Class was added. | -| Magento\Framework\AclFactory | Class was added. | -| Magento\Framework\EventFactory | Class was added. | -| Magento\Framework\Url | Class was added. | -| Magento\Framework\UrlFactory | Class was added. | -| Magento\Framework\ValidatorFactory | Class was added. | -| Magento\Framework\Webapi\Exception | Class was added. | -| Magento\Framework\Webapi\Rest\Request | Class was added. | -| Magento\Framework\View\Asset | Class was added. | -| Magento\Framework\View\LayoutFactory | Class was added. | -| Magento\Framework\View\PageLayout\Config | Class was added. | -| Magento\Framework\View\Page\ConfigFactory | Class was added. | -| Magento\Framework\View\Layout\Reader\ContextFactory | Class was added. | -| Magento\Framework\View\Layout\Generator\ContextFactory | Class was added. | -| Magento\Framework\View\Helper\SecureHtmlRender\EventHandlerData | Class was added. | -| Magento\Framework\View\Helper\SecureHtmlRender\TagData | Class was added. | -| Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider | Class was added. | -| Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult | Class was added. | -| Magento\Framework\View\Element\Html\Select | Class was added. | -| Magento\Framework\View\Asset\FileFactory | Class was added. | -| Magento\Framework\View\Asset\File\FallbackContextFactory | Class was added. | -| Magento\Framework\Url\Helper\Data | Class was added. | -| Magento\Framework\Setup\Declaration\Schema\ElementHistory | Class was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Schema | Class was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Table | Class was added. | -| Magento\Framework\Setup\Declaration\Schema\Diff\DiffFactory | Class was added. | -| Magento\Framework\Setup\Declaration\Schema\Db\StatementAggregator | Class was added. | -| Magento\Framework\Session\Config | Class was added. | -| Magento\Framework\Session\SessionManager | Class was added. | -| Magento\Framework\Profiler\Driver\Standard\Stat | Class was added. | -| Magento\Framework\Module\Dir | Class was added. | -| Magento\Framework\Module\Manager | Class was added. | -| Magento\Framework\Module\Setup\MigrationFactory | Class was added. | -| Magento\Framework\Message\CollectionFactory | Class was added. | -| Magento\Framework\Mail\Address | Class was added. | -| Magento\Framework\Mail\TransportInterfaceFactory | Class was added. | -| Magento\Framework\Logger\Handler\Base | Class was added. | -| Magento\Framework\Image\AdapterFactory | Class was added. | -| Magento\Framework\Image\Adapter\AbstractAdapter | Class was added. | -| Magento\Framework\HTTP\PhpEnvironment\RemoteAddress | Class was added. | -| Magento\Framework\HTTP\PhpEnvironment\Request | Class was added. | -| Magento\Framework\HTTP\Client\Curl | Class was added. | -| Magento\Framework\HTTP\AsyncClient\Request | Class was added. | -| Magento\Framework\HTTP\AsyncClient\Response | Class was added. | -| Magento\Framework\HTTP\Adapter\Curl | Class was added. | -| Magento\Framework\GraphQl\Schema | Class was added. | -| Magento\Framework\GraphQl\Schema\Type\ResolveInfo | Class was added. | -| Magento\Framework\GraphQl\Query\Resolver\BatchResponse | Class was added. | -| Magento\Framework\GraphQl\Query\Resolver\Value | Class was added. | -| Magento\Framework\GraphQl\Exception\GraphQlAuthenticationException | Class was added. | -| Magento\Framework\GraphQl\Exception\GraphQlAuthorizationException | Class was added. | -| Magento\Framework\GraphQl\Exception\GraphQlInputException | Class was added. | -| Magento\Framework\GraphQl\Exception\GraphQlNoSuchEntityException | Class was added. | -| Magento\Framework\GraphQl\Config\Element\Field | Class was added. | -| Magento\Framework\Filesystem\DirectoryList | Class was added. | -| Magento\Framework\Filesystem\Io\File | Class was added. | -| Magento\Framework\Filesystem\Directory\ReadFactory | Class was added. | -| Magento\Framework\File\Csv | Class was added. | -| Magento\Framework\File\UploaderFactory | Class was added. | -| Magento\Framework\Event\ObserverFactory | Class was added. | -| Magento\Framework\DataObject\Factory | Class was added. | -| Magento\Framework\Data\FormFactory | Class was added. | -| Magento\Framework\Data\TreeFactory | Class was added. | -| Magento\Framework\Data\Tree\Dbp | Class was added. | -| Magento\Framework\Data\Tree\NodeFactory | Class was added. | -| Magento\Framework\Data\Form\Element\Factory | Class was added. | -| Magento\Framework\Data\Form\Element\Image | Class was added. | -| Magento\Framework\DB\Helper | Class was added. | -| Magento\Framework\DB\Transaction | Class was added. | -| Magento\Framework\DB\Helper\AbstractHelper | Class was added. | -| Magento\Framework\DB\Ddl\TriggerFactory | Class was added. | -| Magento\Framework\DB\Adapter\Pdo\MysqlFactory | Class was added. | -| Magento\Framework\Convert\DataObject | Class was added. | -| Magento\Framework\Controller\Result\Forward | Class was added. | -| Magento\Framework\Controller\Result\JsonFactory | Class was added. | -| Magento\Framework\Controller\Result\Raw | Class was added. | -| Magento\Framework\Console\Cli | Class was added. | -| Magento\Framework\Config\ViewFactory | Class was added. | -| Magento\Framework\Config\Data\ConfigDataFactory | Class was added. | -| Magento\Framework\App\Area | Class was added. | -| Magento\Framework\App\Response\Http | Class was added. | -| Magento\Framework\App\Response\Http\FileFactory | Class was added. | -| Magento\Framework\App\Request\Http | Class was added. | -| Magento\Framework\App\Request\InvalidRequestException | Class was added. | -| Magento\Framework\App\Http\Context | Class was added. | -| Magento\Framework\App\Filesystem\DirectoryList | Class was added. | -| Magento\Framework\App\Config\ValueFactory | Class was added. | -| Magento\Framework\App\Cache\Type\Config | Class was added. | -| Magento\Framework\Api\AbstractSimpleObject | Class was added. | -| Magento\Framework\Api\SearchCriteriaBuilder | Class was added. | -| Magento\Framework\Api\Search\DocumentFactory | Class was added. | -| Magento\Framework\Api\Search\SearchCriteriaFactory | Class was added. | -| Magento\Framework\Api\ExtensionAttribute\JoinData | Class was added. | -| Magento\Framework\Api\ExtensionAttribute\JoinDataInterfaceFactory | Class was added. | -| Magento\Framework\Acl\AclResourceFactory | Class was added. | -| Magento\Framework\Amqp\ConfigFactory | Class was added. | +| Magento\Catalog\Pricing\Price\FinalPrice | Class was added. | +| Magento\Checkout\Api\Exception\PaymentProcessingRateLimitExceededException | Class was added. | +| Magento\Checkout\Controller\Cart | Class was added. | +| Magento\Checkout\Model\Type\Onepage | Class was added. | +| Magento\Cms\Model\Template\FilterProvider | Class was added. | +| Magento\Config\Block\System\Config\Form\Field\Factory | Class was added. | +| Magento\Config\Block\System\Config\Form\Fieldset\Factory | Class was added. | +| Magento\Customer\Block\Adminhtml\Edit\GenericButton | Class was added. | +| Magento\Customer\Controller\Adminhtml\Index | Class was added. | +| Magento\Customer\Controller\RegistryConstants | Class was added. | +| Magento\Customer\Model\Context | Class was added. | +| Magento\Customer\Model\CustomerRegistry | Class was added. | +| Magento\Customer\Model\Metadata\FormFactory | Class was added. | +| Magento\Customer\Model\Url | Class was added. | +| Magento\Customer\Setup\CustomerSetup | Class was added. | +| Magento\Deploy\Package\Package | Class was added. | +| Magento\Deploy\Package\PackageFile | Class was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\AttributeAdapter | Class was added. | +| Magento\Framework\AclFactory | Class was added. | +| Magento\Framework\Acl\AclResourceFactory | Class was added. | +| Magento\Framework\Amqp\ConfigFactory | Class was added. | +| Magento\Framework\Api\AbstractSimpleObject | Class was added. | +| Magento\Framework\Api\ExtensionAttribute\JoinData | Class was added. | +| Magento\Framework\Api\ExtensionAttribute\JoinDataInterfaceFactory | Class was added. | +| Magento\Framework\Api\SearchCriteriaBuilder | Class was added. | +| Magento\Framework\Api\Search\DocumentFactory | Class was added. | +| Magento\Framework\Api\Search\SearchCriteriaFactory | Class was added. | +| Magento\Framework\App\Area | Class was added. | +| Magento\Framework\App\Cache\Type\Config | Class was added. | +| Magento\Framework\App\Config\ValueFactory | Class was added. | +| Magento\Framework\App\Filesystem\DirectoryList | Class was added. | +| Magento\Framework\App\Http\Context | Class was added. | +| Magento\Framework\App\Request\Http | Class was added. | +| Magento\Framework\App\Request\InvalidRequestException | Class was added. | +| Magento\Framework\App\Response\Http | Class was added. | +| Magento\Framework\App\Response\Http\FileFactory | Class was added. | +| Magento\Framework\Config\Data\ConfigDataFactory | Class was added. | +| Magento\Framework\Config\ViewFactory | Class was added. | +| Magento\Framework\Console\Cli | Class was added. | +| Magento\Framework\Controller\Result\Forward | Class was added. | +| Magento\Framework\Controller\Result\JsonFactory | Class was added. | +| Magento\Framework\Controller\Result\Raw | Class was added. | +| Magento\Framework\Convert\DataObject | Class was added. | +| Magento\Framework\DB\Adapter\Pdo\MysqlFactory | Class was added. | +| Magento\Framework\DB\Ddl\TriggerFactory | Class was added. | +| Magento\Framework\DB\Helper | Class was added. | +| Magento\Framework\DB\Helper\AbstractHelper | Class was added. | +| Magento\Framework\DB\Transaction | Class was added. | +| Magento\Framework\DataObject\Factory | Class was added. | +| Magento\Framework\Data\FormFactory | Class was added. | +| Magento\Framework\Data\Form\Element\Factory | Class was added. | +| Magento\Framework\Data\Form\Element\Image | Class was added. | +| Magento\Framework\Data\TreeFactory | Class was added. | +| Magento\Framework\Data\Tree\Dbp | Class was added. | +| Magento\Framework\Data\Tree\NodeFactory | Class was added. | +| Magento\Framework\EventFactory | Class was added. | +| Magento\Framework\Event\ObserverFactory | Class was added. | +| Magento\Framework\File\Csv | Class was added. | +| Magento\Framework\File\UploaderFactory | Class was added. | +| Magento\Framework\Filesystem\DirectoryList | Class was added. | +| Magento\Framework\Filesystem\Directory\ReadFactory | Class was added. | +| Magento\Framework\Filesystem\Io\File | Class was added. | +| Magento\Framework\GraphQl\Config\Element\Field | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlAuthenticationException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlAuthorizationException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlInputException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlNoSuchEntityException | Class was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchResponse | Class was added. | +| Magento\Framework\GraphQl\Query\Resolver\Value | Class was added. | +| Magento\Framework\GraphQl\Schema | Class was added. | +| Magento\Framework\GraphQl\Schema\Type\ResolveInfo | Class was added. | +| Magento\Framework\HTTP\Adapter\Curl | Class was added. | +| Magento\Framework\HTTP\AsyncClient\Request | Class was added. | +| Magento\Framework\HTTP\AsyncClient\Response | Class was added. | +| Magento\Framework\HTTP\Client\Curl | Class was added. | +| Magento\Framework\HTTP\PhpEnvironment\RemoteAddress | Class was added. | +| Magento\Framework\HTTP\PhpEnvironment\Request | Class was added. | +| Magento\Framework\Image\AdapterFactory | Class was added. | +| Magento\Framework\Image\Adapter\AbstractAdapter | Class was added. | +| Magento\Framework\Logger\Handler\Base | Class was added. | +| Magento\Framework\Mail\Address | Class was added. | +| Magento\Framework\Mail\TransportInterfaceFactory | Class was added. | +| Magento\Framework\Message\CollectionFactory | Class was added. | +| Magento\Framework\Module\Dir | Class was added. | +| Magento\Framework\Module\Manager | Class was added. | +| Magento\Framework\Module\Setup\MigrationFactory | Class was added. | +| Magento\Framework\Profiler\Driver\Standard\Stat | Class was added. | +| Magento\Framework\Session\Config | Class was added. | +| Magento\Framework\Session\SessionManager | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\StatementAggregator | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Diff\DiffFactory | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Schema | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Table | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\ElementHistory | Class was added. | +| Magento\Framework\Url | Class was added. | +| Magento\Framework\UrlFactory | Class was added. | +| Magento\Framework\Url\Helper\Data | Class was added. | +| Magento\Framework\ValidatorFactory | Class was added. | +| Magento\Framework\View\Asset | Class was added. | +| Magento\Framework\View\Asset\FileFactory | Class was added. | +| Magento\Framework\View\Asset\File\FallbackContextFactory | Class was added. | +| Magento\Framework\View\Element\Html\Select | Class was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider | Class was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult | Class was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\EventHandlerData | Class was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\TagData | Class was added. | +| Magento\Framework\View\LayoutFactory | Class was added. | +| Magento\Framework\View\Layout\Generator\ContextFactory | Class was added. | +| Magento\Framework\View\Layout\Reader\ContextFactory | Class was added. | +| Magento\Framework\View\PageLayout\Config | Class was added. | +| Magento\Framework\View\Page\ConfigFactory | Class was added. | +| Magento\Framework\Webapi\Exception | Class was added. | +| Magento\Framework\Webapi\Rest\Request | Class was added. | +| Magento\GiftCardAccount\Api\Exception\TooManyAttemptsException | Class was added. | +| Magento\ImportExport\Model\Export\Factory | Class was added. | +| Magento\Indexer\Model\DimensionModes | Class was added. | +| Magento\Payment\Gateway\Config\Config | Class was added. | +| Magento\Paypal\Model\Billing\AbstractAgreement | Class was added. | +| Magento\Quote\Model\Cart\Data\CartItem | Class was added. | +| Magento\Quote\Model\Quote\Address\RateCollectorInterfaceFactory | Class was added. | +| Magento\Quote\Model\Quote\Item\CartItemOptionsProcessor | Class was added. | +| Magento\Quote\Model\Quote\Item\Option | Class was added. | +| Magento\Quote\Setup\QuoteSetup | Class was added. | +| Magento\SalesRule\Api\Exception\CodeRequestLimitException | Class was added. | +| Magento\SalesRule\Model\Validator | Class was added. | +| Magento\Sales\Controller\Adminhtml\Order | Class was added. | +| Magento\Sales\Model\Order\CreditmemoFactory | Class was added. | +| Magento\Sales\Model\Order\Email\Sender\InvoiceSender | Class was added. | +| Magento\Sales\Model\Order\Email\Sender\OrderSender | Class was added. | +| Magento\Sales\Model\Order\Pdf\Total\DefaultTotal | Class was added. | +| Magento\Sales\Model\ResourceModel\Order\CollectionFactory | Class was added. | +| Magento\Sales\Model\ResourceModel\Order\Collection\Factory | Class was added. | +| Magento\Sales\Model\Service\InvoiceService | Class was added. | +| Magento\Sales\Setup\SalesSetup | Class was added. | +| Magento\ScheduledImportExport\Model\Scheduled\Operation | Class was added. | +| Magento\Store\Ui\Component\Listing\Column\Store\Options | Class was added. | +| Magento\TargetRule\Block\Product\AbstractProduct | Class was added. | +| Magento\Ui\Component\Control\Container | Class was added. | +| Magento\Ui\Component\Form\Fieldset\Factory | Class was added. | +| Magento\VisualMerchandiser\Model\Rules\Factory | Class was added. | +| Magento\VisualMerchandiser\Model\Sorting\Factory | Class was added. | +| Magento\Wishlist\Model\Wishlist\Data\WishlistItem | Class was added. | #### Interface API membership changes {#ee-244-245-interface-api-membership} -| What changed | How it changed | -| --- | --- | -| Magento\Wishlist\Model\AuthenticationStateInterface | Interface was added. | -| Magento\Wishlist\Model\Wishlist\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | -| Magento\Wishlist\Model\ResourceModel\Item\Product\CollectionBuilderInterface | Interface was added. | -| Magento\Wishlist\Controller\IndexInterface | Interface was added. | -| Magento\Wishlist\Controller\WishlistProviderInterface | Interface was added. | -| Magento\Widget\Block\BlockInterface | Interface was added. | -| Magento\Webapi\Controller\Rest\RequestProcessorInterface | Interface was added. | -| Magento\VisualMerchandiser\Api\RuleFactoryPoolInterface | Interface was added. | -| Magento\VersionsCms\Model\CurrentNodeResolverInterface | Interface was added. | -| Magento\VersionsCms\Model\Hierarchy\ConfigInterface | Interface was added. | -| Magento\Vault\Block\Customer\IconInterface | Interface was added. | -| Magento\User\Model\Spi\NotificationExceptionInterface | Interface was added. | -| Magento\User\Model\Spi\NotificatorInterface | Interface was added. | -| Magento\UrlRewriteGraphQl\Model\Resolver\UrlRewrite\CustomUrlLocatorInterface | Interface was added. | -| Magento\Ui\Model\UrlInput\ConfigInterface | Interface was added. | -| Magento\Ui\Model\ColorPicker\ModeInterface | Interface was added. | -| Magento\Ui\DataProvider\AddFieldToCollectionInterface | Interface was added. | -| Magento\Ui\DataProvider\AddFilterToCollectionInterface | Interface was added. | -| Magento\Ui\DataProvider\Modifier\PoolInterface | Interface was added. | -| Magento\Ui\DataProvider\Mapper\MapperInterface | Interface was added. | -| Magento\Ui\Controller\UiActionInterface | Interface was added. | -| Magento\Ui\Config\ConverterInterface | Interface was added. | -| Magento\Ui\Config\Argument\ParserInterface | Interface was added. | -| Magento\Ui\Component\Wysiwyg\ConfigInterface | Interface was added. | -| Magento\Ui\Component\Layout\Tabs\TabInterface | Interface was added. | -| Magento\Ui\Component\Form\Element\DataType\DataTypeInterface | Interface was added. | -| Magento\Theme\Model\Theme\StoreThemesResolverInterface | Interface was added. | -| Magento\Theme\Model\Design\Config\MetadataProviderInterface | Interface was added. | -| Magento\Tax\Model\TaxClass\Type\TypeInterface | Interface was added. | -| Magento\Tax\Model\System\Message\NotificationInterface | Interface was added. | -| Magento\Tax\Api\TaxAddressManagerInterface | Interface was added. | -| Magento\Swat\Api\Data\JwtInterface | Interface was added. | -| Magento\Swat\Api\Data\SwatKeyPairInterface | Interface was added. | -| Magento\Support\Model\Report\ConfigInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcherInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcher\ContextInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcher\RedirectDataInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcher\RedirectDataPostprocessorInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcher\RedirectDataPreprocessorInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcher\RedirectDataSerializerInterface | Interface was added. | -| Magento\Store\Model\StoreResolver\ReaderInterface | Interface was added. | -| Magento\Store\Model\Config\Importer\Processor\ProcessorInterface | Interface was added. | -| Magento\Staging\Ui\Component\Listing\Column\Entity\UrlProviderInterface | Interface was added. | -| Magento\Staging\Model\StagingApplierInterface | Interface was added. | -| Magento\Staging\Model\VersionHistoryInterface | Interface was added. | -| Magento\Staging\Model\Update\IncludesInterface | Interface was added. | -| Magento\Staging\Model\Update\Grid\ActionDataProviderInterface | Interface was added. | -| Magento\Staging\Model\Operation\Update\UpdateProcessorInterface | Interface was added. | -| Magento\Staging\Model\Entity\BuilderInterface | Interface was added. | -| Magento\Staging\Model\Entity\HydratorInterface | Interface was added. | -| Magento\Staging\Model\Entity\PersisterInterface | Interface was added. | -| Magento\Staging\Model\Entity\RemoverInterface | Interface was added. | -| Magento\Staging\Model\Entity\RetrieverInterface | Interface was added. | -| Magento\Staging\Model\Entity\Update\Action\TransactionExecutorInterface | Interface was added. | -| Magento\Staging\Block\Adminhtml\Update\Entity\EntityProviderInterface | Interface was added. | -| Magento\Staging\Block\Adminhtml\Update\Entity\StoreIdProviderInterface | Interface was added. | -| Magento\Shipping\Model\Carrier\Source\GenericInterface | Interface was added. | -| Magento\Security\Api\Data\UserExpirationInterface | Interface was added. | -| Magento\Search\Setup\InstallConfigInterface | Interface was added. | -| Magento\Search\Model\SearchEngine\ValidatorInterface | Interface was added. | -| Magento\ScheduledImportExport\Model\Scheduled\Operation\OperationInterface | Interface was added. | -| Magento\Sales\Model\ValidatorInterface | Interface was added. | -| Magento\Sales\Model\Spi\CreditmemoCommentResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\CreditmemoItemResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\CreditmemoResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\InvoiceCommentResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\InvoiceItemResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\InvoiceResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\OrderAddressResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\OrderItemResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\OrderPaymentResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\OrderResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\OrderStatusHistoryResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\ShipmentCommentResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\ShipmentItemResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\ShipmentResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\ShipmentTrackResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\TransactionResourceInterface | Interface was added. | -| Magento\Sales\Model\ResourceModel\Provider\NotSyncedDataProviderInterface | Interface was added. | -| Magento\Sales\Model\ResourceModel\Order\CollectionFactoryInterface | Interface was added. | -| Magento\Sales\Model\Order\OrderValidatorInterface | Interface was added. | -| Magento\Sales\Model\Order\Shipment\SenderInterface | Interface was added. | -| Magento\Sales\Model\Order\Shipment\ShipmentValidatorInterface | Interface was added. | -| Magento\Sales\Model\Order\Payment\Transaction\BuilderInterface | Interface was added. | -| Magento\Sales\Model\Order\Payment\Transaction\ManagerInterface | Interface was added. | -| Magento\Sales\Model\Order\Payment\State\CommandInterface | Interface was added. | -| Magento\Sales\Model\Order\Invoice\InvoiceValidatorInterface | Interface was added. | -| Magento\Sales\Model\Order\Invoice\SenderInterface | Interface was added. | -| Magento\Sales\Model\Order\Email\Container\IdentityInterface | Interface was added. | -| Magento\Sales\Model\Order\Creditmemo\CreditmemoValidatorInterface | Interface was added. | -| Magento\Sales\Model\Order\Creditmemo\ItemCreationValidatorInterface | Interface was added. | -| Magento\Sales\Model\Order\Creditmemo\SenderInterface | Interface was added. | -| Magento\Sales\Controller\OrderInterface | Interface was added. | -| Magento\Sales\Controller\AbstractController\OrderLoaderInterface | Interface was added. | -| Magento\Sales\Controller\AbstractController\OrderViewAuthorizationInterface | Interface was added. | -| Magento\Sales\Api\OrderCustomerDelegateInterface | Interface was added. | -| Magento\Sales\Api\PaymentFailuresInterface | Interface was added. | -| Magento\SalesRule\Model\Spi\CodeLimitManagerInterface | Interface was added. | -| Magento\SalesRule\Model\Spi\QuoteResetAppliedRulesInterface | Interface was added. | -| Magento\SalesRule\Model\Spi\RuleQuoteRecollectTotalsInterface | Interface was added. | -| Magento\SalesRule\Api\Data\DiscountDataInterface | Interface was added. | -| Magento\SalesRule\Api\Data\RuleDiscountInterface | Interface was added. | -| Magento\SalesGraphQl\Model\Shipment\Item\FormatterInterface | Interface was added. | -| Magento\Rma\Model\Spi\CommentResourceInterface | Interface was added. | -| Magento\Rma\Model\Spi\RmaResourceInterface | Interface was added. | -| Magento\Rma\Model\Spi\TrackResourceInterface | Interface was added. | -| Magento\Reward\Observer\PlaceOrder\RestrictionInterface | Interface was added. | -| Magento\RewardGraphQl\Model\Formatter\Customer\FormatterInterface | Interface was added. | -| Magento\RemoteStorage\FilesystemInterface | Interface was added. | -| Magento\RemoteStorage\Driver\DriverFactoryInterface | Interface was added. | -| Magento\RemoteStorage\Driver\RemoteDriverInterface | Interface was added. | -| Magento\ReleaseNotification\Model\ContentProviderInterface | Interface was added. | -| Magento\Quote\Model\ValidationRules\QuoteValidationRuleInterface | Interface was added. | -| Magento\Quote\Model\Quote\Item\CartItemProcessorInterface | Interface was added. | -| Magento\Quote\Model\Quote\Address\CustomAttributeListInterface | Interface was added. | -| Magento\Quote\Model\Quote\Address\Total\CollectorInterface | Interface was added. | -| Magento\Quote\Model\Quote\Address\Total\ReaderInterface | Interface was added. | -| Magento\Quote\Model\Product\QuoteItemsCleanerInterface | Interface was added. | -| Magento\Quote\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | -| Magento\Quote\Api\ChangeQuoteControlInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\CartItem\DataProvider\CustomizableOptionValueInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\CartItem\DataProvider\Processor\ItemDataProcessorInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\Cart\SetShippingAddressesOnCartInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\Cart\SetShippingMethodsOnCartInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\Cart\Payment\AdditionalDataProviderInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | -| Magento\Paypal\Model\IpnInterface | Interface was added. | -| Magento\Paypal\Model\Payflow\Service\Response\Handler\HandlerInterface | Interface was added. | -| Magento\Paypal\Model\Billing\Agreement\MethodInterface | Interface was added. | -| Magento\Paypal\Helper\Shortcut\ValidatorInterface | Interface was added. | -| Magento\Payment\Model\Method\TransparentInterface | Interface was added. | -| Magento\Payment\Api\Data\PaymentAdditionalInfoInterface | Interface was added. | -| Magento\PageCache\Model\Spi\PageCacheTagsPreprocessorInterface | Interface was added. | -| Magento\Newsletter\Model\SubscriptionManagerInterface | Interface was added. | -| Magento\MultipleWishlist\Model\Search\Strategy\StrategyInterface | Interface was added. | -| Magento\MultipleWishlist\Controller\IndexInterface | Interface was added. | -| Magento\Msrp\Pricing\MsrpPriceCalculatorInterface | Interface was added. | -| Magento\MediaGalleryUiApi\Api\ConfigInterface | Interface was added. | -| Magento\MediaGallerySynchronizationApi\Model\CreateAssetFromFileInterface | Interface was added. | -| Magento\MediaGallerySynchronizationApi\Model\FetchBatchesInterface | Interface was added. | -| Magento\MediaGallerySynchronizationApi\Model\ImportFilesInterface | Interface was added. | -| Magento\MediaGallerySynchronizationApi\Api\SynchronizeFilesInterface | Interface was added. | -| Magento\MediaGallerySynchronizationApi\Api\SynchronizeInterface | Interface was added. | -| Magento\MediaGalleryRenditionsApi\Api\GenerateRenditionsInterface | Interface was added. | -| Magento\MediaGalleryRenditionsApi\Api\GetRenditionPathInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\FileInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\ReadFileInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\ReadMetadataInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\SegmentInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\WriteFileInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\WriteMetadataInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Api\AddMetadataInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Api\ExtractMetadataInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Api\Data\MetadataInterface | Interface was added. | -| Magento\MediaGalleryApi\Model\ExcludedPatternsConfigInterface | Interface was added. | -| Magento\MediaGalleryApi\Api\SearchAssetsInterface | Interface was added. | -| Magento\MediaContentSynchronizationApi\Model\GetEntitiesInterface | Interface was added. | -| Magento\MediaContentSynchronizationApi\Api\SynchronizeIdentitiesInterface | Interface was added. | -| Magento\MediaContentSynchronizationApi\Api\SynchronizeInterface | Interface was added. | -| Magento\MediaContentApi\Model\GetAssetIdsByContentFieldInterface | Interface was added. | -| Magento\MediaContentApi\Model\SearchPatternConfigInterface | Interface was added. | -| Magento\MediaContentApi\Api\GetAssetIdsByContentFieldInterface | Interface was added. | -| Magento\MediaContentApi\Api\UpdateContentAssetLinksInterface | Interface was added. | -| Magento\LoginAsCustomerAssistance\Api\ConfigInterface | Interface was added. | -| Magento\LoginAsCustomerAssistance\Api\IsAssistanceEnabledInterface | Interface was added. | -| Magento\LoginAsCustomerAssistance\Api\SetAssistanceInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerAdminIdInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerCustomerIdInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\IsLoginAsCustomerEnabledForCustomerInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerAdminIdInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerCustomerIdInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\Data\IsLoginAsCustomerEnabledForCustomerResultInterface | Interface was added. | -| Magento\Invitation\Controller\Customer\AccountInterface | Interface was added. | -| Magento\InventoryIndexer\Indexer\SelectBuilderInterface | Interface was added. | -| Magento\Integration\Model\Oauth\Token\RequestLog\ReaderInterface | Interface was added. | -| Magento\Integration\Model\Oauth\Token\RequestLog\WriterInterface | Interface was added. | -| Magento\Indexer\Model\ModeSwitcherInterface | Interface was added. | -| Magento\Indexer\Model\Source\DataInterface | Interface was added. | -| Magento\ImportExport\Model\Report\ReportProcessorInterface | Interface was added. | -| Magento\ImportExport\Api\Data\ExtendedExportInfoInterface | Interface was added. | -| Magento\GraphQl\Model\Query\ContextInterface | Interface was added. | -| Magento\GraphQl\Model\Query\ContextParametersInterface | Interface was added. | -| Magento\GraphQl\Model\Query\ContextParametersProcessorInterface | Interface was added. | -| Magento\GraphQl\Controller\HttpHeaderProcessorInterface | Interface was added. | -| Magento\GraphQl\Controller\HttpRequestValidatorInterface | Interface was added. | -| Magento\GiftRegistry\Model\Attribute\ConfigInterface | Interface was added. | -| Magento\GiftCardAccount\Model\Spi\GiftCardAccountManagerInterface | Interface was added. | -| Magento\GiftCardAccount\Model\Spi\GiftCardAccountResourceInterface | Interface was added. | -| Magento\GiftCardAccount\Model\Spi\UsageAttemptFactoryInterface | Interface was added. | -| Magento\GiftCardAccount\Model\Spi\UsageAttemptsManagerInterface | Interface was added. | -| Magento\GiftCardAccount\Model\Spi\Data\UsageAttemptInterface | Interface was added. | -| Magento\GiftCardAccount\Api\GiftCardRedeemerInterface | Interface was added. | -| Magento\Elasticsearch\SearchAdapter\QueryAwareInterface | Interface was added. | -| Magento\Elasticsearch\SearchAdapter\Query\ValueTransformerInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldsMappingPreprocessorInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProviderInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldType\ResolverInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\ResolverInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ConverterInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ResolverInterface | Interface was added. | -| Magento\Eav\Model\ResourceModel\Attribute\DefaultEntityAttributes\ProviderInterface | Interface was added. | -| Magento\Eav\Model\Entity\AttributeLoaderInterface | Interface was added. | -| Magento\Eav\Model\Entity\Setup\PropertyMapperInterface | Interface was added. | -| Magento\Eav\Model\Entity\Attribute\AttributeInterface | Interface was added. | -| Magento\Eav\Model\Entity\Attribute\UniqueValidationInterface | Interface was added. | -| Magento\Eav\Model\Entity\Attribute\Source\SpecificSourceInterface | Interface was added. | -| Magento\Eav\Model\Entity\Attribute\Backend\BackendInterface | Interface was added. | -| Magento\Downloadable\Pricing\Price\LinkPriceInterface | Interface was added. | -| Magento\Downloadable\Api\DomainManagerInterface | Interface was added. | -| Magento\Directory\Model\Country\Postcode\ConfigInterface | Interface was added. | -| Magento\Directory\Model\Country\Postcode\ValidatorInterface | Interface was added. | -| Magento\Deploy\Strategy\StrategyInterface | Interface was added. | -| Magento\Deploy\Source\SourceInterface | Interface was added. | -| Magento\Deploy\Package\BundleInterface | Interface was added. | -| Magento\Deploy\Package\Processor\ProcessorInterface | Interface was added. | -| Magento\Deploy\Console\Command\App\SensitiveConfigSet\CollectorInterface | Interface was added. | -| Magento\Deploy\Collector\CollectorInterface | Interface was added. | -| Magento\Customer\Model\Customer\Attribute\Source\GroupSourceLoggedInOnlyInterface | Interface was added. | -| Magento\Customer\CustomerData\JsLayoutDataProviderPoolInterface | Interface was added. | -| Magento\Customer\CustomerData\SectionPoolInterface | Interface was added. | -| Magento\Customer\Controller\AccountInterface | Interface was added. | -| Magento\Customer\Block\Address\Renderer\RendererInterface | Interface was added. | -| Magento\Customer\Api\AccountDelegationInterface | Interface was added. | -| Magento\Customer\Api\SessionCleanerInterface | Interface was added. | -| Magento\CustomerCustomAttributes\Model\Customer\Attribute\ValidatorInterface | Interface was added. | -| Magento\Csp\Model\Policy\SimplePolicyInterface | Interface was added. | -| Magento\Csp\Model\Collector\MergerInterface | Interface was added. | -| Magento\Csp\Model\Collector\Config\PolicyReaderInterface | Interface was added. | -| Magento\Csp\Api\CspAwareActionInterface | Interface was added. | -| Magento\Csp\Api\CspRendererInterface | Interface was added. | -| Magento\Csp\Api\InlineUtilInterface | Interface was added. | -| Magento\Csp\Api\ModeConfigManagerInterface | Interface was added. | -| Magento\Csp\Api\PolicyCollectorInterface | Interface was added. | -| Magento\Csp\Api\PolicyRendererInterface | Interface was added. | -| Magento\Csp\Api\Data\ModeConfiguredInterface | Interface was added. | -| Magento\Csp\Api\Data\PolicyInterface | Interface was added. | -| Magento\Cron\Model\DeadlockRetrierInterface | Interface was added. | -| Magento\ConfigurableProduct\Model\ResourceModel\Attribute\OptionSelectBuilderInterface | Interface was added. | -| Magento\Cms\Ui\Component\AddFilterInterface | Interface was added. | -| Magento\Cms\Model\PageRepository\ValidatorInterface | Interface was added. | -| Magento\Cms\Model\Page\CustomLayoutManagerInterface | Interface was added. | -| Magento\Cms\Model\Page\CustomLayoutRepositoryInterface | Interface was added. | -| Magento\Cms\Model\Page\CustomLayout\Data\CustomLayoutSelectedInterface | Interface was added. | -| Magento\Checkout\CustomerData\ItemPoolInterface | Interface was added. | -| Magento\Checkout\Controller\Express\RedirectLoginInterface | Interface was added. | -| Magento\Checkout\Api\PaymentProcessingRateLimiterInterface | Interface was added. | -| Magento\CheckoutAgreements\Model\AgreementsProviderInterface | Interface was added. | -| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav\WysiwygConfigDataProcessorInterface | Interface was added. | -| Magento\Catalog\Pricing\Price\ConfiguredPriceInterface | Interface was added. | -| Magento\Catalog\Pricing\Price\MinimalPriceCalculatorInterface | Interface was added. | -| Magento\Catalog\Pricing\Price\SpecialPriceInterface | Interface was added. | -| Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderInterface | Interface was added. | -| Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\PriceModifierInterface | Interface was added. | -| Magento\Catalog\Model\ProductOptions\ConfigInterface | Interface was added. | -| Magento\Catalog\Model\ProductLink\CollectionProviderInterface | Interface was added. | -| Magento\Catalog\Model\ProductLink\MapProviderInterface | Interface was added. | -| Magento\Catalog\Model\ProductLink\Data\ListCriteriaInterface | Interface was added. | -| Magento\Catalog\Model\ProductLink\Data\ListResultInterface | Interface was added. | -| Magento\Catalog\Model\ProductLink\Converter\ConverterInterface | Interface was added. | -| Magento\Catalog\Model\Product\Pricing\Renderer\SalableResolverInterface | Interface was added. | -| Magento\Catalog\Model\Product\Media\ConfigInterface | Interface was added. | -| Magento\Catalog\Model\Product\Configuration\Item\Option\OptionInterface | Interface was added. | -| Magento\Catalog\Model\Product\Condition\ConditionInterface | Interface was added. | -| Magento\Catalog\Model\Layer\CollectionFilterInterface | Interface was added. | -| Magento\Catalog\Model\Layer\FilterableAttributeListInterface | Interface was added. | -| Magento\Catalog\Model\Layer\ItemCollectionProviderInterface | Interface was added. | -| Magento\Catalog\Model\Layer\StateKeyInterface | Interface was added. | -| Magento\Catalog\Model\Indexer\Product\Flat\TableDataInterface | Interface was added. | -| Magento\Catalog\Model\Entity\Product\Attribute\Group\AttributeMapperInterface | Interface was added. | -| Magento\Catalog\Model\Config\Source\ProductPriceOptionsInterface | Interface was added. | -| Magento\Catalog\Model\Attribute\LockValidatorInterface | Interface was added. | -| Magento\Catalog\Controller\Product\View\ViewInterface | Interface was added. | -| Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper\HandlerInterface | Interface was added. | -| Magento\Catalog\Block\Product\AwareInterface | Interface was added. | -| Magento\Catalog\Block\Product\ReviewRendererInterface | Interface was added. | -| Magento\CatalogUrlRewrite\Model\Map\DatabaseMapInterface | Interface was added. | -| Magento\CatalogUrlRewrite\Model\Map\HashMapInterface | Interface was added. | -| Magento\CatalogSearch\Model\Search\ItemCollectionProviderInterface | Interface was added. | -| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchCriteriaResolverInterface | Interface was added. | -| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchResultApplierInterface | Interface was added. | -| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\TotalRecordsResolverInterface | Interface was added. | -| Magento\CatalogSearch\Model\Advanced\ProductCollectionPrepareStrategyInterface | Interface was added. | -| Magento\CatalogSearch\Model\Adapter\Aggregation\RequestCheckerInterface | Interface was added. | -| Magento\CatalogRule\Model\Indexer\IndexerTableSwapperInterface | Interface was added. | -| Magento\CatalogImportExport\Model\Export\ProductFilterInterface | Interface was added. | -| Magento\CatalogGraphQl\Model\Resolver\Products\Query\ProductQueryInterface | Interface was added. | -| Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Product\CollectionProcessorInterface | Interface was added. | -| Magento\CatalogGraphQl\Model\Resolver\Product\Price\ProviderInterface | Interface was added. | -| Magento\CatalogGraphQl\Model\Resolver\Categories\DataProvider\Category\CollectionProcessorInterface | Interface was added. | -| Magento\CatalogGraphQl\DataProvider\Product\LayeredNavigation\LayerBuilderInterface | Interface was added. | -| Magento\CardinalCommerce\Model\Response\JwtParserInterface | Interface was added. | -| Magento\CardinalCommerce\Model\Response\JwtPayloadValidatorInterface | Interface was added. | -| Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface | Interface was added. | -| Magento\Backend\Model\Search\Config\Structure\ElementBuilderInterface | Interface was added. | -| Magento\Backend\Model\Image\UploadResizeConfigInterface | Interface was added. | -| Magento\Analytics\ReportXml\DB\Assembler\AssemblerInterface | Interface was added. | -| Magento\Analytics\Model\ExportDataHandlerInterface | Interface was added. | -| Magento\Analytics\Model\ReportWriterInterface | Interface was added. | -| Magento\Analytics\Model\Connector\CommandInterface | Interface was added. | -| Magento\Analytics\Api\LinkProviderInterface | Interface was added. | -| Magento\Analytics\Api\Data\LinkInterface | Interface was added. | -| Magento\AdvancedSearch\Block\SearchDataInterface | Interface was added. | -| Magento\AdvancedRule\Model\Condition\FilterGroupInterface | Interface was added. | -| Magento\AdvancedRule\Model\Condition\FilterInterface | Interface was added. | -| Magento\AdvancedRule\Model\Condition\FilterTextGeneratorInterface | Interface was added. | -| Magento\AdvancedRule\Model\Condition\FilterableConditionInterface | Interface was added. | -| Magento\AdvancedCheckout\Model\AreProductsSalableForRequestedQtyInterface | Interface was added. | -| Magento\Framework\TranslateInterface | Interface was added. | -| Magento\Framework\Webapi\CustomAttributeTypeLocatorInterface | Interface was added. | -| Magento\Framework\Webapi\Rest\Request\DeserializerInterface | Interface was added. | -| Magento\Framework\Webapi\CustomAttribute\PreprocessorInterface | Interface was added. | -| Magento\Framework\Webapi\CustomAttribute\ServiceTypeListInterface | Interface was added. | -| Magento\Framework\View\DesignInterface | Interface was added. | -| Magento\Framework\View\TemplateEngineInterface | Interface was added. | -| Magento\Framework\View\Xsd\Media\TypeDataExtractorInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\ResultInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\AttributeInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CdataInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CommentInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\TextInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Element\ElementInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Directive\DirectiveInterface | Interface was added. | -| Magento\Framework\View\Page\Config\RendererInterface | Interface was added. | -| Magento\Framework\View\Model\PageLayout\Config\BuilderInterface | Interface was added. | -| Magento\Framework\View\Layout\GeneratorInterface | Interface was added. | -| Magento\Framework\View\Layout\LayoutCacheKeyInterface | Interface was added. | -| Magento\Framework\View\Layout\ProcessorInterface | Interface was added. | -| Magento\Framework\View\Layout\ReaderInterface | Interface was added. | -| Magento\Framework\View\Layout\Condition\VisibilityConditionInterface | Interface was added. | -| Magento\Framework\View\Layout\Argument\UpdaterInterface | Interface was added. | -| Magento\Framework\View\Helper\SecureHtmlRender\SecurityProcessorInterface | Interface was added. | -| Magento\Framework\View\File\FileList\CollateInterface | Interface was added. | -| Magento\Framework\View\Element\ComponentVisibilityInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\BlockWrapperInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\ContainerInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\ContextInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\DataSourceInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\JsConfigInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\LayoutInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\ObserverInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\PoolInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\SubjectInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Factory\ComponentFactoryInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\DataProvider\FilterApplierInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Control\ActionPoolInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Control\ControlInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\ContentType\ContentTypeInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Config\DomMergerInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Config\FileCollectorInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Config\UiReaderInterface | Interface was added. | -| Magento\Framework\View\Element\Message\InterpretationStrategyInterface | Interface was added. | -| Magento\Framework\View\Element\Message\Renderer\PoolInterface | Interface was added. | -| Magento\Framework\View\Element\Message\Renderer\RendererInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\CustomizationInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\FileInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\ResolverInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\ThemeProviderInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\Image\PathInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\File\CollectionInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\Customization\ConfigInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\Customization\FileAssetInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\Customization\FileInterface | Interface was added. | -| Magento\Framework\View\Design\FileResolution\Fallback\ResolverInterface | Interface was added. | -| Magento\Framework\View\Design\Fallback\Rule\RuleInterface | Interface was added. | -| Magento\Framework\View\Asset\ContentProcessorInterface | Interface was added. | -| Magento\Framework\View\Asset\ContextInterface | Interface was added. | -| Magento\Framework\View\Asset\LockerProcessInterface | Interface was added. | -| Magento\Framework\View\Asset\MergeStrategyInterface | Interface was added. | -| Magento\Framework\View\Asset\MergeableInterface | Interface was added. | -| Magento\Framework\View\Asset\PreProcessor\FilenameResolverInterface | Interface was added. | -| Magento\Framework\Validator\HTML\AttributeValidatorInterface | Interface was added. | -| Magento\Framework\Validator\HTML\TagValidatorInterface | Interface was added. | -| Magento\Framework\Validator\HTML\WYSIWYGValidatorInterface | Interface was added. | -| Magento\Framework\Validator\Constraint\OptionInterface | Interface was added. | -| Magento\Framework\Url\ModifierInterface | Interface was added. | -| Magento\Framework\Url\RouteParamsPreprocessorInterface | Interface was added. | -| Magento\Framework\Translate\Inline\ProviderInterface | Interface was added. | -| Magento\Framework\TestFramework\Unit\Autoloader\GeneratorInterface | Interface was added. | -| Magento\Framework\Setup\ConfigOptionsListInterface | Interface was added. | -| Magento\Framework\Setup\DataCacheInterface | Interface was added. | -| Magento\Framework\Setup\UpToDateValidatorInterface | Interface was added. | -| Magento\Framework\Setup\SchemaListenerHandlers\SchemaListenerHandlerInterface | Interface was added. | -| Magento\Framework\Setup\SchemaListenerDefinition\DefinitionConverterInterface | Interface was added. | -| Magento\Framework\Setup\SampleData\InstallerInterface | Interface was added. | -| Magento\Framework\Setup\SampleData\StateInterface | Interface was added. | -| Magento\Framework\Setup\Patch\DataPatchInterface | Interface was added. | -| Magento\Framework\Setup\Patch\DependentPatchInterface | Interface was added. | -| Magento\Framework\Setup\Patch\NonTransactionableInterface | Interface was added. | -| Magento\Framework\Setup\Patch\PatchInterface | Interface was added. | -| Magento\Framework\Setup\Patch\PatchRevertableInterface | Interface was added. | -| Magento\Framework\Setup\Patch\SchemaPatchInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\OperationInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\SchemaConfigInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\ElementDiffAwareInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\TableElementInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Factories\FactoryInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnDefaultAwareInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnIdentityAwareInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnNullableAwareInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnUnsignedAwareInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Diff\DiffInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Db\DDLTriggerInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Db\DbDefinitionProcessorInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaReaderInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaWriterInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\DataSavior\DataSaviorInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\DataSavior\DumpAccessorInterface | Interface was added. | -| Magento\Framework\Session\SaveHandlerInterface | Interface was added. | -| Magento\Framework\Session\StorageInterface | Interface was added. | -| Magento\Framework\Session\ValidatorInterface | Interface was added. | -| Magento\Framework\Session\Config\ConfigInterface | Interface was added. | -| Magento\Framework\Search\AdapterInterface | Interface was added. | -| Magento\Framework\Search\ResponseInterface | Interface was added. | -| Magento\Framework\Search\SearchEngineInterface | Interface was added. | -| Magento\Framework\Search\SearchEngine\ConfigInterface | Interface was added. | -| Magento\Framework\Search\Request\IndexScopeResolverInterface | Interface was added. | -| Magento\Framework\Search\Request\Aggregation\StatusInterface | Interface was added. | -| Magento\Framework\Search\Dynamic\Algorithm\AlgorithmInterface | Interface was added. | -| Magento\Framework\Search\Adapter\OptionsInterface | Interface was added. | -| Magento\Framework\Search\Adapter\Preprocessor\PreprocessorInterface | Interface was added. | -| Magento\Framework\Search\Adapter\Aggregation\AggregationResolverInterface | Interface was added. | -| Magento\Framework\Profiler\Driver\Standard\OutputInterface | Interface was added. | -| Magento\Framework\ObjectManager\ConfigCacheInterface | Interface was added. | -| Magento\Framework\ObjectManager\ConfigInterface | Interface was added. | -| Magento\Framework\ObjectManager\ConfigLoaderInterface | Interface was added. | -| Magento\Framework\ObjectManager\DefinitionInterface | Interface was added. | -| Magento\Framework\ObjectManager\DynamicConfigInterface | Interface was added. | -| Magento\Framework\ObjectManager\FactoryInterface | Interface was added. | -| Magento\Framework\ObjectManager\NoninterceptableInterface | Interface was added. | -| Magento\Framework\ObjectManager\RelationsInterface | Interface was added. | -| Magento\Framework\Mview\ConfigInterface | Interface was added. | -| Magento\Framework\Mview\ProcessorInterface | Interface was added. | -| Magento\Framework\Mview\ViewInterface | Interface was added. | -| Magento\Framework\Mview\View\ChangelogInterface | Interface was added. | -| Magento\Framework\Mview\View\CollectionInterface | Interface was added. | -| Magento\Framework\Mview\View\StateInterface | Interface was added. | -| Magento\Framework\Mview\View\SubscriptionInterface | Interface was added. | -| Magento\Framework\Mview\View\State\CollectionInterface | Interface was added. | -| Magento\Framework\Module\ModuleListInterface | Interface was added. | -| Magento\Framework\Model\ResourceModel\Type\Db\ConnectionFactoryInterface | Interface was added. | -| Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface | Interface was added. | -| Magento\Framework\Model\EntitySnapshot\AttributeProviderInterface | Interface was added. | -| Magento\Framework\Model\Entity\ScopeInterface | Interface was added. | -| Magento\Framework\Model\Entity\ScopeProviderInterface | Interface was added. | -| Magento\Framework\Message\ExceptionMessageFactoryInterface | Interface was added. | -| Magento\Framework\Mail\EmailMessageInterface | Interface was added. | -| Magento\Framework\Mail\MimeInterface | Interface was added. | -| Magento\Framework\Mail\MimeMessageInterface | Interface was added. | -| Magento\Framework\Mail\MimePartInterface | Interface was added. | -| Magento\Framework\Locale\AvailableLocalesInterface | Interface was added. | -| Magento\Framework\Locale\OptionInterface | Interface was added. | -| Magento\Framework\Interception\ConfigInterface | Interface was added. | -| Magento\Framework\Interception\ConfigLoaderInterface | Interface was added. | -| Magento\Framework\Interception\ConfigWriterInterface | Interface was added. | -| Magento\Framework\Interception\DefinitionInterface | Interface was added. | -| Magento\Framework\Interception\InterceptorInterface | Interface was added. | -| Magento\Framework\Interception\PluginListInterface | Interface was added. | -| Magento\Framework\Interception\ObjectManager\ConfigInterface | Interface was added. | -| Magento\Framework\Indexer\Table\StrategyInterface | Interface was added. | -| Magento\Framework\Indexer\Config\DependencyInfoProviderInterface | Interface was added. | -| Magento\Framework\Image\Adapter\AdapterInterface | Interface was added. | -| Magento\Framework\Image\Adapter\ConfigInterface | Interface was added. | -| Magento\Framework\HTTP\AsyncClientInterface | Interface was added. | -| Magento\Framework\HTTP\AsyncClient\HttpResponseDeferredInterface | Interface was added. | -| Magento\Framework\GraphQlSchemaStitching\GraphQlReader\TypeMetaReaderInterface | Interface was added. | -| Magento\Framework\GraphQl\ConfigInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\SchemaGeneratorInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\TypeInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\InputTypeInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\OutputTypeInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\WrappedTypeInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\Output\ElementMapper\FormatterInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\Enum\DataMapperInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\Entity\MapperInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\ErrorHandlerInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\ResolverInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\BatchRequestItemInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\BatchResolverInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\BatchServiceContractResolverInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\ContextInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\IdentityInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\ResolveRequestInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\TypeResolverInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\Argument\FieldEntityAttributesInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\Argument\SearchCriteria\ArgumentApplierInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\ConfigElementFactoryInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\ConfigElementInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\Element\FieldInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\Element\OutputFieldInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\Element\TypeInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\Element\UnionInterface | Interface was added. | -| Magento\Framework\Filter\DirectiveProcessorInterface | Interface was added. | -| Magento\Framework\Filter\FactoryInterface | Interface was added. | -| Magento\Framework\Filter\VariableResolverInterface | Interface was added. | -| Magento\Framework\Filter\SimpleDirective\ProcessorInterface | Interface was added. | -| Magento\Framework\Filter\FilterManager\ConfigInterface | Interface was added. | -| Magento\Framework\Filter\DirectiveProcessor\FilterInterface | Interface was added. | -| Magento\Framework\Filesystem\DriverPoolInterface | Interface was added. | -| Magento\Framework\Filesystem\File\ReadInterface | Interface was added. | -| Magento\Framework\Filesystem\Directory\PathValidatorInterface | Interface was added. | -| Magento\Framework\Exception\TemporaryStateExceptionInterface | Interface was added. | -| Magento\Framework\Event\ConfigInterface | Interface was added. | -| Magento\Framework\Event\InvokerInterface | Interface was added. | -| Magento\Framework\Event\ManagerInterface | Interface was added. | -| Magento\Framework\Encryption\Adapter\EncryptionAdapterInterface | Interface was added. | -| Magento\Framework\DataObject\IdentityGeneratorInterface | Interface was added. | -| Magento\Framework\DataObject\IdentityInterface | Interface was added. | -| Magento\Framework\DataObject\IdentityValidatorInterface | Interface was added. | -| Magento\Framework\DataObject\KeyValueObjectInterface | Interface was added. | -| Magento\Framework\Data\CollectionDataSourceInterface | Interface was added. | -| Magento\Framework\Data\CollectionModifierInterface | Interface was added. | -| Magento\Framework\Data\SearchResultInterface | Interface was added. | -| Magento\Framework\Data\SearchResultProcessorInterface | Interface was added. | -| Magento\Framework\Data\ValueSourceInterface | Interface was added. | -| Magento\Framework\Data\Collection\EntityFactoryInterface | Interface was added. | -| Magento\Framework\Data\Collection\Db\FetchStrategyInterface | Interface was added. | -| Magento\Framework\DB\LoggerInterface | Interface was added. | -| Magento\Framework\DB\MapperInterface | Interface was added. | -| Magento\Framework\DB\QueryInterface | Interface was added. | -| Magento\Framework\DB\Sql\ExpressionInterface | Interface was added. | -| Magento\Framework\DB\Sequence\SequenceInterface | Interface was added. | -| Magento\Framework\DB\Select\QueryModifierInterface | Interface was added. | -| Magento\Framework\DB\Select\RendererInterface | Interface was added. | -| Magento\Framework\DB\Query\BatchIteratorInterface | Interface was added. | -| Magento\Framework\DB\DataConverter\DataConverterInterface | Interface was added. | -| Magento\Framework\Css\PreProcessor\ErrorHandlerInterface | Interface was added. | -| Magento\Framework\Crontab\CrontabManagerInterface | Interface was added. | -| Magento\Framework\Crontab\TasksProviderInterface | Interface was added. | -| Magento\Framework\Component\ComponentRegistrarInterface | Interface was added. | -| Magento\Framework\Code\ValidatorInterface | Interface was added. | -| Magento\Framework\Code\Reader\ClassReaderInterface | Interface was added. | -| Magento\Framework\Code\Minifier\AdapterInterface | Interface was added. | -| Magento\Framework\Code\Generator\CodeGeneratorInterface | Interface was added. | -| Magento\Framework\Cache\ConfigInterface | Interface was added. | -| Magento\Framework\Cache\StaleCacheNotifierInterface | Interface was added. | -| Magento\Framework\Backup\SourceFileInterface | Interface was added. | -| Magento\Framework\Autoload\AutoloaderInterface | Interface was added. | -| Magento\Framework\Async\CancelableDeferredInterface | Interface was added. | -| Magento\Framework\Async\DeferredInterface | Interface was added. | -| Magento\Framework\App\AreaInterface | Interface was added. | -| Magento\Framework\App\CsrfAwareActionInterface | Interface was added. | -| Magento\Framework\App\DefaultPathInterface | Interface was added. | -| Magento\Framework\App\DesignInterface | Interface was added. | -| Magento\Framework\App\EnvironmentInterface | Interface was added. | -| Magento\Framework\App\ExceptionHandlerInterface | Interface was added. | -| Magento\Framework\App\FeedFactoryInterface | Interface was added. | -| Magento\Framework\App\FeedInterface | Interface was added. | -| Magento\Framework\App\HttpRequestInterface | Interface was added. | -| Magento\Framework\App\RouterInterface | Interface was added. | -| Magento\Framework\App\RouterListInterface | Interface was added. | -| Magento\Framework\App\ScopeFallbackResolverInterface | Interface was added. | -| Magento\Framework\App\ScopeResolverInterface | Interface was added. | -| Magento\Framework\App\ScopeTreeProviderInterface | Interface was added. | -| Magento\Framework\App\ScopeValidatorInterface | Interface was added. | -| Magento\Framework\App\View\Deployment\Version\StorageInterface | Interface was added. | -| Magento\Framework\App\View\Asset\MaterializationStrategy\StrategyInterface | Interface was added. | -| Magento\Framework\App\Scope\ValidatorInterface | Interface was added. | -| Magento\Framework\App\Rss\RssManagerInterface | Interface was added. | -| Magento\Framework\App\Rss\UrlBuilderInterface | Interface was added. | -| Magento\Framework\App\Router\NoRouteHandlerInterface | Interface was added. | -| Magento\Framework\App\Router\PathConfigInterface | Interface was added. | -| Magento\Framework\App\Response\FileInterface | Interface was added. | -| Magento\Framework\App\Response\RedirectInterface | Interface was added. | -| Magento\Framework\App\Response\HeaderProvider\HeaderProviderInterface | Interface was added. | -| Magento\Framework\App\ResourceConnection\ConfigInterface | Interface was added. | -| Magento\Framework\App\ResourceConnection\ConnectionAdapterInterface | Interface was added. | -| Magento\Framework\App\Request\ValidatorInterface | Interface was added. | -| Magento\Framework\App\PageCache\NotCacheableInterface | Interface was added. | -| Magento\Framework\App\ObjectManager\ConfigWriterInterface | Interface was added. | -| Magento\Framework\App\DeploymentConfig\ImporterInterface | Interface was added. | -| Magento\Framework\App\DeploymentConfig\ValidatorInterface | Interface was added. | -| Magento\Framework\App\DeploymentConfig\Writer\FormatterInterface | Interface was added. | -| Magento\Framework\App\Config\CommentInterface | Interface was added. | -| Magento\Framework\App\Config\CommentParserInterface | Interface was added. | -| Magento\Framework\App\Config\ConfigSourceInterface | Interface was added. | -| Magento\Framework\App\Config\ConfigTypeInterface | Interface was added. | -| Magento\Framework\App\Config\ValueInterface | Interface was added. | -| Magento\Framework\App\Config\Spi\PostProcessorInterface | Interface was added. | -| Magento\Framework\App\Config\Spi\PreProcessorInterface | Interface was added. | -| Magento\Framework\App\Config\Scope\ReaderInterface | Interface was added. | -| Magento\Framework\App\Config\Reader\Source\SourceInterface | Interface was added. | -| Magento\Framework\App\Config\ConfigResource\ConfigInterface | Interface was added. | -| Magento\Framework\App\Action\HttpConnectActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpDeleteActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpGetActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpOptionsActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpPatchActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpPostActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpPropfindActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpPutActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpTraceActionInterface | Interface was added. | -| Magento\Framework\Api\AttributeTypeResolverInterface | Interface was added. | -| Magento\Framework\Api\CriteriaInterface | Interface was added. | -| Magento\Framework\Api\SimpleBuilderInterface | Interface was added. | -| Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionInterface | Interface was added. | +| What changed | How it changed | +| ------------------------------------------------------------------------------------------------------------ | -------------------- | +| Magento\AdvancedCheckout\Model\AreProductsSalableForRequestedQtyInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterGroupInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterTextGeneratorInterface | Interface was added. | +| Magento\AdvancedRule\Model\Condition\FilterableConditionInterface | Interface was added. | +| Magento\AdvancedSearch\Block\SearchDataInterface | Interface was added. | +| Magento\Analytics\Api\Data\LinkInterface | Interface was added. | +| Magento\Analytics\Api\LinkProviderInterface | Interface was added. | +| Magento\Analytics\Model\Connector\CommandInterface | Interface was added. | +| Magento\Analytics\Model\ExportDataHandlerInterface | Interface was added. | +| Magento\Analytics\Model\ReportWriterInterface | Interface was added. | +| Magento\Analytics\ReportXml\DB\Assembler\AssemblerInterface | Interface was added. | +| Magento\Backend\Model\Image\UploadResizeConfigInterface | Interface was added. | +| Magento\Backend\Model\Search\Config\Structure\ElementBuilderInterface | Interface was added. | +| Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface | Interface was added. | +| Magento\CardinalCommerce\Model\Response\JwtParserInterface | Interface was added. | +| Magento\CardinalCommerce\Model\Response\JwtPayloadValidatorInterface | Interface was added. | +| Magento\CatalogGraphQl\DataProvider\Product\LayeredNavigation\LayerBuilderInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Categories\DataProvider\Category\CollectionProcessorInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Product\Price\ProviderInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Product\CollectionProcessorInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\Query\ProductQueryInterface | Interface was added. | +| Magento\CatalogImportExport\Model\Export\ProductFilterInterface | Interface was added. | +| Magento\CatalogRule\Model\Indexer\IndexerTableSwapperInterface | Interface was added. | +| Magento\CatalogSearch\Model\Adapter\Aggregation\RequestCheckerInterface | Interface was added. | +| Magento\CatalogSearch\Model\Advanced\ProductCollectionPrepareStrategyInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchCriteriaResolverInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchResultApplierInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\TotalRecordsResolverInterface | Interface was added. | +| Magento\CatalogSearch\Model\Search\ItemCollectionProviderInterface | Interface was added. | +| Magento\CatalogUrlRewrite\Model\Map\DatabaseMapInterface | Interface was added. | +| Magento\CatalogUrlRewrite\Model\Map\HashMapInterface | Interface was added. | +| Magento\Catalog\Block\Product\AwareInterface | Interface was added. | +| Magento\Catalog\Block\Product\ReviewRendererInterface | Interface was added. | +| Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper\HandlerInterface | Interface was added. | +| Magento\Catalog\Controller\Product\View\ViewInterface | Interface was added. | +| Magento\Catalog\Model\Attribute\LockValidatorInterface | Interface was added. | +| Magento\Catalog\Model\Config\Source\ProductPriceOptionsInterface | Interface was added. | +| Magento\Catalog\Model\Entity\Product\Attribute\Group\AttributeMapperInterface | Interface was added. | +| Magento\Catalog\Model\Indexer\Product\Flat\TableDataInterface | Interface was added. | +| Magento\Catalog\Model\Layer\CollectionFilterInterface | Interface was added. | +| Magento\Catalog\Model\Layer\FilterableAttributeListInterface | Interface was added. | +| Magento\Catalog\Model\Layer\ItemCollectionProviderInterface | Interface was added. | +| Magento\Catalog\Model\Layer\StateKeyInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\CollectionProviderInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Converter\ConverterInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Data\ListCriteriaInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Data\ListResultInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\MapProviderInterface | Interface was added. | +| Magento\Catalog\Model\ProductOptions\ConfigInterface | Interface was added. | +| Magento\Catalog\Model\Product\Condition\ConditionInterface | Interface was added. | +| Magento\Catalog\Model\Product\Configuration\Item\Option\OptionInterface | Interface was added. | +| Magento\Catalog\Model\Product\Media\ConfigInterface | Interface was added. | +| Magento\Catalog\Model\Product\Pricing\Renderer\SalableResolverInterface | Interface was added. | +| Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\PriceModifierInterface | Interface was added. | +| Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\ConfiguredPriceInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\MinimalPriceCalculatorInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\SpecialPriceInterface | Interface was added. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav\WysiwygConfigDataProcessorInterface | Interface was added. | +| Magento\CheckoutAgreements\Model\AgreementsProviderInterface | Interface was added. | +| Magento\Checkout\Api\PaymentProcessingRateLimiterInterface | Interface was added. | +| Magento\Checkout\Controller\Express\RedirectLoginInterface | Interface was added. | +| Magento\Checkout\CustomerData\ItemPoolInterface | Interface was added. | +| Magento\Cms\Model\PageRepository\ValidatorInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayoutManagerInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayoutRepositoryInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayout\Data\CustomLayoutSelectedInterface | Interface was added. | +| Magento\Cms\Ui\Component\AddFilterInterface | Interface was added. | +| Magento\ConfigurableProduct\Model\ResourceModel\Attribute\OptionSelectBuilderInterface | Interface was added. | +| Magento\Cron\Model\DeadlockRetrierInterface | Interface was added. | +| Magento\Csp\Api\CspAwareActionInterface | Interface was added. | +| Magento\Csp\Api\CspRendererInterface | Interface was added. | +| Magento\Csp\Api\Data\ModeConfiguredInterface | Interface was added. | +| Magento\Csp\Api\Data\PolicyInterface | Interface was added. | +| Magento\Csp\Api\InlineUtilInterface | Interface was added. | +| Magento\Csp\Api\ModeConfigManagerInterface | Interface was added. | +| Magento\Csp\Api\PolicyCollectorInterface | Interface was added. | +| Magento\Csp\Api\PolicyRendererInterface | Interface was added. | +| Magento\Csp\Model\Collector\Config\PolicyReaderInterface | Interface was added. | +| Magento\Csp\Model\Collector\MergerInterface | Interface was added. | +| Magento\Csp\Model\Policy\SimplePolicyInterface | Interface was added. | +| Magento\CustomerCustomAttributes\Model\Customer\Attribute\ValidatorInterface | Interface was added. | +| Magento\Customer\Api\AccountDelegationInterface | Interface was added. | +| Magento\Customer\Api\SessionCleanerInterface | Interface was added. | +| Magento\Customer\Block\Address\Renderer\RendererInterface | Interface was added. | +| Magento\Customer\Controller\AccountInterface | Interface was added. | +| Magento\Customer\CustomerData\JsLayoutDataProviderPoolInterface | Interface was added. | +| Magento\Customer\CustomerData\SectionPoolInterface | Interface was added. | +| Magento\Customer\Model\Customer\Attribute\Source\GroupSourceLoggedInOnlyInterface | Interface was added. | +| Magento\Deploy\Collector\CollectorInterface | Interface was added. | +| Magento\Deploy\Console\Command\App\SensitiveConfigSet\CollectorInterface | Interface was added. | +| Magento\Deploy\Package\BundleInterface | Interface was added. | +| Magento\Deploy\Package\Processor\ProcessorInterface | Interface was added. | +| Magento\Deploy\Source\SourceInterface | Interface was added. | +| Magento\Deploy\Strategy\StrategyInterface | Interface was added. | +| Magento\Directory\Model\Country\Postcode\ConfigInterface | Interface was added. | +| Magento\Directory\Model\Country\Postcode\ValidatorInterface | Interface was added. | +| Magento\Downloadable\Api\DomainManagerInterface | Interface was added. | +| Magento\Downloadable\Pricing\Price\LinkPriceInterface | Interface was added. | +| Magento\Eav\Model\Entity\AttributeLoaderInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\AttributeInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\Backend\BackendInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\Source\SpecificSourceInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\UniqueValidationInterface | Interface was added. | +| Magento\Eav\Model\Entity\Setup\PropertyMapperInterface | Interface was added. | +| Magento\Eav\Model\ResourceModel\Attribute\DefaultEntityAttributes\ProviderInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProviderInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ConverterInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ResolverInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\ResolverInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldType\ResolverInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldsMappingPreprocessorInterface | Interface was added. | +| Magento\Elasticsearch\SearchAdapter\QueryAwareInterface | Interface was added. | +| Magento\Elasticsearch\SearchAdapter\Query\ValueTransformerInterface | Interface was added. | +| Magento\Framework\Amqp\Topology\BindingInstallerInterface | Interface was added. | +| Magento\Framework\Api\AttributeTypeResolverInterface | Interface was added. | +| Magento\Framework\Api\CriteriaInterface | Interface was added. | +| Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionInterface | Interface was added. | | Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionProviderInterface | Interface was added. | -| Magento\Framework\Api\Search\AggregationInterface | Interface was added. | -| Magento\Framework\Api\Search\AggregationValueInterface | Interface was added. | -| Magento\Framework\Api\Search\BucketInterface | Interface was added. | -| Magento\Framework\Api\Search\DocumentInterface | Interface was added. | -| Magento\Framework\Api\Search\ReportingInterface | Interface was added. | -| Magento\Framework\MessageQueue\BulkPublisherInterface | Interface was added. | -| Magento\Framework\MessageQueue\CallbackInvokerInterface | Interface was added. | -| Magento\Framework\MessageQueue\ConnectionTypeResolverInterface | Interface was added. | -| Magento\Framework\MessageQueue\ConsumerConfigurationInterface | Interface was added. | -| Magento\Framework\MessageQueue\LockInterface | Interface was added. | -| Magento\Framework\MessageQueue\MergedMessageInterface | Interface was added. | -| Magento\Framework\MessageQueue\MergerInterface | Interface was added. | -| Magento\Framework\MessageQueue\MessageProcessorInterface | Interface was added. | -| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItemInterface | Interface was added. | -| Magento\Framework\MessageQueue\Topology\Config\QueueConfigItemInterface | Interface was added. | -| Magento\Framework\MessageQueue\Topology\Config\ReaderInterface | Interface was added. | -| Magento\Framework\MessageQueue\Topology\Config\ValidatorInterface | Interface was added. | -| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItem\BindingInterface | Interface was added. | -| Magento\Framework\MessageQueue\Publisher\Config\PublisherConfigItemInterface | Interface was added. | -| Magento\Framework\MessageQueue\Publisher\Config\PublisherConnectionInterface | Interface was added. | -| Magento\Framework\MessageQueue\Publisher\Config\ReaderInterface | Interface was added. | -| Magento\Framework\MessageQueue\Publisher\Config\ValidatorInterface | Interface was added. | -| Magento\Framework\MessageQueue\PoisonPill\PoisonPillCompareInterface | Interface was added. | -| Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface | Interface was added. | -| Magento\Framework\MessageQueue\PoisonPill\PoisonPillReadInterface | Interface was added. | -| Magento\Framework\MessageQueue\Lock\ReaderInterface | Interface was added. | -| Magento\Framework\MessageQueue\Lock\WriterInterface | Interface was added. | -| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItemInterface | Interface was added. | -| Magento\Framework\MessageQueue\Consumer\Config\ReaderInterface | Interface was added. | -| Magento\Framework\MessageQueue\Consumer\Config\ValidatorInterface | Interface was added. | -| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItem\HandlerInterface | Interface was added. | -| Magento\Framework\ForeignKey\ConfigInterface | Interface was added. | -| Magento\Framework\ForeignKey\ConstraintInterface | Interface was added. | -| Magento\Framework\ForeignKey\StrategyInterface | Interface was added. | -| Magento\Framework\Amqp\Topology\BindingInstallerInterface | Interface was added. | +| Magento\Framework\Api\Search\AggregationInterface | Interface was added. | +| Magento\Framework\Api\Search\AggregationValueInterface | Interface was added. | +| Magento\Framework\Api\Search\BucketInterface | Interface was added. | +| Magento\Framework\Api\Search\DocumentInterface | Interface was added. | +| Magento\Framework\Api\Search\ReportingInterface | Interface was added. | +| Magento\Framework\Api\SimpleBuilderInterface | Interface was added. | +| Magento\Framework\App\Action\HttpConnectActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpDeleteActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpGetActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpOptionsActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPatchActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPostActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPropfindActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPutActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpTraceActionInterface | Interface was added. | +| Magento\Framework\App\AreaInterface | Interface was added. | +| Magento\Framework\App\Config\CommentInterface | Interface was added. | +| Magento\Framework\App\Config\CommentParserInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigResource\ConfigInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigSourceInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigTypeInterface | Interface was added. | +| Magento\Framework\App\Config\Reader\Source\SourceInterface | Interface was added. | +| Magento\Framework\App\Config\Scope\ReaderInterface | Interface was added. | +| Magento\Framework\App\Config\Spi\PostProcessorInterface | Interface was added. | +| Magento\Framework\App\Config\Spi\PreProcessorInterface | Interface was added. | +| Magento\Framework\App\Config\ValueInterface | Interface was added. | +| Magento\Framework\App\CsrfAwareActionInterface | Interface was added. | +| Magento\Framework\App\DefaultPathInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\ImporterInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\ValidatorInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\Writer\FormatterInterface | Interface was added. | +| Magento\Framework\App\DesignInterface | Interface was added. | +| Magento\Framework\App\EnvironmentInterface | Interface was added. | +| Magento\Framework\App\ExceptionHandlerInterface | Interface was added. | +| Magento\Framework\App\FeedFactoryInterface | Interface was added. | +| Magento\Framework\App\FeedInterface | Interface was added. | +| Magento\Framework\App\HttpRequestInterface | Interface was added. | +| Magento\Framework\App\ObjectManager\ConfigWriterInterface | Interface was added. | +| Magento\Framework\App\PageCache\NotCacheableInterface | Interface was added. | +| Magento\Framework\App\Request\ValidatorInterface | Interface was added. | +| Magento\Framework\App\ResourceConnection\ConfigInterface | Interface was added. | +| Magento\Framework\App\ResourceConnection\ConnectionAdapterInterface | Interface was added. | +| Magento\Framework\App\Response\FileInterface | Interface was added. | +| Magento\Framework\App\Response\HeaderProvider\HeaderProviderInterface | Interface was added. | +| Magento\Framework\App\Response\RedirectInterface | Interface was added. | +| Magento\Framework\App\RouterInterface | Interface was added. | +| Magento\Framework\App\RouterListInterface | Interface was added. | +| Magento\Framework\App\Router\NoRouteHandlerInterface | Interface was added. | +| Magento\Framework\App\Router\PathConfigInterface | Interface was added. | +| Magento\Framework\App\Rss\RssManagerInterface | Interface was added. | +| Magento\Framework\App\Rss\UrlBuilderInterface | Interface was added. | +| Magento\Framework\App\ScopeFallbackResolverInterface | Interface was added. | +| Magento\Framework\App\ScopeResolverInterface | Interface was added. | +| Magento\Framework\App\ScopeTreeProviderInterface | Interface was added. | +| Magento\Framework\App\ScopeValidatorInterface | Interface was added. | +| Magento\Framework\App\Scope\ValidatorInterface | Interface was added. | +| Magento\Framework\App\View\Asset\MaterializationStrategy\StrategyInterface | Interface was added. | +| Magento\Framework\App\View\Deployment\Version\StorageInterface | Interface was added. | +| Magento\Framework\Async\CancelableDeferredInterface | Interface was added. | +| Magento\Framework\Async\DeferredInterface | Interface was added. | +| Magento\Framework\Autoload\AutoloaderInterface | Interface was added. | +| Magento\Framework\Backup\SourceFileInterface | Interface was added. | +| Magento\Framework\Cache\ConfigInterface | Interface was added. | +| Magento\Framework\Cache\StaleCacheNotifierInterface | Interface was added. | +| Magento\Framework\Code\Generator\CodeGeneratorInterface | Interface was added. | +| Magento\Framework\Code\Minifier\AdapterInterface | Interface was added. | +| Magento\Framework\Code\Reader\ClassReaderInterface | Interface was added. | +| Magento\Framework\Code\ValidatorInterface | Interface was added. | +| Magento\Framework\Component\ComponentRegistrarInterface | Interface was added. | +| Magento\Framework\Crontab\CrontabManagerInterface | Interface was added. | +| Magento\Framework\Crontab\TasksProviderInterface | Interface was added. | +| Magento\Framework\Css\PreProcessor\ErrorHandlerInterface | Interface was added. | +| Magento\Framework\DB\DataConverter\DataConverterInterface | Interface was added. | +| Magento\Framework\DB\LoggerInterface | Interface was added. | +| Magento\Framework\DB\MapperInterface | Interface was added. | +| Magento\Framework\DB\QueryInterface | Interface was added. | +| Magento\Framework\DB\Query\BatchIteratorInterface | Interface was added. | +| Magento\Framework\DB\Select\QueryModifierInterface | Interface was added. | +| Magento\Framework\DB\Select\RendererInterface | Interface was added. | +| Magento\Framework\DB\Sequence\SequenceInterface | Interface was added. | +| Magento\Framework\DB\Sql\ExpressionInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityGeneratorInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityValidatorInterface | Interface was added. | +| Magento\Framework\DataObject\KeyValueObjectInterface | Interface was added. | +| Magento\Framework\Data\CollectionDataSourceInterface | Interface was added. | +| Magento\Framework\Data\CollectionModifierInterface | Interface was added. | +| Magento\Framework\Data\Collection\Db\FetchStrategyInterface | Interface was added. | +| Magento\Framework\Data\Collection\EntityFactoryInterface | Interface was added. | +| Magento\Framework\Data\SearchResultInterface | Interface was added. | +| Magento\Framework\Data\SearchResultProcessorInterface | Interface was added. | +| Magento\Framework\Data\ValueSourceInterface | Interface was added. | +| Magento\Framework\Encryption\Adapter\EncryptionAdapterInterface | Interface was added. | +| Magento\Framework\Event\ConfigInterface | Interface was added. | +| Magento\Framework\Event\InvokerInterface | Interface was added. | +| Magento\Framework\Event\ManagerInterface | Interface was added. | +| Magento\Framework\Exception\TemporaryStateExceptionInterface | Interface was added. | +| Magento\Framework\Filesystem\Directory\PathValidatorInterface | Interface was added. | +| Magento\Framework\Filesystem\DriverPoolInterface | Interface was added. | +| Magento\Framework\Filesystem\File\ReadInterface | Interface was added. | +| Magento\Framework\Filter\DirectiveProcessorInterface | Interface was added. | +| Magento\Framework\Filter\DirectiveProcessor\FilterInterface | Interface was added. | +| Magento\Framework\Filter\FactoryInterface | Interface was added. | +| Magento\Framework\Filter\FilterManager\ConfigInterface | Interface was added. | +| Magento\Framework\Filter\SimpleDirective\ProcessorInterface | Interface was added. | +| Magento\Framework\Filter\VariableResolverInterface | Interface was added. | +| Magento\Framework\ForeignKey\ConfigInterface | Interface was added. | +| Magento\Framework\ForeignKey\ConstraintInterface | Interface was added. | +| Magento\Framework\ForeignKey\StrategyInterface | Interface was added. | +| Magento\Framework\GraphQlSchemaStitching\GraphQlReader\TypeMetaReaderInterface | Interface was added. | +| Magento\Framework\GraphQl\ConfigInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\ConfigElementFactoryInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\ConfigElementInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\FieldInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\OutputFieldInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\TypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\UnionInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\ErrorHandlerInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\ResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\Argument\FieldEntityAttributesInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\Argument\SearchCriteria\ArgumentApplierInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchRequestItemInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchServiceContractResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\ContextInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\IdentityInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\ResolveRequestInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\TypeResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\SchemaGeneratorInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\TypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Entity\MapperInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Enum\DataMapperInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\InputTypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\OutputTypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Output\ElementMapper\FormatterInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\WrappedTypeInterface | Interface was added. | +| Magento\Framework\HTTP\AsyncClientInterface | Interface was added. | +| Magento\Framework\HTTP\AsyncClient\HttpResponseDeferredInterface | Interface was added. | +| Magento\Framework\Image\Adapter\AdapterInterface | Interface was added. | +| Magento\Framework\Image\Adapter\ConfigInterface | Interface was added. | +| Magento\Framework\Indexer\Config\DependencyInfoProviderInterface | Interface was added. | +| Magento\Framework\Indexer\Table\StrategyInterface | Interface was added. | +| Magento\Framework\Interception\ConfigInterface | Interface was added. | +| Magento\Framework\Interception\ConfigLoaderInterface | Interface was added. | +| Magento\Framework\Interception\ConfigWriterInterface | Interface was added. | +| Magento\Framework\Interception\DefinitionInterface | Interface was added. | +| Magento\Framework\Interception\InterceptorInterface | Interface was added. | +| Magento\Framework\Interception\ObjectManager\ConfigInterface | Interface was added. | +| Magento\Framework\Interception\PluginListInterface | Interface was added. | +| Magento\Framework\Locale\AvailableLocalesInterface | Interface was added. | +| Magento\Framework\Locale\OptionInterface | Interface was added. | +| Magento\Framework\Mail\EmailMessageInterface | Interface was added. | +| Magento\Framework\Mail\MimeInterface | Interface was added. | +| Magento\Framework\Mail\MimeMessageInterface | Interface was added. | +| Magento\Framework\Mail\MimePartInterface | Interface was added. | +| Magento\Framework\MessageQueue\BulkPublisherInterface | Interface was added. | +| Magento\Framework\MessageQueue\CallbackInvokerInterface | Interface was added. | +| Magento\Framework\MessageQueue\ConnectionTypeResolverInterface | Interface was added. | +| Magento\Framework\MessageQueue\ConsumerConfigurationInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItem\HandlerInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\MessageQueue\LockInterface | Interface was added. | +| Magento\Framework\MessageQueue\Lock\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Lock\WriterInterface | Interface was added. | +| Magento\Framework\MessageQueue\MergedMessageInterface | Interface was added. | +| Magento\Framework\MessageQueue\MergerInterface | Interface was added. | +| Magento\Framework\MessageQueue\MessageProcessorInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillCompareInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillReadInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\PublisherConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\PublisherConnectionInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItem\BindingInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\QueueConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\Message\ExceptionMessageFactoryInterface | Interface was added. | +| Magento\Framework\Model\EntitySnapshot\AttributeProviderInterface | Interface was added. | +| Magento\Framework\Model\Entity\ScopeInterface | Interface was added. | +| Magento\Framework\Model\Entity\ScopeProviderInterface | Interface was added. | +| Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface | Interface was added. | +| Magento\Framework\Model\ResourceModel\Type\Db\ConnectionFactoryInterface | Interface was added. | +| Magento\Framework\Module\ModuleListInterface | Interface was added. | +| Magento\Framework\Mview\ConfigInterface | Interface was added. | +| Magento\Framework\Mview\ProcessorInterface | Interface was added. | +| Magento\Framework\Mview\ViewInterface | Interface was added. | +| Magento\Framework\Mview\View\ChangelogInterface | Interface was added. | +| Magento\Framework\Mview\View\CollectionInterface | Interface was added. | +| Magento\Framework\Mview\View\StateInterface | Interface was added. | +| Magento\Framework\Mview\View\State\CollectionInterface | Interface was added. | +| Magento\Framework\Mview\View\SubscriptionInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigCacheInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigLoaderInterface | Interface was added. | +| Magento\Framework\ObjectManager\DefinitionInterface | Interface was added. | +| Magento\Framework\ObjectManager\DynamicConfigInterface | Interface was added. | +| Magento\Framework\ObjectManager\FactoryInterface | Interface was added. | +| Magento\Framework\ObjectManager\NoninterceptableInterface | Interface was added. | +| Magento\Framework\ObjectManager\RelationsInterface | Interface was added. | +| Magento\Framework\Profiler\Driver\Standard\OutputInterface | Interface was added. | +| Magento\Framework\Search\AdapterInterface | Interface was added. | +| Magento\Framework\Search\Adapter\Aggregation\AggregationResolverInterface | Interface was added. | +| Magento\Framework\Search\Adapter\OptionsInterface | Interface was added. | +| Magento\Framework\Search\Adapter\Preprocessor\PreprocessorInterface | Interface was added. | +| Magento\Framework\Search\Dynamic\Algorithm\AlgorithmInterface | Interface was added. | +| Magento\Framework\Search\Request\Aggregation\StatusInterface | Interface was added. | +| Magento\Framework\Search\Request\IndexScopeResolverInterface | Interface was added. | +| Magento\Framework\Search\ResponseInterface | Interface was added. | +| Magento\Framework\Search\SearchEngineInterface | Interface was added. | +| Magento\Framework\Search\SearchEngine\ConfigInterface | Interface was added. | +| Magento\Framework\Session\Config\ConfigInterface | Interface was added. | +| Magento\Framework\Session\SaveHandlerInterface | Interface was added. | +| Magento\Framework\Session\StorageInterface | Interface was added. | +| Magento\Framework\Session\ValidatorInterface | Interface was added. | +| Magento\Framework\Setup\ConfigOptionsListInterface | Interface was added. | +| Magento\Framework\Setup\DataCacheInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\DataSavior\DataSaviorInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\DataSavior\DumpAccessorInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DDLTriggerInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbDefinitionProcessorInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaReaderInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaWriterInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Diff\DiffInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnDefaultAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnIdentityAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnNullableAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnUnsignedAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\ElementDiffAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Factories\FactoryInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\TableElementInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\OperationInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\SchemaConfigInterface | Interface was added. | +| Magento\Framework\Setup\Patch\DataPatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\DependentPatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\NonTransactionableInterface | Interface was added. | +| Magento\Framework\Setup\Patch\PatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\PatchRevertableInterface | Interface was added. | +| Magento\Framework\Setup\Patch\SchemaPatchInterface | Interface was added. | +| Magento\Framework\Setup\SampleData\InstallerInterface | Interface was added. | +| Magento\Framework\Setup\SampleData\StateInterface | Interface was added. | +| Magento\Framework\Setup\SchemaListenerDefinition\DefinitionConverterInterface | Interface was added. | +| Magento\Framework\Setup\SchemaListenerHandlers\SchemaListenerHandlerInterface | Interface was added. | +| Magento\Framework\Setup\UpToDateValidatorInterface | Interface was added. | +| Magento\Framework\TestFramework\Unit\Autoloader\GeneratorInterface | Interface was added. | +| Magento\Framework\TranslateInterface | Interface was added. | +| Magento\Framework\Translate\Inline\ProviderInterface | Interface was added. | +| Magento\Framework\Url\ModifierInterface | Interface was added. | +| Magento\Framework\Url\RouteParamsPreprocessorInterface | Interface was added. | +| Magento\Framework\Validator\Constraint\OptionInterface | Interface was added. | +| Magento\Framework\Validator\HTML\AttributeValidatorInterface | Interface was added. | +| Magento\Framework\Validator\HTML\TagValidatorInterface | Interface was added. | +| Magento\Framework\Validator\HTML\WYSIWYGValidatorInterface | Interface was added. | +| Magento\Framework\View\Asset\ContentProcessorInterface | Interface was added. | +| Magento\Framework\View\Asset\ContextInterface | Interface was added. | +| Magento\Framework\View\Asset\LockerProcessInterface | Interface was added. | +| Magento\Framework\View\Asset\MergeStrategyInterface | Interface was added. | +| Magento\Framework\View\Asset\MergeableInterface | Interface was added. | +| Magento\Framework\View\Asset\PreProcessor\FilenameResolverInterface | Interface was added. | +| Magento\Framework\View\DesignInterface | Interface was added. | +| Magento\Framework\View\Design\Fallback\Rule\RuleInterface | Interface was added. | +| Magento\Framework\View\Design\FileResolution\Fallback\ResolverInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\CustomizationInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\ConfigInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\FileAssetInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\FileInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\FileInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\File\CollectionInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Image\PathInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\ResolverInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\ThemeProviderInterface | Interface was added. | +| Magento\Framework\View\Element\ComponentVisibilityInterface | Interface was added. | +| Magento\Framework\View\Element\Message\InterpretationStrategyInterface | Interface was added. | +| Magento\Framework\View\Element\Message\Renderer\PoolInterface | Interface was added. | +| Magento\Framework\View\Element\Message\Renderer\RendererInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\BlockWrapperInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\DomMergerInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\FileCollectorInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\UiReaderInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContainerInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContentType\ContentTypeInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContextInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ActionPoolInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ControlInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\FilterApplierInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\DataSourceInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Factory\ComponentFactoryInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\JsConfigInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\LayoutInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ObserverInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\PoolInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\SubjectInterface | Interface was added. | +| Magento\Framework\View\File\FileList\CollateInterface | Interface was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\SecurityProcessorInterface | Interface was added. | +| Magento\Framework\View\Layout\Argument\UpdaterInterface | Interface was added. | +| Magento\Framework\View\Layout\Condition\VisibilityConditionInterface | Interface was added. | +| Magento\Framework\View\Layout\GeneratorInterface | Interface was added. | +| Magento\Framework\View\Layout\LayoutCacheKeyInterface | Interface was added. | +| Magento\Framework\View\Layout\ProcessorInterface | Interface was added. | +| Magento\Framework\View\Layout\ReaderInterface | Interface was added. | +| Magento\Framework\View\Model\PageLayout\Config\BuilderInterface | Interface was added. | +| Magento\Framework\View\Page\Config\RendererInterface | Interface was added. | +| Magento\Framework\View\TemplateEngineInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\AttributeInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CdataInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CommentInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Directive\DirectiveInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Element\ElementInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\TextInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\ResultInterface | Interface was added. | +| Magento\Framework\View\Xsd\Media\TypeDataExtractorInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttributeTypeLocatorInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttribute\PreprocessorInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttribute\ServiceTypeListInterface | Interface was added. | +| Magento\Framework\Webapi\Rest\Request\DeserializerInterface | Interface was added. | +| Magento\GiftCardAccount\Api\GiftCardRedeemerInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\Data\UsageAttemptInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\GiftCardAccountManagerInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\GiftCardAccountResourceInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\UsageAttemptFactoryInterface | Interface was added. | +| Magento\GiftCardAccount\Model\Spi\UsageAttemptsManagerInterface | Interface was added. | +| Magento\GiftRegistry\Model\Attribute\ConfigInterface | Interface was added. | +| Magento\GraphQl\Controller\HttpHeaderProcessorInterface | Interface was added. | +| Magento\GraphQl\Controller\HttpRequestValidatorInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextParametersInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextParametersProcessorInterface | Interface was added. | +| Magento\ImportExport\Api\Data\ExtendedExportInfoInterface | Interface was added. | +| Magento\ImportExport\Model\Report\ReportProcessorInterface | Interface was added. | +| Magento\Indexer\Model\ModeSwitcherInterface | Interface was added. | +| Magento\Indexer\Model\Source\DataInterface | Interface was added. | +| Magento\Integration\Model\Oauth\Token\RequestLog\ReaderInterface | Interface was added. | +| Magento\Integration\Model\Oauth\Token\RequestLog\WriterInterface | Interface was added. | +| Magento\InventoryIndexer\Indexer\SelectBuilderInterface | Interface was added. | +| Magento\Invitation\Controller\Customer\AccountInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\Data\IsLoginAsCustomerEnabledForCustomerResultInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerAdminIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerCustomerIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\IsLoginAsCustomerEnabledForCustomerInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerAdminIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerCustomerIdInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\ConfigInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\IsAssistanceEnabledInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\SetAssistanceInterface | Interface was added. | +| Magento\MediaContentApi\Api\GetAssetIdsByContentFieldInterface | Interface was added. | +| Magento\MediaContentApi\Api\UpdateContentAssetLinksInterface | Interface was added. | +| Magento\MediaContentApi\Model\GetAssetIdsByContentFieldInterface | Interface was added. | +| Magento\MediaContentApi\Model\SearchPatternConfigInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Api\SynchronizeIdentitiesInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Api\SynchronizeInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Model\GetEntitiesInterface | Interface was added. | +| Magento\MediaGalleryApi\Api\SearchAssetsInterface | Interface was added. | +| Magento\MediaGalleryApi\Model\ExcludedPatternsConfigInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\AddMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\Data\MetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\ExtractMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\FileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\ReadFileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\ReadMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\SegmentInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\WriteFileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\WriteMetadataInterface | Interface was added. | +| Magento\MediaGalleryRenditionsApi\Api\GenerateRenditionsInterface | Interface was added. | +| Magento\MediaGalleryRenditionsApi\Api\GetRenditionPathInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Api\SynchronizeFilesInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Api\SynchronizeInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\CreateAssetFromFileInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\FetchBatchesInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\ImportFilesInterface | Interface was added. | +| Magento\MediaGalleryUiApi\Api\ConfigInterface | Interface was added. | +| Magento\Msrp\Pricing\MsrpPriceCalculatorInterface | Interface was added. | +| Magento\MultipleWishlist\Controller\IndexInterface | Interface was added. | +| Magento\MultipleWishlist\Model\Search\Strategy\StrategyInterface | Interface was added. | +| Magento\Newsletter\Model\SubscriptionManagerInterface | Interface was added. | +| Magento\PageCache\Model\Spi\PageCacheTagsPreprocessorInterface | Interface was added. | +| Magento\Payment\Api\Data\PaymentAdditionalInfoInterface | Interface was added. | +| Magento\Payment\Model\Method\TransparentInterface | Interface was added. | +| Magento\Paypal\Helper\Shortcut\ValidatorInterface | Interface was added. | +| Magento\Paypal\Model\Billing\Agreement\MethodInterface | Interface was added. | +| Magento\Paypal\Model\IpnInterface | Interface was added. | +| Magento\Paypal\Model\Payflow\Service\Response\Handler\HandlerInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\CartItem\DataProvider\CustomizableOptionValueInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\CartItem\DataProvider\Processor\ItemDataProcessorInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\Payment\AdditionalDataProviderInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\SetShippingAddressesOnCartInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\SetShippingMethodsOnCartInterface | Interface was added. | +| Magento\Quote\Api\ChangeQuoteControlInterface | Interface was added. | +| Magento\Quote\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | +| Magento\Quote\Model\Product\QuoteItemsCleanerInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\CustomAttributeListInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\Total\CollectorInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\Total\ReaderInterface | Interface was added. | +| Magento\Quote\Model\Quote\Item\CartItemProcessorInterface | Interface was added. | +| Magento\Quote\Model\ValidationRules\QuoteValidationRuleInterface | Interface was added. | +| Magento\ReleaseNotification\Model\ContentProviderInterface | Interface was added. | +| Magento\RemoteStorage\Driver\DriverFactoryInterface | Interface was added. | +| Magento\RemoteStorage\Driver\RemoteDriverInterface | Interface was added. | +| Magento\RemoteStorage\FilesystemInterface | Interface was added. | +| Magento\RewardGraphQl\Model\Formatter\Customer\FormatterInterface | Interface was added. | +| Magento\Reward\Observer\PlaceOrder\RestrictionInterface | Interface was added. | +| Magento\Rma\Model\Spi\CommentResourceInterface | Interface was added. | +| Magento\Rma\Model\Spi\RmaResourceInterface | Interface was added. | +| Magento\Rma\Model\Spi\TrackResourceInterface | Interface was added. | +| Magento\SalesGraphQl\Model\Shipment\Item\FormatterInterface | Interface was added. | +| Magento\SalesRule\Api\Data\DiscountDataInterface | Interface was added. | +| Magento\SalesRule\Api\Data\RuleDiscountInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\CodeLimitManagerInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\QuoteResetAppliedRulesInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\RuleQuoteRecollectTotalsInterface | Interface was added. | +| Magento\Sales\Api\OrderCustomerDelegateInterface | Interface was added. | +| Magento\Sales\Api\PaymentFailuresInterface | Interface was added. | +| Magento\Sales\Controller\AbstractController\OrderLoaderInterface | Interface was added. | +| Magento\Sales\Controller\AbstractController\OrderViewAuthorizationInterface | Interface was added. | +| Magento\Sales\Controller\OrderInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\CreditmemoValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\ItemCreationValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\SenderInterface | Interface was added. | +| Magento\Sales\Model\Order\Email\Container\IdentityInterface | Interface was added. | +| Magento\Sales\Model\Order\Invoice\InvoiceValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Invoice\SenderInterface | Interface was added. | +| Magento\Sales\Model\Order\OrderValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\State\CommandInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\Transaction\BuilderInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\Transaction\ManagerInterface | Interface was added. | +| Magento\Sales\Model\Order\Shipment\SenderInterface | Interface was added. | +| Magento\Sales\Model\Order\Shipment\ShipmentValidatorInterface | Interface was added. | +| Magento\Sales\Model\ResourceModel\Order\CollectionFactoryInterface | Interface was added. | +| Magento\Sales\Model\ResourceModel\Provider\NotSyncedDataProviderInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderAddressResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderPaymentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderStatusHistoryResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentTrackResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\TransactionResourceInterface | Interface was added. | +| Magento\Sales\Model\ValidatorInterface | Interface was added. | +| Magento\ScheduledImportExport\Model\Scheduled\Operation\OperationInterface | Interface was added. | +| Magento\Search\Model\SearchEngine\ValidatorInterface | Interface was added. | +| Magento\Search\Setup\InstallConfigInterface | Interface was added. | +| Magento\Security\Api\Data\UserExpirationInterface | Interface was added. | +| Magento\Shipping\Model\Carrier\Source\GenericInterface | Interface was added. | +| Magento\Staging\Block\Adminhtml\Update\Entity\EntityProviderInterface | Interface was added. | +| Magento\Staging\Block\Adminhtml\Update\Entity\StoreIdProviderInterface | Interface was added. | +| Magento\Staging\Model\Entity\BuilderInterface | Interface was added. | +| Magento\Staging\Model\Entity\HydratorInterface | Interface was added. | +| Magento\Staging\Model\Entity\PersisterInterface | Interface was added. | +| Magento\Staging\Model\Entity\RemoverInterface | Interface was added. | +| Magento\Staging\Model\Entity\RetrieverInterface | Interface was added. | +| Magento\Staging\Model\Entity\Update\Action\TransactionExecutorInterface | Interface was added. | +| Magento\Staging\Model\Operation\Update\UpdateProcessorInterface | Interface was added. | +| Magento\Staging\Model\StagingApplierInterface | Interface was added. | +| Magento\Staging\Model\Update\Grid\ActionDataProviderInterface | Interface was added. | +| Magento\Staging\Model\Update\IncludesInterface | Interface was added. | +| Magento\Staging\Model\VersionHistoryInterface | Interface was added. | +| Magento\Staging\Ui\Component\Listing\Column\Entity\UrlProviderInterface | Interface was added. | +| Magento\Store\Model\Config\Importer\Processor\ProcessorInterface | Interface was added. | +| Magento\Store\Model\StoreResolver\ReaderInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcherInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\ContextInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataPostprocessorInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataPreprocessorInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataSerializerInterface | Interface was added. | +| Magento\Support\Model\Report\ConfigInterface | Interface was added. | +| Magento\Swat\Api\Data\JwtInterface | Interface was added. | +| Magento\Swat\Api\Data\SwatKeyPairInterface | Interface was added. | +| Magento\Tax\Api\TaxAddressManagerInterface | Interface was added. | +| Magento\Tax\Model\System\Message\NotificationInterface | Interface was added. | +| Magento\Tax\Model\TaxClass\Type\TypeInterface | Interface was added. | +| Magento\Theme\Model\Design\Config\MetadataProviderInterface | Interface was added. | +| Magento\Theme\Model\Theme\StoreThemesResolverInterface | Interface was added. | +| Magento\Ui\Component\Form\Element\DataType\DataTypeInterface | Interface was added. | +| Magento\Ui\Component\Layout\Tabs\TabInterface | Interface was added. | +| Magento\Ui\Component\Wysiwyg\ConfigInterface | Interface was added. | +| Magento\Ui\Config\Argument\ParserInterface | Interface was added. | +| Magento\Ui\Config\ConverterInterface | Interface was added. | +| Magento\Ui\Controller\UiActionInterface | Interface was added. | +| Magento\Ui\DataProvider\AddFieldToCollectionInterface | Interface was added. | +| Magento\Ui\DataProvider\AddFilterToCollectionInterface | Interface was added. | +| Magento\Ui\DataProvider\Mapper\MapperInterface | Interface was added. | +| Magento\Ui\DataProvider\Modifier\PoolInterface | Interface was added. | +| Magento\Ui\Model\ColorPicker\ModeInterface | Interface was added. | +| Magento\Ui\Model\UrlInput\ConfigInterface | Interface was added. | +| Magento\UrlRewriteGraphQl\Model\Resolver\UrlRewrite\CustomUrlLocatorInterface | Interface was added. | +| Magento\User\Model\Spi\NotificationExceptionInterface | Interface was added. | +| Magento\User\Model\Spi\NotificatorInterface | Interface was added. | +| Magento\Vault\Block\Customer\IconInterface | Interface was added. | +| Magento\VersionsCms\Model\CurrentNodeResolverInterface | Interface was added. | +| Magento\VersionsCms\Model\Hierarchy\ConfigInterface | Interface was added. | +| Magento\VisualMerchandiser\Api\RuleFactoryPoolInterface | Interface was added. | +| Magento\Webapi\Controller\Rest\RequestProcessorInterface | Interface was added. | +| Magento\Widget\Block\BlockInterface | Interface was added. | +| Magento\Wishlist\Controller\IndexInterface | Interface was added. | +| Magento\Wishlist\Controller\WishlistProviderInterface | Interface was added. | +| Magento\Wishlist\Model\AuthenticationStateInterface | Interface was added. | +| Magento\Wishlist\Model\ResourceModel\Item\Product\CollectionBuilderInterface | Interface was added. | +| Magento\Wishlist\Model\Wishlist\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | diff --git a/src/_includes/backward-incompatible-changes/open-source/2.4.4-2.4.5.md b/src/_includes/backward-incompatible-changes/open-source/2.4.4-2.4.5.md index f6a48cafa30..c752e5cc27c 100644 --- a/src/_includes/backward-incompatible-changes/open-source/2.4.4-2.4.5.md +++ b/src/_includes/backward-incompatible-changes/open-source/2.4.4-2.4.5.md @@ -1,781 +1,781 @@ #### Class changes {#ce-244-245-class} -| What changed | How it changed | -| --- | --- | +| What changed | How it changed | +| -------------------------------------------------------------------------------- | ------------------------------------ | +| Magento\CatalogInventory\Model\Source\Stock::\_\_construct | [public] Method has been added. | | Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\CustomOptions::formatPrice | [protected] Method has been removed. | -| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav::formatPrice | [protected] Method has been removed. | -| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\General::formatPrice | [protected] Method has been removed. | -| Magento\GoogleGtag\Block\Ga | Class was added. | -| Magento\CatalogInventory\Model\Source\Stock::\_\_construct | [public] Method has been added. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav::formatPrice | [protected] Method has been removed. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\General::formatPrice | [protected] Method has been removed. | +| Magento\GoogleGtag\Block\Ga | Class was added. | #### Database changes {#ce-244-245-database} -| What changed | How it changed | -| --- | --- | -| catalog\_product\_index\_price\_tmp/PRIMARY | Primary key was changed | -| customer\_eav\_attribute/grid\_filter\_condition\_type | Column was added | -| catalog\_product\_index\_price\_tmp/id | Column was added | +| What changed | How it changed | +| ------------------------------------------------- | ----------------------- | +| catalog_product_index_price_tmp/PRIMARY | Primary key was changed | +| catalog_product_index_price_tmp/id | Column was added | +| customer_eav_attribute/grid_filter_condition_type | Column was added | #### System changes {#ce-244-245-system} -| What changed | How it changed | -| --- | --- | -| webapi/graphql\_session | A group-node was added | -| webapi/graphql\_session/disabled | A field-node was added | -| web\_api | A section-node was added | -| web\_api/graphql | A group-node was added | -| web\_api/graphql/include\_dynamic\_attributes\_as\_entity\_type\_fields | A field-node was added | -| google/gtag | A group-node was added | -| google/gtag/analytics4 | A group-node was added | -| google/gtag/analytics4/experiments | A field-node was added | -| google/gtag/analytics4/active | A field-node was added | -| google/gtag/analytics4/measurement\_id | A field-node was added | -| google/gtag/adwords | A group-node was added | -| google/gtag/adwords/active | A field-node was added | -| google/gtag/adwords/conversion\_id | A field-node was added | -| google/gtag/adwords/conversion\_label | A field-node was added | +| What changed | How it changed | +| ---------------------------------------------------------------- | ------------------------ | +| google/gtag | A group-node was added | +| google/gtag/adwords | A group-node was added | +| google/gtag/adwords/active | A field-node was added | +| google/gtag/adwords/conversion_id | A field-node was added | +| google/gtag/adwords/conversion_label | A field-node was added | +| google/gtag/analytics4 | A group-node was added | +| google/gtag/analytics4/active | A field-node was added | +| google/gtag/analytics4/experiments | A field-node was added | +| google/gtag/analytics4/measurement_id | A field-node was added | +| web_api | A section-node was added | +| web_api/graphql | A group-node was added | +| web_api/graphql/include_dynamic_attributes_as_entity_type_fields | A field-node was added | +| webapi/graphql_session | A group-node was added | +| webapi/graphql_session/disabled | A field-node was added | #### Class API membership changes {#ce-244-245-class-api-membership} -| What changed | How it changed | -| --- | --- | -| Magento\Wishlist\Model\Wishlist\Data\WishlistItem | Class was added. | -| Magento\Ui\Component\Form\Fieldset\Factory | Class was added. | -| Magento\Ui\Component\Control\Container | Class was added. | -| Magento\Store\Ui\Component\Listing\Column\Store\Options | Class was added. | -| Magento\Sales\Setup\SalesSetup | Class was added. | -| Magento\Sales\Model\Service\InvoiceService | Class was added. | -| Magento\Sales\Model\ResourceModel\Order\CollectionFactory | Class was added. | -| Magento\Sales\Model\ResourceModel\Order\Collection\Factory | Class was added. | -| Magento\Sales\Model\Order\CreditmemoFactory | Class was added. | -| Magento\Sales\Model\Order\Pdf\Total\DefaultTotal | Class was added. | -| Magento\Sales\Model\Order\Email\Sender\InvoiceSender | Class was added. | -| Magento\Sales\Model\Order\Email\Sender\OrderSender | Class was added. | -| Magento\Sales\Controller\Adminhtml\Order | Class was added. | -| Magento\SalesRule\Model\Validator | Class was added. | -| Magento\SalesRule\Api\Exception\CodeRequestLimitException | Class was added. | -| Magento\Quote\Setup\QuoteSetup | Class was added. | -| Magento\Quote\Model\Quote\Item\CartItemOptionsProcessor | Class was added. | -| Magento\Quote\Model\Quote\Item\Option | Class was added. | -| Magento\Quote\Model\Quote\Address\RateCollectorInterfaceFactory | Class was added. | -| Magento\Quote\Model\Cart\Data\CartItem | Class was added. | -| Magento\Paypal\Model\Billing\AbstractAgreement | Class was added. | -| Magento\Payment\Gateway\Config\Config | Class was added. | -| Magento\Indexer\Model\DimensionModes | Class was added. | -| Magento\ImportExport\Model\Export\Factory | Class was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\AttributeAdapter | Class was added. | -| Magento\Deploy\Package\Package | Class was added. | -| Magento\Deploy\Package\PackageFile | Class was added. | -| Magento\Customer\Setup\CustomerSetup | Class was added. | -| Magento\Customer\Model\Context | Class was added. | -| Magento\Customer\Model\CustomerRegistry | Class was added. | -| Magento\Customer\Model\Url | Class was added. | -| Magento\Customer\Model\Metadata\FormFactory | Class was added. | -| Magento\Customer\Controller\RegistryConstants | Class was added. | -| Magento\Customer\Controller\Adminhtml\Index | Class was added. | -| Magento\Customer\Block\Adminhtml\Edit\GenericButton | Class was added. | -| Magento\Config\Block\System\Config\Form\Fieldset\Factory | Class was added. | -| Magento\Config\Block\System\Config\Form\Field\Factory | Class was added. | -| Magento\Cms\Model\Template\FilterProvider | Class was added. | -| Magento\Checkout\Model\Type\Onepage | Class was added. | -| Magento\Checkout\Controller\Cart | Class was added. | -| Magento\Checkout\Api\Exception\PaymentProcessingRateLimitExceededException | Class was added. | -| Magento\Catalog\Pricing\Price\FinalPrice | Class was added. | -| Magento\Catalog\Model\Config | Class was added. | +| What changed | How it changed | +| ----------------------------------------------------------------------------- | ---------------- | +| Magento\Analytics\ReportXml\DB\SelectBuilder | Class was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\SearchResult | Class was added. | +| Magento\Catalog\Block\Adminhtml\Product\Edit\Button\Generic | Class was added. | +| Magento\Catalog\Block\Product\ImageFactory | Class was added. | +| Magento\Catalog\Controller\Adminhtml\Product | Class was added. | +| Magento\Catalog\Model\Config | Class was added. | +| Magento\Catalog\Model\Layer\Filter\Item | Class was added. | +| Magento\Catalog\Model\Layer\Resolver | Class was added. | +| Magento\Catalog\Model\Product\Type\Price\Factory | Class was added. | | Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\IndexTableStructure | Class was added. | -| Magento\Catalog\Model\Product\Type\Price\Factory | Class was added. | -| Magento\Catalog\Model\Layer\Resolver | Class was added. | -| Magento\Catalog\Model\Layer\Filter\Item | Class was added. | -| Magento\Catalog\Controller\Adminhtml\Product | Class was added. | -| Magento\Catalog\Block\Product\ImageFactory | Class was added. | -| Magento\Catalog\Block\Adminhtml\Product\Edit\Button\Generic | Class was added. | -| Magento\CatalogGraphQl\Model\Resolver\Products\SearchResult | Class was added. | -| Magento\Analytics\ReportXml\DB\SelectBuilder | Class was added. | -| Magento\Framework\AclFactory | Class was added. | -| Magento\Framework\EventFactory | Class was added. | -| Magento\Framework\Url | Class was added. | -| Magento\Framework\UrlFactory | Class was added. | -| Magento\Framework\ValidatorFactory | Class was added. | -| Magento\Framework\Webapi\Exception | Class was added. | -| Magento\Framework\Webapi\Rest\Request | Class was added. | -| Magento\Framework\View\Asset | Class was added. | -| Magento\Framework\View\LayoutFactory | Class was added. | -| Magento\Framework\View\PageLayout\Config | Class was added. | -| Magento\Framework\View\Page\ConfigFactory | Class was added. | -| Magento\Framework\View\Layout\Reader\ContextFactory | Class was added. | -| Magento\Framework\View\Layout\Generator\ContextFactory | Class was added. | -| Magento\Framework\View\Helper\SecureHtmlRender\EventHandlerData | Class was added. | -| Magento\Framework\View\Helper\SecureHtmlRender\TagData | Class was added. | -| Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider | Class was added. | -| Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult | Class was added. | -| Magento\Framework\View\Element\Html\Select | Class was added. | -| Magento\Framework\View\Asset\FileFactory | Class was added. | -| Magento\Framework\View\Asset\File\FallbackContextFactory | Class was added. | -| Magento\Framework\Url\Helper\Data | Class was added. | -| Magento\Framework\Setup\Declaration\Schema\ElementHistory | Class was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Schema | Class was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Table | Class was added. | -| Magento\Framework\Setup\Declaration\Schema\Diff\DiffFactory | Class was added. | -| Magento\Framework\Setup\Declaration\Schema\Db\StatementAggregator | Class was added. | -| Magento\Framework\Session\Config | Class was added. | -| Magento\Framework\Session\SessionManager | Class was added. | -| Magento\Framework\Profiler\Driver\Standard\Stat | Class was added. | -| Magento\Framework\Module\Dir | Class was added. | -| Magento\Framework\Module\Manager | Class was added. | -| Magento\Framework\Module\Setup\MigrationFactory | Class was added. | -| Magento\Framework\Message\CollectionFactory | Class was added. | -| Magento\Framework\Mail\Address | Class was added. | -| Magento\Framework\Mail\TransportInterfaceFactory | Class was added. | -| Magento\Framework\Logger\Handler\Base | Class was added. | -| Magento\Framework\Image\AdapterFactory | Class was added. | -| Magento\Framework\Image\Adapter\AbstractAdapter | Class was added. | -| Magento\Framework\HTTP\PhpEnvironment\RemoteAddress | Class was added. | -| Magento\Framework\HTTP\PhpEnvironment\Request | Class was added. | -| Magento\Framework\HTTP\Client\Curl | Class was added. | -| Magento\Framework\HTTP\AsyncClient\Request | Class was added. | -| Magento\Framework\HTTP\AsyncClient\Response | Class was added. | -| Magento\Framework\HTTP\Adapter\Curl | Class was added. | -| Magento\Framework\GraphQl\Schema | Class was added. | -| Magento\Framework\GraphQl\Schema\Type\ResolveInfo | Class was added. | -| Magento\Framework\GraphQl\Query\Resolver\BatchResponse | Class was added. | -| Magento\Framework\GraphQl\Query\Resolver\Value | Class was added. | -| Magento\Framework\GraphQl\Exception\GraphQlAuthenticationException | Class was added. | -| Magento\Framework\GraphQl\Exception\GraphQlAuthorizationException | Class was added. | -| Magento\Framework\GraphQl\Exception\GraphQlInputException | Class was added. | -| Magento\Framework\GraphQl\Exception\GraphQlNoSuchEntityException | Class was added. | -| Magento\Framework\GraphQl\Config\Element\Field | Class was added. | -| Magento\Framework\Filesystem\DirectoryList | Class was added. | -| Magento\Framework\Filesystem\Io\File | Class was added. | -| Magento\Framework\Filesystem\Directory\ReadFactory | Class was added. | -| Magento\Framework\File\Csv | Class was added. | -| Magento\Framework\File\UploaderFactory | Class was added. | -| Magento\Framework\Event\ObserverFactory | Class was added. | -| Magento\Framework\DataObject\Factory | Class was added. | -| Magento\Framework\Data\FormFactory | Class was added. | -| Magento\Framework\Data\TreeFactory | Class was added. | -| Magento\Framework\Data\Tree\Dbp | Class was added. | -| Magento\Framework\Data\Tree\NodeFactory | Class was added. | -| Magento\Framework\Data\Form\Element\Factory | Class was added. | -| Magento\Framework\Data\Form\Element\Image | Class was added. | -| Magento\Framework\DB\Helper | Class was added. | -| Magento\Framework\DB\Transaction | Class was added. | -| Magento\Framework\DB\Helper\AbstractHelper | Class was added. | -| Magento\Framework\DB\Ddl\TriggerFactory | Class was added. | -| Magento\Framework\DB\Adapter\Pdo\MysqlFactory | Class was added. | -| Magento\Framework\Convert\DataObject | Class was added. | -| Magento\Framework\Controller\Result\Forward | Class was added. | -| Magento\Framework\Controller\Result\JsonFactory | Class was added. | -| Magento\Framework\Controller\Result\Raw | Class was added. | -| Magento\Framework\Console\Cli | Class was added. | -| Magento\Framework\Config\ViewFactory | Class was added. | -| Magento\Framework\Config\Data\ConfigDataFactory | Class was added. | -| Magento\Framework\App\Area | Class was added. | -| Magento\Framework\App\Response\Http | Class was added. | -| Magento\Framework\App\Response\Http\FileFactory | Class was added. | -| Magento\Framework\App\Request\Http | Class was added. | -| Magento\Framework\App\Request\InvalidRequestException | Class was added. | -| Magento\Framework\App\Http\Context | Class was added. | -| Magento\Framework\App\Filesystem\DirectoryList | Class was added. | -| Magento\Framework\App\Config\ValueFactory | Class was added. | -| Magento\Framework\App\Cache\Type\Config | Class was added. | -| Magento\Framework\Api\AbstractSimpleObject | Class was added. | -| Magento\Framework\Api\SearchCriteriaBuilder | Class was added. | -| Magento\Framework\Api\Search\DocumentFactory | Class was added. | -| Magento\Framework\Api\Search\SearchCriteriaFactory | Class was added. | -| Magento\Framework\Api\ExtensionAttribute\JoinData | Class was added. | -| Magento\Framework\Api\ExtensionAttribute\JoinDataInterfaceFactory | Class was added. | -| Magento\Framework\Acl\AclResourceFactory | Class was added. | -| Magento\Framework\Amqp\ConfigFactory | Class was added. | +| Magento\Catalog\Pricing\Price\FinalPrice | Class was added. | +| Magento\Checkout\Api\Exception\PaymentProcessingRateLimitExceededException | Class was added. | +| Magento\Checkout\Controller\Cart | Class was added. | +| Magento\Checkout\Model\Type\Onepage | Class was added. | +| Magento\Cms\Model\Template\FilterProvider | Class was added. | +| Magento\Config\Block\System\Config\Form\Field\Factory | Class was added. | +| Magento\Config\Block\System\Config\Form\Fieldset\Factory | Class was added. | +| Magento\Customer\Block\Adminhtml\Edit\GenericButton | Class was added. | +| Magento\Customer\Controller\Adminhtml\Index | Class was added. | +| Magento\Customer\Controller\RegistryConstants | Class was added. | +| Magento\Customer\Model\Context | Class was added. | +| Magento\Customer\Model\CustomerRegistry | Class was added. | +| Magento\Customer\Model\Metadata\FormFactory | Class was added. | +| Magento\Customer\Model\Url | Class was added. | +| Magento\Customer\Setup\CustomerSetup | Class was added. | +| Magento\Deploy\Package\Package | Class was added. | +| Magento\Deploy\Package\PackageFile | Class was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\AttributeAdapter | Class was added. | +| Magento\Framework\AclFactory | Class was added. | +| Magento\Framework\Acl\AclResourceFactory | Class was added. | +| Magento\Framework\Amqp\ConfigFactory | Class was added. | +| Magento\Framework\Api\AbstractSimpleObject | Class was added. | +| Magento\Framework\Api\ExtensionAttribute\JoinData | Class was added. | +| Magento\Framework\Api\ExtensionAttribute\JoinDataInterfaceFactory | Class was added. | +| Magento\Framework\Api\SearchCriteriaBuilder | Class was added. | +| Magento\Framework\Api\Search\DocumentFactory | Class was added. | +| Magento\Framework\Api\Search\SearchCriteriaFactory | Class was added. | +| Magento\Framework\App\Area | Class was added. | +| Magento\Framework\App\Cache\Type\Config | Class was added. | +| Magento\Framework\App\Config\ValueFactory | Class was added. | +| Magento\Framework\App\Filesystem\DirectoryList | Class was added. | +| Magento\Framework\App\Http\Context | Class was added. | +| Magento\Framework\App\Request\Http | Class was added. | +| Magento\Framework\App\Request\InvalidRequestException | Class was added. | +| Magento\Framework\App\Response\Http | Class was added. | +| Magento\Framework\App\Response\Http\FileFactory | Class was added. | +| Magento\Framework\Config\Data\ConfigDataFactory | Class was added. | +| Magento\Framework\Config\ViewFactory | Class was added. | +| Magento\Framework\Console\Cli | Class was added. | +| Magento\Framework\Controller\Result\Forward | Class was added. | +| Magento\Framework\Controller\Result\JsonFactory | Class was added. | +| Magento\Framework\Controller\Result\Raw | Class was added. | +| Magento\Framework\Convert\DataObject | Class was added. | +| Magento\Framework\DB\Adapter\Pdo\MysqlFactory | Class was added. | +| Magento\Framework\DB\Ddl\TriggerFactory | Class was added. | +| Magento\Framework\DB\Helper | Class was added. | +| Magento\Framework\DB\Helper\AbstractHelper | Class was added. | +| Magento\Framework\DB\Transaction | Class was added. | +| Magento\Framework\DataObject\Factory | Class was added. | +| Magento\Framework\Data\FormFactory | Class was added. | +| Magento\Framework\Data\Form\Element\Factory | Class was added. | +| Magento\Framework\Data\Form\Element\Image | Class was added. | +| Magento\Framework\Data\TreeFactory | Class was added. | +| Magento\Framework\Data\Tree\Dbp | Class was added. | +| Magento\Framework\Data\Tree\NodeFactory | Class was added. | +| Magento\Framework\EventFactory | Class was added. | +| Magento\Framework\Event\ObserverFactory | Class was added. | +| Magento\Framework\File\Csv | Class was added. | +| Magento\Framework\File\UploaderFactory | Class was added. | +| Magento\Framework\Filesystem\DirectoryList | Class was added. | +| Magento\Framework\Filesystem\Directory\ReadFactory | Class was added. | +| Magento\Framework\Filesystem\Io\File | Class was added. | +| Magento\Framework\GraphQl\Config\Element\Field | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlAuthenticationException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlAuthorizationException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlInputException | Class was added. | +| Magento\Framework\GraphQl\Exception\GraphQlNoSuchEntityException | Class was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchResponse | Class was added. | +| Magento\Framework\GraphQl\Query\Resolver\Value | Class was added. | +| Magento\Framework\GraphQl\Schema | Class was added. | +| Magento\Framework\GraphQl\Schema\Type\ResolveInfo | Class was added. | +| Magento\Framework\HTTP\Adapter\Curl | Class was added. | +| Magento\Framework\HTTP\AsyncClient\Request | Class was added. | +| Magento\Framework\HTTP\AsyncClient\Response | Class was added. | +| Magento\Framework\HTTP\Client\Curl | Class was added. | +| Magento\Framework\HTTP\PhpEnvironment\RemoteAddress | Class was added. | +| Magento\Framework\HTTP\PhpEnvironment\Request | Class was added. | +| Magento\Framework\Image\AdapterFactory | Class was added. | +| Magento\Framework\Image\Adapter\AbstractAdapter | Class was added. | +| Magento\Framework\Logger\Handler\Base | Class was added. | +| Magento\Framework\Mail\Address | Class was added. | +| Magento\Framework\Mail\TransportInterfaceFactory | Class was added. | +| Magento\Framework\Message\CollectionFactory | Class was added. | +| Magento\Framework\Module\Dir | Class was added. | +| Magento\Framework\Module\Manager | Class was added. | +| Magento\Framework\Module\Setup\MigrationFactory | Class was added. | +| Magento\Framework\Profiler\Driver\Standard\Stat | Class was added. | +| Magento\Framework\Session\Config | Class was added. | +| Magento\Framework\Session\SessionManager | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\StatementAggregator | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Diff\DiffFactory | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Schema | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Table | Class was added. | +| Magento\Framework\Setup\Declaration\Schema\ElementHistory | Class was added. | +| Magento\Framework\Url | Class was added. | +| Magento\Framework\UrlFactory | Class was added. | +| Magento\Framework\Url\Helper\Data | Class was added. | +| Magento\Framework\ValidatorFactory | Class was added. | +| Magento\Framework\View\Asset | Class was added. | +| Magento\Framework\View\Asset\FileFactory | Class was added. | +| Magento\Framework\View\Asset\File\FallbackContextFactory | Class was added. | +| Magento\Framework\View\Element\Html\Select | Class was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\DataProvider | Class was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\SearchResult | Class was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\EventHandlerData | Class was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\TagData | Class was added. | +| Magento\Framework\View\LayoutFactory | Class was added. | +| Magento\Framework\View\Layout\Generator\ContextFactory | Class was added. | +| Magento\Framework\View\Layout\Reader\ContextFactory | Class was added. | +| Magento\Framework\View\PageLayout\Config | Class was added. | +| Magento\Framework\View\Page\ConfigFactory | Class was added. | +| Magento\Framework\Webapi\Exception | Class was added. | +| Magento\Framework\Webapi\Rest\Request | Class was added. | +| Magento\ImportExport\Model\Export\Factory | Class was added. | +| Magento\Indexer\Model\DimensionModes | Class was added. | +| Magento\Payment\Gateway\Config\Config | Class was added. | +| Magento\Paypal\Model\Billing\AbstractAgreement | Class was added. | +| Magento\Quote\Model\Cart\Data\CartItem | Class was added. | +| Magento\Quote\Model\Quote\Address\RateCollectorInterfaceFactory | Class was added. | +| Magento\Quote\Model\Quote\Item\CartItemOptionsProcessor | Class was added. | +| Magento\Quote\Model\Quote\Item\Option | Class was added. | +| Magento\Quote\Setup\QuoteSetup | Class was added. | +| Magento\SalesRule\Api\Exception\CodeRequestLimitException | Class was added. | +| Magento\SalesRule\Model\Validator | Class was added. | +| Magento\Sales\Controller\Adminhtml\Order | Class was added. | +| Magento\Sales\Model\Order\CreditmemoFactory | Class was added. | +| Magento\Sales\Model\Order\Email\Sender\InvoiceSender | Class was added. | +| Magento\Sales\Model\Order\Email\Sender\OrderSender | Class was added. | +| Magento\Sales\Model\Order\Pdf\Total\DefaultTotal | Class was added. | +| Magento\Sales\Model\ResourceModel\Order\CollectionFactory | Class was added. | +| Magento\Sales\Model\ResourceModel\Order\Collection\Factory | Class was added. | +| Magento\Sales\Model\Service\InvoiceService | Class was added. | +| Magento\Sales\Setup\SalesSetup | Class was added. | +| Magento\Store\Ui\Component\Listing\Column\Store\Options | Class was added. | +| Magento\Ui\Component\Control\Container | Class was added. | +| Magento\Ui\Component\Form\Fieldset\Factory | Class was added. | +| Magento\Wishlist\Model\Wishlist\Data\WishlistItem | Class was added. | #### Interface API membership changes {#ce-244-245-interface-api-membership} -| What changed | How it changed | -| --- | --- | -| Magento\Wishlist\Model\AuthenticationStateInterface | Interface was added. | -| Magento\Wishlist\Model\Wishlist\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | -| Magento\Wishlist\Model\ResourceModel\Item\Product\CollectionBuilderInterface | Interface was added. | -| Magento\Wishlist\Controller\IndexInterface | Interface was added. | -| Magento\Wishlist\Controller\WishlistProviderInterface | Interface was added. | -| Magento\Widget\Block\BlockInterface | Interface was added. | -| Magento\Webapi\Controller\Rest\RequestProcessorInterface | Interface was added. | -| Magento\Vault\Block\Customer\IconInterface | Interface was added. | -| Magento\User\Model\Spi\NotificationExceptionInterface | Interface was added. | -| Magento\User\Model\Spi\NotificatorInterface | Interface was added. | -| Magento\UrlRewriteGraphQl\Model\Resolver\UrlRewrite\CustomUrlLocatorInterface | Interface was added. | -| Magento\Ui\Model\UrlInput\ConfigInterface | Interface was added. | -| Magento\Ui\Model\ColorPicker\ModeInterface | Interface was added. | -| Magento\Ui\DataProvider\AddFieldToCollectionInterface | Interface was added. | -| Magento\Ui\DataProvider\AddFilterToCollectionInterface | Interface was added. | -| Magento\Ui\DataProvider\Modifier\PoolInterface | Interface was added. | -| Magento\Ui\DataProvider\Mapper\MapperInterface | Interface was added. | -| Magento\Ui\Controller\UiActionInterface | Interface was added. | -| Magento\Ui\Config\ConverterInterface | Interface was added. | -| Magento\Ui\Config\Argument\ParserInterface | Interface was added. | -| Magento\Ui\Component\Wysiwyg\ConfigInterface | Interface was added. | -| Magento\Ui\Component\Layout\Tabs\TabInterface | Interface was added. | -| Magento\Ui\Component\Form\Element\DataType\DataTypeInterface | Interface was added. | -| Magento\Theme\Model\Theme\StoreThemesResolverInterface | Interface was added. | -| Magento\Theme\Model\Design\Config\MetadataProviderInterface | Interface was added. | -| Magento\Tax\Model\TaxClass\Type\TypeInterface | Interface was added. | -| Magento\Tax\Model\System\Message\NotificationInterface | Interface was added. | -| Magento\Tax\Api\TaxAddressManagerInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcherInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcher\ContextInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcher\RedirectDataInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcher\RedirectDataPostprocessorInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcher\RedirectDataPreprocessorInterface | Interface was added. | -| Magento\Store\Model\StoreSwitcher\RedirectDataSerializerInterface | Interface was added. | -| Magento\Store\Model\StoreResolver\ReaderInterface | Interface was added. | -| Magento\Store\Model\Config\Importer\Processor\ProcessorInterface | Interface was added. | -| Magento\Shipping\Model\Carrier\Source\GenericInterface | Interface was added. | -| Magento\Security\Api\Data\UserExpirationInterface | Interface was added. | -| Magento\Search\Setup\InstallConfigInterface | Interface was added. | -| Magento\Search\Model\SearchEngine\ValidatorInterface | Interface was added. | -| Magento\Sales\Model\ValidatorInterface | Interface was added. | -| Magento\Sales\Model\Spi\CreditmemoCommentResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\CreditmemoItemResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\CreditmemoResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\InvoiceCommentResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\InvoiceItemResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\InvoiceResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\OrderAddressResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\OrderItemResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\OrderPaymentResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\OrderResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\OrderStatusHistoryResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\ShipmentCommentResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\ShipmentItemResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\ShipmentResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\ShipmentTrackResourceInterface | Interface was added. | -| Magento\Sales\Model\Spi\TransactionResourceInterface | Interface was added. | -| Magento\Sales\Model\ResourceModel\Provider\NotSyncedDataProviderInterface | Interface was added. | -| Magento\Sales\Model\ResourceModel\Order\CollectionFactoryInterface | Interface was added. | -| Magento\Sales\Model\Order\OrderValidatorInterface | Interface was added. | -| Magento\Sales\Model\Order\Shipment\SenderInterface | Interface was added. | -| Magento\Sales\Model\Order\Shipment\ShipmentValidatorInterface | Interface was added. | -| Magento\Sales\Model\Order\Payment\Transaction\BuilderInterface | Interface was added. | -| Magento\Sales\Model\Order\Payment\Transaction\ManagerInterface | Interface was added. | -| Magento\Sales\Model\Order\Payment\State\CommandInterface | Interface was added. | -| Magento\Sales\Model\Order\Invoice\InvoiceValidatorInterface | Interface was added. | -| Magento\Sales\Model\Order\Invoice\SenderInterface | Interface was added. | -| Magento\Sales\Model\Order\Email\Container\IdentityInterface | Interface was added. | -| Magento\Sales\Model\Order\Creditmemo\CreditmemoValidatorInterface | Interface was added. | -| Magento\Sales\Model\Order\Creditmemo\ItemCreationValidatorInterface | Interface was added. | -| Magento\Sales\Model\Order\Creditmemo\SenderInterface | Interface was added. | -| Magento\Sales\Controller\OrderInterface | Interface was added. | -| Magento\Sales\Controller\AbstractController\OrderLoaderInterface | Interface was added. | -| Magento\Sales\Controller\AbstractController\OrderViewAuthorizationInterface | Interface was added. | -| Magento\Sales\Api\OrderCustomerDelegateInterface | Interface was added. | -| Magento\Sales\Api\PaymentFailuresInterface | Interface was added. | -| Magento\SalesRule\Model\Spi\CodeLimitManagerInterface | Interface was added. | -| Magento\SalesRule\Model\Spi\QuoteResetAppliedRulesInterface | Interface was added. | -| Magento\SalesRule\Model\Spi\RuleQuoteRecollectTotalsInterface | Interface was added. | -| Magento\SalesRule\Api\Data\DiscountDataInterface | Interface was added. | -| Magento\SalesRule\Api\Data\RuleDiscountInterface | Interface was added. | -| Magento\SalesGraphQl\Model\Shipment\Item\FormatterInterface | Interface was added. | -| Magento\RemoteStorage\FilesystemInterface | Interface was added. | -| Magento\RemoteStorage\Driver\DriverFactoryInterface | Interface was added. | -| Magento\RemoteStorage\Driver\RemoteDriverInterface | Interface was added. | -| Magento\ReleaseNotification\Model\ContentProviderInterface | Interface was added. | -| Magento\Quote\Model\ValidationRules\QuoteValidationRuleInterface | Interface was added. | -| Magento\Quote\Model\Quote\Item\CartItemProcessorInterface | Interface was added. | -| Magento\Quote\Model\Quote\Address\CustomAttributeListInterface | Interface was added. | -| Magento\Quote\Model\Quote\Address\Total\CollectorInterface | Interface was added. | -| Magento\Quote\Model\Quote\Address\Total\ReaderInterface | Interface was added. | -| Magento\Quote\Model\Product\QuoteItemsCleanerInterface | Interface was added. | -| Magento\Quote\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | -| Magento\Quote\Api\ChangeQuoteControlInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\CartItem\DataProvider\CustomizableOptionValueInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\CartItem\DataProvider\Processor\ItemDataProcessorInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\Cart\SetShippingAddressesOnCartInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\Cart\SetShippingMethodsOnCartInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\Cart\Payment\AdditionalDataProviderInterface | Interface was added. | -| Magento\QuoteGraphQl\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | -| Magento\Paypal\Model\IpnInterface | Interface was added. | -| Magento\Paypal\Model\Payflow\Service\Response\Handler\HandlerInterface | Interface was added. | -| Magento\Paypal\Model\Billing\Agreement\MethodInterface | Interface was added. | -| Magento\Paypal\Helper\Shortcut\ValidatorInterface | Interface was added. | -| Magento\Payment\Model\Method\TransparentInterface | Interface was added. | -| Magento\Payment\Api\Data\PaymentAdditionalInfoInterface | Interface was added. | -| Magento\PageCache\Model\Spi\PageCacheTagsPreprocessorInterface | Interface was added. | -| Magento\Newsletter\Model\SubscriptionManagerInterface | Interface was added. | -| Magento\Msrp\Pricing\MsrpPriceCalculatorInterface | Interface was added. | -| Magento\MediaGalleryUiApi\Api\ConfigInterface | Interface was added. | -| Magento\MediaGallerySynchronizationApi\Model\CreateAssetFromFileInterface | Interface was added. | -| Magento\MediaGallerySynchronizationApi\Model\FetchBatchesInterface | Interface was added. | -| Magento\MediaGallerySynchronizationApi\Model\ImportFilesInterface | Interface was added. | -| Magento\MediaGallerySynchronizationApi\Api\SynchronizeFilesInterface | Interface was added. | -| Magento\MediaGallerySynchronizationApi\Api\SynchronizeInterface | Interface was added. | -| Magento\MediaGalleryRenditionsApi\Api\GenerateRenditionsInterface | Interface was added. | -| Magento\MediaGalleryRenditionsApi\Api\GetRenditionPathInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\FileInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\ReadFileInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\ReadMetadataInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\SegmentInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\WriteFileInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Model\WriteMetadataInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Api\AddMetadataInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Api\ExtractMetadataInterface | Interface was added. | -| Magento\MediaGalleryMetadataApi\Api\Data\MetadataInterface | Interface was added. | -| Magento\MediaGalleryApi\Model\ExcludedPatternsConfigInterface | Interface was added. | -| Magento\MediaGalleryApi\Api\SearchAssetsInterface | Interface was added. | -| Magento\MediaContentSynchronizationApi\Model\GetEntitiesInterface | Interface was added. | -| Magento\MediaContentSynchronizationApi\Api\SynchronizeIdentitiesInterface | Interface was added. | -| Magento\MediaContentSynchronizationApi\Api\SynchronizeInterface | Interface was added. | -| Magento\MediaContentApi\Model\GetAssetIdsByContentFieldInterface | Interface was added. | -| Magento\MediaContentApi\Model\SearchPatternConfigInterface | Interface was added. | -| Magento\MediaContentApi\Api\GetAssetIdsByContentFieldInterface | Interface was added. | -| Magento\MediaContentApi\Api\UpdateContentAssetLinksInterface | Interface was added. | -| Magento\LoginAsCustomerAssistance\Api\ConfigInterface | Interface was added. | -| Magento\LoginAsCustomerAssistance\Api\IsAssistanceEnabledInterface | Interface was added. | -| Magento\LoginAsCustomerAssistance\Api\SetAssistanceInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerAdminIdInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerCustomerIdInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\IsLoginAsCustomerEnabledForCustomerInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerAdminIdInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerCustomerIdInterface | Interface was added. | -| Magento\LoginAsCustomerApi\Api\Data\IsLoginAsCustomerEnabledForCustomerResultInterface | Interface was added. | -| Magento\InventoryIndexer\Indexer\SelectBuilderInterface | Interface was added. | -| Magento\Integration\Model\Oauth\Token\RequestLog\ReaderInterface | Interface was added. | -| Magento\Integration\Model\Oauth\Token\RequestLog\WriterInterface | Interface was added. | -| Magento\Indexer\Model\ModeSwitcherInterface | Interface was added. | -| Magento\Indexer\Model\Source\DataInterface | Interface was added. | -| Magento\ImportExport\Model\Report\ReportProcessorInterface | Interface was added. | -| Magento\ImportExport\Api\Data\ExtendedExportInfoInterface | Interface was added. | -| Magento\GraphQl\Model\Query\ContextInterface | Interface was added. | -| Magento\GraphQl\Model\Query\ContextParametersInterface | Interface was added. | -| Magento\GraphQl\Model\Query\ContextParametersProcessorInterface | Interface was added. | -| Magento\GraphQl\Controller\HttpHeaderProcessorInterface | Interface was added. | -| Magento\GraphQl\Controller\HttpRequestValidatorInterface | Interface was added. | -| Magento\Elasticsearch\SearchAdapter\QueryAwareInterface | Interface was added. | -| Magento\Elasticsearch\SearchAdapter\Query\ValueTransformerInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldsMappingPreprocessorInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProviderInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldType\ResolverInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\ResolverInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ConverterInterface | Interface was added. | -| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ResolverInterface | Interface was added. | -| Magento\Eav\Model\ResourceModel\Attribute\DefaultEntityAttributes\ProviderInterface | Interface was added. | -| Magento\Eav\Model\Entity\AttributeLoaderInterface | Interface was added. | -| Magento\Eav\Model\Entity\Setup\PropertyMapperInterface | Interface was added. | -| Magento\Eav\Model\Entity\Attribute\AttributeInterface | Interface was added. | -| Magento\Eav\Model\Entity\Attribute\UniqueValidationInterface | Interface was added. | -| Magento\Eav\Model\Entity\Attribute\Source\SpecificSourceInterface | Interface was added. | -| Magento\Eav\Model\Entity\Attribute\Backend\BackendInterface | Interface was added. | -| Magento\Downloadable\Pricing\Price\LinkPriceInterface | Interface was added. | -| Magento\Downloadable\Api\DomainManagerInterface | Interface was added. | -| Magento\Directory\Model\Country\Postcode\ConfigInterface | Interface was added. | -| Magento\Directory\Model\Country\Postcode\ValidatorInterface | Interface was added. | -| Magento\Deploy\Strategy\StrategyInterface | Interface was added. | -| Magento\Deploy\Source\SourceInterface | Interface was added. | -| Magento\Deploy\Package\BundleInterface | Interface was added. | -| Magento\Deploy\Package\Processor\ProcessorInterface | Interface was added. | -| Magento\Deploy\Console\Command\App\SensitiveConfigSet\CollectorInterface | Interface was added. | -| Magento\Deploy\Collector\CollectorInterface | Interface was added. | -| Magento\Customer\Model\Customer\Attribute\Source\GroupSourceLoggedInOnlyInterface | Interface was added. | -| Magento\Customer\CustomerData\JsLayoutDataProviderPoolInterface | Interface was added. | -| Magento\Customer\CustomerData\SectionPoolInterface | Interface was added. | -| Magento\Customer\Controller\AccountInterface | Interface was added. | -| Magento\Customer\Block\Address\Renderer\RendererInterface | Interface was added. | -| Magento\Customer\Api\AccountDelegationInterface | Interface was added. | -| Magento\Customer\Api\SessionCleanerInterface | Interface was added. | -| Magento\Csp\Model\Policy\SimplePolicyInterface | Interface was added. | -| Magento\Csp\Model\Collector\MergerInterface | Interface was added. | -| Magento\Csp\Model\Collector\Config\PolicyReaderInterface | Interface was added. | -| Magento\Csp\Api\CspAwareActionInterface | Interface was added. | -| Magento\Csp\Api\CspRendererInterface | Interface was added. | -| Magento\Csp\Api\InlineUtilInterface | Interface was added. | -| Magento\Csp\Api\ModeConfigManagerInterface | Interface was added. | -| Magento\Csp\Api\PolicyCollectorInterface | Interface was added. | -| Magento\Csp\Api\PolicyRendererInterface | Interface was added. | -| Magento\Csp\Api\Data\ModeConfiguredInterface | Interface was added. | -| Magento\Csp\Api\Data\PolicyInterface | Interface was added. | -| Magento\Cron\Model\DeadlockRetrierInterface | Interface was added. | -| Magento\ConfigurableProduct\Model\ResourceModel\Attribute\OptionSelectBuilderInterface | Interface was added. | -| Magento\Cms\Ui\Component\AddFilterInterface | Interface was added. | -| Magento\Cms\Model\PageRepository\ValidatorInterface | Interface was added. | -| Magento\Cms\Model\Page\CustomLayoutManagerInterface | Interface was added. | -| Magento\Cms\Model\Page\CustomLayoutRepositoryInterface | Interface was added. | -| Magento\Cms\Model\Page\CustomLayout\Data\CustomLayoutSelectedInterface | Interface was added. | -| Magento\Checkout\CustomerData\ItemPoolInterface | Interface was added. | -| Magento\Checkout\Controller\Express\RedirectLoginInterface | Interface was added. | -| Magento\Checkout\Api\PaymentProcessingRateLimiterInterface | Interface was added. | -| Magento\CheckoutAgreements\Model\AgreementsProviderInterface | Interface was added. | -| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav\WysiwygConfigDataProcessorInterface | Interface was added. | -| Magento\Catalog\Pricing\Price\ConfiguredPriceInterface | Interface was added. | -| Magento\Catalog\Pricing\Price\MinimalPriceCalculatorInterface | Interface was added. | -| Magento\Catalog\Pricing\Price\SpecialPriceInterface | Interface was added. | -| Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderInterface | Interface was added. | -| Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\PriceModifierInterface | Interface was added. | -| Magento\Catalog\Model\ProductOptions\ConfigInterface | Interface was added. | -| Magento\Catalog\Model\ProductLink\CollectionProviderInterface | Interface was added. | -| Magento\Catalog\Model\ProductLink\MapProviderInterface | Interface was added. | -| Magento\Catalog\Model\ProductLink\Data\ListCriteriaInterface | Interface was added. | -| Magento\Catalog\Model\ProductLink\Data\ListResultInterface | Interface was added. | -| Magento\Catalog\Model\ProductLink\Converter\ConverterInterface | Interface was added. | -| Magento\Catalog\Model\Product\Pricing\Renderer\SalableResolverInterface | Interface was added. | -| Magento\Catalog\Model\Product\Media\ConfigInterface | Interface was added. | -| Magento\Catalog\Model\Product\Configuration\Item\Option\OptionInterface | Interface was added. | -| Magento\Catalog\Model\Product\Condition\ConditionInterface | Interface was added. | -| Magento\Catalog\Model\Layer\CollectionFilterInterface | Interface was added. | -| Magento\Catalog\Model\Layer\FilterableAttributeListInterface | Interface was added. | -| Magento\Catalog\Model\Layer\ItemCollectionProviderInterface | Interface was added. | -| Magento\Catalog\Model\Layer\StateKeyInterface | Interface was added. | -| Magento\Catalog\Model\Indexer\Product\Flat\TableDataInterface | Interface was added. | -| Magento\Catalog\Model\Entity\Product\Attribute\Group\AttributeMapperInterface | Interface was added. | -| Magento\Catalog\Model\Config\Source\ProductPriceOptionsInterface | Interface was added. | -| Magento\Catalog\Model\Attribute\LockValidatorInterface | Interface was added. | -| Magento\Catalog\Controller\Product\View\ViewInterface | Interface was added. | -| Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper\HandlerInterface | Interface was added. | -| Magento\Catalog\Block\Product\AwareInterface | Interface was added. | -| Magento\Catalog\Block\Product\ReviewRendererInterface | Interface was added. | -| Magento\CatalogUrlRewrite\Model\Map\DatabaseMapInterface | Interface was added. | -| Magento\CatalogUrlRewrite\Model\Map\HashMapInterface | Interface was added. | -| Magento\CatalogSearch\Model\Search\ItemCollectionProviderInterface | Interface was added. | -| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchCriteriaResolverInterface | Interface was added. | -| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchResultApplierInterface | Interface was added. | -| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\TotalRecordsResolverInterface | Interface was added. | -| Magento\CatalogSearch\Model\Advanced\ProductCollectionPrepareStrategyInterface | Interface was added. | -| Magento\CatalogSearch\Model\Adapter\Aggregation\RequestCheckerInterface | Interface was added. | -| Magento\CatalogRule\Model\Indexer\IndexerTableSwapperInterface | Interface was added. | -| Magento\CatalogImportExport\Model\Export\ProductFilterInterface | Interface was added. | -| Magento\CatalogGraphQl\Model\Resolver\Products\Query\ProductQueryInterface | Interface was added. | -| Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Product\CollectionProcessorInterface | Interface was added. | -| Magento\CatalogGraphQl\Model\Resolver\Product\Price\ProviderInterface | Interface was added. | -| Magento\CatalogGraphQl\Model\Resolver\Categories\DataProvider\Category\CollectionProcessorInterface | Interface was added. | -| Magento\CatalogGraphQl\DataProvider\Product\LayeredNavigation\LayerBuilderInterface | Interface was added. | -| Magento\CardinalCommerce\Model\Response\JwtParserInterface | Interface was added. | -| Magento\CardinalCommerce\Model\Response\JwtPayloadValidatorInterface | Interface was added. | -| Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface | Interface was added. | -| Magento\Backend\Model\Search\Config\Structure\ElementBuilderInterface | Interface was added. | -| Magento\Backend\Model\Image\UploadResizeConfigInterface | Interface was added. | -| Magento\Analytics\ReportXml\DB\Assembler\AssemblerInterface | Interface was added. | -| Magento\Analytics\Model\ExportDataHandlerInterface | Interface was added. | -| Magento\Analytics\Model\ReportWriterInterface | Interface was added. | -| Magento\Analytics\Model\Connector\CommandInterface | Interface was added. | -| Magento\Analytics\Api\LinkProviderInterface | Interface was added. | -| Magento\Analytics\Api\Data\LinkInterface | Interface was added. | -| Magento\AdvancedSearch\Block\SearchDataInterface | Interface was added. | -| Magento\Framework\TranslateInterface | Interface was added. | -| Magento\Framework\Webapi\CustomAttributeTypeLocatorInterface | Interface was added. | -| Magento\Framework\Webapi\Rest\Request\DeserializerInterface | Interface was added. | -| Magento\Framework\Webapi\CustomAttribute\PreprocessorInterface | Interface was added. | -| Magento\Framework\Webapi\CustomAttribute\ServiceTypeListInterface | Interface was added. | -| Magento\Framework\View\DesignInterface | Interface was added. | -| Magento\Framework\View\TemplateEngineInterface | Interface was added. | -| Magento\Framework\View\Xsd\Media\TypeDataExtractorInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\ResultInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\AttributeInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CdataInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CommentInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\TextInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Element\ElementInterface | Interface was added. | -| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Directive\DirectiveInterface | Interface was added. | -| Magento\Framework\View\Page\Config\RendererInterface | Interface was added. | -| Magento\Framework\View\Model\PageLayout\Config\BuilderInterface | Interface was added. | -| Magento\Framework\View\Layout\GeneratorInterface | Interface was added. | -| Magento\Framework\View\Layout\LayoutCacheKeyInterface | Interface was added. | -| Magento\Framework\View\Layout\ProcessorInterface | Interface was added. | -| Magento\Framework\View\Layout\ReaderInterface | Interface was added. | -| Magento\Framework\View\Layout\Condition\VisibilityConditionInterface | Interface was added. | -| Magento\Framework\View\Layout\Argument\UpdaterInterface | Interface was added. | -| Magento\Framework\View\Helper\SecureHtmlRender\SecurityProcessorInterface | Interface was added. | -| Magento\Framework\View\File\FileList\CollateInterface | Interface was added. | -| Magento\Framework\View\Element\ComponentVisibilityInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\BlockWrapperInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\ContainerInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\ContextInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\DataSourceInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\JsConfigInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\LayoutInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\ObserverInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\PoolInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\SubjectInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Factory\ComponentFactoryInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\DataProvider\FilterApplierInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Control\ActionPoolInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Control\ControlInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\ContentType\ContentTypeInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Config\DomMergerInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Config\FileCollectorInterface | Interface was added. | -| Magento\Framework\View\Element\UiComponent\Config\UiReaderInterface | Interface was added. | -| Magento\Framework\View\Element\Message\InterpretationStrategyInterface | Interface was added. | -| Magento\Framework\View\Element\Message\Renderer\PoolInterface | Interface was added. | -| Magento\Framework\View\Element\Message\Renderer\RendererInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\CustomizationInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\FileInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\ResolverInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\ThemeProviderInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\Image\PathInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\File\CollectionInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\Customization\ConfigInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\Customization\FileAssetInterface | Interface was added. | -| Magento\Framework\View\Design\Theme\Customization\FileInterface | Interface was added. | -| Magento\Framework\View\Design\FileResolution\Fallback\ResolverInterface | Interface was added. | -| Magento\Framework\View\Design\Fallback\Rule\RuleInterface | Interface was added. | -| Magento\Framework\View\Asset\ContentProcessorInterface | Interface was added. | -| Magento\Framework\View\Asset\ContextInterface | Interface was added. | -| Magento\Framework\View\Asset\LockerProcessInterface | Interface was added. | -| Magento\Framework\View\Asset\MergeStrategyInterface | Interface was added. | -| Magento\Framework\View\Asset\MergeableInterface | Interface was added. | -| Magento\Framework\View\Asset\PreProcessor\FilenameResolverInterface | Interface was added. | -| Magento\Framework\Validator\HTML\AttributeValidatorInterface | Interface was added. | -| Magento\Framework\Validator\HTML\TagValidatorInterface | Interface was added. | -| Magento\Framework\Validator\HTML\WYSIWYGValidatorInterface | Interface was added. | -| Magento\Framework\Validator\Constraint\OptionInterface | Interface was added. | -| Magento\Framework\Url\ModifierInterface | Interface was added. | -| Magento\Framework\Url\RouteParamsPreprocessorInterface | Interface was added. | -| Magento\Framework\Translate\Inline\ProviderInterface | Interface was added. | -| Magento\Framework\TestFramework\Unit\Autoloader\GeneratorInterface | Interface was added. | -| Magento\Framework\Setup\ConfigOptionsListInterface | Interface was added. | -| Magento\Framework\Setup\DataCacheInterface | Interface was added. | -| Magento\Framework\Setup\UpToDateValidatorInterface | Interface was added. | -| Magento\Framework\Setup\SchemaListenerHandlers\SchemaListenerHandlerInterface | Interface was added. | -| Magento\Framework\Setup\SchemaListenerDefinition\DefinitionConverterInterface | Interface was added. | -| Magento\Framework\Setup\SampleData\InstallerInterface | Interface was added. | -| Magento\Framework\Setup\SampleData\StateInterface | Interface was added. | -| Magento\Framework\Setup\Patch\DataPatchInterface | Interface was added. | -| Magento\Framework\Setup\Patch\DependentPatchInterface | Interface was added. | -| Magento\Framework\Setup\Patch\NonTransactionableInterface | Interface was added. | -| Magento\Framework\Setup\Patch\PatchInterface | Interface was added. | -| Magento\Framework\Setup\Patch\PatchRevertableInterface | Interface was added. | -| Magento\Framework\Setup\Patch\SchemaPatchInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\OperationInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\SchemaConfigInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\ElementDiffAwareInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\TableElementInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Factories\FactoryInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnDefaultAwareInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnIdentityAwareInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnNullableAwareInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnUnsignedAwareInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Diff\DiffInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Db\DDLTriggerInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Db\DbDefinitionProcessorInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaReaderInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaWriterInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\DataSavior\DataSaviorInterface | Interface was added. | -| Magento\Framework\Setup\Declaration\Schema\DataSavior\DumpAccessorInterface | Interface was added. | -| Magento\Framework\Session\SaveHandlerInterface | Interface was added. | -| Magento\Framework\Session\StorageInterface | Interface was added. | -| Magento\Framework\Session\ValidatorInterface | Interface was added. | -| Magento\Framework\Session\Config\ConfigInterface | Interface was added. | -| Magento\Framework\Search\AdapterInterface | Interface was added. | -| Magento\Framework\Search\ResponseInterface | Interface was added. | -| Magento\Framework\Search\SearchEngineInterface | Interface was added. | -| Magento\Framework\Search\SearchEngine\ConfigInterface | Interface was added. | -| Magento\Framework\Search\Request\IndexScopeResolverInterface | Interface was added. | -| Magento\Framework\Search\Request\Aggregation\StatusInterface | Interface was added. | -| Magento\Framework\Search\Dynamic\Algorithm\AlgorithmInterface | Interface was added. | -| Magento\Framework\Search\Adapter\OptionsInterface | Interface was added. | -| Magento\Framework\Search\Adapter\Preprocessor\PreprocessorInterface | Interface was added. | -| Magento\Framework\Search\Adapter\Aggregation\AggregationResolverInterface | Interface was added. | -| Magento\Framework\Profiler\Driver\Standard\OutputInterface | Interface was added. | -| Magento\Framework\ObjectManager\ConfigCacheInterface | Interface was added. | -| Magento\Framework\ObjectManager\ConfigInterface | Interface was added. | -| Magento\Framework\ObjectManager\ConfigLoaderInterface | Interface was added. | -| Magento\Framework\ObjectManager\DefinitionInterface | Interface was added. | -| Magento\Framework\ObjectManager\DynamicConfigInterface | Interface was added. | -| Magento\Framework\ObjectManager\FactoryInterface | Interface was added. | -| Magento\Framework\ObjectManager\NoninterceptableInterface | Interface was added. | -| Magento\Framework\ObjectManager\RelationsInterface | Interface was added. | -| Magento\Framework\Mview\ConfigInterface | Interface was added. | -| Magento\Framework\Mview\ProcessorInterface | Interface was added. | -| Magento\Framework\Mview\ViewInterface | Interface was added. | -| Magento\Framework\Mview\View\ChangelogInterface | Interface was added. | -| Magento\Framework\Mview\View\CollectionInterface | Interface was added. | -| Magento\Framework\Mview\View\StateInterface | Interface was added. | -| Magento\Framework\Mview\View\SubscriptionInterface | Interface was added. | -| Magento\Framework\Mview\View\State\CollectionInterface | Interface was added. | -| Magento\Framework\Module\ModuleListInterface | Interface was added. | -| Magento\Framework\Model\ResourceModel\Type\Db\ConnectionFactoryInterface | Interface was added. | -| Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface | Interface was added. | -| Magento\Framework\Model\EntitySnapshot\AttributeProviderInterface | Interface was added. | -| Magento\Framework\Model\Entity\ScopeInterface | Interface was added. | -| Magento\Framework\Model\Entity\ScopeProviderInterface | Interface was added. | -| Magento\Framework\Message\ExceptionMessageFactoryInterface | Interface was added. | -| Magento\Framework\Mail\EmailMessageInterface | Interface was added. | -| Magento\Framework\Mail\MimeInterface | Interface was added. | -| Magento\Framework\Mail\MimeMessageInterface | Interface was added. | -| Magento\Framework\Mail\MimePartInterface | Interface was added. | -| Magento\Framework\Locale\AvailableLocalesInterface | Interface was added. | -| Magento\Framework\Locale\OptionInterface | Interface was added. | -| Magento\Framework\Interception\ConfigInterface | Interface was added. | -| Magento\Framework\Interception\ConfigLoaderInterface | Interface was added. | -| Magento\Framework\Interception\ConfigWriterInterface | Interface was added. | -| Magento\Framework\Interception\DefinitionInterface | Interface was added. | -| Magento\Framework\Interception\InterceptorInterface | Interface was added. | -| Magento\Framework\Interception\PluginListInterface | Interface was added. | -| Magento\Framework\Interception\ObjectManager\ConfigInterface | Interface was added. | -| Magento\Framework\Indexer\Table\StrategyInterface | Interface was added. | -| Magento\Framework\Indexer\Config\DependencyInfoProviderInterface | Interface was added. | -| Magento\Framework\Image\Adapter\AdapterInterface | Interface was added. | -| Magento\Framework\Image\Adapter\ConfigInterface | Interface was added. | -| Magento\Framework\HTTP\AsyncClientInterface | Interface was added. | -| Magento\Framework\HTTP\AsyncClient\HttpResponseDeferredInterface | Interface was added. | -| Magento\Framework\GraphQlSchemaStitching\GraphQlReader\TypeMetaReaderInterface | Interface was added. | -| Magento\Framework\GraphQl\ConfigInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\SchemaGeneratorInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\TypeInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\InputTypeInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\OutputTypeInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\WrappedTypeInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\Output\ElementMapper\FormatterInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\Enum\DataMapperInterface | Interface was added. | -| Magento\Framework\GraphQl\Schema\Type\Entity\MapperInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\ErrorHandlerInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\ResolverInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\BatchRequestItemInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\BatchResolverInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\BatchServiceContractResolverInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\ContextInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\IdentityInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\ResolveRequestInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\TypeResolverInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\Argument\FieldEntityAttributesInterface | Interface was added. | -| Magento\Framework\GraphQl\Query\Resolver\Argument\SearchCriteria\ArgumentApplierInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\ConfigElementFactoryInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\ConfigElementInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\Element\FieldInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\Element\OutputFieldInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\Element\TypeInterface | Interface was added. | -| Magento\Framework\GraphQl\Config\Element\UnionInterface | Interface was added. | -| Magento\Framework\Filter\DirectiveProcessorInterface | Interface was added. | -| Magento\Framework\Filter\FactoryInterface | Interface was added. | -| Magento\Framework\Filter\VariableResolverInterface | Interface was added. | -| Magento\Framework\Filter\SimpleDirective\ProcessorInterface | Interface was added. | -| Magento\Framework\Filter\FilterManager\ConfigInterface | Interface was added. | -| Magento\Framework\Filter\DirectiveProcessor\FilterInterface | Interface was added. | -| Magento\Framework\Filesystem\DriverPoolInterface | Interface was added. | -| Magento\Framework\Filesystem\File\ReadInterface | Interface was added. | -| Magento\Framework\Filesystem\Directory\PathValidatorInterface | Interface was added. | -| Magento\Framework\Exception\TemporaryStateExceptionInterface | Interface was added. | -| Magento\Framework\Event\ConfigInterface | Interface was added. | -| Magento\Framework\Event\InvokerInterface | Interface was added. | -| Magento\Framework\Event\ManagerInterface | Interface was added. | -| Magento\Framework\Encryption\Adapter\EncryptionAdapterInterface | Interface was added. | -| Magento\Framework\DataObject\IdentityGeneratorInterface | Interface was added. | -| Magento\Framework\DataObject\IdentityInterface | Interface was added. | -| Magento\Framework\DataObject\IdentityValidatorInterface | Interface was added. | -| Magento\Framework\DataObject\KeyValueObjectInterface | Interface was added. | -| Magento\Framework\Data\CollectionDataSourceInterface | Interface was added. | -| Magento\Framework\Data\CollectionModifierInterface | Interface was added. | -| Magento\Framework\Data\SearchResultInterface | Interface was added. | -| Magento\Framework\Data\SearchResultProcessorInterface | Interface was added. | -| Magento\Framework\Data\ValueSourceInterface | Interface was added. | -| Magento\Framework\Data\Collection\EntityFactoryInterface | Interface was added. | -| Magento\Framework\Data\Collection\Db\FetchStrategyInterface | Interface was added. | -| Magento\Framework\DB\LoggerInterface | Interface was added. | -| Magento\Framework\DB\MapperInterface | Interface was added. | -| Magento\Framework\DB\QueryInterface | Interface was added. | -| Magento\Framework\DB\Sql\ExpressionInterface | Interface was added. | -| Magento\Framework\DB\Sequence\SequenceInterface | Interface was added. | -| Magento\Framework\DB\Select\QueryModifierInterface | Interface was added. | -| Magento\Framework\DB\Select\RendererInterface | Interface was added. | -| Magento\Framework\DB\Query\BatchIteratorInterface | Interface was added. | -| Magento\Framework\DB\DataConverter\DataConverterInterface | Interface was added. | -| Magento\Framework\Css\PreProcessor\ErrorHandlerInterface | Interface was added. | -| Magento\Framework\Crontab\CrontabManagerInterface | Interface was added. | -| Magento\Framework\Crontab\TasksProviderInterface | Interface was added. | -| Magento\Framework\Component\ComponentRegistrarInterface | Interface was added. | -| Magento\Framework\Code\ValidatorInterface | Interface was added. | -| Magento\Framework\Code\Reader\ClassReaderInterface | Interface was added. | -| Magento\Framework\Code\Minifier\AdapterInterface | Interface was added. | -| Magento\Framework\Code\Generator\CodeGeneratorInterface | Interface was added. | -| Magento\Framework\Cache\ConfigInterface | Interface was added. | -| Magento\Framework\Cache\StaleCacheNotifierInterface | Interface was added. | -| Magento\Framework\Backup\SourceFileInterface | Interface was added. | -| Magento\Framework\Autoload\AutoloaderInterface | Interface was added. | -| Magento\Framework\Async\CancelableDeferredInterface | Interface was added. | -| Magento\Framework\Async\DeferredInterface | Interface was added. | -| Magento\Framework\App\AreaInterface | Interface was added. | -| Magento\Framework\App\CsrfAwareActionInterface | Interface was added. | -| Magento\Framework\App\DefaultPathInterface | Interface was added. | -| Magento\Framework\App\DesignInterface | Interface was added. | -| Magento\Framework\App\EnvironmentInterface | Interface was added. | -| Magento\Framework\App\ExceptionHandlerInterface | Interface was added. | -| Magento\Framework\App\FeedFactoryInterface | Interface was added. | -| Magento\Framework\App\FeedInterface | Interface was added. | -| Magento\Framework\App\HttpRequestInterface | Interface was added. | -| Magento\Framework\App\RouterInterface | Interface was added. | -| Magento\Framework\App\RouterListInterface | Interface was added. | -| Magento\Framework\App\ScopeFallbackResolverInterface | Interface was added. | -| Magento\Framework\App\ScopeResolverInterface | Interface was added. | -| Magento\Framework\App\ScopeTreeProviderInterface | Interface was added. | -| Magento\Framework\App\ScopeValidatorInterface | Interface was added. | -| Magento\Framework\App\View\Deployment\Version\StorageInterface | Interface was added. | -| Magento\Framework\App\View\Asset\MaterializationStrategy\StrategyInterface | Interface was added. | -| Magento\Framework\App\Scope\ValidatorInterface | Interface was added. | -| Magento\Framework\App\Rss\RssManagerInterface | Interface was added. | -| Magento\Framework\App\Rss\UrlBuilderInterface | Interface was added. | -| Magento\Framework\App\Router\NoRouteHandlerInterface | Interface was added. | -| Magento\Framework\App\Router\PathConfigInterface | Interface was added. | -| Magento\Framework\App\Response\FileInterface | Interface was added. | -| Magento\Framework\App\Response\RedirectInterface | Interface was added. | -| Magento\Framework\App\Response\HeaderProvider\HeaderProviderInterface | Interface was added. | -| Magento\Framework\App\ResourceConnection\ConfigInterface | Interface was added. | -| Magento\Framework\App\ResourceConnection\ConnectionAdapterInterface | Interface was added. | -| Magento\Framework\App\Request\ValidatorInterface | Interface was added. | -| Magento\Framework\App\PageCache\NotCacheableInterface | Interface was added. | -| Magento\Framework\App\ObjectManager\ConfigWriterInterface | Interface was added. | -| Magento\Framework\App\DeploymentConfig\ImporterInterface | Interface was added. | -| Magento\Framework\App\DeploymentConfig\ValidatorInterface | Interface was added. | -| Magento\Framework\App\DeploymentConfig\Writer\FormatterInterface | Interface was added. | -| Magento\Framework\App\Config\CommentInterface | Interface was added. | -| Magento\Framework\App\Config\CommentParserInterface | Interface was added. | -| Magento\Framework\App\Config\ConfigSourceInterface | Interface was added. | -| Magento\Framework\App\Config\ConfigTypeInterface | Interface was added. | -| Magento\Framework\App\Config\ValueInterface | Interface was added. | -| Magento\Framework\App\Config\Spi\PostProcessorInterface | Interface was added. | -| Magento\Framework\App\Config\Spi\PreProcessorInterface | Interface was added. | -| Magento\Framework\App\Config\Scope\ReaderInterface | Interface was added. | -| Magento\Framework\App\Config\Reader\Source\SourceInterface | Interface was added. | -| Magento\Framework\App\Config\ConfigResource\ConfigInterface | Interface was added. | -| Magento\Framework\App\Action\HttpConnectActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpDeleteActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpGetActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpOptionsActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpPatchActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpPostActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpPropfindActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpPutActionInterface | Interface was added. | -| Magento\Framework\App\Action\HttpTraceActionInterface | Interface was added. | -| Magento\Framework\Api\AttributeTypeResolverInterface | Interface was added. | -| Magento\Framework\Api\CriteriaInterface | Interface was added. | -| Magento\Framework\Api\SimpleBuilderInterface | Interface was added. | -| Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionInterface | Interface was added. | +| What changed | How it changed | +| ------------------------------------------------------------------------------------------------------------ | -------------------- | +| Magento\AdvancedSearch\Block\SearchDataInterface | Interface was added. | +| Magento\Analytics\Api\Data\LinkInterface | Interface was added. | +| Magento\Analytics\Api\LinkProviderInterface | Interface was added. | +| Magento\Analytics\Model\Connector\CommandInterface | Interface was added. | +| Magento\Analytics\Model\ExportDataHandlerInterface | Interface was added. | +| Magento\Analytics\Model\ReportWriterInterface | Interface was added. | +| Magento\Analytics\ReportXml\DB\Assembler\AssemblerInterface | Interface was added. | +| Magento\Backend\Model\Image\UploadResizeConfigInterface | Interface was added. | +| Magento\Backend\Model\Search\Config\Structure\ElementBuilderInterface | Interface was added. | +| Magento\Bundle\Pricing\Adjustment\BundleCalculatorInterface | Interface was added. | +| Magento\CardinalCommerce\Model\Response\JwtParserInterface | Interface was added. | +| Magento\CardinalCommerce\Model\Response\JwtPayloadValidatorInterface | Interface was added. | +| Magento\CatalogGraphQl\DataProvider\Product\LayeredNavigation\LayerBuilderInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Categories\DataProvider\Category\CollectionProcessorInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Product\Price\ProviderInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\DataProvider\Product\CollectionProcessorInterface | Interface was added. | +| Magento\CatalogGraphQl\Model\Resolver\Products\Query\ProductQueryInterface | Interface was added. | +| Magento\CatalogImportExport\Model\Export\ProductFilterInterface | Interface was added. | +| Magento\CatalogRule\Model\Indexer\IndexerTableSwapperInterface | Interface was added. | +| Magento\CatalogSearch\Model\Adapter\Aggregation\RequestCheckerInterface | Interface was added. | +| Magento\CatalogSearch\Model\Advanced\ProductCollectionPrepareStrategyInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchCriteriaResolverInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\SearchResultApplierInterface | Interface was added. | +| Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\TotalRecordsResolverInterface | Interface was added. | +| Magento\CatalogSearch\Model\Search\ItemCollectionProviderInterface | Interface was added. | +| Magento\CatalogUrlRewrite\Model\Map\DatabaseMapInterface | Interface was added. | +| Magento\CatalogUrlRewrite\Model\Map\HashMapInterface | Interface was added. | +| Magento\Catalog\Block\Product\AwareInterface | Interface was added. | +| Magento\Catalog\Block\Product\ReviewRendererInterface | Interface was added. | +| Magento\Catalog\Controller\Adminhtml\Product\Initialization\Helper\HandlerInterface | Interface was added. | +| Magento\Catalog\Controller\Product\View\ViewInterface | Interface was added. | +| Magento\Catalog\Model\Attribute\LockValidatorInterface | Interface was added. | +| Magento\Catalog\Model\Config\Source\ProductPriceOptionsInterface | Interface was added. | +| Magento\Catalog\Model\Entity\Product\Attribute\Group\AttributeMapperInterface | Interface was added. | +| Magento\Catalog\Model\Indexer\Product\Flat\TableDataInterface | Interface was added. | +| Magento\Catalog\Model\Layer\CollectionFilterInterface | Interface was added. | +| Magento\Catalog\Model\Layer\FilterableAttributeListInterface | Interface was added. | +| Magento\Catalog\Model\Layer\ItemCollectionProviderInterface | Interface was added. | +| Magento\Catalog\Model\Layer\StateKeyInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\CollectionProviderInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Converter\ConverterInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Data\ListCriteriaInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\Data\ListResultInterface | Interface was added. | +| Magento\Catalog\Model\ProductLink\MapProviderInterface | Interface was added. | +| Magento\Catalog\Model\ProductOptions\ConfigInterface | Interface was added. | +| Magento\Catalog\Model\Product\Condition\ConditionInterface | Interface was added. | +| Magento\Catalog\Model\Product\Configuration\Item\Option\OptionInterface | Interface was added. | +| Magento\Catalog\Model\Product\Media\ConfigInterface | Interface was added. | +| Magento\Catalog\Model\Product\Pricing\Renderer\SalableResolverInterface | Interface was added. | +| Magento\Catalog\Model\ResourceModel\Product\Indexer\Price\PriceModifierInterface | Interface was added. | +| Magento\Catalog\Model\ResourceModel\Product\LinkedProductSelectBuilderInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\ConfiguredPriceInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\MinimalPriceCalculatorInterface | Interface was added. | +| Magento\Catalog\Pricing\Price\SpecialPriceInterface | Interface was added. | +| Magento\Catalog\Ui\DataProvider\Product\Form\Modifier\Eav\WysiwygConfigDataProcessorInterface | Interface was added. | +| Magento\CheckoutAgreements\Model\AgreementsProviderInterface | Interface was added. | +| Magento\Checkout\Api\PaymentProcessingRateLimiterInterface | Interface was added. | +| Magento\Checkout\Controller\Express\RedirectLoginInterface | Interface was added. | +| Magento\Checkout\CustomerData\ItemPoolInterface | Interface was added. | +| Magento\Cms\Model\PageRepository\ValidatorInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayoutManagerInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayoutRepositoryInterface | Interface was added. | +| Magento\Cms\Model\Page\CustomLayout\Data\CustomLayoutSelectedInterface | Interface was added. | +| Magento\Cms\Ui\Component\AddFilterInterface | Interface was added. | +| Magento\ConfigurableProduct\Model\ResourceModel\Attribute\OptionSelectBuilderInterface | Interface was added. | +| Magento\Cron\Model\DeadlockRetrierInterface | Interface was added. | +| Magento\Csp\Api\CspAwareActionInterface | Interface was added. | +| Magento\Csp\Api\CspRendererInterface | Interface was added. | +| Magento\Csp\Api\Data\ModeConfiguredInterface | Interface was added. | +| Magento\Csp\Api\Data\PolicyInterface | Interface was added. | +| Magento\Csp\Api\InlineUtilInterface | Interface was added. | +| Magento\Csp\Api\ModeConfigManagerInterface | Interface was added. | +| Magento\Csp\Api\PolicyCollectorInterface | Interface was added. | +| Magento\Csp\Api\PolicyRendererInterface | Interface was added. | +| Magento\Csp\Model\Collector\Config\PolicyReaderInterface | Interface was added. | +| Magento\Csp\Model\Collector\MergerInterface | Interface was added. | +| Magento\Csp\Model\Policy\SimplePolicyInterface | Interface was added. | +| Magento\Customer\Api\AccountDelegationInterface | Interface was added. | +| Magento\Customer\Api\SessionCleanerInterface | Interface was added. | +| Magento\Customer\Block\Address\Renderer\RendererInterface | Interface was added. | +| Magento\Customer\Controller\AccountInterface | Interface was added. | +| Magento\Customer\CustomerData\JsLayoutDataProviderPoolInterface | Interface was added. | +| Magento\Customer\CustomerData\SectionPoolInterface | Interface was added. | +| Magento\Customer\Model\Customer\Attribute\Source\GroupSourceLoggedInOnlyInterface | Interface was added. | +| Magento\Deploy\Collector\CollectorInterface | Interface was added. | +| Magento\Deploy\Console\Command\App\SensitiveConfigSet\CollectorInterface | Interface was added. | +| Magento\Deploy\Package\BundleInterface | Interface was added. | +| Magento\Deploy\Package\Processor\ProcessorInterface | Interface was added. | +| Magento\Deploy\Source\SourceInterface | Interface was added. | +| Magento\Deploy\Strategy\StrategyInterface | Interface was added. | +| Magento\Directory\Model\Country\Postcode\ConfigInterface | Interface was added. | +| Magento\Directory\Model\Country\Postcode\ValidatorInterface | Interface was added. | +| Magento\Downloadable\Api\DomainManagerInterface | Interface was added. | +| Magento\Downloadable\Pricing\Price\LinkPriceInterface | Interface was added. | +| Magento\Eav\Model\Entity\AttributeLoaderInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\AttributeInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\Backend\BackendInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\Source\SpecificSourceInterface | Interface was added. | +| Magento\Eav\Model\Entity\Attribute\UniqueValidationInterface | Interface was added. | +| Magento\Eav\Model\Entity\Setup\PropertyMapperInterface | Interface was added. | +| Magento\Eav\Model\ResourceModel\Attribute\DefaultEntityAttributes\ProviderInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProviderInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ConverterInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldIndex\ResolverInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldName\ResolverInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldMapper\Product\FieldProvider\FieldType\ResolverInterface | Interface was added. | +| Magento\Elasticsearch\Model\Adapter\FieldsMappingPreprocessorInterface | Interface was added. | +| Magento\Elasticsearch\SearchAdapter\QueryAwareInterface | Interface was added. | +| Magento\Elasticsearch\SearchAdapter\Query\ValueTransformerInterface | Interface was added. | +| Magento\Framework\Amqp\Topology\BindingInstallerInterface | Interface was added. | +| Magento\Framework\Api\AttributeTypeResolverInterface | Interface was added. | +| Magento\Framework\Api\CriteriaInterface | Interface was added. | +| Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionInterface | Interface was added. | | Magento\Framework\Api\SearchCriteria\CollectionProcessor\ConditionProcessor\CustomConditionProviderInterface | Interface was added. | -| Magento\Framework\Api\Search\AggregationInterface | Interface was added. | -| Magento\Framework\Api\Search\AggregationValueInterface | Interface was added. | -| Magento\Framework\Api\Search\BucketInterface | Interface was added. | -| Magento\Framework\Api\Search\DocumentInterface | Interface was added. | -| Magento\Framework\Api\Search\ReportingInterface | Interface was added. | -| Magento\Framework\MessageQueue\BulkPublisherInterface | Interface was added. | -| Magento\Framework\MessageQueue\CallbackInvokerInterface | Interface was added. | -| Magento\Framework\MessageQueue\ConnectionTypeResolverInterface | Interface was added. | -| Magento\Framework\MessageQueue\ConsumerConfigurationInterface | Interface was added. | -| Magento\Framework\MessageQueue\LockInterface | Interface was added. | -| Magento\Framework\MessageQueue\MergedMessageInterface | Interface was added. | -| Magento\Framework\MessageQueue\MergerInterface | Interface was added. | -| Magento\Framework\MessageQueue\MessageProcessorInterface | Interface was added. | -| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItemInterface | Interface was added. | -| Magento\Framework\MessageQueue\Topology\Config\QueueConfigItemInterface | Interface was added. | -| Magento\Framework\MessageQueue\Topology\Config\ReaderInterface | Interface was added. | -| Magento\Framework\MessageQueue\Topology\Config\ValidatorInterface | Interface was added. | -| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItem\BindingInterface | Interface was added. | -| Magento\Framework\MessageQueue\Publisher\Config\PublisherConfigItemInterface | Interface was added. | -| Magento\Framework\MessageQueue\Publisher\Config\PublisherConnectionInterface | Interface was added. | -| Magento\Framework\MessageQueue\Publisher\Config\ReaderInterface | Interface was added. | -| Magento\Framework\MessageQueue\Publisher\Config\ValidatorInterface | Interface was added. | -| Magento\Framework\MessageQueue\PoisonPill\PoisonPillCompareInterface | Interface was added. | -| Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface | Interface was added. | -| Magento\Framework\MessageQueue\PoisonPill\PoisonPillReadInterface | Interface was added. | -| Magento\Framework\MessageQueue\Lock\ReaderInterface | Interface was added. | -| Magento\Framework\MessageQueue\Lock\WriterInterface | Interface was added. | -| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItemInterface | Interface was added. | -| Magento\Framework\MessageQueue\Consumer\Config\ReaderInterface | Interface was added. | -| Magento\Framework\MessageQueue\Consumer\Config\ValidatorInterface | Interface was added. | -| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItem\HandlerInterface | Interface was added. | -| Magento\Framework\Amqp\Topology\BindingInstallerInterface | Interface was added. | +| Magento\Framework\Api\Search\AggregationInterface | Interface was added. | +| Magento\Framework\Api\Search\AggregationValueInterface | Interface was added. | +| Magento\Framework\Api\Search\BucketInterface | Interface was added. | +| Magento\Framework\Api\Search\DocumentInterface | Interface was added. | +| Magento\Framework\Api\Search\ReportingInterface | Interface was added. | +| Magento\Framework\Api\SimpleBuilderInterface | Interface was added. | +| Magento\Framework\App\Action\HttpConnectActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpDeleteActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpGetActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpOptionsActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPatchActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPostActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPropfindActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpPutActionInterface | Interface was added. | +| Magento\Framework\App\Action\HttpTraceActionInterface | Interface was added. | +| Magento\Framework\App\AreaInterface | Interface was added. | +| Magento\Framework\App\Config\CommentInterface | Interface was added. | +| Magento\Framework\App\Config\CommentParserInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigResource\ConfigInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigSourceInterface | Interface was added. | +| Magento\Framework\App\Config\ConfigTypeInterface | Interface was added. | +| Magento\Framework\App\Config\Reader\Source\SourceInterface | Interface was added. | +| Magento\Framework\App\Config\Scope\ReaderInterface | Interface was added. | +| Magento\Framework\App\Config\Spi\PostProcessorInterface | Interface was added. | +| Magento\Framework\App\Config\Spi\PreProcessorInterface | Interface was added. | +| Magento\Framework\App\Config\ValueInterface | Interface was added. | +| Magento\Framework\App\CsrfAwareActionInterface | Interface was added. | +| Magento\Framework\App\DefaultPathInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\ImporterInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\ValidatorInterface | Interface was added. | +| Magento\Framework\App\DeploymentConfig\Writer\FormatterInterface | Interface was added. | +| Magento\Framework\App\DesignInterface | Interface was added. | +| Magento\Framework\App\EnvironmentInterface | Interface was added. | +| Magento\Framework\App\ExceptionHandlerInterface | Interface was added. | +| Magento\Framework\App\FeedFactoryInterface | Interface was added. | +| Magento\Framework\App\FeedInterface | Interface was added. | +| Magento\Framework\App\HttpRequestInterface | Interface was added. | +| Magento\Framework\App\ObjectManager\ConfigWriterInterface | Interface was added. | +| Magento\Framework\App\PageCache\NotCacheableInterface | Interface was added. | +| Magento\Framework\App\Request\ValidatorInterface | Interface was added. | +| Magento\Framework\App\ResourceConnection\ConfigInterface | Interface was added. | +| Magento\Framework\App\ResourceConnection\ConnectionAdapterInterface | Interface was added. | +| Magento\Framework\App\Response\FileInterface | Interface was added. | +| Magento\Framework\App\Response\HeaderProvider\HeaderProviderInterface | Interface was added. | +| Magento\Framework\App\Response\RedirectInterface | Interface was added. | +| Magento\Framework\App\RouterInterface | Interface was added. | +| Magento\Framework\App\RouterListInterface | Interface was added. | +| Magento\Framework\App\Router\NoRouteHandlerInterface | Interface was added. | +| Magento\Framework\App\Router\PathConfigInterface | Interface was added. | +| Magento\Framework\App\Rss\RssManagerInterface | Interface was added. | +| Magento\Framework\App\Rss\UrlBuilderInterface | Interface was added. | +| Magento\Framework\App\ScopeFallbackResolverInterface | Interface was added. | +| Magento\Framework\App\ScopeResolverInterface | Interface was added. | +| Magento\Framework\App\ScopeTreeProviderInterface | Interface was added. | +| Magento\Framework\App\ScopeValidatorInterface | Interface was added. | +| Magento\Framework\App\Scope\ValidatorInterface | Interface was added. | +| Magento\Framework\App\View\Asset\MaterializationStrategy\StrategyInterface | Interface was added. | +| Magento\Framework\App\View\Deployment\Version\StorageInterface | Interface was added. | +| Magento\Framework\Async\CancelableDeferredInterface | Interface was added. | +| Magento\Framework\Async\DeferredInterface | Interface was added. | +| Magento\Framework\Autoload\AutoloaderInterface | Interface was added. | +| Magento\Framework\Backup\SourceFileInterface | Interface was added. | +| Magento\Framework\Cache\ConfigInterface | Interface was added. | +| Magento\Framework\Cache\StaleCacheNotifierInterface | Interface was added. | +| Magento\Framework\Code\Generator\CodeGeneratorInterface | Interface was added. | +| Magento\Framework\Code\Minifier\AdapterInterface | Interface was added. | +| Magento\Framework\Code\Reader\ClassReaderInterface | Interface was added. | +| Magento\Framework\Code\ValidatorInterface | Interface was added. | +| Magento\Framework\Component\ComponentRegistrarInterface | Interface was added. | +| Magento\Framework\Crontab\CrontabManagerInterface | Interface was added. | +| Magento\Framework\Crontab\TasksProviderInterface | Interface was added. | +| Magento\Framework\Css\PreProcessor\ErrorHandlerInterface | Interface was added. | +| Magento\Framework\DB\DataConverter\DataConverterInterface | Interface was added. | +| Magento\Framework\DB\LoggerInterface | Interface was added. | +| Magento\Framework\DB\MapperInterface | Interface was added. | +| Magento\Framework\DB\QueryInterface | Interface was added. | +| Magento\Framework\DB\Query\BatchIteratorInterface | Interface was added. | +| Magento\Framework\DB\Select\QueryModifierInterface | Interface was added. | +| Magento\Framework\DB\Select\RendererInterface | Interface was added. | +| Magento\Framework\DB\Sequence\SequenceInterface | Interface was added. | +| Magento\Framework\DB\Sql\ExpressionInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityGeneratorInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityInterface | Interface was added. | +| Magento\Framework\DataObject\IdentityValidatorInterface | Interface was added. | +| Magento\Framework\DataObject\KeyValueObjectInterface | Interface was added. | +| Magento\Framework\Data\CollectionDataSourceInterface | Interface was added. | +| Magento\Framework\Data\CollectionModifierInterface | Interface was added. | +| Magento\Framework\Data\Collection\Db\FetchStrategyInterface | Interface was added. | +| Magento\Framework\Data\Collection\EntityFactoryInterface | Interface was added. | +| Magento\Framework\Data\SearchResultInterface | Interface was added. | +| Magento\Framework\Data\SearchResultProcessorInterface | Interface was added. | +| Magento\Framework\Data\ValueSourceInterface | Interface was added. | +| Magento\Framework\Encryption\Adapter\EncryptionAdapterInterface | Interface was added. | +| Magento\Framework\Event\ConfigInterface | Interface was added. | +| Magento\Framework\Event\InvokerInterface | Interface was added. | +| Magento\Framework\Event\ManagerInterface | Interface was added. | +| Magento\Framework\Exception\TemporaryStateExceptionInterface | Interface was added. | +| Magento\Framework\Filesystem\Directory\PathValidatorInterface | Interface was added. | +| Magento\Framework\Filesystem\DriverPoolInterface | Interface was added. | +| Magento\Framework\Filesystem\File\ReadInterface | Interface was added. | +| Magento\Framework\Filter\DirectiveProcessorInterface | Interface was added. | +| Magento\Framework\Filter\DirectiveProcessor\FilterInterface | Interface was added. | +| Magento\Framework\Filter\FactoryInterface | Interface was added. | +| Magento\Framework\Filter\FilterManager\ConfigInterface | Interface was added. | +| Magento\Framework\Filter\SimpleDirective\ProcessorInterface | Interface was added. | +| Magento\Framework\Filter\VariableResolverInterface | Interface was added. | +| Magento\Framework\GraphQlSchemaStitching\GraphQlReader\TypeMetaReaderInterface | Interface was added. | +| Magento\Framework\GraphQl\ConfigInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\ConfigElementFactoryInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\ConfigElementInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\FieldInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\OutputFieldInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\TypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Config\Element\UnionInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\ErrorHandlerInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\ResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\Argument\FieldEntityAttributesInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\Argument\SearchCriteria\ArgumentApplierInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchRequestItemInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\BatchServiceContractResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\ContextInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\IdentityInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\ResolveRequestInterface | Interface was added. | +| Magento\Framework\GraphQl\Query\Resolver\TypeResolverInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\SchemaGeneratorInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\TypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Entity\MapperInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Enum\DataMapperInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\InputTypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\OutputTypeInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\Output\ElementMapper\FormatterInterface | Interface was added. | +| Magento\Framework\GraphQl\Schema\Type\WrappedTypeInterface | Interface was added. | +| Magento\Framework\HTTP\AsyncClientInterface | Interface was added. | +| Magento\Framework\HTTP\AsyncClient\HttpResponseDeferredInterface | Interface was added. | +| Magento\Framework\Image\Adapter\AdapterInterface | Interface was added. | +| Magento\Framework\Image\Adapter\ConfigInterface | Interface was added. | +| Magento\Framework\Indexer\Config\DependencyInfoProviderInterface | Interface was added. | +| Magento\Framework\Indexer\Table\StrategyInterface | Interface was added. | +| Magento\Framework\Interception\ConfigInterface | Interface was added. | +| Magento\Framework\Interception\ConfigLoaderInterface | Interface was added. | +| Magento\Framework\Interception\ConfigWriterInterface | Interface was added. | +| Magento\Framework\Interception\DefinitionInterface | Interface was added. | +| Magento\Framework\Interception\InterceptorInterface | Interface was added. | +| Magento\Framework\Interception\ObjectManager\ConfigInterface | Interface was added. | +| Magento\Framework\Interception\PluginListInterface | Interface was added. | +| Magento\Framework\Locale\AvailableLocalesInterface | Interface was added. | +| Magento\Framework\Locale\OptionInterface | Interface was added. | +| Magento\Framework\Mail\EmailMessageInterface | Interface was added. | +| Magento\Framework\Mail\MimeInterface | Interface was added. | +| Magento\Framework\Mail\MimeMessageInterface | Interface was added. | +| Magento\Framework\Mail\MimePartInterface | Interface was added. | +| Magento\Framework\MessageQueue\BulkPublisherInterface | Interface was added. | +| Magento\Framework\MessageQueue\CallbackInvokerInterface | Interface was added. | +| Magento\Framework\MessageQueue\ConnectionTypeResolverInterface | Interface was added. | +| Magento\Framework\MessageQueue\ConsumerConfigurationInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ConsumerConfigItem\HandlerInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Consumer\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\MessageQueue\LockInterface | Interface was added. | +| Magento\Framework\MessageQueue\Lock\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Lock\WriterInterface | Interface was added. | +| Magento\Framework\MessageQueue\MergedMessageInterface | Interface was added. | +| Magento\Framework\MessageQueue\MergerInterface | Interface was added. | +| Magento\Framework\MessageQueue\MessageProcessorInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillCompareInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillPutInterface | Interface was added. | +| Magento\Framework\MessageQueue\PoisonPill\PoisonPillReadInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\PublisherConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\PublisherConnectionInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Publisher\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ExchangeConfigItem\BindingInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\QueueConfigItemInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ReaderInterface | Interface was added. | +| Magento\Framework\MessageQueue\Topology\Config\ValidatorInterface | Interface was added. | +| Magento\Framework\Message\ExceptionMessageFactoryInterface | Interface was added. | +| Magento\Framework\Model\EntitySnapshot\AttributeProviderInterface | Interface was added. | +| Magento\Framework\Model\Entity\ScopeInterface | Interface was added. | +| Magento\Framework\Model\Entity\ScopeProviderInterface | Interface was added. | +| Magento\Framework\Model\ResourceModel\Db\VersionControl\RelationInterface | Interface was added. | +| Magento\Framework\Model\ResourceModel\Type\Db\ConnectionFactoryInterface | Interface was added. | +| Magento\Framework\Module\ModuleListInterface | Interface was added. | +| Magento\Framework\Mview\ConfigInterface | Interface was added. | +| Magento\Framework\Mview\ProcessorInterface | Interface was added. | +| Magento\Framework\Mview\ViewInterface | Interface was added. | +| Magento\Framework\Mview\View\ChangelogInterface | Interface was added. | +| Magento\Framework\Mview\View\CollectionInterface | Interface was added. | +| Magento\Framework\Mview\View\StateInterface | Interface was added. | +| Magento\Framework\Mview\View\State\CollectionInterface | Interface was added. | +| Magento\Framework\Mview\View\SubscriptionInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigCacheInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigInterface | Interface was added. | +| Magento\Framework\ObjectManager\ConfigLoaderInterface | Interface was added. | +| Magento\Framework\ObjectManager\DefinitionInterface | Interface was added. | +| Magento\Framework\ObjectManager\DynamicConfigInterface | Interface was added. | +| Magento\Framework\ObjectManager\FactoryInterface | Interface was added. | +| Magento\Framework\ObjectManager\NoninterceptableInterface | Interface was added. | +| Magento\Framework\ObjectManager\RelationsInterface | Interface was added. | +| Magento\Framework\Profiler\Driver\Standard\OutputInterface | Interface was added. | +| Magento\Framework\Search\AdapterInterface | Interface was added. | +| Magento\Framework\Search\Adapter\Aggregation\AggregationResolverInterface | Interface was added. | +| Magento\Framework\Search\Adapter\OptionsInterface | Interface was added. | +| Magento\Framework\Search\Adapter\Preprocessor\PreprocessorInterface | Interface was added. | +| Magento\Framework\Search\Dynamic\Algorithm\AlgorithmInterface | Interface was added. | +| Magento\Framework\Search\Request\Aggregation\StatusInterface | Interface was added. | +| Magento\Framework\Search\Request\IndexScopeResolverInterface | Interface was added. | +| Magento\Framework\Search\ResponseInterface | Interface was added. | +| Magento\Framework\Search\SearchEngineInterface | Interface was added. | +| Magento\Framework\Search\SearchEngine\ConfigInterface | Interface was added. | +| Magento\Framework\Session\Config\ConfigInterface | Interface was added. | +| Magento\Framework\Session\SaveHandlerInterface | Interface was added. | +| Magento\Framework\Session\StorageInterface | Interface was added. | +| Magento\Framework\Session\ValidatorInterface | Interface was added. | +| Magento\Framework\Setup\ConfigOptionsListInterface | Interface was added. | +| Magento\Framework\Setup\DataCacheInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\DataSavior\DataSaviorInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\DataSavior\DumpAccessorInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DDLTriggerInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbDefinitionProcessorInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaReaderInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Db\DbSchemaWriterInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Declaration\ValidationInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Diff\DiffInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnDefaultAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnIdentityAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnNullableAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Columns\ColumnUnsignedAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\ElementDiffAwareInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\Factories\FactoryInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\Dto\TableElementInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\OperationInterface | Interface was added. | +| Magento\Framework\Setup\Declaration\Schema\SchemaConfigInterface | Interface was added. | +| Magento\Framework\Setup\Patch\DataPatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\DependentPatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\NonTransactionableInterface | Interface was added. | +| Magento\Framework\Setup\Patch\PatchInterface | Interface was added. | +| Magento\Framework\Setup\Patch\PatchRevertableInterface | Interface was added. | +| Magento\Framework\Setup\Patch\SchemaPatchInterface | Interface was added. | +| Magento\Framework\Setup\SampleData\InstallerInterface | Interface was added. | +| Magento\Framework\Setup\SampleData\StateInterface | Interface was added. | +| Magento\Framework\Setup\SchemaListenerDefinition\DefinitionConverterInterface | Interface was added. | +| Magento\Framework\Setup\SchemaListenerHandlers\SchemaListenerHandlerInterface | Interface was added. | +| Magento\Framework\Setup\UpToDateValidatorInterface | Interface was added. | +| Magento\Framework\TestFramework\Unit\Autoloader\GeneratorInterface | Interface was added. | +| Magento\Framework\TranslateInterface | Interface was added. | +| Magento\Framework\Translate\Inline\ProviderInterface | Interface was added. | +| Magento\Framework\Url\ModifierInterface | Interface was added. | +| Magento\Framework\Url\RouteParamsPreprocessorInterface | Interface was added. | +| Magento\Framework\Validator\Constraint\OptionInterface | Interface was added. | +| Magento\Framework\Validator\HTML\AttributeValidatorInterface | Interface was added. | +| Magento\Framework\Validator\HTML\TagValidatorInterface | Interface was added. | +| Magento\Framework\Validator\HTML\WYSIWYGValidatorInterface | Interface was added. | +| Magento\Framework\View\Asset\ContentProcessorInterface | Interface was added. | +| Magento\Framework\View\Asset\ContextInterface | Interface was added. | +| Magento\Framework\View\Asset\LockerProcessInterface | Interface was added. | +| Magento\Framework\View\Asset\MergeStrategyInterface | Interface was added. | +| Magento\Framework\View\Asset\MergeableInterface | Interface was added. | +| Magento\Framework\View\Asset\PreProcessor\FilenameResolverInterface | Interface was added. | +| Magento\Framework\View\DesignInterface | Interface was added. | +| Magento\Framework\View\Design\Fallback\Rule\RuleInterface | Interface was added. | +| Magento\Framework\View\Design\FileResolution\Fallback\ResolverInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\CustomizationInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\ConfigInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\FileAssetInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Customization\FileInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\FileInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\File\CollectionInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\Image\PathInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\ResolverInterface | Interface was added. | +| Magento\Framework\View\Design\Theme\ThemeProviderInterface | Interface was added. | +| Magento\Framework\View\Element\ComponentVisibilityInterface | Interface was added. | +| Magento\Framework\View\Element\Message\InterpretationStrategyInterface | Interface was added. | +| Magento\Framework\View\Element\Message\Renderer\PoolInterface | Interface was added. | +| Magento\Framework\View\Element\Message\Renderer\RendererInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\BlockWrapperInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\DomMergerInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\FileCollectorInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Config\UiReaderInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContainerInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContentType\ContentTypeInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ContextInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ActionPoolInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ButtonProviderInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Control\ControlInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\DataProvider\FilterApplierInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\DataSourceInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\Factory\ComponentFactoryInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\JsConfigInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\LayoutInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\ObserverInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\PoolInterface | Interface was added. | +| Magento\Framework\View\Element\UiComponent\SubjectInterface | Interface was added. | +| Magento\Framework\View\File\FileList\CollateInterface | Interface was added. | +| Magento\Framework\View\Helper\SecureHtmlRender\SecurityProcessorInterface | Interface was added. | +| Magento\Framework\View\Layout\Argument\UpdaterInterface | Interface was added. | +| Magento\Framework\View\Layout\Condition\VisibilityConditionInterface | Interface was added. | +| Magento\Framework\View\Layout\GeneratorInterface | Interface was added. | +| Magento\Framework\View\Layout\LayoutCacheKeyInterface | Interface was added. | +| Magento\Framework\View\Layout\ProcessorInterface | Interface was added. | +| Magento\Framework\View\Layout\ReaderInterface | Interface was added. | +| Magento\Framework\View\Model\PageLayout\Config\BuilderInterface | Interface was added. | +| Magento\Framework\View\Page\Config\RendererInterface | Interface was added. | +| Magento\Framework\View\TemplateEngineInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\AttributeInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CdataInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\CommentInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Directive\DirectiveInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\Element\ElementInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\Compiler\TextInterface | Interface was added. | +| Magento\Framework\View\TemplateEngine\Xhtml\ResultInterface | Interface was added. | +| Magento\Framework\View\Xsd\Media\TypeDataExtractorInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttributeTypeLocatorInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttribute\PreprocessorInterface | Interface was added. | +| Magento\Framework\Webapi\CustomAttribute\ServiceTypeListInterface | Interface was added. | +| Magento\Framework\Webapi\Rest\Request\DeserializerInterface | Interface was added. | +| Magento\GraphQl\Controller\HttpHeaderProcessorInterface | Interface was added. | +| Magento\GraphQl\Controller\HttpRequestValidatorInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextParametersInterface | Interface was added. | +| Magento\GraphQl\Model\Query\ContextParametersProcessorInterface | Interface was added. | +| Magento\ImportExport\Api\Data\ExtendedExportInfoInterface | Interface was added. | +| Magento\ImportExport\Model\Report\ReportProcessorInterface | Interface was added. | +| Magento\Indexer\Model\ModeSwitcherInterface | Interface was added. | +| Magento\Indexer\Model\Source\DataInterface | Interface was added. | +| Magento\Integration\Model\Oauth\Token\RequestLog\ReaderInterface | Interface was added. | +| Magento\Integration\Model\Oauth\Token\RequestLog\WriterInterface | Interface was added. | +| Magento\InventoryIndexer\Indexer\SelectBuilderInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\Data\IsLoginAsCustomerEnabledForCustomerResultInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerAdminIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\GetLoggedAsCustomerCustomerIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\IsLoginAsCustomerEnabledForCustomerInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerAdminIdInterface | Interface was added. | +| Magento\LoginAsCustomerApi\Api\SetLoggedAsCustomerCustomerIdInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\ConfigInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\IsAssistanceEnabledInterface | Interface was added. | +| Magento\LoginAsCustomerAssistance\Api\SetAssistanceInterface | Interface was added. | +| Magento\MediaContentApi\Api\GetAssetIdsByContentFieldInterface | Interface was added. | +| Magento\MediaContentApi\Api\UpdateContentAssetLinksInterface | Interface was added. | +| Magento\MediaContentApi\Model\GetAssetIdsByContentFieldInterface | Interface was added. | +| Magento\MediaContentApi\Model\SearchPatternConfigInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Api\SynchronizeIdentitiesInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Api\SynchronizeInterface | Interface was added. | +| Magento\MediaContentSynchronizationApi\Model\GetEntitiesInterface | Interface was added. | +| Magento\MediaGalleryApi\Api\SearchAssetsInterface | Interface was added. | +| Magento\MediaGalleryApi\Model\ExcludedPatternsConfigInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\AddMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\Data\MetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Api\ExtractMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\FileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\ReadFileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\ReadMetadataInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\SegmentInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\WriteFileInterface | Interface was added. | +| Magento\MediaGalleryMetadataApi\Model\WriteMetadataInterface | Interface was added. | +| Magento\MediaGalleryRenditionsApi\Api\GenerateRenditionsInterface | Interface was added. | +| Magento\MediaGalleryRenditionsApi\Api\GetRenditionPathInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Api\SynchronizeFilesInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Api\SynchronizeInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\CreateAssetFromFileInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\FetchBatchesInterface | Interface was added. | +| Magento\MediaGallerySynchronizationApi\Model\ImportFilesInterface | Interface was added. | +| Magento\MediaGalleryUiApi\Api\ConfigInterface | Interface was added. | +| Magento\Msrp\Pricing\MsrpPriceCalculatorInterface | Interface was added. | +| Magento\Newsletter\Model\SubscriptionManagerInterface | Interface was added. | +| Magento\PageCache\Model\Spi\PageCacheTagsPreprocessorInterface | Interface was added. | +| Magento\Payment\Api\Data\PaymentAdditionalInfoInterface | Interface was added. | +| Magento\Payment\Model\Method\TransparentInterface | Interface was added. | +| Magento\Paypal\Helper\Shortcut\ValidatorInterface | Interface was added. | +| Magento\Paypal\Model\Billing\Agreement\MethodInterface | Interface was added. | +| Magento\Paypal\Model\IpnInterface | Interface was added. | +| Magento\Paypal\Model\Payflow\Service\Response\Handler\HandlerInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\CartItem\DataProvider\CustomizableOptionValueInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\CartItem\DataProvider\Processor\ItemDataProcessorInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\Payment\AdditionalDataProviderInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\SetShippingAddressesOnCartInterface | Interface was added. | +| Magento\QuoteGraphQl\Model\Cart\SetShippingMethodsOnCartInterface | Interface was added. | +| Magento\Quote\Api\ChangeQuoteControlInterface | Interface was added. | +| Magento\Quote\Model\Cart\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | +| Magento\Quote\Model\Product\QuoteItemsCleanerInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\CustomAttributeListInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\Total\CollectorInterface | Interface was added. | +| Magento\Quote\Model\Quote\Address\Total\ReaderInterface | Interface was added. | +| Magento\Quote\Model\Quote\Item\CartItemProcessorInterface | Interface was added. | +| Magento\Quote\Model\ValidationRules\QuoteValidationRuleInterface | Interface was added. | +| Magento\ReleaseNotification\Model\ContentProviderInterface | Interface was added. | +| Magento\RemoteStorage\Driver\DriverFactoryInterface | Interface was added. | +| Magento\RemoteStorage\Driver\RemoteDriverInterface | Interface was added. | +| Magento\RemoteStorage\FilesystemInterface | Interface was added. | +| Magento\SalesGraphQl\Model\Shipment\Item\FormatterInterface | Interface was added. | +| Magento\SalesRule\Api\Data\DiscountDataInterface | Interface was added. | +| Magento\SalesRule\Api\Data\RuleDiscountInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\CodeLimitManagerInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\QuoteResetAppliedRulesInterface | Interface was added. | +| Magento\SalesRule\Model\Spi\RuleQuoteRecollectTotalsInterface | Interface was added. | +| Magento\Sales\Api\OrderCustomerDelegateInterface | Interface was added. | +| Magento\Sales\Api\PaymentFailuresInterface | Interface was added. | +| Magento\Sales\Controller\AbstractController\OrderLoaderInterface | Interface was added. | +| Magento\Sales\Controller\AbstractController\OrderViewAuthorizationInterface | Interface was added. | +| Magento\Sales\Controller\OrderInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\CreditmemoValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\ItemCreationValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Creditmemo\SenderInterface | Interface was added. | +| Magento\Sales\Model\Order\Email\Container\IdentityInterface | Interface was added. | +| Magento\Sales\Model\Order\Invoice\InvoiceValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Invoice\SenderInterface | Interface was added. | +| Magento\Sales\Model\Order\OrderValidatorInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\State\CommandInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\Transaction\BuilderInterface | Interface was added. | +| Magento\Sales\Model\Order\Payment\Transaction\ManagerInterface | Interface was added. | +| Magento\Sales\Model\Order\Shipment\SenderInterface | Interface was added. | +| Magento\Sales\Model\Order\Shipment\ShipmentValidatorInterface | Interface was added. | +| Magento\Sales\Model\ResourceModel\Order\CollectionFactoryInterface | Interface was added. | +| Magento\Sales\Model\ResourceModel\Provider\NotSyncedDataProviderInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\CreditmemoResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\InvoiceResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderAddressResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderPaymentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\OrderStatusHistoryResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentCommentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentItemResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\ShipmentTrackResourceInterface | Interface was added. | +| Magento\Sales\Model\Spi\TransactionResourceInterface | Interface was added. | +| Magento\Sales\Model\ValidatorInterface | Interface was added. | +| Magento\Search\Model\SearchEngine\ValidatorInterface | Interface was added. | +| Magento\Search\Setup\InstallConfigInterface | Interface was added. | +| Magento\Security\Api\Data\UserExpirationInterface | Interface was added. | +| Magento\Shipping\Model\Carrier\Source\GenericInterface | Interface was added. | +| Magento\Store\Model\Config\Importer\Processor\ProcessorInterface | Interface was added. | +| Magento\Store\Model\StoreResolver\ReaderInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcherInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\ContextInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataPostprocessorInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataPreprocessorInterface | Interface was added. | +| Magento\Store\Model\StoreSwitcher\RedirectDataSerializerInterface | Interface was added. | +| Magento\Tax\Api\TaxAddressManagerInterface | Interface was added. | +| Magento\Tax\Model\System\Message\NotificationInterface | Interface was added. | +| Magento\Tax\Model\TaxClass\Type\TypeInterface | Interface was added. | +| Magento\Theme\Model\Design\Config\MetadataProviderInterface | Interface was added. | +| Magento\Theme\Model\Theme\StoreThemesResolverInterface | Interface was added. | +| Magento\Ui\Component\Form\Element\DataType\DataTypeInterface | Interface was added. | +| Magento\Ui\Component\Layout\Tabs\TabInterface | Interface was added. | +| Magento\Ui\Component\Wysiwyg\ConfigInterface | Interface was added. | +| Magento\Ui\Config\Argument\ParserInterface | Interface was added. | +| Magento\Ui\Config\ConverterInterface | Interface was added. | +| Magento\Ui\Controller\UiActionInterface | Interface was added. | +| Magento\Ui\DataProvider\AddFieldToCollectionInterface | Interface was added. | +| Magento\Ui\DataProvider\AddFilterToCollectionInterface | Interface was added. | +| Magento\Ui\DataProvider\Mapper\MapperInterface | Interface was added. | +| Magento\Ui\DataProvider\Modifier\PoolInterface | Interface was added. | +| Magento\Ui\Model\ColorPicker\ModeInterface | Interface was added. | +| Magento\Ui\Model\UrlInput\ConfigInterface | Interface was added. | +| Magento\UrlRewriteGraphQl\Model\Resolver\UrlRewrite\CustomUrlLocatorInterface | Interface was added. | +| Magento\User\Model\Spi\NotificationExceptionInterface | Interface was added. | +| Magento\User\Model\Spi\NotificatorInterface | Interface was added. | +| Magento\Vault\Block\Customer\IconInterface | Interface was added. | +| Magento\Webapi\Controller\Rest\RequestProcessorInterface | Interface was added. | +| Magento\Widget\Block\BlockInterface | Interface was added. | +| Magento\Wishlist\Controller\IndexInterface | Interface was added. | +| Magento\Wishlist\Controller\WishlistProviderInterface | Interface was added. | +| Magento\Wishlist\Model\AuthenticationStateInterface | Interface was added. | +| Magento\Wishlist\Model\ResourceModel\Item\Product\CollectionBuilderInterface | Interface was added. | +| Magento\Wishlist\Model\Wishlist\BuyRequest\BuyRequestDataProviderInterface | Interface was added. | From 0d322c19f4ffe9ab667d390d4fe9b8524fd3de8c Mon Sep 17 00:00:00 2001 From: Dmytro Shevtsov Date: Mon, 1 Aug 2022 17:39:59 -0500 Subject: [PATCH 091/491] Markdown linting --- .../backward-incompatible-changes/commerce/2.4.4-2.4.5.md | 1 - 1 file changed, 1 deletion(-) diff --git a/src/_includes/backward-incompatible-changes/commerce/2.4.4-2.4.5.md b/src/_includes/backward-incompatible-changes/commerce/2.4.4-2.4.5.md index 081f33070de..93dfd5eaabb 100644 --- a/src/_includes/backward-incompatible-changes/commerce/2.4.4-2.4.5.md +++ b/src/_includes/backward-incompatible-changes/commerce/2.4.4-2.4.5.md @@ -12,7 +12,6 @@ | Magento\GoogleTagManager\Block\GtagGa | Class was added. | | Magento\GoogleTagManager\Model\Config\Source\GtagAccountType | Class was added. | - #### Database changes {#ee-244-245-database} | What changed | How it changed | From 5187fe6ce508e5bfbb183aa4c24679d569d54d35 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Tue, 2 Aug 2022 12:15:44 -0500 Subject: [PATCH 092/491] added known issue to 2.3.7-p4 --- src/guides/v2.3/release-notes/2-3-7-p4.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/guides/v2.3/release-notes/2-3-7-p4.md b/src/guides/v2.3/release-notes/2-3-7-p4.md index 1361e87dcdf..d7d5162c908 100644 --- a/src/guides/v2.3/release-notes/2-3-7-p4.md +++ b/src/guides/v2.3/release-notes/2-3-7-p4.md @@ -25,6 +25,10 @@ Security improvements for this release improve compliance with the latest securi * ACL resources have been added to Inventory. * Inventory template security has been enhanced. +## Known issue + +**Issue**: Merchants may notice package version downgrade notices during upgrade from {{ site.data.var.ee }} 2.3.7-p3 to {{ site.data.var.ee }} 2.3.7-p4. These messages can be ignored. The discrepancy in package versions result from anomalies during package generation. No product functionality has been affected. + ## Installation and upgrade instructions For instructions on downloading and applying security patches (including patch 2.3.7-p4), see [Quick start install]({{site.baseurl}}/guides/v2.4/install-gde/composer.html). From b4fd78f8d3fcee5651cc4ff7ff5a8fe35ce91483 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Tue, 2 Aug 2022 12:38:22 -0500 Subject: [PATCH 093/491] Apply suggestions from code review Co-authored-by: Donald Booth --- src/_includes/graphql/catalog-service/headers.md | 2 +- src/_includes/graphql/catalog-service/product-view.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/_includes/graphql/catalog-service/headers.md b/src/_includes/graphql/catalog-service/headers.md index 3ca67c9a57b..8bce01eb59e 100644 --- a/src/_includes/graphql/catalog-service/headers.md +++ b/src/_includes/graphql/catalog-service/headers.md @@ -5,4 +5,4 @@ Header | Description `Magento-Store-Code`| The code assigned to the store associated with the active store view. For example, `main_website_store`. `Magento-Store-View-Code`| The code assigned to the active store view. For example, `default`. `Magento-Website-Code`| The code assigned to the website associated with the active store view. For example, `base`. -`X-Api-Key` | This value must be set to `storefront-catalog`. +`X-Api-Key` | A unique key that is generated during the onboarding process. diff --git a/src/_includes/graphql/catalog-service/product-view.md b/src/_includes/graphql/catalog-service/product-view.md index c68ebe1517c..710032e4c4c 100644 --- a/src/_includes/graphql/catalog-service/product-view.md +++ b/src/_includes/graphql/catalog-service/product-view.md @@ -16,7 +16,7 @@ Field | Data Type | Description ### ComplexProductView type {#ComplexProductView-type} -The `ComplexProductView`type represents bundle, configurable, and group products. Complex product prices are returned as a price range, because price values can vary based on selected options. The type implements `ProductView`. +The `ComplexProductView` type represents bundle, configurable, and group products. Complex product prices are returned as a price range, because price values can vary based on selected options. The type implements `ProductView`. Field | Data Type | Description --- | --- | --- @@ -129,7 +129,7 @@ The `ProductViewPrice` type provides the base product price view, inherent for s Field | Data Type | Description --- | --- | --- `final` | Price | Price value after discounts, excluding personalized promotions. -`regular` | Price | Base product price specified by the merchant.v +`regular` | Price | Base product price specified by the merchant. ### ProductViewPriceRange type From 1ea61089f93ee507ea50cf2521947f1e87333ee4 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Tue, 2 Aug 2022 13:09:46 -0500 Subject: [PATCH 094/491] edited known issue for AC-6026 for GA --- src/guides/v2.4/release-notes/commerce-2-4-5.md | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index 317f64166ec..a97019f7812 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -1412,11 +1412,9 @@ Repetitive actions have been replaced with action groups in these tests: ## Known issue -**Issue**: RabbitMQ infrastructure elements (exchanges, queues) may be not initialized after a fresh installation (not upgrade) of {{ site.data.var.ee }} 2.4.5. This incorrect configuration of RabbitMQ may result in a fatal error when asynchronous operations are executed or a performance profile is generated. +**Issue**: RabbitMQ infrastructure elements (exchanges, queues) may be not initialized after a fresh installation (not upgrade) of {{ site.data.var.ee }} 2.4.5. This incorrect configuration of RabbitMQ may result in a fatal error when asynchronous operations are executed or a performance profile is generated. Cloud deployments are not affected. -**Workarounds**: - -Merchants performing a fresh installation of {{ site.data.var.ee }} 2.4.5 for Cloud must run `bin/magento setup:upgrade --keep-generated` using ssh or redeploy on Cloud without uninstalling {{ site.data.var.ee }} 2.4.5. (Redeploy automatically runs `setup:upgrade`.) We will release an upgrade to `ece-tools` before {{ site.data.var.ee }} 2.4.5 General Availability that will resolve this issue. +**Workaround**: Merchants performing a fresh installation of {{ site.data.var.ee }} 2.4.5 on-premises should run `bin/magento setup:upgrade --keep-generated` after using `bin/magento setup:config:set` to configure RabbitMQ or install {{ site.data.var.ee }} by passing RabbitMQ configuration options to the `setup:install` command. See [RabbitMQ](https://devdocs.magento.com/guides/v2.4/install-gde/prereq/install-rabbitmq.html). From dee1523c2df20bea9bc00ee4f15a484ea0af64a9 Mon Sep 17 00:00:00 2001 From: jfrontain Date: Tue, 2 Aug 2022 13:46:27 -0500 Subject: [PATCH 095/491] added link to Adobe Security bulletin --- src/guides/v2.3/release-notes/2-3-7-p4.md | 2 +- src/guides/v2.4/release-notes/2-4-3-p3.md | 2 +- src/guides/v2.4/release-notes/2-4-4-p1.md | 2 +- src/guides/v2.4/release-notes/commerce-2-4-5.md | 2 +- src/guides/v2.4/release-notes/open-source-2-4-5.md | 5 +---- 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/guides/v2.3/release-notes/2-3-7-p4.md b/src/guides/v2.3/release-notes/2-3-7-p4.md index d7d5162c908..8d3d6af3d3c 100644 --- a/src/guides/v2.3/release-notes/2-3-7-p4.md +++ b/src/guides/v2.3/release-notes/2-3-7-p4.md @@ -16,7 +16,7 @@ Releases may contain backward-incompatible changes (BIC). To review minor backwa This security patch includes: * Security enhancements -* Security bug fixes. See Adobe Security Bulletin for the latest discussion of these fixed issues. +* Security bug fixes. See [Adobe Security Bulletin](https://helpx.adobe.com/security/products/magento/apsb22-38.html) for the latest discussion of these fixed issues. ### Security highlights diff --git a/src/guides/v2.4/release-notes/2-4-3-p3.md b/src/guides/v2.4/release-notes/2-4-3-p3.md index 4e998a63333..d34a286eee4 100644 --- a/src/guides/v2.4/release-notes/2-4-3-p3.md +++ b/src/guides/v2.4/release-notes/2-4-3-p3.md @@ -13,7 +13,7 @@ Releases may contain backward-incompatible changes (BIC). To review minor backwa This security patch includes: * Security enhancements -* Security bug fixes. See Adobe Security Bulletin for the latest discussion of these fixed issues. +* Security bug fixes. See [Adobe Security Bulletin](https://helpx.adobe.com/security/products/magento/apsb22-38.html) for the latest discussion of these fixed issues. ### Security highlights diff --git a/src/guides/v2.4/release-notes/2-4-4-p1.md b/src/guides/v2.4/release-notes/2-4-4-p1.md index d837c0cf612..5a8178c694b 100644 --- a/src/guides/v2.4/release-notes/2-4-4-p1.md +++ b/src/guides/v2.4/release-notes/2-4-4-p1.md @@ -13,7 +13,7 @@ Releases may contain backward-incompatible changes (BIC). To review minor backwa This security patch includes: * Security enhancements -* Security bug fixes. See Adobe Security Bulletin for the latest discussion of these fixed issues. +* Security bug fixes. See [Adobe Security Bulletin](https://helpx.adobe.com/security/products/magento/apsb22-38.html) for the latest discussion of these fixed issues. ### Security highlights diff --git a/src/guides/v2.4/release-notes/commerce-2-4-5.md b/src/guides/v2.4/release-notes/commerce-2-4-5.md index a97019f7812..b8d54587abe 100644 --- a/src/guides/v2.4/release-notes/commerce-2-4-5.md +++ b/src/guides/v2.4/release-notes/commerce-2-4-5.md @@ -38,7 +38,7 @@ No confirmed attacks related to these issues have occurred to date. However, cer * Use of a unique location rather than `/admin` * Good password hygiene -See Adobe Security Bulletin for the latest discussion of these fixed issues. +See [Adobe Security Bulletin](https://helpx.adobe.com/security/products/magento/apsb22-38.html) for the latest discussion of these fixed issues. #### Additional security enhancements diff --git a/src/guides/v2.4/release-notes/open-source-2-4-5.md b/src/guides/v2.4/release-notes/open-source-2-4-5.md index fa7b7a58542..37d55b7d146 100644 --- a/src/guides/v2.4/release-notes/open-source-2-4-5.md +++ b/src/guides/v2.4/release-notes/open-source-2-4-5.md @@ -30,8 +30,7 @@ No confirmed attacks related to these issues have occurred to date. However, cer * use of a unique location rather than `/admin` * good password hygiene -See Adobe Security Bulletin for the latest discussion of these fixed issues. - +See [Adobe Security Bulletin](https://helpx.adobe.com/security/products/magento/apsb22-38.html) for the latest discussion of these fixed issues. #### Additional security enhancements Security improvements for this release improve compliance with the latest security best practices, including: @@ -1213,8 +1212,6 @@ Repetitive actions have been replaced with action groups in these tests: * Updating an item quantity from the wish list page now updates the quantity on the product detail page as expected. {{ site.data.var.ce }} now picks up the updated value from the product URL and populates the `qty` field of product detail page from the wishlist itself. -## Known Issues - ## Community contributions We are grateful to the wider Magento community and would like to acknowledge their contributions to this release. From 32ea33fa62f33f177f2aafc3b55671a3d6b4515f Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Tue, 2 Aug 2022 14:30:29 -0500 Subject: [PATCH 096/491] Rename query to refineProduct --- src/_data/toc/catalog-service.yml | 2 +- src/catalog-service/index.md | 1 - .../{refine.md => refine-product.md} | 23 +++++++++++++------ 3 files changed, 17 insertions(+), 9 deletions(-) rename src/catalog-service/{refine.md => refine-product.md} (82%) diff --git a/src/_data/toc/catalog-service.yml b/src/_data/toc/catalog-service.yml index 72a339bce76..7990095538a 100644 --- a/src/_data/toc/catalog-service.yml +++ b/src/_data/toc/catalog-service.yml @@ -9,5 +9,5 @@ pages: versionless: true - label: refine query - url: /catalog-service/refine.html + url: /catalog-service/refine-product.html versionless: true diff --git a/src/catalog-service/index.md b/src/catalog-service/index.md index f5d04c2ae76..c2eaccf237b 100644 --- a/src/catalog-service/index.md +++ b/src/catalog-service/index.md @@ -4,4 +4,3 @@ title: Catalog Service for Adobe Commerce ee_only: True --- -## Architectural overview diff --git a/src/catalog-service/refine.md b/src/catalog-service/refine-product.md similarity index 82% rename from src/catalog-service/refine.md rename to src/catalog-service/refine-product.md index ffd7b123f20..64555a743b3 100644 --- a/src/catalog-service/refine.md +++ b/src/catalog-service/refine-product.md @@ -1,17 +1,17 @@ --- group: catalog-service -title: refine query +title: refineProduct query ee_only: True --- -The `refine` query narrows the results of a `products` query that was run against a complex product. Before you run the `refine` query, you must run the `products` query and construct the response so that it returns a list of `options` within a `ComplexProductView` inline fragment. When a shopper selects a product option (such as size or color) on the storefront, run the `refine` query, specifying the SKU and selected option value IDs as input. Depending on the number of product options the complex product has, you might need to run the `refine` query multiple times, until the shopper has selected a specific variant. +The `refineProduct` query narrows the results of a `products` query that was run against a complex product. Before you run the `refineProduct` query, you must run the `products` query and construct the response so that it returns a list of `options` within a `ComplexProductView` inline fragment. When a shopper selects a product option (such as size or color) on the storefront, run the `refineProduct` query, specifying the SKU and selected option value IDs as input. Depending on the number of product options the complex product has, you might need to run the `refineProduct` query multiple times, until the shopper has selected a specific variant. You should construct the response of your query so that it contains both the `ComplexProductView` and `SimpleProductView` inline fragments. If the shopper has not selected all of the required options, the query will return the IDs of unselected options and the minimum and maximum price of the product, based on the selected options and possible remaining options. If the shopper has selected all the required options, the query returns details about a simple product, which includes a set price. ## Syntax ```graphql -refine(sku: String, optionIds: [String]): ProductView +refineProduct(sku: String!, optionIds: [String!]!): ProductView ``` ## Required headers @@ -30,7 +30,7 @@ The following query returns details about the color options available for a medi ```graphql query { - refine(optionIds: ["Y29uZmlndXJhYmxlLzE4Ni8xNzc="], sku: "MH12") { + refineProduct(optionIds: ["Y29uZmlndXJhYmxlLzE4Ni8xNzc="], sku: "MH12") { __typename id sku @@ -97,7 +97,7 @@ query { ```json { "data": { - "refine": { + "refineProduct": { "__typename": "ComplexProductView", "id": "VFVneE1nAFpHVm1ZWFZzZEEATXpSbE1qYzBNR0V0TnpRM015MDBZemc1TFRnM016QXROVGMwTURObVkyVXlOMkZsAGJXRnBibDkzWldKemFYUmxYM04wYjNKbABZbUZ6WlEAVFVGSFUxUkhNREExTlRjNU1ETTQ", "sku": "MH12", @@ -163,7 +163,7 @@ In the following query, the shopper has selected options for both size and color ```graphql query { - refine(optionIds: ["Y29uZmlndXJhYmxlLzE4Ni8xNzc=", "Y29uZmlndXJhYmxlLzkzLzU5"], sku: "MH12") { + refineProduct(optionIds: ["Y29uZmlndXJhYmxlLzE4Ni8xNzc=", "Y29uZmlndXJhYmxlLzkzLzU5"], sku: "MH12") { __typename id sku @@ -230,7 +230,7 @@ query { ```json { "data": { - "refine": { + "refineProduct": { "__typename": "SimpleProductView", "id": "VFVneE1pMU5MVUpzZFdVAFpHVm1ZWFZzZEEATXpSbE1qYzBNR0V0TnpRM015MDBZemc1TFRnM016QXROVGMwTURObVkyVXlOMkZsAGJXRnBibDkzWldKemFYUmxYM04wYjNKbABZbUZ6WlEAVFVGSFUxUkhNREExTlRjNU1ETTQ", "sku": "MH12-M-Blue", @@ -253,6 +253,15 @@ query { } ``` +## Input fields + +You must specify a SKU value and at least one option ID. + +Field | Data type | Description +--- | --- | --- +`sku` | String! | The SKU of a complex product. +`optionIds` | [String!]! | A list of IDs assigned to the product options the shopper has selected, such specific colors and sizes. + ## Output fields {% include graphql/catalog-service/product-view.md %} From eaa5b8f5fe15206dfe286991f3938d03b6a220f7 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Tue, 2 Aug 2022 14:33:04 -0500 Subject: [PATCH 097/491] Update TOC with new name --- src/_data/toc/catalog-service.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/_data/toc/catalog-service.yml b/src/_data/toc/catalog-service.yml index 7990095538a..cc0cfdafd3c 100644 --- a/src/_data/toc/catalog-service.yml +++ b/src/_data/toc/catalog-service.yml @@ -8,6 +8,6 @@ pages: url: /catalog-service/products.html versionless: true - - label: refine query + - label: refineProduct query url: /catalog-service/refine-product.html versionless: true From 150e41aa1aeef810ecef28d34d633596eef34465 Mon Sep 17 00:00:00 2001 From: Kevin Harper Date: Tue, 2 Aug 2022 14:38:28 -0500 Subject: [PATCH 098/491] Alphabetize fields --- src/catalog-service/refine-product.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/catalog-service/refine-product.md b/src/catalog-service/refine-product.md index 64555a743b3..65f00a186c5 100644 --- a/src/catalog-service/refine-product.md +++ b/src/catalog-service/refine-product.md @@ -255,12 +255,12 @@ query { ## Input fields -You must specify a SKU value and at least one option ID. +You must specify a SKU value and at least one option ID as input. Field | Data type | Description --- | --- | --- -`sku` | String! | The SKU of a complex product. `optionIds` | [String!]! | A list of IDs assigned to the product options the shopper has selected, such specific colors and sizes. +`sku` | String! | The SKU of a complex product. ## Output fields From c1f23438278367dc931ec7171f2d2c1347ced03e Mon Sep 17 00:00:00 2001 From: gregory-marshall Date: Tue, 2 Aug 2022 15:03:15 -0700 Subject: [PATCH 099/491] Replaced CURRENT with UPGRADE --- src/cloud/project/user-admin.md | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/src/cloud/project/user-admin.md b/src/cloud/project/user-admin.md index 893ce40e091..dda79cfd3fb 100644 --- a/src/cloud/project/user-admin.md +++ b/src/cloud/project/user-admin.md @@ -90,12 +90,6 @@ To add a user and assign roles: After you add the user, Adobe sends an email to the specified address with instructions for accessing the {{ site.data.var.ece }} project. -The following example changes the environment-level role that is assigned to a user: - -```bash -magento-cloud user:role alice@example.com --level environment --environment development --role admin -``` - {:.bs-callout-tip} The `magento-cloud list` command displays all the `magento-cloud` CLI commands. @@ -153,25 +147,6 @@ Add a project-level user: {:.bs-callout-warning} Only **Super Users** can manage users in any environment. To grant a user access to the **Users** tab when configuring the environment, another **Super User** or the **Account Owner** must assign that user the **Super User** role. -{:.procedure} -Add an environment-level user: - -1. In the Project Web UI, select the environment. Then, click **Configure environment**. - - ![Configure the environment]({{ site.baseurl }}/common/images/cloud/cloud_project-env.png){:width="550px"} - -1. Click the **Users** tab, and then click **Add User**. - -1. Complete the _Add User_ form: - - ![Add the user]({{ site.baseurl }}/common/images/cloud/cloud_project-add-env-user.png){:width="550px"} - - - Enter the user email address. - - - Select the user role from the dropdown menu: _Admin_, _Contributor_, or _Reader_. - - - Click *Add User*. - {%include cloud/note-prevent-site-availability-issues.md%} ## Update account security settings From 523cd1bb48c27b182c53754b6bb31dbee28ab7da Mon Sep 17 00:00:00 2001 From: Brent Robert Date: Wed, 3 Aug 2022 10:12:40 +0200 Subject: [PATCH 100/491] Added PHP8.1 Added PHP 8.1 to the features table. --- src/_data/features.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/_data/features.yml b/src/_data/features.yml index f692de1f625..e8ef799e91e 100644 --- a/src/_data/features.yml +++ b/src/_data/features.yml @@ -230,6 +230,14 @@ features: 2.2: false 2.3: false 2.4: true + - + name: PHP 8.1 + support: + 2.0: false + 2.1: false + 2.2: false + 2.3: false + 2.4: true - name: PHP 7.4 support: From 521192c3b588e1d319115603a11fbc3f16430ecc Mon Sep 17 00:00:00 2001 From: Heather Guthrie Date: Fri, 29 Jul 2022 10:01:55 -0500 Subject: [PATCH 101/491] remove symlinks --- src/guides/v2.4/config-guide/bootstrap/mage-profiler.md | 1 - src/guides/v2.4/config-guide/bootstrap/magento-how-to-set.md | 1 - src/guides/v2.4/config-guide/bootstrap/magento-modes.md | 1 - src/guides/v2.4/config-guide/cache.md | 1 - src/guides/v2.4/config-guide/cache/cache-options.md | 1 - src/guides/v2.4/config-guide/cache/cache-types.md | 1 - src/guides/v2.4/config-guide/cache/static-content-signing.md | 1 - src/guides/v2.4/config-guide/cli/config-cli-subcommands-cache.md | 1 - .../v2.4/config-guide/cli/config-cli-subcommands-catalog-sync.md | 1 - .../v2.4/config-guide/cli/config-cli-subcommands-compiler.md | 1 - .../cli/config-cli-subcommands-config-mgmt-export.md | 1 - .../cli/config-cli-subcommands-config-mgmt-import.md | 1 - .../cli/config-cli-subcommands-config-mgmt-parent.md | 1 - .../config-guide/cli/config-cli-subcommands-config-mgmt-set.md | 1 - src/guides/v2.4/config-guide/cli/config-cli-subcommands-depen.md | 1 - src/guides/v2.4/config-guide/cli/config-cli-subcommands-i18n.md | 1 - src/guides/v2.4/config-guide/cli/config-cli-subcommands-index.md | 1 - .../v2.4/config-guide/cli/config-cli-subcommands-layout-xml.md | 1 - .../v2.4/config-guide/cli/config-cli-subcommands-less-sass.md | 1 - src/guides/v2.4/config-guide/cli/config-cli-subcommands-mode.md | 1 - .../v2.4/config-guide/cli/config-cli-subcommands-perf-data.md | 1 - src/guides/v2.4/config-guide/cli/config-cli-subcommands-queue.md | 1 - .../v2.4/config-guide/cli/config-cli-subcommands-spt-util.md | 1 - .../cli/config-cli-subcommands-static-deploy-strategies.md | 1 - .../cli/config-cli-subcommands-static-view-parent.md | 1 - src/guides/v2.4/config-guide/cli/config-cli-subcommands-test.md | 1 - src/guides/v2.4/config-guide/cli/config-cli-subcommands.md | 1 - src/guides/v2.4/config-guide/cli/config-cli.md | 1 - src/guides/v2.4/config-guide/cli/logging.md | 1 - src/guides/v2.4/config-guide/config/config-create.md | 1 - src/guides/v2.4/config-guide/config/config-files.md | 1 - src/guides/v2.4/config-guide/config/config-magento.md | 1 - src/guides/v2.4/config-guide/config/config-php.md | 1 - src/guides/v2.4/config-guide/config/disable-module-output.md | 1 - src/guides/v2.4/config-guide/cron/custom-cron-ref.md | 1 - src/guides/v2.4/config-guide/cron/custom-cron-tut.md | 1 - src/guides/v2.4/config-guide/cron/custom-cron.md | 1 - src/guides/v2.4/config-guide/deployment/index.md | 1 - src/guides/v2.4/config-guide/deployment/pipeline/build-system.md | 1 - .../v2.4/config-guide/deployment/pipeline/development-system.md | 1 - src/guides/v2.4/config-guide/deployment/pipeline/example/cli.md | 1 - .../v2.4/config-guide/deployment/pipeline/example/index.md | 1 - .../deployment/pipeline/example/shared-configuration.md | 1 - src/guides/v2.4/config-guide/deployment/pipeline/index.md | 1 - .../v2.4/config-guide/deployment/pipeline/production-system.md | 1 - .../v2.4/config-guide/deployment/pipeline/technical-details.md | 1 - src/guides/v2.4/config-guide/log/custom-logger-handler.md | 1 - src/guides/v2.4/config-guide/log/log-db.md | 1 - src/guides/v2.4/config-guide/log/log-intro.md | 1 - src/guides/v2.4/config-guide/log/log-magento.md | 1 - src/guides/v2.4/config-guide/memcache/memcache.md | 1 - src/guides/v2.4/config-guide/memcache/memcache_centos.md | 1 - src/guides/v2.4/config-guide/memcache/memcache_magento.md | 1 - src/guides/v2.4/config-guide/memcache/memcache_ubuntu.md | 1 - src/guides/v2.4/config-guide/mq/rabbitmq-overview.md | 1 - src/guides/v2.4/config-guide/multi-master/multi-master.md | 1 - src/guides/v2.4/config-guide/multi-master/multi-master_manual.md | 1 - .../v2.4/config-guide/multi-master/multi-master_masterdb.md | 1 - .../v2.4/config-guide/multi-master/multi-master_slavedb.md | 1 - src/guides/v2.4/config-guide/multi-master/multi-master_verify.md | 1 - src/guides/v2.4/config-guide/multi-site/change-increment-id.md | 1 - src/guides/v2.4/config-guide/multi-site/ms_apache.md | 1 - src/guides/v2.4/config-guide/multi-site/ms_nginx.md | 1 - src/guides/v2.4/config-guide/multi-site/ms_websites.md | 1 - src/guides/v2.4/config-guide/prod/config-reference-b2b.md | 1 - src/guides/v2.4/config-guide/prod/config-reference-configphp.md | 1 - src/guides/v2.4/config-guide/prod/config-reference-var-name.md | 1 - .../v2.4/config-guide/prod/img/magento2-system-configuration.png | 1 - src/guides/v2.4/config-guide/prod/prod_file-sys-perms.md | 1 - src/guides/v2.4/config-guide/redis/config-redis.md | 1 - src/guides/v2.4/config-guide/redis/redis-session.md | 1 - src/guides/v2.4/config-guide/revert-split-database.md | 1 - src/guides/v2.4/config-guide/secy/secy-cron.md | 1 - src/guides/v2.4/config-guide/secy/secy-headers.md | 1 - src/guides/v2.4/config-guide/secy/secy-xframe.md | 1 - src/guides/v2.4/config-guide/secy/secy.md | 1 - src/guides/v2.4/config-guide/varnish/config-varnish-final.md | 1 - src/guides/v2.4/config-guide/varnish/config-varnish-magento.md | 1 - src/guides/v2.4/config-guide/varnish/config-varnish.md | 1 - src/guides/v2.4/config-guide/varnish/tshoot-varnish-503.md | 1 - .../v2.4/config-guide/varnish/use-multiple-varnish-cache.md | 1 - src/guides/v2.4/config-guide/varnish/use-varnish-cache-how.md | 1 - src/guides/v2.4/config-guide/varnish/use-varnish-cache.md | 1 - src/guides/v2.4/config-guide/varnish/use-varnish-esi.md | 1 - 84 files changed, 84 deletions(-) delete mode 120000 src/guides/v2.4/config-guide/bootstrap/mage-profiler.md delete mode 120000 src/guides/v2.4/config-guide/bootstrap/magento-how-to-set.md delete mode 120000 src/guides/v2.4/config-guide/bootstrap/magento-modes.md delete mode 120000 src/guides/v2.4/config-guide/cache.md delete mode 120000 src/guides/v2.4/config-guide/cache/cache-options.md delete mode 120000 src/guides/v2.4/config-guide/cache/cache-types.md delete mode 120000 src/guides/v2.4/config-guide/cache/static-content-signing.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-cache.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-catalog-sync.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-compiler.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-export.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-import.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-parent.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-set.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-depen.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-i18n.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-index.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-layout-xml.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-less-sass.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-mode.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-perf-data.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-queue.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-spt-util.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-static-deploy-strategies.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-static-view-parent.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands-test.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli-subcommands.md delete mode 120000 src/guides/v2.4/config-guide/cli/config-cli.md delete mode 120000 src/guides/v2.4/config-guide/cli/logging.md delete mode 120000 src/guides/v2.4/config-guide/config/config-create.md delete mode 120000 src/guides/v2.4/config-guide/config/config-files.md delete mode 120000 src/guides/v2.4/config-guide/config/config-magento.md delete mode 120000 src/guides/v2.4/config-guide/config/config-php.md delete mode 120000 src/guides/v2.4/config-guide/config/disable-module-output.md delete mode 120000 src/guides/v2.4/config-guide/cron/custom-cron-ref.md delete mode 120000 src/guides/v2.4/config-guide/cron/custom-cron-tut.md delete mode 120000 src/guides/v2.4/config-guide/cron/custom-cron.md delete mode 120000 src/guides/v2.4/config-guide/deployment/index.md delete mode 120000 src/guides/v2.4/config-guide/deployment/pipeline/build-system.md delete mode 120000 src/guides/v2.4/config-guide/deployment/pipeline/development-system.md delete mode 120000 src/guides/v2.4/config-guide/deployment/pipeline/example/cli.md delete mode 120000 src/guides/v2.4/config-guide/deployment/pipeline/example/index.md delete mode 120000 src/guides/v2.4/config-guide/deployment/pipeline/example/shared-configuration.md delete mode 120000 src/guides/v2.4/config-guide/deployment/pipeline/index.md delete mode 120000 src/guides/v2.4/config-guide/deployment/pipeline/production-system.md delete mode 120000 src/guides/v2.4/config-guide/deployment/pipeline/technical-details.md delete mode 120000 src/guides/v2.4/config-guide/log/custom-logger-handler.md delete mode 120000 src/guides/v2.4/config-guide/log/log-db.md delete mode 120000 src/guides/v2.4/config-guide/log/log-intro.md delete mode 120000 src/guides/v2.4/config-guide/log/log-magento.md delete mode 120000 src/guides/v2.4/config-guide/memcache/memcache.md delete mode 120000 src/guides/v2.4/config-guide/memcache/memcache_centos.md delete mode 120000 src/guides/v2.4/config-guide/memcache/memcache_magento.md delete mode 120000 src/guides/v2.4/config-guide/memcache/memcache_ubuntu.md delete mode 120000 src/guides/v2.4/config-guide/mq/rabbitmq-overview.md delete mode 120000 src/guides/v2.4/config-guide/multi-master/multi-master.md delete mode 120000 src/guides/v2.4/config-guide/multi-master/multi-master_manual.md delete mode 120000 src/guides/v2.4/config-guide/multi-master/multi-master_masterdb.md delete mode 120000 src/guides/v2.4/config-guide/multi-master/multi-master_slavedb.md delete mode 120000 src/guides/v2.4/config-guide/multi-master/multi-master_verify.md delete mode 120000 src/guides/v2.4/config-guide/multi-site/change-increment-id.md delete mode 120000 src/guides/v2.4/config-guide/multi-site/ms_apache.md delete mode 120000 src/guides/v2.4/config-guide/multi-site/ms_nginx.md delete mode 120000 src/guides/v2.4/config-guide/multi-site/ms_websites.md delete mode 120000 src/guides/v2.4/config-guide/prod/config-reference-b2b.md delete mode 120000 src/guides/v2.4/config-guide/prod/config-reference-configphp.md delete mode 120000 src/guides/v2.4/config-guide/prod/config-reference-var-name.md delete mode 120000 src/guides/v2.4/config-guide/prod/img/magento2-system-configuration.png delete mode 120000 src/guides/v2.4/config-guide/prod/prod_file-sys-perms.md delete mode 120000 src/guides/v2.4/config-guide/redis/config-redis.md delete mode 120000 src/guides/v2.4/config-guide/redis/redis-session.md delete mode 120000 src/guides/v2.4/config-guide/revert-split-database.md delete mode 120000 src/guides/v2.4/config-guide/secy/secy-cron.md delete mode 120000 src/guides/v2.4/config-guide/secy/secy-headers.md delete mode 120000 src/guides/v2.4/config-guide/secy/secy-xframe.md delete mode 120000 src/guides/v2.4/config-guide/secy/secy.md delete mode 120000 src/guides/v2.4/config-guide/varnish/config-varnish-final.md delete mode 120000 src/guides/v2.4/config-guide/varnish/config-varnish-magento.md delete mode 120000 src/guides/v2.4/config-guide/varnish/config-varnish.md delete mode 120000 src/guides/v2.4/config-guide/varnish/tshoot-varnish-503.md delete mode 120000 src/guides/v2.4/config-guide/varnish/use-multiple-varnish-cache.md delete mode 120000 src/guides/v2.4/config-guide/varnish/use-varnish-cache-how.md delete mode 120000 src/guides/v2.4/config-guide/varnish/use-varnish-cache.md delete mode 120000 src/guides/v2.4/config-guide/varnish/use-varnish-esi.md diff --git a/src/guides/v2.4/config-guide/bootstrap/mage-profiler.md b/src/guides/v2.4/config-guide/bootstrap/mage-profiler.md deleted file mode 120000 index 6e8931891bc..00000000000 --- a/src/guides/v2.4/config-guide/bootstrap/mage-profiler.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/bootstrap/mage-profiler.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/bootstrap/magento-how-to-set.md b/src/guides/v2.4/config-guide/bootstrap/magento-how-to-set.md deleted file mode 120000 index 4500b64b5a6..00000000000 --- a/src/guides/v2.4/config-guide/bootstrap/magento-how-to-set.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/bootstrap/magento-how-to-set.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/bootstrap/magento-modes.md b/src/guides/v2.4/config-guide/bootstrap/magento-modes.md deleted file mode 120000 index 8bcf0a19ac5..00000000000 --- a/src/guides/v2.4/config-guide/bootstrap/magento-modes.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/bootstrap/magento-modes.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cache.md b/src/guides/v2.4/config-guide/cache.md deleted file mode 120000 index 0ab7df84a57..00000000000 --- a/src/guides/v2.4/config-guide/cache.md +++ /dev/null @@ -1 +0,0 @@ -../../v2.3/config-guide/cache.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cache/cache-options.md b/src/guides/v2.4/config-guide/cache/cache-options.md deleted file mode 120000 index 3e80cffe59b..00000000000 --- a/src/guides/v2.4/config-guide/cache/cache-options.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cache/cache-options.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cache/cache-types.md b/src/guides/v2.4/config-guide/cache/cache-types.md deleted file mode 120000 index f80cd8f3ab4..00000000000 --- a/src/guides/v2.4/config-guide/cache/cache-types.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cache/cache-types.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cache/static-content-signing.md b/src/guides/v2.4/config-guide/cache/static-content-signing.md deleted file mode 120000 index 01e41df93cb..00000000000 --- a/src/guides/v2.4/config-guide/cache/static-content-signing.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cache/static-content-signing.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-cache.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-cache.md deleted file mode 120000 index e0c72ba20ce..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-cache.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-cache.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-catalog-sync.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-catalog-sync.md deleted file mode 120000 index 10a71e57679..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-catalog-sync.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-catalog-sync.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-compiler.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-compiler.md deleted file mode 120000 index d3fa0a9e48d..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-compiler.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-compiler.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-export.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-export.md deleted file mode 120000 index 9ddce9a766f..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-export.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-config-mgmt-export.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-import.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-import.md deleted file mode 120000 index da64a902acb..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-import.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-config-mgmt-import.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-parent.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-parent.md deleted file mode 120000 index 1019d9460e4..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-parent.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-config-mgmt-parent.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-set.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-set.md deleted file mode 120000 index 1fd50312474..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-set.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-config-mgmt-set.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-depen.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-depen.md deleted file mode 120000 index d1c535f6426..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-depen.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-depen.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-i18n.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-i18n.md deleted file mode 120000 index e533a70105a..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-i18n.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-i18n.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-index.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-index.md deleted file mode 120000 index 28b7577a931..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-index.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-index.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-layout-xml.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-layout-xml.md deleted file mode 120000 index 9a5c1c73574..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-layout-xml.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-layout-xml.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-less-sass.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-less-sass.md deleted file mode 120000 index f34fd1fcdee..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-less-sass.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-less-sass.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-mode.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-mode.md deleted file mode 120000 index f24e43d57b1..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-mode.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-mode.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-perf-data.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-perf-data.md deleted file mode 120000 index 47014753d1d..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-perf-data.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-perf-data.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-queue.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-queue.md deleted file mode 120000 index 7aa05d94a79..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-queue.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-queue.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-spt-util.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-spt-util.md deleted file mode 120000 index ebd96981acd..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-spt-util.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-spt-util.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-static-deploy-strategies.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-static-deploy-strategies.md deleted file mode 120000 index cfa5a0aa8b1..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-static-deploy-strategies.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-static-deploy-strategies.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-static-view-parent.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-static-view-parent.md deleted file mode 120000 index 0ceabd6fd04..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-static-view-parent.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-static-view-parent.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-test.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-test.md deleted file mode 120000 index f910300d4cc..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-test.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands-test.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands.md deleted file mode 120000 index c15578a1920..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli-subcommands.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli-subcommands.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/config-cli.md b/src/guides/v2.4/config-guide/cli/config-cli.md deleted file mode 120000 index 8d2dc2d9ac9..00000000000 --- a/src/guides/v2.4/config-guide/cli/config-cli.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/config-cli.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cli/logging.md b/src/guides/v2.4/config-guide/cli/logging.md deleted file mode 120000 index 1296a8769f8..00000000000 --- a/src/guides/v2.4/config-guide/cli/logging.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cli/logging.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/config/config-create.md b/src/guides/v2.4/config-guide/config/config-create.md deleted file mode 120000 index c460355e2ab..00000000000 --- a/src/guides/v2.4/config-guide/config/config-create.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/config/config-create.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/config/config-files.md b/src/guides/v2.4/config-guide/config/config-files.md deleted file mode 120000 index 18d684d3a1e..00000000000 --- a/src/guides/v2.4/config-guide/config/config-files.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/config/config-files.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/config/config-magento.md b/src/guides/v2.4/config-guide/config/config-magento.md deleted file mode 120000 index 41d357ff1fa..00000000000 --- a/src/guides/v2.4/config-guide/config/config-magento.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/config/config-magento.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/config/config-php.md b/src/guides/v2.4/config-guide/config/config-php.md deleted file mode 120000 index 603a4eb2066..00000000000 --- a/src/guides/v2.4/config-guide/config/config-php.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/config/config-php.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/config/disable-module-output.md b/src/guides/v2.4/config-guide/config/disable-module-output.md deleted file mode 120000 index 28da51ea6b5..00000000000 --- a/src/guides/v2.4/config-guide/config/disable-module-output.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/config/disable-module-output.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cron/custom-cron-ref.md b/src/guides/v2.4/config-guide/cron/custom-cron-ref.md deleted file mode 120000 index 19f3f79a384..00000000000 --- a/src/guides/v2.4/config-guide/cron/custom-cron-ref.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cron/custom-cron-ref.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cron/custom-cron-tut.md b/src/guides/v2.4/config-guide/cron/custom-cron-tut.md deleted file mode 120000 index 10c1b1c7412..00000000000 --- a/src/guides/v2.4/config-guide/cron/custom-cron-tut.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cron/custom-cron-tut.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/cron/custom-cron.md b/src/guides/v2.4/config-guide/cron/custom-cron.md deleted file mode 120000 index ce47b3fd208..00000000000 --- a/src/guides/v2.4/config-guide/cron/custom-cron.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/cron/custom-cron.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/deployment/index.md b/src/guides/v2.4/config-guide/deployment/index.md deleted file mode 120000 index 93dfa31d49e..00000000000 --- a/src/guides/v2.4/config-guide/deployment/index.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/deployment/index.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/deployment/pipeline/build-system.md b/src/guides/v2.4/config-guide/deployment/pipeline/build-system.md deleted file mode 120000 index 64e344454e1..00000000000 --- a/src/guides/v2.4/config-guide/deployment/pipeline/build-system.md +++ /dev/null @@ -1 +0,0 @@ -../../../../v2.3/config-guide/deployment/pipeline/build-system.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/deployment/pipeline/development-system.md b/src/guides/v2.4/config-guide/deployment/pipeline/development-system.md deleted file mode 120000 index 666b084803e..00000000000 --- a/src/guides/v2.4/config-guide/deployment/pipeline/development-system.md +++ /dev/null @@ -1 +0,0 @@ -../../../../v2.3/config-guide/deployment/pipeline/development-system.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/deployment/pipeline/example/cli.md b/src/guides/v2.4/config-guide/deployment/pipeline/example/cli.md deleted file mode 120000 index 10a1e7dd539..00000000000 --- a/src/guides/v2.4/config-guide/deployment/pipeline/example/cli.md +++ /dev/null @@ -1 +0,0 @@ -../../../../../v2.3/config-guide/deployment/pipeline/example/cli.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/deployment/pipeline/example/index.md b/src/guides/v2.4/config-guide/deployment/pipeline/example/index.md deleted file mode 120000 index 213394fe235..00000000000 --- a/src/guides/v2.4/config-guide/deployment/pipeline/example/index.md +++ /dev/null @@ -1 +0,0 @@ -../../../../../v2.3/config-guide/deployment/pipeline/example/index.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/deployment/pipeline/example/shared-configuration.md b/src/guides/v2.4/config-guide/deployment/pipeline/example/shared-configuration.md deleted file mode 120000 index f4f75400920..00000000000 --- a/src/guides/v2.4/config-guide/deployment/pipeline/example/shared-configuration.md +++ /dev/null @@ -1 +0,0 @@ -../../../../../v2.3/config-guide/deployment/pipeline/example/shared-configuration.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/deployment/pipeline/index.md b/src/guides/v2.4/config-guide/deployment/pipeline/index.md deleted file mode 120000 index 435fd9f8054..00000000000 --- a/src/guides/v2.4/config-guide/deployment/pipeline/index.md +++ /dev/null @@ -1 +0,0 @@ -../../../../v2.3/config-guide/deployment/pipeline/index.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/deployment/pipeline/production-system.md b/src/guides/v2.4/config-guide/deployment/pipeline/production-system.md deleted file mode 120000 index e75a76ac802..00000000000 --- a/src/guides/v2.4/config-guide/deployment/pipeline/production-system.md +++ /dev/null @@ -1 +0,0 @@ -../../../../v2.3/config-guide/deployment/pipeline/production-system.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/deployment/pipeline/technical-details.md b/src/guides/v2.4/config-guide/deployment/pipeline/technical-details.md deleted file mode 120000 index 28c550a3477..00000000000 --- a/src/guides/v2.4/config-guide/deployment/pipeline/technical-details.md +++ /dev/null @@ -1 +0,0 @@ -../../../../v2.3/config-guide/deployment/pipeline/technical-details.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/log/custom-logger-handler.md b/src/guides/v2.4/config-guide/log/custom-logger-handler.md deleted file mode 120000 index 49f0bef1f39..00000000000 --- a/src/guides/v2.4/config-guide/log/custom-logger-handler.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/log/custom-logger-handler.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/log/log-db.md b/src/guides/v2.4/config-guide/log/log-db.md deleted file mode 120000 index c711dd35280..00000000000 --- a/src/guides/v2.4/config-guide/log/log-db.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/log/log-db.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/log/log-intro.md b/src/guides/v2.4/config-guide/log/log-intro.md deleted file mode 120000 index 531e479c0ae..00000000000 --- a/src/guides/v2.4/config-guide/log/log-intro.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/log/log-intro.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/log/log-magento.md b/src/guides/v2.4/config-guide/log/log-magento.md deleted file mode 120000 index 8d5eece88cc..00000000000 --- a/src/guides/v2.4/config-guide/log/log-magento.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/log/log-magento.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/memcache/memcache.md b/src/guides/v2.4/config-guide/memcache/memcache.md deleted file mode 120000 index cb2a2a925fc..00000000000 --- a/src/guides/v2.4/config-guide/memcache/memcache.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/memcache/memcache.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/memcache/memcache_centos.md b/src/guides/v2.4/config-guide/memcache/memcache_centos.md deleted file mode 120000 index 1e51e1ef9a1..00000000000 --- a/src/guides/v2.4/config-guide/memcache/memcache_centos.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/memcache/memcache_centos.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/memcache/memcache_magento.md b/src/guides/v2.4/config-guide/memcache/memcache_magento.md deleted file mode 120000 index da5c6dd1a3c..00000000000 --- a/src/guides/v2.4/config-guide/memcache/memcache_magento.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/memcache/memcache_magento.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/memcache/memcache_ubuntu.md b/src/guides/v2.4/config-guide/memcache/memcache_ubuntu.md deleted file mode 120000 index affc50b6794..00000000000 --- a/src/guides/v2.4/config-guide/memcache/memcache_ubuntu.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/memcache/memcache_ubuntu.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/mq/rabbitmq-overview.md b/src/guides/v2.4/config-guide/mq/rabbitmq-overview.md deleted file mode 120000 index c5f36e123e0..00000000000 --- a/src/guides/v2.4/config-guide/mq/rabbitmq-overview.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/mq/rabbitmq-overview.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/multi-master/multi-master.md b/src/guides/v2.4/config-guide/multi-master/multi-master.md deleted file mode 120000 index bcd9fdf6b26..00000000000 --- a/src/guides/v2.4/config-guide/multi-master/multi-master.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/multi-master/multi-master.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/multi-master/multi-master_manual.md b/src/guides/v2.4/config-guide/multi-master/multi-master_manual.md deleted file mode 120000 index d239178535d..00000000000 --- a/src/guides/v2.4/config-guide/multi-master/multi-master_manual.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/multi-master/multi-master_manual.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/multi-master/multi-master_masterdb.md b/src/guides/v2.4/config-guide/multi-master/multi-master_masterdb.md deleted file mode 120000 index e3e672e5844..00000000000 --- a/src/guides/v2.4/config-guide/multi-master/multi-master_masterdb.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/multi-master/multi-master_masterdb.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/multi-master/multi-master_slavedb.md b/src/guides/v2.4/config-guide/multi-master/multi-master_slavedb.md deleted file mode 120000 index aab68d93f17..00000000000 --- a/src/guides/v2.4/config-guide/multi-master/multi-master_slavedb.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/multi-master/multi-master_slavedb.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/multi-master/multi-master_verify.md b/src/guides/v2.4/config-guide/multi-master/multi-master_verify.md deleted file mode 120000 index c55819eb226..00000000000 --- a/src/guides/v2.4/config-guide/multi-master/multi-master_verify.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/multi-master/multi-master_verify.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/multi-site/change-increment-id.md b/src/guides/v2.4/config-guide/multi-site/change-increment-id.md deleted file mode 120000 index 4a15c97796d..00000000000 --- a/src/guides/v2.4/config-guide/multi-site/change-increment-id.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/multi-site/change-increment-id.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/multi-site/ms_apache.md b/src/guides/v2.4/config-guide/multi-site/ms_apache.md deleted file mode 120000 index 47bc65b17f2..00000000000 --- a/src/guides/v2.4/config-guide/multi-site/ms_apache.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/multi-site/ms_apache.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/multi-site/ms_nginx.md b/src/guides/v2.4/config-guide/multi-site/ms_nginx.md deleted file mode 120000 index 7cecc46c29b..00000000000 --- a/src/guides/v2.4/config-guide/multi-site/ms_nginx.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/multi-site/ms_nginx.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/multi-site/ms_websites.md b/src/guides/v2.4/config-guide/multi-site/ms_websites.md deleted file mode 120000 index f02021686af..00000000000 --- a/src/guides/v2.4/config-guide/multi-site/ms_websites.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/multi-site/ms_websites.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/prod/config-reference-b2b.md b/src/guides/v2.4/config-guide/prod/config-reference-b2b.md deleted file mode 120000 index 4b328abd79a..00000000000 --- a/src/guides/v2.4/config-guide/prod/config-reference-b2b.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/prod/config-reference-b2b.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/prod/config-reference-configphp.md b/src/guides/v2.4/config-guide/prod/config-reference-configphp.md deleted file mode 120000 index f2b99beedc4..00000000000 --- a/src/guides/v2.4/config-guide/prod/config-reference-configphp.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/prod/config-reference-configphp.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/prod/config-reference-var-name.md b/src/guides/v2.4/config-guide/prod/config-reference-var-name.md deleted file mode 120000 index ee0716e1c2c..00000000000 --- a/src/guides/v2.4/config-guide/prod/config-reference-var-name.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/prod/config-reference-var-name.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/prod/img/magento2-system-configuration.png b/src/guides/v2.4/config-guide/prod/img/magento2-system-configuration.png deleted file mode 120000 index 4ad2d93fb93..00000000000 --- a/src/guides/v2.4/config-guide/prod/img/magento2-system-configuration.png +++ /dev/null @@ -1 +0,0 @@ -../../../../v2.3/config-guide/prod/img/magento2-system-configuration.png \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/prod/prod_file-sys-perms.md b/src/guides/v2.4/config-guide/prod/prod_file-sys-perms.md deleted file mode 120000 index 559dd560746..00000000000 --- a/src/guides/v2.4/config-guide/prod/prod_file-sys-perms.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/prod/prod_file-sys-perms.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/redis/config-redis.md b/src/guides/v2.4/config-guide/redis/config-redis.md deleted file mode 120000 index bab3b09c094..00000000000 --- a/src/guides/v2.4/config-guide/redis/config-redis.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/redis/config-redis.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/redis/redis-session.md b/src/guides/v2.4/config-guide/redis/redis-session.md deleted file mode 120000 index 4fde2befc18..00000000000 --- a/src/guides/v2.4/config-guide/redis/redis-session.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/redis/redis-session.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/revert-split-database.md b/src/guides/v2.4/config-guide/revert-split-database.md deleted file mode 120000 index b007be11fd4..00000000000 --- a/src/guides/v2.4/config-guide/revert-split-database.md +++ /dev/null @@ -1 +0,0 @@ -../../v2.3/config-guide/revert-split-database.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/secy/secy-cron.md b/src/guides/v2.4/config-guide/secy/secy-cron.md deleted file mode 120000 index e959231ab19..00000000000 --- a/src/guides/v2.4/config-guide/secy/secy-cron.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/secy/secy-cron.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/secy/secy-headers.md b/src/guides/v2.4/config-guide/secy/secy-headers.md deleted file mode 120000 index 39e74349d68..00000000000 --- a/src/guides/v2.4/config-guide/secy/secy-headers.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/secy/secy-headers.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/secy/secy-xframe.md b/src/guides/v2.4/config-guide/secy/secy-xframe.md deleted file mode 120000 index f1d44f9d29f..00000000000 --- a/src/guides/v2.4/config-guide/secy/secy-xframe.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/secy/secy-xframe.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/secy/secy.md b/src/guides/v2.4/config-guide/secy/secy.md deleted file mode 120000 index 418b96dd186..00000000000 --- a/src/guides/v2.4/config-guide/secy/secy.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/secy/secy.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/varnish/config-varnish-final.md b/src/guides/v2.4/config-guide/varnish/config-varnish-final.md deleted file mode 120000 index f6cb37c12e0..00000000000 --- a/src/guides/v2.4/config-guide/varnish/config-varnish-final.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/varnish/config-varnish-final.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/varnish/config-varnish-magento.md b/src/guides/v2.4/config-guide/varnish/config-varnish-magento.md deleted file mode 120000 index 61363d592fa..00000000000 --- a/src/guides/v2.4/config-guide/varnish/config-varnish-magento.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/varnish/config-varnish-magento.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/varnish/config-varnish.md b/src/guides/v2.4/config-guide/varnish/config-varnish.md deleted file mode 120000 index f501cf9986b..00000000000 --- a/src/guides/v2.4/config-guide/varnish/config-varnish.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/varnish/config-varnish.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/varnish/tshoot-varnish-503.md b/src/guides/v2.4/config-guide/varnish/tshoot-varnish-503.md deleted file mode 120000 index 39892a4f765..00000000000 --- a/src/guides/v2.4/config-guide/varnish/tshoot-varnish-503.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/varnish/tshoot-varnish-503.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/varnish/use-multiple-varnish-cache.md b/src/guides/v2.4/config-guide/varnish/use-multiple-varnish-cache.md deleted file mode 120000 index 94dbbeb2686..00000000000 --- a/src/guides/v2.4/config-guide/varnish/use-multiple-varnish-cache.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/varnish/use-multiple-varnish-cache.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/varnish/use-varnish-cache-how.md b/src/guides/v2.4/config-guide/varnish/use-varnish-cache-how.md deleted file mode 120000 index f6e4f8ac646..00000000000 --- a/src/guides/v2.4/config-guide/varnish/use-varnish-cache-how.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/varnish/use-varnish-cache-how.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/varnish/use-varnish-cache.md b/src/guides/v2.4/config-guide/varnish/use-varnish-cache.md deleted file mode 120000 index 67a7bd43812..00000000000 --- a/src/guides/v2.4/config-guide/varnish/use-varnish-cache.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/varnish/use-varnish-cache.md \ No newline at end of file diff --git a/src/guides/v2.4/config-guide/varnish/use-varnish-esi.md b/src/guides/v2.4/config-guide/varnish/use-varnish-esi.md deleted file mode 120000 index 8905bd939ca..00000000000 --- a/src/guides/v2.4/config-guide/varnish/use-varnish-esi.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/varnish/use-varnish-esi.md \ No newline at end of file From 7ddd22df28a210f3bf0326ee63720b3d4cc24a45 Mon Sep 17 00:00:00 2001 From: Heather Guthrie Date: Fri, 29 Jul 2022 10:16:16 -0500 Subject: [PATCH 102/491] one missed --- src/guides/v2.4/config-guide/bootstrap/mage-dirs.md | 1 - 1 file changed, 1 deletion(-) delete mode 120000 src/guides/v2.4/config-guide/bootstrap/mage-dirs.md diff --git a/src/guides/v2.4/config-guide/bootstrap/mage-dirs.md b/src/guides/v2.4/config-guide/bootstrap/mage-dirs.md deleted file mode 120000 index 960f286e4c1..00000000000 --- a/src/guides/v2.4/config-guide/bootstrap/mage-dirs.md +++ /dev/null @@ -1 +0,0 @@ -../../../v2.3/config-guide/bootstrap/mage-dirs.md \ No newline at end of file From df7c1e4d96a4284bb906c6bf55674fd049bf083f Mon Sep 17 00:00:00 2001 From: Heather Guthrie Date: Fri, 29 Jul 2022 13:50:43 -0500 Subject: [PATCH 103/491] Replace topics after removing symlinks 85 removed earlier, 85 added --- .../v2.4/config-guide/bootstrap/mage-dirs.md | 49 ++ .../config-guide/bootstrap/mage-profiler.md | 76 ++ .../bootstrap/magento-how-to-set.md | 180 +++++ .../config-guide/bootstrap/magento-modes.md | 118 +++ src/guides/v2.4/config-guide/cache.md | 38 + .../v2.4/config-guide/cache/cache-options.md | 27 + .../v2.4/config-guide/cache/cache-types.md | 76 ++ .../cache/static-content-signing.md | 66 ++ .../cli/config-cli-subcommands-cache.md | 166 +++++ .../config-cli-subcommands-catalog-sync.md | 54 ++ .../cli/config-cli-subcommands-compiler.md | 57 ++ ...nfig-cli-subcommands-config-mgmt-export.md | 51 ++ ...nfig-cli-subcommands-config-mgmt-import.md | 131 ++++ ...nfig-cli-subcommands-config-mgmt-parent.md | 8 + .../config-cli-subcommands-config-mgmt-set.md | 290 ++++++++ .../cli/config-cli-subcommands-depen.md | 122 +++ .../cli/config-cli-subcommands-i18n.md | 344 +++++++++ .../cli/config-cli-subcommands-index.md | 274 +++++++ .../cli/config-cli-subcommands-layout-xml.md | 33 + .../cli/config-cli-subcommands-less-sass.md | 85 +++ .../cli/config-cli-subcommands-mode.md | 162 ++++ .../cli/config-cli-subcommands-perf-data.md | 489 ++++++++++++ .../cli/config-cli-subcommands-queue.md | 20 + .../cli/config-cli-subcommands-spt-util.md | 130 ++++ ...li-subcommands-static-deploy-strategies.md | 165 +++++ ...nfig-cli-subcommands-static-view-parent.md | 8 + .../cli/config-cli-subcommands-test.md | 56 ++ .../cli/config-cli-subcommands.md | 64 ++ .../v2.4/config-guide/cli/config-cli.md | 24 + src/guides/v2.4/config-guide/cli/logging.md | 118 +++ .../v2.4/config-guide/config/config-create.md | 142 ++++ .../v2.4/config-guide/config/config-files.md | 142 ++++ .../config-guide/config/config-magento.md | 16 + .../v2.4/config-guide/config/config-php.md | 86 +++ .../config/disable-module-output.md | 99 +++ .../v2.4/config-guide/cron/custom-cron-ref.md | 144 ++++ .../v2.4/config-guide/cron/custom-cron-tut.md | 318 ++++++++ .../v2.4/config-guide/cron/custom-cron.md | 26 + .../v2.4/config-guide/deployment/index.md | 41 + .../deployment/pipeline/build-system.md | 117 +++ .../deployment/pipeline/development-system.md | 31 + .../deployment/pipeline/example/cli.md | 181 +++++ .../deployment/pipeline/example/index.md | 9 + .../pipeline/example/shared-configuration.md | 87 +++ .../config-guide/deployment/pipeline/index.md | 43 ++ .../deployment/pipeline/production-system.md | 99 +++ .../deployment/pipeline/technical-details.md | 328 ++++++++ .../config-guide/log/custom-logger-handler.md | 24 + src/guides/v2.4/config-guide/log/log-db.md | 53 ++ src/guides/v2.4/config-guide/log/log-intro.md | 34 + .../v2.4/config-guide/log/log-magento.md | 76 ++ .../v2.4/config-guide/memcache/memcache.md | 23 + .../config-guide/memcache/memcache_centos.md | 206 +++++ .../config-guide/memcache/memcache_magento.md | 75 ++ .../config-guide/memcache/memcache_ubuntu.md | 158 ++++ .../v2.4/config-guide/mq/rabbitmq-overview.md | 27 + .../config-guide/multi-master/multi-master.md | 96 +++ .../multi-master/multi-master_manual.md | 701 ++++++++++++++++++ .../multi-master/multi-master_masterdb.md | 31 + .../multi-master/multi-master_slavedb.md | 125 ++++ .../multi-master/multi-master_verify.md | 44 ++ .../multi-site/change-increment-id.md | 81 ++ .../v2.4/config-guide/multi-site/ms_apache.md | 90 +++ .../v2.4/config-guide/multi-site/ms_nginx.md | 266 +++++++ .../config-guide/multi-site/ms_websites.md | 188 +++++ .../config-guide/prod/config-reference-b2b.md | 23 + .../prod/config-reference-configphp.md | 119 +++ .../prod/config-reference-var-name.md | 265 +++++++ .../img/magento2-system-configuration.png | Bin 0 -> 155695 bytes .../config-guide/prod/prod_file-sys-perms.md | 206 +++++ .../v2.4/config-guide/redis/config-redis.md | 69 ++ .../v2.4/config-guide/redis/redis-session.md | 106 +++ .../config-guide/revert-split-database.md | 66 ++ .../v2.4/config-guide/secy/secy-cron.md | 304 ++++++++ .../v2.4/config-guide/secy/secy-headers.md | 42 ++ .../v2.4/config-guide/secy/secy-xframe.md | 52 ++ src/guides/v2.4/config-guide/secy/secy.md | 55 ++ .../varnish/config-varnish-final.md | 84 +++ .../varnish/config-varnish-magento.md | 123 +++ .../config-guide/varnish/config-varnish.md | 122 +++ .../varnish/tshoot-varnish-503.md | 80 ++ .../varnish/use-multiple-varnish-cache.md | 31 + .../varnish/use-varnish-cache-how.md | 65 ++ .../config-guide/varnish/use-varnish-cache.md | 56 ++ .../config-guide/varnish/use-varnish-esi.md | 55 ++ 85 files changed, 9611 insertions(+) create mode 100644 src/guides/v2.4/config-guide/bootstrap/mage-dirs.md create mode 100644 src/guides/v2.4/config-guide/bootstrap/mage-profiler.md create mode 100644 src/guides/v2.4/config-guide/bootstrap/magento-how-to-set.md create mode 100644 src/guides/v2.4/config-guide/bootstrap/magento-modes.md create mode 100644 src/guides/v2.4/config-guide/cache.md create mode 100644 src/guides/v2.4/config-guide/cache/cache-options.md create mode 100644 src/guides/v2.4/config-guide/cache/cache-types.md create mode 100644 src/guides/v2.4/config-guide/cache/static-content-signing.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-cache.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-catalog-sync.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-compiler.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-export.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-import.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-parent.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-set.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-depen.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-i18n.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-index.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-layout-xml.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-less-sass.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-mode.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-perf-data.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-queue.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-spt-util.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-static-deploy-strategies.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-static-view-parent.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands-test.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli-subcommands.md create mode 100644 src/guides/v2.4/config-guide/cli/config-cli.md create mode 100644 src/guides/v2.4/config-guide/cli/logging.md create mode 100644 src/guides/v2.4/config-guide/config/config-create.md create mode 100644 src/guides/v2.4/config-guide/config/config-files.md create mode 100644 src/guides/v2.4/config-guide/config/config-magento.md create mode 100644 src/guides/v2.4/config-guide/config/config-php.md create mode 100644 src/guides/v2.4/config-guide/config/disable-module-output.md create mode 100644 src/guides/v2.4/config-guide/cron/custom-cron-ref.md create mode 100644 src/guides/v2.4/config-guide/cron/custom-cron-tut.md create mode 100644 src/guides/v2.4/config-guide/cron/custom-cron.md create mode 100644 src/guides/v2.4/config-guide/deployment/index.md create mode 100644 src/guides/v2.4/config-guide/deployment/pipeline/build-system.md create mode 100644 src/guides/v2.4/config-guide/deployment/pipeline/development-system.md create mode 100644 src/guides/v2.4/config-guide/deployment/pipeline/example/cli.md create mode 100644 src/guides/v2.4/config-guide/deployment/pipeline/example/index.md create mode 100644 src/guides/v2.4/config-guide/deployment/pipeline/example/shared-configuration.md create mode 100644 src/guides/v2.4/config-guide/deployment/pipeline/index.md create mode 100644 src/guides/v2.4/config-guide/deployment/pipeline/production-system.md create mode 100644 src/guides/v2.4/config-guide/deployment/pipeline/technical-details.md create mode 100644 src/guides/v2.4/config-guide/log/custom-logger-handler.md create mode 100644 src/guides/v2.4/config-guide/log/log-db.md create mode 100644 src/guides/v2.4/config-guide/log/log-intro.md create mode 100644 src/guides/v2.4/config-guide/log/log-magento.md create mode 100644 src/guides/v2.4/config-guide/memcache/memcache.md create mode 100644 src/guides/v2.4/config-guide/memcache/memcache_centos.md create mode 100644 src/guides/v2.4/config-guide/memcache/memcache_magento.md create mode 100644 src/guides/v2.4/config-guide/memcache/memcache_ubuntu.md create mode 100644 src/guides/v2.4/config-guide/mq/rabbitmq-overview.md create mode 100644 src/guides/v2.4/config-guide/multi-master/multi-master.md create mode 100644 src/guides/v2.4/config-guide/multi-master/multi-master_manual.md create mode 100644 src/guides/v2.4/config-guide/multi-master/multi-master_masterdb.md create mode 100644 src/guides/v2.4/config-guide/multi-master/multi-master_slavedb.md create mode 100644 src/guides/v2.4/config-guide/multi-master/multi-master_verify.md create mode 100644 src/guides/v2.4/config-guide/multi-site/change-increment-id.md create mode 100644 src/guides/v2.4/config-guide/multi-site/ms_apache.md create mode 100644 src/guides/v2.4/config-guide/multi-site/ms_nginx.md create mode 100644 src/guides/v2.4/config-guide/multi-site/ms_websites.md create mode 100644 src/guides/v2.4/config-guide/prod/config-reference-b2b.md create mode 100644 src/guides/v2.4/config-guide/prod/config-reference-configphp.md create mode 100644 src/guides/v2.4/config-guide/prod/config-reference-var-name.md create mode 100644 src/guides/v2.4/config-guide/prod/img/magento2-system-configuration.png create mode 100644 src/guides/v2.4/config-guide/prod/prod_file-sys-perms.md create mode 100644 src/guides/v2.4/config-guide/redis/config-redis.md create mode 100644 src/guides/v2.4/config-guide/redis/redis-session.md create mode 100644 src/guides/v2.4/config-guide/revert-split-database.md create mode 100644 src/guides/v2.4/config-guide/secy/secy-cron.md create mode 100644 src/guides/v2.4/config-guide/secy/secy-headers.md create mode 100644 src/guides/v2.4/config-guide/secy/secy-xframe.md create mode 100644 src/guides/v2.4/config-guide/secy/secy.md create mode 100644 src/guides/v2.4/config-guide/varnish/config-varnish-final.md create mode 100644 src/guides/v2.4/config-guide/varnish/config-varnish-magento.md create mode 100644 src/guides/v2.4/config-guide/varnish/config-varnish.md create mode 100644 src/guides/v2.4/config-guide/varnish/tshoot-varnish-503.md create mode 100644 src/guides/v2.4/config-guide/varnish/use-multiple-varnish-cache.md create mode 100644 src/guides/v2.4/config-guide/varnish/use-varnish-cache-how.md create mode 100644 src/guides/v2.4/config-guide/varnish/use-varnish-cache.md create mode 100644 src/guides/v2.4/config-guide/varnish/use-varnish-esi.md diff --git a/src/guides/v2.4/config-guide/bootstrap/mage-dirs.md b/src/guides/v2.4/config-guide/bootstrap/mage-dirs.md new file mode 100644 index 00000000000..0307ff90006 --- /dev/null +++ b/src/guides/v2.4/config-guide/bootstrap/mage-dirs.md @@ -0,0 +1,49 @@ +--- +group: configuration-guide +title: Customize base directory paths (MAGE_DIRS) +functional_areas: + - Configuration + - System + - Setup +--- + +## Introduction to Magento base directory paths {#dirs-introduction} + +The `MAGE_DIRS` environment variable enables you to specify custom base directory paths and fragments of base URLs that are used by the Magento application to build absolute paths to various files or for generating URLs. + +## Set MAGE_DIRS {#dirs-set} + +Specify an associative array where keys are constants from [\\Magento\\App\\Filesystem\\DirectoryList]({{ site.mage2bloburl }}/{{ page.guide_version }}/lib/internal/Magento/Framework/App/Filesystem/DirectoryList.php) and values are absolute paths of directories or their [URL](https://glossary.magento.com/url) paths, respectively. + +You can set `MAGE_DIRS` in any of the following ways: + +* [Set the value of bootstrap parameters]({{ page.baseurl }}/config-guide/bootstrap/magento-how-to-set.html) +* Use a custom entry point script such as the following: + + ```php + [DirectoryList::URL_PATH => ''], + DirectoryList::MEDIA => [DirectoryList::PATH => '/mnt/nfs/media', DirectoryList::URL_PATH => ''], + DirectoryList::STATIC_VIEW => [DirectoryList::URL_PATH => 'static'], + DirectoryList::UPLOAD => [DirectoryList::URL_PATH => '/mnt/nfs/media/upload'], + DirectoryList::CACHE => [DirectoryList::PATH => '/mnt/nfs/cache'], + ]; + $bootstrap = Bootstrap::create(BP, $params); + /** @var Http $app */ + $app = $bootstrap->createApplication(Http::class); + $bootstrap->run($app); + ``` + +The preceding example sets paths for `[cache]` and `[media]` directories to `/mnt/nfs/cache` and `/mnt/nfs/media`, respectively. diff --git a/src/guides/v2.4/config-guide/bootstrap/mage-profiler.md b/src/guides/v2.4/config-guide/bootstrap/mage-profiler.md new file mode 100644 index 00000000000..b49e1891c78 --- /dev/null +++ b/src/guides/v2.4/config-guide/bootstrap/mage-profiler.md @@ -0,0 +1,76 @@ +--- +group: configuration-guide +title: Enable profiling (MAGE_PROFILER) +functional_areas: + - Configuration + - System + - Setup +--- + +Magento profiling enables you to: + +- Enable a built-in profiler. + + You can use a built-in profiler with Magento to perform tasks such as analyzing performance. The nature of profiling depends on the analytical tools you use. We support multiple formats, including HTML. When you enable the profiler, a `var/profiler.flag` file generates indicating the profiler is enabled and configurations. When disabled, this file is deleted. + +- Display dependency graphs on a Magento page. A *dependency graph* is a list of object dependencies and all of their dependencies, and all the dependencies for those dependencies, and so on. + + You should be particularly interested in the list of *unused dependencies*, which are objects that were created because they were requested in some constructor, but were never used (that is, none of their methods were called). As a result, processor time and memory spent to create these dependencies are wasted. + +Magento provides the base functionality in [Magento\\Framework\\Profiler]({{ site.mage2bloburl }}/{{ page.guide_version }}/lib/internal/Magento/Framework/Profiler.php). + +You can enable and configure the profiler using a [MAGE_PROFILER](#variable) variable or the [command line](#cli). + +## Set MAGE_PROFILER {#variable} + +You can set the value of `MAGE_PROFILER` in any of the ways discussed in [Set the value of bootstrap parameters]({{ page.baseurl }}/config-guide/bootstrap/magento-how-to-set.html). + +`MAGE_PROFILER` supports the following values: + +- `1` to enable a specific profiler's output. + + You can also use one of the following values to enable a specific profiler: + + - `csvfile` which uses [Magento\\Framework\\Profiler\\Driver\\Standard\\Output\\Csvfile]({{ site.mage2bloburl }}/{{ page.guide_version }}/lib/internal/Magento/Framework/Profiler/Driver/Standard/Output/Csvfile.php) + - Any other value (except `2`), including an empty value, which uses [Magento\\Framework\\Profiler\\Driver\\Standard\\Output\\Html]({{ site.mage2bloburl }}/{{ page.guide_version }}/lib/internal/Magento/Framework/Profiler/Driver/Standard/Output/Html.php) + +- `2` to enable dependency graphs. + + Dependency graphs typically display at the bottom of a page. The following figure shows portion of the output: + + ![]({{ site.baseurl }}/common/images/config_depend-graphs.png) + +## CLI commands {#cli} + +You can enable or disable the profiler using CLI commands: + +- `dev:profiler:enable ` enables the profiler with `type` of `html` (default) or `csvfile`. When enabled, a flagfile `var/profiler.flag` is created. +- `dev:profiler:disable` disables the profiler. When disabled, the flagfile `var/profiler.flag` is removed. + +To enable dependency graphs, use the variable option. + +To enable or disable the profiler: + +1. Log in to your Magento server. +1. Change to your Magento installation directory. +1. As the file system owner, enter the following command to configure the profiler: + + To enable the profiler using type `html` and create a flagfile: + + ```bash + bin/magento dev:profiler:enable html + ``` + + To enable the profiler using type `csvfile` and create a flagfile: + + ```bash + bin/magento dev:profiler:enable csvfile + ``` + + The output will be saved to `/var/log/profiler.csv`. The `profiler.csv` will be overridden on each page refresh. + + To disable the profiler and remove the flagfile: + + ```bash + bin/magento dev:profiler:disable + ``` diff --git a/src/guides/v2.4/config-guide/bootstrap/magento-how-to-set.md b/src/guides/v2.4/config-guide/bootstrap/magento-how-to-set.md new file mode 100644 index 00000000000..07dddbde286 --- /dev/null +++ b/src/guides/v2.4/config-guide/bootstrap/magento-how-to-set.md @@ -0,0 +1,180 @@ +--- +group: configuration-guide +title: Set the value of bootstrap parameters +functional_areas: + - Configuration + - System + - Setup +--- + +## Overview of setting bootstrap parameter values {#config-bootparam-overview} + +This topic discusses how to set the values of Magento application bootstrap parameters. [More information about Magento application bootstrapping]({{ page.baseurl }}/config-guide/bootstrap/magento-bootstrap.html). + +The following table discusses the bootstrap parameters you can set: + +| Bootstrap parameter | Description | +| ------------------- | -------------------------------------------- | +| MAGE_DIRS | Specifies custom directory and URL paths | +| MAGE_PROFILER | Enables dependency graphs and HTML profiling | + +{:.bs-callout-info} + +* Not all bootstrap parameters are documented at this time. +* You now set the Magento mode (developer, default, production) using the [`magento deploy:mode:set {mode}`]({{ page.baseurl }}/config-guide/cli/config-cli-subcommands-mode.html) command. + +## Specifying a parameter value using an environment variable {#mode-specify-var} + +This section discusses how to set the values of bootstrap parameters using environment variables. + +### Set the mode using an environment variable {#config-bootparam-mode} + +You can specify Magento bootstrap variables as system-wide environment variables, which enables all processes to use them. + +For example, you can use the `MAGE_PROFILER` system environment variable to specify a mode as follows: + +```terminal +MAGE_PROFILER={firebug|csv|} +``` + +Set the variable using a shell-specific command. Because shells have differing syntax, consult a reference like [unix.stackexchange.com](http://unix.stackexchange.com/questions/117467/how-to-permanently-set-environmental-variables). + +Bash shell example for CentOS: + +```bash +export MAGE_PROFILER=firebug +``` + +{:.bs-callout-info} +If a `PHP Fatal error` displays in the browser after you set a profiler value, restart your web server. The reason might be related to [PHP](https://glossary.magento.com/php) bytecode caching, which caches bytecodes and PHP classpaths. + +## Specifying a parameter value {#mode-specify-web} + +This section discusses how to specify the mode for either Apache or [nginx](https://glossary.magento.com/nginx). + +See one of the following sections for more information: + +* [Specify a variable using an nginx setting](#mode-specify-web-nginx) +* [Specify a variable using .htaccess (Apache only)](#mode-specify-web-htaccess) +* [Specify a variable using an Apache setting](#mode-specify-web-apache) + +### Specify a variable using an nginx setting {#mode-specify-web-nginx} + +See the [nginx sample configuration]({{ site.mage2bloburl }}/{{ page.guide_version }}/nginx.conf.sample#L16) on GitHub. + +### Specify a variable using .htaccess (Apache only) {#mode-specify-web-htaccess} + +One way to set the Magento mode is by editing `.htaccess`. This way, you don't have to change Apache settings. + +You can modify `.htaccess` in any of the following locations, depending on your entry point to the Magento application: + +* `/.htaccess` +* `/pub/.htaccess` + +To set a variable: + +1. Open any of the preceding files in a text editor and either add or uncomment the desired setting. + + For example, to specify a [mode]({{ page.baseurl }}/config-guide/bootstrap/magento-modes.html), uncomment the following: + + ```conf + # SetEnv MAGE_PROFILER firebug + ``` + +1. Set the value of `MAGE_PROFILER` to any of the following: + + ```terminal + firebug + csvfile + + ``` + +1. Save your changes to `.htaccess`; you don't need to restart Apache for the change to take effect. + +### Specify a variable using an Apache setting {#mode-specify-web-apache} + +The Apache web server supports setting the Magento mode using `mod_env` directives. + +The Apache `mod_env` directive is slightly different in [version 2.2](http://httpd.apache.org/docs/2.2/mod/mod_env.html#setenv) and [version 2.4](http://httpd.apache.org/docs/2.4/mod/mod_env.html#setenv). + +The procedures that follows show how to set the Magento mode in an Apache virtual host. This is not the only way to use `mod_env` directives; consult the Apache documentation for details. + +* [Specify a bootstrap variable for Apache on Ubuntu](#mode-specify-ubuntu) +* [Specify a bootstrap variable for Apache on CentOS](#mode-specify-centos) + +#### Specify a bootstrap variable for Apache on Ubuntu {#mode-specify-ubuntu} + +This section assumes you've already set up your virtual host. If you have not, consult a resource such as [this DigitalOcean tutorial](https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-ubuntu-14-04-lts). + +To set a Magento bootstrap variable using your web server's environment: + +1. As a user with `root` privileges, open your virtual host configuration file in a text editor. + + For example, if your virtual host is named `my.magento`, + + * Apache 2.4: `vim /etc/apache2/sites-available/my.magento.conf` + * Apache 2.2: `vim /etc/apache2/sites-available/my.magento` + +1. Anywhere in the virtual host configuration, add the following line: + + ```conf + SetEnv "" "" + ``` + + For example, + + ```conf + SetEnv "MAGE_PROFILER" "firebug" + ``` + +1. Save your changes and exit the text editor. +1. Enable your virtual host if you haven't already done so: + + ```bash + a2ensite + ``` + + For example, + + ```bash + a2ensite my.magento.conf + ``` + +1. Restart the web server: + + * Ubuntu: `service apache2 restart` + * CentOS: `service httpd restart` + +#### Specify a bootstrap variable for Apache on CentOS {#mode-specify-centos} + +This section assumes you've already set up your virtual host. If you have not, consult a resource such as [this DigitalOcean tutorial](https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-centos-6). + +To set a Magento bootstrap variable using your web server's environment: + +1. As a user with `root` privileges, open `/etc/httpd/conf/httpd.conf` in a text editor. + +1. Anywhere in the virtual host configuration, add the following line: + + ```conf + SetEnv "" "" + ``` + + For example, + + ```conf + SetEnv "MAGE_PROFILER" "firebug" + ``` + +1. Save your changes and exit the text editor. + +After setting the mode, restart the web server: + +* Ubuntu: `service apache2 restart` +* CentOS: `service httpd restart` + +{:.ref-header} +Related topics + +* [Customize base directory paths (MAGE_DIRS)]({{ page.baseurl }}/config-guide/bootstrap/mage-dirs.html) +* [Set the Magento mode]({{ page.baseurl }}/config-guide/cli/config-cli-subcommands-mode.html) +* [Enable an dependency graphs and built-in profiler (MAGE_PROFILER)]({{ page.baseurl }}/config-guide/bootstrap/mage-profiler.html) diff --git a/src/guides/v2.4/config-guide/bootstrap/magento-modes.md b/src/guides/v2.4/config-guide/bootstrap/magento-modes.md new file mode 100644 index 00000000000..37b3d0a0304 --- /dev/null +++ b/src/guides/v2.4/config-guide/bootstrap/magento-modes.md @@ -0,0 +1,118 @@ +--- +group: configuration-guide +title: About application modes +functional_areas: + - Configuration + - System + - Setup +--- + +You can run Magento in any of the following *modes*: + + + + + + + + + + + + + + + + + + + + + + + + +
Mode nameDescription
default

Enables you to deploy the Magento application on a single server without changing any settings. However, default mode is not optimized for production.

+

To deploy the Magento application on more than one server or to optimize it for production, change to one of the other modes.

+
  • Static view file caching is enabled
  • +
  • Exceptions are not displayed to the user; instead, exceptions are written to log files.
  • +
  • Hides custom X-Magento-* HTTP request and response headers
+
developer

Intended for development only, this mode:

+
  • Disables static view file caching
  • +
  • Provides verbose logging
  • +
  • Enables automatic code compilation
  • +
  • Enables enhanced debugging
  • +
  • Shows custom X-Magento-* HTTP request and response headers
  • +
  • Results in the slowest performance
  • +
  • Shows errors on the frontend
+
production

Intended for deployment on a production system, this mode:

+
  • Does not show exceptions to the user (exceptions are written to logs only).
  • +
  • Serves static view files from cache only.
  • +
  • Prevents automatic code file compilation. New or updated files are not written to the file system.
  • +
  • Does not allow you to enable or disable cache types in Admin. More information about enabling and disabling the cache.
  • +
  • Some fields, such as the Advanced and Developer system configuration sections in the Admin, are not available in production mode.
  • +
maintenance

Intended to prevent access to a site while it is being updated or reconfigured, this mode:

+
  • Redirects site visitors to a default Service Temporarily Unavailable page.
  • +
  • When the site is in maintenance mode, the var/ directory contains the .maintenance.flag file.
  • +
  • You can configure maintenance mode to allow visitor access from a specified list of IP addresses.
  • +
+ + {:.bs-callout-info} +[{{site.data.var.ece}}]({{ site.baseurl }}/cloud/bk-cloud.html) supports only the production and maintenance modes. + +## Default mode + +As its name implies, default mode is how Magento operates if no other mode is specified. Default mode enables you to deploy the Magento application on a single server without changing any settings. However, default mode is not as optimized for production as is production mode. + +To deploy the Magento application on more than one server or to optimize it for production, change to one of the other modes. + +In default mode: + +- Errors are logged to the file reports at server, and never shown to a user +- Static view files are cached +- Default mode is not optimized for a production environment, primarily because of the adverse performance impact of [static files](https://glossary.magento.com/static-files) being dynamically generated rather than [materialized](https://en.wikipedia.org/wiki/Materialized_view). In other words, creating static files and caching them has a greater performance impact than generating them using the static files creation tool. + +For more information, see [Set the Magento mode]({{ page.baseurl }}/config-guide/cli/config-cli-subcommands-mode.html). + +## Developer mode + +Run Magento in developer mode when you are extending or customizing it. + +In developer mode: + +- Static view files are not cached; they are written to the Magento `pub/static` directory every time they're called +- Uncaught exceptions display in the browser +- System logging in `var/report` is verbose +- An [exception](https://glossary.magento.com/exception) is thrown in the error handler, rather than being logged +- An exception is thrown when an [event](https://glossary.magento.com/event) subscriber cannot be invoked + +For more information, see [Set the Magento mode]({{ page.baseurl }}/config-guide/cli/config-cli-subcommands-mode.html). + +## Production mode {#production-mode} + +Run Magento in production mode when it is deployed to a production server. After optimizing the server environment, such as the database and web server, you should run the [static view files deployment tool]({{page.baseurl}}/config-guide/cli/config-cli-subcommands-static-view.html) to write static view files to the Magento `pub/static` directory. + +This improves performance by providing all necessary static files at deployment instead of forcing Magento to dynamically locate and copy (materialize) static files on demand during run time. + +In production mode: + +- Static view files are not materialized, and URLs for them are composed on the fly. Static view files are served from the [cache](https://glossary.magento.com/cache) only. +- Errors are logged to the file system and are never displayed to the user. +- You can enable and disable cache types only using the [command line]({{ page.baseurl }}/config-guide/cli/config-cli-subcommands-cache.html#config-cli-subcommands-cache-en). + + You _cannot_ enable or disable cache types using the Admin + +## Maintenance mode + +Run Magento in maintenance mode to take your site offline while you complete maintenance, upgrade, or configuration tasks. In maintenance mode, the site redirects visitors to a default `Service Temporarily Unavailable` page. + +You can create a [custom maintenance page](https://experienceleague.adobe.com/docs/commerce-operations/upgrade-guide/troubleshooting/maintenance-mode-options.html), manually enable and disable maintenance mode, and configure maintenance mode to allow visitors from authorized IP addresses to view the store normally. See [enable and disable maintenance mode]({{ page.baseurl }}/install-gde/install/cli/install-cli-subcommands-maint.html). + +If you are using {{site.data.var.ece}}, the Magento application runs in maintenance mode during the deploy phase. When the deployment completes successfully, Magento returns to running in production mode. See [Deployment hooks]({{ site.baseurl }}/cloud/reference/discover-deploy.html). + +{:.ref-header} +Related topics + +- To set a mode, see [Set the Magento mode]({{ page.baseurl }}/config-guide/cli/config-cli-subcommands-mode.html). + +- To generate static view files for production mode, see [Deploy static view files]({{ page.baseurl }}/config-guide/cli/config-cli-subcommands-static-view.html) diff --git a/src/guides/v2.4/config-guide/cache.md b/src/guides/v2.4/config-guide/cache.md new file mode 100644 index 00000000000..4ee48825cf6 --- /dev/null +++ b/src/guides/v2.4/config-guide/cache.md @@ -0,0 +1,38 @@ +--- +group: configuration-guide +title: Configure caching +functional_areas: + - Configuration + - System + - Setup +--- + +Magento enables you to configure alternatives to the default file system caching. This guide discusses some of those alternatives; namely, + +* Set up the following [cache](https://glossary.magento.com/cache) mechanisms in the Magento configuration: + + * [Database]({{ page.baseurl }}/extension-dev-guide/cache/partial-caching/database-caching.html) + * [Redis]({{ page.baseurl }}/config-guide/redis/config-redis.html) + * File system (default): No configuration is necessary to use file system caching. + +* Set up the [Varnish]({{ page.baseurl }}/config-guide/varnish/config-varnish.html) without modifying the Magento configuration. + +{:.bs-callout-info} +We'll periodically add more cache alternatives so watch this space. + +Magento uses the following caching terminology: + +* *Frontend*: Similar to an interface or gateway to cache storage, implemented by [Magento\Framework\Cache\Frontend]({{ site.mage2bloburl }}/{{ page.guide_version }}/lib/internal/Magento/Framework/Cache/Frontend). +* *Cache types*: Can be one of the types provided with Magento or you can [create your own]({{ page.baseurl }}/extension-dev-guide/cache/partial-caching/create-cache-type.html). +* *Backend*: Specifies details about [cache storage](http://framework.zend.com/manual/1.12/en/zend.cache.backends.html), implemented by [Magento\Framework\Cache\Backend]({{ site.mage2bloburl }}/{{ page.guide_version }}/lib/internal/Magento/Framework/Cache/Backend) +* *Two-level backend*: Stores cache records in two backends---a faster one and a slower one. + + Two-level backend cache configuration is beyond the scope of this guide at this time. + +This topic discusses the following options for configuring caching: + +* Modifying the provided `default` cache frontend, which means you modify only `/app/etc/di.xml` (the Magento application's global [dependency injection](https://glossary.magento.com/dependency-injection) configuration) +* Configuring your own custom cache frontend, which means you modify only `/app/etc/env.php` because it overrides the equivalent configuration in `di.xml` + +{:.bs-callout-info} +Varnish requires no changes to the Magento configuration. For more information, see [Configure and use Varnish]({{ page.baseurl }}/config-guide/varnish/config-varnish.html). diff --git a/src/guides/v2.4/config-guide/cache/cache-options.md b/src/guides/v2.4/config-guide/cache/cache-options.md new file mode 100644 index 00000000000..9aba058f1d2 --- /dev/null +++ b/src/guides/v2.4/config-guide/cache/cache-options.md @@ -0,0 +1,27 @@ +--- +group: configuration-guide +title: Low-level cache options +functional_areas: + - Configuration + - System + - Setup +--- + +The Magento application uses a low-level [cache](https://glossary.magento.com/cache) [frontend](https://glossary.magento.com/frontend) and [backend](https://glossary.magento.com/backend) to provide access to the cache storage. + +## Low-level frontend cache {#cache-lowlevel-front} + +Magento extends [Zend_Cache_Core](http://framework.zend.com/manual/1.12/en/zend.cache.frontends.html) by implementing [Magento\Framework\Cache\Core]({{ site.mage2bloburl }}/{{ page.guide_version }}/lib/internal/Magento/Framework/Cache/Core.php) frontend cache. + +## Low-level backend cache {#cache-lowlevel-back} + +In general, the Magento application works with any backend cache that [Zend_Cache Backends](http://framework.zend.com/manual/1.12/en/zend.cache.backends.html) supports. However, this guide covers only the following low-level backend caches: + +* [Redis]({{ page.baseurl }}/config-guide/redis/config-redis.html) +* [Database]({{ page.baseurl }}/extension-dev-guide/cache/partial-caching/database-caching.html) +* File system (default): No configuration is necessary to use file system caching. + +[Varnish]({{ page.baseurl }}/config-guide/varnish/config-varnish.html) doesn't require setting up a low-level [cache backend](https://glossary.magento.com/cache-backend). + +{:.bs-callout-info} +We'll periodically add more low-level cache types so watch this space. diff --git a/src/guides/v2.4/config-guide/cache/cache-types.md b/src/guides/v2.4/config-guide/cache/cache-types.md new file mode 100644 index 00000000000..1218e5b6ae7 --- /dev/null +++ b/src/guides/v2.4/config-guide/cache/cache-types.md @@ -0,0 +1,76 @@ +--- +group: configuration-guide +title: Associate cache frontends with cache types +redirect_from: + - /guides/v2.3/config-guide/config/caching_frontend-cache-types.html +functional_areas: + - Configuration + - System + - Setup +--- + +## Step 1: Define a cache frontend {#cache-mage-frontend} + +The Magento application has a `default` cache [frontend](https://glossary.magento.com/frontend) you can use for any [cache type]({{ page.baseurl }}/config-guide/cli/config-cli-subcommands-cache.html#config-cli-subcommands-cache-clean-over). This section discusses how to optionally define a [cache frontend](https://glossary.magento.com/cache-frontend) with a different name, which is preferable if you expect to customize your frontend. + +{:.bs-callout-info} +To use the `default` cache type, you don't need to modify `env.php` at all; you modify Magento's global `di.xml`. See the topics referenced in [Low-level cache options]({{ page.baseurl }}/config-guide/cache/cache-options.html). + +You must specify a custom cache frontend either `app/etc/env.php` or Magento's global `app/etc/di.xml`. + +The following example shows how to define it in `env.php` (which overrides `di.xml`): + +```php?start_inline=1 +'cache' => [ + 'frontend' => [ + '' => [ + + ], + ], + 'type' => [ + => [ + 'frontend' => '' + ], + ], + 'type' => [ + => [ + 'frontend' => '' + ], + ], +], +``` + +where `` is a unique name to identify your frontend and `` are options discussed in the topics specific to each type of caching (database, Redis, and so on). + +## Step 2: Configure the cache {#cache-mage-adv} + +You can specify frontend and [backend](https://glossary.magento.com/backend) cache configuration options in `env.php` or `di.xml`. This task is optional. + +`env.php` example: + +```php?start_inline=1 +'frontend' => , +'frontend_options' => [ + => , + ... +], +'backend' => , +'backend_options' => [ + => , + ... +], +``` + +where + +* `` is the low-level frontend [cache type](https://glossary.magento.com/cache-type). Specify the name of a class that is compatible with [Zend\Cache\Core](http://framework.zend.com/apidoc/1.7/Zend_Cache/Zend_Cache_Core.html). + + If you omit ``, [Magento\Framework\Cache\Core]({{ site.mage2bloburl }}/{{ page.guide_version }}/lib/internal/Magento/Framework/Cache/Core.php) is used. +* ``, `` are the name and value of options the Magento framework passes as an associative array to the frontend cache upon its creation. +* `` is the low-level backend cache type. Specify the name of a class that is compatible with [Zend_Cache_Backend](http://framework.zend.com/apidoc/1.7/Zend_Cache/Zend_Cache_Backend/Zend_Cache_Backend.html) and that implements [Zend_Cache_Backend_Interface](http://framework.zend.com/apidoc/1.6/Zend_Cache/Zend_Cache_Backend/Zend_Cache_Backend_Interface.html). +* ``, `` are the name and value of options the Magento framework passes as an associative array to backend cache upon its creation. + +{:.ref-header} +Related topics + +[Low-level cache options]({{ page.baseurl }}/config-guide/cache/cache-options.html) diff --git a/src/guides/v2.4/config-guide/cache/static-content-signing.md b/src/guides/v2.4/config-guide/cache/static-content-signing.md new file mode 100644 index 00000000000..7eada0a3c10 --- /dev/null +++ b/src/guides/v2.4/config-guide/cache/static-content-signing.md @@ -0,0 +1,66 @@ +--- +group: configuration-guide +title: Static content signing +functional_areas: + - Configuration + - System + - Setup +--- + +### Static content cache + +To improve performance, Magento sets the `Expires` headers for static resources such as images, JavaScript, and [CSS](https://glossary.magento.com/css) files. +Setting the `Expires` header on a static resource tells the browser to [cache](https://glossary.magento.com/cache) the resource at that [URL](https://glossary.magento.com/url) and serve the cached version until it expires. +This is a common [best practice](https://developer.yahoo.com/performance/rules.html#expires=) for caching static resources. + +When the browser caches a static resource and that resource changes on the server, you need to clear the browser cache so it can download the new version. +Manually clearing the browser cache works if you are a [website](https://glossary.magento.com/website) administrator, but this is not an appropriate request to make of your users when you want them to download new versions of a static resource. + +### Static content signing + +[Static content](https://glossary.magento.com/static-content) signing is a Magento feature that allows you to invalidate the browser cache for static resources. +Magento accomplishes this by adding a deployment version to the URL of [static files](https://glossary.magento.com/static-files). + +The following is an example of a URL signed with a version: + +```terminal +http://magento2.com/pub/static/version1475604434/frontend/Magento/luma/en_US/images/logo.svg +``` + +When you run the command [`setup:static-content:deploy`]({{ page.baseurl }}/config-guide/cli/config-cli-subcommands-static-view.html) to deploy static content, Magento automatically changes the deployment version. +This changes the URL of the static files and forces the browser to load the new version of the files. + +Magento enables this feature by default, and we recommend keeping this feature enabled to prevent issues related to browsers serving up old static resources. + +You can find the configuration for this feature in [**Stores** > Settings > Configuration > **Advanced** > **Developer** > **Static Files Settings**]({{ site.user_guide_url }}/system/static-file-signature.html). + +![Static Files Settings]({{ site.baseurl }}/common/images/static-files-settings.png) + +You can also use the CLI command to determine the status: + +```bash +bin/magento config:show dev/static/sign +``` + +Use the following command to enable or disable static content signing + +```bash +bin/magento config:set dev/static/sign +``` + +Where `````` is 1 (enabled) or 0 (disabled). + +#### Version signatures + +Magento appends the version signature as a path component directly after the base URL of static view files to preserve the integrity of relative URLs across static resources. +This also forces the browser to resolve a relative URL to the correct signed source while keeping its content independent of the presence/absence of the signature value. + +When a browser requests a signed source from the server, the server uses URL rewrites to strip the signature component from the URL. + +### Usage during deployments + +After upgrading or modifying static resources, you need to run the `setup:static-content:deploy` command to deploy the version and update the static contents. +This forces the browser to load the updated resources. + +If you deploy code on a separate server and move it to production using a code repository to reduce downtime, you also need to add the file `pub/static/deployed_version.txt` to the repository. +This file contains the new version for the deployed static content. diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-cache.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-cache.md new file mode 100644 index 00000000000..b6d458a8acf --- /dev/null +++ b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-cache.md @@ -0,0 +1,166 @@ +--- +group: configuration-guide +title: Manage the cache +functional_areas: + - Configuration + - System + - Setup +--- + +{% include config/cli-intro.md %} + +## Overview of cache types {#config-cli-subcommands-cache-clean-over} + +Magento 2 has the following [cache](https://glossary.magento.com/cache) types: + +|Cache type "friendly" name|Cache type code name|Description| +|--- |--- |--- | +|Configuration|config|Magento collects configuration from all modules, merges it, and saves the merged result to the cache. This cache also contains store-specific settings stored in the file system and database. Clean or flush this cache type after modifying configuration files.| +|Layout|layout|Compiled page layouts (that is, the layout components from all components). Clean or flush this cache type after modifying layout files.| +|Block HTML output|block_html|HTML page fragments per block. Clean or flush this cache type after modifying the view layer.| +|Collections data|collections|Results of database queries. If necessary, Magento cleans up this cache automatically, but third-party developers can put any data in any segment of the cache. Clean or flush this cache type if your custom module uses logic that results in cache entries that Magento cannot clean.| +|DDL|db_ddl|Database schema. If necessary, Magento cleans up this cache automatically, but third-party developers can put any data in any segment of the cache. Clean or flush this cache type after you make custom changes to the database schema. (In other words, updates that Magento does not make itself.) One way to update the database schema automatically is using the `magento setup:db-schema:upgrade` command.| +|Compiled Config|compiled_config|Compilation configuration| +|Entity attribute value (EAV)|eav|Metadata related to EAV attributes (for example, store labels, links to related PHP code, attribute rendering, search settings, and so on). You should not typically need to clean or flush this cache type.| +|Page cache|full_page|Generated HTML pages. If necessary, Magento cleans up this cache automatically, but third-party developers can put any data in any segment of the cache. Clean or flush this cache type after modifying code level that affects HTML output. It is recommended to keep this cache enabled because caching HTML improves performance significantly.| +|Reflection|reflection|Removes a dependency between the Webapi module and the Customer module.| +|Translations|translate|After merging translations from all modules, the merger cache will be cleaned.| +|Integration configuration|config_integration|Compiled integrations. Clean or flush this cache after changing or adding integrations.| +|Integration API configuration|config_integration_api|Compiled integration APIs configuration of the Store’s Integrations.| +|Web services configuration|config_webservice|Caching the Web API Structure.| +|Customer Notification|customer_notification|Temporary notifications that appear in the user interface.| + +## View the cache status + +To view the status of the cache, enter + +```bash + bin/magento cache:status +``` + + + +A sample follows: + +```terminal +Current status: + config: 1 + layout: 1 + block_html: 1 + collections: 1 + reflection: 1 + db_ddl: 1 + compiled_config: 1 + eav: 1 + customer_notification: 1 + config_integration: 1 +config_integration_api: 1 + google_product: 1 + full_page: 1 + config_webservice: 1 + translate: 1 + vertex: 1 +``` + +## Enable or disable cache types {#config-cli-subcommands-cache-en} + +This command enables you to enable or disable all cache types or only the ones you specify. Disabling cache types is useful during development because you see the results of your changes without having to flush the cache; however, disabling cache types has an adverse effect on performance. + +{:.bs-callout-info} +Starting in version 2.2, you can only enable or disable cache types using the command line while running Magento in production mode. If running Magento in developer mode, you can enable or disable cache types using the command line or manually. Before doing so, you must manually make `/app/etc/env.php` writeable by the [file system owner]({{ page.baseurl }}/install-gde/prereq/file-system-perms.html). + +You can clean (also referred to as _flush_ or _refresh_) cache types using either the command line or the [Admin](https://glossary.magento.com/magento-admin). + +Command options: + +```bash + bin/magento cache:enable [type] ... [type] +``` + +```bash + bin/magento cache:disable [type] ... [type] +``` + +Where omitting `[type]` enables or disables all cache types at the same time. The `type` option is a space-separated list of cache types. + + + +To list cache types and their status: + +```bash + bin/magento cache:status +``` + +For example, to disable the full page cache and the DDL cache: + +```bash + bin/magento cache:disable db_ddl full_page +``` + +Sample result: + +```terminal + Changed cache status: + db_ddl: 1 -> 0 + full_page: 1 -> 0 +``` + +{:.bs-callout-info} +Enabling a [cache type](https://glossary.magento.com/cache-type) automatically clears that cache type. + +{:.bs-callout-info} +As of version 2.3.4, Magento caches all system EAV attributes as they are retrieved. Caching EAV attributes in this manner improves performance, because it decreases the amount of insert/select requests to the DB. However, it increases cache network size as well. Developers can cache custom EAV attributes by running the `bin/magento config:set dev/caching/cache_user_defined_attributes 1` command. This can also be done from the Admin while in [Developer mode]({{ page.baseurl }}/config-guide/bootstrap/magento-modes.html) by setting **Stores** > Settings **Configuration** > **Advanced** > **Developer** > **Caching Settings** > **Cache User Defined Attributes** to **Yes**. + +## Clean and flush cache types {#config-cli-subcommands-cache-clean} + +To purge out-of-date items from the cache, you can *clean* or *flush* cache types: + +- Cleaning a cache type deletes all items from enabled Magento cache types only. In other words, this option does not affect other processes or applications because it cleans only the cache that Magento uses. + + Disabled cache types are not cleaned. + + {:.bs-callout-tip} + Always clean the cache after upgrading versions of {{site.data.var.ce}} or {{site.data.var.ee}}, upgrading from {{site.data.var.ce}} to {{site.data.var.ee}}, or installing {{site.data.var.b2b}} or any module. + +- Flushing a cache type purges the cache storage, which might affect other processes applications that are using the same storage. + +Flush cache types if you've already tried cleaning the cache and you're still having issues that you cannot isolate. + +Command usage: + +```bash + bin/magento cache:clean [type] ... [type] +``` + +```bash + bin/magento cache:flush [type] ... [type] +``` + +Where `[type]` is a space-separated list of cache types. Omitting `[type]` cleans or flushes all cache types at the same time. For example, to flush all cache types, enter + +```bash + bin/magento cache:flush +``` + +Sample result: + +```terminal + Flushed cache types: + config + layout + block_html + collections + reflection + db_ddl + compiled_config + eav + customer_notification + config_integration + config_integration_api + full_page + config_webservice + translate +``` + +{:.bs-callout-info} +You can also clean and flush cache types in the [Admin](https://glossary.magento.com/magento-admin). Go to **System** > **Tools** > **Cache Management**. **Flush Cache Storage** is equivalent to `bin/magento cache:flush`. **Flush Magento Cache** is equivalent to `bin/magento cache:clean`. diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-catalog-sync.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-catalog-sync.md new file mode 100644 index 00000000000..8b3df767d61 --- /dev/null +++ b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-catalog-sync.md @@ -0,0 +1,54 @@ +--- +group: configuration-guide +title: Catalog Sync +migrated_to: https://experienceleague.adobe.com/docs/commerce-merchant-services/user-guides/catalog-sync.html +layout: migrated +--- + +Adobe Commerce and Magento Open Source compiles catalog data into tables using indexers. This process is automatically [triggered by several events]({{ site.user_guide_url }}/system/index-management-events.html), such as changes to a product's price or inventory levels. To allow some Commerce services to use that catalog data, a catalog sync process runs hourly. The catalog sync process exports product data from the Commerce server to Commerce services, which are deployed as SaaS, on an ongoing basis. For example, the [Product Recommendations]({{ site.user_guide_url }}/marketing/product-recommendations.html) feature needs up-to-date catalog information so that it can accurately return recommendations with correct names, pricing, and availability. Use the command-line interface to trigger the catalog sync and reindex product data for consumption by Commerce services. + +## Sync catalog data + +To synchronize catalog data, you must have an [API key and a SaaS Data Space configured]({{ site.user_guide_url }}/system/saas.html). If you do not have an API key and have not configured a SaaS Data Space, you can still reindex product data but that data will not be exported to Commerce services. + +The `saas:resync` command is part of the `magento/saas-export` package. See [Install and configure Product Recommendations]({{ site.baseurl }}/recommendations/install-configure.html) for more information. + +See the [user guide]({{ site.user_guide_url }}/system/catalog-sync.html) to learn how to use the Catalog Sync dashboard in the Admin UI to observe and manage the Commerce to SaaS syncing process. + +{:.bs-callout-info} +When you trigger a data resync from the command line, it can take up to an hour for the data to update. + +Command options: + +```bash +bin/magento saas:resync --feed [no-reindex] +``` + +The following table explains this command’s parameters and descriptions. + +|Parameter|Description|Required?| +|---| ---| ---| +|`feed`| Specifies which entity to resync, such as `products`|Yes| +|`no-reindex`| Resubmits the existing catalog data to Commerce services without reindexing. When this parameter is not specified, the command runs a full reindex before syncing data.|No| + +The feed name can be one of the following: + +- `products`-- Products in your catalog +- `categories`-- Categories in your catalog +- `variants`-- Product variations of a configurable product, such as color and size +- `productattributes`-- Product attributes such as `activity`, `gender`, `tops`, `bottoms`, and so on +- `productoverrides`-- Customer-specific pricing and catalog visibility rules, such as those based on category permissions + +### Examples + +The following example reindexes the product data from the Commerce catalog and resyncs it to Commerce services: + +```bash +bin/magento saas:resync --feed products +``` + +If you do not want to run a full reindex of the products, you can instead sync the product data that has already been generated: + +```bash +bin/magento saas:resync --feed products --no-reindex +``` diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-compiler.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-compiler.md new file mode 100644 index 00000000000..dcf599cff33 --- /dev/null +++ b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-compiler.md @@ -0,0 +1,57 @@ +--- +group: configuration-guide +title: Code compiler +functional_areas: + - Configuration + - System + - Setup +--- + +{% include config/cli-intro.md %} + +Code compilation includes the following (in no particular order): + +- Application code generation (factories, proxies) +- Area configuration aggregation (optimized [dependency injection](https://glossary.magento.com/dependency-injection) configurations per area) +- Interceptor generation (optimized code generation of interceptors) +- Interception [cache](https://glossary.magento.com/cache) generation +- Repositories code generation (generated code for APIs) +- Service data attributes generation (generated [extension](https://glossary.magento.com/extension) classes for data objects) + +You can find code compilation classes in the [\Magento\Setup\Module\Di\App\Task\Operation]({{ site.mage2bloburl }}/{{ page.guide_version }}/setup/src/Magento/Setup/Module/Di/App/Task/Operation) [namespace](https://glossary.magento.com/namespace). + +#### To run the single-tenant compiler: {#config-cli-subcommands-single} + +```bash +bin/magento setup:di:compile +``` + +```terminal +Generated code and dependency injection configuration successfully. +``` + +#### To compile code before installing the Magento application: {#config-cli-subcommands-single-before} + +In some cases, you might want to compile code before you install the Magento application. + +1. Enable the modules. + + ```bash + bin/magento module:enable --all [-c|--clear-static-content] + ``` + + Use the `[-c|--clear-static-content]` option to clear [static content](https://glossary.magento.com/static-content). This is necessary if you previously enabled or disabled modules and you must clear the static content previously generated for them. + + See [Enable modules]({{ page.baseurl }}/install-gde/install/cli/install-cli-subcommands-enable.html). + +1. Compile the code. + + ```bash + bin/magento setup:di:compile + ``` + + ```terminal + Generated code and dependency injection configuration successfully. + ``` + +To compile code without a database, see [Deploy static view files without installing Magento]({{ page.baseurl }}/config-guide/cli/config-cli-subcommands-static-view.html#deploy_without_db). diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-export.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-export.md new file mode 100644 index 00000000000..17f4f039c3c --- /dev/null +++ b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-export.md @@ -0,0 +1,51 @@ +--- +group: configuration-guide +title: Export the configuration +functional_areas: + - Configuration + - System + - Setup +--- + +In Magento 2.2 and later [pipeline deployment model]({{ page.baseurl }}/config-guide/deployment/pipeline/), you can maintain a consistent configuration across systems. After you configure settings in the Admin on your development system, export those settings to configuration files using the following command: + +```bash +bin/magento app:config:dump {config-types} +``` + +_config_types_ is a space-separated list of config types to dump. Available types include `scopes`, `system`, `themes`, and `i18n`. If no config types are specified, the command dumps all system configuration information. + +The following example dumps scopes and themes only: + + ```bash +bin/magento app:config:dump scopes themes +``` + +As a result of the command execution, the following configuration files are updated: + +- [`app/etc/config.php`](#app-etc-config-php) +- [`app/etc/env.php`](#app-etc-env-php) + +## `app/etc/config.php` {#app-etc-config-php} + +This is the shared configuration file for all your Magento instances. +Include this in your source control so it can be shared between the development, build, and production systems. + +See: [config.php reference]({{ page.baseurl }}/config-guide/prod/config-reference-configphp.html) + +## `app/etc/env.php` {#app-etc-env-php} + +This is the environment-specific configuration file. +It contains sensitive and system-specific settings for individual environments. + +Do _not_ include this file in source control. + +See: [env.php reference]({{ page.baseurl }}/config-guide/prod/config-reference-envphp.html) + +### Sensitive or system-specific settings + +To set the sensitive settings written to `env.php`, use the [`bin/magento config:sensitive:set`]({{ page.baseurl }}/config-guide/cli/config-cli-subcommands-config-mgmt-set.html) command. + +Configuration values are specified as either sensitive or system-specific by referencing [`Magento\Config\Model\Config\TypePool`]({{ site.mage2bloburl }}/{{ page.guide_version }}/app/code/Magento/Config/Model/Config/TypePool.php) in the module's [`di.xml`]({{ page.baseurl }}/extension-dev-guide/configuration/sensitive-and-environment-settings.html#how-to-specify-values-as-sensitive-or-system-specific) file. + +To export additional system settings when using `config_types`, consider using the [`bin/magento config:set`]({{ page.baseurl }}/config-guide/cli/config-cli-subcommands-config-mgmt-set.html#config-cli-config-set) command. diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-import.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-import.md new file mode 100644 index 00000000000..6c7c84c813c --- /dev/null +++ b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-import.md @@ -0,0 +1,131 @@ +--- +group: configuration-guide +title: Import data from configuration files +functional_areas: + - Configuration + - System + - Setup +--- + +{% include config/cli-intro.md %} + +When you set up a production system using the Magento 2.2 [pipeline deployment model]({{ page.baseurl }}/config-guide/deployment/pipeline/), you must _import_ configuration settings from `config.php` and `env.php` into the database. +These settings include configuration paths and values, websites, stores, store views, and themes. + +After importing websites, stores, store views, and themes, you can create product attributes and apply them to websites, stores, and store views, on the production system. + +{:.bs-callout-info} +The `bin/magento app:config:import` command does not process configuration stored in environment variables. + +## Import configuration data + +On your production system, run the following command to import data from the configuration files (`config.php` and `env.php`) to the database: + +```bash +bin/magento app:config:import [-n, --no-interaction] +``` + +Use the optional `[-n, --no-interaction]` flag to import data without any interaction. + +If you enter `bin/magento app:config:import` without the optional flag, you're required to confirm the changes. + +For example, if configuration file contains one new [website](https://glossary.magento.com/website) and one new store, the following message is displayed: + +```terminal +These Websites will be created: New Website +These Groups will be created: New Store +Do you want to continue [yes/no]? +``` + +To continue the import, enter `yes`. + +If deployment configuration files contain some data to import, a message similar to the following is displayed: + +```terminal +Start import: +Some information about importing +``` + +If deployment configuration files do not contain any data to import, a message similar to the following is displayed: + +```terminal +Start import: +Nothing to import +``` + +## What we import + +The following sections discuss in detail what data we import. + +### System configuration + +Magento directly uses values in the `system` array in the `config.php` or `env.php` files instead of importing them into the database because they require some pre- and post-processing actions. + +For example, the value of the configuration path `web/secure/base_url` must be validated with [backend](https://glossary.magento.com/backend) models. + +#### Backend models + +Backend models are the mechanism for processing changes in system configuration. +You define backend modules in `/adminhtml/system.xml`. + +All backend models must extend the [`Magento\Framework\App\Config\Value`]({{ site.mage2bloburl }}/{{ page.guide_version }}/lib/internal/Magento/Framework/App/Config/Value.php) class. + +When we import backend models, we don't save the configuration values. + +### Websites, stores, and store groups configuration + +We import the following types of configurations. +(These configurations are under the `scopes` array in `config.php`.) + +* `websites`: websites related configuration +* `groups`: stores related configuration +* `stores`: store views related configuration + +The preceding configurations can be imported in the following modes: + +* `create`: `config.php` contains new entities (`websites`, `groups`, `stores`) that are absent in the production environment +* `update`: `config.php` contains entities (`websites`, `groups`, `stores`) that are different from the production environment +* `delete`: `config.php` does _not_ contain entities (`websites`, `groups`, `stores`) that are present on production environment + +{:.bs-callout-info} +We don't import the root [category](https://glossary.magento.com/category) associated with stores. You must associate a root category with a store using the Magento [Admin](https://glossary.magento.com/admin). + +### Theme configuration + +Theme configuration includes all themes registered in your Magento system; the data comes directly from the `theme` database table. +(Theme configuration is in the `themes` array in `config.php`.) + +#### Structure of theme data + +The key of array is full theme path: `area` + `theme path` + +For example, `frontend/Magento/luma`. +`frontend` is area and `Magento/luma` is [theme](https://glossary.magento.com/theme) path. + +The value of array is data about theme: code, title, path, parent id and etc. + +Full example: + +```php?start_inline=1 +'frontend/Magento/luma' => + array ( + 'parent_id' => 'Magento/blank', + 'theme_path' => 'Magento/luma', + 'theme_title' => 'Magento Luma', + 'is_featured' => '0', + 'area' => 'frontend', + 'type' => '0', + 'code' => 'Magento/luma', +), +``` + +{:.bs-callout-info} + +* _Theme registration_. If a theme data is defined in `config.php` but the theme's source code is not present in the file system, the theme is ignored (that is, not registered). +* _Theme removal_. If a theme is not present in `config.php` but the source code is present on the file system, the theme is not removed. + +{:.ref-header} +Related topics + +* [Deployment general overview]({{ page.baseurl }}/config-guide/deployment/pipeline/) +* [`bin/magento app:config:dump`]({{ page.baseurl }}/config-guide/cli/config-cli-subcommands-config-mgmt-export.html) diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-parent.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-parent.md new file mode 100644 index 00000000000..156d685faec --- /dev/null +++ b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-parent.md @@ -0,0 +1,8 @@ +--- +group: configuration-guide +title: Configuration management +functional_areas: + - Configuration + - System + - Setup +--- diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-set.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-set.md new file mode 100644 index 00000000000..53cca472fca --- /dev/null +++ b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-config-mgmt-set.md @@ -0,0 +1,290 @@ +--- +group: configuration-guide +title: Set configuration values +functional_areas: + - Configuration + - System + - Setup +--- + +{% include config/cli-intro.md %} + +This topic discusses advanced configuration commands you can use to: + +* Set any configuration option from the command line +* Optionally lock any configuration option so its value cannot be changed in the Admin +* Change a configuration option that is locked in the Admin + +You can use these commands to set the Magento configuration manually or using scripts. You set configuration options using a _configuration path_, which is a `/`-delimited string that uniquely identifies that configuration option. You can find configuration paths in the following references: + +* [Sensitive and system-specific configuration paths reference]({{ page.baseurl }}/config-guide/prod/config-reference-sens.html) +* [Payment configuration paths reference]({{ page.baseurl }}/config-guide/prod/config-reference-payment.html) +* [Other configuration paths reference]({{ page.baseurl }}/config-guide/prod/config-reference-most.html) +* [Magento Enterprise B2B Extension configuration paths reference]({{ page.baseurl }}/config-guide/prod/config-reference-b2b.html) + +You can set values at the following times: + +* Before you install Magento, you can set configuration values for the default scope only. + + That's because before you install Magento, the default scope is the only valid scope. + +* After you install Magento, you can set configuration values for any [website](https://glossary.magento.com/website) or [store view](https://glossary.magento.com/store-view) scope. + +Use the following commands: + +* `bin/magento config:set` sets any non-sensitive configuration value by its configuration path +* `bin/magento config:sensitive:set` sets any sensitive configuration value by its configuration path +* `bin/magento config:show` shows saved configuration values; values of encrypted settings are displayed as asterisks + +## Prerequisites + +To set a configuration value, you must know at least one of the following: + +* The configuration path +* To set a configuration value for a particular scope, you must know the scope code. + + To set a configuration value for the default scope, you don't need to do anything. + +### Find the configuration path + +See the following references: + +* [Sensitive and system-specific configuration paths reference]({{ page.baseurl }}/config-guide/prod/config-reference-sens.html) +* [Payment configuration paths reference]({{ page.baseurl }}/config-guide/prod/config-reference-payment.html) +* [Other configuration paths reference]({{ page.baseurl }}/config-guide/prod/config-reference-most.html) +* [Magento Enterprise B2B Extension configuration paths reference]({{ page.baseurl }}/config-guide/prod/config-reference-b2b.html) + +### Find the scope code + +You can find the scope code either in the Magento database or in the Magento [Admin](https://glossary.magento.com/admin). See one of the following sections for more information. + +#### Find the scope code in the Admin + +{% collapsible To find the scope code in the Admin: %} + +1. Log in to the Admin as a user who can view websites and store views. +1. Click **Stores** > Settings > **All Stores**. +1. In the right pane, click the name of the website or store view to see its code. + + The following figure shows a sample website code. + + ![Get a website or store view code from the Admin]({{ site.baseurl }}/common/images/config_configset_website-code.png){:width="450px"} + +1. Continue with [Set configuration values](#config-cli-config-set). + +{% endcollapsible %} + +#### Find the scope code in the database + +{% collapsible To find the scope code in the database: %} + +Scope codes for websites and store views are stored in the Magento database in the `store_website` and `store` tables, respectively. + +To find the values in the database: + +1. Connect to the Magento database. + + ```bash + mysql -u -p + ``` + +1. Enter the following commands: + + ```shell + use ; + ``` + + ```shell + SELECT * FROM store; + ``` + + ```shell + SELECT * FROM store_website; + ``` + + A sample result follows: + + ```terminal + [mysql]> SELECT * FROM store_website; + +------------+-------+--------------+------------+------------------+------------+ + | website_id | code | name | sort_order | default_group_id | is_default | + +------------+-------+--------------+------------+------------------+------------+ + | 0 | admin | Admin | 0 | 0 | 0 | + | 1 | base | Main Website | 0 | 1 | 1 | + | 2 | test1 | Test Website | 0 | 3 | 0 | + +------------+-------+--------------+------------+------------------+------------+ + ``` + + Use the value in the `code` column. + +1. Continue with the next section. + +{% endcollapsible %} + +## Set configuration values {#config-cli-config-set} + +To set system-specific configuration values, use: + +```bash +bin/magento config:set [--scope="..."] [--scope-code="..."] [-le | --lock-env] [-lc | --lock-config] path value +``` + +To set sensitive configuration values, use: + +```bash +bin/magento config:sensitive:set [--scope="..."] [--scope-code="..."] path value +``` + +The following table describes the `set` command parameters: + +Parameter | Description +--- | --- | --- +`--scope` | The scope of the configuration. The possible values are `default`, `website`, or `store`. The default is `default`. +`--scope-code` | The scope code of configuration (website code or store view code) +`-le or --lock-env` | Either locks the value so it cannot be edited in the Admin or changes a setting that is already locked in the Admin. The command writes the value to the `/app/etc/env.php` file. +`-lc or --lock-config` | Either locks the value so it cannot be edited in the Admin or changes a setting that is already locked in the Admin. The command writes the value to the `/app/etc/config.php` file. The `--lock-config` option overwrites `--lock-env` if you specify both options. +`path` | *Required*. The configuration path +`value` | *Required*. The value of the configuration + +{:.bs-callout-info} + +* As of Magento 2.2.4, the `--lock-env` and `--lock-config` options replace the `--lock` option. +* If you use the `--lock-env` or `--lock-config` option to set or change a value, you must use the [`bin/magento app:config:import` command]({{ page.baseurl }}/config-guide/cli/config-cli-subcommands-config-mgmt-import.html) to import the setting before you access the Admin or storefront. + +If you enter an incorrect configuration path, this command returns an error + +```text +The "wrong/config/path" does not exist +``` + +See one of the following sections for more information: + +* [Set configuration values that can be edited in the Admin](#config-cli-config-set-edit) +* [Set configuration values that cannot be edited in the Admin](#config-cli-config-file) + +### Set configuration values that can be edited in the Admin {#config-cli-config-set-edit} + +Use `bin/magento config:set` _without_ `--lock-env` or `--lock-config` to write the value to the database. Values you set this way can be edited in the Admin. + +Some examples for setting a store base [URL](https://glossary.magento.com/url) follow: + +Set the base URL for the default scope: + +```bash +bin/magento config:set web/unsecure/base_url http://example.com/ +``` + +Set the base URL for the `base` website: + +```bash +bin/magento config:set --scope=websites --scope-code=base web/unsecure/base_url http://example2.com/ +``` + +Set the base URL for the `test` store view: + +```bash +bin/magento config:set --scope=stores --scope-code=test web/unsecure/base_url http://example3.com/ +``` + +### Set configuration values that cannot be edited in the Admin {#config-cli-config-file} + +If you use the `--lock-env` option as follows, the command saves the configuration value in `/app/etc/env.php` and disables the field for editing this value in Admin. + +```bash +bin/magento config:set --lock-env --scope=stores --scope-code=default web/unsecure/base_url http://example3.com +``` + +You can use the `--lock-env` option to set configuration values if Magento is not installed. However, you can set values only for the default scope. + +{:.bs-callout-info} +The `env.php` file is system specific. You should not transfer it to another system. You can use it to overwrite configuration values from the database. For example, you can take a database dump from another system and overwrite the `base_url` and other values so you don't have to modify the database. + +If you use the `--lock-config` option as follows, the configuration value is saved in `/app/etc/config.php`. The field for editing this value in Admin page is disabled. + +```bash +bin/magento config:set --lock-config --scope=stores --scope-code=default web/url/use_store 1 +``` + +You can use `--lock-config` to set configuration values if Magento is not installed. However, you can set values only for the default scope. + +{:.bs-callout-info} +You can transfer `config.php` to another system to use the same configuration values there. For example, if you have a testing system, using the same `config.php` means you don't have to set the same configuration values again. + +## Display the value of configuration settings {#config-cli-config-show} + +Command options: + +```bash +bin/magento config:show [--scope[="..."]] [--scope-code[="..."]] path +``` + +where + +* `--scope` is the scope of configuration (default, website, store). The default value is `default` +* `--scope-code` is the scope code of configuration (website code or store view code) +* `path` is the configuration path in format first_part/second_part/third_part/etc *(required)* + +{:.bs-callout-info} +The `bin/magento config:show` command displays the values of any [encrypted values]({{ page.baseurl }}/config-guide/prod/config-reference-sens.html) as a series of asterisks: `******`. + +### Examples + +**Show all saved configurations**: + +```bash +bin/magento config:show +``` + +Result: + +
web/unsecure/base_url - http://example.com/
+general/region/display_all - 1
+general/region/state_required - AT,BR,CA,CH,EE,ES,FI,LT,LV,RO,US
+catalog/category/root_id - 2
+analytics/subscription/enabled - 1
+ +**Show all saved configurations for the `base` website**: + +```bash +bin/magento config:show --scope=websites --scope-code=base +``` + +Result: + +
web/unsecure/base_url - http://example-for-website.com/
+general/region/state_required - AT,BR,CA
+ +**Show the base URL for the default scope**: + +```bash +bin/magento config:show web/unsecure/base_url +``` + +Result: + +
web/unsecure/base_url - http://example.com/
+ +**Show the base URL for the `base` website**: + +```bash +bin/magento config:show --scope=websites --scope-code=base web/unsecure/base_url +``` + +Result: + +
web/unsecure/base_url - http://example-for-website.com/
+ +**Show the base URL for the `default` store**: + +```bash +bin/magento config:show --scope=stores --scope-code=default web/unsecure/base_url +``` + +Result: + +
web/unsecure/base_url - http://example-for-store.com/
+ +{:.ref-header} +Related topic + +[Deployment general overview]({{ page.baseurl }}/config-guide/deployment/pipeline/) diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-depen.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-depen.md new file mode 100644 index 00000000000..1d21512a593 --- /dev/null +++ b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-depen.md @@ -0,0 +1,122 @@ +--- +group: configuration-guide +title: Dependency reports +functional_areas: + - Configuration + - System + - Setup +--- + +{% include config/cli-intro.md %} + +## Overview of dependency reports + +You can run the following types of reports: + +- [**Module**](https://glossary.magento.com/module) **dependencies:** Shows the total number of dependencies between modules and whether the dependencies are hard or soft. +- **Circular dependencies:** Shows the total number of dependency chains and the number and list of circular dependencies for each module. +- [**Framework**](https://glossary.magento.com/framework) **dependencies:** Shows the total number of dependencies on the Magento framework by module (including the total number of framework entries for each library). + +A dependency in a comment is also a dependency. + +## Run dependency reports + +Command options: + +```bash +bin/magento info:dependencies:{show-modules|show-modules-circular|show-framework} [-d|--directory=""] [-o|--output="magento/module-store->magento/module-directory->magento/module-config" +"magento/module-config->magento/module-store->magento/module-config" +"magento/module-config->magento/module-cron->magento/module-config" +"magento/module-config->magento/module-email->magento/module-config" +"magento/module-config->magento/module-backend->magento/module-theme->magento/module-customer->magento/module-eav->magento/module-config" +"magento/module-config->magento/module-backend->magento/module-reports->magento/module-config" +"magento/module-config->magento/module-backend->magento/module-sales->magento/module-catalog->magento/module-theme->magento/module-eav->magento/module-config" +"magento/module-config->magento/module-backend->magento/module-sales->magento/module-catalog->magento/module-log->magento/module-eav->magento/module-config" +"magento/module-config->magento/module-backend->magento/module-sales->magento/module-customer->magento/module-checkout->magento/module-catalog-inventory->magento/module-config" +"magento/module-config->magento/module-backend->magento/module-sales->magento/module-customer->magento/module-checkout->magento/module-config" +"magento/module-config->magento/module-backend->magento/module-sales->magento/module-customer->magento/module-theme->magento/module-config" +"magento/module-config->magento/module-backend->magento/module-sales->magento/module-payment->magento/module-config" +"magento/module-config->magento/module-backend->magento/module-sales->magento/module-checkout->magento/module-customer->magento/module-review->magento/module-catalog->magento/module-themeax->magento/module-config" +"magento/module-config->magento/module-backend->magento/module-sales->magento/module-checkout->magento/module-customer->magento/module-review->magento/module-catalog->magento/module-catalog-rule->magento/module-rule->magento/module-eav->magento/module-config" +``` + +### Sample framework dependencies report + +The following is a portion of the output for a sample framework dependencies report: + +```terminal +"Dependencies of framework:","Total number" +"","111" + +"Dependencies for each module:","" +"Magento\Cron","1" +" -- Magento\Framework","143" + +"Magento\CatalogRule","1" +" -- Magento\Framework","234" + +"Magento\Webapi","2" +" -- Magento\Framework","347" +" -- Magento\Server","1" + +"Magento\Checkout","1" +" -- Magento\Framework","759" + +"Magento\Reports","1" +" -- Magento\Framework","553" +``` diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-i18n.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-i18n.md new file mode 100644 index 00000000000..308295b8793 --- /dev/null +++ b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-i18n.md @@ -0,0 +1,344 @@ +--- +group: configuration-guide +title: Translation dictionaries and language packages +functional_areas: + - Configuration + - System + - Setup +--- + +{% include config/cli-intro.md %} + +## Overview of translations + +Magento translations enable you to customize and localize your store for multiple regions and markets. We improved the localization and customization of Magento instances by making translation dictionaries easier to update and maintain and reduced the amount of code coupling and duplication. + +This topic discusses how to generate: + +- Translation dictionaries, which are a convenient way to customize or translate *some* words and phrases, such as those for a custom [module](https://glossary.magento.com/module) or [theme](https://glossary.magento.com/theme). +- Language packages, which enable you to translate *any or all* words and phrases in the Magento application. + +See [Translations overview]. + +We also accept [Community Engineering contributions] using CrowdIn for translations. The project may include package creation and further support using the contributed translations. Join us and other contributors around the globe working to localize Magento! + +## Generate a translation dictionary {#config-cli-subcommands-xlate-dict} + +You can generate a [translation dictionary] to customize existing strings, translate words and phrases in a custom module, localize a theme, or create [language packages](https://glossary.magento.com/language-package). + +### Work with translation dictionaries {#config-cli-subcommands-xlate-dict-dict} + +To begin translating, use a command to generate a dictionary `.csv` file with a collected list of all existing phrases and words. + +Generate the dictionary and translate: + +1. Extract translatable words and phrases from enabled components using the translation collection command. Content extracts into a `.csv` file. +1. Translate the existing words and phrases. You can also add additional custom terms as needed. + + You have options for using the translated dictionary: + +1. You can package the translation dictionaries into a language package and provide the package to the Magento store administrator. + +1. In the Admin, the store administrator [configures the translations]. + +Command options: + +```bash + bin/magento i18n:collect-phrases [-o|--output=""] [-m|--magento] +``` + +The following table explains this command's parameters and values: + +|Parameter|Value|Required?| +|--- |--- |--- | +|``|Path to a directory that has translatable code; in other words, PHP, PHTML, or XML files that have phrases to translate.

The tool starts searching at the path you enter and searches all files and subdirectories it contains.

Do not use this parameter if you use `-m --magento`.|Yes (dictionaries), no (packages).| +|`-m --magento`|Required to create a language package from this translation dictionary. If used, searches the directories that contain bin/magento. This option adds themes or modules to each line in the dictionary.

A sample follows:

"No Items Found","No Items Found",module,Magento_Wishlist|No| +|`-o --output=""`|Specifies the absolute file system path and file name of the translation dictionary .csv file to create. The value you enter is case-sensitive. The name of the .csv file must exactly match the locale name, including the characters' case.

If you omit this parameter, the output is directed to stdout.|No| + +{:.bs-callout-info} +To create a language pack from a translation dictionary, you *must* use the `-m|--magento` option. + +### Translation guidelines {#config-cli-subcommands-xlate-dict-trans} + +Use the following guidelines when translating words and phrases: + +- Change the contents of the second column only. Translate the phrases from English (`US`) to the desired language. +- When creating dictionaries for locales, use the default Magento strings. +- While translating, pay attention to placeholders like `%1`, `%2` and so on. + +Magento uses the placeholders to insert context values; they are *not* used for translations. For example: + +```text +Product '%1' has been added to shopping cart. +``` + +Populates with a value: + +```text +Product 'Multimeter-2000' has been added to shopping cart. +``` + +The resulting phrase must contain at least one of each placeholder. +For example, suppose there are placeholders from `%1` to `%3` in the original phrase. + The translation can have as many of these placeholders in any order, but there must be at least one occurrence of `%1`, `%2`, and `%3`. +The translation cannot contain placeholder values not present in the original value (for example, `%4`, `%5`, and so on). + +An example of translating a phrase: + +```text +"Buy %1 for %2 (%3 incl. tax) each","Compre %1 por %2 (%3 incl. imposto) cada" +``` + +## Create a language package {#config-cli-subcommands-xlate-pack} + +As opposed to a translation dictionary, you can translate any or all words and phrases in the Magento application using a language package. You can translate a particular component---like a module or a theme---using a translation dictionary. [Learn more about language packages]. + +This section discusses how to create a language package, which writes `.csv` files to modules and themes. To create a language package, you must perform the tasks discussed in the following sections: + +1. [Collect and translate words and phrases](#config-cli-subcommands-xlate-dict). + + (The `--magento` parameter is required.) + +1. [Run the language package command](#config-cli-subcommands-xlate-pack-cmd). +1. [Create directories and files](#m2devgde-xlate-files). +1. (Optional.) [Configure multiple packages for a language](#m2devgde-xlate-severalpacks). + +### Run the language package command {#config-cli-subcommands-xlate-pack-cmd} + +Command usage: + +```bash +bin/magento i18n:pack [-m|--mode={merge|replace}] [-d|--allow-duplicates] +``` + +The following table explains this command's parameters and values: + +|Parameter|Value|Required?| +|--- |--- |--- | +|``|Absolute file system path and file name of a .csv file that contains the combined translation dictionary and meta-information necessary for breakdown into a language package.

Use [`bin/magento i18n:collect-phrases`](#config-cli-subcommands-xlate-dict-dict) to create the .csv file then create the language package as discussed in [Create directories and files](#m2devgde-xlate-files).|Yes| +|``|[ISO 639-1] (language) and [ISO 3166] (country) identifier of language used as file name for all resulting .csv files. Examples: `de_DE`, `pt_PT`, `pt_BR`.|Yes| +|`-m --mode`|If a target file already exists, specifies whether to replace the existing language package or merge with the new language pack. Merging overrides any phrases that existed and adds new ones.

Values: merge or replace (default).|No| +|`-d --allow-duplicates`|Include this option to allow duplicates in the language pack. Otherwise, the command fails with an error if it encounters the same phrase in multiple entries with different translations.|No| + +### Create directories and files {#m2devgde-xlate-files} + +Language packages are located in a directory under `app/i18n/` in the Magento file system with the following contents: + +- Required license files +- `composer.json` +- `registration.php` that [registers] the language package +- [`language.xml`](#config-cli-subcommands-xlate-pack-meta-xml) meta-information file + +{:.bs-callout-info} +You must lowercase the entire path. For example, see [`de_de`]. + +To create these files: + +1. Create a directory under `app/i18n`. + + For example, Magento language packages are located in `app/i18n/magento` + +1. Add any license files you require. +1. Add [`composer.json`] that specifies dependencies for your language package. +1. Register the language package with [`registration.php`] +1. Add `language.xml` meta-information file as discussed in the next section. + +#### Language package language.xml {#config-cli-subcommands-xlate-pack-meta-xml} + +When declaring a language package in the `language.xml` configuration file, you must specify the sequence of the language inheritance for this package. + +Language inheritance enables you to create a new translation called a _child_ based on an existing translation called a _parent_. The child translations override the parent. However, if the child translation fails to upload or display or is missing a phrase or word, Magento uses the parent [locale](https://glossary.magento.com/locale). [Examples of language package inheritance](#m2devgde-xlate-inheritancework). + +To declare a package, specify the following information: + +```xml + + + en_GB + magento + en_gb + 100 + + +``` + +Where: + +- **``:** Language package locale (required) +- **``:** Module's vendor name (required) +- **``:** Language package name (required) +- **``:** Priority of uploading a package when there are several language packages available for a store +- **``:** Parent language package locale from which to inherit dictionaries + +If necessary, you can specify several parent packages. The parent packages are applied on a first listed, first used basis. + +#### Example of language inheritance {#m2devgde-xlate-inheritancework} + +Suppose a language package inherits from two other packages, and that those packages also have parent and "grandparent" packages. + +If a language package inherits from two packages, its `language.xml` might look like the following: + +```xml + + en_GB + magento + language_pack + 100 + + + +``` + +In the preceding example: + +- `language_package_one` inherits from `en_au_package` and `en_au_package` inherits from `en_ie_package` +- `language_package_two` inherits from `en_ca_package` and `en_ca_package` inherits from `en_us_package` + +If the Magento application cannot find word or phrase in the `en_GB` package, it looks in other packages in following sequence: + +1. `parent-package-one/language_package_one` +1. `/en_au_package` +1. `/en_ie_package` +1. `parent-package-two/language_package_two` +1. `/en_ca_package` +1. `/en_us_package` + +Specifying all inheritances between the language packages might result in creating circular inheritance chains. Use [Magento\Test\Integrity\App\Language\CircularDependencyTest] test to locate and fix such chains. + +### Configure multiple packages for a language {#m2devgde-xlate-severalpacks} + +To help you to make your store more flexible, you can upload several language packages for the same language in your store. Thus, you can use different custom packages for different parts of your store because the system compiles a single package from all packages that are available for a language. + +To enable an additional package for an existing language, name the new package any name except for an existing language code name (to avoid confusion). Specify configurations of a package in the language package's `language.xml` meta-information file as discussed in the next section. + +## Examples of using translation commands + +The following sections provide end-to-end examples of using the commands discussed in this topic to create translation dictionaries and translation packages: + +- [Example: Create a translation dictionary for a module or theme](#config-cli-subcommands-xlate-example1) +- [Example: Create a language package](#config-cli-subcommands-xlate-example2) + +### Example: Create a translation dictionary for a module or theme {#config-cli-subcommands-xlate-example1} + +To add a German translation to a module or theme that you want to distribute to other merchants: + +1. Collect phrases from your module: + + ```bash + bin/magento i18n:collect-phrases -o "/var/www/html/magento2/app/code/ExampleCorp/SampleModule/i18n/xx_YY.csv" /var/www/html/magento2/app/code/ExampleCorp/SampleModule + ``` + + {:.bs-callout-info} + The .csv file name must _exactly match_ the locale, including the characters' case. + +1. Translate the words and phrases using [these guidelines](#config-cli-subcommands-xlate-dict-trans). +1. If necessary, copy `xx_YY.csv` to `/var/www/html/magento2/app/code/ExampleCorp/SampleModule/i18n` or to the module's theme directory (depending on whether the translation dictionary is for a module or a theme). + +### Example: Create a language package {#config-cli-subcommands-xlate-example2} + +Similar to the preceding example, generate a `.csv` file, but instead of specifying a module or theme directory, specify the entire Magento application root directory. The resulting `.csv` contains any phrases that the command could find in the code. + +1. Collect phrases from your module: + + ```bash + bin/magento i18n:collect-phrases -o "/var/www/html/magento2/xx_YY.csv" -m + ``` + + {:.bs-callout-info} + The `.csv` file name must _exactly match_ the locale, including the characters' case. + +1. Translate the words and phrases using [these guidelines](#config-cli-subcommands-xlate-dict-trans). +1. Create the language package. + + ```bash + bin/magento i18n:pack /var/www/html/magento2/xx_YY.csv -d xx_YY + ``` + +1. Create a directory for the language package. + + For example, `/var/www/html/magento2/app/i18n/ExampleCorp/xx_yy` + +1. In that directory, add all of the following: + + - A license, if required + - `composer.json` (sample following) + - `registration.php` (sample following) + - `language.xml` (sample following) + + **Sample `composer.json`:** + + ```json + { + "name": "examplecorp/language-xx_yy", + "description": "Sample language", + "version": "100.0.2", + "license": [ + "OSL-3.0", + "AFL-3.0" + ], + "require": { + "magento/framework": "100.0.*" + }, + "type": "magento2-language", + "autoload": { + "files": [ + "registration.php" + ] + } + } + ``` + + **Sample `registration.php`:** + + ```php + + + + + xx_YY + examplecorp + xx_yy + + ``` + +## Additional information + +- [Translations overview] +- [Translate theme strings] + +[Translate theme strings]: {{ page.baseurl }}/frontend-dev-guide/translations/translate_theory.html +[Translations overview]: {{ page.baseurl }}/frontend-dev-guide/translations/xlate.html +[Community Engineering contributions]: {{ page.baseurl }}/frontend-dev-guide/translations/xlate.html#translations-project +[translation dictionary]: {{ page.baseurl }}/frontend-dev-guide/translations/xlate.html#m2devgde-xlate-dictionaries +[configures the translations]: {{ site.user_guide_url }}/stores/store-language-add.html?Highlight=translation +[Learn more about language packages]: {{ page.baseurl }}/frontend-dev-guide/translations/xlate.html#m2devgde-xlate-languagepack +[ISO 639-1]: http://www.iso.org/iso/home/standards/language_codes.htm +[ISO 3166]: http://www.iso.org/iso/country_codes.htm +[registers]: {{ page.baseurl }}/extension-dev-guide/build/component-registration.html +[`de_de`]: {{ site.mage2bloburl }}/{{ page.guide_version }}/app/i18n/Magento/de_DE/registration.php +[`composer.json`]: {{ page.baseurl }}/extension-dev-guide/build/composer-integration.html +[`registration.php`]: {{ page.baseurl }}/extension-dev-guide/build/component-registration.html +[Magento\Test\Integrity\App\Language\CircularDependencyTest]: {{ site.mage2bloburl }}/{{ page.guide_version }}/dev/tests/static/testsuite/Magento/Test/Integrity/App/Language/CircularDependencyTest.php diff --git a/src/guides/v2.4/config-guide/cli/config-cli-subcommands-index.md b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-index.md new file mode 100644 index 00000000000..2113305eb20 --- /dev/null +++ b/src/guides/v2.4/config-guide/cli/config-cli-subcommands-index.md @@ -0,0 +1,274 @@ +--- +group: configuration-guide +title: Manage the indexers +functional_areas: + - Configuration + - System + - Setup +--- + +{% include config/cli-intro.md %} + +## View a list of indexers + +To view a list of all indexers: + +```bash +bin/magento indexer:info +``` + +The list displays as follows: + +```terminal +design_config_grid Design Config Grid +customer_grid Customer Grid +catalog_category_product Category Products +catalog_product_category Product Categories +catalogrule_rule Catalog Rule Product +catalog_product_attribute Product EAV +inventory Inventory +catalogrule_product Catalog Product Rule +cataloginventory_stock Stock +catalog_product_price Product Price +catalogsearch_fulltext Catalog Search +``` + +## View indexer status + +Use this command to view the status of all indexers or specific indexers. For example, find out if an indexer needs to be reindexed. + +Command options: + +```bash +bin/magento indexer:status [indexer] +``` + +Where `[indexer]` is a space-separated list of indexers. Omit `[indexer]` to view the status of all indexers. + +To list status of all indexers: + +```bash +bin/magento indexer:status +``` + +Sample result: + +```terminal ++----------------------+------------------+-----------+---------------------+---------------------+ +| Title | Status | Update On | Schedule Status | Schedule Updated | ++----------------------+------------------+-----------+---------------------+---------------------+ +| Catalog Product Rule | Reindex required | Save | | | +| Catalog Rule Product | Reindex required | Save | | | +| Catalog Search | Ready | Save | | | +| Category Products | Reindex required | Schedule | idle (0 in backlog) | 2021-06-28 09:45:53 | +| Customer Grid | Ready | Schedule | idle (0 in backlog) | 2021-06-28 09:45:52 | +| Design Config Grid | Ready | Schedule | idle (0 in backlog) | 2018-06-28 09:45:52 | +| Inventory | Ready | Save | | +| Product Categories | Reindex required | Schedule | idle (0 in backlog) | 2021-06-28 09:45:53 | +| Product EAV | Reindex required | Save | | | +| Product Price | Reindex required | Save | | | +| Stock | Reindex required | Save | | | ++----------------------+------------------+-----------+---------------------+---------------------+ +``` + +## Reindex {#config-cli-subcommands-index-reindex} + +Use this command to reindex all or selected indexers one time only. + +{:.bs-callout-info} +This command reindexes one time only. To keep indexers up-to-date, you must set up a [cron job]({{ page.baseurl }}/config-guide/cli/config-cli-subcommands-cron.html). + +Command options: + +```bash +bin/magento indexer:reindex [indexer] +``` + +Where ```[indexer]``` is a space-separated list of indexers. Omit ```[indexer]``` to reindex all indexers. + +To reindex all indexers: + +```bash +bin/magento indexer:reindex +``` + +Sample result: + +```terminal +Design Config Grid index has been rebuilt successfully in