Milky Moo Moo

Cool Creative Clothing & Gift Shop for Babies, Kids & Adults with Attitude
worldwide shipping

Moomoo Gifts

Bestsellers Range

Accessories

World Cup

Party Rep Extra's

Shopping Cart

Your shopping cart contains 0 item(s)


Become a friend of Milky Moo Moo and join our mailing list to receive exciting news and exclusive offers. Sign up for our free newsletter!

Our organic clothing range includes hats, bibs, sleepsuits, lap t-shirts and long sleeved baseball tops. We also stock short sleeve t shirts and long sleeve tops in our 3-8yr olds. In adults clothing we stock organic t-shirts in various colours. Organic shopper bags are a great little accessory. Choose from our different ranges which include our Funky New Mini Moo Beasts Range, our beasts are great new characters that you can funk up by personalising with your own slogan or name. One of our most popular ranges is the Sibling Range which has tops for big and little brothers and sisters. Choose any of the funky designs on any of the garments with the option to personalise it!! Whatever you choose our clothes make excellent personalised gift. We now also stock some extra funky gifts moomoo cards,moomoo mugs, moomoo cushions, moomoo chocolate. Personalised cards, personalised chocolate bars which are yummy, personalised cushions and personalised mugs. All these new funky gifts compliment each other so there really is something for everyone from birthday cards to celebration cards and stylish mugs and tasty personalised chocolate bars.

