PHPackages                             valiton/harbourmaster-commerce - 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. [API Development](/categories/api)
4. /
5. valiton/harbourmaster-commerce

ActiveDrupal-module[API Development](/categories/api)

valiton/harbourmaster-commerce
==============================

Integrates Harbourmaster Commerce for Drupal.

8.1.1-beta4(9y ago)112GPL-2.0+PHP

Since Feb 13Pushed 9y ago25 watchersCompare

[ Source](https://github.com/valiton/harbourmaster-commerce-drupal8-module)[ Packagist](https://packagist.org/packages/valiton/harbourmaster-commerce)[ RSS](/packages/valiton-harbourmaster-commerce/feed)WikiDiscussions 8.x-1.x Synced 4w ago

READMEChangelogDependenciesVersions (6)Used By (0)

Harbourmaster commerce
======================

[](#harbourmaster-commerce)

CONTENTS OF THIS FILE
---------------------

[](#contents-of-this-file)

- Introduction
- Requirements
- Installation
- Configuration
- Usage
- Maintainers

INTRODUCTION
------------

[](#introduction)

This module integrates the Bestseller commerce software with Drupal providing a way of monetizing content created with it.

It does so by allowing an editor to set any content piece ("Drupal entity") or rather any of its parts ("Entity fields") as premium. These pieces of content are encrypted by the module and decrypted on the fly if an authenticated user is entitled to view them (e.g by having purchased a piece of content or a subscription). In case a user is not entitled to view the premium content, they are presented a teaser and a widget allowing to buy it. The purchase is done with React widgets (rendered by Drupal) which talk to the Bestseller API.

It is also possible to display Bestseller products on any entity by using a built in product browser. The products are then displayed along with their crossselling products and can be purchased through said react widgets.

The implementation of these two functionalities as Drupal fields provides a high flexibility by allowing site builders to take advantage of various Drupal APIs and by allowing other modules to change this module's behaviour.

REQUIREMENTS
------------

[](#requirements)

This module requires the following modules:

- Harbourmaster ([https://www.drupal.org/sandbox/patrick\_durold/2791755](https://www.drupal.org/sandbox/patrick_durold/2791755))

INSTALLATION
------------

[](#installation)

See for instructions on how to install or update Drupal modules.

CONFIGURATION
-------------

[](#configuration)

After installing the module, go to admin/config/hmscommerce and provide

- the URL to the Bestseller installation,
- the name of the entitlement the user will be given upon purchasing a subscription,
- the shared secret key between the Usermanager and this Drupal instance to encrypt the premium content pieces,
- the generic error message which will be shown to end users when premium content cannot be shown,
- if not already set, also provide the usermanager API URL on the page admin/people/harbourmaster.

USAGE
-----

[](#usage)

### Premium content

[](#premium-content)

#### Configuration - site builders

[](#configuration---site-builders)

- To add premium functionality to an entity type, add the 'Premium content' field to it.

    - admin/structure/types/manage/\[entity type\]/fields
    - See to learn what can be done with Drupal fields.
- Keep the default 'Allowed number of values' setting of '1'.
- On the field settings page other fields added to that entity type can be marked as premium fields. The output of these fields will be encrypted and hidden on entity view pages for users who are not entitled to view the premium content.

    - At least one field has to be marked premium, otherwise no content will be encrypted or hidden.
- The field settings page also allows to mark fields as teasers. The output of these fields will be shown on entity view pages to users who are not entitled to view the premium content.

    - This setting is optional: If no field is marked as teaser, no teaser will be shown when viewing a premium entity of this entity type.

#### Usage - content editors

[](#usage---content-editors)

- In order to make an entity of that type premium, check the premium content field's checkbox on the entity add/edit page and set the price category. The price categories are populated from Bestseller.
- The entity must have a price category other than '- None -', otherwise it is not premium.
- The price category cannot be changed if there is no connection to Bestseller. In that case it is only possible to keep the current category, or unset it, making the entity non-premium.

### Premium download

[](#premium-download)

#### Configuration - site builders

[](#configuration---site-builders-1)

- To display Bestseller products on an entity, add the 'Bestseller product' field to it.

    - admin/structure/types/manage/\[entity type\]/fields
    - See to learn what can be done with Drupal fields.
- It is advisable to set the field to hold multiple values so that multiple products can be added.

#### Usage - content editors

[](#usage---content-editors-1)

- For Bestseller products to display on an entity view page, add or edit an entity with the 'Bestseller product' field in it and populate the field with products.

MAINTAINERS
-----------

[](#maintainers)

Current maintainers:

- Pawel Ginalski (gbyte.co) -

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity7

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 88.6% 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 ~9 days

Total

4

Last Release

3396d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6f856d48c9f1ee220476ecd6dcd7a876d93b1b9d7bacc8f8b87a580dbcd504de?d=identicon)[weiner](/maintainers/weiner)

---

Top Contributors

[![dbosen](https://avatars.githubusercontent.com/u/6398151?v=4)](https://github.com/dbosen "dbosen (217 commits)")[![chrfritsch](https://avatars.githubusercontent.com/u/731161?v=4)](https://github.com/chrfritsch "chrfritsch (23 commits)")[![Cyberschorsch](https://avatars.githubusercontent.com/u/273226?v=4)](https://github.com/Cyberschorsch "Cyberschorsch (4 commits)")[![pauvos](https://avatars.githubusercontent.com/u/984187?v=4)](https://github.com/pauvos "pauvos (1 commits)")

### Embed Badge

![Health badge](/badges/valiton-harbourmaster-commerce/health.svg)

```
[![Health](https://phpackages.com/badges/valiton-harbourmaster-commerce/health.svg)](https://phpackages.com/packages/valiton-harbourmaster-commerce)
```

###  Alternatives

[exsyst/swagger

A php library to manipulate Swagger specifications

35816.3M7](/packages/exsyst-swagger)[hubspot/api-client

Hubspot API client

24015.5M18](/packages/hubspot-api-client)[pocketmine/bedrock-protocol

An implementation of the Minecraft: Bedrock Edition protocol in PHP

172437.8k11](/packages/pocketmine-bedrock-protocol)[botman/driver-telegram

Telegram driver for BotMan

94452.6k6](/packages/botman-driver-telegram)

PHPackages © 2026

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