PHPackages                             logicasoft/cashback - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. logicasoft/cashback

ActiveBitrix-d7-module

logicasoft/cashback
===================

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

v1.0.1(6y ago)021MITPHPPHP &gt;=7.1CI failing

Since May 15Pushed 6y ago1 watchersCompare

[ Source](https://github.com/HueJack/logicasoft.cashback)[ Packagist](https://packagist.org/packages/logicasoft/cashback)[ RSS](/packages/logicasoft-cashback/feed)WikiDiscussions master Synced 5d ago

READMEChangelogDependencies (3)Versions (3)Used By (0)

[![Build Status](https://camo.githubusercontent.com/25d9c04152a006e9becaebeb5d340f4e90bfb83e7b757791535bed136d4cb08c/68747470733a2f2f7472617669732d63692e6f72672f4875654a61636b2f6c6f67696361736f66742e636173686261636b2e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/HueJack/logicasoft.cashback)

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

[](#битрикс-кэшбек-с-покупок-на-внутренний-счет-пользователя)

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

Установка
---------

[](#установка)

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

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

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

[](#стратегии-подсчета)

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

Уведомления
-----------

[](#уведомления)

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

- LOGICASOFT\_CASHBACK\_ADD\_EMAIL
- LOGICASOFT\_CASHBACK\_ADD\_SMS

Настройка
---------

[](#настройка)

Страница настройки доступна по адресу *Настройки/Настройка продукта/Настройки модулей/Кэшбек на внутренний счет пользователя*.

События
-------

[](#события)

### После получения списка продуктов из корзины заказа onAfterFillProducts

[](#после-получения-списка-продуктов-из-корзины-заказа-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

[](#после-добавлении-кэшбека-onaftercashbackadd)

В параметрах события передаются следующие данные:

- CASHBACK\_AMOUNT - размер кэшбека
- CURRENCY - валюта
- ORDER\_ID - id заказа
- USER\_ID - id пользователя

#### Использование

[](#использование-1)

```
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
  'logicasoft.cashback',
  'onAfterCashbackAdd',
  [
    'Class',
    'Method'
  ]
);

Class {
    public static function Method(\Bitrix\Main\Event $event)
    {
        //Будет содержать массив описанных выше данных
        $parameters = $event->getParameters();
    }
}
```

### При добавлении стратегий в список onCollectCashbackStrategies

[](#при-добавлении-стратегий-в-список-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:
-----

[](#todo)

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

**Created by HueJack for LLC Logicasoft**

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

2193d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0340bb8d888609700f496ad9123f88177e765e853ed7d0848fbe97413b449429?d=identicon)[HueJack](/maintainers/HueJack)

---

Top Contributors

[![HueJack](https://avatars.githubusercontent.com/u/15571834?v=4)](https://github.com/HueJack "HueJack (30 commits)")

---

Tags

bitrixCashback

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/logicasoft-cashback/health.svg)

```
[![Health](https://phpackages.com/badges/logicasoft-cashback/health.svg)](https://phpackages.com/packages/logicasoft-cashback)
```

###  Alternatives

[andreyryabin/sprint.migration

bitrix migration module

205195.8k2](/packages/andreyryabin-sprintmigration)[digitalwand/digitalwand.admin_helper

API for custom admin interface in Bitrix by DigitalWand and Notamedia agency

15633.5k3](/packages/digitalwand-digitalwandadmin-helper)[bitrix-expert/bbc

Bitrix basis components

10242.9k1](/packages/bitrix-expert-bbc)[andreyryabin/sprint.editor

Редактор для контент-менеджеров

485.6k](/packages/andreyryabin-sprinteditor)[bitrix-expert/bbc-module

Module with classes for the basis components

1951.8k1](/packages/bitrix-expert-bbc-module)[andreyryabin/sprint.options

Content options for 1C-Bitrix

185.7k](/packages/andreyryabin-sprintoptions)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
