Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
db1e1bb
feat: Release ClientXCMS v2.15, introducing new features, improvement…
martindev-fr Feb 28, 2026
b91ea12
fix: proxmox typo
martindev-fr Mar 13, 2026
f7a2a50
feat: add binance docs
martindev-fr Mar 13, 2026
94d8904
feat: add square docs
martindev-fr Mar 13, 2026
82bbba1
feat: add sumup docs
martindev-fr Mar 13, 2026
a10c021
feat: add quote_manager addon
martindev-fr Mar 13, 2026
86af63e
feat: add helpdesk autoreply extensions
martindev-fr Mar 17, 2026
2593140
feat: add support for backups in Proxmox documentation
martindev-fr Mar 21, 2026
ce015d7
deps: bump the all-dependencies group across 1 directory with 2 updat…
dependabot[bot] Mar 29, 2026
2f07b69
docs: add documentation for Microsoft, Minecraft, Twitch, and ClientX…
martindev-fr Mar 29, 2026
33c2a9f
feat: publish March 2026 update blog post
martindev-fr Mar 29, 2026
052f8c4
chore: remove google-gtag and cookie-consent plugins from documentati…
martindev-fr Mar 29, 2026
4b51963
feat: v2.15.1
martindev-fr Apr 6, 2026
cae912f
Merge branch 'V2' into preprod
martindev-fr Apr 11, 2026
8f0b8de
fix: update authors' GitHub URLs and correct ctxmailer service discon…
martindev-fr Apr 12, 2026
f077c36
feat: add automatic update documentation, override webpack version, a…
martindev-fr Apr 16, 2026
83faf17
chore: remove redocusaurus API documentation integration and references
martindev-fr Apr 16, 2026
7742338
feat: add documentation for knowledgebase and how-did-you-find-us pub…
martindev-fr Apr 19, 2026
ba157ec
deps: bump brace-expansion (#207)
dependabot[bot] Apr 19, 2026
5b8ee24
feat: add late fees addon
martindev-fr May 15, 2026
eebaa09
feat: Add CLI options for creating extensions and themes, enhance Doc…
martindev-fr Jun 6, 2026
f0045d0
fix: update links to the ideas platform across multiple documents
martindev-fr Jun 6, 2026
c05ddf3
feat: add Service Pack documentation and related images for product c…
martindev-fr Jun 6, 2026
babfba1
feat(installation): documenter le script d'installation en une comman…
alexwrite Jun 28, 2026
85963d8
deps: bump brace-expansion (#208)
dependabot[bot] Jun 28, 2026
ab73750
Merge branch 'V2' into preprod
martindev-fr Jun 28, 2026
6831c0a
fix: remove used docker workflow
martindev-fr Jun 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 0 additions & 42 deletions .github/workflows/docker-image-preprod.yml

This file was deleted.

42 changes: 0 additions & 42 deletions .github/workflows/docker-images.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/test-build-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
node-version: '24'

- name: Install dependencies
run: npm install
Expand Down
2 changes: 1 addition & 1 deletion blog/2025-05-31-mise-en-opensource.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ We will focus our efforts on:
* and valuing ideas from the community.

📍 For this, we have launched a dedicated site:
👉 [ideas.clientxcms.com](https://ideas.clientxcms.com)
👉 [clientxcms.com/ideas](https://clientxcms.com/ideas)
A space where you can connect via Discord, **vote for extension ideas**, propose new ones, and follow their evolution. The goal is clear: to co-build a tool as close as possible to real needs.

![image](/img/blog/mise-en-opensource/ideas.png)
Expand Down
2 changes: 1 addition & 1 deletion blog/2025-09-05-lancement-opensource.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ You can also find more than 30 repositories related to CLIENTXCMS on our GitHub
Feel free to:
- Give a ⭐ on the repository to support the project
- Create your issues and pull requests
- Share your ideas via [ideas.clientxcms.com](https://ideas.clientxcms.com)
- Share your ideas via [clientxcms.com/ideas](https://clientxcms.com/ideas)
- Join our [forum](https://forum.clientxcms.com) to exchange with the community

## 🛠️ New Extensions Interface & Marketplace
Expand Down
4 changes: 2 additions & 2 deletions blog/2025-12-31-bonne-annee-2026.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ Version v2.15 (mid-February 2026) will integrate **three new payment platforms**

These solutions enrich the ecosystem and facilitate the adoption of ClientXCMS in different contexts.

Feel free to suggest payment platforms via the [idea platform](https://ideas.clientxcms.com).
Feel free to suggest payment platforms via the [idea platform](https://clientxcms.com/ideas).

![gateway](/img/blog/bonne-annee-2026/gateways.png)

Expand Down Expand Up @@ -144,7 +144,7 @@ Among the expected extensions and new features:

Finally, one of our major objectives for this new year is the development of **CMS internationalization**, to propel ClientXCMS beyond French borders and reach a global community.

👉 Proposals are open at **https://ideas.clientxcms.com**
👉 Proposals are open at **https://clientxcms.com/ideas**

## A Final Word

Expand Down
27 changes: 27 additions & 0 deletions docs/developpers/extensions/create.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,33 @@ When executing this command, several questions will be asked, including:
- **Use of controllers**: Indicate if controllers are needed.
- **Use of a database**: Specify if the extension requires database usage.

### Creation via CLI with options

To create an extension without going through the interactive questions, you can use the following command:

```bash
php artisan clientxcms:create-extension \
--name="My extension" \
--uuid="my-extension" \
--type="addon" \
--routes=1 \
--controllers=1 \
--database=1 \
--views=1 \
--lang=1
```

#### Option details

* `--name`: displayed extension name.
* `--uuid`: unique extension identifier.
* `--type`: extension type. Possible values: `addon` or `module`.
* `--routes`: creates route files.
* `--controllers`: creates controllers.
* `--database`: creates database-related files, such as migrations and seeders.
* `--views`: creates extension views.
* `--lang`: creates translation files.

#### Structure of an addon

Here is an example of the structure of an addon, based on the `fund` extension:
Expand Down
32 changes: 32 additions & 0 deletions docs/developpers/themes/create-theme.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,38 @@ php artisan clientxcms:create-theme
```
The command will ask you for the theme name and will create the theme structure for you based on your answers.
![clientxcms:create-theme command](/img/next_gen/developpers/themes/cli.png)

### Creation via CLI with options

To create a theme without going through the interactive questions, you can use the following command:

```bash
php artisan clientxcms:create-theme \
--name="My theme" \
--uuid="my-theme" \
--parent="default" \
--description="Theme description" \
--author-name="ClientXCMS" \
--author-email="[email protected]" \
--css=1 \
--js=1 \
--config=1 \
--lang=1
```

#### Option details

* `--name`: displayed theme name.
* `--uuid`: unique theme identifier.
* `--parent`: parent theme used as a base. Possible values: `default` or `bootstrap`.
* `--description`: theme description.
* `--author-name`: author name.
* `--author-email`: author email address.
* `--css`: creates the main CSS file for the theme.
* `--js`: creates the main JavaScript file for the theme.
* `--config`: creates the theme configuration files.
* `--lang`: creates the theme language files.

## Theme File
The `theme.json` file is the theme configuration file. It contains the theme information.
```json
Expand Down
74 changes: 74 additions & 0 deletions docs/extensions/addons/late_fees.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Late Fees

The **Late Fees** extension allows you to automate the application of additional charges on unpaid invoices after their due date. It offers great flexibility to configure fixed or percentage amounts, manage grace periods, and even exempt certain customers.

:::info
Penalty processing is performed automatically every day at **06:00 AM** via a scheduled task.
:::

## Global Configuration

To configure late fees, go to **Settings > Billing > Late Fees Settings**.

![Late Fees Settings](/img/next_gen/extensions/addons/late_fees/admin_settings.png)

### Available Parameters:

| Parameter | Description |
| :--- | :--- |
| **Enable Late Fees** | Globally enable or disable automatic processing. |
| **Fee Type** | Choose between a fixed amount or a percentage of the invoice amount. |
| **Fee Amount** | The value to apply (e.g., 10 for 10% or 5.00 for $5). |
| **Maximum Fee Cap** | (Optional) Defines the maximum amount a penalty can reach. |
| **Grace Period (days)** | Number of days after the due date before the penalty is applied. |
| **Warning Days Before** | Number of days before the due date to send a warning email. |
| **Recurring Fees** | If enabled, the penalty will be reapplied periodically if the invoice remains unpaid. |
| **Recurring Interval (days)** | Frequency at which the recurring penalty is applied. |
| **Legal Text** | Text displayed on the invoice to justify the penalty (available in multiple languages). |
| **Notifications** | Ability to send a warning email before application and an email once the penalty is applied. |

## Customer Exemptions

It is possible to exclude certain customers from the automatic application of penalties (for example, for VIP customers or institutional accounts).

Access the **Customer Exemptions** section at the bottom of the settings page.

![Customer Exemptions](/img/next_gen/extensions/addons/late_fees/exceptions_client.png)

1. Search for the customer to exempt in the **Customer** field.
2. Provide a **Reason** (optional) for record-keeping.
3. Click **Add Exemption**.

## Late Fees Management

You can track all applied penalties on the **Late Fees** page accessible via the administration menu.

![All Late Fees](/img/next_gen/extensions/addons/late_fees/admin_show_late_fees.png)

This page displays global statistics:
- **Total Applied**: Number of penalties generated.
- **Total Amount**: Cumulative value of penalties.
- **Total Collected**: Amount of penalties paid by customers.
- **Outstanding**: Amount remaining to be collected.

You can filter the list by status (Pending, Applied, Paid, Cancelled), by customer, or by date.

## Manual Application

If you need to add a one-time penalty to a specific invoice, you can do so manually using the **Apply Manual Fee** button.

![Apply Manual Fee](/img/next_gen/extensions/addons/late_fees/add_manual_late_fees.png)

Simply select the concerned invoice and indicate the fee amount to apply immediately. The penalty will then be added to the invoice (or created separately depending on your configuration).

## Detail and Cancellation

By clicking on **Show** for a specific penalty, you can access its details and cancel it if necessary.

![Cancel Late Fee](/img/next_gen/extensions/addons/late_fees/cancel_fees.png)

To cancel (waive) a penalty:
1. Provide a reason in the **Notes** field.
2. Click **Cancel Late Fee**.

Once cancelled, the status will change to **Cancelled** and the amount will no longer be due.
86 changes: 86 additions & 0 deletions docs/extensions/addons/pack.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
---
translated: true
---

# Service Pack

The **Service Pack** add-on lets you sell several services in a single offer. The customer orders a pack product, then ClientXCMS automatically creates the services included in that pack.

Packs are useful for bundled offers, such as web hosting with a game server, a reseller service with included options, or any combination of products that should renew together.

![Creating a Pack of Products product](/img/next_gen/extensions/addons/pack/create_product.png)

## How it works

A pack contains several product rows. Each row can be configured in one of two ways:

* **Required product**: the product is defined directly in the pack. The customer does not choose this service, it is added automatically during the order.
* **Customer choice**: you define several possible products, then the customer chooses the one they want during the order.

The customer only pays for and renews the main pack product. When this product is renewed, the services included in the pack are renewed automatically.

:::info
Included services remain linked to the pack product. Renewal, suspension, or expiration should therefore be managed from the main pack service.
:::

## Create a pack product

In the administration panel, create a new product and select the **Pack Of Products** type.

Then configure the usual product information:

* The pack name.
* The product group.
* The available stock.
* The description.
* The pack price.

The price displayed to the customer corresponds to the pack product. Included products are not renewed separately by the customer.

![Pack product configuration](/img/next_gen/extensions/addons/pack/create_product.png)

## Configure included products

After creating the pack product, open the offer configuration. You can add content displayed in the global panel, then define the included product rows.

Each row represents either a required product or a choice left to the customer.

![Included products configuration for the pack](/img/next_gen/extensions/addons/pack/config_product.png)

### Required product

Use **Required product** when a service must always be included in the pack. Select the relevant product: it will be created automatically for every pack order.

Example: a "Web Reseller" pack can always include a predefined reseller hosting product.

### Customer choice

Use **Customer choice** when the customer must choose between several products during the order.

Example: a pack can include a game service and let the customer choose between several Minecraft offers. The configuration options of the selected product remain available during the order.

## Customer order

During the order, the customer selects the pack billing period, then configures the included products.

Required products are displayed as included. **Customer choice** rows display a list of available products, then the options associated with the selected product.

![Ordering a pack from the customer area](/img/next_gen/extensions/addons/pack/product_config.png)

## Renewal

The customer only renews the main pack service. During renewal, ClientXCMS automatically renews the other services linked to the pack.

This avoids having several separate invoices or due dates for included products. The pack keeps a single commercial due date, even if it contains several technical services.

:::warning
Avoid manually renewing an included service separately from the pack, except for a specific support case. The main pack service should remain the billing reference.
:::

## Best practices

* Create a clear pack product with a description listing the included services.
* Use **Required product** for services that must always be provided.
* Use **Customer choice** only when the customer should actually compare several products.
* Check that included products are active, configured, and orderable before publishing the pack.
* Test a complete order with the same options as your customers before putting the offer into production.
2 changes: 1 addition & 1 deletion docs/installation/ansible.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ sidebar_position: 5
translated: true
---

# Automated Deployment with Ansible
# Ansible

**Ansible** enables fully automated deployment of ClientXCMS, from prerequisite installation to production deployment. This method is recommended for production environments and multi-server deployments.

Expand Down
Loading
Loading