Skip to content
This repository was archived by the owner on Nov 19, 2024. It is now read-only.

Commit 788acee

Browse files
Merge pull request #8485 from magento/sync-2.4.2
Sync 2.4.2-develop
2 parents 01eb1ab + 3f12e73 commit 788acee

33 files changed

+761
-569
lines changed

src/_data/whats-new.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,17 @@ description: This page contains recent changes that we think you'd like to know
44
We exclude from this list proofreading, spelling checks, and all minor updates.
55
link: "/whats-new.html"
66
thread: "/whatsnew-feed.xml"
7-
updated: Wed Dec 16 16:19:47 2020
7+
updated: Mon Jan 4 22:34:52 2021
88
entries:
9+
- description: Added a new topic with instructions for [reverting from a split database
10+
to a single database](https://devdocs.magento.com/guides/v2.4/config-guide/revert-split-database.html)
11+
implementation.
12+
versions: 2.3.x, 2.4.x
13+
type: New Topic
14+
date: December 21, 2020
15+
link: https://github.com/magento/devdocs/pull/8422
16+
contributor: jeff-matthews
17+
profile: https://github.com/jeff-matthews
918
- description: Added an [example](https://devdocs.magento.com/guides/v2.4/javascript-dev-guide/javascript/requirejs.html)
1019
of overwriting a Knockout JS .html template file in the `requirejs-config.js`
1120
file.

src/_includes/cloud/enable-ssh.md

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -38,34 +38,23 @@ If the directory does not exist or has no SSH key files, you must generate at le
3838

3939
If you have at least one SSH key in your directory, add the key to your Magento and GitHub accounts:
4040

41-
- [Add an SSH key to your GitHub account](https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/)
41+
- [Add an SSH key to your GitHub account](https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/) and [test the SSH connection](https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/testing-your-ssh-connection).
4242
- [Add your public SSH key to your Magento account](#ssh-add-to-account)
4343

44-
### Test the SSH keys {#test}
45-
46-
After adding the SSH keys, test the SSH connection to GitHub:
47-
48-
1. In the terminal, enter the following command:
49-
50-
```bash
51-
52-
```
53-
54-
1. You may see a warning that the authenticity of the host can't be established followed by an RSA fingerprint. Enter `yes` to continue.
55-
56-
1. If successful, you should receive a success message. If you receive a permission denied error, see [Error: Permission denied (publickey)](https://help.github.com/articles/error-permission-denied-publickey) troubleshooting on GitHub.
57-
5844
## Add a public SSH key to your Magento account {#ssh-add-to-account}
5945

6046
You can add SSH keys to your account in any of the following ways:
6147

6248
- Using the [{{site.data.var.ece}} CLI](#add-key-cli)
6349
- Using the [{{site.data.var.ece}} Web Interface](#add-key-web)
50+
- Using the [{{site.data.var.ece}} Cloud account Dashboard](#add-key-cloud)
51+
52+
After you add a key, you must [redeploy active Cloud environments](#update-cloud-environments-with-a-new-ssh-key) to upload the key.
6453

6554
### Add your SSH key using the CLI {#add-key-cli}
6655

6756
{:.procedure}
68-
To add an SSH key using the CLI:
57+
To add an SSH key using the [Magento Cloud CLI]({{site.baseurl}}/cloud/reference/cli-ref-topic.html):
6958

7059
1. Open a terminal application on your local workstation.
7160

@@ -118,8 +107,23 @@ To add an SSH key using the Project Web interface:
118107

119108
- Follow the prompts on your screen to complete the task.
120109

121-
{:.bs-callout-tip}
122-
You can view and manage the SSH keys on your account in _Account settings_. In the upper right corner of the Project Web interface, click **your-user-name** > **Account Settings**.
110+
### Add a key from the Cloud Account dashboard {#add-key-cloud}
111+
112+
You can add your SSH public key directly from the Cloud _Account Settings_ page.
113+
114+
1. Open your [Cloud account page](https://accounts.magento.cloud) and log in if required.
115+
1. On the Cloud account dashboard, click the **Account Settings** tab.
116+
1. Under _SSH keys_, click **Add a public key**.
117+
118+
## Update Cloud environments with a new SSH key
119+
120+
After you add an SSH key, redeploy each active Cloud environment to upload the new key.
121+
122+
Use the [Magento Cloud CLI]({{site.baseurl}}/cloud/reference/cli-ref-topic.html) to redeploy the environment:
123+
124+
```bash
125+
magento-cloud redeploy --project <project-name> --host <host-name> --environment <environment-name>
126+
```
123127

124128
## Set global Git variables
125129

src/_includes/install/sampledata/sample-data_list-of-modules.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
* magento/module-theme-sample-data
2222
* magento/module-widget-sample-data
2323
* magento/module-wishlist-sample-data
24-
* magento/sample-data
2524
* magento/sample-data-media
2625

2726
{{site.data.var.ee}} only:

src/cloud/project/project-webint-basic.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ To set environment specific variables in the Project Web Interface:
9898

9999
![Set environment variables]({{ site.baseurl }}/common/images/cloud/cloud_env-var.png)
100100

101-
1. As needed, select options for **JSON value**, **Visible during build**, and **Visible during runtime**. If you do not have Super User access, you may only see the JSON value option.
101+
1. As needed, select options for **JSON value**, **Enabled**, **Inheritable by child environments** and **Sensitive**. If you do not have Super User access, you may only see the JSON value option.
102102
1. Click **Add Variable**. After you add the variable, the environment will deploy. Wait until deployment completes before more edits.
103103

104104
{:.bs-callout-warning}
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
// When loaded, this script finds all link elements that point to the glossary
1+
// When loaded, this script finds all link elements that point to the glossary
22
// and applies the glossary-term style
33
//
44
// TODO: Use this script to add pop up functionality when the following issue
55
// is resolved: https://github.com/magento/glossary/issues/13
66

7-
document.querySelectorAll("a").forEach(element => {
8-
if (element.href.indexOf("glossary.magento.com") > -1) {
9-
element.className = "glossary-term";
7+
document.querySelectorAll('a').forEach(element => {
8+
if (element.href.indexOf('glossary.magento.com') > -1) {
9+
element.className = 'glossary-term'
1010
}
11-
});
11+
})

src/compliance/privacy/gdpr.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ The European Union (EU) enacted [General Data Protection Regulation](https://ec.
1010

1111
System integrators can use the data flow diagrams and database information in the Personal Information Reference to build scripts to resolve use cases similar to the following:
1212

13-
- A shopper asks for a copy of the data the merchant has stored about her
14-
- A shopper requests that all information about him be deleted
13+
- A shopper asks for a copy of the data the merchant has stored about them
14+
- A shopper requests that all information about them be deleted
1515

1616
## Personal Information Reference
1717

src/guides/v2.3/config-guide/prod/config-reference-var-name.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ To get these values from the database:
140140
1. Use the following SQL queries to find the relevant values:
141141

142142
```shell
143-
SELECT * FROM STORES;
143+
SELECT * FROM STORE;
144144
SELECT * FROM STORE_WEBSITE;
145145
```
146146

src/guides/v2.3/frontend-dev-guide/themes/admin_theme_apply.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,9 @@ Each step is described further with more details.
4242

4343
## Specify the custom Admin theme in `di.xml` {#specify_di}
4444

45-
You need to specify the admin theme to be used in the `<your_module_dir>/etc/adminhtml/di.xml` file. Add it, if the file does not yet exist in your module.
45+
You need to specify the admin theme to be used in the `<your_module_dir>/etc/di.xml` file. Add it, if the file does not yet exist in your module.
4646

47-
In `<your_module_dir>/etc/adminhtml/di.xml` add the following (replace the placeholders with the vendor name and theme code of your Admin theme):
47+
In `<your_module_dir>/etc/di.xml` add the following (replace the placeholders with the vendor name and theme code of your Admin theme):
4848

4949
```xml
5050
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">

src/guides/v2.3/graphql/authorization-tokens.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,12 @@ You can now use this token in the Authorization request header field for any que
4343

4444
If necessary, you also can [revoke the customer's token]({{ page.baseurl }}/graphql/mutations/revoke-customer-token.html
4545

46+
By default, a customer token is valid for 1 hour. You can change these values from Admin by selecting **Stores** > **Settings** > **Configuration** > **Services** > **OAuth** > **Access Token Expiration** > **Customer Token Lifetime**.
47+
4648
## Admin tokens
4749

4850
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.
4951

5052
Magento does not provide a GraphQL mutation that generates an admin token. You must use the `POST /V1/integration/admin/token` REST endpoint instead. [Generate the admin token]({{page.baseurl}}/rest/tutorials/prerequisite-tasks/create-admin-token.html) shows how to use this endpoint.
53+
54+
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**.

src/guides/v2.3/graphql/mutations/apply-store-credit.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,11 @@ Attribute | Data Type | Description
110110
{% include graphql/cart-object.md %}
111111

112112
[Cart query output]({{page.baseurl}}/graphql/queries/cart.html#cart-output) provides more information about the `Cart` object.
113+
114+
## Errors
115+
116+
Error | Description
117+
--- | ---
118+
`Could not find a cart with ID \"xxxxx\"` | The ID provided in the `cart_id` field is invalid or the cart does not exist for the customer.
119+
`The cart isn't active` | The cart with the given cart ID is unavailable, because the items have been purchased and the cart ID becomes inactive.
120+
`Field ApplyStoreCreditToCartInput.cart_id of required type String! was not provided` | The value specified in the `ApplyStoreCreditToCartInput.cart_id` argument is empty.

src/guides/v2.3/graphql/mutations/create-payflow-pro-token.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,14 @@ Attribute | Data Type | Description
103103
`result_code` | Int! | The **RESULT** returned by PayPal. A value of `0` indicates the transaction was approved
104104
`secure_token` | String! | Secure token generated by PayPal
105105
`secure_token_id` | String! | Secure token ID generated by PayPal
106+
107+
## Errors
108+
109+
Error | Description
110+
--- | ---
111+
`Could not find a cart with ID "XXX"` | The specified `cart_id` value does not exist in the `quote_id_mask` table.
112+
`Field PayflowProTokenInput.cart_id of required type String! was not provided.` | You must specify the `cart_id` attribute.
113+
`Field PayflowProTokenInput.urls of required type PayflowProUrlInput! was not provided.` | You must specify the `urls` attribute.
114+
`Field PayflowProUrlInput.return_url of required type String! was not provided.` | You must specify the `return_url` attribute.
115+
`Field PayflowProUrlInput.error_url of required type String! was not provided.` | You must specify the `error_url` attribute.
116+
`Field PayflowProUrlInput.cancel_url of required type String! was not provided.` | You must specify the `cancel_url` attribute.

src/guides/v2.3/graphql/mutations/create-paypal-express-token.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,3 +112,14 @@ Attribute | Data Type | Description
112112
--- | --- | ---
113113
`edit` | String | The PayPal URL that allows the buyer to edit their checkout details
114114
`start` | String | The URL to the PayPal login page
115+
116+
## Errors
117+
118+
Error | Description
119+
--- | ---
120+
`Required parameter "cart_id" is missing` | The mutation does not contain a `cart_id` argument.
121+
`Could not find a cart with ID "XXX"` | The specified `cart_id` value does not exist in the `quote_id_mask` table.
122+
`Field PaypalExpressTokenInput.code of required type String! was not provided.` | The required attribute `code` is missing.
123+
`The requested Payment Method is not available.` | The payment method is not configured.
124+
`Field PaypalExpressUrlsInput.cancel_url of required type String! was not provided.` | The required attribute `cancel_url` is missing.
125+
`Field PaypalExpressUrlsInput.return_url of required type String! was not provided.` | The required attribute `return_url` is missing.

src/guides/v2.3/graphql/mutations/redeem-giftcard-balance.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,11 @@ Attribute | Data Type | Description
7979
--- | --- | ---
8080
`balance` | Money | The remaining balance of the gift card, including the currency
8181
`code` | String | The gift card code
82-
`expiration_date` | String | The date when the gift card expires, if any
82+
`expiration_date` | String | The date when the gift card expires, if any
83+
84+
## Errors
85+
86+
Error | Description
87+
--- | ---
88+
`Gift card not found` | The specified `gift_card_code` value does not exist in the `giftcardaccount` table or the amount has been already redeemed.
89+
`Field GiftCardAccountInput.gift_card_code of required type String! was not provided` | The value specified in the `GiftCardAccountInput.gift_card_code` argument is empty.

src/guides/v2.3/graphql/queries/cart.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -790,3 +790,11 @@ Attribute | Data Type | Description
790790
* [setShippingMethodsOnCart mutation]({{page.baseurl}}/graphql/mutations/set-shipping-method.html)
791791
* [setBillingAddressOnCart mutation]({{page.baseurl}}/graphql/mutations/set-billing-address.html)
792792
* [setPaymentMethodOnCart mutation]({{page.baseurl}}/graphql/mutations/set-payment-method.html)
793+
794+
## Errors
795+
796+
Error | Description
797+
--- | ---
798+
`Could not find a cart with ID \"xxxxx\"` | The ID provided in the `cart_id` field is invalid or the cart does not exist for the customer.
799+
`The cart isn't active` | The cart with the specified cart ID is unavailable, because the items have been purchased and the cart ID becomes inactive.
800+
`Field cart.cart_id of required type String! was not provided` | The value specified in the `cart.cart_id` argument is empty.

src/guides/v2.3/graphql/queries/get-hosted-pro-url.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,11 @@ The query returns the PayPal URL that enables the customer to sign in to PayPal
5050
Attribute | Data type | Description
5151
--- | --- | ---
5252
`secure_form_url` | String | Secure URL generated by PayPal
53+
54+
## Errors
55+
56+
Error | Description
57+
--- | ---
58+
`Could not find a cart with ID \"xxxxx\"` | The ID provided in the `cart_id` field is invalid or the cart does not exist for the customer.
59+
`The cart isn't active` | The cart with the specified cart ID is unavailable, because the items have been purchased and the cart ID becomes inactive.
60+
`Field HostedProUrlInput.cart_id of required type String! was not provided` | The value specified in the `HostedProUrlInput.cart_id` argument is empty.

src/guides/v2.3/graphql/queries/giftcard-account.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,10 @@ Attribute | Data Type | Description
6969
`balance` | Money | Returns the currency and remaining balance of the gift card
7070
`code` | String | Returns the gift card code
7171
`expiration_date` | String | Returns the date when the gift card expires, if any
72+
73+
## Errors
74+
75+
Error | Description
76+
--- | ---
77+
`Gift card not found` | The specified `gift_card_code` value does not exist in the `giftcardaccount` table, or the full amount has already been redeemed.
78+
`Field GiftCardAccountInput.gift_card_code of required type String! was not provided` | The value specified in the `GiftCardAccountInput.gift_card_code` argument is empty.

src/guides/v2.3/graphql/queries/is-email-available.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,10 @@ Attribute | Data Type | Description
5050
## Related topics
5151

5252
[customer query]({{page.baseurl}}/graphql/queries/customer.html)
53+
54+
## Errors
55+
56+
Error | Description
57+
--- | ---
58+
`Email is invalid` | The given email-id is not in a proper format.
59+
`Field isEmailAvailable.email of required type String! was not provided` | The value specified in the `isEmailAvailable.email` argument is empty.

src/guides/v2.3/graphql/queries/url-resolver.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,3 +134,9 @@ Attribute | Data Type | Description
134134
## Related topics
135135

136136
[Products endpoint]({{page.baseurl}}/graphql/queries/products.html)
137+
138+
## Errors
139+
140+
Error | Description
141+
--- | ---
142+
`Field urlResolver.url of type String! is required but not provided.` | The value specified in the `urlResolver.url` argument is empty.

src/guides/v2.3/howdoi/checkout/checkout_customize.md

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -154,16 +154,47 @@ To disable the component in your `checkout_index_index.xml` use the following in
154154

155155
## Remove a component {#remove}
156156

157-
To remove a component from layout rendering, you need to create a [plugin]({{ page.baseurl }}/extension-dev-guide/plugins.html) for the `\Magento\Checkout\Block\Checkout\LayoutProcessor::process` method. In your plugin, implement the around method removing the corresponding layout nodes at run-time.
157+
To keep a component from being rendered, create a layout processor. A layout processor consists of a class, implementing
158+
the `\Magento\Checkout\Block\Checkout\LayoutProcessorInterface` interface, and thus a `LayoutProcessorInterface::process($jsLayout)` method.
159+
160+
```php
161+
<?php
162+
163+
namespace <Vendor>\<Module>\Block\Checkout;
164+
165+
use Magento\Checkout\Block\Checkout\LayoutProcessorInterface;
166+
167+
class OurLayoutProcessor implements LayoutProcessorInterface
168+
{
169+
/**
170+
* @param array $jsLayout
171+
* @return array
172+
*/
173+
public function process($jsLayout)
174+
{
175+
//%path_to_target_node% is the path to the component's node in checkout_index_index.
176+
unset($jsLayout['components']['checkout']['children']['steps'][%path_to_target_node%]);
177+
return $jsLayout;
178+
}
179+
}
180+
```
158181

159-
The following sample is an example of the around method removing a component:
182+
Once created, add the layout processor through Dependency Injection (DI).
160183

161-
```php?start_inline=1
162-
unset($jsLayout['components']['checkout']['children']['steps'][%path_to_target_node%]); //%path_to_target_node% is the path to the component's node in checkout_index_index.xml
163-
return $jsLayout;
184+
```xml
185+
<?xml version="1.0"?>
186+
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
187+
<type name="Magento\Checkout\Block\Onepage">
188+
<arguments>
189+
<argument name="layoutProcessors" xsi:type="array">
190+
<item name="ourLayoutProcessor" xsi:type="object"><Vendor>\<Module>\Block\Checkout\OurLayoutProcessor</item>
191+
</argument>
192+
</arguments>
193+
</type>
194+
</config>
164195
```
165196

166-
If you want to use this sample in your code, replace the `%path_to_target_node%` placeholder with real value.
197+
To use this sample in your code, replace the `%path_to_target_node%` placeholder with real value.
167198

168199
{:.bs-callout-info}
169-
Disable vs remove a component: If you disable a component, it is loaded but not rendered. If you remove a component, it is removed and not loaded.
200+
Disable vs remove a component: A disabled component is loaded but not rendered. If you remove a component, it is removed and not loaded.

0 commit comments

Comments
 (0)