diff --git a/.github/linters/.textlintrc b/.github/linters/.textlintrc new file mode 100644 index 000000000..de6fecc7b --- /dev/null +++ b/.github/linters/.textlintrc @@ -0,0 +1,39 @@ +{ + "rules": { + "terminology": { + "severity" : "warning", + "exclude": [ + "back[- ]end(\\w*)", + "bug[- ]fix(es)?", + "client ?side", + "end-?user(s)?", + "indexes\\b", + "front[- ]end(\\w*)", + "Mac ?OS", + "OS X", + "readme(s)?", + "server ?side", + "smartphone(s)?", + "spell-?check(er|ing)?", + "style-?sheet(s)?", + "web-?page(s)?", + "web[- ]?site(s)?", + "white[- ]space", + "ZIP" + ], + "terms": [ + ["bug[- ]fix", "bugfix"], + ["bug-?fixes", "bug fixes"], + ["indices\\b", "indexes"], + "macOS", + "ReadMe", + ["smart[- ]phone(s)?", "smartphone$1"], + ["spell[- ]?check(er|ing)", "spelling checker$1"], + "UNIX", + ["web[- ]page(s)?", "webpage$1"], + ["web[- ]site(s)?", "website$1"], + ["white-?space", "white space"] + ] + } + } +} diff --git a/.github/super-linter.env b/.github/super-linter.env index 89796a4c0..4433f0997 100644 --- a/.github/super-linter.env +++ b/.github/super-linter.env @@ -1,5 +1,8 @@ IGNORE_GITIGNORED_FILES=true -VALIDATE_MARKDOWN=true MARKDOWN_CONFIG_FILE=.markdownlint.yml -VALIDATE_YAML=true +VALIDATE_ALL_CODEBASE=true +VALIDATE_GITHUB_ACTIONS=true VALIDATE_JSON=true +VALIDATE_MARKDOWN=true +VALIDATE_NATURAL_LANGUAGE=true +VALIDATE_YAML=true diff --git a/.github/workflows/test-pull-request.yml b/.github/workflows/test-pull-request.yml index 6fbb7b458..09c8592d7 100644 --- a/.github/workflows/test-pull-request.yml +++ b/.github/workflows/test-pull-request.yml @@ -1,85 +1,89 @@ --- -########################### -########################### -## Pull request testing ## -########################### -########################### -name: Latest Pull Request - -# Documentation: -# - Workflow: https://help.github.com/en/articles/workflow-syntax-for-github-actions -# - SuperLinter: https://github.com/github/super-linter -# - Link validation: https://github.com/remarkjs/remark-validate-links - -###################################################### -# Start the job on a pull request to the main branch # -###################################################### -on: pull_request - -############### -# Set the Job # -############### -jobs: - validate: - # Set the agent to run on - runs-on: ubuntu-latest - - ############################################ - # Grant status permission for MULTI_STATUS # - ############################################ - permissions: - contents: read - packages: read - statuses: write - - ################## - # Load all steps # - ################## - steps: - ########################## - # Checkout the code base # - ########################## - - name: Checkout Code - uses: actions/checkout@v4 - with: - # Full git history is needed to get a proper list of changed files - # within `super-linter` - fetch-depth: 0 - - run: cat ".github/super-linter.env" >> "$GITHUB_ENV" - - ################################ - # Run Linters against code base # - ################################ - - name: Lint Code Base - # - # Use full version number to avoid cases when a next - # released version is buggy - # About slim image: https://github.com/github/super-linter#slim-image - uses: super-linter/super-linter/slim@v5.7.2 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - DEFAULT_BRANCH: main - VALIDATE_ALL_CODEBASE: false - VALIDATE_GITHUB_ACTIONS: true - - - name: Setup Node - uses: actions/setup-node@v3 - with: - node-version-file: '.nvmrc' - cache: 'yarn' - cache-dependency-path: 'yarn.lock' - - - name: Enable Corepack for Yarn - run: corepack enable - - - name: Install Dependencies - run: yarn install - env: - YARN_ENABLE_IMMUTABLE_INSTALLS: false - - - name: Check links - run: yarn test - - - name: Build site - if: ${{ success() }} - run: yarn build + ########################### + ########################### + ## Pull request testing ## + ########################### + ########################### + name: Validate pull request + + # Documentation: + # - Workflow: https://help.github.com/en/articles/workflow-syntax-for-github-actions + # - SuperLinter: https://github.com/github/super-linter + # - Link validation: https://github.com/remarkjs/remark-validate-links + + ###################################################### + # Start the job on a pull request to the main branch # + ###################################################### + on: pull_request + + ############### + # Set the Job # + ############### + jobs: + lint: + # Set the agent to run on + runs-on: ubuntu-latest + + ############################################ + # Grant status permission for MULTI_STATUS # + ############################################ + permissions: + contents: read + packages: read + statuses: write + + ################## + # Load all steps # + ################## + steps: + ########################## + # Checkout the code base # + ########################## + - name: Checkout Code + uses: actions/checkout@v4 + with: + # Full git history is needed to get a proper list of changed files + # within `super-linter` + fetch-depth: 0 + - name: Load super-linter configuration + run: cat .github/super-linter.env >> "$GITHUB_ENV" + + ################################ + # Run Linters against code base # + ################################ + - name: Lint Code Base + # + # Use full version number to avoid cases when a next + # released version is buggy + # About slim image: https://github.com/github/super-linter#slim-image + uses: super-linter/super-linter/slim@v6.7.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + DEFAULT_BRANCH: main + test_and_build: + runs-on: ubuntu-latest + needs: lint + steps: + - name: Checkout Code + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version-file: '.nvmrc' + cache: 'yarn' + cache-dependency-path: 'yarn.lock' + + - name: Enable Corepack for Yarn + run: corepack enable + + - name: Install Dependencies + run: yarn install + env: + YARN_ENABLE_IMMUTABLE_INSTALLS: false + + - name: Check links + run: yarn test + + - name: Build site + run: yarn build diff --git a/.textlintrc b/.textlintrc new file mode 120000 index 000000000..ed3ddc246 --- /dev/null +++ b/.textlintrc @@ -0,0 +1 @@ +.github/linters/.textlintrc \ No newline at end of file diff --git a/README.md b/README.md index e451aaea3..dc6fc5c95 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Ensure that your local environment matches the prerequisites described in the Ad To build the site locally: -1. Clone this repo. +1. Clone this repository. 1. Install project dependencies. ```bash diff --git a/src/_includes/graphql/payment-methods/payflow-link-workflow.md b/src/_includes/graphql/payment-methods/payflow-link-workflow.md index abe9d49bb..9fbf5fcb6 100644 --- a/src/_includes/graphql/payment-methods/payflow-link-workflow.md +++ b/src/_includes/graphql/payment-methods/payflow-link-workflow.md @@ -4,7 +4,7 @@ 1. The client runs the [`placeOrder`](/src/pages/graphql/schema/cart/mutations/place-order.md) mutation, which creates an order and begins the authorization process. -1. The application requests a secure token from the Paypal gateway. +1. The application requests a secure token from the PayPal gateway. 1. The gateway response includes a secure token, a secure token ID, and the URL to use for requesting the form in step 9. This token secures the data for a one-time transaction and is valid for 30 minutes. diff --git a/src/pages/get-started/api-security.md b/src/pages/get-started/api-security.md index fe2f613a5..771c6e436 100644 --- a/src/pages/get-started/api-security.md +++ b/src/pages/get-started/api-security.md @@ -159,7 +159,7 @@ If you need to change the default limits for REST endpoints, then edit the `weba The maximum page size setting controls the pagination of various web API responses. By default, the maximum value is `300`. You can change the default in the Admin by selecting **Stores** > Settings > **Configuration** > **Services** > **Web API Input Limits** or **GraphQl Input Limits** > **Maximum Page Size** field. -[GraphQL security configuration](../graphql/usage/security-configuration.md describes how to set the maximum page size in GraphQL. +[GraphQL security configuration](../graphql/usage/security-configuration.md) describes how to set the maximum page size in GraphQL. ## Default page size diff --git a/src/pages/get-started/authentication/gs-authentication-oauth.md b/src/pages/get-started/authentication/gs-authentication-oauth.md index 4132013db..2b72d41b4 100644 --- a/src/pages/get-started/authentication/gs-authentication-oauth.md +++ b/src/pages/get-started/authentication/gs-authentication-oauth.md @@ -101,7 +101,7 @@ You must include these request parameters in the `Authorization` header in the Parameter | Description --- | --- -`oauth_consumer_key` | The consumer key value that you retrieve after you register the integration. +`oauth_consumer_key` | The consumer key-value that you retrieve after you register the integration. `oauth_nonce` | A random value that is uniquely generated by the application. `oauth_signature` | A generated value (signature) `oauth_signature_method` | The name of the signature method used to sign the request. Must be the value `HMAC-SHA256`. @@ -128,7 +128,7 @@ To use the access token to make web API calls: You must include these request parameters in the `Authorization` request header in the call: -* `oauth_consumer_key`. The customer key value provided after the registration of the application. +* `oauth_consumer_key`. The customer key-value provided after the registration of the application. * `oauth_nonce`. A random value, uniquely generated by the application. * `oauth_signature_method`. The name of the signature method used to sign the request. Valid values are: `HMAC-SHA256`. * `oauth_signature`. A generated value (signature). @@ -137,7 +137,7 @@ You must include these request parameters in the `Authorization` request header ## The OAuth signature -All OAuth handshake requests and Web Api requests include the signature as part of Authorization header. Its generated as follows: +All OAuth handshake requests and Web API requests include the signature as part of Authorization header. Its generated as follows: You concatenate a set of URL-encoded attributes and parameters to construct the signature base string. diff --git a/src/pages/get-started/authentication/gs-authentication-session.md b/src/pages/get-started/authentication/gs-authentication-session.md index da37fafde..592573d61 100644 --- a/src/pages/get-started/authentication/gs-authentication-session.md +++ b/src/pages/get-started/authentication/gs-authentication-session.md @@ -30,7 +30,7 @@ Similarly, if an admin is logged in to the Admin and the JavaScript widget invok Admin session-based authentication is not currently possible for API endpoints. -The session based authentication functionality is restricted to AJAX calls. Direct browser requests cannot be made due to security vulnerabilities. A developer can create a custom storefront widget that can issue requests without additional authentication steps. +The session based authentication functionality is restricted to Ajax calls. Direct browser requests cannot be made due to security vulnerabilities. A developer can create a custom storefront widget that can issue requests without additional authentication steps. ## Related topic diff --git a/src/pages/get-started/gs-curl.md b/src/pages/get-started/gs-curl.md index 49e64279d..e8add651d 100644 --- a/src/pages/get-started/gs-curl.md +++ b/src/pages/get-started/gs-curl.md @@ -156,7 +156,7 @@ $this->curl->setCookies($cookies); ### Example usage -For example, the `Magento\Marketplace\Model\Partners` class gets partners info using cURL from the api of Magento connect. +For example, the `Magento\Marketplace\Model\Partners` class gets partners info using cURL from the API of Magento connect. ```php namespace Magento\Marketplace\Model; @@ -271,7 +271,7 @@ class Partners ``` First off all the cURL client instance is created in `__construct`. -Method `getPartners` uses the cURL client makes POST request using cURL, the `post` method takes the first parameter the URL to the api of `magento-connect`, second parameter is empty array, then the option `CURLOPT_REFERER` added by `setOptions` method of the cURL client. +Method `getPartners` uses the cURL client makes POST request using cURL, the `post` method takes the first parameter the URL to the API of `magento-connect`, second parameter is empty array, then the option `CURLOPT_REFERER` added by `setOptions` method of the cURL client. As result the script call `getBody` method of the cURL client. #### Related topics diff --git a/src/pages/get-started/index.md b/src/pages/get-started/index.md index a44bdfd00..9f9ef3d3b 100644 --- a/src/pages/get-started/index.md +++ b/src/pages/get-started/index.md @@ -19,7 +19,7 @@ The Adobe Commerce and Magento Open Source web API framework provides integrator * All accounts and integrations are assigned resources that they have access to. The API framework checks that any call has the authorization to perform the request. -* Any native or third-party service can be [configured as a web API](https://developer.adobe.com/commerce/php/development/components/web-api/services/) with a few lines of xml. To configure a web API, you define XML elements and attributes in a `webapi.xml` configuration file. If a service is not defined in a configuration file, it will not be exposed at all. +* Any native or third-party service can be [configured as a web API](https://developer.adobe.com/commerce/php/development/components/web-api/services/) with a few lines of XML. To configure a web API, you define XML elements and attributes in a `webapi.xml` configuration file. If a service is not defined in a configuration file, it will not be exposed at all. * The framework is based on the CRUD (create, read, update, delete) & search model. The system does not currently support webhooks. @@ -37,7 +37,7 @@ The APIs can be used to perform a wide array of tasks. For example: * Integrate with a CMS (Content Management System). Currently, content tagging is not supported. -* Create JavaScript widgets in the storefront or on the Admin panel. The widget makes AJAX calls to access services. +* Create JavaScript widgets in the storefront or on the Admin panel. The widget makes Ajax calls to access services. ## How do I get started? diff --git a/src/pages/get-started/rate-limiting.md b/src/pages/get-started/rate-limiting.md index aa3bd3e80..c7134152c 100644 --- a/src/pages/get-started/rate-limiting.md +++ b/src/pages/get-started/rate-limiting.md @@ -8,7 +8,7 @@ keywords: # Rate limiting -In a carding attack, an attacker tries to determine which credit card numbers are valid, usually in batches of thousands. Attackers can use similar techniques to brute force missing details, such as the expiration date. Adobe Commerce merchants can be targeted by this attack type through their shops and integrations with 3rd-party payment gateways. +In a carding attack, an attacker tries to determine which credit card numbers are valid, usually in batches of thousands. Attackers can use similar techniques to brute force missing details, such as the expiration date. Adobe Commerce merchants can be targeted by this attack type through their shops and integrations with third-party payment gateways. As of Adobe Commerce 2.4.7, you can configure rate limiting for the payment information transmitted using REST and GraphQL. This added layer of protection allows merchants to prevent and decrease the volume of carding attacks that test many credit card numbers at once. @@ -212,7 +212,7 @@ sales/backpressure/enabled - 1 ## Log contents -If rate limiting has been enabled for the payment information endpoint and the GraphQl mutation via the UI/CLI, but the Redis service connection for store log requests has not been configured in the `app/etc/env.php` file, then the rate-limiting will not apply. The behavior will be the same if this option is disabled, but the application logs (`/var/log/system.log`) will contain the following message: +If rate limiting has been enabled for the payment information endpoint and the GraphQL mutation via the UI/CLI, but the Redis service connection for store log requests has not been configured in the `app/etc/env.php` file, then the rate-limiting will not apply. The behavior will be the same if this option is disabled, but the application logs (`/var/log/system.log`) will contain the following message: ```text ... @@ -237,7 +237,7 @@ Cache-Control: no-store {"message":"Too Many Requests","trace":null} ``` -If rate limiting is applied to a GraphQl request, then a response with HTTP status code `200 - Ok` will be generated and all relevant information will be present in the response body. +If rate limiting is applied to a GraphQL request, then a response with HTTP status code `200 - Ok` will be generated and all relevant information will be present in the response body. Example: diff --git a/src/pages/get-started/web-api-functional-testing.md b/src/pages/get-started/web-api-functional-testing.md index 325fa9a86..c60507a1c 100644 --- a/src/pages/get-started/web-api-functional-testing.md +++ b/src/pages/get-started/web-api-functional-testing.md @@ -10,7 +10,7 @@ keywords: The Web API testing framework allows you to test Web APIs from the client application point of view. The tests can be used with either REST or SOAP. The REST or SOAP adapter that runs the tests is specified in PHPUnit configuration. See [How to Run the Tests](#how-to-run-the-tests) for more information. -To run Web API tests for GraphQl, see [GraphQL functional testing](../graphql/develop/functional-testing.md). +To run Web API tests for GraphQL, see [GraphQL functional testing](../graphql/develop/functional-testing.md). ## Implementation Details diff --git a/src/pages/graphql/develop/debugging.md b/src/pages/graphql/develop/debugging.md index fddeee0a1..3fdc832b8 100644 --- a/src/pages/graphql/develop/debugging.md +++ b/src/pages/graphql/develop/debugging.md @@ -11,12 +11,12 @@ keywords: This topic provides recommendations on how to debug GraphQL requests. -## Debugging with PHPStorm and Xdebug +## Debugging with PhpStorm and Xdebug When [using GraphiQL](../index.md#how-to-access-graphql) or any other client for testing GraphQL queries, you might need to debug the request processing. You can use Xdebug for debugging the PHP execution of a GraphQL query just as you would for other HTTP requests. To start debugging, add the `?XDEBUG_SESSION_START=PHPSTORM` parameter to the endpoint URL. -The following example shows how to establish a connection between Xdebug and PHPStorm IDE. +The following example shows how to establish a connection between Xdebug and PhpStorm IDE. ```http http:///graphql?XDEBUG_SESSION_START=PHPSTORM diff --git a/src/pages/graphql/develop/functional-testing.md b/src/pages/graphql/develop/functional-testing.md index 859a97de3..4e259859b 100644 --- a/src/pages/graphql/develop/functional-testing.md +++ b/src/pages/graphql/develop/functional-testing.md @@ -172,7 +172,7 @@ The specified fixtures will now execute on every test run. Every fixture should have a rollback file. A rollback is a set of operations that remove changes introduced by the fixture from the system once the test is completed. -The rollback filename should correspond to the original fixture filename postfixed by `_rollback` keyword. For example, if the fixture file name is `virtual_product.php`, name the rollback file `virtual_product_rollback.php`. +The rollback filename should correspond to the original fixture filename postfixed by `_rollback` keyword. For example, if the fixture filename is `virtual_product.php`, name the rollback file `virtual_product_rollback.php`. The following fixture rollback removes the newly-created product from the database. diff --git a/src/pages/graphql/release-notes.md b/src/pages/graphql/release-notes.md index 22636ef2d..7c561c6e6 100644 --- a/src/pages/graphql/release-notes.md +++ b/src/pages/graphql/release-notes.md @@ -38,7 +38,7 @@ The [Magento Open Source 2.4.0 Release Notes](https://experienceleague.adobe.com - **Guest carts can now be merged with customer carts.** The [`mergeCarts`](schema/cart/mutations/merge.md) mutation transfers the contents of a guest cart into the cart of a logged-in customer. - **A customer can start an order on one device and complete it on another.** Use the [`customerCart`](schema/customer/queries/cart.md) query to obtain the cart ID for a logged-in customer. -- **Layered navigation can use custom filters.** The `filter` attribute of the [`products`](schema/products/queries/products.md) query now requires the `ProductAttributeFilterInput` object. You can specify a pre-defined filter in this object, or [define a custom filter](usage/custom-filters.md). As a result, layered navigation on your website filters on the attributes you need. +- **Layered navigation can use custom filters.** The `filter` attribute of the [`products`](schema/products/queries/products.md) query now requires the `ProductAttributeFilterInput` object. You can specify a predefined filter in this object, or [define a custom filter](usage/custom-filters.md). As a result, layered navigation on your website filters on the attributes you need. - **You can search categories by ID, name, and/or URL key.** The [`categoryList`](schema/products/queries/category-list.md) query replaces the deprecated `category` query. - **A customer can add bundle and downloadable products to the cart with the [`addBundleProductsToCart`](schema/cart/mutations/add-bundle-products.md) and [`addDownloadableProductsToCart`](schema/cart/mutations/add-downloadable-products.md) mutations.** - **The [`ProductInterface`](schema/products/interfaces/index.md) supports fixed product taxes (such as WEEE).** Use the [`storeConfig`](schema/store/queries/store-config.md) query to determine whether the store supports these taxes. diff --git a/src/pages/graphql/schema/cart/mutations/apply-coupon.md b/src/pages/graphql/schema/cart/mutations/apply-coupon.md index 3ff8ac5c7..ef1a0ab21 100644 --- a/src/pages/graphql/schema/cart/mutations/apply-coupon.md +++ b/src/pages/graphql/schema/cart/mutations/apply-coupon.md @@ -4,7 +4,7 @@ title: applyCouponToCart mutation # applyCouponToCart mutation -The `applyCouponToCart` mutation applies a pre-defined coupon code to the specified cart. Valid coupon codes are defined in cart price rules. +The `applyCouponToCart` mutation applies a predefined coupon code to the specified cart. Valid coupon codes are defined in cart price rules. ## Syntax diff --git a/src/pages/graphql/schema/cart/mutations/apply-coupons.md b/src/pages/graphql/schema/cart/mutations/apply-coupons.md index 29dddef37..9cab5f0c9 100644 --- a/src/pages/graphql/schema/cart/mutations/apply-coupons.md +++ b/src/pages/graphql/schema/cart/mutations/apply-coupons.md @@ -5,7 +5,7 @@ edition: ee # applyCouponsToCart mutation -The `applyCouponsToCart` mutation applies one or more pre-defined coupon codes to the specified cart. Valid coupon codes are defined in cart price rules. +The `applyCouponsToCart` mutation applies one or more predefined coupon codes to the specified cart. Valid coupon codes are defined in cart price rules. The `type` field of the `ApplyCouponsToCartInput` object must be set to either `APPEND` or `REPLACE`. If the value is `REPLACE`, the mutation removes any coupon codes that were previously applied. If the value is `APPEND`, the mutation keeps previously-applied coupons. diff --git a/src/pages/graphql/schema/cart/mutations/apply-giftcard.md b/src/pages/graphql/schema/cart/mutations/apply-giftcard.md index 13babcfde..eee7ba23e 100644 --- a/src/pages/graphql/schema/cart/mutations/apply-giftcard.md +++ b/src/pages/graphql/schema/cart/mutations/apply-giftcard.md @@ -5,7 +5,7 @@ edition: ee # applyGiftCardToCart mutation -The `applyGiftCardToCart` mutation applies a pre-defined gift card code to the specified cart. +The `applyGiftCardToCart` mutation applies a predefined gift card code to the specified cart. ## Syntax diff --git a/src/pages/graphql/schema/cart/queries/cart.md b/src/pages/graphql/schema/cart/queries/cart.md index c7d295de7..39ba0296c 100644 --- a/src/pages/graphql/schema/cart/queries/cart.md +++ b/src/pages/graphql/schema/cart/queries/cart.md @@ -24,7 +24,7 @@ The [`cart`](https://developer.adobe.com/commerce/webapi/graphql-api/index.html# The [Commerce API playground](https://experienceleague.adobe.com/developer/commerce/storefront/playgrounds/commerce-services/) provides a sample `cart` query that you can run against a live instance of Adobe Commerce with Luma sample data. -You can convert the hard-coded `cart_id` values in the following sample queries to a [variable](../../../usage/index.md#query-variables) and run them in the API playground. Note that the responses may vary, depending on the configuration of the Commerce instance. +You can convert the hardcoded `cart_id` values in the following sample queries to a [variable](../../../usage/index.md#query-variables) and run them in the API playground. Note that the responses may vary, depending on the configuration of the Commerce instance. ### Cart ready for checkout diff --git a/src/pages/graphql/schema/checkout/mutations/create-braintree-client-token.md b/src/pages/graphql/schema/checkout/mutations/create-braintree-client-token.md index 78e8cf2e1..f04c043ba 100644 --- a/src/pages/graphql/schema/checkout/mutations/create-braintree-client-token.md +++ b/src/pages/graphql/schema/checkout/mutations/create-braintree-client-token.md @@ -6,7 +6,7 @@ contributor_link: https://www.rightpoint.com/ # createBraintreeClientToken mutation -The `createBraintreeClientToken` mutation creates the client token for Braintree Javascript SDK initialization. +The `createBraintreeClientToken` mutation creates the client token for Braintree JavaScript SDK initialization. ## Syntax diff --git a/src/pages/graphql/schema/checkout/mutations/create-klarna-payments-session.md b/src/pages/graphql/schema/checkout/mutations/create-klarna-payments-session.md index aa5c7e675..eb5998e6e 100644 --- a/src/pages/graphql/schema/checkout/mutations/create-klarna-payments-session.md +++ b/src/pages/graphql/schema/checkout/mutations/create-klarna-payments-session.md @@ -109,8 +109,8 @@ The `Assets` object can contain the following attributes. Attribute | Data type | Description --- | --- | --- -`descriptive` | String | The payment method logo url (descriptive) -`standard` | String | The payment method logo url (standard) +`descriptive` | String | The payment method logo URL (descriptive) +`standard` | String | The payment method logo URL (standard) ## Errors diff --git a/src/pages/graphql/schema/checkout/mutations/create-payflow-pro-token.md b/src/pages/graphql/schema/checkout/mutations/create-payflow-pro-token.md index 367368301..8906af71d 100644 --- a/src/pages/graphql/schema/checkout/mutations/create-payflow-pro-token.md +++ b/src/pages/graphql/schema/checkout/mutations/create-payflow-pro-token.md @@ -10,7 +10,7 @@ The `PayflowProUrlInput` object contains a set of relative URLs that PayPal will Use this input for Payflow Pro and Payment Pro payment methods. -See [Paypal Payflow Pro payment method](../../../payment-methods/payflow-pro.md) for detailed information about the workflow of PayPal Payflow Pro transactions. +See [PayPal Payflow Pro payment method](../../../payment-methods/payflow-pro.md) for detailed information about the workflow of PayPal Payflow Pro transactions. ## Syntax diff --git a/src/pages/graphql/schema/checkout/mutations/handle-payflow-pro-response.md b/src/pages/graphql/schema/checkout/mutations/handle-payflow-pro-response.md index 0fe59871e..c3dd7e1e4 100644 --- a/src/pages/graphql/schema/checkout/mutations/handle-payflow-pro-response.md +++ b/src/pages/graphql/schema/checkout/mutations/handle-payflow-pro-response.md @@ -19,7 +19,7 @@ The `handlePayflowProResponse` mutation sends the silent post data that the clie 'AVSADDR=Y&SECURETOKENID=MYSECURETOKENID&SHIPTOSTATE=AL&TRANSTIME=2019-06-24+07%3A53%3A10' ``` -See [Paypal Payflow Pro payment method](../../../payment-methods/payflow-pro.md) for detailed information about the workflow of PayPal Payflow Pro transactions. +See [PayPal Payflow Pro payment method](../../../payment-methods/payflow-pro.md) for detailed information about the workflow of PayPal Payflow Pro transactions. ## Syntax diff --git a/src/pages/graphql/schema/checkout/queries/get-payflow-link-token.md b/src/pages/graphql/schema/checkout/queries/get-payflow-link-token.md index 058331194..4befbc0bf 100644 --- a/src/pages/graphql/schema/checkout/queries/get-payflow-link-token.md +++ b/src/pages/graphql/schema/checkout/queries/get-payflow-link-token.md @@ -6,7 +6,7 @@ title: getPayflowLinkToken query The `getPayflowLinkToken` query retrieves PayPal payment credentials for a PayPal Payflow transaction. You must run this query after you [set the payment method](../../cart/mutations/set-payment-method.md) and [place the order](../../cart/mutations/place-order.md). -See [Paypal Payflow Link payment method](../../../payment-methods/payflow-link.md) for detailed information about the workflow of PayPal Payflow Link transactions. +See [PayPal Payflow Link payment method](../../../payment-methods/payflow-link.md) for detailed information about the workflow of PayPal Payflow Link transactions. ## Syntax diff --git a/src/pages/graphql/schema/checkout/queries/get-payment-sdk.md b/src/pages/graphql/schema/checkout/queries/get-payment-sdk.md index 680f36248..35619140e 100644 --- a/src/pages/graphql/schema/checkout/queries/get-payment-sdk.md +++ b/src/pages/graphql/schema/checkout/queries/get-payment-sdk.md @@ -8,7 +8,7 @@ title: getPaymentSDK query This query is available only if you have installed [Payment Services for Adobe Commerce](https://commercemarketplace.adobe.com/magento-payment-services.html) 2.3.0 or higher. -The `getPaymentSDK` query gets the payment paypal SDK URLs and other related values. +The `getPaymentSDK` query gets the payment PayPal SDK URLs and other related values. ## Syntax diff --git a/src/pages/graphql/schema/gift-registry/mutations/update-registrants.md b/src/pages/graphql/schema/gift-registry/mutations/update-registrants.md index c0de63e0d..cae1fd7fb 100644 --- a/src/pages/graphql/schema/gift-registry/mutations/update-registrants.md +++ b/src/pages/graphql/schema/gift-registry/mutations/update-registrants.md @@ -28,7 +28,7 @@ The [`updateGiftRegistryRegistrants`](https://developer.adobe.com/commerce/webap ## Example usage -The following example updates a registrant's e-mail address. +The following example updates a registrant's email address. **Request:** diff --git a/src/pages/graphql/schema/products/interfaces/pwa-implementations.md b/src/pages/graphql/schema/products/interfaces/pwa-implementations.md index 3b4c0f2d3..e505a495f 100644 --- a/src/pages/graphql/schema/products/interfaces/pwa-implementations.md +++ b/src/pages/graphql/schema/products/interfaces/pwa-implementations.md @@ -27,7 +27,7 @@ Attribute | Data Type | Description Attribute | Data Type | Description --- | --- | --- -`is_html_allowed` | Boolean | Indicates whether the attribute value is allowed to have html content +`is_html_allowed` | Boolean | Indicates whether the attribute value is allowed to have HTML content `ui_input_type` | UiInputTypeEnum | The frontend input type of the attribute ## Types diff --git a/src/pages/graphql/schema/products/interfaces/types/configurable.md b/src/pages/graphql/schema/products/interfaces/types/configurable.md index 9e4e3b15f..9f533bf45 100644 --- a/src/pages/graphql/schema/products/interfaces/types/configurable.md +++ b/src/pages/graphql/schema/products/interfaces/types/configurable.md @@ -678,7 +678,7 @@ This example shows how the the media gallery items change as a shopper selects c The following query returns media gallery information on the parent configurable product and the `uid` values of each configurable option. -Note that file names of the images are `ms10-blue_main_1.jpg`, `ms10-blue_alt1_1.jpg`, and `ms10-blue_back_1.jpg`. +Note that filenames of the images are `ms10-blue_main_1.jpg`, `ms10-blue_alt1_1.jpg`, and `ms10-blue_back_1.jpg`. **Request:** diff --git a/src/pages/graphql/schema/products/queries/products.md b/src/pages/graphql/schema/products/queries/products.md index 1057a8a89..0e5bb94c4 100644 --- a/src/pages/graphql/schema/products/queries/products.md +++ b/src/pages/graphql/schema/products/queries/products.md @@ -71,7 +71,7 @@ Attribute | Description You can define a custom attribute to be a filter by specifying the `custom_attributesV2` attribute within the output of your query, as shown in [Filter custom_attributesV2 of a product](#filter-custom_attributesv2-of-a-product). -You can also modify the code base and [create a custom attribute](../../../usage/custom-filters.md) that can be used as a top-level filter. Use the `input_type` output attribute of the [`customAttributeMetadata` query](../../attributes/queries/custom-attribute-metadata.md) to determine the type of filter to use. +You can also modify the codebase and [create a custom attribute](../../../usage/custom-filters.md) that can be used as a top-level filter. Use the `input_type` output attribute of the [`customAttributeMetadata` query](../../attributes/queries/custom-attribute-metadata.md) to determine the type of filter to use. #### FilterEqualTypeInput attributes @@ -1773,7 +1773,7 @@ query { } ``` -### Query a URL's rewrite information +### Query the rewrite information for a URL The following product query returns URL rewrite information about the Joust Duffle Bag. diff --git a/src/pages/graphql/tutorials/checkout/index.md b/src/pages/graphql/tutorials/checkout/index.md index f63f0891f..bf6faa783 100644 --- a/src/pages/graphql/tutorials/checkout/index.md +++ b/src/pages/graphql/tutorials/checkout/index.md @@ -10,7 +10,7 @@ keywords: # GraphQL checkout tutorial -This tutorial describes how to place an order through GraphQl. Customers can make purchases in two ways: +This tutorial describes how to place an order through GraphQL. Customers can make purchases in two ways: - As a logged-in user - As a guest user who does not create an account @@ -26,7 +26,7 @@ Complete the following prerequisites: - Install an Adobe Commerce or Magento Open Source instance with sample data. The sample data defines a functional store, called Luma, that sells fitness clothing and accessories. The store does not provide any sandbox accounts for testing credit card payments, so transactions will be simulated using an offline payment method. -- Install a GraphQl client. You can use any GraphQl client to send calls to Magento. [Altair](https://altair.sirmuel.design/) is a good example. +- Install a GraphQL client. You can use any GraphQL client to send calls to Magento. [Altair](https://altair.sirmuel.design/) is a good example. - Learn about GraphQL, how it works, and how to use it. See [Introduction to GraphQL](https://graphql.org/learn/) for details. diff --git a/src/pages/graphql/usage/api-response.md b/src/pages/graphql/usage/api-response.md index 4396bd40c..720f9a634 100644 --- a/src/pages/graphql/usage/api-response.md +++ b/src/pages/graphql/usage/api-response.md @@ -7,11 +7,11 @@ keywords: # GraphQL status codes and responses -Each GraphQl API call returns a HTTP status code and a response payload. When an error occurs, the response payload returns an error message. +Each GraphQL API call returns a HTTP status code and a response payload. When an error occurs, the response payload returns an error message. ### HTTP status codes -Each GraphQl API call returns an HTTP status code that reflects the result of a request: +Each GraphQL API call returns an HTTP status code that reflects the result of a request: HTTP code | Meaning | Description --- | --- | --- diff --git a/src/pages/graphql/usage/caching.md b/src/pages/graphql/usage/caching.md index e8285a4cb..285859faa 100644 --- a/src/pages/graphql/usage/caching.md +++ b/src/pages/graphql/usage/caching.md @@ -95,7 +95,7 @@ Adding factors could generate too many unique cache keys, thereby reducing the n ## Caching with Varnish -For on-premise installations, we recommend setting up Varnish as a reverse proxy to serve the full page cache in a production environment. The template `vcl` file that ships with each release configures support for GraphQL caching. We recommend that you review the template file each release to determine whether you need to update the `default.vcl` on your system. To view the contents of the latest template file, you can [download a template file from the Admin](https://docs.magento.com/user-guide/system/cache-full-page.html) or review the `app/code/Magento/PageCache/etc/varnish6.vcl` file in the code base. +For on-premise installations, we recommend setting up Varnish as a reverse proxy to serve the full page cache in a production environment. The template `vcl` file that ships with each release configures support for GraphQL caching. We recommend that you review the template file each release to determine whether you need to update the `default.vcl` on your system. To view the contents of the latest template file, you can [download a template file from the Admin](https://docs.magento.com/user-guide/system/cache-full-page.html) or review the `app/code/Magento/PageCache/etc/varnish6.vcl` file in the codebase. See [Configure and use Varnish](https://experienceleague.adobe.com/docs/commerce-operations/configuration-guide/cache/varnish/config-varnish.html) and [Configure Varnish and your web server](https://experienceleague.adobe.com/docs/commerce-operations/configuration-guide/cache/config-varnish-server.html) for more information. @@ -135,7 +135,7 @@ http://example.com/graphql?query={ products(filter: {sku: {eq: "Test"}}) { items -If you call GraphQL queries in the query body rather than the url (for example, as `--data-raw '{"query" .... }'`), the request is not cached. +If you call GraphQL queries in the query body rather than the URL (for example, as `--data-raw '{"query" .... }'`), the request is not cached. ## X-Magento-Vary cache cookie diff --git a/src/pages/graphql/usage/custom-filters.md b/src/pages/graphql/usage/custom-filters.md index 069473667..5b905fe3e 100644 --- a/src/pages/graphql/usage/custom-filters.md +++ b/src/pages/graphql/usage/custom-filters.md @@ -7,7 +7,7 @@ keywords: # Filtering with custom attributes -As of 2.3.4, the `filter` attribute of the [`products`](../schema/products/queries/products.md) query accepts the `ProductAttributeFilterInput` object. (In previous versions, the `filter` attribute required a `ProductFilterInput` object. This object contained a hard-coded list of filterable attributes, and you could not filter on a custom attribute or any other attribute that was not on the list.) +As of 2.3.4, the `filter` attribute of the [`products`](../schema/products/queries/products.md) query accepts the `ProductAttributeFilterInput` object. (In previous versions, the `filter` attribute required a `ProductFilterInput` object. This object contained a hardcoded list of filterable attributes, and you could not filter on a custom attribute or any other attribute that was not on the list.) ## Prerequisites diff --git a/src/pages/graphql/usage/index.md b/src/pages/graphql/usage/index.md index ec341fda3..cb40bda5d 100644 --- a/src/pages/graphql/usage/index.md +++ b/src/pages/graphql/usage/index.md @@ -5,7 +5,7 @@ keywords: - GraphQL --- -# Run Graphql queries and mutations +# Run GraphQL queries and mutations ## Queries diff --git a/src/pages/rest/b2b/company-object.md b/src/pages/rest/b2b/company-object.md index e5dbe7e71..0bf8e32bd 100644 --- a/src/pages/rest/b2b/company-object.md +++ b/src/pages/rest/b2b/company-object.md @@ -35,7 +35,7 @@ Name | Description | Format | Requirements `status` | 0 - Pending approval
1 - Approved
2 - Rejected
3 - Blocked | integer | Optional `company_name` | Company name | string | Required to create or update a company. `legal_name` | Legal name | string | Optional -`company_email` | Official e-mail address of the company. It does not have to be unique. | string | Required to create or update a company. +`company_email` | Official email address of the company. It does not have to be unique. | string | Required to create or update a company. `vat_tax_id` | The company's Value Added Tax ID | string | Optional `reseller_id` | Unique ID of the company reseller | string | Optional `comment` | Additional details about the company | string | Optional diff --git a/src/pages/rest/b2b/negotiable-quote.md b/src/pages/rest/b2b/negotiable-quote.md index 04f97e41b..78af7a009 100644 --- a/src/pages/rest/b2b/negotiable-quote.md +++ b/src/pages/rest/b2b/negotiable-quote.md @@ -35,7 +35,7 @@ You cannot negotiate prices on individual items. ## Quote statuses -The quote life cycle is managed via quote statuses. The quoting interface allows both a seller and a buyer to manage items in the quote (add, delete, change quantity) as well as make an offer (or request a quote) for items and/or for shipping. +The quote lifecycle is managed via quote statuses. The quoting interface allows both a seller and a buyer to manage items in the quote (add, delete, change quantity) as well as make an offer (or request a quote) for items and/or for shipping. The negotiated price set in the negotiable quote is exactly the price that will be applied on a quote during checkout, order generation, and invoice generation. diff --git a/src/pages/rest/inventory/index.md b/src/pages/rest/inventory/index.md index 4202275be..bf9342d85 100644 --- a/src/pages/rest/inventory/index.md +++ b/src/pages/rest/inventory/index.md @@ -47,7 +47,7 @@ In this diagram, a bicycle merchant has inventory for a mountain bike in two war * `SourceItem` – A relation object that represents the amount of a specific product at a physical source. We use this entity for updating inventory on each source. Quantities might change as a result of synchronizing with an external Product Information Management (PIM) or Enterprise Resource Planning (ERP) system, or internally as a stock deduction during the checkout process. A `SourceItem` cannot be used for retrieving data that must be rendered on front-end, because only aggregated data should be used for all validations and UI representation. -* `StockItem` – Also known as Aggregated Virtual Stock. This is read-only data that the re-indexation process generates. Based on a pre-defined mapping, we define what sources are assigned to the current scope (sales channel) and aggregate quantities from all assigned sources. We also use `StockItem` to check if a product is in or out of stock. Making this segregation by Read-Only interface (`StockItem`) and Write-Only interface (`SourceItem`), the Inventory architecture achieves Command Query Responsibility Segregation (CQRS). As a result, all `GET` HTTP requests should use `StockItem` entity, and all `POST/PUT` should use `SourceItem`. +* `StockItem` – Also known as Aggregated Virtual Stock. This is read-only data that the re-indexation process generates. Based on a predefined mapping, we define what sources are assigned to the current scope (sales channel) and aggregate quantities from all assigned sources. We also use `StockItem` to check if a product is in or out of stock. Making this segregation by Read-Only interface (`StockItem`) and Write-Only interface (`SourceItem`), the Inventory architecture achieves Command Query Responsibility Segregation (CQRS). As a result, all `GET` HTTP requests should use `StockItem` entity, and all `POST/PUT` should use `SourceItem`. ## Shipping algorithms diff --git a/src/pages/rest/tutorials/bulk-configurable-product/plan-product.md b/src/pages/rest/tutorials/bulk-configurable-product/plan-product.md index b4600f4fc..dd0cf40f4 100644 --- a/src/pages/rest/tutorials/bulk-configurable-product/plan-product.md +++ b/src/pages/rest/tutorials/bulk-configurable-product/plan-product.md @@ -129,7 +129,7 @@ searchCriteria[filter_groups][0][filters][0][value]=1& searchCriteria[filter_groups][0][filters][0][condition_type]=gte ``` - Note that women's tops and tees have different ids than men's tops and tees. The values for men's clothing are: + Note that women's tops and tees have different IDs than men's tops and tees. The values for men's clothing are: * Men - `11` * Tops - `12` diff --git a/src/pages/rest/tutorials/configurable-product/plan-product.md b/src/pages/rest/tutorials/configurable-product/plan-product.md index aa312a355..99147a86e 100644 --- a/src/pages/rest/tutorials/configurable-product/plan-product.md +++ b/src/pages/rest/tutorials/configurable-product/plan-product.md @@ -208,7 +208,7 @@ searchCriteria[filter_groups][0][filters][0][condition_type]=gte } ``` -Note that women's tops and tees have different ids than men's tops and tees. The values for men's clothing are: +Note that women's tops and tees have different IDs than men's tops and tees. The values for men's clothing are: * Men - `11` * Tops - `12` diff --git a/src/pages/rest/tutorials/index.md b/src/pages/rest/tutorials/index.md index bf82272de..27dcf88df 100644 --- a/src/pages/rest/tutorials/index.md +++ b/src/pages/rest/tutorials/index.md @@ -61,7 +61,7 @@ The **Scope:** section is included when the tutorial requires that you send requ **HTTP headers:** -This section indicates which key/value pairs you must specify in the HTTP headers. All calls require one or more HTTP headers. +This section indicates which key-value pairs you must specify in the HTTP headers. All calls require one or more HTTP headers. **Payload:** diff --git a/src/pages/rest/tutorials/orders/order-admin-token.md b/src/pages/rest/tutorials/orders/order-admin-token.md index c68618851..047c8aec2 100644 --- a/src/pages/rest/tutorials/orders/order-admin-token.md +++ b/src/pages/rest/tutorials/orders/order-admin-token.md @@ -26,7 +26,7 @@ Element | Description **HTTP headers:** -This section indicates which key/value pairs you must specify in the HTTP headers. All calls require one or more HTTP headers. +This section indicates which key-value pairs you must specify in the HTTP headers. All calls require one or more HTTP headers. **Payload:** diff --git a/src/pages/rest/tutorials/orders/order-create-shipment.md b/src/pages/rest/tutorials/orders/order-create-shipment.md index 89fb47e4c..9847b21c6 100644 --- a/src/pages/rest/tutorials/orders/order-create-shipment.md +++ b/src/pages/rest/tutorials/orders/order-create-shipment.md @@ -17,7 +17,7 @@ If the call is successful on a full shipment, Adobe Commerce changes the status `POST /rest//V1/order/3/ship` -where `3` is the order id. +where `3` is the order ID. **Headers:** diff --git a/src/pages/rest/tutorials/orders/order-issue-refund.md b/src/pages/rest/tutorials/orders/order-issue-refund.md index 0de5ce5df..ad3614d88 100644 --- a/src/pages/rest/tutorials/orders/order-issue-refund.md +++ b/src/pages/rest/tutorials/orders/order-issue-refund.md @@ -60,7 +60,7 @@ The `return_to_stock_items` array specifies which `order_item_id`s can be return **Response:** -A credit memo id, such as `3`. +A credit memo ID, such as `3`. ### Verify this step