Wednesday, April 29, 2015

Cron Job Manager in BlueBox

BlueBox now includes a Cron Job Manager which is a central resource for managing any scripts you want to automate in your BlueBox System.


The idea behind this tool is to provide a single point at which all regulary scripts are created and their activities and outputs are logged.

It can be found under Integration > Cron

In order to activate this module you will need to add the suggested line to the server's Cron File which will then trigger this engine, for example:

1 * * * * /usr/bin/wget -q -O /dev/null "http://www.sullycard.com/?class=bb_cron&method=run_cron&global[automate]=1"

This will run on the first minute of every hour, so your 'minute' settings (if used) will need to be 1 in order to trigger

Alternatively, use */5 * * * * to run it every 5 minutes, and your 'minute' settings can then be 0 or 5 or 10 or 15 etc

Or */15 * * * * to run it every 15 minutes etc.

It is suggested that the cron be left to run at the first minute past every hour (ie 1 * * * *) which will result in 24 ocurrences in a day.

Each time it runs it checks the list of entries in this new module and sees if it is appropriate to run each entry. Entries can be set to run on certain days of the month, days of the week, hours in the day and minutes in the hour. (Note that if you do set the value for 'minute' then your Cron File will need to be running at that minute in order for the script to trigger - so it is recommended to leave 'minute' blank and use the Cron File setting to run only on the first minute of every hour.)

Adding a Cron Job:


When adding an entry you will give it a name, and then select the class and function to run within the BlueBox System. You can also set various $global and $conf variables which will be passed to the system when it runs the function.

To restrict when your script runs you enter a combination of 
  • Day of Month (1 to 31) - if set it will only run on this day each month
  • Day of Week (Mon or Tue or Mon,Thu) - if set it will only run on these days each week
  • Hour (1-23) - if set it will only run at this hour each day
  • Minute (1-59) - if set it will only run at this minute each hour
So, to set a script to run daily at 1 minute past 3am:


And to set a script to run on Thursday and Saturday afternoons at 5 past 4pm:


You can enter email recipients to get a notification each time the script is run:


Lastly, you can pause a script which will stop it running while the pause is in place.




Friday, April 24, 2015

Mandrill Settings Manager In BlueBox

In BlueBox we now have a Mandrill Settings Manager which makes entering the settings required to switch to using Mandrill.com for outgoing email much easier:


Mandrill is a transactional email engine (one-to-one emails) and is the send-engine of MailChimp.com. One things that Mandrill provides is the ability to control the 'from address' validity, which you do by editing the domain settings with your domain registrar and setting up the DKIM & SPF Settings which tells the recipient mailbox that Mandrill is allowed to deliver emails 'from that address'.

Friday, March 27, 2015

BlueBox ePOS Integration with PaymentExpress PDQ/Chip-n-pin

BlueBox ePOS integrates with 3rd party PDQ/Chip-n-pin card payment solutions on a customer-requirement basis. However, we have standard plugins developed for Verifone and PaymentExpress. In this article we will run through installation and management of the PaymentExpress solution:

To enable taking card payments with PaymentExpress your till/s must have the setting for 'ccard merchantid' and 'ccard terminalid' set to 'paymentexpress'. Remember that this setting is cached when you load up BlueBox ePOS, so if you change it you will need to re-load the till-data in your current open session to get the setting loaded on the till.

You will also need to have the PaymentExpress terminal plugged in via USB into your till PC, and the PaymentExpress PC-client software installed and running as a service/tray application on the till PC.

Finally, you will need the BlueBox Websocket application installed on the till PC. This provides a vital bridge between the browser (BlueBox ePOS) and the PaymentExpress PC-client software and PDQ terminal. This can be donwloaded here and needs to be extracted into the folder c://bluebox_websocket_server (important). Once extracted into this folder follow the readme.txt file instructions to install it as a service on the till PC.

Once the above items are in place you will be ready to test out your integration with the PaymentExpress terminal.

To see whether BlueBox ePOS has detected the PaymentExpress setting as 'enabled' you can go to 'extra' > 'system' and, if enabled, a green 'Card Terminal' button will be displayed as follows:


To test the WebSocket connection click on 'Card Terminal' and you will see the card-payment interface/widget:


If the widget is gray/disabled as shown above, click on the 'Connect' button to send an 'open' message to the PaymentExpress client sofware.




If you don't get a response (spinner just spins) then your BlueBox Websocket is probably not running or has stopped. To check this you can view the Services listing on your PC to see if it is listed as 'BlueBox_Websocket_Server' - if you don't see it there then you'll need to go through the troubleshooting steps in the readme.txt file found in the folder for the websocket. If you do see it, and you still cannot connect to the PaymentExpress client software, you may need to restart/remove and re-install it.

Once you get a 'connected' message from your widget you will know that the connection is made and the two systems are talking to eachother.


Card payments and refunds are handled once you have an active sale loaded. You can capture a card payment by simply clicking on the 'Card' button while a sale is loaded, or by clicking on the Payment button and entering an amount to pay by card.

