Changes for page How-To: Bulk/Group Subscriptions
Last modified by Admin User on 2026/09/02 09:31
From version 5.1
edited by Admin User
on 2026/09/02 09:30
on 2026/09/02 09:30
Change comment:
There is no comment for this version
To version 1.1
edited by Admin User
on 2026/09/02 09:30
on 2026/09/02 09:30
Change comment:
Changed document syntax from [XWiki 2.1] to [xwiki/2.1].
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 3 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,0 @@ 1 -Contents - Content
-
... ... @@ -1,230 +1,0 @@ 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 -**ONEcount Fulfillment Module** 14 - 15 -Group & Bulk Licenses — User Guide 16 - 17 -= Contents = 18 - 19 -~1. Overview 20 - 21 -2. License Types 22 - 23 -3. Creating a Group License 24 - 25 -4. Seat Management 26 - 27 -5. Bulk Individual Provisioning 28 - 29 -6. Group Admins 30 - 31 -7. License Lifecycle 32 - 33 -8. Reporting 34 - 35 -9. Setup & Configuration 36 - 37 -10. Permissions 38 - 39 -~11. Subscriber Self-Service (Seat Manager Portal) 40 - 41 -= 1. Overview = 42 - 43 -Group and bulk licenses allow an organization to purchase multiple subscriptions under a single agreement. The purchaser pays once for N seats, and those seats are distributed to individual recipients. 44 - 45 -Two license models are supported: 46 - 47 -* Managed seats — The organization buys N seats. A group admin assigns and unassigns members. Seats can be transferred between users. Think: corporate site license with a roster. 48 -* Bulk individual — The purchaser provides a recipient list. Each recipient gets a standalone subscription. Think: a school buying 200 copies for students. 49 - 50 -[[image:fulfillment-group-bulk-licenses_a6f51be53df57a8d.png||height="430" width="586"]] 51 - 52 -//The Group Licenses list showing four demo licenses with seat utilization bars and status indicators.// 53 - 54 -In this example, Skyward Aviation Academy has a managed-seat license with 4 of 10 seats assigned (green bar). Clearwater Flight School has a fully provisioned bulk license at 25/25 (red bar). AeroTech Corp is at full capacity (5/5). Sunset Wings LLC is an expired license. 55 - 56 -= 2. License Types = 57 - 58 -== 2.1 Managed Seats == 59 - 60 -When a managed-seat license is created, the system pre-creates N unassigned seat rows. A group admin can then assign each seat to a specific user (OCID). Key characteristics: 61 - 62 -* Seats can be assigned, unassigned, and transferred 63 -* The purchaser is automatically made the group admin (owner role) 64 -* Additional admins can be added with “manager” role 65 -* Seat counts can be increased or decreased (resize) 66 -* Each assignment creates a real subscription for the assignee 67 - 68 -== 2.2 Bulk Individual == 69 - 70 -Bulk individual licenses create standalone subscriptions for a list of recipients. Once provisioned, each recipient has an independent subscription. Key characteristics: 71 - 72 -* Recipients can be provisioned via CSV upload or OCID list 73 -* Each recipient gets their own gcn_transactionlog entry 74 -* Subscriptions are independent — cancelling the license does not affect already-provisioned recipients 75 -* The license tracks seat counts for administrative purposes 76 - 77 -= 3. Creating a Group License = 78 - 79 -Navigate to Fulfillment › Group Licenses. Click the red “Create License” button to open the creation modal. 80 - 81 -[[image:fulfillment-group-bulk-licenses_ba0c4d5b8a553f45.png||height="411" width="586"]] 82 - 83 -//The Create License modal with license type, organization name, seat count, and product-or-package selection.// 84 - 85 -|**Field**|**Required**|**Description** 86 -|**License type**|Yes|Managed seats or Bulk individual 87 -|**Organization name**|No|Display name for the organization (e.g., “Skyward Aviation Academy”) 88 -|**Purchaser OCID**|Yes|The OCID of the person/organization paying 89 -|**Total seats**|Yes|Number of seats to create 90 -|**Product or Package**|Yes|Select a product or package from the dropdown (grouped by type) 91 -|**Term**|Yes|Select the term — cascades from the selected product or package 92 -|**Publication**|No|The fulfillment publication 93 -|**Start date**|Yes|License start date (defaults to today) 94 -|**End date**|No|License end date (empty = perpetual) 95 -|**Auto-renew**|No|Whether to auto-renew when the license expires 96 - 97 -= 4. Seat Management = 98 - 99 -Click the seat management icon (≡) on any managed-seat license row to open the seat detail page. This page shows all seats, their assignment status, and available actions. 100 - 101 -[[image:fulfillment-group-bulk-licenses_ea2f270345ce269.png||height="430" width="586"]] 102 - 103 -//Seat management for Skyward Aviation Academy — 4 assigned seats and 6 unassigned, with assign/unassign controls.// 104 - 105 -== 4.1 Assigning a Seat == 106 - 107 -For unassigned seats, enter the recipient’s OCID and click the assign button. The system will: 108 - 109 -* Create a subscription record for the recipient 110 -* Update the seat status to “assigned” 111 -* Increment the used_seats counter on the license 112 -* Log an adds/removals event with reason code GROUP_SEAT_ASSIGNED 113 - 114 -== 4.2 Unassigning a Seat == 115 - 116 -For assigned seats, click the unassign button. The seat returns to the available pool and the used_seats counter decrements. An adds/removals event is logged with reason code GROUP_SEAT_REMOVED. 117 - 118 -== 4.3 Transferring a Seat == 119 - 120 -Enter a new OCID and click the transfer button. This atomically unassigns the old user and assigns the new one. Two adds/removals events are logged: GROUP_SEAT_TRANSFER (removal) and GROUP_SEAT_ASSIGNED (addition). 121 - 122 -== 4.4 Resizing == 123 - 124 -The license can be resized (total seats increased or decreased). The system will not allow reducing below the current used_seats count. New seats are pre-created as unassigned rows for managed-seat licenses. 125 - 126 -= 5. Bulk Individual Provisioning = 127 - 128 -For bulk individual licenses, use the bulk seat assignment endpoint to provision recipients in batch. Two input methods are supported: 129 - 130 -* CSV file upload — The CSV must have an “ocid” column header. Each row creates a subscription. 131 -* Comma-separated OCID list — Enter OCIDs directly in the input field. 132 - 133 -Each provisioned recipient is logged with reason code BULK_GROUP_NEW. 134 - 135 -= 6. Group Admins = 136 - 137 -Group admins are users authorized to manage seat assignments for a specific license. There are two roles: 138 - 139 -|**Role**|**Description** 140 -|**Owner**|Full management access. The purchaser is automatically added as owner. Cannot be removed from the admin panel. 141 -|**Manager**|Can assign, unassign, and transfer seats. Can be added or removed by other admins. 142 - 143 -Group admins are managed from the seat detail page under the “Group Admins” section. 144 - 145 -= 7. License Lifecycle = 146 - 147 -|**Status**|**Description** 148 -|**Active**|License is in effect. Seats can be assigned/unassigned. 149 -|**Expired**|License end_date has passed. A daily cron job (group_license_expiry.php) transitions active licenses to expired and unassigns all seats. 150 -|**Cancelled**|Manually cancelled by an admin. All active seats are unassigned. 151 -|**Suspended**|Temporarily suspended (e.g., for non-payment). Seats remain assigned but may not grant new access. 152 - 153 -Auto-renewal: If the auto_renew flag is enabled, the expiry cron job will attempt to renew the license via Stripe using the purchaser’s stored payment method. 154 - 155 -= 8. Reporting = 156 - 157 -Group license recipients have real subscriptions and appear in all standard fulfillment reports. The subscription_source field distinguishes group subscriptions from individual ones: 158 - 159 -* RPT-01 — Group recipients counted by classification. Optional source breakdown available. 160 -* RPT-09 — Group-specific reason codes appear in the adds/removals report. 161 -* RPT-19 — Group recipients with valid addresses appear in the mail file. 162 - 163 -= 9. Setup & Configuration = 164 - 165 -Navigate to Fulfillment › Setup › Group License Settings to configure: 166 - 167 -|**Setting**|**Default**|**Description** 168 -|**Enable group licenses**|Off|Master toggle for the group license feature 169 -|**Maximum seats per license**|1000|Upper limit on seats per license 170 -|**Default license duration (days)**|365|Default duration when end_date is not specified 171 - 172 -= 10. Permissions = 173 - 174 -Group license management requires the FULFILLMENT_GROUP_MANAGE permission module. Superadmin users automatically have access. 175 - 176 -FULFILLMENT_VIEW is sufficient for read-only access to the license list. Creating, cancelling, and managing seats requires FULFILLMENT_GROUP_MANAGE. 177 - 178 -Group admins (non-backend users) can manage seats for their own license without needing the FULFILLMENT_GROUP_MANAGE backend permission. This is controlled by the fulfillment_group_license_admin table. 179 - 180 -= 11. Subscriber Self-Service (Seat Manager Portal) = 181 - 182 -Group admins do not need access to the ONEcount admin panel to manage their organization’s seats. A dedicated subscriber-facing page lets them log in with their regular ONEcount credentials and manage seats directly. 183 - 184 -== 11.1 Accessing the Seat Manager == 185 - 186 -The seat manager portal is located at: 187 - 188 -//https:~/~/yoursite.onecount.net/onecount/flexreg/manage-seats.php?brand=YOURBRAND// 189 - 190 -Group admins can be directed to this URL via email, a link on your website, or from their subscriber profile page. They must be logged in with the same ONEcount account that was designated as a group admin (owner or manager role) for the license. 191 - 192 -== 11.2 My Group Licenses == 193 - 194 -After logging in, the group admin sees a list of all licenses they manage. Each license shows the organization name, license type, seat utilization, status, and date range. 195 - 196 -[[image:fulfillment-group-bulk-licenses_d2aa6c02ee324f44.png||height="366" width="586"]] 197 - 198 -//The subscriber-facing “My Group Licenses” view showing Skyward Aviation Academy with 4/10 seats used.// 199 - 200 -Click “Manage Seats” to open the seat assignment page for that license. 201 - 202 -== 11.3 Managing Seats == 203 - 204 -The seat detail page shows every seat in the license with its current assignment status and available actions: 205 - 206 -[[image:fulfillment-group-bulk-licenses_fe51b9919ebd7117.png||height="366" width="586"]] 207 - 208 -//Seat management for Skyward Aviation Academy — 4 assigned seats with Unassign/Transfer controls, 6 unassigned seats with Assign controls.// 209 - 210 -Available actions for group admins: 211 - 212 -|**Action**|**How**|**What Happens** 213 -|**Assign**|Enter the recipient’s OCID in an empty seat row and click Assign|A subscription is created for the recipient. The seat status changes to “Assigned.” 214 -|**Unassign**|Click Unassign on an occupied seat (confirmation required)|The seat returns to the available pool. The used-seats counter decrements. 215 -|**Transfer**|Enter a new OCID next to an occupied seat and click Transfer|The old assignee is removed and the new assignee gets the subscription in one step. 216 - 217 -== 11.4 What Group Admins Cannot Do == 218 - 219 -The subscriber self-service portal intentionally omits certain actions that are reserved for backend administrators: 220 - 221 -* Resize the license (change total seat count) 222 -* Cancel the license 223 -* Add or remove group admins 224 -* Change the license type, product, or dates 225 - 226 -These operations require the FULFILLMENT_GROUP_MANAGE backend permission and are performed from the admin panel’s Group Licenses page. 227 - 228 -== 11.5 Security == 229 - 230 -The seat manager uses the standard ONEcount subscriber authentication (cookie-based via ~_~_ocid). Authorization is checked on every request by verifying that the logged-in OCID appears in the fulfillment_group_license_admin table for the requested license. A subscriber who is not a designated group admin for a license cannot view or modify its seats.
- fulfillment-group-bulk-licenses_a6f51be53df57a8d.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.admin - Size
-
... ... @@ -1,1 +1,0 @@ 1 -86.7 KB - Content
- fulfillment-group-bulk-licenses_ba0c4d5b8a553f45.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.admin - Size
-
... ... @@ -1,1 +1,0 @@ 1 -104.8 KB - Content
- fulfillment-group-bulk-licenses_fe51b9919ebd7117.png
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.admin - Size
-
... ... @@ -1,1 +1,0 @@ 1 -66.3 KB - Content