Search code examples
point-of-salepos

Toshiba SurePos ACE/4690 transaction log: figuring out what UPC a coupon applied to


First of all, there are probably less than a dozen people on here that may be able to answer this, so I apologize to you that are scratching your heads trying to figure out what I'm asking. I'm asking a highly technical question about the Toshiba ACE/4690 POS (point of sale) system.

TL;DR version of my question:

I found a barely documented preferred customer data entry string (0x11, identifier 0xbd) in the transaction logs of three of our customers. For coupon 0x01 strings whose bit "Item code linked to" is set, it appears that this 0x11 string precedes it, and indicates what item the coupon actually linked to. I see both the item and coupon UPC numbers in it. Can anyone please verify that this is true, and also provide specific information about each field in the string?

Long version of my question:

I'm parsing an ACE/4690 transaction log (EAMTRAN*), and trying to figure out how to marry up store coupon usage with the item they applied to. For example, let's say I buy a can of beans, regular price of $1.50. I give the cashier a $0.50 store coupon, and voila, that can of beans only costs me $1.00. The transaction log will have an 0x01 string for the can of beans for $1.50, then following that there'll be an 0x01 string for the coupon indicating a redemption amount of $0.50. I'd like to be able to calculate the net price for the item sale so that I could report that the can of beans only cost $1.00. To do this, I have to verify that the item was the one to which the coupon applied to. And no, I can't just assume that if the 0x01 strings for the item and coupon are adjacent that the coupon applied against that particular item. The customer could very well could provide the store coupon after ringing up the entire ticket.

In the past (90's, 00's), this was seemingly impossible - at least with the customers we had back then. There seemed to be nothing in their transaction logs way back then to be able to technically do this. Sure, the coupon 0x01 string would indicate that it was "Item code linked to" -- but there was no data anywhere that would indicate what item it linked to.

However, I was perusing transaction logs from three of our customers yesterday (two ACE, one 4690), and noticed that in most cases, a special 0x11 preferred customer data entry string with identifier 0xbd is being logged between the item sale and the coupon redemption (with the "Item code linked to" bit set). After reverse engineering that string, it is almost obvious that it is providing the linkage, because I see both the item's UPC number and the coupon's UPC number in BCD, along with what looks like the regular price and department. The identifier of the 0x11 string (the 2nd field) is 0xbd.

In the Toshiba programming reference (v7r4 - Feb 2013), identifier 0xbd is documented as "Reserved for NRSC use"...and that's all it says. The NRSC was really a company within a company (IBM) that did custom programming for customers - which most do. So it looks like this is some common logic that NRSC did that was rolled into the standard product, since I've seen it at three different customer sites.

Can anyone verify that string 0x11, identifier 0xbd is used to indicate what item a coupon linked to, and also specific information about each field in the string? I'm super-curious about field 3.

Here's what I've got so far after analyzing hundreds of TLOGs from various customers:

Field 1: the string type (0x11).
Field 2: the identifer (0xbd), documented as "Reserved for NRSC".
Field 3: always seems to be 0x41 ('A') or 0x56 ('V').  When it is 0x56, it is always involved in an item sale cancel.
Field 4: The item's UPC number in BCD.
Field 5: The item's regular selling price.
Field 6: The item's department.
Field 7: The coupon's UPC number in BCD.
Field 8: The coupon's value.
Field 9: The coupon's department.
Field 10: This field exists for only one of our customers, and is a mysterious value.

Any help is appreciated.


Solution

  • Below is the string type X11 layout from SA 4690 and all the fields in it are user defined, hence it varies for each client based on their customization. You may have to get the TLOG string format document from your service provider to know the field names:

    Field Name Type Length Description: - TYPE PD 1 String type = X'11' for a data entry
    - DATA PD v10 User defined numeric data field 1 - DATA PD v10 User defined numeric data field 2 - DATA PD v10 User defined numeric data field 3 - DATA PD v10 User defined numeric data field 4 - DATA PD v10 User defined numeric data field 5 - DATA PD v10 User defined numeric data field 6