POS Implementation
Have you noticed that the checkout experience at Your Food Co-op is not quite 21st century? Are you thinking "price tags are SO last millenium?" Fair enough, but ...
Are you geek enough to explore strange new open-source Point-of-Sale software? To seek out better relationship management? To boldly go where our purchasing and inventory management has never gone before?
Then we need you to join our POS implementation team!
Denise, Sven, and Tom have been investigating IS4C/Fannie (Integrated System for Co-ops and its backend), open-source POS software. Initially developed at the Wedge Co-op in Minneapolis, it's now used at several co-ops through the US, and we think it's the tool for us. Not least because it's economical :-) Though stable, it's still under development, and a bit rough around the edges, so implementing it here will still be a challenge--especially to do it by 1 Jan 08, our target date.
We Want Your Help with any or all of the following:
- install and tuning of Ubuntu, MySQL, Apache and mod_php
- network and security configuration
- PHP customizations
- MySQL administration
- data entry or migration, e.g. setting up price tables
- improving the IS4C/Fannie install/build process
- debugging Centronics and serial interfaces (old-school--RS-232, not USB)
Interested in helping out? Contact Denise at injira@yahoo.com and thanks!
| Attachment | Size |
|---|---|
| PrehWinProgrammerV2.2Manual.pdf | 66.74 KB |
| PrehWinProgrammerV2.2README.TXT | 68.11 KB |
| MagellanSLProgrammingGuideRS232.pdf | 379.13 KB |
| MagellanSLUsersGuide.pdf | 2.13 MB |
| MagellanSLProgrammingGuideCompleteManual.pdf | 98.76 KB |
| postPOSnetworkDiagram-200712271322.png | 109.91 KB |
Comments
status/todos 14 Dec 07
We've made real progress this week! Let's keep it up!
+ Thanks to James Watts and the dearly-departed Norm Davis, I solved the weighing problem. Scale now reads in IS4C.
+ I found a brute-force way to put items into the DB: suboptimal but allows items not already in the shipped products table to scan.
+ Denise got keys for the cash drawer locally.
TODO (items labeled primarily for identification, but will probably be done in this order):
0 I'll print caps for the POS keyboard and use that for further testing.
1 Hookup all peripherals to lane/dfc3, successfully run the first test transaction through drawer kick.
2 Setup networking so as to run private IP plus ssh, and allow development group to ssh in as needed. (This may/not be feasible with the existing office WRT54Gv5.) This will make lotsa things easier, like doing ...
3 Database work:
* membership table(s) -> MySQL, copy for testing, then move. We can continue to access/report data from Access if we provide IP access to the backend/dfc2: see todo2.
* put into products table all items that we sell that aren't already in there (i.e. that the Wedge doesn't sell).
* QuickBooks integration. Need minimally to have equivalent of the EOD Z-tapes we're currently running.
4 Security work: let's start lining up a consultant now, to be available before we deploy.
status/todos 7 Dec 07
Apologies for the delay, but it took longer to get a scanner/scale than I anticipated, and I ran into a few other problems, plus I've been doing the grad-school search/testing/application thing. The good news is
+ Weaver Street Market lent us one of their spare Magellan SL384 scanner/scales for testing (more below). Thanks, James Watts!
+ The Wedge shipped us a cash drawer, receipt printer, and programmable keyboard. Thanks, Tak Tang!
+ We've got them hooked up in the Kiwi Kerker. Thanks, Denise and Sven!
+ (As previously mentioned) We have a box setup as a lane controller, which can run the first test.
+ We can test-print from the lane to the receipt printer.
+ We can raw-read barcode scans from the SL384 to the lane.
The bad news is
- We can't raw-read weights from the SL384 to the lane, i.e. we're not weighing. I'm not sure whassup, am investigating.
- We can't "ring" the items I've scanned into IS4C, probably because I haven't entered them into the DB (will do).
But hey! we're making progress, and now that I've taken the GRE and gotten my first 2 applications in, I'll have more time to work on this.
TODO (items labeled primarily for identification, but will probably be done in this order):
0 Achieve raw-read of weights from the SL384 to the lane, i.e. after placing an item of known weight on the scale
$ tail /pos/is4c/rs232/scale
should give the prefix 'S144' followed by the weight
1 Get cashdrawer keys: bug POSMicro again.
2 Successfully run the first test transaction.
3 Setup networking so as to run private IP plus ssh, and allow development group to ssh in as needed. (May require a router.)
cash drawer keys
got four copies for $15 from Don Hill Locksmith - they are awesome! so #1 is done
status/todos 14 Oct 07
todos from W 26 Sep 07
> * put static IP#s on lane and server. This is required for the update
> to work, and will also ease working with each remotely (can ssh in).
> Sven is working on this.
Sven to report on this.
> * get real POS peripherals! and start on
> http://www.wedge.coop/is4c/installation/installation6.html . I'll
> ping the FC again.
FC approved $500, and Wedge approved giving us the printer, cash
drawer, and keyboard (thanks!), but nothing in hand yet :-(
> * get POS data (e.g. UPCs, items, prices): Denise is getting from Deep
> Roots, will need massaged.
Denise got data, I got schema from DR and am getting more info about
IS4C/Fannie schema (which we already have) from Tak et al.
In other news:
* Sven got a buncha big drives from Siena Tech.
* I have been spending a lotta time on eBay (with vendors) and with
Datalogic (formerly PSC) toward purchasing a scanner-scale (for ease
of integration with IS4C/Fannie)
So ISTM our todos now are (in no order, numbers purely for
identification)
0 put static IP#s on lane and server PCs.
1 put drives in lane and server PCs as RAID1. See Joel's howto @
http://www.wedge.coop/is4c/bb/viewtopic.php?p=123#123
2 receive Wedge peripherals
3 buy scanner-scale
4 migrate product seed data from Deep Roots TDF to IS4C/Fannie tables
5 migrate membership data from our Access table to IS4C/Fannie table
6 test peripherals beginning with
http://www.wedge.coop/is4c/installation/installation6.html
7 start doing test transactions to ensure
* our IS4C/Fannie tables contain complete/correct data for DFC use
* we have all needed code in PHP session=store for DFC use
DRM item map
Did this as a comment since I dunno how to attach a non-image :-(
> File Layout for the Item File created on Tue Oct 02, 2007 at 7:55 AM
> This file, ITEMS.TXT is an ASCII Flat File whose fields are deleniated Character
> by the
> Piece Data Represented
> 1) Item Code
> 2) Item Description
> 3) Retail Units
> 4) Department
> 5) User Defined Item Category
> 6) Food Flag (Y/N)
> 7) Bulk Flag (Y/N)
> 8) Shelf Price (SRP)
> 9) Case Price
> 10) #Items/Case
> 11) Discountable Flag (Y/N)
> 12) Special Discount
> 13) Pack Size
> 14) Eligible for Shelf Labels (Y/N)
> 15) Taxable (Y/N)
> 16) Bulk Units
> 17) Sale Price (ALL)
> 18) Use Sale Price WITH Member Discounts (Y/N)
> 19) Start Date of Sale (MM/DD/YYYY)
> 20) End Date of Sale (MM/DD/YYYY)
> 21) Sale Price (Member ONLY)
> 22) Use Sale Price WITH Member Discounts (Y/N)
> 23) Start Date of Member ONLY Sale (MM/DD/YYYY)
> 24) End Date of Member ONLY Sale (MM/DD/YYYY)
> 25) Purchase (Wholesale) Price
> 26) Margin If Different from Department
> 27) Item Location (In Store)
> 28) Item Manufacturer (Brand Name)
> 29) Supplier (Vendor)
> 30) Supplier's Item Code
> 31) Inactivated Item (Y/N)
> 32) Food Stamp Eligibility (Y/N)
> 33) Item for Sale/Use by Members Only (Y/N)
> 34) Lending Library Item (Y/N)
> 35) Item Packing $Increment (Bulk Items)
> 36) Global Discount (Y/N)
> 37) Inventory QOH
> 38) Inventory QOH (In Front)
> 39) Inventory QOH (In Back)
> 40) Inventory Qty On Order
> 41) Re-order Level
> 42) Re-order Quantity
> 43) Request to Print Shelf Tag (Shelf Tag Queue Status)
> 44) Receipt Description
5:30pm W 26 Sep 07 @ Kiwi Castle
We setup 2 new boxes provided by Brett Walters:
On both (after more twiddling of the whitebox NIC) we
apt-get update
apt-get upgrade
sudo passwd root # set root pw
su # install only tested as root, vars must be in its space
TO_INSTALL="server" # or lane
INSTALL_ROOT="/pos" # is this still needed with new script?
INSTALL_SCRIPT="${INSTALL_ROOT}/installation/ubuntu/install_${TO_INSTALL}"
URI="http://www.wedge.coop/is4c/download/pos.tar.gz"
mkdir -p ${INSTALL_ROOT}
FN="$(basename ${URI})"
FP="/${FN}"
wget -O ${FP} ${URI}
cd / # there's probably a better way to do this
tar xfz ${FP} # so that it unpacks to /pos
chmod a+x ${INSTALL_SCRIPT}
ls -l ${INSTALL_SCRIPT}
# must have Ubuntu install CD in drive before running script
${INSTALL_SCRIPT}
with the new tarball. Note gating var $TO_INSTALL.
select * from opdata.employees;
to see the records for the two cashiers (Kate Kipling, John Norton) set up on the system.
select * from is4c_op.employees;
to see the same records.
http://www.wedge.coop/is4c/installation/installation5.html
> A First Test
on the lane.
use translog;
select * from dtransactions;
showed the test transactions.
use is4c_log;
select * from dtransactions;
returned the empty set.
Talked with Tak: our next tasks are
More Hardware
Our webmaster has donated two more computers, and we'll do another installfest soon. We now have four older computers with four monitors in Kiwi Castle's basement! I still have to get the SCSI drives...
In my opinion we should set up the testbed with the cheap option, test and develop, and further down the road we can invest in newer hardware. We'll need some backup hardware anyway, for which we can use the HRC development peripherals.
acquiring POS peripherals
summary
I present some cost and vendor scenarios for acquisition of POS peripherals, with bottom-end cost estimates ranging from $341 to $2300.
details
As mentioned at the board meeting yesterday (U 16 Sep 07), the POSers (Denise, Sven, and I) believe we have a firm foundation for proceeding with a DFC implementation of the open-source POS IS4C/Fannie currently being developed by several other co-ops (notably The Wedge in Minneapolis). A POS consists of a group of peripherals (notably a receipt printer and cash drawer) driven by one or more computers and saving results to one or more computers. We have computers suitable for testing, and we believe we can acquire ones suitable for installation.
So now what we need to do is acquire POS peripherals for testing, presumably for reuse in service. For more details regarding the choices made below, see the "pricing peripherals for ground-up IS4C/Fannie install" thread on the IS4C/Fannie forum. I'll present two main recommendations-- easier/safer/expensive and harder/riskier/cheaper--with some ideas about feasible-looking variations. However the hardware list itself won't vary much: I'm going with stuff recommended by current users, who moreover have much experience with POS in general (since all started with commercial POS before turning to IS4C/Fannie for ease and flexibility of development).
Before making purchases, I would personally suggest getting our selections reviewed by Tak Tang (IS4C lead developer, has been very available) and Joel Brock (Fannie lead developer, less available than Tak).
easier/safer/expensive (ESE)
The ESE way to go is to buy
since it's
The vendor I'd choose is POSGuys, since they seem to have pretty low prices for new (that being said, I haven't made an exhaustive search) and folks on the various lists and forums recommend them (and also POSMicro).
The scanner/scale I recommend is one of the Magellan 8*00 series with serial interface. These are industry-standard and are known to work OOTB with IS4C/Fannie. Prices when I last checked (3 Sep) were
Epson TM-H6000II receipt printer with parallel interface and PS $623-643 for standard models (no MICR or check printing)
APG 100 cash drawer with Epson interface and PS $155.50
Preh programmable keyboard with PS/2 interface $179-246
Magellan 8500 scanner-scale with serial interface and PS $1299
Estimated ESE total cost, averaging ranges above, minus labor, taxes, and shipping (if any): $2300
harder/riskier/cheaper (HRC)
The HRC alternative is to buy
HRC pricing will obviously change frequently, so the following is just a snapshot, and is probably not the absolute cheapest (e.g. I go for new and in-warranty when possible):
Epson TM-H6000II receipt printer with parallel interface and PS
http://search.ebay.com/EPSON-thermal
$60 (based on Joel's estimate). Note also POSMicro open-box $413.
APG 100 cash drawer with Epson interface and PS
http://search.ebay.com/APG-cash-drawer
$101
Preh programmable keyboard with PS/2 interface
http://search.ebay.com/Preh-keyboard
$45
POS-X Xi3000 handheld scanner
http://search.ebay.com/POSX-scanner (currently shows only wireless)
http://www.posmicro.com/Scanners/POS-X/pos-x_xi3000.htm
http://www.posguys.com/pos-x-point-of-sale+70/POS-X-Xi3000+716/
$135
Estimated total cost, minus labor, taxes, and shipping (if any): $341
variations
Between these two ranges one can vary quite a bit, e.g.
6:30pm W 12 Sep 07 @ Kiwi Castle
First we ate, then we setup hardware in the basement (running network from 2 floors up :-), so we didn't start on software until ~9pm. The Pavilion already had Ubuntu 6.06.1 courtesy of Sven, so he put it on the Presario. We noted a minor problem on both boxes: we could `sudo` with the password set during the Ubuntu install, but not `su`, so we did
sudo passwd root
after which we could `su`. (This turned out to be necessary later on: Tak had only run his installer as root.) We then brought the network up with
sudo ifconfig eth0
We put the latest tarball on each box and installed it (with the previously-used install CD in each box--that's required by the apt-get's) with
su # Tak said he had only tested install as root
# due to hardcoding in is4c-ubuntu-install
INSTALLROOT=/pos
mkdir -p $INSTALLROOT
URI=http://www.wedge.coop/is4c/download/pos.tar.gz
FN=$(basename $URI)
FP="/$FN"
wget -O $FP $URI
cd /
tar xfz $FP
$INSTALLROOT/installation/is4c-ubuntu-install
The script was non-interactive until
/pos/installation/lane_db-install
This we were able to run without error only by taking the defaults:
With those, final comment was just
Done
so our next steps are
2pm F 7 Sep 07 @ Kiwi Castle
I picked up the Pavilion et al that was sitting under the office steps and brought it, my Gateway, and my flatscreen to Denise and Sven's. Sven wants to setup the testbed in their basement: it's musty, but it does have one grounded outlet, and wireless reaches down there. Sven to clean out.
Installed Ubuntu 6.06.1 on Pavilion. Sven's memory won't fit in Gateway. Sven has SCSI PCI card and cable. Replied to Ron Joffe about getting one of his drives. Sven also has an old Dell. Wanna test the Gateway's HD in that or the Pavilion: but I forgot to bring tools, and Sven has none, so I can't get out the damn Phillips-heads holding the drive in.
Hardware inventory:
Done ~4pm. Next session: 5pm W 12 Sep @ Castle before webspace session w Brett. Todo's for next session (numbers are for ID only):
expertise needed
This is a voyage of discovery for us. I have some linux chops, and Sven has more. I have lots software development experience, Denise and Sven have some. The IS4C/Fannie dev leads have lots POS experience, but they are offsite (not even in the same timezone :-) So we'd appreciate donations of labor and expertise, e.g.
hardware wanted
For ease of setup/debugging, not to mention reliability of operation, we'd like our POS setup to resemble others already in production, e.g. Alberta Co-op's setup, except that ours will be a subset (e.g. we have 1 lane now, not 3). So I'd appreciate donations of any of the following, or similar (corners may be cut, especially for the testbed), to limit what we hafta buy:
lane PC: approximately 1 GHz processor, 128 MB RAM, 40 GB HD, gigabit ethernet. Must have old-style serial and parallel ports due to limitations of current code.
lane video: 2 flatscreen monitors (1 customer, 1 cashier), VGA Y-cable, VESA pole mounts
Epson TM-H6000ii receipt printer with parallel interface and power supply
Preh programmable matrix-style keyboard
APG Series 100 cash drawer with cable for Epson TM series
PSC Magellan 8104 scanner/scale with serial cable and pole display. Failing that we'll try to use our current scale with a separate scanner, e.g. the POS-X Xi3000.
backend PC(s): preferably 2 PCs running master/slave, but one will do for testbed, each approximately 1 GHz processor, 128 MB RAM, 80 GB HD, gigabit ethernet. If 2 PCs, master has RAID5, slave has RAID1, but "both running MySQL master/master ... for improved server availability as well as data protection."
POS development coolth
Just thought I'd add some more reasons to be juiced about IS4C/Fannie development, courtesy of the folks at the Wedge (the dev leads) and excerpted from
http://www.wedge.coop/is4c/bb/viewtopic.php?t=11
JoeH Thu Sep 06, 2007 1:23 pm
> The Wedge now has an online store at
> http://www.wedgeworldwide.coop (based off of an open
> source shopping cart named OSCommerce, then heavily
> modified). After a member makes a purchase, that
> data is brought over to the Wedge and joined with
> IS4C member purchases data. Then when people lookup
> member purchases through IS4C they see their total,
> including any purchases made online.
atfrase Wed Sep 05, 2007 9:03 pm
> track[ing] 'local' products, in order to encourage
> customers to support local economies and contribute
> to reducing shipping costs.
> The first step was to put special signs next to
> local items to identify them on the shelves, which
> any store could do. But with control over our POS
> system, we were able to go a step further and put it
> on our receipts.
> First, we had to add a field to our Products table
> so the POS knew which products were, in fact, local.
> Then we had to add code to the POS itself to compute
> the "local percentage" of a transaction
> (local-dollars over total-dollars).
> It's a fun way to let customers see the breakdown of
> where their groceries came from, and we could never
> have done it with a proprietary, closed-source POS.
> Even if the vendor were cooperative and willing to
> add random features like this, it would have taken
> them much longer to get around to it; we did it in a
> few days. The vast, vast majority of the time and
> effort for that project was in our buyers giving us
> data on what products were local; the changes to the
> POS were easy and quick.
johnpurdy Wed Sep 05, 2007 7:18 pm
> With the recent flooding in the upper midwest, we've
> had several farms lose a large percentage of their
> crops for the season.
...
> Anyways, at a manager meeting one morning a bunch of
> ideas where thrown out about ways we could help out
> at the store and quite a few involved modifying
> IS4C.
> Within a day we implemented the following things:
> * A round-up feature. This feature will create a
> donation to our farmer's relief fund for a small
> amount that will round-up that total of the
> transaction to the nearest dollar.
> * We changed the locked screen image to an image of
> a flooded farm, with a donation message.
> * We added a line to the receipt informing customers
> about our farm relief fund
> * We added a line to the receipt thanking the
> customer if they had made a donation in the
> transaction, and included the necessary tax
> retention message for the donation.
> * We changed the 'farewell' message to encourage
> people to donate to the farmer's relief fund
> With all of these changes made to IS4C -- including
> a custom PLU for the relief fund, we were able to
> track our member's, non-member's, and employee's
> donations to the relief fund.
> As it stands now, we've collected over $8,000 in the
> last two weeks.
blogging the POS development/implementation here
More detail later, I promise :-) but for now:
We have for some time wanted to adopt a point-of-sale (POS) system, not least to eliminate the time we spend manually transferring data from our cash register to our accounting system, QuickBooks. Unfortunately we can't afford the commercial system that Stuart Bagwell identified. Instead, as Denise recently announced, we have decided to take the plunge with IS4C/Fannie. This will involve some development effort on our part, and I have also agreed to try to document our implementation.
Presuming that I can learn to love Drupal :-) or can't think of anything better, I'll start blogging the impl/dev effort as comments to this URL. For now I'll just say that I've been pricing required peripherals and am setting up an old PC for the backend (i.e. to run Fannie). IIUC Sven is trying to get a better PC, which we'll setup for the lane (i.e. to run IS4C).