ACSD-50858: Verbesserte Leistung beim Laden des Bannerinhalts

Der Patch ACSD-50858 behebt ein Leistungsproblem des Banners auf der Warenkorb-/Kaufbestätigungsseite: Übermäßige DB-Abfragen und verlängerte Seitenladezeit. Dieser Patch ist verfügbar, wenn Quality Patches Tool (QPT) 1.1.31 installiert ist. Die Patch-ID ist ACSD-50858. Beachten Sie, dass das Problem voraussichtlich in Adobe Commerce 2.4.7 behoben wird.

Betroffene Produkte und Versionen

Der Patch wird für die Adobe Commerce-Version erstellt:

  • Adobe Commerce (alle Bereitstellungsmethoden) 2.4.5-p1

Kompatibel mit Adobe Commerce-Versionen:

  • Adobe Commerce (alle Bereitstellungsmethoden) 2.4.4 - 2.4.6
NOTE
Der Patch könnte mit neuen Quality Patches Tool-Versionen auch für andere Versionen gelten. Um zu überprüfen, ob der Patch mit Ihrer Adobe Commerce-Version kompatibel ist, aktualisieren Sie das magento/quality-patches auf die neueste Version und überprüfen Sie die Kompatibilität auf der Seite Quality Patches Tool: Nach Patches suchen. Verwenden Sie die Patch-ID als Suchbegriff, um den Patch zu finden.

Problem

Die Bannerleistung auf der Warenkorb-/Kassenseite ist aufgrund von (DB-Abfragen und verlängerter Seitenladezeit).

Dieses Problem wurde behoben, indem die Art und Weise, wie Bannerinhalte geladen werden, überarbeitet wurde, wodurch die Anzahl der DB-Abfragen um 99,99 % und die Seitenladezeit um ~99 % reduziert wurde.

Schritte zur Reproduktion:

  1. Melden Sie sich bei Admin an und erstellen Sie ein einfaches Produkt.

  2. Erstellen Sie einen Kunden entweder über Admin oder das Frontend und fügen Sie eine Versandadresse hinzu.

  3. Verschieben Sie banners.php in den Ordner magento_root/pub/.

  4. Erzeugen Sie Banner mit dem Befehl php pub/banners.php . Es wird 10.000 einfache Banner und 1.000 Banner mit Verkaufsregeln generieren.

  5. Melden Sie sich bei dem zuvor im Frontend erstellten Kunden an.

  6. Fügen Sie das zuvor erstellte Produkt zum Warenkorb hinzu.

  7. Navigieren Sie zur Kasse (Kasse/Warenkorb).

  8. Überwachen Sie die Ladezeit der banner/ajax/load:

    • Ohne bin/magento dev:query-log:enable

    • Mit bin/magento dev:query-log:enable

      code language-none
      grep 'magento_banner_content' var/debug/db.log  | wc -l
      

Erwartete Ergebnisse:

Verringern der Anzahl von DB-Abfragen für die Ladezeit von magento_banner_content und Warenkorb-/Kaufbestätigungsseite.

Tatsächliche Ergebnisse:

Erhöhung der Anzahl der DB-Abfragen für die Ladezeit von magento_banner_content und Warenkorb-/Kaufbestätigungsseiten.

Patch anwenden

Verwenden Sie je nach Bereitstellungsmethode die folgenden Links, um einzelne Patches anzuwenden:

Weitere Informationen

banners.php Inhalt:

\Banner::class);
    $banner->setIsEnabled(
        \Magento\Banner\Model\Banner::STATUS_ENABLED
    )->setName(
        'Test Dynamic Block '.$i
    )->setTypes(
        ''
    )->setStoreContents(
        [0 => 'Dynamic Block Content '.$i]
    )->save();
}

$objectManager = \Magento\Framework\App\ObjectManager::getInstance();

/** @var \Magento\SalesRule\Model\Rule $salesRule */
$salesRule = $objectManager->create(\Magento\SalesRule\Model\Rule::class);
$salesRule->setData(
    [
        'name' => '50% Off ',
        'is_active' => 1,
        'customer_group_ids' => [\Magento\Customer\Model\GroupManagement::NOT_LOGGED_IN_ID],
        'coupon_type' => \Magento\SalesRule\Model\Rule::COUPON_TYPE_NO_COUPON,
        'conditions' => [
            [
                'type' => \Magento\SalesRule\Model\Rule\Condition\Address::class,
                'attribute' => 'base_subtotal',
                'operator' => '>',
                'value' => 0
            ]
        ],
        'simple_action' => 'by_percent',
        'discount_amount' => 50,
        'discount_step' => 0,
        'stop_rules_processing' => 1,
        'website_ids' => [
           1
        ]
    ]
);
$salesRule->save();

for ($i = 0; $i < 1000; $i++) {

    $banner = $objectManager->create(\Magento\Banner\Model\Banner::class);
    $banner->setData(
        [
            'name' => 'Get 50% Off ',
            'is_enabled' => \Magento\Banner\Model\Banner::STATUS_ENABLED,
            'types' => [], /*Any Banner Type*/
            'store_contents' => ['<img src="http://example.com/banner_40_percent_off.png" />'],
            'banner_sales_rules' => [$salesRule->getId()],
        ]
    );
    $banner->save();
}

Verwandtes Lesen

Weitere Informationen zu Quality Patches Tool finden Sie unter:

Weitere Informationen zu anderen in QPT verfügbaren Patches finden Sie unter Quality Patches Tool: Suchen nach Patches im Quality Patches Tool.

recommendation-more-help
c2d96e17-5179-455c-ad3a-e1697bb4e8c3