Во-первых, здесь, вероятно, меньше дюжины человек, которые могут ответить на этот вопрос, так что я извиняюсь перед вами, которые ломают голову, пытаясь понять, о чем я спрашиваю. Я задаю очень технический вопрос о системе 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.
Любая помощь приветствуется.