Оглавление
Ручное начисление с помощью веб-сервисов
Примечание | ||
---|---|---|
| ||
Функционал начисления реализован в версии сервера 10.2.5.0 |
Для выполнения данной работы можно использовать программу SOAP UI и инструкцию по работе с ней
1. Скачайте актуальную версию SOAP UI.
2. Устанавливаем программу и запускаем
3. В главном окне создаем новый проект File - New soapUI Project и заполняем адрес WSDL http://{host}:8090/SET-Cards/SET/Cards/ExternalSystemCardsProcessing?wsdl
4. Для начисления используем WS метод chargeOnBonusAccount
5. Открываем запрос Request и заполняем данные для начисления:
Блок кода | ||
---|---|---|
| ||
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:proc="http://processing.cards.crystals.ru/">
<soapenv:Header/>
<soapenv:Body>
<proc:chargeOnBonusAccount>
<!--Optional:-->
<cardNumber>780014086178</cardNumber> --номер карты
<!--Optional:-->
<bonusAccountType>1203</bonusAccountType> --id бонусного счета (см.в базе SET.cards_bonusaccountstype.bonusaccounttypecode)
<!--Optional:-->
<shopNum>99</shopNum> --номер магазина
<!--Optional:-->
<cashNum>99</cashNum> --номер кассы
<!--Optional:-->
<shiftNum>1</shiftNum>--номер смены
<!--Optional:-->
<checkNum>2</checkNum>--номер чека
<!--Optional:-->
<chargeSum>10000</chargeSum>--сумма к начислению в копейках
<!--Optional:-->
<activatingDate>2015-03-26</activatingDate>--дата активации бонусов
<!--Optional:-->
<expirationDate>2055-03-02</expirationDate>--дата сгорания бонусов
</proc:chargeOnBonusAccount>
</soapenv:Body>
</soapenv:Envelope> |
6. Выполняем запрос
7. Проверяем,что бонусы успешно зачислены
Ручное начисление с помощью SQL-скриптов
Примечание | ||
---|---|---|
| ||
Скрипты предназначены для версии сервера 10.0.1.52_4 |
Выполнять на базе set_loyal сервера Retail (независимо от топологии)
1. Создаем фиктивную транзакцию
Блок кода | ||
---|---|---|
| ||
INSERT INTO loy_transaction(
id,
purchase_number,
cash_number,
sent_to_server_status,
shift_number,
shop_number,
sale_time,
transaction_time,
operation_type,
status,
discountvalue)
VALUES (
CASE WHEN (SELECT min(id) FROM loy_transaction) IS NULL THEN 0 ELSE (SELECT min(id) FROM
loy_transaction) -1 END, -- id
CASE WHEN (SELECT min(purchase_number) FROM loy_transaction) IS NULL THEN 0 ELSE (SELECT
min(purchase_number) FROM loy_transaction) -1 END, -- номер чека - лучше явно левый
0, -- номер кассы - всегда 0
null, --всегда NULL
0, -- номер смены - всегда 0
0, -- номер магазина - всегда 0
(SELECT now()-cast('1 hours' as interval)), -- дата продажи не важно
(SELECT now()-cast('1 hours' as interval)), -- время создания транзакции не важно
true, -- операция: продажа
0, -- Статус транзакции. 0 – Подтверждена, 2 – Отменена
0 -- Общая сумма скидки по чеку - неважно
); |
2. В этой фиктивной транзакции начисляются бонусы:
Блок кода | ||
---|---|---|
| ||
INSERT INTO loy_bonus_transactions(
id,
bonus_account_type,
bonus_amount,
bonus_period_finish,
bonus_period_start,
discount_card,
advert_act_guid,
transaction_id,
sum_amount)
VALUES (
CASE WHEN (SELECT min(id) FROM loy_bonus_transactions) IS NULL THEN 0 ELSE (SELECT min(id) FROM
loy_bonus_transactions) - 1 END, -- id,
1366, -- ВАЖНО! код типа бонусного счета, на который начислить баллы. -см.,базе центрума SET.cards_bonusaccountstype.bonusaccounttypecode
5000000, -- Сумма начисленных баллов(умноженная на 100)
'2015-07-17', -- окончание действия бонусов с этого счета; null - нельзя!
'2014-06-11', -- начало действия бонусов с этого счета; null - нельзя!
'180000', -- ВАЖНО! номер карты, на которую начисляем бонусы
(SELECT min(guid) FROM loy_adv_action_in_purchase),-- GUID сработавшей РА
(SELECT min(id) FROM loy_transaction), -- ссылка на TX лояльности, что создали в п.1
0); |
3. Добавление ссылки на карту
Блок кода | ||
---|---|---|
| ||
INSERT INTO loy_discount_cards(
id,
card_number,
card_type,
transaction_id,
advert_act_guid)
VALUES (
CASE WHEN (SELECT min(id) FROM loy_transaction) IS NULL THEN 0 ELSE (SELECT min(id) FROM
loy_transaction) -1 END, -- id
'180000', -- ВАЖНО! номер карты, на которую начисляем бонусы
'InternalCard', --тип карты,всегда так
(SELECT min(id) FROM loy_transaction),
(SELECT min(guid) FROM loy_adv_action_in_purchase)
); |
4. Отправляем эту TX лояльности с начислением бонусов в обработку:
...
language | sql |
---|
...
Смотрите в разделе интеграционной документации Управление бонсными баллами на примере SOAP UI.