run_as_root / ext-magento2-product-priorities
本模块在管理产品网格中提供了一个产品优先级列。
dev-main
2022-10-28 11:19 UTC
Requires
- magento/framework: *
- magento/module-backend: *
- magento/module-catalog: *
- magento/module-reports: *
- magento/module-sales: *
- magento/module-store: *
- magento/module-ui: *
- psr/log: *
Requires (Dev)
This package is auto-updated.
Last update: 2024-08-28 15:13:29 UTC
README
通用
在管理产品网格中提供了一个产品优先级列。
安装
composer require run_as_root/ext-magento2-product-priorities
bin/magento setup:upgrade
功能
“产品”网格中的“优先级”列
优先级
列包含每个产品的相关性比例值。这些值应与优先级矩阵相匹配。
优先级矩阵
优先级矩阵
是可编辑的(数据存储在数据库中的 run_as_root_product_priorities
表中)。有初始值。优先级名称
和 相关性比例值 %
字段必须是唯一的。
管理员可以调整特定时间段内的优先级。
优先级值通过以下公式计算
- 报告数据从
sales_bestsellers_aggregated_daily
表加载特定时间段的数据 - 系统找到具有最大
ordered_qty
值的产品,并将目标产品标记为顶级畅销产品(从矩阵中获取最高的优先级值,即A
) - 系统遍历其他产品,并按以下公式计算优先级值:4.
targetProduct['ordered_qty'] * 100 / topBestsellerProduct['ordered_qty'] = targetProduct['proportion_value']
5. 系统从Priority Matrix
中获取小于targetProduct['proportion_value']
的最大相关性比例值
技术规范
API
RunAsRoot\ProductPriorities\Api\Data\ProductPriorityInterface
定义了产品优先级实体的所有获取器和设置器。
RunAsRoot\ProductPriorities\Api\ProductPriorityRepositoryInterface
提供对持久数据实体的访问。具有以下方法
save(ProductPriorityInterface $productPriority)
:如果没有id,则创建新记录,否则更新具有指定id的现有记录。get(int $entityId)
:通过id执行数据库查找并返回数据实体接口delete(ProductPriorityInterface $productPriority)
:删除指定的实体deleteById(int $entityId)
:通过id删除指定的实体
块
RunAsRoot\ProductPriorities\Block\Adminhtml\ProductPriority\Buttons\GenericButton
实现用于产品优先级表单内的共享方法。
getEntityId()
:返回特定实体的idgetUrl($route = '', $params = [])
:实现 urlBuilder 包装器
RunAsRoot\ProductPriorities\Block\Adminhtml\ProductPriority\Buttons\BackButton
实现按钮的回退操作,如果管理员在产品优先级表单页面上。
RunAsRoot\ProductPriorities\Block\Adminhtml\ProductPriority\Buttons\DeleteButton
实现按钮的删除操作,如果管理员在产品优先级表单页面上。
RunAsRoot\ProductPriorities\Block\Adminhtml\ProductPriority\Buttons\SaveButton
为产品优先级表单页上的分割保存按钮提供保存操作数据。
RunAsRoot\ProductPriorities\Block\Adminhtml\System\Config\Form\Field\Date
实现系统配置的 DatePicker 前端模型。
配置提供程序
RunAsRoot\ProductPriorities\ConfigProvider\General
实现获取模块配置的功能。
isModuleEnabled(int $storeId)
:返回模块是否启用/禁用getFromDate(int $storeId)
:返回期间的起始日期
控制器
RunAsRoot\ProductPriorities\Controller\Adminhtml\Product\Priorities
返回产品优先级网格页面
RunAsRoot\ProductPriorities\Controller\Adminhtml\Product\MassDelete
处理产品优先级网格上的批量删除产品优先级实体
RunAsRoot\ProductPriorities\Controller\Adminhtml\Product\AbstractPriority
实现了由控制器(产品优先级表单)使用的共享方法。
RunAsRoot\产品优先级\Controller\Adminhtml\产品\优先级\*
实现了CRUD操作
数据提供者
RunAsRoot\产品优先级\数据提供者\优先级
实现了'优先级'列的计算过程和数据提供者
getData()
:返回处理后的数据prepareCollection()
:初始化和调整畅销产品集合getPriorityByProportion(int $proportionValue)
:从矩阵中返回匹配值getPriorities()
:返回矩阵数据
模型
RunAsRoot\产品优先级\Model\产品优先级\数据提供者
实现了在创建/编辑表单上为产品优先级实体提供数据提供者
RunAsRoot\产品优先级\Model\*
实现了实体相关模型、资源模型、集合、仓库
设置
RunAsRoot\产品优先级\设置\Patch\数据\插入样本数据
将初始数据插入数据库(优先级矩阵
)
用户界面
RunAsRoot\产品优先级\用户界面\组件\列表\列\操作
实现了产品优先级网格的编辑/删除操作
RunAsRoot\产品优先级\用户界面\组件\列表\列\产品优先级
描述了'优先级'列的类
配置
产品优先级网格
- 导航到营销 -> run_as_root -> 产品优先级