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

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

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

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


person sreejith    schedule 04.09.2013    source источник


Ответы (4)


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

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

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

person Steve McDuff    schedule 04.09.2013

Но трюк здесь: -

public class MigrateUserEntriesCmdImpl
extends TaskCommandImpl
implements MigrateUserEntriesCmd

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

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

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

OR:

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

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

setOldUser() -->getOldUser()

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

setNewUser() -->getNewUser()

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

И OldUser, и NewUser смогут получить из UserAccessBean интересующий JSP.

migrateOrderItem(OrderItemAccessBean abOrderItem, UserAccessBean abNewUser, CommandContext newUserCmdCtx)

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

person user3686158    schedule 29.05.2014

Во-первых, некоторый обзор жизненного цикла пользователя в коммерции WCS: 1- пользователь посетил сайт как обычный пользователь с USER ID = -1002 2- когда пользователь добавляет какой-либо товар в свою корзину, WCS создает OrderId и назначает его новому созданному USER ID. и пользователь с именем «гость» в этом случае (как № 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

Спасибо, Эбед.

person Abed Yaseen    schedule 07.09.2013

На странице входа добавьте этот код, когда пользователь 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();

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

person arunlepuru    schedule 24.01.2014
comment
запрос/вопрос должен был помочь ему понять, пожалуйста, добавьте некоторые пояснения - person Olimpiu POP; 24.01.2014