Similarly, with refunds, you simply load a 'refund sale' into the till and then click on 'Card' or 'Payment' (as described above) to make the refund onto the card.



Tuesday, March 24, 2015

Offline Data Management in BlueBox ePOS

BlueBox ePOS stores data offline to speed up sale processing and allow operating in non-connected times of the day.

Here is an overview of the process:
  • BlueBox ePOS is a web-page which uses Javascript and an offline flat-file database to process sales without interacting with the server.
  • When the ePOS page is loaded by FireFox, it checks for an offline flat-file database and if not found, tries to create a blank database.
  • It then connects with the server (through a series of page refreshes) and establishes which till it is representing and which till-session it is currently running.
  • If it does not find an open session it will challenge the user for an opening float and open up a new session by redirecting back to the server.
  • Once a session is found and a blank offline database is created it will then start downloading the category and product info from the server and storing this offline. This is done in the background in 'pages' of 500 products and can be seen in the bottom right hand corner of the screen. (An optional optimisation setting restricts the number of products downloaded to only include the commonly sold items).
  • If, while the product catalogue is downloading, a product is scanned or requested which has not yet been downloaded, the system will fall-back to searching the server for the sku_code. This also happens during the day if a sku_code is requested which cannot be found offline, perhaps because it did not qualify as a commonly sold item etc.
  • As sales are made they are stored offline first, and then immeditely added to the sync-to-server queue. The queue is 'pushed' after each sale and will attempt to send the oldest transactions first. A number indicating the number of un-synced transactions is displayed just above the num/key-pad on the screen.
  • If an error occurs while syncing the queue a small red counter will display just above the num/key-pad on the screen. The queue should automatically keep itself syncronised, but if for some reason ( ie data corruption of a sale etc) it gets blocked then there is a manual 'force sync' setting in the 'Sales History' section of the menu.

Tuesday, March 17, 2015

New Bluebox Tag 'item_data'

BlueBox ERP has a new tag for template development:

<!--:item_data:lookup_table|field_to_show:-->

for example

<!--:item_data:bb_inventory_stock_minimum_levels|minimum_levelNUM:-->

It can be used to call any lookup table where the key identifier fields are:

itemISbb_item_dataID
option1ISbb_item_data_options1ID
option2ISbb_item_data_options2ID
option3ISbb_item_data_options3ID

... so any table which stores item_data related information.

Monday, March 16, 2015

Generating Barcodes in BlueBox (Barcode Tag Generator)

BlueBox ERP uses various libraries to generate barcodes. We have now added a useful barcode 'tag generator' into the system to assist in choosing the optimal settings for a specific barcode application.

To find the tag generator simply surf to /?bb_barcode in your BlueBox System:


Replenishment Automation in BlueBox

BlueBox ERP has had a Replenishment Module for many years, which effectively acts as a MRP tool with min/max levels and purchase order generation.

We have now added an automation function to this module which can be set to automatically order the required items from a specific supplier on a daily/weekly/monthly basis.

This new feature effectively runs the Replenishment Report and automatically orders any items which are deemed to be required at that time. It generates a Purchase Order and this can be set to be emailed to the supplier in PDF format and also with an attached CSV output file of the items required in an importable format for the supplier.

Linking Items to the Supplier:

This function relies on the items in the system being attached directly to the supplier, either via the 'default supplier' field in the Item Data entry, or via the 'Associated Item Category' in the Supplier User File.


Setting Up Automation Entries:

Automation entries are added by running the filter for a 'Linked Supplier' in the Replenishment Report and switching 'Automate PO for this Supplier' on.

You have some options at this stage:
  • If you 'name' the automation it means that you can 'edit' it by simply using the same name in future and over-riding the saved automation with the same name. If you leave the name option blank the Automations is named as per the Supplier Name - so any future 'blank named' automations for this supplier will over-ride this one.
  • Automations will run whenever loaded, but only once per day, and optionally only on specific days of the week (ie Mon,Wed,Fri) by entering these into the specified field.
  • You can choose to have an email sent to the Supplier by selecting 'send PDF' or 'send CSV', if neither of these is selected no email will be sent when the PO is created.
  • The email that is generated will use the 'company procurement' details in the Supplier User File by default (ie email and name) and if these are not entered for the specific Ssupplier then the user-email and first/last names are used. This can be optionally over-ridden by entering an email and/or BCC email (comma sep. for more than one) in the fields provided.
  • Note: the CSV that is produced embed the Supplier code for client company. This code is stored in the 'Cgic' field of the Supplier User Data.
Viewing Automation Entries:

Once you have added an Automation Entry you can view it by clicking on 'Automation' in the top-menu of the Replenishment Report.


Entries are listed showing their last run-time:


You can run entries manually by clicking on the button provided or add the script to your server's cronjob queue as specified.

If you click on an Automation Script to view it you will be able to see the history of logged run-scripts that have been stored against it: