Information Systems:Electronic Ordering
Background
Electronic ordering is colloquially known as POS ordering. POS systems will be used to refer to software at the store that is used to submit electronic orders to uniPHARM. There are two primary ways of ordering from uniPHARM: Web Orders, and electronic ordering. This section discusses the latter. POS systems are proprietary software (with complementing hardware, in some cases) that communicate with uniPHARM to place orders and, in some cases, retrieve invoices. Most POS systems communicate via FTP, while some send orders via email. For the store, a POS system is a way to do inventory management, as quantities can be managed for each product and thus automated ordering can be set up based on levels of stock. While Web Orders allows for convenient on-demand ordering, POS systems are becoming more and more popular for stores that want better control, automated ordering, and insight into their inventory.
Setup for email-based order systems
As of 2018, uniPHARM is trying to discourage email ordering. POS systems that send orders via email are still supported, but new setups are almost always FTP-based. WinRx is the exception. As of the fall of 2020 and spring of 2021 WinRx has an FTP option, however they are slow to roll it out to stores as "not all the stores can handle the change"- ARI.
Email ordering is straightforward and is usually carried out by the software provider.
Setup for FTP-based order systems
Upon acquiring a POS/PMS system, either the POS vendor (most cases) or the store will request for credentials to be able to connect their software to our system. Most of the configuration is related to FTP connectivity, as email connectivity (where applicable) is pre-configured.
Create folders on the Mail server
Using remote desktop or Windows Explorer, navigate to the C:\FTPOrders folder on Mail. Create a folder for the store using their account number as the folder name. If one already exists, this indicates that this is the store's 2nd POS system. Append a suffix to the folder. This folder will be the user's home directory.
Within this folder, create invoices, orders and orders\z-archive i.e.:
- C:\FTPOrders\12345\invoices
- C:\FTPOrders\12345\orders
- C:\FTPOrders\12345\orders\z-archive
Important: The folder name "z-archive" is because the RPG program that reads the folder reads everything alphabetically. Since an "archive" folder comes alphabetically before the filenames of the order files e.g. "order-102323.pos", the program skips this folder without error.
Generate Serv-U account
Make an FTP account for the store in Serv-U, matching the username with the home directory (folder) you created in the previous step i.e. '12345K' for C:\FTPOrders\12345K. It is important that the username matches the foldername, as the directory permissions and virtual paths that will be pre-configured are based on this. Generate this password. Specify these additional settings:
- Home directory should be set to the folder that contains the invoices and orders subfolders i.e. C:\FTPOrders\12345\ranger
- Ensure Lock home user in directory is checked.
Finally, under the Groups tab, add the user to either the POS-Shareholders or POS-Customers groups. This step is very important, as directory permissions and virtual paths are specified accordingly.
Note: The process of adding POS FTP users has been simplified through the use of the New User template and groups. For details on these pre-configured settings, check out this page.
Create AIP records
FTP configuration on the i involves two files - one to retrieve order files from our FTP server (mail), and one to write invoices to the same server. A record will need to be added to both files for each store setup:
- In Extensions, use menu option 22 - Work with UWD IT Tools and 30 - FTP connections
- Add the records below by using menu options 4 and 5. F10 within DFU adds a new record
4-Order FTP Configuration
Name: Cust12345 Description: Northview Pharmacy FTP Server: ftp.unipharm.com FTP User ID: ftporders <-- The i uses the same account for all stores to access their folders on the FTP server FTP Password: visionit525 FTP Directory: 12345/ranger/orders <-- Double-check this folder to make sure it's the same as the one you created on the FTP server FTP Archive Directory: z-archive M=Move D=Delete N=None: M <-- Use D to just delete files instead of archiving if M doesn't work. Transmission Source: FTP Customer # Type: UWD Ext 1: X12 <-- Use KRO for Kroll, DAT for AssystPOS/AssystRx, X12 for DCS/Ranger , ARI/applied robotics Ext 2: Ext 3:
5-Invoice FTP Configuration
Partner: 12345 Order Source: <-- Leave blank to set as the catch-all i.e. all other invoices sent to this POS Description: Northview Pharmacy - Default FTP Server: ftp.unipharm.com FTP User ID: ftporders FTP Password: visionit525 FTP Directory: 12345/ranger/invoices <-- Double-check this folder to make sure it is the same as the one you created on the FTP server.
Creating a second account for a second POS system (if necessary)
Should a store request setup for a second POS/PMS system, follow the steps above with these additional changes:
- Make their second Serv-U account unique by appending a letter to the end of their username e.g. 12345K, for a Kroll installation.
- Append the same letter when creating new records in the Order ,however create the same customer number . FTP configuration on the i e.g. 12345K and Cust12345K
- Create the necessary folders, see instructions in section Create folders on the Mail server
POS Systems used by uniPHARM customers
This section details previous experiences and general notes about the various POS and PMS systems that interact with uniPHARM. With the exception of WinRx, on-site I.T. staff have no access to the software, so the following information is the result of over-the-phone troubleshooting experience and dealing with the technical support departments of these companies.
Telus AssystRx/AssystPOS
Also known as Assyst Rx-A
Contact information
- Company name: Telus Health
- Phone: 1-888-561-6555
Notes/Issues
- There are stretches of time where some stores place orders that never reach our system. They may or may not get an order confirmation (most of the time they do not), but there is also no seeming error on their end, leading to the frustrating experience of not receiving an expected delivery the next day. To date, the exact cause of this is unknown, but it is suspected that the Pharmanet connection is the culprit. See Pharmanet for explanation
- The following an email from Don Yakubowski at Telus Assyst Health that sheds some light on how the mailer works in AssystPOS/AssystRx for sending orders to uniPHARM.
Ok a few things to clarify here.. * The Assyst app relies on the routing as defined on their Unix server..site does not run Assyst Rx-A or POS on a Windows server. Yes..they have windows wkstns, and they are using some Windows based mail application to receive their email replies..the confirmation emails...but the orders outbound to Unipharm originate from the Unix server. * The routing the email order will take follows whatever is defined on Unix server and in this case, since the Pharmanet path is the server's Default gateway with no other Static routing defined....ALL traffic from the Unix server is presently going out the Pnet path. This is NOT something defined within the Assyst application per se...but is at the Unix level. * To alter the path when a customer is using both Assyst RX-A and POS...and therefore needs to send claims to Pnet from the same Unix server, it is common to leave the Pnet path as The default, and if other destinations should have or must have a non-Pnet path such as their alternative HS router, then we would ADD static routes to the Unix server redirecting that traffic Via the alternate gateway. IN this example, if we wish to keep the Unix server sending Pnet /RX related traffic out Pnet path, and only intervene to have Unipharm destined order emails Go out thru hsrouter, we would add a route on Unix server like: /etc/route add mail.unipharm.com 192.168.0.2 ( where 0.1 is the def GW Pnet path, and 0.2 is the hsrouter path ). * This routing is not application or protocol specific...it would send anything destined to mail.unipharm.com out this hsrouter path after such a setting got applied. This would also remain in place thru any Unix server reboot as it gets added into server startup scripts that execute every time server is rebooted. * As Norwin pointed out, such routing decisions could not be applied by the Dlink 1024 switch as it is not a Layer 3 ( routing capable ) switch, so the only places to Apply and control routing here are directly on the Unix server itself, or depending on what the actual "router" units are that are installed in this network, on the routers themselves. Some routers can support having "static"routes added into them, others can not. -Don
RangerPOS
Contact info
- Company name: DCS Tech
CashRx
- Company name: CashRx
- Website: http://www.cashrx.ca/
KrollRx
- Company name: Kroll Systems
ARI WinRx
Contact info
Company name: Applied Robotics Inc.
--norwinu (talk) 10:17, 13 July 2015 (PDT) To my limited understanding, a PMS has the functionality of a POS, in that it is able to place orders from uniPHARM, but it also manages the dispensing and inventory of pharmaceuticals.
Troubleshooting
IOP reporting duplicate POs
If IOP reports duplicate POs, delete the files manually on the FTP server. They will likely still be sitting there. Then, set the Orders configuration file to D for delete, or, if it's M, make sure the files are being moved to the archive folder (which might mean renaming the folder).
The AIP programs (RPG) responsible for fetching the order files from ServU via FTP do not read the directory listings elegantly. For example, if there is a folder called archive, and the order files are of the Telus Assyst format e.g. order-1023.pos, then AIP will pick up and process the order, but fail to move the file into the archive folder (for reasons unknown, because the program silently fails). If the folder is re-named z-archive, the M works, but then AIP will log errors every 3 minutes because it's not hardcoded to recognize "z-archive" (although this is an acceptable outcome).