PHPackages                             remp/crm-products-module - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. remp/crm-products-module

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

remp/crm-products-module
========================

CRM Products Module

4.4.0(5mo ago)034.8k—10%5[1 PRs](https://github.com/remp2020/crm-products-module/pulls)1MITPHPPHP ^8.1

Since Jul 31Pushed 5mo ago7 watchersCompare

[ Source](https://github.com/remp2020/crm-products-module)[ Packagist](https://packagist.org/packages/remp/crm-products-module)[ Docs](https://remp2030.com)[ RSS](/packages/remp-crm-products-module/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)DependenciesVersions (74)Used By (1)

CRM Products Module
===================

[](#crm-products-module)

[![Translation status @ Weblate](https://camo.githubusercontent.com/3b84cfc4a27324ee9c8f71494401d02d85da9492e24372c57d62d8c7e636408f/68747470733a2f2f686f737465642e7765626c6174652e6f72672f776964676574732f72656d702d63726d2f2d2f70726f64756374732d6d6f64756c652f7376672d62616467652e737667)](https://hosted.weblate.org/projects/remp-crm/products-module/)

Configuration
-------------

[](#configuration)

### Payment gateways

[](#payment-gateways)

To configure which gateways are available on the checkout page, you need to register the gateway and add it's label in your `config.neon` file.

Please add following snippet with the (available) gateways you want to use:

```
services:
	# ...
	checkoutFormFactory:
		setup:
			- addPaymentGateway(paypal, "Paypal")
			- addPaymentGateway(cardpay, "Credit card")
```

### Terms and Conditions URL

[](#terms-and-conditions-url)

If you want the customer to agree to the terms and conditions, you need to configure URL in settings *(category **Shop**)*.

[![Terms and conditions URL - settings](docs/terms-and-conditions_-_configuration.png "Terms and conditions URL - settings")](docs/terms-and-conditions_-_configuration.png)

Checkbox with the link to the terms and conditions will be displayed *(and required)* at the checkout before the customer confirms the order.

[![Terms and conditions URL - displayed at checkout](docs/terms-and-conditions_-_checkout.png "Terms and conditions URL - displayed at checkout")](docs/terms-and-conditions_-_checkout.png)

### E-books

[](#e-books)

Product module can handle orders of ebooks and provides download links in the user's section.

To display the download links of e-books you have to register your own implementation of `EbookProviderInterface` in configuration:

```
ebookProvider:
    setup:
        - register(Crm\DibukModule\Models\DibukEbookProvider())

```

And register link on library into user's section menu:

```
public function registerFrontendMenuItems(MenuContainerInterface $menuContainer)
{
    ...

    $menuItem = new MenuItem($this->translator->translate('products.menu.books'), ':Products:Orders:Library', '', 155);
    $menuContainer->attachMenuItem($menuItem);
}

```

[![Books library link](docs/books-library-link.png "Books library link")](docs/books-library-link.png)

Change of VAT rates
-------------------

[](#change-of-vat-rates)

If the VAT rate changes in your country, there is a command that helps you update the system. Schedule it to be executed on the date of VAT change.

- `products:change_vat --original-vat=X --target-vat=Y`
    - Command changes all existing products and each affected (`type=product`) payment item. You can test the command before the VAT change date by using `--dry-run` and `--verbose` options.

Components
----------

[](#components)

**DonatedSubscriptionListingWidget**

Simple badge showing subscription donor e-mail.

[![alt text](docs/donated_by.png "DonatedSubscriptionListingWidget")](docs/donated_by.png)

[Source code](https://github.com/remp2020/crm-products-module/blob/c8d80062b7f3cb355489327e17b0b40a69d89562/src/components/DonatedSubscriptionListingWidget/DonatedSubscriptionListingWidget.php#L1)

[How to use](https://github.com/remp2020/crm-products-module/blob/c8d80062b7f3cb355489327e17b0b40a69d89562/src/ProductsModule.php#L234)

**GiftCoupons**

Dropdown listing of gift subscriptions with modal detail.

[![alt text](docs/gift_subscriptions_1.png "GiftCoupons")](docs/gift_subscriptions_1.png)

[![alt text](docs/gift_subscriptions_2.png "GiftCoupons")](docs/gift_subscriptions_2.png)

[Source code](https://github.com/remp2020/crm-products-module/blob/c8d80062b7f3cb355489327e17b0b40a69d89562/src/components/GiftCoupons/GiftCoupons.php#L1)

[How to use](https://github.com/remp2020/crm-products-module/blob/c8d80062b7f3cb355489327e17b0b40a69d89562/src/ProductsModule.php#L229)

**ProductItemsListWidget**

Payments listing single payment item widget.

[![alt text](docs/payment_items.png "ProductItemsListWidget")](docs/payment_items.png)

[Source code](https://github.com/remp2020/crm-products-module/blob/c8d80062b7f3cb355489327e17b0b40a69d89562/src/components/PaymentItemsListWidget/ProductItemsListWidget.php#L1)

[How to use](https://github.com/remp2020/crm-products-module/blob/c8d80062b7f3cb355489327e17b0b40a69d89562/src/ProductsModule.php#L225)

**ProductStats**

Products stats listing component.

[![alt text](docs/product_stats_table.png "ProductStats")](docs/product_stats_table.png)

[Source code](https://github.com/remp2020/crm-products-module/blob/c8d80062b7f3cb355489327e17b0b40a69d89562/src/components/ProductsStats/ProductStats.php#L1)

[How to use](https://github.com/remp2020/crm-products-module/blob/c8d80062b7f3cb355489327e17b0b40a69d89562/src/presenters/DashboardPresenter.php#L69)

###  Health Score

56

—

FairBetter than 98% of packages

Maintenance72

Regular maintenance activity

Popularity30

Limited adoption so far

Community28

Small or concentrated contributor base

Maturity82

Battle-tested with a long release history

 Bus Factor2

2 contributors hold 50%+ of commits

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 ~32 days

Recently: every ~62 days

Total

72

Last Release

162d ago

Major Versions

0.38.0 → 1.0.0-beta22022-02-09

0.39.0 → 2.0.02022-08-25

1.2.3 → 2.1.02022-11-16

2.11.0 → 3.0.02024-01-22

3.7.0 → 4.0.02025-04-02

PHP version history (5 changes)0.4.2PHP ^7.2

0.29.0PHP ^7.3

0.35.0PHP ^7.4

2.0.0PHP ^8.0

3.0.0PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/7c733f9bd683c3814197d8a532b7da1ba1f631bb1efe1cde5f064feab1e24877?d=identicon)[rootpd](/maintainers/rootpd)

![](https://www.gravatar.com/avatar/a05541c0b35f43d95db5342210e1d9e64242888812d13f5b096df48b6aabd863?d=identicon)[msvitok](/maintainers/msvitok)

![](https://www.gravatar.com/avatar/2c30fdbc85cda35b94f7f59399918193a0289152281abcef344ec9ee82864177?d=identicon)[markoph](/maintainers/markoph)

---

Top Contributors

[![rootpd](https://avatars.githubusercontent.com/u/812909?v=4)](https://github.com/rootpd "rootpd (113 commits)")[![markoph](https://avatars.githubusercontent.com/u/6843562?v=4)](https://github.com/markoph "markoph (102 commits)")[![lubos-michalik](https://avatars.githubusercontent.com/u/63700066?v=4)](https://github.com/lubos-michalik "lubos-michalik (50 commits)")[![zoldia](https://avatars.githubusercontent.com/u/1526070?v=4)](https://github.com/zoldia "zoldia (49 commits)")[![Matefko](https://avatars.githubusercontent.com/u/22897457?v=4)](https://github.com/Matefko "Matefko (38 commits)")[![miroc](https://avatars.githubusercontent.com/u/1230714?v=4)](https://github.com/miroc "miroc (35 commits)")[![davidkvasnovsky](https://avatars.githubusercontent.com/u/12381721?v=4)](https://github.com/davidkvasnovsky "davidkvasnovsky (7 commits)")[![weblate](https://avatars.githubusercontent.com/u/1607653?v=4)](https://github.com/weblate "weblate (7 commits)")[![burithetech](https://avatars.githubusercontent.com/u/3502143?v=4)](https://github.com/burithetech "burithetech (5 commits)")[![nakashu](https://avatars.githubusercontent.com/u/1550659?v=4)](https://github.com/nakashu "nakashu (3 commits)")[![tomaj](https://avatars.githubusercontent.com/u/446736?v=4)](https://github.com/tomaj "tomaj (3 commits)")[![ricco24](https://avatars.githubusercontent.com/u/1409647?v=4)](https://github.com/ricco24 "ricco24 (1 commits)")[![strstensky](https://avatars.githubusercontent.com/u/39539367?v=4)](https://github.com/strstensky "strstensky (1 commits)")[![mmacsodi-fcm](https://avatars.githubusercontent.com/u/169140294?v=4)](https://github.com/mmacsodi-fcm "mmacsodi-fcm (1 commits)")[![mikoczy](https://avatars.githubusercontent.com/u/14105084?v=4)](https://github.com/mikoczy "mikoczy (1 commits)")

### Embed Badge

![Health badge](/badges/remp-crm-products-module/health.svg)

```
[![Health](https://phpackages.com/badges/remp-crm-products-module/health.svg)](https://phpackages.com/packages/remp-crm-products-module)
```

###  Alternatives

[sparkinzy/dcat-distpicker

省市区地址选择器，支持select2

272.7k1](/packages/sparkinzy-dcat-distpicker)

PHPackages © 2026

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