© Milky Moo Moo 2008 LLP®. Company No. OC340310. All rights reserved. Please read our Privacy policy, Terms & Conditions, Disclaimer, Accessibility Statement, Payment, Complaints Procedure.
& "IsNull(c.OPT_PRICE, 0) AS CPRICE, " _ & "a.OPT_CODE AS ACODE, b.OPT_CODE AS BCODE, c.OPT_CODE AS CCODE " _ & "FROM MM_ORDERITEMS " _ & "LEFT JOIN MM_PRODUCTS ON MM_PRODUCTS.PRO_ID = MM_ORDERITEMS.ORI_PID " _ & "LEFT JOIN MM_OPTIONS a ON a.OPT_ID = MM_ORDERITEMS.ORI_SIZE_ID " _ & "LEFT JOIN MM_OPTIONS b ON b.OPT_ID = MM_ORDERITEMS.ORI_COLOUR_ID " _ & "LEFT JOIN MM_OPTIONS c ON c.OPT_ID = MM_ORDERITEMS.ORI_PRINT_ID " _ & "WHERE MM_ORDERITEMS.ORI_ORDER = '" & OrderID & "' " _ & "ORDER BY CASE MM_ORDERITEMS.ORI_ISVOUCHER WHEN 'Y' THEN 2 ELSE 1 END, MM_PRODUCTS.PRO_NAME ASC; " Prefix = "ORI" End Select ExecSQL strSQL, gItems_Rst cCount = 1 If Not gItems_Rst.EOF Then While Not gItems_Rst.EOF ReDim Preserve gItems(cCount) Set gItems(cCount) = New BasketItem gItems(cCount).BI_ID = UnFixString(gItems_Rst(Prefix & "_ID")) gItems(cCount).PID = UnFixString(gItems_Rst(Prefix & "_PID")) gItems(cCount).QTY = UnFixString(gItems_Rst(Prefix & "_QTY")) gItems(cCount).NAME = UnFixString(gItems_Rst("PRO_NAME")) gItems(cCount).TEXT = UnFixString(gItems_Rst(Prefix & "_TEXT")) gItems(cCount).FP = UnFixString(gItems_Rst(Prefix & "_FP")) gItems(cCount).SIZE = IfBlank(UnFixString(gItems_Rst("ANAME")), "-") gItems(cCount).SIZE_CODE = UnFixString(gItems_Rst("ACODE")) gItems(cCount).SIZE_ID = UnFixString(gItems_Rst("AID")) gItems(cCount).COLOUR = IfBlank(UnFixString(gItems_Rst("BNAME")), "-") gItems(cCount).COLOUR_CODE = UnFixString(gItems_Rst("BCODE")) gItems(cCount).COLOUR_ID = UnFixString(gItems_Rst("BID")) gItems(cCount).PRINT = IfBlank(UnFixString(gItems_Rst("CNAME")), "-") gItems(cCount).PRINT_CODE = UnFixString(gItems_Rst("CCODE")) gItems(cCount).PRINT_ID = UnFixString(gItems_Rst("CID")) gItems(cCount).ISVOUCHER = UnFixString(gItems_Rst(Prefix & "_ISVOUCHER")) gItems(cCount).TEXT = UnFixString(gItems_Rst(Prefix & "_TEXT")) If Table = "wishlist" Then gItems(cCount).WISHLIST = True Else gItems(cCount).WISHLIST = False End If If gItems(cCount).FP = "P" Then gPrice = gItems_Rst("PRO_PRICE2") Else gPrice = gItems_Rst("PRO_PRICE1") End If '======================================================== ' CALC PRICE WITH OPTIONS '======================================================== If Table = "order" Then gItems(cCount).PRICE = gItems_Rst("ORI_PRICE") If gItems(cCount).ISVOUCHER = "Y" Then gItems(cCount).NAME = UnFixString(gItems_Rst("ORI_TEXT")) End If Else gItems(cCount).PRICE = gPrice + gItems_Rst("APRICE") _ + gItems_Rst("BPRICE") + gItems_Rst("CPRICE") End If '======================================================== cCount = cCount + 1 gItems_Rst.MoveNext Wend End If End Function Function ConstructOptions(ByRef cItems) Dim Opt Exit Function If Opt <> "" Then Opt = Mid(Opt, 1, Len(Opt) - 3) ConstructOptions = Opt End Function '******************************* '******************************* ' BASKET MANAGEMENT '******************************* Function AddToBasket(ByRef Item) Dim BID Dim SID Dim NewPID Dim WishVal If Not CheckShop Then Response.Redirect "shop-closed.asp" SID = CheckSession BID = CheckBasket If Item.WISHLIST Then WishVal = "Y" Else WishVal = "N" End If strSQL = "SELECT PRO_ISVOUCHER FROM MM_PRODUCTS WHERE PRO_ID = '" & Item.PID & "'; " ExecSQL strSQL, VChk_Rst If Not VChk_Rst.EOF Then Item.ISVOUCHER = VChk_Rst("PRO_ISVOUCHER") End If Set VChk_Rst = Nothing If IsNumeric(Item.BI_ID) And Item.ISVOUCHER <> "Y" And Item.UpdateFromBasket Then 'Adding 1 to QTY from basket view strSQL = "UPDATE MM_BASKETITEMS SET " _ & "BAI_QTY = BAI_QTY + 1, " _ & "BAI_U = '" & Now() & "' " _ & "WHERE BAI_ID = '" & Item.BI_ID & "'; " ExecSQL strSQL, BUpdate_Rst strNewPID = Item.BI_ID Set BUpdate_Rst = Nothing Else If IsNumeric(Item.BI_ID) And Item.ISVOUCHER <> "Y" And Not Item.UpdateFromBasket Then strSQL = "SET DATEFORMAT DMY; UPDATE MM_BASKETITEMS SET " _ & "BAI_QTY = '" & FixString(Item.QTY) & "', " _ & "BAI_FP = '" & FixString(Item.FP) & "', " _ & "BAI_SIZE_ID = '" & FixString(Item.SIZE_ID) & "', " _ & "BAI_COLOUR_ID = '" & FixString(Item.COLOUR_ID) & "', " _ & "BAI_PRINT_ID = '" & FixString(Item.PRINT_ID) & "', " _ & "BAI_TEXT = '" & FixString(Item.TEXT) & "', " _ & "BAI_U = '" & Now() & "' " _ & "WHERE BAI_ID = '" & Item.BI_ID & "'; " ExecSQL strSQL, BUpdate_Rst strNewPID = Item.BI_ID Set BUpdate_Rst = Nothing Else 'If Item.WISHLIST Then ' strSQL = "SELECT BAI_ID FROM MM_BASKETITEMS " _ ' & "WHERE BAI_BASKET = '" & BID & "' AND " _ ' & "BAI_PID = '" & Item.PID & "' AND BAI_WISH = 'Y'; " 'Else ' strSQL = "SELECT BAI_ID FROM MM_BASKETITEMS " _ ' & "WHERE BAI_BASKET = '" & BID & "' AND " _ ' & "BAI_PID = '" & Item.PID & "' AND BAI_WISH <> 'Y'; " 'End If ' 'ExecSQL strSQL, CheckPID_Rst ' 'If Not CheckPID_Rst.EOF And Item.ISVOUCHER <> "Y" Then 'We have item in basket already, update qty ' If Not Item.WISHLIST Then 'Don't update QTY on wishlist ' Dim UpdateItem ' Set UpdateItem = New BasketItem ' ' UpdateItem.UpdateFromBasket = True ' UpdateItem.BI_ID = CheckPID_Rst("BAI_ID") ' ' AddToBasket UpdateItem ' End If ' Set CheckPID_Rst = Nothing 'Else strSQL = "SELECT PRO_STATUS, PRO_INSTOCK, PRO_ISVOUCHER FROM MM_PRODUCTS WHERE PRO_ID = '" & Item.PID & "'; " ExecSQL strSQL, ProCheck_Rst If Not ProCheck_Rst.EOF Then strPRO_CHK_STATUS = UnFixString(ProCheck_Rst("PRO_STATUS")) strPRO_CHK_INSTOCK = UnFixString(ProCheck_Rst("PRO_INSTOCK")) strPRO_CHK_ISVOUCHER = UnFixString(ProCheck_Rst("PRO_ISVOUCHER")) If strPRO_CHK_STATUS = "L" And strPRO_CHK_INSTOCK = "Y" Then 'Only add if item is instock and active strSQL = "SET DATEFORMAT DMY; SET NOCOUNT ON; INSERT INTO MM_BASKETITEMS (" _ & "BAI_BASKET, BAI_PID, BAI_QTY, BAI_FP, BAI_SIZE_ID, BAI_COLOUR_ID, BAI_PRINT_ID, " _ & "BAI_TEXT, BAI_S, BAI_U, BAI_ISVOUCHER, BAI_WISH) VALUES(" _ & "'" & BID & "', " _ & "'" & Item.PID & "', " _ & "'" & Item.QTY & "', " _ & "'" & Item.FP & "', " _ & "'" & Item.SIZE_ID & "', " _ & "'" & Item.COLOUR_ID & "', " _ & "'" & Item.PRINT_ID & "', " _ & "'" & FixString(Item.TEXT) & "', " _ & "'" & Now() & "', " _ & "'" & Now() & "', " _ & "'" & strPRO_CHK_ISVOUCHER & "', " _ & "'" & WishVal & "'); SELECT @@IDENTITY AS NEWID; SET NOCOUNT OFF; " ExecSQL strSQL, BAdd_Rst If Not BAdd_Rst.EOF Then strNewPID = Trim(BAdd_Rst("NEWID")) Else 'Debug End If Set BAdd_Rst = Nothing Else strNewPID = 0 End If End If 'End If End If End If AddToBasket = strNewPID End Function Function RemoveFromBasket(ByVal BI_ID) If IsNumeric(BI_ID) Then strSQL = "DELETE FROM MM_BASKETITEMS WHERE BAI_ID = '" & BI_ID & "'; " ExecSQL strSQL, Remove_Rst Set Remove_Rst = Nothing End If End Function Function UpdateQty(ByVal BI_ID, ByVal QTY) If IsNumeric(QTY) Then If QTY > 0 Then strSQL = "UPDATE MM_BASKETITEMS SET BAI_QTY = '" & QTY & "' WHERE BAI_ID = '" & BI_ID & "'; " ExecSQL strSQL, BUpdate_Rst UpdateQty = True Set BUpdate_Rst = Nothing Else UpdateQty = False End If Else UpdateQty = False End If End Function '******************************* '******************************* ' MISC '******************************* Function GenerateOrder() Dim bBasketCount Dim bBasketPrice Dim bBasketTotal GenerateOrder = "" bBasketCount = BasketCount If bBasketCount > 0 Then 'We have items in our basket Dim bItems() Dim NewOrderID Dim basTotal Dim basVoucher Dim basGrandTotal Dim NEWORDERSTATUS GetBasketItems bItems, "basket", Session("MM_BASKET_ID") 'Fill class with basket items If UBound(bItems) > 0 Then 'We have items in the basket basTotal = BasketPrice() basVoucher = GetVoucherValue(Session("MM_MY_VOUCHER")) If Session("MM_MY_VOUCHER_TYPE") <> "" Then Select Case Session("MM_MY_VOUCHER_TYPE") Case "P" basGrandTotal = CDbl(basTotal) - RoundIT(CDbl(basVoucher), 2) Case "%" basGrandTotal = CDbl(basTotal) basVoucher = RoundIT((basGrandTotal * CDbl(basVoucher) / 100), 2) basGrandTotal = CDbl(basTotal) - basVoucher End Select Else basGrandTotal = CDbl(basTotal) - CDbl(basVoucher) End If If basGrandTotal < 0 Then basGrandTotal = 0 basGrandTotal = basGrandTotal + CDbl(Shipping) If basGrandTotal = 0 Then NEWORDERSTATUS = ORDERSTATUS_PAYMENTTAKEN Else NEWORDERSTATUS = ORDERSTATUS_CONFIRMED End If strSQL = "SET DATEFORMAT DMY; SET NOCOUNT ON; " _ & "INSERT INTO MM_ORDERS (" _ & "ORD_USER, ORD_PRICE, ORD_SHIPPING, ORD_DEDUCTION, ORD_TOTAL, ORD_CREATEDDATE, " _ & "ORD_UPDATEDDATE, ORD_STATUS) " _ & "VALUES(" _ & "'" & FixString(Session("MM_LOGIN_ID")) & "', " _ & "'" & FixString(basTotal) & "', " _ & "'" & FixString(Shipping) & "', " _ & "'" & FixString(basVoucher) & "', " _ & "'" & FixString(basGrandTotal) & "', " _ & "'" & Now() & "', " _ & "'" & Now() & "', " _ & "'" & NEWORDERSTATUS & "'); " _ & "SELECT @@IDENTITY AS NEWID; SET NOCOUNT OFF; " ExecSQL strSQL, Order_Rst 'Generate main order record If Not Order_Rst.EOF Then NewOrderID = Trim(Order_Rst("NEWID")) strSQL = "SET DATEFORMAT DMY; " If IsNumeric(NewOrderID) Then For X = 1 To UBound(bItems) 'Generate each order item strSQL = strSQL & "INSERT INTO MM_ORDERITEMS (" _ & "ORI_ORDER, ORI_PID, ORI_QTY, ORI_FP, ORI_SIZE_ID, ORI_COLOUR_ID, " _ & "ORI_PRINT_ID, ORI_TEXT, ORI_PRICE, ORI_STATUS) " _ & "VALUES(" _ & "'" & FixString(NewOrderID) & "', " _ & "'" & FixString(bItems(X).PID) & "', " _ & "'" & FixString(bItems(X).QTY) & "', " _ & "'" & FixString(bItems(X).FP) & "', " _ & "'" & FixString(bItems(X).SIZE_ID) & "', " _ & "'" & FixString(bItems(X).COLOUR_ID) & "', " _ & "'" & FixString(bItems(X).PRINT_ID) & "', " _ & "'" & FixString(bItems(X).TEXT) & "', " _ & "'" & FixString(bItems(X).PRICE) & "', " _ & "'L'); " Next If Session("MM_MY_VOUCHER") <> "" Then Select Case Session("MM_MY_VOUCHER_TYPE") Case "%" strSQL = strSQL & "INSERT INTO MM_ORDERITEMS (" _ & "ORI_ORDER, ORI_PID, ORI_QTY, ORI_PRICE, ORI_ISVOUCHER, ORI_TEXT, ORI_STATUS) " _ & "VALUES(" _ & "'" & FixString(NewOrderID) & "', " _ & "'0', " _ & "'1', " _ & "'-" & FixString(basVoucher) & "', " _ & "'Y', " _ & "'Gift Voucher Deduction " & GetVoucherValue(Session("MM_MY_VOUCHER")) & "% [" & Session("MM_MY_VOUCHER") & "]', " _ & "'L'); " Case Else strSQL = strSQL & "INSERT INTO MM_ORDERITEMS (" _ & "ORI_ORDER, ORI_PID, ORI_QTY, ORI_PRICE, ORI_ISVOUCHER, ORI_TEXT, ORI_STATUS) " _ & "VALUES(" _ & "'" & FixString(NewOrderID) & "', " _ & "'0', " _ & "'1', " _ & "'-" & FixString(GetVoucherValue(Session("MM_MY_VOUCHER"))) & "', " _ & "'Y', " _ & "'Gift Voucher Deduction [" & Session("MM_MY_VOUCHER") & "]', " _ & "'L'); " strSQL = strSQL & "UPDATE MM_VOUCHERS SET " _ & "VOU_STATUS = 'A', " _ & "VOU_USEDBY = '" & Session("MM_LOGIN_ID") & "', " _ & "VOU_USEDDATE = '" & Now() & "' " _ & "WHERE VOU_ID = '" & VoucherGetID(Session("MM_MY_VOUCHER")) & "'; " End Select End If Session("MM_MY_VOUCHER") = "" Session("MM_MY_VOUCHER_TYPE") = "" ExecSQL strSQL, OrderItems_Rst GenerateOrder = NewOrderID 'Send back Order ID End If End If End If End If End Function '******************************* '******************************* ' ProTX Stuff '******************************* Function SendToProTX(ByRef ProTX, ByVal OrderID, ByVal RetryPay) Dim oItems() GetBasketItems oItems, "order", OrderID If UBound(oItems) > 0 Then strSQL = "SELECT MM_ORDERS.*, MM_MEMBERS.* " _ & "FROM MM_ORDERS " _ & "INNER JOIN MM_MEMBERS ON MM_MEMBERS.MEM_ID = MM_ORDERS.ORD_USER " _ & "WHERE MM_ORDERS.ORD_ID = '" & OrderID & "'; " ExecSQL strSQL, Order_Rst If Not Order_Rst.EOF Then Set formatter = CreateObject("ASPFormat.Format") With ProTX .ptxVendorName = "milkymoomoo" If CONST_DEBUGGING Then .ptxVSPSite = "https://ukvpstest.protx.com/vspgateway/service/vspform-register.vsp" .ptxPassword = "WvQv37R3VSFesmip" 'Testbed ' PROTX PAYMENT SIMULATOR SYSTEM '.ptxVSPSite = "https://ukvpstest.protx.com/VSPSimulator/VSPFormGateway.asp" '.ptxPassword = "XkrSVII7m8wGWR9z" 'Simulator Code ' OLD PROTX PAYMENT TEST SYSTEM '.ptxVSPSite = "https://ukvpstest.protx.com/vps2form/submit.asp" '.ptxPassword = "WvQv37R3VSFesmip" 'Testbed Else '** Live site - ONLY uncomment when going live ** .ptxVSPSite="https://ukvps.protx.com/vspgateway/service/vspform-register.vsp" .ptxPassword = "WvQv37R3VSFesmip" 'Live ' OLD PROTX PAYMENT LIVE SYSTEM '.ptxVSPSite="https://ukvps.protx.com/vps2form/submit.asp" '.ptxPassword = "WvQv37R3VSFesmip" 'Live End If .ptxMyServer = CONST_ROOT_PATH '"http://www.milkymoomoo.com/" .ptxPrefix = "MMM" .ptxVendorTxcode = .GenTXCode 'Response.Write .ptxVendorTxcode .ptxTransactionCode = .ptxVendorTxcode .ptxAmount = formatter.FormatString(UnFixString(Order_Rst("ORD_TOTAL")), "0.00") .ptxCurrency = "GBP" .ptxDescription = "Creative Clothing for Babies & Kids" .ptxSuccessURL = CONST_ROOT_PATH & "order_success.asp" .ptxFailureURL = CONST_ROOT_PATH & "order_failed.asp" .ptxCustomerEmail = UnFixString(Order_Rst("MEM_EMAIL")) .ptxVendorEmail = EMAIL_SALES .ptxCustomerName = UnFixString(Order_Rst("MEM_TITLE")) & " " & UnFixString(Order_Rst("MEM_FIRSTNAME")) & " " & UnFixString(Order_Rst("MEM_SURNAME")) If UnFixString(Order_Rst("MEM_SAMEASDELIVERY")) = "1" Then .ptxDeliveryAddress = IfNotBlank(UnFixString(Order_Rst("MEM_ADDRESS1")), UnFixString(Order_Rst("MEM_ADDRESS1"))) .ptxDeliveryAddress = .ptxDeliveryAddress & IfNotBlank(UnFixString(Order_Rst("MEM_ADDRESS2")), vbCrLf & UnFixString(Order_Rst("MEM_ADDRESS2"))) .ptxDeliveryAddress = .ptxDeliveryAddress & IfNotBlank(UnFixString(Order_Rst("MEM_ADDRESS3")), vbCrLf & UnFixString(Order_Rst("MEM_ADDRESS3"))) .ptxDeliveryAddress = .ptxDeliveryAddress & IfNotBlank(UnFixString(Order_Rst("MEM_TOWN")), vbCrLf & UnFixString(Order_Rst("MEM_TOWN"))) .ptxDeliveryAddress = .ptxDeliveryAddress & IfNotBlank(UnFixString(Order_Rst("MEM_COUNTY")), vbCrLf & UnFixString(Order_Rst("MEM_COUNTY"))) .ptxDeliveryPostCode = UnFixString(Order_Rst("MEM_POSTCODE")) If IsNumeric(UnFixString(Order_Rst("MEM_COUNTRY"))) Then .ptxDeliveryAddress = .ptxDeliveryAddress & vbCrLf & GetCountry(UnFixString(Order_Rst("MEM_COUNTRY"))) End If Else .ptxDeliveryAddress = IfNotBlank(UnFixString(Order_Rst("MEM_DADDRESS1")), UnFixString(Order_Rst("MEM_DADDRESS1"))) .ptxDeliveryAddress = .ptxDeliveryAddress & IfNotBlank(UnFixString(Order_Rst("MEM_DADDRESS2")), vbCrLf & UnFixString(Order_Rst("MEM_DADDRESS2"))) .ptxDeliveryAddress = .ptxDeliveryAddress & IfNotBlank(UnFixString(Order_Rst("MEM_DADDRESS3")), vbCrLf & UnFixString(Order_Rst("MEM_DADDRESS3"))) .ptxDeliveryAddress = .ptxDeliveryAddress & IfNotBlank(UnFixString(Order_Rst("MEM_DTOWN")), vbCrLf & UnFixString(Order_Rst("MEM_DTOWN"))) .ptxDeliveryAddress = .ptxDeliveryAddress & IfNotBlank(UnFixString(Order_Rst("MEM_DCOUNTY")), vbCrLf & UnFixString(Order_Rst("MEM_DCOUNTY"))) .ptxDeliveryPostCode = UnFixString(Order_Rst("MEM_DPOSTCODE")) If IsNumeric(UnFixString(Order_Rst("MEM_DCOUNTRY"))) Then .ptxDeliveryAddress = .ptxDeliveryAddress & vbCrLf & GetCountry(UnFixString(Order_Rst("MEM_DCOUNTRY"))) End If End If If UnFixString(Order_Rst("MEM_CARDSAMEASDELIVERY")) = "1" Then .ptxBillingAddress = IfNotBlank(UnFixString(Order_Rst("MEM_ADDRESS1")), UnFixString(Order_Rst("MEM_ADDRESS1"))) .ptxBillingAddress = .ptxBillingAddress & IfNotBlank(UnFixString(Order_Rst("MEM_ADDRESS2")), vbCrLf & UnFixString(Order_Rst("MEM_ADDRESS2"))) .ptxBillingAddress = .ptxBillingAddress & IfNotBlank(UnFixString(Order_Rst("MEM_ADDRESS3")), vbCrLf & UnFixString(Order_Rst("MEM_ADDRESS3"))) .ptxBillingAddress = .ptxBillingAddress & IfNotBlank(UnFixString(Order_Rst("MEM_TOWN")), vbCrLf & UnFixString(Order_Rst("MEM_TOWN"))) .ptxBillingAddress = .ptxBillingAddress & IfNotBlank(UnFixString(Order_Rst("MEM_COUNTY")), vbCrLf & UnFixString(Order_Rst("MEM_COUNTY"))) If IsNumeric(UnFixString(Order_Rst("MEM_COUNTRY"))) Then .ptxBillingAddress = .ptxBillingAddress & vbCrLf & GetCountry(UnFixString(Order_Rst("MEM_COUNTRY"))) End If .ptxBillingPostCode = UnFixString(Order_Rst("MEM_POSTCODE")) Else .ptxBillingAddress = IfNotBlank(UnFixString(Order_Rst("MEM_CARDADDRESS1")), UnFixString(Order_Rst("MEM_CARDADDRESS1"))) .ptxBillingAddress = .ptxBillingAddress & IfNotBlank(UnFixString(Order_Rst("MEM_CARDADDRESS2")), vbCrLf & UnFixString(Order_Rst("MEM_CARDADDRESS2"))) .ptxBillingAddress = .ptxBillingAddress & IfNotBlank(UnFixString(Order_Rst("MEM_CARDADDRESS3")), vbCrLf & UnFixString(Order_Rst("MEM_CARDADDRESS3"))) .ptxBillingAddress = .ptxBillingAddress & IfNotBlank(UnFixString(Order_Rst("MEM_CARDTOWN")), vbCrLf & UnFixString(Order_Rst("MEM_CARDTOWN"))) .ptxBillingAddress = .ptxBillingAddress & IfNotBlank(UnFixString(Order_Rst("MEM_CARDCOUNTY")), vbCrLf & UnFixString(Order_Rst("MEM_CARDCOUNTY"))) If IsNumeric(UnFixString(Order_Rst("MEM_CARDCOUNTRY"))) Then .ptxBillingAddress = .ptxBillingAddress & vbCrLf & GetCountry(UnFixString(Order_Rst("MEM_CARDCOUNTRY"))) End If .ptxBillingPostCode = UnFixString(Order_Rst("MEM_CARDPOSTCODE")) End If .ptxCustomerPhone = UnFixString(Order_Rst("MEM_CONTACTNO")) .ptxThankYouMessage = "Thank you for shopping with Milky Moo Moo" .ptxBasket = UBound(oItems) + 1 For X = 1 To UBound(oItems) If oItems(X).FP = "P" Then strF_P = "Personalised" Else strF_P = "Fixed Design" End If .ptxBasket = .ptxBasket & ":" & oItems(X).NAME If Trim(strF_P) <> "" Then .ptxBasket = .ptxBasket & " ( TYPE - " & strF_P & "" If Trim(oItems(X).SIZE) <> "" Then .ptxBasket = .ptxBasket & ", OPTION SIZE - " & oItems(X).SIZE & "" If Trim(oItems(X).COLOUR) <> "" Then .ptxBasket = .ptxBasket & ", OPTION COLOUR - " & oItems(X).COLOUR & "" If Trim(oItems(X).PRINT) <> "" Then .ptxBasket = .ptxBasket & ", OPTION PRINT - " & oItems(X).PRINT & "" If Trim(oItems(X).TEXT) <> "" Then .ptxBasket = .ptxBasket & ", OPTION TEXT - " & oItems(X).TEXT & "" .ptxBasket = .ptxBasket & " )" .ptxBasket = .ptxBasket & ":" & oItems(X).QTY & "" .ptxBasket = .ptxBasket & ":" & FormatCurrency(oItems(X).PRICE) & ":---:" & FormatCurrency(oItems(X).PRICE) & ":" & FormatCurrency(oItems(X).PRICE * oItems(X).QTY) & "" Next .ptxBasket = .ptxBasket & ":Shipping:---:---:---:---:" & FormatCurrency(Order_Rst("ORD_SHIPPING"), 2) 'Response.Write .ptxBasket & "


