Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
This document will guide you through some basic member related tasks. If you're starting from scratch, these should go roughly in order.
Every transaction is associated with an account. Membership types let you group accounts for reporting purposes as well as confer different benefits to different accounts. Every customer must have an account although not necessarily a unique account. Often there's a single catch-all account used for all customers who are not members.
Member Types are edited by choosing Manage Member Types from the Membership menu (Site Map: Member Types). Each membership type is given a description for reporting purposes. The member column denotes whether the account type is actually a member. Non-member account types are an option to provide sales to the general public. Accounts may also be assigned a percentage discount or marked as store staff.
Set up as many types as you need. Stores that only sell to members will require at least one member type. Stores that sell to the general public will need at least one type marked member and one non-member type. You may define multiple member and/or non-member types if desired.
The Discount field sets a percent discount per transaction for members of the given type. Staff and SSI are used primarily for reporting purposes, although custom logic or discounts based on these statuses could be added. SSI traditionally stood for Supplementary Security Income but is now more commonly used to designate any low-income member who receives special discounts or benefits.
Office's configuration page (if you've been following this guide, probably http://localhost/fannie/install/) has a few membership options. Click the Members link at the top of the configuration page.
The first is Names per membership, near the top of the page. If more than one person's name can be associated with a membership, increase this option accordingly.
The next option is Equity Department(s), near the bottom of the page. If you want to track member equity via POS, you must define dedicated equity departments. At minimum there must be one, but you may define multiple equity department if needed (e.g., to track voting & non-voting shares separately). Separate multiple departments however you like - spaces, commas, whatever.
Store Charge Department(s) are used to provide limited credit accounts to members. WFC strongly advises against using this feature widely. The administrative overhead required for the small subset of customers that actually use it is nightmarish. As an accounts receivable system for businesses, it's an OK solution.
The last option is Enabled Modules. Membership can mean slightly (or very) different things to different people, so the idea here is to manage member information in small, independent pieces to maximize flexibility. For example, a store might use the default modules for member contact information and member type management, but use a customized module for equity. Or a store might disable irrelevant modules all together.
Enabling & disabling modules primarily impacts what the member view/edit interface looks like. The Adjust Module Display Order link gives a little additional control of that interface layout. Disabling a module also doesn't remove any existing information or disable all related options. For instance, you could choose not to display equity information on the member editing interface but equity reports would still work.
- AR is for store charge accounts (heed warning above!). It displays current balance and the account's limit. The transfer/convert links are for fixing cashier mistakes related to A/R.
- ContactInfo stores primary member name, mailing address, email address, and two phone numbers. The Gets Mail checkbox is currently used to avoid sending newsletters, coupons, and other optional stuff to members who don't want it while keeping their info in the system for mandatory stuff like patronage rebates.
- Equity lists current balance with a links to the member's equity history, a tool for transfering equity from one member to another, and a tool for converting equity from one form to another (only applicable if there are multiple equity departments).
- Household Members manages additional names associated with the membership.
- MemDates provides start date and end date fields for the membership.
- MemType adjusts membership type. It also displays the percentage discount associated with that type.
- Notes is a generic comment box for any miscellaneous information. Older comments are kept for reference via the History link.
- Suspension is for removing member benefits from an account, either temporarily or permanently. The process automatically saves & restores a couple settings besides membership type to streamline the process and reduce mistakes. See Inactive Members for details.
Minimally, most stores will need ContactInfo or something replacing it to get member names into the system as well as MemType if there is more than one type of account.
Importing Existing Memberships
Many stores already have members and re-entering them all by hand is less than ideal. If you can export your data into some form of spreadsheet and save it as a CSV, mass importing is a quicker option. Select Import Data from the Admin menu (Site Map: Data Import Tools).
First, bring in Names & Numbers. Your spreadsheet should contain columns for member number, first name, and last name. If you've defined membership types, you may also include a type column as well. It doesn't matter what order the columns are in or if there are extra columns; you can specify where the relevant data is during the import. If Office can't upload data sheets, there will be a giant warning telling you which directory needs write permissions.
Next, bring in Contact Information. Your spreadsheet must have a column for member number, and may include any combination of the following: street address, second line of street address, city, state, zip code, phone number, alternate phone number, and email address. Same flexibility applies with regard to column order and extra columns.
Brief Detour: Equity Tracking
If you plan to track equity through POS, there's an implementation detail to be aware of. Equity is stored as a list of equity-related transactions. At any given time, a member's equity balance is the sum of all their equity purchases. Storing equity this way provides a history that can be verified against transaction logs in the event of a dispute as well as greater flexibility in coping with varying equity requirements.
If you're opening a new store, you can just define a equity department (or more than one) and be done. If you already have members though, you need to bring their existing equity balances in as a starting point for POS.
Back to Importing Data
The last import option is Existing Equity. At minimum, your spreadsheet should provide a member number and an equity amount. Optionally, you can include a transaction identifier referencing your previous system, a IS4C department number to distinguish a specific type of equity, or a date (YYYY-MM-DD) of purchase. You don't have to bring in existing balances as a lump sum; if it's useful for reporting purposes or enforcing member-equity requirements, you can specify multiple rows per member (collectively these should add up to the current balance).