2013-09-04 4 views
1

사용자가 장바구니에 항목을 추가하고 유효한 자격 증명을 사용하여 로그인 할 때 백엔드 플로우에 대해 더 자세히 알아야합니다. 게스트에 대해 생성 된 orderId가 등록 된 사용자의 ID로 마이그레이션됩니다. 누군가 어떻게 처리되는지 설명해 주시겠습니까? 명령과 DB 테이블의 세부 사항이 도움이 될 것입니다.IBM WCS에서 항목을 게스트로 장바구니에 추가 한 후 사용자가 로그인하면 어떻게됩니까? 이 시나리오에서 주문 ID는 어떻게 처리됩니까?

MigrateUserEntries 명령에 대해 읽었지만 올바른 것인지 확실하지 않습니다.

미리 감사드립니다.

답변

1

게스트 사용자가 로그인하면 카트가 등록 된 사용자 계정의 카트와 병합됩니다.

이것은 주문 및 주문 항목과 관련된 표에 영향을줍니다.

자세한 내용은 OrderCopy의 설명서를 참조하십시오.

0

첫째, WCS 상거래의 사용자 라이프 사이클에 대한 몇 가지 검토 : 1 사용자가 사용자 ID와 일반 사용자로 사이트를 방문 = -1002 2 사용자가 자신의 장바구니에 항목을 추가, WCS는 주문 ID를 생성하고 지정 새로운 사용자 ID가 생성되고 사용자가 "guest"로 호출 된 경우이 경우 (# 1과 # 2) userType = G 3- 사용자가 로그인 양식을 사용하여 로그인하면 기본적으로 Struts 구성의 LogonCmd에 연결됩니다. 해당 컨트롤러 명령을 디 컴파일하면 주소, 현재 주문, 관심 항목, 주문 항목, 주문 및 주문 템플릿 마이그레이션을 담당하는 MigrateUserEntriesCmd task 명령을 호출하는 것을 볼 수 있습니다. 사용 된 새 orderID는 Registered OrderId입니다.

RAD에 설치된 디 컴파일러를 사용하여 논리를 더 잘 이해하고 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

감사 아베드

0

을 로그인 페이지에서 사용자 고객 및 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> 

버튼 자바 스크립트 코드 클릭 수가

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

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(); 

내가 로그인

+0

요청/질문에 대한 이해를 돕기 위해 설명을 추가해주세요. –

1

후 항목을 병합이 도움말을 희망 URL을 형성하지만 여기에 트릭은 다음과 같습니다 -

public class MigrateUserEntriesCmdImpl 
extends TaskCommandImpl 
implements MigrateUserEntriesCmd 

이 작업 명령은 한 사용자가 소유 한 자원을 다른 사용자에게 마이그레이션하는 데 사용됩니다. 마이그레이션되는 필수 자원은 주소, 현재 주문, 관심 항목, 주문 항목, 주문 및 주문 템플리트입니다.

는 기본적으로이 명령은이 사용자의 쇼핑 카트를 병합하지 않습니다, 그러나에 의해 그렇게하도록 구성 할 수 있습니다

A) true로 명령 컨텍스트에 요청 속성에 mergeCart 플래그 설정 .

OR :

B) MemberSubSystem/MergeCartsAtAuthentication 설정은/true로 WC-server.xml에 사용 가능. 요청 속성의 mergeCart 플래그가 더 높은 우선 순위를 갖습니다.

전에 다음 세트를 수행해야이 작업 명령 실행 :

setOldUser() -> getOldUser()가

이 방법은 리소스있는 신규로 이전하기 이전 사용자가 검색을 사용자.

setNewUser() -> getNewUser()

이 방법은 이전 사용자로부터 마이그레이션 자원의 수신자 인 새 사용자를 검색합니다.

이러한 OldUser와 NewUser는 UserAccessBean에서 JSP를 검색 할 수 있습니다.

migrateOrderItem(OrderItemAccessBean abOrderItem, UserAccessBean abNewUser, CommandContext newUserCmdCtx) 

이 방법은 주문 항목을 새로운 사용자로 이전합니다.