" .BuildCrypt 'Response.Write .ptxCrypt & "


" 'Response.Write .ptxCrypted End With End If End If End Function '******************************* '******************************* ' VOUCHERS '******************************* Function AddVoucher(ByVal Code) Dim addResult If InStr(Code, "-") Then vouArr = Split(Code, "-") addResult = CheckVoucher(vouArr(0), vouArr(1)) Select Case addResult Case "OK" Session("MM_MY_VOUCHER") = Code 'Voucher Code is OK, add to session variable Session("MM_MY_VOUCHER_TYPE") = "" UpdateVoucher(vouArr(0)) Case "INUSE" Case "NOTFOUND" Case Else 'Session("MM_MY_VOUCHER") = "" End Select AddVoucher = addResult Else If Not CheckFixedVoucher(Code) Then AddVoucher = "NOTVALID" 'Voucher Code is not valid Else Session("MM_MY_VOUCHER") = Code 'Voucher Code is OK, add to session variable End If End If End Function Function CheckVoucher(ByVal ID, ByVal Code) If IsNumeric(ID) And Code <> "" Then 'chkLastDate = DateAdd("m", Now(), Session.TimeOut) strSQL = "SET DATEFORMAT DMY; SELECT VOU_STATUS, VOU_LASTDATE FROM MM_VOUCHERS " _ & "WHERE VOU_ID = '" & ID & "' AND VOU_CODE = '" & Code & "' AND " _ & "VOU_STATUS = 'L'; " ExecSQL strSQL, VouCheck_Rst If Not VouCheck_Rst.EOF Then 'Voucher found, lets do date/time check strVC_LastDate = UnFixString(VouCheck_Rst("VOU_LASTDATE")) strVC_Status = UnFixString(VouCheck_Rst("VOU_STATUS")) If Not IsNull(strVC_LastDate) And strVC_LastDate <> "" Then If DateDiff("n", strVC_LastDate, Now()) > Session.TimeOut Then CheckVoucher = "OK" 'Voucher is OK to use Else CheckVoucher = "INUSE" 'Voucher is in use End If Else CheckVoucher = "OK" End If Else CheckVoucher = "NOTFOUND" 'Voucher not found End If Set VouCheck_Rst = Nothing Else CheckVoucher = "NOTVALID" End If End Function Function CheckFixedVoucher(ByVal Code) If Code <> "" Then strSQL = "SELECT VOU_TYPE FROM MM_VOUCHERS " _ & "WHERE VOU_CODE = '" & Code & "' AND " _ & "VOU_REUSABLE = 'Y' AND VOU_STATUS = 'L'; " ExecSQL strSQL, VouCheck_Rst If Not VouCheck_Rst.EOF Then Session("MM_MY_VOUCHER_TYPE") = UnFixString(VouCheck_Rst("VOU_TYPE")) CheckFixedVoucher = True Else CheckFixedVoucher = False End If Set VouCheck_Rst = Nothing Else CheckFixedVoucher = False End If End Function Function UpdateVoucher(ByVal ID) If ID <> "" Then strSQL = "SET DATEFORMAT DMY; " _ & "UPDATE MM_VOUCHERS SET VOU_LASTDATE = '" & Now() & "' " _ & "WHERE VOU_ID = '" & ID & "'; " ExecSQL strSQL, UV_Rst Set UV_Rst = Nothing End If End Function Function GetVoucherValue(ByVal vCode) If Session("MM_MY_VOUCHER_TYPE") <> "" Then strSQL = "SELECT VOU_VALUE FROM MM_VOUCHERS " _ & "WHERE VOU_CODE = '" & vCode & "' AND " _ & "VOU_REUSABLE = 'Y' AND VOU_STATUS = 'L'; " Else ID = VoucherGetID(vCode) Code = VoucherGetCode(vCode) strSQL = "SELECT VOU_VALUE FROM MM_VOUCHERS " _ & "WHERE VOU_ID = '" & ID & "' AND VOU_CODE = '" & Code & "' AND " _ & "VOU_STATUS = 'L'; " End If ExecSQL strSQL, VouValue_Rst If Not VouValue_Rst.EOF Then GetVoucherValue = VouValue_Rst("VOU_VALUE") Else GetVoucherValue = "0" End If Set VouValue_Rst = Nothing End Function Function VoucherGetID(ByVal vCode) If InStr(vCode, "-") Then vouArr = Split(vCode, "-") VoucherGetID = vouArr(0) End If End Function Function VoucherGetCode(ByVal vCode) If InStr(vCode, "-") Then vouArr = Split(vCode, "-") VoucherGetCode = vouArr(1) End If End Function '******************************* '******************************* ' MISC '******************************* Function GetIP() MyIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR") If MyIP <> "" Then GetIP = MyIP Else GetIP = Request.ServerVariables("REMOTE_ADDR") End If End Function Function CheckShop() strCS_SQL = "SELECT PAG_SHOPSTATUS FROM MM_PAGES WHERE PAG_ID = '1'; " ExecSQL strCS_SQL, CS_Rst If Not CS_Rst.EOF Then If CS_Rst("PAG_SHOPSTATUS") = "C" Then CheckShop = False Else CheckShop = True End If Else CheckShop = False End If Set strCS_SQL = Nothing End Function '******************************* %>