logicasoft/cashback 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

logicasoft/cashback

Composer 安装命令:

composer require logicasoft/cashback

包简介

Bitrix module: Crediting a cashback to the user's internal account from the completed order

README 文档

README

Build Status

Битрикс: кэшбек с покупок на внутренний счет пользователя

Добавляет возможность возвращать кэшбек на внутренний счет пользователя с выполненного заказа. После начисления заказа отправляются уведомления на email и телефон указанные в заказе. Размер кэшбека зависит от настроек: % кэшбека и стратегии подсчета.

Установка

Скопировать в папку /local/modules/ или /bitrix/modules/.

Ожидаем модерации в маркетплейс

Стратегии подсчета

  1. Расчет от маржинальности товара: (розничная цена - закупочная цена) * количество * размер кэшбека%
  2. Расчет от розничной цены: розничная * количество * размер кэшбека%

Уведомления

Шаблоны уведомлений доступны в разделе Почтовые и СМС события. Типы событий:

  • 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
    );
}

TODO:

  • добавить установку с помощью composer
  • добавить ссылку на маркетплейс

Created by HueJack for LLC Logicasoft

统计信息

  • 总下载量: 2
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2020-04-24

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固