Magento 2.4.5 / Adobe Commerce 2.4.5 Installation System Requirement

The following below Installation System Requirement for Magento Magento 2.4.5 / Adobe Commerce 2.4.5 or Magento 2.4.5-P1 / Adobe Commerce 2.4.5-P1

Composer = 2.2
Elasticsearch =7.17
OpenSearch =1.2
MariaDB =10.4
MySQL =8.0
PHP =8.1
Redis =6.2
Varnish =7.0
Apache =2.4
Nginx =1.18

How To Upgrade Magento 2.x / Adobe Commerce Upgrade From Version 2.4 To 2.4.5

The following command runs on the root of (Magento 2.4)

Step [1]- Enable Maintenance Mode

php bin/magento maintenance:enable

Step [2]- Backup Composer JSON

Backup cp composer.json composer.json.bak

Step [3]- Run Composer Require Command

composer require magento/product-enterprise-edition=2.4.5 --no-update

Step [4]- Run Composer Update Command

composer update

Step [5]- Run Magento 2.4.x essential command

php bin/magento cache:clean
rm -rf var/cache/*
rm -rf var/page_cache/*
rm -rf generated/code/*
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy -f

Step [6]- Disable Maintenance Mode

php bin/magento maintenance:disable

Once these above processes are done, we need to check the entire website/store,
Each functionality of the site
Each module/custom working functionality
UI design functionality, if broken need to modify

Difference Between Adobe Commerce Cloud Starter and Pro Plan

The following below steps define Difference Between Adobe Commerce Cloud Starter and Pro Plan

Starter-Plan:: It is the best solution for smaller B2C and B2B Business solution – those who are trying to create an e-commerce business and seeking all standard configurations to build their store / website

Starter-Plan having following below features

  1. Adobe Commerce 2.x core features
  2. PayPal Onboarding Tool
  3. Business Intelligence
  4. Сloud integration tools
  5. Adobe Commerce 2.x Fastly Content Delivery Network (CDN)
  6. Image Optimization (IO)
  7. The Web Application Firewall (WAF) (service is available in the Production environment)
  8. New Relic APM (for performance monitoring) on 3 branches Platform-as-a-service (PaaS) based Production, Staging, and development environments (4 active environments)
  9. Multi-tenant shared infrastructure
  10. 100k effective list of SKUs
  11. 3 Hour Technical Onboarding support
  12. 24×7 Support Ticket
  13. Initial Support Response SLA P1-2hr, P2-1d, P3-2d, P4-5d.

Pro-Plan:: It is the best solution for big B2C and B2B Business solution – those who are trying to create an e-commerce business and seeking all advance standard configurations to build their store / website & expecting fast future business growth.

Pro-Plan having following below features

  1. Adobe Commerce 2.x core features
  2. Plus B2B module
  3. New Relic Infrastructure on Production environments
  4. APM (Performance Monitoring) on Staging and Production
  5. Platform-as-a-service (PaaS) based Integration development environments (8 total active environments)
  6. Infrastructure-as-a-Service (IaaS) — dedicated virtual infrastructure for Production and Staging environments
  7. Architecture with a three-server setup in underlying IaaS to provide stable reliability and availability
  8. Dedicated hardware setup in underlying IaaS
  9. 24×7 monitoring and email support
  10. Dedicated technical account management for the initial launch period
  11. 8M effective list of SKUs
  12. Initial Support Response: P1-1h, P2-4h, P3-1d, P4-3d.

Magento 2.x / Adobe Commerce 2.x Security Features

The Following below 8 Steps define Magento 2.x / Adobe Commerce 2.x Security Features

Step[1] -  Two-Factor Authentication- Two-factor authentication verifies your identity by using two of three factors: something you know (like a passcode), something you have (like a key), and something you are (like a fingerprint)



Step[2] - STRONG DATA ENCRYPTION-This helps protect the confidentiality of digital data either stored on computer systems or transmitted through a network like the Internet



Step[3] - CSRF PROTECTION(Cross-site Request Forgery)-A CSRF vulnerability can give an attacker the ability to force an authenticated, logged-in user to perform an important action without their consent or knowledge.



Step[4] - XSS PROTECTION- The HTTP X-XSS-Protection response header is a feature of Internet Explorer, Chrome and Safari that stops pages from loading when they detect reflected cross-site scripting (XSS) attacks.



Step[5] - PCI-DSS (Payment Card Industry – Data Security Standard)-is a set of security standards designed to ensure that ALL companies that accept, process, store or transmit credit card information maintain a secure environment.



Step[6] - Protect against Vulnerability Attack- A vulnerability is a weakness that can be exploited by cybercriminals to gain unauthorized access to a computer system. After exploiting a vulnerability, a cyberattack can run malicious code, install malware, and even steal sensitive data.



Step[7] - Restrict Access Protection- Access restriction means restricting public access to noncropland with signs or physical obstruction.



Step[8] - GDPR (General Data Protection Regulation)- Compliance-The General Data Protection Regulation (GDPR), which came into effect on 25th May 2018, provides a legal framework for keeping everyone's personal data safe by requiring companies to have robust processes in place for handling and storing personal information.

Magento 2.x / Adobe Commerce 2.x Database Optimization To Speed Up Store

The following below steps need to follow.

  • Choose Reliable Hosting
  • Update the Magento Version
  • Upgrade Package & Database
  • Avoid Built-in Cache
  • Keep Indexers Updated
  • Use Varnish Cache
  • Inspect Third-Party Modules
  • Enable Magento Flat Catalogs
  • Optimize Product Images
  • Minify CSS and JavaScript
  • Use Elasticsearch for Instant Results
  • Enable GZIP Compression
  • Integrate Content Delivery Network
  • Clean Database Logs
  • Switch to Production Mode
  • Enable Advance JS Bundling

How To Add Bundle Products in Cart By Using GraphQL in Magento 2.x / Adobe Commerce 2.x

The following below steps need to follow to add Bundle products by using GraphQL in Magento 2.x

Use the updateCartItems mutation to update shopping cart items and removeItemFromCart to remove a product from the shopping cart.

Step [1] – Recommendation to use below Bundle Product syntax

Here Using Postman

Syntax –

mutation {
  addBundleProductsToCart(
    input: AddBundleProductsToCartInput
  ) {
    AddBundleProductsToCartOutput
  }
}

Step [2] – Put below Request

mutation {
  addBundleProductsToCart(
    input: {
      cart_id: "SUAzreA0RsakaL5YcNC2rmgYjfscCZZC"
      cart_items: [
      {
        data: {
          sku: "24-WG080"
          quantity: 1
        }
        bundle_options: [
          {
            id: 1
            quantity: 1
            value: [
              "2"
            ]
          },
          {
            id: 2
            quantity: 2
            value: [
              "4"
            ]
          },
          {
            id: 3
            quantity: 1
            value: [
              "7"
            ]
          },
          {
            id: 4
            quantity: 1
            value: [
              "8"
            ]
          }
        ]
      },
    ]
  }) {
    cart {
      items {
        id
        quantity
        product {
          sku
          name
        }
        ... on BundleCartItem {
          bundle_options {
            id
            label
            type
            values {
              id
              label
              price
              quantity
            }
          }
        }
      }
    }
  }
}

Step [3] – Below output response

{
    "data": {
        "addBundleProductsToCart": {
            "cart": {
                "items": [
                    {
                        "id": "132",
                        "quantity": 14,
                        "product": {
                            "sku": "24-WG080",
                            "name": "Sprite Yoga Companion Kit"
                        },
                        "bundle_options": [
                            {
                                "id": 1,
                                "label": "Sprite Stasis Ball",
                                "type": "radio",
                                "values": [
                                    {
                                        "id": 2,
                                        "label": "Sprite Stasis Ball 65 cm",
                                        "price": 27,
                                        "quantity": 1
                                    }
                                ]
                            },
                            {
                                "id": 2,
                                "label": "Sprite Foam Yoga Brick",
                                "type": "radio",
                                "values": [
                                    {
                                        "id": 4,
                                        "label": "Sprite Foam Yoga Brick",
                                        "price": 5,
                                        "quantity": 2
                                    }
                                ]
                            },
                            {
                                "id": 3,
                                "label": "Sprite Yoga Strap",
                                "type": "radio",
                                "values": [
                                    {
                                        "id": 7,
                                        "label": "Sprite Yoga Strap 10 foot",
                                        "price": 21,
                                        "quantity": 1
                                    }
                                ]
                            },
                            {
                                "id": 4,
                                "label": "Sprite Foam Roller",
                                "type": "radio",
                                "values": [
                                    {
                                        "id": 8,
                                        "label": "Sprite Foam Roller",
                                        "price": 19,
                                        "quantity": 1
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "id": "137",
                        "quantity": 6,
                        "product": {
                            "sku": "MH01",
                            "name": "Chaz Kangeroo Hoodie"
                        }
                    }
                ]
            }
        }
    }
}

How To Add Configurable Products By Using GraphQL in Cart in Magento 2.x / Adobe Commerce 2.x

How To Add Configurable Products By Using GraphQL in Magento 2.x / Adobe Commerce 2.x

Use the updateCartItems mutation to update shopping cart items and removeItemFromCart to remove a product from the shopping cart.

The following below steps need to follow to add Configurable products by using GraphQL in Magento 2.x

Step [1] – Recommendation to use below Configurable Product syntax

Here Using Postman

Syntax –

 mutation {
   addConfigurableProductsToCart(
      input: AddConfigurableProductsToCartInput
   ) {
     AddConfigurableProductsToCartOutput
   }
 }

Step [2] – Put below Request

mutation {
  addConfigurableProductsToCart(
    input: {
      cart_id: "s6Wgi4j0H2ULX0YHfD3mhOMHuAL10qLL"
      cart_items: [{
        parent_sku: "MH01"
        data: {
          quantity: 2,
          sku: "MH01-XS-Black"
        }
      }]
    }
  ) {
    cart {
      items {
        id
        product {
          name
          sku
          options_container
        }
        quantity
        ... on ConfigurableCartItem{
        	configurable_options{
            id
            option_label
            value_label
            value_id
          }
        }
      }
    }
  }
}

Step [3] – Below output response

{
    "data": {
        "addBundleProductsToCart": {
            "cart": {
                "items": [
                    {
                        "id": "131",
                        "quantity": 2,
                        "product": {
                            "sku": "Gaming-Software",
                            "name": "Gaming-Software"
                        }
                    },
                    {
                        "id": "132",
                        "quantity": 4,
                        "product": {
                            "sku": "24-WG080",
                            "name": "Sprite Yoga Companion Kit"
                        },
                        "bundle_options": [
                            {
                                "id": 1,
                                "label": "Sprite Stasis Ball",
                                "type": "radio",
                                "values": [
                                    {
                                        "id": 2,
                                        "label": "Sprite Stasis Ball 65 cm",
                                        "price": 27,
                                        "quantity": 1
                                    }
                                ]
                            },
                            {
                                "id": 2,
                                "label": "Sprite Foam Yoga Brick",
                                "type": "radio",
                                "values": [
                                    {
                                        "id": 4,
                                        "label": "Sprite Foam Yoga Brick",
                                        "price": 5,
                                        "quantity": 2
                                    }
                                ]
                            },
                            {
                                "id": 3,
                                "label": "Sprite Yoga Strap",
                                "type": "radio",
                                "values": [
                                    {
                                        "id": 7,
                                        "label": "Sprite Yoga Strap 10 foot",
                                        "price": 21,
                                        "quantity": 1
                                    }
                                ]
                            },
                            {
                                "id": 4,
                                "label": "Sprite Foam Roller",
                                "type": "radio",
                                "values": [
                                    {
                                        "id": 8,
                                        "label": "Sprite Foam Roller",
                                        "price": 19,
                                        "quantity": 1
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        }
    }
}

How To Add Simple Products By Using GraphQL in Cart in Magento 2.x / Adobe Commerce 2.x

Use the updateCartItems mutation to update shopping cart items and removeItemFromCart to remove a product from the shopping cart.

The following below steps need to follow to add products by using GraphQL in Magento 2.x

Step [1] – Recommendation to use below Simple Product syntax

Here Using Postman

Syntax –

mutation {
  addSimpleProductsToCart(input: AddSimpleProductsToCartInput): {
    AddSimpleProductsToCartOutput
  }
}

Step [2] – Put below Request

mutation {
  addSimpleProductsToCart(
    input: {
      cart_id: "s6Wgi4j0H2ULX0YHfD3mhOMHuAL10qLL"
      cart_items: [
        {
          data: {
            quantity: 1
            sku: "24-UB02"
          }
        }
      ]
    }
  ) {
    cart {
      items {
        id
        product {
          sku
          stock_status
        }
        quantity
      }
    }
  }
}

Step [3] – Below output response

{
    "data": {
        "addSimpleProductsToCart": {
            "cart": {
                "items": [
                    {
                        "id": "124",
                        "product": {
                            "sku": "24-UB02",
                            "stock_status": "IN_STOCK"
                        },
                        "quantity": 1
                    }
                ]
            }
        }
    }
}

Product added in quote_item database table with SKU = 24-UB02

How To Create Customer Cart ID For Logged & Guest Customer by GraphQL in Magento 2.x / Adobe Commerce 2.x

The following below steps need to create Customer Cart ID For Logged & Guest Customer By Using GraphQL in Magento 2.x / Adobe Commerce 2.x

We are going to create Customer Cart ID for logged Customer as well as Guest Customer

Before Creating Customer Cart ID, need to specify the customer’s authorization token in the headers. Otherwise, Query Error as “Get customer authorization token”

Step [1] – Customer Cart ID for Logged Customer, use below

customerCart

Step [1.1] – Recommendation to use below Customer Cart ID syntax

Here Using Postman

Syntax –

{
  customerCart{
    id
  }
}

Step [1.2] – Put below Request

{
  customerCart{
    id
  }
}

Step [1.3] – Below output response

{
    "data": {
        "customerCart": {
            "id": "s6Wgi4j0H2ULX0YHfD3mhOMHuAL10qLL"
        }
    }
}

Step [2] – Customer Cart ID for Guest Customer, use below

customerEmptyCart

Step [2.1] – Recommendation to use below Customer Cart ID syntax

Here Using Postman

mutation {
  createEmptyCart
}

Step [2.2] – Put below Request

mutation {
  createEmptyCart
}

Step [2.3] – Below Output Response

{

   {
    "data": {
        "createEmptyCart": "s6Wgi4j0H2ULX0YHfD3mhOMHuAL10qLL"
    }
}