В IBM WCS, что происходит, когда пользователь входит в систему после добавления товара в корзину в качестве гостя. Как обрабатывается orderId в этом сценарии?

Мне нужно больше знать о внутреннем потоке, когда пользователь добавляет товар в корзину в качестве гостя и входит в систему, используя свои действительные учетные данные. OrderId, созданный для гостя, переносится на идентификатор зарегистрированного пользователя. Может кто-нибудь объяснить, как это обрабатывается? Детали команд и таблиц БД будут полезны.

Я читал о команде MigrateUserEntries, но я не уверен, что это правильно.

Заранее спасибо.

4 ответа

Когда гостевой пользователь входит в систему, его корзина объединяется с корзиной зарегистрированной учетной записи пользователя.

Это влияет на таблицы, связанные с заказом и элементами заказа.

Вы можете посмотреть документацию OrderCopy для более подробной информации.

Но вот хитрость:

public class MigrateUserEntriesCmdImpl
extends TaskCommandImpl
implements MigrateUserEntriesCmd

Эта команда задачи используется для переноса ресурсов, принадлежащих одному пользователю, другому. Мигрируемые обязательные ресурсы - это адреса, текущие заказы, позиции интереса, позиции заказа, заказы и шаблоны заказов.

По умолчанию эта команда не объединяет корзину покупок для двух пользователей, но ее можно настроить следующим образом:

a) Установка флага mergeCart в свойстве запроса в контексте команды в значение true.

ИЛИ ЖЕ:

b) Установите для MemberSubSystem/MergeCartsAtAuthentication/enabled в wc-server.xml значение true. Флаг mergeCart в свойстве запроса будет иметь более высокий приоритет.

Перед выполнением этой команды задачи должны быть выполнены следующие наборы:

setOldUser () ->getOldUser()

Этот метод извлекает старого пользователя, чьи ресурсы должны быть перенесены на нового пользователя.

setNewUser () ->getNewUser()

Этот метод извлекает нового пользователя, который является получателем перенесенных ресурсов от старого пользователя.

Эти и OldUser, и NewUser смогут извлечь из UserAccessBean концерна JSP.

migrateOrderItem(OrderItemAccessBean abOrderItem, UserAccessBean abNewUser, CommandContext newUserCmdCtx)

Этот метод переносит позицию заказа новому пользователю.

На странице входа добавьте этот код, когда пользователь Guest и OrderItemMove используется из коробки.

<pre>
          <c:if test="${userType == 'G'}">
        <wcf:url var="orderMove" value="OrderItemMove" type="Ajax"> 
            <wcf:param name="toOrderId" value="."/>
            <wcf:param name="deleteIfEmpty" value="*"/>
            <wcf:param name="fromOrderId" value="*"/>
            <wcf:param name="continue" value="1"/>
            <wcf:param name="createIfEmpty" value="1"/>
            <wcf:param name="calculationUsageId" value="-1" />
            <wcf:param name="calculationUsageId" value="-2" />
            <wcf:param name="calculationUsageId" value="-7" />
            <wcf:param name="updatePrices" value="0"/>
        </wcf:url>  
    </c:if>
</pre>

Кнопка JavaScript код Пользователь нажимает на:

LogonSubmit(document.Logon,'<c:out value='${orderMove}'/>','<c:out value='${afterOrderCalculateURL}'/>');void(0);">

После проверки и формы URL

function LogonSubmit{
var completeOrderMoveURL = orderMoveURL;
completeOrderMoveURL = completeOrderMoveURL + "&URL=OrderCalculate?URL=" + afterOrderCalculateURL +"&calculationUsageId=-1&calculationUsageId=-2&calculationUsageId=-7";
document.getElementById('URL').value  = completeOrderMoveURL;
}
        //Then submit the form
        form.submit();

Я надеюсь, что эта справка для объединения элементов после входа в систему

Сначала рассмотрим жизненный цикл пользователя в торговле WCS: 1- пользователь посетил сайт как универсальный пользователь с идентификатором USER = -1002 2- когда пользователь добавляет какой-либо элемент в свою корзину, WCS создает OrderId и назначает его новому созданному идентификатору USER. и пользователь с именем "guest" в этом случае (и #1, и #2) имеет userType=G 3- когда пользователь входит в систему с помощью формы входа в систему, он по умолчанию подключается к LogonCmd в конфигурации Struts, и если вы декомпилируете эту команду контроллера, вы будете убедитесь, что он вызывает команду задачи MigrateUserEntriesCmd, которая отвечает за миграцию адресов, текущих заказов, процентных позиций, позиций заказов, заказов и шаблонов заказов. новый идентификатор заказа, который используется, является зарегистрированным идентификатором заказа.

Я предлагаю вам использовать декомпилятор, установленный на вашем RAD, чтобы вы могли декомпилировать классы IBM для лучшего понимания логики, а затем настроить свой код в соответствии с рекомендациями IBM (расширение команд и т. Д.). Я использую плагин JAD eclipse для декомпиляции.

Вы можете также прочитать (ссылки): http://pic.dhe.ibm.com/infocenter/wchelp/v7r0m0/index.jsp?topic=%2Fcom.ibm.commerce.admin.doc%2Fconcepts%2Fcmsmembers.htm&resultof%3D%2522%2555%2553%2545%2552%2553%2522%2520%2522%2575%2573%2565%2572%2522%2520

http://pic.dhe.ibm.com/infocenter/wchelp/v7r0m0/index.jsp?topic=%2Fcom.ibm.commerce.api.doc%2Fcom%2Fibm%2Fcommerce%2Fsecurity%2Fcommands%2FMigrateUserEntriesCmdImpl.html

Спасибо Абед

Другие вопросы по тегам