<%@LANGUAGE="VBScript" CODEPAGE=932%> <% Option Explicit %> ショッピングカート
<% writeHeader() %>

ショッピングカート

<% Dim selectArray() '選択商品セーブ Dim editArray() '数量変更商品処理に使用 Dim saveCateSuryo1,saveCateSuryo2 Dim proID,proName,countStr,choiceStr,priceStr,iStr,amountStr,choiceStr1,delStr,numStr,cateStr Dim i,suryo,shokei,n,m,k,sesArraySize,nokori,x,y,z,suryoGokei,pricceGokei,j,t,cateSuryo1,cateSuryo2,kazu,total Dim sameFlg cateSuryo1 = 0 cateSuryo2 = 0 saveCateSuryo1 = Session("cateSuryo1") saveCateSuryo2 = Session("cateSuryo2") Session("saveArray") = Session("sesSelectProduct") '変更前のデータをセーブ '商品一覧からの遷移の場合 If Request.QueryString("from") = "list" Then Redim selectArray(Session("howManyRecs"),5) '配列のサイズを決めるため k=0 For n=1 to Session("howManyRecs") choiceStr1 = "choice" & CStr(n) If Request.Form(choiceStr1) = "on" Then k=k+1 End If Next If k>0 Then '選択データがあるときのみ 'ページの表示行数分配列作成 'ローカル配列に保存 Redim selectArray(k,7) k=0 For i=1 to Session("howManyRecs") iStr = CStr(i) proID = "productID" & iStr proName = "productName" & iStr countStr = "count" & iStr choiceStr = "choice" & iStr priceStr = "price" & iStr amountStr = "amount" & iStr numStr = "num" & iStr cateStr = "cate" & iStr 'その商品のカテゴリID If Request.Form(countStr)="" Then suryo=0 shokei=0 Else suryo = CInt(Request.Form(countStr)) shokei= CInt(Request.Form(priceStr))*suryo kazu = CInt(Request.Form(numStr)) 'セット物の数 End If If Request.Form(choiceStr) = "on" Then selectArray(k,0) = Request.Form(proID) '商品ID selectArray(k,1) = CStr(Request.Form(proName)) '商品名 selectArray(k,2) = Request.Form(priceStr) '単価 selectArray(k,3) = suryo '数量 selectArray(k,4) = shokei '小計 selectArray(k,5) = Request.Form(numStr) '個数単位 selectArray(k,6) = Request.Form(cateStr) 'カテゴリID k=k+1 End If Next If IsEmpty(Session("sesSelectProduct")) Then '最初の一回 Session("sesSelectProduct") = selectArray Else sesArraySize = UBound(Session("sesSelectProduct")) 'ローカル配列に保存後、数量の変更を調べる '配列のサイズを決めるため j=0 For x=0 to sesArraySize-1 For y=0 to UBound(selectArray)-1 If Session("sesSelectProduct")(x,0)=selectArray(y,0) Then j=j+1 Exit For End If Next Next Redim editArray(sesArraySize+k-j,7) sameFlg = False For x=0 to sesArraySize-1 For y=0 to UBound(selectArray)-1 If Session("sesSelectProduct")(x,0) = selectArray(y,0) Then sameFlg = True'重複フラグをセット Exit For End If Next If sameFlg Then suryoGokei = Session("sesSelectProduct")(x,3) + selectArray(y,3) pricceGokei = suryoGokei * Session("sesSelectProduct")(x,2) editArray(x,0)=Session("sesSelectProduct")(x,0) editArray(x,1)=Session("sesSelectProduct")(x,1) editArray(x,2)=Session("sesSelectProduct")(x,2) editArray(x,3)=suryoGokei editArray(x,4)=pricceGokei editArray(x,5) = Session("sesSelectProduct")(x,5) editArray(x,6) = Session("sesSelectProduct")(x,6) Else'そのままセット editArray(x,0) = Session("sesSelectProduct")(x,0) editArray(x,1) = Session("sesSelectProduct")(x,1) editArray(x,2) = Session("sesSelectProduct")(x,2) editArray(x,3) = Session("sesSelectProduct")(x,3) editArray(x,4) = Session("sesSelectProduct")(x,4) editArray(x,5) = Session("sesSelectProduct")(x,5) editArray(x,6) = Session("sesSelectProduct")(x,6) End If sameFlg = False Next sameFlg = False For t=0 to UBound(selectArray)-1 For y=0 to sesArraySize-1 If Session("sesSelectProduct")(y,0)=selectArray(t,0) Then sameFlg = True'重複フラグをセット Exit For End If Next If sameFlg Then Else'そのままセット editArray(x,0) = selectArray(t,0) editArray(x,1) = selectArray(t,1) editArray(x,2) = selectArray(t,2) editArray(x,3) = selectArray(t,3) editArray(x,4) = selectArray(t,4) editArray(x,5) = selectArray(t,5) editArray(x,6) = selectArray(t,6) x=x+1 End If sameFlg = False Next Session("sesSelectProduct") = editArray End If For m=0 to UBound(Session("sesSelectProduct"))-1 suryo = CInt(Session("sesSelectProduct")(m,3)) kazu = CInt(Session("sesSelectProduct")(m,5)) 'セット物の数 If Session("sesSelectProduct")(m,6) = "1" Then cateSuryo1 = suryo * kazu + cateSuryo1 'ビデオ累積数量 Else If Session("sesSelectProduct")(m,6) = "2" Then cateSuryo2 = suryo * kazu + cateSuryo2 '武道具等累積数量 Else '自然館アーティクルは無制限 End If End If Next Session("cateSuryo1") = cateSuryo1 Session("cateSuryo2") = cateSuryo2 End If '商品未選択の場合は何もしない Else If Not IsEmpty(Session("sesSelectProduct")) Then 'カートに入っているときだけデータ保存 '変更ボタンを押したとき If Request.QueryString("from") = "own" Then '配列のサイズを決めるため k=0 sesArraySize = UBound(Session("sesSelectProduct")) For n=1 to sesArraySize delStr = "delete" & CStr(n) If Request.Form(delStr) = "on" Then k=k+1 End If Next nokori = sesArraySize - k If nokori > 0 Then '* '削除後にローカル配列に保存 Redim selectArray(nokori,7) k = 0 For i=1 to sesArraySize iStr = CStr(i) proID = "productID" & iStr proName = "productName" & iStr countStr = "count" & iStr choiceStr = "choice" & iStr priceStr = "price" & iStr amountStr = "amount" & iStr delStr = "delete" & iStr numStr = "num" & iStr cateStr = "cate" & iStr 'その商品のカテゴリID If Request.Form(delStr) <> "on" Then suryo = CInt(Request.Form(countStr)) shokei= CInt(Request.Form(priceStr))*suryo kazu = CInt(Request.Form(numStr)) 'セット物の数 selectArray(k,0) = Request.Form(proID) '商品ID selectArray(k,1) = Request.Form(proName) '商品名 selectArray(k,2) = Request.Form(priceStr) '単価 selectArray(k,3) = suryo '数量 selectArray(k,4) = shokei '小計 selectArray(k,5) = CInt(Request.Form(numStr)) '個数単位 selectArray(k,6) = CInt(Request.Form(cateStr)) 'カテゴリID k = k+1 If Request.Form(cateStr) = "1" Then cateSuryo1 = suryo * kazu + cateSuryo1 'ビデオ累積数量 Else If Request.Form(cateStr) = "2" Then cateSuryo2 = suryo * kazu + cateSuryo2 '武道具の累積数量 Else '自然館アーティクルは無制限 End If End If End If Next Session("sesSelectProduct") = selectArray Session("cateSuryo1") = cateSuryo1 Session("cateSuryo2") = cateSuryo2 Else Session("sesSelectProduct") = Empty End If '* End If End If '未選択でナビゲーションで移動した場合何もしない End If If CInt(Session("cateSuryo1")) > 6 or CInt(Session("cateSuryo2")) > 7 Then Response.Write "オンラインで注文できるのは、武道ビデオ6本まで、武道具等7本までです。
それ以上の大量注文は、電話にてお願いいたします。

