logicasoft / cashback
Bitrix 模块:从完成的订单向用户的内部账户充值现金返还
v1.0.1
2020-05-15 11:57 UTC
Requires
- php: >=7.1
- composer/installers: ~1.0
Requires (Dev)
- phpstan/phpstan: ^0.11.8
- phpunit/phpunit: ^5.
This package is auto-updated.
Last update: 2024-09-15 22:09:10 UTC
README
Bitrix:将购物现金返还到用户内部账户
添加了将现金返还到用户内部账户的功能。在订单结算后,会向订单中指定的电子邮件和电话发送通知。现金返还的金额取决于设置:%现金返还和计算策略。
安装
将文件复制到 /local/modules/ 或 /bitrix/modules/ 目录。
等待市场平台审核
计算策略
- 从商品利润率计算: (零售价 - 采购价) * 数量 * 现金返还百分比
- 从零售价计算: 零售价 * 数量 * 现金返还百分比
通知
通知模板在 邮件和短信事件 部分可用。事件类型
- LOGICASOFT_CASHBACK_ADD_EMAIL
- LOGICASOFT_CASHBACK_ADD_SMS
设置
设置页面可通过 设置/产品设置/模块设置/用户内部账户现金返还 地址访问。
事件
在从订单购物车获取产品列表后 onAfterFillProducts
可以更改产品列表的组成,调整字段值。
使用
在参数中传递标准的 Bitrix\Main\Event。产品列表位于 basketProducts 参数中。返回时需要 \Bitrix\Main\Entity\EventResult();
\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'logicasoft.cashback', 'onAfterFillProducts', [ 'Class', 'Method' ] ); Class { public static function Method(\Bitrix\Main\Event $event) { $basketProducts = $event->getParameter('basketProducts'); //Для изменения нужно передать в функцию $result->mofidyFields(); //массив ключами которого будут id продукта. $modifyFields = []; foreach ($basketProducts as $id => $item) { $modifyFields[$id] = [ 'QUANTITY' => 100, //Изменяем количество продуктов 'NEW_FIELD' => 'VALUES' //Новое поле в продуктах ]; } //Добавляем новый продукт в список с id = 100, //нужно учитывать, что в продукте должны быть необходимые для расчета поля //Проверка происходит в стратегиях подсчета, к примеру //\Logicasoft\Cashback\Strategy\RetailCalculation::checkFields() - ищет поля //PRICE и QUANTITY $modifyFields['100'] = [ 'QUANTITY_ID' => 500, 'ID' => 200 ]; $result = new \Bitrix\Main\Entity\EventResult(); $result->modifyFields($modifyFields); //Если нужно удалить продукт из списка, то передаем массив с id продуктов в функцию //$result->unsetField(); //Удалим из списка продукт с id=100 $result->unsetFields([100]); return $result; } }
在添加现金返还后 onAfterCashbackAdd
事件参数中传递以下数据
- CASHBACK_AMOUNT - 现金返还金额
- CURRENCY - 货币
- ORDER_ID - 订单 ID
- USER_ID - 用户 ID
使用
\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'logicasoft.cashback', 'onAfterCashbackAdd', [ 'Class', 'Method' ] ); Class { public static function Method(\Bitrix\Main\Event $event) { //Будет содержать массив описанных выше данных $parameters = $event->getParameters(); } }
在收集列表中的策略时 onCollectCashbackStrategies
在参数中传递实例化的 Logicasoft\Cashback\Strategy\Manager;
添加自己的计算策略。
策略类必须实现 \Logicasoft\Cashback\Strategy\StrategyInterface 接口
use Bitrix\Main\Event; use Bitrix\Main\EventManager; use Logicasoft\Cashback\Strategy\Manager; use Logicasoft\Cashback\Strategy\RetailCalculation; $eventManager = EventManager::getInstance(); $eventManager->addEventHandler( 'logicasoft.cashback', 'onCollectCashbackStrategies', 'llcCollectCashbackStrategies' ); function llcCollectCashbackStrategies(Event $event) { /** @var Manager $manager */ $manager = $event->getParameter('manager'); $manager->addStrategy( RetailCalculation::class ); }
待办事项
- 添加通过 composer 安装
- 添加市场平台链接
由 HueJack 为 Logicasoft LLC 创建