Overview:

This document outlines the requirements for the creation, update, deletion, and management of services within Agency Handy. Superadmin, Admin, Client, and Project Manager (PM) users have varying levels of access and control over these services. This feature will allow agencies to manage their services effectively, including setting up subscription options, pricing, and visibility.

User Stories:

Service Creation:
As a Superadmin/Admin, I want to create services with detailed information including name, description, price, duration, and service type (one-time or subscription), so that I can offer customizable services to clients.
Service Visibility:
As a Superadmin/Admin, I want to publish or unpublish services so that I control which services are publicly available for purchase.
Service Purchase Flow:
As a client, I want to be able to view available services, make an order, and pay for them via the catalog page.

Functional Requirements:

Service Creation, Update, and Deletion:
Superadmin and Admin can create, update, or delete services using the following form fields:
Name:
Min length: 3 characters
Max length: 64 characters
Description:
No character limit
Price:
Min: 1 (currency defined in settings)
Image Upload:
Optional field
Duration:
Optional field for specifying service delivery time
Type of Service:
One-time payment or Subscription
For Subscription services, users can select recurrence options:
Weekly
Monthly
Daily
Yearly
Admin can set recurring pricing for subscription services.
Status:
IsPublish:
Published Services: Available for clients to purchase directly and also allow manual orders.
Unpublished Services: Only allow manual orders, not publicly visible.
Service Permissions:
Superadmin, Admin, PM can create, update, delete, and view services.
Client can view services.
Superadmin, Admin, PM can delete a service, with an option to delete related orders and quotations or to keep them while only removing the service.
Deletion Process:
When deleting a service, the user will be prompted with a checkbox:
Option 1: Delete the service and its related orders and quotations.
Option 2: Only delete the service from view but retain the related orders and quotations.
If a client is deleted, their related service data points will be greyed out, but information such as “created by” and “created date” will be removed.

Service Listing (Public):

Catalog Listing:
Published services are accessible via a public URL:
Catalog URL: /catalog
Individual service purchase URL: /service_name/checkout
Form on Catalog Page:
Fields:
First name (mandatory)
Last name (mandatory)
Email (mandatory)
Order details/brief (required)
Service Quantity:
User can select the quantity of the service.
The total price will be updated automatically based on the selected quantity.
Coupon Code:
A coupon code option will be available (to be added later).
Payment:
Users can pay directly through the catalog for the selected services.
If no payment method is set up by the agency, an error message will appear during the purchase process.
Client and Order Creation:
If the client’s email is not already registered:
A new client account will be created using the first name, last name, and email provided.
The order will be created once payment is successful, following the regular client onboarding process.
If the client’s email is already registered:
An order will be automatically created with the status “In Progress.”
Payment and Invoice Handling:
After payment is completed:
An invoice will be generated with the paid amount and the status “Paid.”
The user will be redirected to the service page with a notification (toaster) stating “Payment successful.”

Quotation and Order Options:

Each service will have the following options:
Order: Clients can place an order directly.
Send Quotation: Agencies can send a quotation for the service.

Acceptance Criteria:

Service Management:
Superadmin and Admin can successfully create, update, and delete services.
Unpublished services are not visible on the catalog page but can still have manual orders placed.
Service Deletion Prompt:
When deleting a service, the system displays a confirmation prompt with the option to delete or retain related orders and quotations.
Public Catalog:
Published services are accessible via the /catalog URL.
The form allows users to fill in details, select quantity, and proceed to payment.
Client Creation:
The system will create new clients based on email input, or automatically assign orders to existing clients if their email is already registered.
Payment Handling:
The system will generate invoices and mark them as “Paid” upon successful transactions.
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.