Receipt Printing
On this pagePhysical Printing Not Happening
Solving Receipt Output isn't as expected
List of Formats wrong
Physical Printing Not Happening
If the issue is "my printer isn't printing", then first you need to isolate if Fieldpine did not queue the print job, or if it was dropped after being handed over to Windows to print. Go into the windows print queue and "pause" the print queue. This will stop output from going to the printer. Then go into the POS and "do whatever" to generate the printing that isn't happening. If you see the print job appear in the print queue, then Fieldpine has likely queued it and the problem lies more Windows side. Keep an eye on "size" of the print job too - very small sizes may indicate bad output is being generated.
If you see job names such as "direct output" typically with small sizes, these are usually commands to cut receipt paper or open cash drawers and can be ignored.
List of Formats wrong
When using template based receipts there is not real limit to the number of various receipt formats that can be used. Each format is defined with values such as name,purpose and URL.
The list of formats is taken from:
- All loaded settings that match the pattern "Receipt.XXX.Template" which defines the URL. If this setting exists, then
the setting "Receipt.XXX.TemplateName" can optionally provide the user friendly name.
For exampleforce:Receipt.MyQuoteJun22.Template=https://example.com/receiptformats/MyQuoteJun22.htm force:Receipt.MyQuoteJun22.TemplateName=!!! Quote !!!
Settings can be loaded from any valid settings source, such as fpos.ctl fpos_all.ctl, settings table, settingdist table.From within PosGreen, the simplest way to see all settings is to use the debug/settings page
- If the retailer belongs to retail memberships, these can also provide print templates. These are found in the
settingsmembership table (SQL. Keyname='PrintFormat', Layer=51, ControlKey=string).
When a membership format is shown to the user it has the format "name from membership", such as "Invoice from Toyota"
Solving Receipt Output isn't as expected
Receipts using template (an HTML file defining the receipt contents) use symbols to insert sale specific information when the receipt is generated. If the output generated is not what you expect then there are some debug options in PosGreen to assist (from P2351)
The PosCommand
sale(debug(printfilename=mytest))will cause the internal generators to use "mytest" as the base file name. This helps isolate and save the specific temporary files. Any temporary file generated will also not be deleted automatically. Mytest can be any valid filename. The generator engine will add extensions it requires, which are typically ".htm" and ".pdf"
The PosCommand
sale(debug(print=symbols))instructs the symbol translator to write every source line before parsing into the output file. This creates receipts that cannot be used for customer purposes, but does show every symbol and the resulting value
The output of symbols includes lines with "## VERB [SRC] = [RSLT] ##" in the output.
Examples
Tax Invoice | Straight text copied to output |
Invoice No: ## Symbol [%SALEID%] = [16958557] ## | The symbol %SALEID% was translated and resulted in 16958557 being output |
Order No: ## Symbol [%data.activesale.orderno%] = [] | The symbol %data.activesale.orderno% was translated, but had no value |
## If TEST[%data.activesale.store.city%]=TRUE [OVERALL=TRUE] ## ## Symbol [%data.activesale.store.city%] = [Seatoun City] ## |
The symbol %data.activesale.store.city% was tested and TRUE, so the symbol was then translated and displayed. If the result had been FALSE, the skipped commands are not included in the output. There can be multiple tests and conditions evaluated and the [OVERALL=?] returns the final status |
The Quickcode
debug receipt symbolswill set various debug options. You may use this quickcode when dealing with a remote site where having them enter a quickcode is easier than PosCommands. Specifically this does the following
- Sets sale(debug(printfilename=DebugPrint))
- Sets sale(debug(print=symbols))