ecomdev/magento2-product-data-preloader

Magento 2 产品数据预加载 FTW

安装次数: 16,611

依赖项: 0

建议者: 0

安全: 0

星标: 107

关注者: 17

分支: 12

开放问题: 0

类型:magento2-module

1.1.1 2023-02-06 20:10 UTC

This package is auto-updated.

Last update: 2024-09-07 15:53:38 UTC


README

Magento 平台代码和第三方扩展在许多情况下,在加载产品集合时会产生冗余的数据库查询。

此模块通过使用不同类型的加载类型,提供了一种预加载产品集合数据(如价格、库存数据等)的简便方法。目前它支持以下三种加载的产品集合类型:

  • list 使用价格索引进行选择的商品,因此对于数据加载器使用过时的索引数据是安全的。
  • cart 用于计算客户购物车并需要从数据库中加载准确数据的商品。
  • other 不属于上述任何类别的商品。

为了预加载产品集合的数据,您需要实现 EcomDev\ProductDataPreLoader\DataService\DataLoader 接口,并提供以下方法:

  • isApplicable(string $type): bool 方法用于确定您的加载器是否与特定产品集合类型兼容。
  • load(ScopeFilter $filter, ProductWrapper[] $products): array 方法用于将数据预加载到 LoadService 中,该服务可以在以后通过您的加载器 ID 访问数据。

自定义加载器应该通过 DI 配置添加到 LoadService 对象,如下所示:

<type name="EcomDev\ProductDataPreLoader\DataService\LoadService">
    <arguments>
        <argument name="loaders" xsi:type="array">
            <item name="my_custom_loader" xsi:type="object">My\Module\Loader\MyCustomLoader</item>
        </argument>
    </arguments>
</type>

安装

鉴于 Composer 1 的 EOL(End of Life),所有新的 Packagist 包在一段时间内都没有发布。因此,保持您的安装最新的最佳方法是使用 Composer 2.0。

composer require ecomdev/magento2-product-data-preloader

使用示例

示例模块实现了对配置产品数据的乐观预加载,不考虑简单产品状态,用于:

  • 产品列表中配置产品的价格
  • 配置产品的 MSI(多源库存)库存可用性
  • 配置产品的简单产品最小层价格