Журнал транзакций Toshiba SurePos ACE/4690: выяснение, к какому UPC относится купон

Во-первых, здесь, вероятно, меньше дюжины человек, которые могут ответить на этот вопрос, так что я извиняюсь перед вами, которые ломают голову, пытаясь понять, о чем я спрашиваю. Я задаю очень технический вопрос о системе Toshiba ACE/4690 POS (точке продажи).

TL; DR версия моего вопроса:

Я нашел едва задокументированную строку ввода данных предпочтительного клиента (0x11, идентификатор 0xbd) в журналах транзакций трех наших клиентов. Для строк купона 0x01, в которых установлен бит «Код товара, связанный с», кажется, что эта строка 0x11 предшествует ей и указывает, с каким товаром на самом деле связан купон. Я вижу в нем и номер товара, и номер купона UPC. Может ли кто-нибудь проверить, что это правда, а также предоставить конкретную информацию о каждом поле в строке?

Длинная версия моего вопроса:

Я анализирую журнал транзакций ACE/4690 (EAMTRAN*) и пытаюсь понять, как совместить использование купонов магазина с товаром, к которому они применялись. Например, допустим, я покупаю банку бобов по обычной цене 1,50 доллара. Я даю кассиру магазинный купон на 0,50 доллара, и вуаля, эта банка бобов стоит мне всего 1 доллар. В журнале транзакций будет строка 0x01 для банки бобов за 1,50 доллара США, а затем будет строка 0x01 для купона, указывающая сумму погашения в размере 0,50 доллара США. Я хотел бы иметь возможность рассчитать чистую цену продажи предмета, чтобы я мог сообщить, что банка бобов стоит всего 1 доллар. Для этого я должен убедиться, что товар был тем, к которому применялся купон. И нет, я не могу просто предположить, что если строки 0x01 для товара и купона расположены рядом, то купон применяется к этому конкретному товару. Покупатель вполне может предоставить купон магазина после того, как прозвонит весь билет.

В прошлом (90-е, 00-е) это казалось невозможным — по крайней мере, с теми клиентами, которые у нас были тогда. Казалось, что тогда в их журналах транзакций не было ничего, что технически могло бы это сделать. Конечно, строка купона 0x01 указывала бы, что это «Код товара, с которым он связан», но нигде не было данных, указывающих, с каким товаром он связан.

Однако вчера я просматривал журналы транзакций от трех наших клиентов (два ACE, один 4690) и заметил, что в большинстве случаев между продажей товара и погашением купона регистрируется специальная строка ввода данных предпочтительного клиента 0x11 с идентификатором 0xbd. (с установленным битом «Код товара связан с»). После обратного проектирования этой строки почти очевидно, что она обеспечивает связь, потому что я вижу и номер UPC товара, и номер UPC купона в BCD, а также то, что выглядит как обычная цена и отдел. Идентификатор строки 0x11 (2-е поле) — 0xbd.

В справочнике по программированию Toshiba (v7r4 — февраль 2013 г.) идентификатор 0xbd задокументирован как «Зарезервировано для использования NRSC»… и это все, что он говорит. На самом деле NRSC была компанией внутри компании (IBM), которая занималась заказным программированием для клиентов, что и делает большинство. Таким образом, похоже, что это некоторая общая логика, реализованная NRSC и включенная в стандартный продукт, поскольку я видел ее на трех разных сайтах клиентов.

Может ли кто-нибудь проверить, что строка 0x11 с идентификатором 0xbd используется для указания того, с каким товаром связан купон, а также конкретной информации о каждом поле в строке? Мне очень любопытно поле 3.

Вот что я получил после анализа сотен TLOG от разных клиентов:

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.

Любая помощь приветствуется.


person Code4aliving    schedule 21.08.2019    source источник


Ответы (1)


Ниже приведен макет строкового типа X11 из SA 4690, и все поля в нем определяются пользователем, поэтому он различается для каждого клиента в зависимости от его настройки. Возможно, вам придется получить документ строкового формата TLOG у поставщика услуг, чтобы узнать имена полей:

Имя поля Тип Длина Описание: - TYPE PD 1 Тип строки = X'11' для ввода данных
- DATA PD v10 Поле числовых данных, определяемое пользователем 1 - DATA PD v10 Поле числовых данных, определяемое пользователем 2 - DATA PD v10 Пользовательское числовое поле данных 3 - DATA PD v10 Пользовательское числовое поле данных 4 - DATA PD v10 Пользовательское числовое поле данных 5 - DATA PD v10 Пользовательское числовое поле данных 6

person Denesh Kumar    schedule 09.09.2019
comment
Спасибо, я уверен, что вы правы. С помощью обратного проектирования мы обнаружили, что использование этой настраиваемой строки клиента (с идентификатором 0xbd) почти идентично для трех разных розничных продавцов. Часть почти разочаровывает, так как мы не можем надежно использовать универсальное решение. - person Code4aliving; 09.09.2019