The purpose of this project is to build a web-based interface where customers can purchase and manage software licenses that are billed automatically via the Chargify API.
Customers will purchase their initial license via an order form on our sales website, which will create a customer account in our database and send their initial purchase details (and billing info, credit card, etc) to Chargify for payment processing. The customer will then have access to a private area of the website which will allow them to update their contact and billing information, view previous invoices (and pay for past-due invoices), view and modify their purchased license details, and submit support emails.
Billing will be handled entirely by the Chargify API; we will be storing a copy of credit card numbers that are submitted (in the event that there are issues with Chargify) but otherwise all payments and recurring billing should be processed via their API. Currently, Chargify does not have a mechanism to associate more than one subscription (or "product") to a customer, so as a workaround we will be creating one customer entry in Chargify per product; a single customer in our system with 4 license packs would appear as four customers in Chargify, and any updates to billing info submitted in our system would need to be applied to all 4 in Chargify. Chargify supplies a "call back URL" mechanism that your software will need to be able to handle -- for example, when a past due customer's account is automatically paid on a second billing attempt by Chargify, their system will post back to a URL in your software, which should be trapped and handled accordingly (updating the product details, etc).
License management will consist of the ability for customers to view their license details, cancel unwanted license bundles, and update a list of IP addresses that are licensed to use our software. Whenever an IP address is added, edited, or removed, a user-defined shell script that we provide should be called (we have scripts to manage creation and deletion of licensed IP's from our software).
New customer setups will be processed by a simple order form. Please supply a simple example order form -- we will reskin it and integrate it into our website once you are done. No styling is needed on the order form, just the basic fields with hooks to submit the customer into Chargify and create a new customer entry on our side.
Additionally, a simple administrative interface with a list of customers, the ability to remove a customer, and links to "auto log in" as the customer into their customer panel will be required.
We have already designed and built the user interface of the website in HTML, and will be able to provide all HTML files for the design as well as all images. No HTML, CSS, or images will be required. We simply require the backend PHP which will run the system. Additionally, we will provide a very detailed PDF explaining every required function and every action that can be taken in the system, which you will need to implement.
We are looking for programmers who can provide high quality, modular and reusable code for this project as we intend to eventually run multiple websites off of the same license management system. Please be sure that you are familiar with proper PHP coding standards, MVC frameworks, etc. We will require that this project is built using a popular framework -- either CakePHP, Symfony, CodeIgniter, or Yii Framework.
Attached to this project request is a PDF that contains screenshots of all of the HTML pages that we have designed as well as details about all proceses and pages. Once we select a winning bid we will provide test accounts, Subversion access, full HTML designs and images, and anything else that you need.
READ THE ATTACHMENT BEFORE BIDDING. DO NOT bid on this project if you are not familiar with PHP MVC frameworks,, and accessing remote API's via PHP.