" Session("sesSelectProduct") = Session("saveArray") '元に戻す Session("cateSuryo1") = saveCateSuryo1 Session("cateSuryo2") = saveCateSuryo2 %> '"> <% Else If IsEmpty(Session("sesSelectProduct")) Then 'カートに何も入っていない場合 一覧から未選択でくる場合と、いきなりナビで移動した場合 Response.Write "カ−トには何も入っていません。

" Session("cateSuryo1") = 0 Session("cateSuryo2") = 0 %> '"> <% Else 'カートに入っている場合 %> <% For i=0 to UBound(Session("sesSelectProduct"))-1 iStr = CStr(i+1) delStr = "delete" & iStr proID = "productID" & iStr proName = "productName" & iStr countStr = "count" &iStr priceStr = "price" & iStr numStr = "num" & iStr cateStr = "cate" & iStr %> "> value = "<%=Session("sesSelectProduct")(i,1)%>"> "> "> "> <% '合計の計算(送料抜き) total = total + Session("sesSelectProduct")(i,4) Next %> "> ">
削除商品名単価数量小計
> <%=CStr(Session("sesSelectProduct")(i,1))%> \<%=FormatNumber(Session("sesSelectProduct")(i,2),0)%> "> \<%=FormatNumber(Session("sesSelectProduct")(i,4),0)%>
合計\<%=FormatNumber(total,0)%>


'">   
<% End If End If %>

<% writeFooter() %>