Difference between revisions of "Freeside:1.9:Documentation:Developer"
(→New customer page) |
(→New customer page) |
||
(One intermediate revision by the same user not shown) | |||
Line 17: | Line 17: | ||
== New customer page == | == New customer page == | ||
− | You can link to the new customer page (<code><nowiki>https://billing.example.com/freeside/edit/cust_main.cgi</nowiki></code>) with parameters set to lock or pre-select the agent and/or first package. ''Note: version 1.9.5+ or 2.2.2+)'' | + | You can link to the new customer page (<code><nowiki>https://billing.example.com/freeside/edit/cust_main.cgi</nowiki></code>) with parameters set to lock or pre-select the agent and/or first package. ''(Note: version 1.9.5+ or 2.2.2+)'' |
− | * lock_agentnum: Locks the agent selection to this agent, even if the current user would otherwise be able to select other agents. For example | + | * lock_agentnum: Locks the agent selection to this agent, even if the current user would otherwise be able to select other agents. For example: |
<nowiki>https://billing.example.com/freeside/edit/cust_main.cgi?lock_agentnum=2</nowiki> | <nowiki>https://billing.example.com/freeside/edit/cust_main.cgi?lock_agentnum=2</nowiki> | ||
− | * lock_pkgpart: Locks the package select to this pkgpart. | + | * lock_pkgpart: Locks the package select to this pkgpart. Can be set to a single pkgpart or a comma-separated list of pkgparts. For example: |
− | <nowiki>https://billing.example.com/freeside/edit/cust_main.cgi?lock_pkgpart=6</nowiki> | + | <nowiki>https://billing.example.com/freeside/edit/cust_main.cgi?lock_pkgpart=6 |
+ | https://billing.example.com/freeside/edit/cust_main.cgi?lock_pkgpart=6,2</nowiki> | ||
An example with both lock_agentnum and lock_pkgpart: | An example with both lock_agentnum and lock_pkgpart: |
Latest revision as of 16:34, 9 October 2010
Contents
Introduction
Please consider sharing your modifications with the community and helping integrate them into the standard code!
Subscribe to the freeside-devel mailing list. Send your changes as unified diffs (diff -u). If possible, send changes against current CVS HEAD and also any branch they should be applied to (i.e. FREESIDE_1_9_BRANCH, FREESIDE_1_7_BRANCH). However, if all you have is diffs against a release, well, probably best to send what you have rather than waiting.
Also note that the license requires that you provide source code if you provide hosted access to a modified Freeside instance.
Signup and self-service
You can of course customize the signup and self-service templates as well as plug into the self-service API from Perl, PHP or any other language via XML-RPC. See the SelfService API.
There are notes for the existing signup.cgi, signup.html or success.html as well.
Backoffice
New customer page
You can link to the new customer page (https://billing.example.com/freeside/edit/cust_main.cgi
) with parameters set to lock or pre-select the agent and/or first package. (Note: version 1.9.5+ or 2.2.2+)
- lock_agentnum: Locks the agent selection to this agent, even if the current user would otherwise be able to select other agents. For example:
https://billing.example.com/freeside/edit/cust_main.cgi?lock_agentnum=2
- lock_pkgpart: Locks the package select to this pkgpart. Can be set to a single pkgpart or a comma-separated list of pkgparts. For example:
https://billing.example.com/freeside/edit/cust_main.cgi?lock_pkgpart=6 https://billing.example.com/freeside/edit/cust_main.cgi?lock_pkgpart=6,2
An example with both lock_agentnum and lock_pkgpart:
https://billing.example.com/freeside/edit/cust_main.cgi?lock_agentnum=2;lock_pkgpart=6,2
Backend plugins
The backend code is structured to make it easy to add "plugins" of various types. You can easily add new price plans, new exports, event plugins (conditions and actions) and new kinds of service tables.
Price plans
Exports
(Invoice) Events
Invoice events have been refactored in 1.9.x and are now just events. The new events have "Condition" and "Action" plugins.
Services
Service tables are fully "plug-in" able - just create the table (see "Schema changes" below) and define the %info hash.
Additional developer information
Schema changes
Schema changes - Quick documentation on how to make schema changes
Agent virtualization
Agent-virtualized config - Quick notes on how to agent-virtualize new parts of the configuration tables
Tax data vendor support
Tax data vendor support - Notes on how to support a new vendor of tax data