VP-ASP :: Shopping Cart Software

Shopping Cart Software Solutions for anywhere in the World

US/Canada(Toll Free): +1 888 587 2278
Europe/UK: +44 (020) 7193 9408
Australia/New Zealand: +61 3 9016 4497
Live Chat

Miscellaneous

    

How to not include canceled orders for summary sales report in admin

Some site owners like to see their order data returned with cancelled orders and other don't.

To change the display to suit your needs follow these steps:

change line 545 of shopheaders.asp from:

sql = "select sum(orderamount) as todayorder from orders WHERE and odate = " & datedelimit(datepart("yyyy",date) & "/" & datepart("m",date) & "/" & datepart("d",date))

to:

sql = "select sum(orderamount) as todayorder from orders WHERE canceled<>1 odate = " & datedelimit(datepart("yyyy",date) & "/" & datepart("m",date) & "/" & datepart("d",date))

line 567 from:

sql = "select sum(orderamount) as monthorder from orders WHERE and MONTH(odate) = '" & datepart("m",date) & "'"

to:

sql = "select sum(orderamount) as monthorder from orders WHERE canceled<>1 MONTH(odate) = '" & datepart("m",date) & "'" and

line 591 from:

sql = "select sum(orderamount) as yearorder from orders WHERE YEAR(odate) = '" & datepart("yyyy",date) & "'"

to:

sql = "select sum(orderamount) as yearorder from orders WHERE canceled<>1 YEAR(odate) = '" & datepart("yyyy",date) & "'"

    

VP-ASP Reserved Characters

The following characters are reserved by VP-ASP and you should avoid using them in anythinig that is entered into your database, such as product and category information.
  • select
  • drop
  • --
  • insert into
  • delete from
  • update
  • xp_
  • union
  • @@
  • |
  • script
  • .js
  • [
  • ]
    

Strange characters appearing on pages

Problem: When viewing my site, there are are three odd characters appearing - 

Solution: This issue is caused by having your template files in UTF-8 format rather than ANSI.

When using the templates, you'll need to ensure that the files are saved in ANSI format otherwise the header that is included in a UTF-8 file is rendered to the page.

All of the tmp_*****.htm files should be saved in ANSI format to avoid this issue.


See the following page for detail on setting the character encoding in various web authoring packages:
http://www.w3.org/International/questions/qa-setting-encoding-in-applications

    

UPS Realtime Package Dimensions

If you are having trouble with UPS not having the product dimensions calculated correctly before requesting the rates, the following code may help. It multiplies the dimensions by the number of products you have and works out the correct dimensions for a package containing all items purchased.

Add this to the top of upsxmlrealtime.asp below the other DIM statements

Dim totdim1, totdim2, totdim3, totalvolume, cubed1

Then, locate the following code -

If getupsconfig("xdimensionfield",false, dbc)<>"" then
tempdimensions=rs(getupsconfig("xdimensionfield",false, dbc))
if not isnull(tempdimensions) then
productdimensions=tempdimensions
end if
end if

Change to -

If getupsconfig("xdimensionfield",false, dbc)<>"" then
tempdimensions=rs(getupsconfig("xdimensionfield",false, dbc))

if not isnull(tempdimensions) then
productdimensions=tempdimensions

dim tempdim1, tempdim2, tempdim3, tempdim4
tempdim1 = left(productdimensions, instr(productdimensions, " ") - 1)
tempdim2 = right(productdimensions, len(productdimensions) - instr(productdimensions, " "))
tempdim3 = left(tempdim2, instr(tempdim2, " ") -1)
tempdim4 = right(tempdim2, instr(tempdim2, " ") -1)
totdim1=totdim1 + (tempdim1 * prodquantity)

if tempdim3>totdim2 then
totdim2=tempdim3
else
totdim2=totdim2
end if

if tempdim4>totdim3 then
totdim3=tempdim4
else
totdim3=totdim3
end if

totalvolume = int(totdim1 * totdim2 * totdim3)
cubed1 = int(totalvolume ^ (1/3))
productdimensions = cubed1 & " " & cubed1 & " " & cubed1
end if
end if

Please note: this code was supplied by a customer and VP-ASP offers no guarantees that it will work correctly and we do not offer support for this code.

However, if you have large-sized products, UPS might return an error about the over-sized dimensions.

The solution to this issue is to configure UPS so that large sized products will be shipped separately.

To configure this, please log into your administration page, select Occasional Task and then click at Shipping.

Select configure UPS and than make sure that Allow certain products to be shipped separately? is enabled.

Now, go to View/Edit product page and then click the edit button for a large-sized product. Please enter the value "YES" to the "Other5" field. This will mark this product to be shipped separately.

If your "other5" field is already used for other purposes, you can set UPS to use another field. Simply enter the name of the field to the "Dimension Product Field" at UPS configuration page.     

VP-ASP 7.0 Fixes

VP-ASPThis page will list all known bugs a fix if available. Please refer back to this page if you have any issues before posting in the helpdesk.

Please make backups of your files before applying any of the following updates.

Many of the following fixes are most likely aleady installed in your package. Please check the date of your version in shop$version.asp and compare against the fixes date below.

Dates earlier than your version will have fixes up to date applied and can be ignored..

Issue # Date Issue Finename Resolved
1. 12/10/2009 Admin : Directory & Uploaded Image URL populated wrongly if VPASP installed at Root folder admin/uploadsub.asp & admin/shopa_uploadpop.asp Yes
2. 12/10/2009, 12/22/2009 There is &nbsp; displaying at front pages shoptranslate.asp Yes
3. 12/10/2009 Each item unit price and total price do not showing at cart shopformatorder.asp Yes
4. 12/11/2009 Shipping method may bypass to the payment page shopcustomer.asp Yes
5. 12/11/2009 Blogs, News, Content tables not created with MS SQL 2000 Database Yes
6. 12/11/2009 Installation / Upgrade Wizard : Setup successfully but Cart do not setup properly Packages Yes
7. 12/11/2009 While using Australia Pos Module to checkout, there is the error at shopcustomer.asp shopcustomer.asp Yes
8. 12/11/2009 Multiple images does not swapped at product extended page. shopimageswatches.asp Yes
9. 12/12/2009 Broken link at customer service area for UPS Tracking. root\shopa_ups_track.asp, root\shopa_ups_track_license.asp, admin\shopa_ups_track.asp Yes
10. 12/12/2009 Front page message does not display if Home Page's Content's Image is empty. templates\yourtemplate\tmp_default.htm Yes
11. 12/13/2009 Ajax shipping not able to be selected if use Shipping Calculation Type : By Weight, By quantity, By Price Range, By Fixed, By Others, By Message shopshippingcalc.asp Yes
12. 12/13/2009 Display error message > Cannot locate shipping record, follow by a sql query if shipping by country not found shopshippingcalc.asp Yes
13. 12/14/2009 Display xprice0 value at minicart subtotal if subtotal is 0. shophpmgr.asp Yes
14. 12/15/2009 Error while generate front page random products with customer group privilege applied to product categories. shoprandomproducts.asp Yes
15. 12/16/2009 Error while adding products with features to cart. shopproductfeaturesprocess.asp Yes
16. 12/16/2009 Bulletin (created by HTML editor) at product description is not displaying at product listings pages. templates/yourowntemplates\css\layout.css, templates/yourowntemplates\css\shop700.css Yes
17. 12/16/2009 When set xblogsreviewsauthrequired to Yes and add a review to blogs, there is an error of "variable handleerror". shopblogsreviewlist.asp Yes
18. 12/16/2009 If set xblogsreviewsauthrequired to No, why my blog reviews does not displaying. shopblogsreviewadd.asp, shopblogslistings.asp, shopcms.asp Yes
19. 12/16/2009 When adding a blog review with mysql, there are empty record. shopmysqlsubs.asp Yes
20. 12/16/2009 When set xnewsreviewsauthrequired to Yes and add a review to news, there is an error of "variable handleerror". shopnewsreviewlist.asp Yes
21. 12/16/2009 If set xnewsreviewsauthrequired to No, why my news reviews does not displaying. shopnewsreviewadd.asp, shopnewslistings.asp, shopcms.asp Yes
22. 12/16/2009 When adding a news review with mysql, there are empty record. shopmysqlsubs.asp Yes
23. 12/16/2009 The installation not able to check with SQL Server Native connection. Package Yes
24. 12/16/2009 Duplicate Sub-categories while using Fly-out / Drop down at Side Categories. shopproductsubs.asp Yes
25. 12/17/2009 Side categories not able to be translated while using other languages with non-style categories. shopproductsubs.asp Yes
26. 12/17/2009 Show warnings at shopcustcontact.asp while using SSL. shopcustcontact.asp Yes
27. 12/19/2009 UPS Real Time does not work if shipping to UK. upsxmlrealinterface.asp Yes
28. 12/19/2009 Ajax shipping should get from ship country, but not billing country. shopajaxshippingzipcodecountry.asp Yes
29. 12/19/2009 The Blog / News detail page broken while using templates default-3cols (3 columns templates) shopcms.asp, shopproductsubs.asp Yes
30. 12/19/2009 While deleting Category at Page Manager editing page, it will redirect me to Error - "Unauthorize Admin" admin\shopa_removenewscategory.asp Yes
31. 12/21/2009 If sub-product inventory display type set to Quantity, it is still displaying main product's Quantity. If sub-product inventory display type set to Table, it is still displaying main product's Order Button. shopfileio.asp, shopproductinventory.asp, templates/yourowntemplates/tmp_productinvent.htm<, templates/yourowntemplates/tmp_product.htm, templates/yourowntemplates/tmp_bundledproduct.htm, templates/yourowntemplates/tmp_giftproduct.htm Yes
32. 12/21/2009 Displaying same results at page 2 at shopdisplayproducts.asp while using MSSQL 2005 and above shop$db.asp Yes
33. 12/21/2009 The price of product is still displaying if price is 0. shopfileio.asp Yes
34. 12/22/2009 Achor link is pointing incorrectly at Blog listings page. shopblogslistings.asp Yes
35. 12/22/2009 Achor link is pointing incorrectly at News listings page. shopnewslistings.asp Yes
36. 12/22/2009 Wrong validate message at admin blog edit page. admin/shopa_editblogs.asp Yes
37. 12/22/2009 Wrong validate message at admin news edit page. admin/shopa_editnews.asp Yes
38. 12/23/2009 Getting error while updating company information at installation - Field 'mycompany.faxnumber' cannot be a zero-length string. Access Database Yes
39. 12/23/2009 V700 not able to run properly if the cart is hosted with specific port. shop$db.asp Yes
40. 12/23/2009 When adding long comment at blog / news review with MsSQL Database, getting the SQL error. MsSQL Database Yes
41. 12/23/2009 If fill in Data with "Enter" key, the data should have a line break. shopfileio.asp Yes
42. 12/28/2009 If main category are being deleted from edit category page, the related product does not able to be shortlisted to the front store. shopproductsubs.asp, shopnewproductsub.asp, shoprandomproducts.asp Yes
43. 12/30/2009 SEO Dynamic Generator Error : Path not found, if directory name more than 247 charsacters. admin/shopa_generateseodynamicsubs.asp Yes
44. 12/30/2009 SEO Dyanmic products / blog / news not able to be browsed, if directory name is capital. admin/seotemplates/blogs-contentid.asp, admin/seotemplates/news-contentid.asp, admin/seotemplates/products-categoryid-catalogid.asp, admin/seotemplates/products-categoryid-hassub.asp, admin/seotemplates/products-categoryid.asp Yes
45. 12/30/2009 Display xprice0 value at view cart if cart is empty. shopcartformatdesign.asp Yes
46. 12/30/2009 No form tag closing at tell a friend tab. shoptellfriendpro.asp Yes
47. 12/30/2009 Error while set xcontentBoxHeadLinesOnly to No. shopcms.asp Yes
48. 12/30/2009 Issue with replacing every apostrophe with a quotation mark admin/admin$db.asp, shop$db.asp Yes
49. 12/30/2009 No function if using Image Button at shopcheckout.asp shop$db.asp Yes
50. 12/31/2009 Retriving records from database speed is slow. shop$db.asp, admin/admin$db.asp Yes
51. 12/31/2009 SEO Dynamic products / blog / news directory generated error if there is a space in front of cname, messagetype. admin/shopa_generateseodynamicsubs.asp Yes
52. 12/31/2009 SEO links generated error (front store) if directory name more than 247 characters. shopseosubs.asp Yes
53. 01/04/2010 SEO categories link not generated if there is no product under the category. admin/shopa_generateseodynamicsubs.asp Yes
54. 01/04/2010 Generate google product feed error while EAN applied. admin/shopa_googleproductfeed.asp Yes
55. 01/04/2010 There is a sql error while using shopquery.asp to retrieve front store product listings. shop$db.asp, admin/admin$db.asp Yes
56. 01/05/2010 Bad file name while generating SEO Dyanmic. admin/shopa_generateseodynamicsubs.asp, shopseosubs2.asp Yes
57. 01/05/2010 Display wrong category name at shopdisplaycategories.asp and shopdisplayproducts.asp if SEO Dynamic enabled. shopdisplaycategories.asp, shopdisplayproducts.asp, shopseosubs.asp Yes
58. 01/05/2010 Changing currency at product extended page and customer page, direct back to wrong page. shop$db.asp Yes
59. 01/05/2010 If use more than 2 selectlists at shopexd.asp, there are duplicate select listings. shopproductfeaturesgenerate.asp Yes
60. 01/06/2010 Layout is unblance for each column at shopdisplaycategories.asp if category name is longer. shopdisplaycategories.asp Yes
61. 01/07/2010 Bad file name while generating SEO Dyanmic, because of the "Enter" key. admin/shopa_generateseodynamicsubs.asp, shopseosubs2.asp Yes
62. 01/08/2010 Top minicart is not updated after click order button at shopdisplayproducts.asp, if Xproductstayonpage set to Yes. shopaddtocart.asp Yes
63. 01/08/2010 When xproductstayonpage is set to Yes and order now is click on shopdisplayproducts.asp all products then show up instead of just the category you were on. shopdisplayproducts.asp, shopproductformat.asp, shopproductformat_template.asp Yes
64. 01/08/2010 SEO dynamic issue with & symbol. admin/shopa_generateseodynamicsubs.asp, shopseosubs2.asp Yes
65. 01/11/2010 If xsortproducts = catalogid, the shopdisplayproducts.asp will be redirect to error page. shopproductcreatesql.asp Yes
66. 01/11/2010 Product highlight not able to be displaying if xfrontpagevalue not equal to RANDOM. shoprandomproducts.asp Yes
67. 01/11/2010 Search engines not able to crawl the URL links. shopcms.asp, templates\yourtemplate\tmp_blogs.htm, shopfileio.asp, templates\yourtemplate\tmp_featuredproducts.htm, templates\yourtemplate\tmp_frontpage.htm, templates\yourtemplate\tmp_newproductsfrontpage.htm, templates\yourtemplate\tmp_productthumbnail.htm, templates\yourtemplate\tmp_proexdalsobought.htm, templates\yourtemplate\tmp_proexdalsoboughtinvent.htm, templates\yourtemplate\tmp_proexdalsoboughtinventnoimage.htm, templates\yourtemplate\tmp_proexdalsoboughtnoimage.htm, templates\yourtemplate\tmp_proexdcroselling.htm, templates\yourtemplate\tmp_proexdcrosellinginvent.htm, templates\yourtemplate\tmp_proexdcrosellinginventnoimage.htm, templates\yourtemplate\tmp_proexdcrosellingnoimage.htm, templates\yourtemplate\tmp_proexddisplay.htm, templates\yourtemplate\tmp_proexddisplayinvent.htm, templates\yourtemplate\tmp_proexdprocat.htm, templates\yourtemplate\tmp_proexdprocatinvent.htm, templates\yourtemplate\tmp_proexdprocatinventnoimage.htm, templates\yourtemplate\tmp_proexdprocatnoimage.htm, templates\yourtemplate\tmp_subproductformat.htm, templates\yourtemplate\tmp_topsellers.htm Yes
68. 01/12/2010 shopquery.asp is displaying those items without price if using cprice. shopproductcreatesql.asp Yes
69. 01/12/2010 Generating error if double slash passing to dyninclude function. admin/adminheaders.asp, shopheaders.asp Yes
70. 01/12/2010 Total record count is wrong at shopdisplayproducts.asp if product assigned to multiple categories. shop$db.asp, admin/admin$db.asp Yes
71. 01/13/2010 Simple mode in admin area is not working properly. admin/shopa_editdisplay.asp Yes
72. 01/13/2010 ShopClosed caught in a redirect loop. shop$db.asp, admin/admin$db.asp Yes
73. 01/14/2010 SEO dynamic link issue at shopdisplayproducts.asp if xextendedpopup set to Yes. shopproductformat.asp Yes
74. 01/14/2010 Not able to log into admin page if xlogonrequired set to Yes. admin/admin$db.asp Yes
75. 01/15/2010 View order details and editing shipping in admin control panel is not working with the packages dated 2010.01.13 or later. admin/admin$db.asp, shopupsincludes.asp, shopformatorder.asp Yes
76. 01/15/2010 Error whle display new products (not in random) at front page. shopnewproductsubs.asp Yes
77. 01/15/2010 Edit product feature cannot update "Feature Required" field using MySQL. admin/shopa_featureedit.asp Yes
78. 01/15/2010 Errors loading shopa_featureedit.asp and shopa_displayrelfeatureprod.asp while using MySQL3.51. admin/shopa_featureedit.asp, admin/shopa_displayrelfeatureprod.asp Yes
79. 01/15/2010 Front page affliate Rep Report - List all Reps errors. admin/admin$db.asp, shop$db.asp Yes
80. 01/15/2010 Missing images at front page affliate link reports - orders & summary. Packages Yes
81. 01/15/2010 Front page affliate link reports - orders & summary: affliate # link to admin wrongly. shopaffreportsubs.asp Yes
82. 01/17/2010 Product tabs does not working at product extended page while xprocatdisplay is enabled and retriving values from ProProCatDisplayCategoryID (products table) and CatProCatDisplayCategoryID (categories table). shopprocat.asp Yes
83. 01/17/2010 Errors while generating Google Site Map & Google Product Feed with the packages dated 2010.01.11 or later. SEO Tool Module Yes
84. 01/18/2010 If checkout with paypal & xallowinvalidcards set to No, vpasp generate the Variable is undefined error. shopvalidatecreditcards.asp Yes
85. 01/18/2010 Results of page 2 onwards are displaying wrongly with the packages dated 2010.01.12 later. admin/admin$db.asp, shop$db.asp Yes
86. 01/18/2010 Ajax does not running after click "Add Category" at "Edit Product Page" and main category is empty. admin/shopa_addproduct.asp Yes
87. 01/18/2010 "Edit Product Page" - If products.ccategory = 0, vpasp not able to update products.ccategory after click "Add Category" and "Delete Category". admin/shopa_procategory.asp Yes
88. 01/19/2010 "Add Record" to customer at admin control panel, the layout is broken. admin/shopa_editrecord.asp Yes
89. 01/19/2010 "Add Record" to customer at admin control panel not able to be updated. shopcustgrpsubs.asp Yes
90. 01/19/2010 If set xlogonrequired to Yes, customers not able to login to the shopping cart. shop$db.asp Yes
92. 01/20/2010 Breadcrumb is displaying wronlgy if SEO dynamic enabled and clicking directly from "Featured Products", "Top Sellers" shopexd.asp Yes
93. 01/20/2010 Generate Google Site Map produce incorrect xml file while using special charasters with SEO Dynamic. admin/shopgooglesitemapscreate.asp Yes
94. 01/20/2010 Layout Manager: Edit content box is not working if content with special charaters. admin/js/shophomepagemanagerfunctions.js, admin/shopa_hpmanagersubdetails.asp Yes
95. 01/21/2010 Problems with feature price not updated if more than 1 feature pricing within a product. shopupdatecartprices.asp, shopaddtocart.asp, shopsessionsubs.asp, shopsavecart.asp, shopproductfeaturesprocess.asp, shopproductfeatures.asp, shop$db.asp, admin/admin$db.asp Yes
96. 01/21/2010 xsortproducts : DESC options is not functioning if using MsSQL DB. shop$db.asp Yes
97. 01/22/2010 xprice0 issue displaying incorrectly at minicart sections, cart format sections. shophpmgr.asp, shopcartformatdesign.asp, shopfileio.asp Yes
98. 01/22/2010 Search result page produce error for mysql db, if strproductfields contaning xSearchSortField. shopproductcreatesql.asp Yes
99. 01/22/2010 Login to admin first, then browse and order feature product at front page within same browser, produce the error, after applied fix #95. admin/admin$db.asp Yes
100. 01/25/2010 Pontential bug at NavigateShowMiniCartCssStyled. shopproductsubs.asp Yes
101. 01/25/2010 Stop displaying of Categories in the dropdown for Category edit and Product edit pages if highercategoryid return -1. admin/shopa_addcategory.asp, admin/shopa_addproduct.asp Yes
102. 01/25/2010 Not able to save ' (appostrophe ) at feature edit page. admin/shopa_featureedit.asp Yes
103. 01/26/2010 Contents with html table displaying incorrectly (extra spaces) at shopcontent.asp. shopfileio.asp Yes
104. 01/26/2010 "Template not found" at front page, or admin login page produce scripts error if admin folder name has the same name with the 2nd level sub-folder name onwards. shopxmysite.asp, shop$db.asp, admin/adminxmysite.asp, admin/admin$db.asp, admin/editor/assetmanager/checkadmin.asp Yes
105. 01/26/2010 Missing logo at index.htm (generated file from Static HTML Generator). templates\yourtemplate\tmp_generateheader.htm Yes
106. 01/26/2010 PIN delivery does not work. shoppinnumbers.asp Yes
107. 01/26/2010 Buying gift certificates will cause an overflow error at shopthanks.asp. shopfileio.asp Yes
108. 01/26/2010 Error while display new products (not in random) at front page. - refer from #76 shopnewproductsub.asp Yes
109. 01/27/2010 Displaying wrongly related feature products at admin area. admin/shopa_featureedit.asp, admin/shopa_displayrelfeatureprod.asp Yes
110. 01/27/2010 Incorrect shipping when non-default currency chosen. Please refer to 154. Yes
111. 01/27/2010 Re-direct to wrong page after changing currency / language at shopdisplayproducts.asp and shopexd.asp while SEO dynamic is enabled. shopproductsubs2.asp, shoplanguagesubs.asp Yes
112. 01/27/2010 WYSWYG editor problems with html coding for the versions dated 2010.01.19 and later. admin/admin$db.asp Yes
113. 01/27/2010 PIN delivery does not work. shoppinnumbers.asp Yes
114. 01/27/2010 No space for PIN Number e-mail subject if failed PIN delivery. admin/shopa_pinorder.asp Yes
115. 01/27/2010 Delete an entire feature giving an error no shopa_featureedit.asp. admin/shopa_featureedit.asp Yes
116. 01/27/2010 Image not showing on View link on shopa_featureedit.asp admin/shopa_featureedit.asp Yes
117. 01/29/2010 V7 database template does not working. shopfileio.asp, admin/adminfileio.asp Yes
118. 01/29/2010 V7 does not working if using "Virtual Directory" shopfileio.asp, admin/adminfileio.asp Yes
119. 01/29/2010 Categories no link at shopexd.asp if SEO dynamic enabled. shopexd.asp Yes
120. 01/30/2010 Img alt tag's cname not translated at shopexd.asp. shopimageswatches.asp Yes
121. 01/31/2010 Error while display new products (not in random) at front page if directly use snippet code <%displaynewproducts "no"%> and no result shortlisted. shopnewproductsub.asp Yes
122. 02/02/2010 Front page error if there is no Alt Tag specified at Free Image. shophpmgr.asp Yes
123. 02/02/2010 Errors if enter special character at front store if using MySQL DB. shopmysqlsubs.asp Yes
124. 02/02/2010 While enable SEO dyanmic, and change language or currency at shopexd.asp, get the error "CatalogId is missing for extended description". shopseosubs.asp.asp Yes
125. 02/02/2010 Display "An error occured please restart shopping" if enter special character at front store. shopproductcreatesql.asp Yes
126. 02/02/2010 Errors if enter special character at customer login page. shop$db.asp Yes
127. 02/02/2010 Errors if passing special character parameter at shopcontent.asp. shopcontent.asp Yes
128. 02/02/2010 Errors if passing special character parameter at shopblogs.asp. shopblogs.asp Yes
129. 02/02/2010 Errors if passing special character parameter at shopnews.asp. shopnews.asp Yes
130. 02/03/2010 Contents with html table displaying incorrectly (extra spaces) at shopcontent.asp, after apply fix #103. shopfileio.asp Yes
131. 02/03/2010 Typo error at admin/shopa_addproduct.asp. admin/shopa_addproduct.asp Yes
132. 02/03/2010 Possible infinite loop at admin product edit page and category edit page after apply fix #101. admin/shopa_addcategory.asp, admin/shopa_addproduct.asp Yes
133. 02/03/2010 Errors if passing special character parameter at shopfiltering.asp. shopfiltering.asp Yes
134. 02/05/2010 News / Blogs side box should be sorted by latest to oldest. shopcms.asp Yes
135. 02/08/2010 V7 front page layout broken if using $sitepreview mode. shop$db.asp Yes
136. 02/08/2010 Not able to log into admin if using $sitepreview mode. admin/shopadmin.asp or renamed admin login page Yes
137. 02/08/2010 Tab at shopexd.asp should be default to first tab. shoprotabs.asp Yes
138. 02/10/2010 Inc. Tax and Exl. Tax should not be displaying at Product Extended Description page if that product is a "Tax Free" item. shopfileio.asp Yes
139. 02/10/2010 Duplicate results at shopdisplayproduct.asp if using MsSQL and product assigned to multiple categories. shop$db.asp Yes
140. 02/11/2010 Customer Group privilege not functioning with mysql database. shopcustgrpsubs.asp Yes
141. 02/11/2010 Product description page error when using product matching. shopexd.asp Yes
142. 02/22/2010 Category name contain & not displaying at header at shopdisplayproducts.asp for plus or lower versions. shopdisplayproducts.asp Yes
143. 02/23/2010 Lanauge Reset at admin control panel, link to a page not found after the fix dated 01/27/2010. shoplanguagesubs.asp Yes
144. 02/25/2010 Features not adding to cart if using shopkitconfig.asp. shopkitaddtocart.asp Yes
145. 02/26/2010 SEO dynamic is not working if language LangCommonYes does not equal to "Yes". admin/shopa_generateseodynamicsubs.asp Yes
146. 02/26/2010 Edit translate product page not retrieving translated value of meta title, meta word, meta description from translateproducts table. admin/shopa_edittranslateproducts.asp Yes
147. 03/02/2010 Customer need to try to log in twice if click "checkout" through minicart. shopcustomer.asp Yes
148. 03/02/2010 Infinitie login page looping if xssl value is non-ssl URL. shop$db.asp Yes
149. 03/08/2010 Fix can't open any more tables with sub categories issues. shopfileio.asp Yes
150. 03/16/2010 Infinity looping at front store with using sql DB after version dated 2010.03.15. shopproductsubs.asp Yes
151. 03/17/2010 Bug Fix: Admin not able to update through Html Editor if using browser Google Chrome. admin/admin$db.asp Yes
152. 03/18/2010 Shipping by Weight calculate incorrectly. shopshippingcalc.asp Yes
153. 03/18/2010 UPS Shipping not passing correctly to shopcreateorder.asp. shopcustomer.asp Yes
154. 03/18/2010 Currency convesion calculate wrongly at shipping. shopcustomer.asp Yes
155. 03/23/2010 Retrieve from prodcategories table "hang". shopproductcreatesql.asp Yes
156. 03/23/2010 Shipping calculation extra blackets after versions dated 2010.03.15. shopshippingcalc.asp Yes
157. 03/25/2010 Cat Extra Include not show with SEO Dynamic Product. shopreadfile.asp Yes
158. 03/30/2010 Error while using LoadContainer for search component. shophpmgr.asp Yes
159. 04/12/2010 Same description under section "Customers who bought this item also bought" at shopaddtocart.asp shopfileio.asp Yes
160. 04/22/2010 Using SQL Server, Blog/News review are always direct to Error page. shopblogsreviewlist.asp, shopnewsreviewlist.asp Yes
161. 04/22/2010 Wrong Paypalpro UK country code. paypalprodpshoppayment.asp Yes
162. 05/14/2010 Apostrophe issue with customer last name. shopcustregister.asp, shop$db.asp Yes
163. 05/14/2010 Bug Fix: Free shipping with product is not working with shipping addon. shopcustomer.asp, shopshippingcalc.asp Yes

1a. uploadsub.asp

Locate around line 49:

Below

RealFoldername = getactualfileslocation(request.ServerVariables("SCRIPT_NAME"), "", "", "", "no")

Add :

if RealFoldername = "/" then RealFoldername = ""

Now locate around line 57:

Below

RealFoldername = getactualfileslocation(request.ServerVariables("SCRIPT_NAME"), "", "", "", "no")

Add :

if RealFoldername = "/" then RealFoldername = ""

Save and test.

1b. shopa_uploadpop.asp

Locate around line 227:

Below

Directory = "/"& RealSubFolderNameOnlyWithoutAdmin(request.ServerVariables("SCRIPT_NAME")) & "/" & GetConfig("xuploaddirectory")

Add :

Directory = replace(Directory,"//","/")

Save and test.

2. shoptranslate.asp

Locate around line 9:

Add new routine

'replacing any html tag that is effected by &
sub replacehtmlvalue(passvalue)
passvalue=replace(passvalue,"©","&copy;")
passvalue=replace(passvalue,"&","&amp;")
passvalue=replace(passvalue,"&amp;nbsp;","&nbsp;")
passvalue=replace(passvalue,"&amp;amp;","&amp;")
passvalue=replace(passvalue,"&amp;copy;","&copy;")
passvalue=replace(passvalue,"&amp;gt;","&gt;")
passvalue=replace(passvalue,"&amp;lt;","&lt;")
passvalue=replace(passvalue,"&amp;pound;","&pound;")
passvalue=replace(passvalue,"&amp;reg;","&reg;")
passvalue=replace(passvalue,"&amp;#8482;","&#8482;")
passvalue=replace(passvalue,"&amp;yen;","&yen;")
passvalue=replace(passvalue,"&amp;#8364;","&#8364;")
passvalue=replace(passvalue,"&amp;#8220;","&#8220;")
passvalue=replace(passvalue,"&amp;#8221;","&#8221;")
passvalue=replace(passvalue,"&amp;#8212;","&#8212;")
passvalue=replace(passvalue,"&amp;cent;","&cent;")
passvalue=replace(passvalue,"&amp;uml;","&uml;")
passvalue=replace(passvalue,"&amp;laquo;","&laquo;")
passvalue=replace(passvalue,"&amp;deg;","&deg;")
passvalue=replace(passvalue,"&amp;plusmn;","&plusmn;")
passvalue=replace(passvalue,"&amp;micro;","&micro;")
passvalue=replace(passvalue,"&amp;para;","&para;")
passvalue=replace(passvalue,"&amp;middot;","&middot;")
passvalue=replace(passvalue,"&amp;cedil;","&cedil;")
passvalue=replace(passvalue,"&amp;raquo;","&raquo;")
passvalue=replace(passvalue,"&amp;Oslash;","&Oslash;")
passvalue=replace(passvalue,"&amp;szlig;","&szlig;")
passvalue=replace(passvalue,"&amp;divide;","&divide;")
passvalue=replace(passvalue,"&amp;oslash;","&oslash;")
passvalue=replace(passvalue,"&amp;#8218;","&#8218;")
passvalue=replace(passvalue,"&amp;#402;","&#402;")
passvalue=replace(passvalue,"&amp;#8222;","&#8222;")
passvalue=replace(passvalue,"&amp;#710;","&#710;")
passvalue=replace(passvalue,"&amp;#8240;","&#8240;")
passvalue=replace(passvalue,"&amp;#8249;","&#8249;")
passvalue=replace(passvalue,"&amp;#8216;","&#8216;")
passvalue=replace(passvalue,"&amp;#8217;","&#8217;")
passvalue=replace(passvalue,"&amp;#8226;","&#8226;")
passvalue=replace(passvalue,"&amp;#8211;","&#8211;")
passvalue=replace(passvalue,"&amp;#732;","&#732;")
passvalue=replace(passvalue,"&amp;#8250;","&#8250;")
passvalue=replace(passvalue,"&amp;euro;","&euro;")
end sub

Locate Line 62: within routine sub TranslateLanguage

Modify

newvalue=replace(newvalue,"©","&copy;")
newvalue=replace(newvalue,"&","&")
newvalue=replace(newvalue,"&amp;nbsp;","&nbsp;")
newvalue=replace(newvalue,"&amp;amp;","&amp;")
newvalue=replace(newvalue,"&amp;copy;","&copy;")
newvalue=replace(newvalue,"&amp;gt;","&gt;")
newvalue=replace(newvalue,"&amp;lt;","&lt;")

to

replacehtmlvalue newvalue

Locate Line 138: within routine sub TranslateLanguage

Modify

newvalue=replace(newvalue,"©","&copy;")
newvalue=replace(newvalue,"&","&")
newvalue=replace(newvalue,"&amp;nbsp;","&nbsp;")
newvalue=replace(newvalue,"&amp;amp;","&amp;")
newvalue=replace(newvalue,"&amp;copy;","&copy;")
newvalue=replace(newvalue,"&amp;gt;","&gt;")
newvalue=replace(newvalue,"&amp;lt;","&lt;")

to

replacehtmlvalue newvalue

Save and test.

3. shopformatorder.asp

Locate around line 359:

Modify

if items("bundleparentid") = 0 then

to

if items("bundleparentid") = 0 or isnull(items("bundleparentid")) or trim(items("bundleparentid")) = "" then

Save and test.

4. shopcustomer.asp

Locate around line 345:

Modify

if getconfig("xshippingselection ") = "Yes" then

to

if CheckNonShippingItems = false and getconfig("xshippingselection") = "Yes" then

Save and test.

Set xshippingselection to Yes.

5. Table Blogs, News, Content

Please re-create Blogs, News, Content tables with the following Creation SQL Script at SQL 2K Manager Console

Blogs

create table [dbo].[blogs] (
[blogsid] [int] identity (1, 1) not null ,
[messagetype] [varchar] (100) null,
[headline] [varchar] (100) null,
[blogsimage] [varchar] (255) null,
[hide] [bit] null,
[template] [varchar] (255) null,
[blogslanguage] [varchar] (50) null,
[other1] [varchar] (255) null,
[other2] [varchar] (255) null,
[other3] [varchar] (255) null,
[loggedin] [bit] null,
[impressions] [float] null,
[cdateadded] [Datetime] null,
[cdateupdated] [Datetime] null,
[fullname] [varchar] (255) null,
[contactid] [varchar] (255) null,
[contentgroups] [varchar] (255) null,
[excontentgroups] [varchar] (255) null,
[showonbox] [bit] null,
[cBlogsStartDate] [Datetime] null,
[cBlogsEndDate] [Datetime] null,
[showonhomepage] [bit] null,
[archive] [bit] null,
[metatitle] [varchar] (255) null,
[smFrequency] [varchar] (255) null,
[smPriority] [varchar] (255) null,
[gsmincluded] [varchar] (10) null,
[metakeywords] [text] null,
[metadescription] [text] null,
[message] [text] null,
[userid] [varchar] (50) null
) on [primary];
alter table [dbo].[blogs] with nocheck add constraint [pk_blogs] primary key nonclustered ([blogsid]) on [primary];

News

create table [dbo].[news] (
[newsid] [int] identity (1, 1) not null,
[messagetype] [varchar] (100) null,
[headline] [varchar] (100) null,
[newsimage] [varchar] (255) null,
[hide] [bit] null,
[template] [varchar] (255) null,
[newslanguage] [varchar] (50) null,
[other1] [varchar] (255) null,
[other2] [varchar] (255) null,
[other3] [varchar] (255) null,
[loggedin] [bit] null,
[impressions] [float] null,
[cdateadded] [Datetime] null,
[cdateupdated] [Datetime] null,
[fullname] [varchar] (255) null,
[contactid] [varchar] (255) null,
[contentgroups] [varchar] (255) null,
[excontentgroups] [varchar] (255) null,
[showonbox] [bit] null,
[cNewsStartDate] [Datetime] null,
[cNewsEndDate] [Datetime] null,
[showonhomepage] [bit] null,
[archive] [bit] null,
[metatitle] [varchar] (255) null,
[smFrequency] [varchar] (255) null,
[smPriority] [varchar] (255) null,
[gsmincluded] [varchar] (10) null,
[metakeywords] [text] null,
[metadescription] [text] null,
[message] [text] null,
[userid] [varchar] (50) null
) on [primary]
;
alter table [dbo].[news] with nocheck add constraint [pk_news] primary key nonclustered ([newsid]) on [primary];

News

create table [dbo].[content] (
[contentid] [int] identity (1, 1) not null,
[messagetype] [varchar] (100) null,
[contentimage] [varchar] (255) null,
[hide] [bit] null,
[template] [varchar] (255) null,
[contentlanguage] [varchar] (50) null,
[other1] [varchar] (255) null,
[other2] [varchar] (255) null,
[other3] [varchar] (255) null,
[loggedin] [bit] null,
[impressions] [int] null,
[cdateadded] [datetime] null,
[cdateupdated] [datetime] null,
[homepage] [bit] null,
[fullname] [varchar] (255) null,
[contactid] [varchar] (255) null,
[contentgroups] [varchar] (255) null,
[excontentgroups] [varchar] (255) null,
[showonbox] [bit] null,
[nurllink] varchar(255) null,
[ncategoryid] [varchar] (50) null,
[cNewsStartDate] [datetime] null,
[cNewsEndDate] [datetime] null,
[metatitle] [varchar] (255) null,
[smFrequency] [varchar] (255) null,
[smPriority] [varchar] (255) null,
[gsmincluded] [varchar] (10) null,
[metakeywords] [text] null,
[metadescription] [text] null,
[message] [text] null,
[message2] [text] null,
[userid] [varchar] (50) null
) on [primary];
alter table [dbo].[content] with nocheck add
constraint [df_content_impressions] default (0) for [impressions],
constraint [df_content_cdateadded] default (getdate()) for [cdateadded],
constraint [pk_content] primary key nonclustered
(
[contentid]
) on [primary];

6 Installation / Upgrade Packgages

1. Please re-download the packages from http://www.vpasp.com/

2. Set the correct folder permissions

3. Re-run Installation / Upgrade Wizard

7. shopcustomer.asp

Locate around line 213:

Modify

if getsess("smprice") = 0 then

to

if cstr(getsess("smprice")) = "0" then

Save and test.

8. shopimageswatches.asp

Locate around line 22:

Below if not swatchrs.eof then

Add

GenerateSwapScript

Save and test.

9. Broken UPS Tracking Link

1. Please re-download the packages from http://www.vpasp.com/

2. Copy root\shopa_ups_track.asp and root\shopa_ups_track_license.asp to cart root folder

3. Copy admin\shopa_ups_track.asp to cart admin folder

10. templates\yourtemplate\tmp_default.htm

Locate around line 6:

Move [translate message2]

Below $ <img src="[ContentImage]" align="right" alt="" class="image" />

Save and test.

11. shopshippingcalc.asp

Locate around line 247: within routine sub HandleByWeight

Comment SetSess "smprice", 0 to 'SetSess "smprice", 0

Locate around line 316: within routine sub HandleByQuantity

Comment SetSess "smprice", 0 to 'SetSess "smprice", 0

Locate around line 368: within routine sub HandleByPriceRange

Comment SetSess "smprice", 0 to 'SetSess "smprice", 0

Locate around line 397: within routine sub HandleByPriceRange

Modify SetSess "smprice", 0 to SetSess "smprice", ""

Locate around line 484: within routine sub HandleByFixed

Comment SetSess "smprice", 0 to 'SetSess "smprice", 0

Locate around line 497: within routine sub HandlebyOther

Comment SetSess "smprice", 0 to 'SetSess "smprice", 0

Locate around line 644: within routine sub HandleByMessage

Comment SetSess "smprice", 0 to 'SetSess "smprice", 0

Save and test.

12. shopshippingcalc.asp

Locate around line 718: within routine sub AddShippingCountry

Comment

HandleShippingError tempsql

to

'HandleShippingError tempsql

Save and test.

13. shophpmgr.asp

Locate around line 1196: within routine sub getminicartsectionhtml2

Modify

htmlwrite shopformatcurrency(getsess("OrderTotal"),GetConfig("xdecimalpoint"))

to

if getsess("CartCount") > 0 then
htmlwrite shopformatcurrency(getsess("OrderTotal"),GetConfig("xdecimalpoint"))
else
if GetSess("Newcurrencysymbol")<>"" then
htmlwrite GetSess("Newcurrencysymbol") & "0.00"
elseif GetConfig("XCurrencySymbol") <> "" then
htmlwrite GetConfig("XCurrencySymbol") & "0.00"
else
htmlwrite "$" & "0.00"
end if
end if

Locate around line 1351: within routine sub getminicartsectionhtml

Modify

htmlwrite shopformatcurrency(getsess("OrderTotal"),GetConfig("xdecimalpoint")) & "</span>"

to

if getsess("CartCount") > 0 then
htmlwrite shopformatcurrency(getsess("OrderTotal"),GetConfig("xdecimalpoint")) & "</span>"
else
if GetSess("Newcurrencysymbol")<>"" then
htmlwrite GetSess("Newcurrencysymbol") & "0.00" & "</span>"
elseif GetConfig("XCurrencySymbol") <> "" then
htmlwrite GetConfig("XCurrencySymbol") & "0.00" & "</span>"
else
htmlwrite "$" & "0.00" & "</span>"
end if
end if

Save and test.

14. shoprandomproducts.asp

Locate around line 201: within routine sub GenerateFrontpagesql

Modify

sql = sql & GenerateCustomerMatchSQL ("c.customermatch","c.excustomermatch","c.loggedin""and")

to

sql = sql & GenerateCustomerMatchSQL ("c.customermatch","c.excustomermatch","c.loggedin","and")

Save and test.

15. shopproductfeaturesprocess.asp

Locate around line 287: within routine sub VerifyFeaturesSelected

Above

maxfeatures = ubound(farray) + 1

Add

farray = Split(strFeatures, ",") 'get feature numbers

Save and test.

16a. templates\yourowntemplates\css\layout.css

Locate around line 991: within class #main .main-product ul

Modify the class to

#main .main-product ul {
text-align:left;
}

Locate around line 994: within class #main .main-product li

Remove

#main .main-product li {
display:block;
float: left;
margin: 0;
padding: 0;
}

Locate around line 995: within class #main .main-product li div

Remove

#main .main-product li div {
padding: 5px;
}

Save and test.

16b. templates\yourowntemplates\css\shop700.css

Move to the new line at the end of the file.

Add

#contentpage ul li{
margin-bottom:5px;
text-indent:-16px;
list-style:inside;
margin-left:-20px;
}

#contentpage li{
margin-bottom:5px;
text-indent:-16px;
list-style:inside;
margin-left:16px;
}

.thumbnail_img img{
width:auto !important;
height:40px !important;
}

#main .main-product .productdesc ul li{
margin-bottom:5px;
text-indent:-16px;
list-style:inside;
margin-left:-20px;
}

#main .main-product .productdesc li{
margin-bottom:5px;
margin-top:5px;
text-indent:-16px;
list-style:inside;
margin-left:16px;
}

#productexd .productdesc ul li{
margin-bottom:5px;
text-indent:-16px;
list-style:inside;
margin-left:-20px;
}

#productexd .productdesc li{
margin-bottom:5px;
margin-top:5px;
text-indent:-16px;
list-style:inside;
margin-left:16px;
}

Save and test.

17. shopblogsreviewlist.asp

Locate around line 113: within routine sub ReviewFormatRow

Modify

HandleError SError

to

if trim(SError) <> "Yes" then ShopWriteError SError

Save and test.

18a. shopblogsreviewadd.asp

Locate around line 194: within routine sub UpdateRating

Modify

objrs("authorized")= getlang("LangcommonYes")

to

objrs("authorized")= "Yes"

Save and continue to 18b.

18b. shopblogslistings.asp

Locate around line 252: within routine sub Formatblogs

Modify

sql = sql & " and authorized = 1"

to

sql = sql & " and (authorized = '1' or authorized = 'Yes')"

Locate around line 254: within routine sub Formatblogs

Modify

sql = sql & " and authorized = TRUE"

to

sql = sql & " and (authorized = 'TRUE' or authorized = 'Yes')"

Save and continue to 18c.

18c. shopcms.asp

Locate around line 873: within routine sub Handle_BlogsReviewLinks

Modify

sql = sql & " and authorized = 1"

to

sql = sql & " and (authorized = '1' or authorized = 'Yes')"

Locate around line 875: within routine sub Handle_BlogsReviewLinks

Modify

sql = sql & " and authorized = TRUE"

to

sql = sql & " and (authorized = 'TRUE' or authorized = 'Yes')"

Save and test.

19. shopmysqlsubs.asp

Locate around line 1792: within routine sub mysqlupdateblogsrating

Modify

rsql = "SELECT id FROM blogsreviews where contentid=" & contentid

to

rsql = "SELECT id FROM blogsreviews where contentid=" & contentid & " order by id desc"

Locate around line 1809: within routine sub mysqlupdateblogsrating

Modify

mysqltextfield sqlo, "authorized", getlang("LangcommonYes")

to

mysqltextfield sqlo, "authorized", "Yes"

Save and test.

20. shopnewsreviewlist.asp

Locate around line 113: within routine sub ReviewFormatRow

Modify

HandleError SError

to

if trim(SError) <> "Yes" then ShopWriteError SError

Save and test.

21a. shopnewsreviewadd.asp

Locate around line 190: within routine sub UpdateRating

Modify

objrs("authorized")= getlang("LangcommonYes")

to

objrs("authorized")= "Yes"

Save and test.

21b. shopnewslistings.asp

Locate around line 252: within routine sub Formatblogs

Modify

sql = sql & " and authorized = 1"

to

sql = sql & " and (authorized = '1' or authorized = 'Yes')"

Locate around line 254: within routine sub Formatblogs

Modify

sql = sql & " and authorized = TRUE"

to

sql = sql & " and (authorized = 'TRUE' or authorized = 'Yes')"

Save and test.

21c. shopcms.asp

Locate around line 490: within routine sub Handle_NewsReviewLinks

Modify

sql = sql & " and authorized = 1"

to

sql = sql & " and (authorized = '1' or authorized = 'Yes')"

Locate around line 492: within routine sub Handle_NewsReviewLinks

Modify

sql = sql & " and authorized = TRUE"

to

sql = sql & " and (authorized = 'TRUE' or authorized = 'Yes')"

Save and test.

22. shopmysqlsubs.asp

Locate around line 1757: within routine sub mysqlupdatenewsrating

Modify

rsql = "SELECT id FROM newsreviews where contentid=" & contentid

to

rsql = "SELECT id FROM newsreviews where contentid=" & contentid & " order by id desc"

Locate around line 1774: within routine sub mysqlupdatenewsrating

Modify

mysqltextfield sqlo, "authorized", getlang("LangcommonYes")

to

mysqltextfield sqlo, "authorized", "Yes"

Save and test.

23. Package

open root\shop$db.asp

Locate around line 49

Modify const xSqlNative="No" to const xSqlNative="Yes"

open admin\admin$db.asp

Locate around line 52

Modify const xSqlNative="No" to const xSqlNative="Yes"

open installation/checkdbstatus.asp

Locate around line 70: within routine sub checksqlserver

Modify

strconn= "DRIVER={SQL Server}; Server=" & varServerIP & "; Database=" & varDatabaseName & "; UID=" & varUserName & "; PWD=" & varPassword'

to

strconn= "DRIVER={SQL Native Client}; Server=" & varServerIP & "; Database=" & varDatabaseName & "; UID=" & varUserName & "; PWD=" & varPassword

open installation/setupsub.asp

Locate around line 591: within routine sub shopopendatabase

Modify

strconn= "DRIVER={SQL Server}; Server=" & varServerIP & "; Database=" & varDatabaseName & "; UID=" & varUserName & "; PWD=" & varPassword'

to

strconn= "DRIVER={SQL Native Client}; Server=" & varServerIP & "; Database=" & varDatabaseName & "; UID=" & varUserName & "; PWD=" & varPassword

open upgrade/checkdbstatus.asp

Locate around line 70: within routine sub checksqlserver

Modify

strconn= "DRIVER={SQL Server}; Server=" & varServerIP & "; Database=" & varDatabaseName & "; UID=" & varUserName & "; PWD=" & varPassword'

to

strconn= "DRIVER={SQL Native Client}; Server=" & varServerIP & "; Database=" & varDatabaseName & "; UID=" & varUserName & "; PWD=" & varPassword

open installation/setupsub.asp

Locate around line 950: within routine sub shopopendatabase

Modify

strconn= "DRIVER={SQL Server}; Server=" & varServerIP & "; Database=" & varDatabaseName & "; UID=" & varUserName & "; PWD=" & varPassword'

to

strconn= "DRIVER={SQL Native Client}; Server=" & varServerIP & "; Database=" & varDatabaseName & "; UID=" & varUserName & "; PWD=" & varPassword

Save and test.

24. shopproductsubs.asp

Locate around line 498: within routine sub generatesublinks

Above

plink = plink & "<ul class=""menulist"">"

Add

plink=""

Save and test.

25. shopproductsubs.asp

Locate around line 386: within routine sub NavigateShowCategories

Modify

name = TranslateLanguage(dbc, "categories", "catedescription", "categoryid", cid, name)

to

name = TranslateLanguage(dbc, "categories", "catdescription", "categoryid", cid, name)

Save and test.

26. shopcustcontact.asp

Locate around line 16: Below of the main comments.

Add

if lcase(request.ServerVariables("HTTPS")) = "on" then
response.Redirect "http://"& request.ServerVariables("HTTP_HOST") & xmysite2 &"/shopcustcontact.asp"
end if

Save and test.

27. upsxmlrealinterface.asp

Locate around line 327: within routine sub createxmlinternational.

Below

dim shiptocountry

Add

shiptocountry = ucase(getsess("SHIPCOUNTRY"))
if shiptocountry = "" then
shiptocountry = ucase(getsess("COUNTRY"))
end if
if shiptocountry = "UK" then
shiptocountry = "GB"
end if

Locate around line 378: within routine sub createxmlinternational.

Modify

xmlstring=xmlstring & "<CountryCode>" & getsess("country") & "</CountryCode>"

to

xmlstring=xmlstring & "<CountryCode>" & shiptocountry & "</CountryCode>"

Save and test.

28. shopajaxshippingzipcodecountry.asp

Locate around line 101.

Modify

if shiptocountry = "" then
shiptocountry = getsess("country")
else
setsess "country", shiptocountry
end if

to

if shiptocountry = "" then
shiptocountry = ucase(getsess("SHIPCOUNTRY"))
if shiptocountry = "" then
shiptocountry = ucase(getsess("COUNTRY"))
end if
else
setsess "shipcountry", shiptocountry
end if

Save and test.

29a. shopcms.asp

Locate around line 930: within routine sub displayblogscommentform

Modify

HtmlWrite tableRow & "<fieldset><label >" & getlang("LangMenuComment") & "</label>"

to

HtmlWrite "<fieldset><label>" & getlang("LangMenuComment") & "</label>"

Locate around line 546: within routine sub displaynewscommentform

Modify

HtmlWrite tableRow & "<fieldset><label >" & getlang("LangMenuComment") & "</label>"

to

HtmlWrite "<fieldset><label>" & getlang("LangMenuComment") & "</label>"

Save and test.

29b. shopproductsubs.asp

Locate around line 219: within routine sub CreateblogsnewsonepageRow

Remove

HtmlWrite "<td>"

Locate around line 224: within routine sub CreateblogsnewsonepageRow

Modify

GenHelpIcon(passhelpstring)
HtmlWrite tablecolumnend & tableRowend

to

if len(passhelpstring) > 0 then
htmlwrite "<span>"
GenHelpIcon(passhelpstring)
HtmlWrite "</span>"
end if

Save and test.

30. admin\shopa_removenewscategory.asp

Locate around line 12.

Modify

ShopCheckadmin "shopa_addproduct.asp"

to

ShopCheckadmin ""

Save and test.

31a. shopfileio.asp

Locate around line 476: within routine sub ProcessKeyword

Modify

Handle_SpecialCheckbox value,parsearray

to

Handle_SpecialCheckbox value,parsearray,parseRS

Locate around line 497: within routine sub ProcessKeyword

Modify

Add_Quantity "User",parsearray

to

Add_Quantity "User",parsearray,parseRS

Locate around line 505: within routine sub ProcessKeyword

Modify

Add_Button "User",parsearray

to

Add_Button "User",parsearray,parseRS

Locate around line 1160: within routine sub Handle_SpecialOrderButton

Modify

Add_Quantity "",parsearray

to

Add_Quantity "",parsearray,parseRS

Locate around line 1163: within routine sub Handle_SpecialOrderButton

Modify

Add_Quantity "",parsearray

to

Add_Quantity "",parsearray,parseRS

Locate around line 1172: within routine sub Handle_SpecialOrderButton

Modify

Add_Button "",parsearray

to

Add_Button "",parsearray,parseRS

Locate around line 1175: within routine sub Handle_SpecialOrderButton

Modify

Add_Button "",parsearray

to

Add_Button "",parsearray,parseRS

Locate around line 1211: within routine sub Handle_SpecialCheckBox

Modify

sub Handle_SpecialCheckBox (ivalue, parsearray)

to

sub Handle_SpecialCheckBox (ivalue, parsearray, parseRS)

Locate around line 1220: within routine sub Handle_SpecialCheckBox

Modify

Add_Quantity "", parsearray

to

Add_Quantity "",parsearray,parseRS

Locate around line 1222: within routine sub Handle_SpecialCheckBox

Modify

Add_Button "",parsearray

to

Add_Button "",parsearray,parseRS

Locate around line 1249: within routine sub Add_Button

Modify

sub Add_Button (ivalue, parsearray)

to

sub Add_Button (ivalue, parsearray, parseRS)

Locate around line 1260: within routine sub Add_Button

Above

dim mytext, mybutton, tableflag

Add

dim inventorycheck, pricedisplay, quantitydisplay, addflag
Checkinventoryproducts ivalue,parsearray,parseRS, inventorycheck, pricedisplay, quantitydisplay, inventoryoutofstock
addflag = false
if inventorycheck = true then
If pricedisplay = false then
addflag = false
else
addflag = true
end if
else
addflag = true
end if
if addflag then

Locate around line 1333: within routine sub Add_Button

Above

end sub

Add

end if

Locate around line 1336: within routine sub Add_Quantity

Modify

sub Add_Quantity (ivalue, parsearray)

to

sub Add_Quantity (ivalue, parsearray, parseRS)

Locate around line 1347: within routine sub Add_Quantity

Above

dim strminimumquantity, rc, tableflag, fieldtype

Add

dim inventorycheck, pricedisplay, quantitydisplay,addflag
Checkinventoryproducts ivalue,parsearray,parseRS, inventorycheck, pricedisplay, quantitydisplay, inventoryoutofstock
addflag = false
If inventorycheck=false then
addflag = true
else
If quantitydisplay=true then
addflag = true
end if
end if
if addflag = true then

Locate around line 1361: within routine sub Add_Quantity

Below

if rc> 0 then exit sub

Add

htmlwrite ""

Locate around line 1381: within routine sub Add_Quantity

Above

end sub

Add

end if

Locate around line 1914: within routine sub Handle_Inventoryproducts

Modify

FormatInventoryproducts dbc, parseRS

to

dim inventorycheck, pricedisplay, quantitydisplay
Checkinventoryproducts ivalue,parsearray,parseRS, inventorycheck, pricedisplay, quantitydisplay, inventoryoutofstock
If inventorycheck=true then
FormatInventoryproducts dbc, parseRS
end if

Save and test.

31b. shopproductinventory.asp

Locate around line 392: within routine sub FormatInventoryQuantity

Modify

response.write "
" & sselect

to

response.write "
" & sselect & "
"

Save and test.

31c. templates/yourowntemplates/tmp_productinvent.htm

Locate around line 51.

Remove

<label class="fontbold">[getlang langproductquantity]</label>

Save and test.

31c. templates/yourowntemplates/tmp_product.htm

Locate around line 51.

Remove

<label class="fontbold">[getlang langproductquantity]</label>

Save and test.

31c. templates/yourowntemplates/tmp_bundledproduct.htm

Locate around line 51.

Remove

<label class="fontbold">[getlang langproductquantity]</label>

Save and test.

31c. templates/yourowntemplates/tmp_giftproduct.htm

Locate around line 51.

Remove

<label class="fontbold">[getlang langproductquantity]</label>

Save and test.

32. shop$db.asp

Locate around line 750: within routine function GenPageSQL

Below

mysql2 = "select distinct top "& (clng(mypagesize) * clng(mypage)) &" "& tempfieldstring2 &" from (" & mysql2 & ") as queries "

Add

mysql2 = mysql2 & " where (RowNumber <= "& clng(mypage) * clng(mypagesize) &" AND RowNumber >= "& ((clng(mypage)-1) * clng(mypagesize)) + 1 &")"

Save and test.

33. shopfileio.asp

Locate around line 764: within routine sub DoSpecialFormating

Modify

value=ShopFormatCurrency(value,GetConfig("xdecimalpoint"))

to

if value > 0 then
value=ShopFormatCurrency(value,GetConfig("xdecimalpoint"))
else
value = ""
end if

Save and test.

34. shopblogslistings.asp

Locate around line 75: within routine sub Formatblogs

Modify

datedata = datedata & "<a href='#" & crs("blogsid") & "'><span class=""date"">" & formatdatetime(crs("cdateadded"), vbshortdate) & "</span> - <span class=""title"">" & translatelanguage(dbc, "blogs", "headline","blogsid", crs("blogsid"), crs("headline")) & "</span></a>" & "||"

to

if len(trim(request.ServerVariables("QUERY_STRING"))) > 0 then
datedata = datedata & "<a href='"& request.ServerVariables("SCRIPT_NAME") & "?" & request.ServerVariables("QUERY_STRING") & "#" & crs("blogsid") & "'><span class=""date"">" & formatdatetime(crs("cdateadded"), vbshortdate) & "</span> - <span class=""title"">" & translatelanguage(dbc, "blogs", "headline","blogsid", crs("blogsid"), crs("headline")) & "</span></a>" & "||"
else
datedata = datedata & "<a href='"& request.ServerVariables("SCRIPT_NAME") &"#" & crs("blogsid") & "'><span class=""date"">" & formatdatetime(crs("cdateadded"), vbshortdate) & "</span> - <span class=""title"">" & translatelanguage(dbc, "blogs", "headline","blogsid", crs("blogsid"), crs("headline")) & "</span></a>" & "||"
end if

Save and test.

35. shopnewslistings.asp

Locate around line 75: within routine sub FormatNews

Modify

datedata = datedata & "<a href='#" & crs("newsid") & "'><span class=""date"">" & formatdatetime(crs("cdateadded"), vbshortdate) & "</span> - <span class=""title"">" & translatelanguage(dbc, "news", "headline","newsid", crs("newsid"), crs("headline")) & "</span></a>" & "||"

to

if len(trim(request.ServerVariables("QUERY_STRING"))) > 0 then
datedata = datedata & "<a href='"& request.ServerVariables("SCRIPT_NAME") & "?" & request.ServerVariables("QUERY_STRING") & "#" & crs("newsid") & "'><span class=""date"">" & formatdatetime(crs("cdateadded"), vbshortdate) & "</span> - <span class=""title"">" & translatelanguage(dbc, "news", "headline","newsid", crs("newsid"), crs("headline")) & "</span></a>" & "||"
else
datedata = datedata & "<a href='"& request.ServerVariables("SCRIPT_NAME") &"#" & crs("newsid") & "'><span class=""date"">" & formatdatetime(crs("cdateadded"), vbshortdate) & "</span> - <span class=""title"">" & translatelanguage(dbc, "news", "headline","newsid", crs("newsid"), crs("headline")) & "</span></a>" & "||"
end if

Save and test.

36. admin/shopa_editblogs.asp

Locate around line 765: within routine sub ValidateData

Modify

sError = sError & GetLang("langcontentheader") & " " & getlang("LangCustRequired") & "<br />"

to

sError = sError & GetLang("langcontentbody") & " " & getlang("LangCustRequired") & "<br />"

Save and test.

37. admin/shopa_editnews.asp

Locate around line 765: within routine sub ValidateData

Modify

sError = sError & GetLang("langcontentheader") & " " & getlang("LangCustRequired") & "<br />"

to

sError = sError & GetLang("langcontentbody") & " " & getlang("LangCustRequired") & "<br />"

Save and test.

38. Access Database

Open Access Database

Locate mycompany table

Right click mycompany table, then choose Design View

Locate faxnumber field

Set Allow Zero Length to Yes

Save and test.

39. shop$db.asp

Locate around line 3573: within routine sub generatebaseurl

Replace sub generatebaseurl to

sub generatebaseurl
if lcase(request.ServerVariables("HTTPS")) = "on" then
if xssl <> "" then
htmlwrite "<base href="""& xssl &"/"" />"
else
if xmysite <> "" then
htmlwrite "<base href="""& xmysite &"/"" />"
else
htmlwrite "<base href=""https://"& request.ServerVariables("HTTP_HOST") & xmysite2 &"/"" />"
end if
end if
else
if xmysite <> "" then
htmlwrite "<base href="""& xmysite &"/"" />"
else
htmlwrite "<base href=""http://"& request.ServerVariables("HTTP_HOST") & xmysite2 &"/"" />"
end if
end if
end sub

Save and test.

40. MsSQL Database

Open MsSQL Database

Locate blogsreviews table

Change comment field type to TEXT type

Locate newsreviews table

Change comment field type to TEXT type

Save and test.

41. shopfileio.asp

Locate around line 360: within routine sub Substitute

Modify

workrecord = Newrecord

to

workrecord = replace(Newrecord,vbcrlf,"<br />")

Save and test.

42a. shopproductsubs.asp

Locate around line 2398: within routine sub NavigateFeaturedProducts

Modify

'strsql = "select *, p.cstock AS sumofnumitems from products p, prodcategories cc, categories c where "
'strsql = strsql & " cc.intCatalogId=p.CatalogId and cc.intcategoryid=c.categoryid and "

to

strsql = "select distinct p.catalogid,p.featuredflagorder, p.cstock AS sumofnumitems from products p, prodcategories cc, categories c where "
strsql = strsql & " cc.intCatalogId=p.CatalogId and cc.intcategoryid=c.categoryid and "

Locate around line 2400: within routine sub NavigateFeaturedProducts

Remove

strsql = "select *, p.cstock AS sumofnumitems from products p, categories c where "
strsql = strsql & " p.ccategory=c.categoryid and "

Save and test.

42b. shopnewproductsub.asp

Locate around line 76: within routine sub Generatesqlnewproducts

Modify

'sql = "select * from products p, prodcategories cc, categories c " & wherestr
'sql = sql & " and cc.intCatalogId=p.CatalogId and cc.intcategoryid=c.categoryid "

to

sql = "select distinct p.catalogid from products p, prodcategories cc, categories c " & wherestr
sql = sql & " and cc.intCatalogId=p.CatalogId and cc.intcategoryid=c.categoryid "

Locate around line 78: within routine sub Generatesqlnewproducts

Remove

sql = "select * from products p, categories c " & wherestr
sql = sql & " and c.categoryid=p.ccategory "

Save and test.

42c. shoprandomproducts.asp

Locate around line 174: within routine sub GenerateFrontpagesql

Modify

'sql = "select * from products p, prodcategories cc, categories c " & wherestr
'sql = sql & " and cc.intCatalogId=p.CatalogId and cc.intcategoryid=c.categoryid "

to

sql = "select distinct p.catalogid from products p, prodcategories cc, categories c " & wherestr
sql = sql & " and cc.intCatalogId=p.CatalogId and cc.intcategoryid=c.categoryid "

Locate around line 176: within routine sub GenerateFrontpagesql

Remove

sql = "select * from products p, categories c " & wherestr
sql = sql & " and c.categoryid=p.ccategory "

Save and test.

43. admin/shopa_generateseodynamicsubs.asp

Locate around line 10.

Below

dim createdirname

Add

dim directorylength
directorylength = 200

Locate around line 211: within routine sub generateseodynamiccategories

Modify

strDirToMake = strRootDir & "\" & FMTString2UrlDir(shortdirectoryname)

to

strDirToMake = strRootDir & "\" & left(FMTString2UrlDir(shortdirectoryname),directorylength)

Locate around line 220: within routine sub generateseodynamiccategories

Modify

strDirFull = strRootDir & strDirShort

to

strDirFull = strRootDir & left(strDirShort,directorylength)

Locate around line 287: within routine sub generateseodynamiccategoryhassub

Modify

strDirToMake = strRootDir & "\" & FMTString2UrlDir(shortdirectoryname)

to

strDirToMake = strRootDir & "\" & left(FMTString2UrlDir(shortdirectoryname),directorylength)

Locate around line 296: within routine sub generateseodynamiccategoryhassub

Modify

strDirFull = strRootDir & strDirShort

to

strDirFull = strRootDir & left(strDirShort,directorylength)

Locate around line 426: within routine sub generateseodynamiccategoryproducts

Modify

strDirToMake = strRootDir & "\" & FMTString2UrlDir(shortdirectoryname) & "\" & FMTString2UrlDir(shortdirectoryname2)

to

strDirToMake = strRootDir & "\" & left(FMTString2UrlDir(shortdirectoryname) & "\" & FMTString2UrlDir(shortdirectoryname2),directorylength)

Locate around line 435: within routine sub generateseodynamiccategoryproducts

Modify

strDirFull = strRootDir & strDirShort

to

strDirFull = strRootDir & left(strDirShort,directorylength)

Locate around line 520: within routine sub generateseodynamicnews

Modify

strDirToMake = strRootDir & "\" & FMTString2UrlDir(shortdirectoryname)

to

strDirToMake = strRootDir & "\" & left(FMTString2UrlDir(shortdirectoryname),directorylength)

Locate around line 529: within routine sub generateseodynamicnews

Modify

strDirFull = strRootDir & strDirShort

to

strDirFull = strRootDir & left(strDirShort,directorylength)

Locate around line 615: within routine sub generateseodynamicblogs

Modify

strDirToMake = strRootDir & "\" & FMTString2UrlDir(shortdirectoryname)

to

strDirToMake = strRootDir & "\" & left(FMTString2UrlDir(shortdirectoryname),directorylength)

Locate around line 624: within routine sub generateseodynamicblogs

Modify

strDirFull = strRootDir & strDirShort

to

strDirFull = strRootDir & left(strDirShort,directorylength)

Save and test.

44a. admin/seotemplates/blogs-contentid.asp

Locate around line 28.

Modify

defaultasppos = instr(lcase(currenturl),"/"& createdirname &"")

to

defaultasppos = instr(lcase(currenturl),"/"& lcase(createdirname) &"")

Save and test.

44b. admin/seotemplates/news-contentid.asp

Locate around line 28.

Modify

defaultasppos = instr(lcase(currenturl),"/"& createdirname &"")

to

defaultasppos = instr(lcase(currenturl),"/"& lcase(createdirname) &"")

Save and test.

44c. admin/seotemplates/products-categoryid-catalogid.asp

Locate around line 29.

Modify

defaultasppos = instr(lcase(currenturl),"/"& createdirname &"")

to

defaultasppos = instr(lcase(currenturl),"/"& lcase(createdirname) &"")

Save and test.

44d. admin/seotemplates/products-categoryid-hassub.asp

Locate around line 30.

Modify

defaultasppos = instr(lcase(currenturl),"/"& createdirname &"")

to

defaultasppos = instr(lcase(currenturl),"/"& lcase(createdirname) &"")

Save and test.

44e. admin/seotemplates/products-categoryid.asp

Locate around line 30.

Modify

defaultasppos = instr(lcase(currenturl),"/"& createdirname &"")

to

defaultasppos = instr(lcase(currenturl),"/"& lcase(createdirname) &"")

Save and test.

45. shopcartformatdesign.asp

Locate around line 86: within routine sub CartFormatProductTotal

Modify

CartResponseWrite CartSubTotalRowRight & ShopFormatCurrency(cartisubtotal,xxdecimalpoint) & CartTotalRowRightend

to

if getsess("CartCount") > 0 then
CartResponseWrite CartSubTotalRowRight & ShopFormatCurrency(cartisubtotal,xxdecimalpoint) & CartTotalRowRightend
else
if GetSess("Newcurrencysymbol")<>"" then
CartResponseWrite CartSubTotalRowRight & GetSess("Newcurrencysymbol") & "0.00" & CartTotalRowRightend
elseif GetConfig("XCurrencySymbol") <> "" then
CartResponseWrite CartSubTotalRowRight & "0.00" & CartTotalRowRightend
else
CartResponseWrite CartSubTotalRowRight & "$" & "0.00" & CartTotalRowRightend
end if
end if

Locate around line 121: within routine sub CartFormatTotal

Modify

if getsess("CartCount") = 0 then

to

if carttotal = 0 then

Save and test.

46. shoptellfriendpro.asp

Locate around line 77: within routine sub DisplayForm

Modify

response.write "<form name=""form1"" method=""post"" action=""shoptellfriendpro.asp?id="& id &""""

to

htmlwrite "<form name=""form1"" method=""post"" action=""shoptellfriendpro.asp?id="& id &""">"

Save and test.

47. shopcms.asp

Locate around line 133: within routine sub showcontents

Modify

HtmlWrite "<li><a href="""& newsrs("nurllink") &""">"& translatelanguage(dbc, "content", "message","contentid", newsrs("contentid"), newsrs("message")) &"</a></li>"

to

HtmlWrite "<li><a href="""& newsrs("nurllink") &""">"& translatelanguage(dbc, "content", "message","contentid", newsrs("contentid"), getmessage("content","contentid",newsrs("contentid"))) &"</a></li>"

Save and test.

48a. admin/admin$db.asp

Locate around line 3308: within routine function CleanChars

Remove

newchars=replace(newchars,"'","''")

Save and test.

48b. shop$db.asp

Locate around line 3356: within routine function CleanChars

Remove

newchars=replace(newchars,"'","''")

Save and test.

49. shop$db.asp

Locate around line 2947: within routine sub ShopButton

Below

htmlwrite "<input type=""image"" class=""imgbtn"" name=""" & tempname & """ id=""" & tempname & """ src=""" & buttonimage & """ />"

Add

htmlwrite "<input type=""hidden"" name=""" & tempname & """ id=""" & tempname & """ value=""" & buttontext & """ />"

Save and test.

50a. shop$db.asp

Locate around line 780: within function GetMaxPages

Replace Whole function GetMaxPages

to

function GetMaxPages (mysql,mypagesize)
if len(mysql) <= 0 then
GetMaxPages = 1
exit function
end if

dim mysql3,countrs,countpos,frompos,counttotal,maxpage,frompos2
dim tempsql
tempsql = mysql
frompos = instr(lcase(tempsql),"order by ")
if frompos > 0 then
tempsql = mid(tempsql,1,frompos - 1)
end if
tempsql = replace(tempsql,";","")
mysql3 = "select count(*) as reccnt from ("& tempsql &") as t "
Set countrs = Server.CreateObject("ADODB.Recordset")
countrs.open mysql3, dbc, adOpenDynamic, adLockOptimistic
if not countrs.eof then
counttotal = countrs("reccnt")
end if

if clng(counttotal) mod clng(mypagesize) = 0 then
maxpage = int(clng(counttotal) / clng(mypagesize))
else
maxpage = int(clng(counttotal) / clng(mypagesize)) + 1
end if
if maxpage <= 0 then maxpage = 1
GetMaxPages = maxpage
end function

Save and test.

50b. admin/admin$db.asp

Locate around line 752: within function GetMaxPages

Replace Whole function GetMaxPages

to

function GetMaxPages (mysql,mypagesize)
if len(mysql) <= 0 then
GetMaxPages = 1
exit function
end if

dim mysql3,countrs,countpos,frompos,counttotal,maxpage,frompos2
dim tempsql
tempsql = mysql
frompos = instr(lcase(tempsql),"order by ")
if frompos > 0 then
tempsql = mid(tempsql,1,frompos - 1)
end if
tempsql = replace(tempsql,";","")
mysql3 = "select count(*) as reccnt from ("& tempsql &") as t "
Set countrs = Server.CreateObject("ADODB.Recordset")
countrs.open mysql3, dbc, adOpenDynamic, adLockOptimistic
if not countrs.eof then
counttotal = countrs("reccnt")
end if

if clng(counttotal) mod clng(mypagesize) = 0 then
maxpage = int(clng(counttotal) / clng(mypagesize))
else
maxpage = int(clng(counttotal) / clng(mypagesize)) + 1
end if
if maxpage <= 0 then maxpage = 1
GetMaxPages = maxpage
end function

Save and test.

51. admin/shopa_generateseodynamicsubs.asp

Locate around line 286: within routine sub generateseodynamiccategoryhassub

Modify

shortdirectoryname = categoryid & "-" & categoryname
strDirToMake = strRootDir & "\" & left(FMTString2UrlDir(shortdirectoryname),directorylength)

to

shortdirectoryname = categoryid & "-" & FMTString2UrlDir(categoryname)
strDirToMake = strRootDir & "\" & left(shortdirectoryname,directorylength)

Locate around line 295: within routine sub generateseodynamiccategoryhassub

Modify

strDirShort = "\" & FMTString2UrlDir(shortdirectoryname)

to

strDirShort = "\" & shortdirectoryname

Locate around line 390: within routine sub generateseodynamiccategoryproducts

Modify

shortdirectoryname = categoryid & "-" & categoryname
strDirToMake = strRootDir & "\" & FMTString2UrlDir(shortdirectoryname)

to

shortdirectoryname = categoryid & "-" & FMTString2UrlDir(categoryname)
strDirToMake = strRootDir & "\" & shortdirectoryname

Locate around line 411: within routine sub generateseodynamiccategoryproducts

Modify

strDirShort = "\" & FMTString2UrlDir(shortdirectoryname)

to

strDirShort = "\" & shortdirectoryname

Locate around line 425: within routine sub generateseodynamiccategoryproducts

Modify

shortdirectoryname2 = catalogid & "-" & productfield
strDirToMake = strRootDir & "\" & left(FMTString2UrlDir(shortdirectoryname) & "\" & FMTString2UrlDir(shortdirectoryname2),directorylength)

to

shortdirectoryname2 = catalogid & "-" & FMTString2UrlDir(productfield)
strDirToMake = strRootDir & "\" & left(shortdirectoryname & "\" & shortdirectoryname2,directorylength)

Locate around line 434: within routine sub generateseodynamiccategoryproducts

Modify

strDirShort = "\" & FMTString2UrlDir(shortdirectoryname) & "\" & FMTString2UrlDir(shortdirectoryname2)

to

strDirShort = "\" & shortdirectoryname & "\" & shortdirectoryname2

Locate around line 519: within routine sub generateseodynamicnews

Modify

shortdirectoryname = messagetype
strDirToMake = strRootDir & "\" & left(FMTString2UrlDir(shortdirectoryname),directorylength)

to

shortdirectoryname = FMTString2UrlDir(messagetype)
strDirToMake = strRootDir & "\" & left(shortdirectoryname,directorylength)

Locate around line 528: within routine sub generateseodynamicnews

Modify

strDirShort = "\" & FMTString2UrlDir(shortdirectoryname)

to

strDirShort = "\" & shortdirectoryname

Locate around line 614: within routine sub generateseodynamicblogs

Modify

shortdirectoryname = messagetype
strDirToMake = strRootDir & "\" & left(FMTString2UrlDir(shortdirectoryname),directorylength)

to

shortdirectoryname = FMTString2UrlDir(messagetype)
strDirToMake = strRootDir & "\" & left(shortdirectoryname,directorylength)

Locate around line 623: within routine sub generateseodynamicblogs

Modify

strDirShort = "\" & FMTString2UrlDir(shortdirectoryname)

to

strDirShort = "\" & shortdirectoryname

Save and test.

52. shopseosubs.asp

Locate around line 9.

Above

'assign blogsmessagetype

Add

dim directorylength
directorylength = 200

Locate around line 117: within routine sub genseocategoryproductlink

Modify

passlink = "<a href="""& getconfig("xSEODynamicCatProductDirectory") &"/"& passid &"-"& passcatdescription &"/"& savesessionchar &"" & addwebsesslink & """>" & tempdisname & "</a>"

to

passlink = "<a href="""& getconfig("xSEODynamicCatProductDirectory") &"/"& left(passid &"-"& passcatdescription,directorylength) &"/"& savesessionchar &"" & addwebsesslink & """>" & tempdisname & "</a>"

Locate around line 119: within routine sub genseocategoryproductlink

Modify

passlink = "<a href="""& getconfig("xSEODynamicCatProductDirectory") &"/"& passid &"-"& passcatdescription &"/"& savesessionchar &"" & addwebsesslink & """>" & tempdisname & "...</a>"

to

passlink = "<a href="""& getconfig("xSEODynamicCatProductDirectory") &"/"& left(passid &"-"& passcatdescription,directorylength) &"/"& savesessionchar &"" & addwebsesslink & """>" & tempdisname & "...</a>"

Locate around line 122: within routine sub genseocategoryproductlink

Modify

passlink = ""& getconfig("xSEODynamicCatProductDirectory") &"/"& passid &"-"& passcatdescription &"/"

to

passlink = ""& getconfig("xSEODynamicCatProductDirectory") &"/"& left(passid &"-"& passcatdescription,directorylength) &"/"

Locate around line 140: within routine sub genseoproductlink

Modify

passlink = "<a href="""& getconfig("xSEODynamicCatProductDirectory") &"/"& categoryid &"-"& categoryname &"/"& passid &"-"& productname &"/"">" & tempdisname & "</a>"

to

passlink = "<a href="""& getconfig("xSEODynamicCatProductDirectory") &"/"& categoryid &"-"& categoryname &"/"& left(passid &"-"& productname,directorylength) &"/"">" & tempdisname & "</a>"

Locate around line 142: within routine sub genseoproductlink

Modify

passlink = ""& getconfig("xSEODynamicCatProductDirectory") &"/"& categoryid &"-"& categoryname &"/"& passid &"-"& productname &"/"

to

passlink = ""& getconfig("xSEODynamicCatProductDirectory") &"/"& categoryid &"-"& categoryname &"/"& left(passid &"-"& productname,directorylength) &"/"

Locate around line 213: within routine sub genseoblogslink

Modify

passlink = "<a "& classstr &" href="""& getconfig("xSEODynamicCatBlogDirectory") &"/"& passmessagetype &"/"">" & tempdisname & "</a>"

to

passlink = "<a "& classstr &" href="""& getconfig("xSEODynamicCatBlogDirectory") &"/"& left(passmessagetype,directorylength) &"/"">" & tempdisname & "</a>"

Locate around line 215: within routine sub genseoblogslink

Modify

passlink = ""& getconfig("xSEODynamicCatBlogDirectory") &"/"& passmessagetype &"/"

to

passlink = ""& getconfig("xSEODynamicCatBlogDirectory") &"/"& left(passmessagetype,directorylength) &"/"

Locate around line 228: within routine sub genseonewslink

Modify

passlink = "<a "& classstr &" href="""& getconfig("xSEODynamicCatNewsDirectory") &"/"& passmessagetype &"/"">" & tempdisname & "</a>"

to

passlink = "<a "& classstr &" href="""& getconfig("xSEODynamicCatNewsDirectory") &"/"& left(passmessagetype,directorylength) &"/"">" & tempdisname & "</a>"

Locate around line 230: within routine sub genseonewslink

Modify

passlink = ""& getconfig("xSEODynamicCatNewsDirectory") &"/"& passmessagetype &"/"

to

passlink = ""& getconfig("xSEODynamicCatNewsDirectory") &"/"& left(passmessagetype,directorylength) &"/"

Save and test.

53. admin/shopa_generateseodynamicsubs.asp

Locate around line 273: within routine sub generateseodynamiccategoryhassub

Modify

sqlstr = "select * from categories where hassubcategory = 'Yes' order by categoryid asc"

to

sqlstr = "select * from categories order by categoryid asc"

Locate around line 284: within routine sub generateseodynamiccategoryhassub

Modify

strRedirectTemplate1 = Server.MapPath("seotemplates/products-categoryid-hassub.asp")

to

if trim(hassubflag) = "Yes" then
strRedirectTemplate1 = Server.MapPath("seotemplates/products-categoryid-hassub.asp")
else
strRedirectTemplate1 = Server.MapPath("seotemplates/products-categoryid.asp")
end if

Save and test.

54. admin/shopa_googleproductfeed.asp

Locate around line 267: within routine sub getheadertitle

Modify

if (tconfig_eanfieldname<>"" and IsNull(tconfig_eanfieldname)=false) then

to

if (gpfeanfieldname<>"" and IsNull(gpfeanfieldname)=false) then

Save and test.

55a. shop$db.asp

Locate around line 789: within routine function GetMaxPages

Modify

frompos = instr(mysql3,"order by ")

to

frompos = instr(lcase(mysql3),"order by ")

Save and test.

55b. admin/admin$db.asp

Locate around line 761: within routine function GetMaxPages

Modify

frompos = instr(mysql3,"order by ")

to

frompos = instr(lcase(mysql3),"order by ")

Save and test.

56a. admin/shopa_generateseodynamicsubs.asp

Locate around line 1345: within routine Public Function FMTString2UrlDir

Below

strValue = Replace(strValue,":","-")

Add

strValue = Replace(strValue,"*","")
strValue = Replace(strValue,"!","")
strValue = Replace(strValue,"@","")
strValue = Replace(strValue,"#","")
strValue = Replace(strValue,"$","")
strValue = Replace(strValue,"%","")
strValue = Replace(strValue,"˜","")

Save and test.

56b. shopseosubs2.asp

Locate around line 695: within routine Public Function FMTString2UrlDir

Below

strValue = Replace(strValue,":","-")

Add

strValue = Replace(strValue,"*","")
strValue = Replace(strValue,"!","")
strValue = Replace(strValue,"@","")
strValue = Replace(strValue,"#","")
strValue = Replace(strValue,"$","")
strValue = Replace(strValue,"%","")
strValue = Replace(strValue,"˜","")

Save and test.

57a. shopdisplaycategories.asp

Locate around line 208: within routine sub AddImage

Modify

dim mylink
if getconfig("xSEODynamicEnable") = "Yes" then
genseocategoryproductlink mylink,id,iname,iname,"","No"

to

dim mylink
dim tempname
tempname = Iname
if getconfig("xSEODynamicEnable") = "Yes" then
genseocategoryproductlink mylink,id,tempname,tempname,"","No"

Save and test.

57b. shopdisplayproducts.asp

Locate around line 115: within routine sub ProcessFirst

Modify

getseocat_name CATEGORY,CAT_ID

to

getseocat_name CATEGORY

Save and test.

57c. shopseosubs.asp

Locate around line 73: within routine sub getseocat_name

Modify

sub getseocat_name (CATEGORY)
if getconfig("xSEODynamicEnable") <> "Yes" then exit sub

dim tempstr
tempstr = CATEGORY
if tempstr = "" then
if getsess("seocategoryname") <> "" then
tempstr = getsess("seocategoryname")
end if
end if
setsess "seocategoryname",""
CATEGORY = tempstr
end sub

to

sub getseocat_name (CATEGORY, cat_id)
if getconfig("xSEODynamicEnable") <> "Yes" then exit sub

dim tempstr
tempstr = getseocategoryname(cat_id)
setsess "seocategoryname",""
CATEGORY = tempstr
end sub

Save and test.

58. shop$db.asp

Locate around line 263.

Modify

SetSess "convertBackBackpage",GetSess("convertBackpage")
SetSess "convertBackpage",GetSess("convertCurrentpage")

to

SetSess "convertBackBackpage",GetSess("convertBackpage")
if instr(GetSess("convertCurrentpage"),"shoptellfriendpro.asp") = 0 and instr(GetSess("convertCurrentpage"),"shopreviewspro.asp") = 0 and instr(GetSess("convertCurrentpage"),"shopajaxshippingzipcodecountry.asp") = 0 then
SetSess "convertBackpage",GetSess("convertCurrentpage")
end if

Save and test.

59. shopproductfeaturesgenerate.asp

Locate around line 405, within routine sub GenerateSelectList.

Below

images = ""

Add

sSelect = ""

Locate around line 408, within routine sub GenerateSelectList.

Modify

if not isnull(strfeatureOther) then

to

if not isnull(strfeatureOther) and strfeatureOther <> "" then

Save and test.

60. shopdisplaycategories.asp

Locate around line 131, within routine sub FormatCategoryTemplate.

Modify

response.write CatColumn

to

htmlwrite "<td class=""ac vt"" width="""& (100 / yCatMaxColumns) &"%"">"

Locate around line 171, within routine sub FormatCategory.

Modify

response.write CatColumn

to

htmlwrite "<td class=""ac vt"" width="""& (100 / yCatMaxColumns) &"%"">"

Save and test.

61a. admin/shopa_generateseodynamicsubs.asp

Locate around line 1331: within routine Public Function FMTString2UrlDir

Below

Dim strOutput

Add

if instr(strValue,chr(13)) > 0 then
strvalue = mid(strValue,1,instr(strValue,chr(13))-1)
end if

Save and test.

61b. shopseosubs2.asp

Locate around line 680: within routine Public Function FMTString2UrlDir

Below

Dim strOutput

Add

if instr(strValue,chr(13)) > 0 then
strvalue = mid(strValue,1,instr(strValue,chr(13))-1)
end if

Save and test.

62. shopaddtocart.asp

Locate around line 164: within routine sub ProcessNewAdd

Remove

'6.50 - precautionary security fix
ReturnURL=CleanChars(request("ReturnURL"))
if ReturnURL<>"" then
ResponseRedirect ReturnURL
end if

Locate around line 234: within routine sub DisplayForm

Below

ReInitSess

Add

'6.50 - precautionary security fix
ReturnURL=CleanChars(request("ReturnURL"))
if ReturnURL<>"" then
ResponseRedirect ReturnURL
end if

Save and test.

63a. shopdisplayproducts.asp

Locate around line 248: within routine sub DisplayProducts

Modify

url = "shopdisplayproducts.asp?page=" & mypage

to

url = "shopdisplayproducts.asp?page=" & mypage & "&id="& CAT_ID &"&cat="& CATEGORY &""

Save and test.

63b. shopproductformat.asp

Locate around line 53: within routine sub ProductFormatRow

Modify

url = "shopdisplayproducts.asp?page=" & mypage

to

url = "shopdisplayproducts.asp?page=" & mypage & "&id="& CAT_ID &"&cat="& CATEGORY &""

Save and test.

63c. shopproductformat_template.asp

Locate around line 34: within routine sub HtmlProductFormatRow

Modify

url = "shopdisplayproducts.asp?page=" & mypage

to

url = "shopdisplayproducts.asp?page=" & mypage & "&id="& CAT_ID &"&cat="& CATEGORY &""

Save and test.

64a. admin/shopa_generateseodynamicsubs.asp

Locate around line 1369: within routine Public Function FMTString2UrlDir

Remove

strValue = Replace(strValue,"&","")

Locate around line 1371: within routine Public Function FMTString2UrlDir

Above

strOutput = strValue

Add

strValue = Replace(strValue,"&amp;","&")

Save and test.

64b. shopseosubs2.asp

Locate around line 704: within routine Public Function FMTString2UrlDir

Remove

strValue = Replace(strValue,"&","")

Locate around line 706: within routine Public Function FMTString2UrlDir

Above

strOutput = strValue

Add

strValue = Replace(strValue,"&amp;","&")

Save and test.

65. shopproductcreatesql.asp

Locate around line 305: within routine sub GetProductFields

Modify

sortfields = replace(lcase(sortfields), ",CatalogId", "")
sortfields = replace(lcase(sortfields), "CatalogId,", "")
sortfields = replace(lcase(sortfields), "CatalogId", "")

to

sortfields = replace(lcase(sortfields), ",catalogid", "")
sortfields = replace(lcase(sortfields), "catalogid,", "")
sortfields = replace(lcase(sortfields), "catalogid", "")

Save and test.

66. shoprandomproducts.asp

Locate around line 167: within routine sub GenerateFrontpagesql

Replace whole sub GenerateFrontpagesql

to

sub GenerateFrontpagesql (selectfield, selectvalue, sql,procategorylist)
dim wherestr, sortstr
sortstr=getconfig("xsortproducts")
wherestr="where hide=0"
If selectfield<>"" and selectvalue<>"" then
wherestr=wherestr & " and " & selectfield & "='" & selectvalue & "'"
end if
sql="select * from products " & wherestr
If getconfig("xselectproductsbylanguage")="Yes" and getsess("language")<>"" then
sql=sql & " and (clanguage='" & getsess("language") & "'"
sql=sql & " or clanguage is null)"
end if
'inventory
sql = sql & " AND (highercatalogid is null)"

'VP-ASP 6.5.1 - stock control
if getconfig("xstocklow")<>"" then
lngcstock= clng(getconfig("xstocklow"))
sql = sql & " and cstock> " & lngcstock
end if

'700 - Customer Groups - Matching Custormer match
sql = sql & GenerateCustomerMatchSQL ("customermatch","excustomermatch","loggedin","and")

'700 - home page manager - random products
if len(procategorylist) > 0 then
sql = sql & " AND (ccategory in ("& procategorylist &"))"
end if

If sortstr<>"" then
sql=sql & " order by " & sortstr
end if
If getconfig("xdebug")="Yes" then
debugwrite sql
end if
end sub

Save and test.

67a. shopcms.asp

Locate around line 1050: within routine sub Handle_BlogsLink

Modify

response.write mylink

to

value = mylink

Save and test.

67b. templates\yourtemplate\tmp_blogs.htm

Locate around line 6.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatblogslink]
">
<!-- end -->
[formatdate cdateadded]
-
[translate headline]
</a>

to

<a href="[formatblogslink]">[formatdate cdateadded] - [translate headline]</a>

Save and test.

67c. shopfileo.asp

Locate around line 701: within routine sub Handle_shopexdlink

Modify

response.write mylink

to

ivalue = mylink

Save and test.

67d. templates\yourtemplate\tmp_featuredproducts.htm

Locate around line 4.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
" class="image">
<!-- end -->

$ <img src="[cimageurl]" alt="" />
</a>

to

<a href="[formatshopexdlink] " class="image">
$ <img src="[cimageurl]" alt="" />
</a>

Locate around line 10.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
" class="btn-details">Details</a>
<!-- end -->

to

<a href="[formatshopexdlink] " class="btn-details">Details</a>

Save and test.

67e. templates\yourtemplate\tmp_frontpage.htm

Locate around line 2.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
[add_websesslink]">
<!-- end -->
<img src="[cimageurl]" border="0" alt="[translate cname]" /></a>

to

<a href="[formatshopexdlink][add_websesslink]"><img src="[cimageurl]" border="0" alt="[translate cname]" /></a>

Locate around line 9.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
[add_websesslink]" class="btn-details">
<!-- end -->
[GetLang langproductextendeddescription]</a>

to

<a href="[formatshopexdlink][add_websesslink]" class="btn-details">[GetLang langproductextendeddescription]</a>

Save and test.

67f. templates\yourtemplate\tmp_newproductsfrontpage.htm

Locate around line 14.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
[add_websesslink]">
<!-- end -->
<img src="[cimageurl]" border="0" alt="[translate cname]" /></a>

to

<a href="[formatshopexdlink][add_websesslink]"><img src="[cimageurl]" border="0" alt="[translate cname]" /></a>

Locate around line 35.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
[add_websesslink]" class="btn-details">
<!-- end -->
[GetLang langproductextendeddescription]</a>

to

<a href="[formatshopexdlink][add_websesslink]" class="btn-details">[GetLang langproductextendeddescription]</a>

Save and test.

67g. templates\yourtemplate\tmp_productthumbnail.htm

Locate around line 2.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
<img border="0" src="[extendedimage]"></a>

to

<a href="[formatshopexdlink][add_websesslink]"><img border="0" src="[extendedimage]" alt="" /></a>

Locate around line 6.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
Click here</a>

to

<a href="[formatshopexdlink][add_websesslink]">Click here</a>

Save and test.

67h. templates\yourtemplate\tmp_proexdalsobought.htm

Locate around line 19.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
<!-- end -->
<img src="[cimageurl]" width='60' height='60' border='0'></a></td->

to

<a href="[formatshopexdlink][add_websesslink]"><img src="[cimageurl]" width='60' height='60' border='0' /></a>
</td->

Locate around line 26.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
<!-- end -->
click to see more</a></strong></p><td>

to

<a href="[formatshopexdlink][add_websesslink]">click to see more</a>
</strong></p><td>

Save and test.

67i. templates\yourtemplate\tmp_proexdalsoboughtinvent.htm

Locate around line 20.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
<!-- end -->
<img src="[cimageurl]" width='60' height='60' border='0'></a>

to

<a href="[formatshopexdlink][add_websesslink]"><img src="[cimageurl]" width='60' height='60' border='0' /></a>

Locate around line 27.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
<!-- end -->
click to see more</a></strong></p>

to

<a href="[formatshopexdlink][add_websesslink]">click to see more</a>
</strong></p>

Save and test.

67j. templates\yourtemplate\tmp_proexdalsoboughtinventnoimage.htm

Locate around line 22.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">click to see more</a>
<!-- end -->

to

<a href="[formatshopexdlink][add_websesslink]">click to see more</a>

Save and test.

67k. templates\yourtemplate\tmp_proexdalsoboughtnoimage.htm

Locate around line 16.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
[translate cname]</a> - </span>

to

<a href="[formatshopexdlink][add_websesslink]">[translate cname]</a> -
</span>

Locate around line 25.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
click to see more</a>

to

<a href="[formatshopexdlink][add_websesslink]">click to see more</a>

Save and test.

67l. templates\yourtemplate\tmp_proexdcroselling.htm

Locate around line 20.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
<img src="[cimageurl]" width='60' height='60' border='0'></a>

to

<a href="[formatshopexdlink][add_websesslink]"><img src="[cimageurl]" width='60' height='60' border='0'></a>

Locate around line 29.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
click to see more</a></strong></p->

to

<a href="[formatshopexdlink][add_websesslink]">click to see more</a>
</strong></p->

Save and test.

67m. templates\yourtemplate\tmp_proexdcrosellinginvent.htm

Locate around line 20.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
<img src="[cimageurl]" width='60' height='60' border='0'></a>

to

<a href="[formatshopexdlink][add_websesslink]"><img src="[cimageurl]" width='60' height='60' border='0'></a>

Locate around line 29.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
click to see more</a></strong></p->

to

<a href="[formatshopexdlink][add_websesslink]">click to see more</a>
</strong></p->

Save and test.

67n. templates\yourtemplate\tmp_proexdcrosellinginventnoimage.htm

Locate around line 23.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
"> <!-- end -->
click to see more</a></strong></p></td>

to

<a href="[formatshopexdlink][add_websesslink]">click to see more</a>
</strong></p></td>

Save and test.

67o. templates\yourtemplate\tmp_proexdcrosellingnoimage.htm

Locate around line 16.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
[translate cname]</a> - </span>

to

<a href="[formatshopexdlink][add_websesslink]">[translate cname]</a> -
</span>

Locate around line 25.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
click to see more</a></strong></p></td>

to

<a href="[formatshopexdlink][add_websesslink]">click to see more</a>
</strong></p></td>

Save and test.

67p. templates\yourtemplate\tmp_proexddisplay.htm

Locate around line 18.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
<img src="[cimageurl]" width='60' height='60' border='0'></a>

to

<a href="[formatshopexdlink][add_websesslink]"><img src="[cimageurl]" width='60' height='60' border='0'></a>

Locate around line 22.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
[translate cname]</a></span>

to

<a href="[formatshopexdlink][add_websesslink]">[translate cname]</a>
</span>

Locate around line 29.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
click to see more</a></strong></p>

to

<a href="[formatshopexdlink][add_websesslink]">click to see more</a>
</strong></p>

Save and test.

67q. templates\yourtemplate\tmp_proexddisplayinvent.htm

Locate around line 18.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
<img src="[cimageurl]" width='60' height='60' border='0'></a>

to

<a href="[formatshopexdlink][add_websesslink]"><img src="[cimageurl]" width='60' height='60' border='0'></a>

Locate around line 22.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
[translate cname]</a></span>

to

<a href="[formatshopexdlink][add_websesslink]">[translate cname]</a>
</span>

Locate around line 27.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
click to see more</a></strong></p>

to

<a href="[formatshopexdlink][add_websesslink]">click to see more</a>
</strong></p>

Save and test.

67r. templates\yourtemplate\tmp_proexdprocat.htm

Locate around line 19.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
<img src="[cimageurl]" width='60' height='60' border='0'></a>

to

<a href="[formatshopexdlink][add_websesslink]"><img src="[cimageurl]" width='60' height='60' border='0'></a>

Locate around line 27.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
click to see more</a></strong></p>

to

<a href="[formatshopexdlink][add_websesslink]">click to see more</a>
</strong></p>

Save and test.

67s. templates\yourtemplate\tmp_proexdprocatinvent.htm

Locate around line 19.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
<img src="[cimageurl]" width='60' height='60' border='0'></a>

to

<a href="[formatshopexdlink][add_websesslink]"><img src="[cimageurl]" width='60' height='60' border='0'></a>

Locate around line 25.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
click to see more</a></strong></p>

to

<a href="[formatshopexdlink][add_websesslink]">click to see more</a>
</strong></p>

Save and test.

67t. templates\yourtemplate\tmp_proexdprocatinventnoimage.htm

Locate around line 15.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
[translate cname]</a></span>

to

<a href="[formatshopexdlink][add_websesslink]">[translate cname]</a>
</span>

Locate around line 21.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
click to see more</a></strong></p></td>

to

<a href="[formatshopexdlink][add_websesslink]">click to see more</a>
</strong></p></td>

Save and test.

67u. templates\yourtemplate\tmp_proexdprocatnoimage.htm

Locate around line 23.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
">
<!-- end -->
click to see more</a></strong></p></td>

to

<a href="[formatshopexdlink][add_websesslink]">click to see more</a>
</strong></p></td>

Save and test.

67v. templates\yourtemplate\tmp_subproductformat.htm

Locate around line 25.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
[add_websesslink]">
<!-- end -->
<img border='0' src='[cimageurl]' alt='[cname]' /></a></td>

to

<a href="[formatshopexdlink][add_websesslink]"><img border='0' src='[cimageurl]' alt='[cname]' /></a>
</td>

Locate around line 40.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
[add_websesslink]">
<!-- end -->
click to see more</a></strong></p></td>

to

<a href="[formatshopexdlink][add_websesslink]">click to see more</a></strong></p>
</td>

Save and test.

67w. templates\yourtemplate\tmp_topsellers.htm

Locate around line 4.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
" class="image">
<!-- end -->

to

<a href="[formatshopexdlink][add_websesslink]" class="image">

Locate around line 11.

Modify

<!-- The following link must be remain in this format : start -->
<a href="
[formatshopexdlink]
" class="btn-details">Details</a>
<!-- end -->

to

<a href="[formatshopexdlink][add_websesslink]" class="btn-details">Details</a>

Save and test.

68. shopproductcreatesql.asp

Locate around line 359: within routine sub AddSQL

Below

SQL = SQL & " p." & strname & "<=" & strvalue

Add

SQL = SQL & " and p." & strname & "<> 0"

Save and test.

69a. admin/adminheaders.asp

Locate around line 2161: within private function readfile

Above

if instr(str_path,":") = 0 then str_path = server.mappath(str_path)

Add

str_path = replace(str_path,"//","/")
str_path = replace(str_path,"\\","\")

Save and test.

69b. shopheaders.asp

Locate around line 1147: within private function readfile

Above

if instr(str_path,":") = 0 then str_path = server.mappath(str_path)

Add

str_path = replace(str_path,"//","/")
str_path = replace(str_path,"\\","\")

Save and test.

70a. shop$db.asp

Locate around line 789: within function GetMaxPages

Modify

frompos = instr(mysql,"from ")
mysql3 = "select count(*) as reccnt " & mid(mysql,frompos,len(mysql) - frompos + 1)
frompos = instr(lcase(mysql3),"order by ")
if frompos > 0 then
mysql3 = mid(mysql3,1,frompos - 1)
end if

to

frompos = instr(lcase(mysql),"order by ")
if frompos > 0 then
mysql = mid(mysql,1,frompos - 1)
end if
mysql = replace(mysql,";","")
mysql3 = "select count(*) as reccnt from ("& mysql &") as t "

Save and test.

70b. admin/admin$db.asp

Locate around line 759: within function GetMaxPages

Modify

frompos = instr(mysql,"from ")
mysql3 = "select count(*) as reccnt " & mid(mysql,frompos,len(mysql) - frompos + 1)
frompos = instr(lcase(mysql3),"order by ")
if frompos > 0 then
mysql3 = mid(mysql3,1,frompos - 1)
end if

to

frompos = instr(lcase(mysql),"order by ")
if frompos > 0 then
mysql = mid(mysql,1,frompos - 1)
end if
mysql = replace(mysql,";","")
mysql3 = "select count(*) as reccnt from ("& mysql &") as t "

Save and test.

71. admin/shopa_editdisplay.asp

Locate around line 305: within sub GenerateSQLEditDisplay

Modify

if trim(ucase(request("Selectioncritereontext"))) <> trim(ucase(session("sqlquery"))) then

to

if instr(trim(ucase(request("Selectioncritereontext"))),trim(ucase(session("sqlquery")))) <= 0 then

Save and test.

72a. shop$db.asp

Locate around line 1515: within sub CheckValidLogin

Above

if GetConfig("xshopclosed")="Yes" then

Add

if InStr(1,Request.ServerVariables("SCRIPT_NAME"),"shoperror.asp",1) Then
exit sub
end if

Save and test.

72b. admin/admin$db.asp

Locate around line 1444: within sub CheckValidLogin

Above

if GetConfig("xshopclosed")="Yes" then

Add

if InStr(1,Request.ServerVariables("SCRIPT_NAME"),"shoperror.asp",1) Then
exit sub
end if

Save and test.

73. shopproductformat.asp

Locate around line 383: within sub GenerateImage

Below

if GetConfig("XextendedPopup") = "Yes" then

Add

%>
<script language="JavaScript" type='text/javascript'>
<!-- Begin
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'width=550,height=400,menubar=no,toolbar=no,location=no,status=no,directories=no,copyhistory=no,resizable=yes,scrollbars=yes');");
}
// End -->
</script>
<%

Locate around line 397: within sub GenerateImage

Modify

<p class="ac"><a href="#" onClick="window.open('<%=strDescURL%>','','width=550,height=400,menubar=no,toolbar=no,location=no,status=no,directories=no,copyhistory=no,resizable=yes,scrollbars=yes')"><img src="<%=strcimageURL%>" alt="<%=productname%>" border="0" /></a><br />
<a href="#" onClick="window.open('<%=strDescURL%>','','width=550,height=400,menubar=no,toolbar=no,location=no,status=no,directories=no,copyhistory=no,resizable=yes,scrollbars=yes')"><%=GetLang("langProductClick")%></a></p>

to

<p class="ac"><a href="javascript:popUp('<%=xmysite2 & "/" & strDescURL%>')"><img src="<%=strcimageURL%>" alt="<%=productname%>" border="0" /></a><br />
<a href="javascript:popUp('<%=xmysite2 & "/" & strDescURL%>')"><%=GetLang("langProductClick")%></a></p>

Locate around line 402: within sub GenerateImage

Modify

<p class="ac"><a href="#" onClick="window.open('<%=strDescURL%>','','width=550,height=400,menubar=no,toolbar=no,location=no,status=no,directories=no,copyhistory=no,resizable=yes,scrollbars=yes')"><img src="<%=strcimageURL%>" alt="<%=productname%>" border="0" /></a><br />
<a href="#" onClick="window.open('<%=strDescURL%>','','width=550,height=400,menubar=no,toolbar=no,location=no,status=no,directories=no,copyhistory=no,resizable=yes,scrollbars=yes')"><img border="0" src="<%=buttonimage%>" alt="<%=productname%>" border="0" /></a></p>

to

<p class="ac"><a href="javascript:popUp('<%=xmysite2 & "/" & strDescURL%>')"><img src="<%=strcimageURL%>" alt="<%=productname%>" border="0" /></a><br />
<a href="javascript:popUp('<%=xmysite2 & "/" & strDescURL%>')"><img border="0" src="<%=buttonimage%>" alt="<%=productname%>" border="0" /></a></p>

Locate around line 459: within sub GenerateNoImage

Below

if GetConfig("XextendedPopup") = "Yes" then

Add

%>
<script language="JavaScript" type='text/javascript'>
<!-- Begin
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'width=550,height=400,menubar=no,toolbar=no,location=no,status=no,directories=no,copyhistory=no,resizable=yes,scrollbars=yes');");
}
// End -->
</script>
<%

Locate around line 472: within sub GenerateImage

Modify

<a href="#" onClick="window.open('<%=strDescURL%>','','width=550,height=400,menubar=no,toolbar=no,location=no,status=no,directories=no,copyhistory=no,resizable=yes,scrollbars=yes')"><img src="<%=GetConfig("xnoimage")%>" alt="<%=productname%>" /></a><br />

to

<a href="javascript:popUp('<%=xmysite2 & "/" & strDescURL%>')"><img src="<%=GetConfig("xnoimage")%>" alt="<%=productname%>" /></a><br />

Save and test.

74. admin/admin$db.asp

Locate around line 1431: within sub CheckValidLogin

Remove

if GetConfig("xlogonrequired")="Yes" then
if GetSess("Login")="" then
if instr(lcase(request.ServerVariables("SCRIPT_NAME")),"shoploginforce.asp") <= 0 then
if instr(lcase(request.ServerVariables("SCRIPT_NAME")),"shopcontent.asp") <= 0 then
if instr(lcase(request.ServerVariables("SCRIPT_NAME")),"shopblogs") <= 0 then
if instr(lcase(request.ServerVariables("SCRIPT_NAME")),"shopnews") <= 0 then
SetSess "CurrentURL", "shoploginforce.asp"
ResponseRedirect getactualfileslocation(request.ServerVariables("SCRIPT_NAME"), "shoploginforce.asp", "", "", "no")
end if
end if
end if
end if
end if
end if

Save and test.

75a. admin/admin$db.asp

Locate around line 17.

Above

session.codepage=1252

Add

setsess "inadminflag","Yes"

Save and test.

75b. shopupsincludes.asp

Locate around line 1.

Remove

<!--#include file="shophash.asp"-->

Locate around line 8.

Above

const upshashkey = "oiYhaTdaDa"

Add

if getsess("inadminflag") <> "Yes" then
%>
<!-- #include file="shophash.asp"-->
<%
end if
setsess "inadminflag",""

Save and test.

75c. shopformatorder.asp

Locate around line 1.

Remove

<!--#include file="shophash.asp"-->

Locate around line 10.

Above

const xDisplayorderfields=""

Add

if getsess("inadminflag") <> "Yes" then
%>
<!-- #include file="shophash.asp"-->
<%
end if
setsess "inadminflag",""

Save and test.

76. shopnewproductsub.asp

Locate around line 76: within routine sub Generatesqlnewproducts.

Modify

sql = "select distinct p.catalogid from products p, prodcategories cc, categories c " & wherestr

to

sql = "select distinct p.catalogid,p.cdateadded from products p, prodcategories cc, categories c " & wherestr

Locate around line 109: within routine sub Generatesqlnewproducts.

Above

end sub

Add

dim rs,plist
plist = ""
set rs = Server.createobject("ADODB.Recordset")
rs.open sql, dbc, 3, 3
do while not rs.eof
plist = plist & rs("catalogid") & ","
rs.movenext
loop
closerecordset rs
if plist = "" then
sql = ""
exit sub
end if
plist = mid(plist,1,len(plist)-1)
sql = "select * from products p where p.CatalogId In (" & plist & ")"
if sortstr<>"" then
sql = sql & " order by " & sortstr
end if

Save and test.

77. admin/shopa_featureedit.asp

Locate around line 791: within routine sub WriteFeatureRow.

Modify

if featurerequired = true then

to

if featurerequired = true or featurerequired = 1 then

Save and test.

78a. admin/shopa_featureedit.asp

Locate around line 1079: within routine sub FeaturesProducts.

Modify

sql = "select catalogid,cname from products where concat(',',features,',') like concat (',' ,'%"& strfeatures &"%',',') limit 20"

to

sql = "select catalogid,cname from products where CONCAT(',',features,',') like '%,"& strfeatures &",%' limit 20"

Save and continue to 78b.

78b. admin/shopa_displayrelfeatureprod.asp

Locate around line 76: within routine sub GenerateSQLEditDisplayProdFeatures.

Modify

MySql = "select catalogid,cname from products where concat(',',features,',') like concat (',' ,'%"& strfeatures &"%',',')"

to

MySql = "select catalogid,cname from products where concat(',',features,',') like '%,"& strfeatures &",%'"

Save and test.

79a. shop$db.asp

Locate around line 793: within function GetMaxPages

Above

mysql3 = "select count(*) as reccnt from ("& mysql &") as t "

Add

mysql = replace(mysql,";","")

Save and test.

79b. admin/admin$db.asp

Locate around line 764: within function GetMaxPages

Above

mysql3 = "select count(*) as reccnt from ("& mysql &") as t "

Add

mysql = replace(mysql,";","")

Save and test.

80. Packages

Download latest packages from www.vpasp.com

Copy all the images in /images/admin/ folder to your CartRoot/images/admin/

81. shopaffreportsubs.asp

Locate around line 540: within sub AffDetailRow

Modify

fieldvalue="<a href=" & my_link &">" & rs("affid") & "</a>"

to

if getsess("shopadmin") <> "" then
fieldvalue="<a href=" & my_link &">" & rs("affid") & "</a>"
else
fieldvalue=rs("affid")
end if

Save and test.

82. shopprocat.asp

Locate around line 33: within sub Handle_procatdisplay

Modify

if trim(strProProCatDisplayCategoryID)>0 then

to

if trim(len(strProProCatDisplayCategoryID))>0 then

Locate around line 51: within sub Handle_procatdisplay

Modify

if trim(strCatProCatDisplayCategoryID)>0 then

to

if trim(len(strCatProCatDisplayCategoryID))>0 then

Save and test.

83. SEO Tool Module

Download SEO Tool Module (vpasp700seotools.zip) from vpasp.com.

Replace the files to your site.

Save and test.

84. shopvalidatecreditcards.asp

Locate around line 113: within function trimtodigits

Below

function trimtodigits(tstring)

Add

dim s,ts,x,ch

Save and test.

85a. shop$db.asp

Locate around line 780: within function GetMaxPages

Replace Whole function GetMaxPages

to

function GetMaxPages (mysql,mypagesize)
if len(mysql) <= 0 then
GetMaxPages = 1
exit function
end if

dim mysql3,countrs,countpos,frompos,counttotal,maxpage,frompos2
dim tempsql
tempsql = mysql
frompos = instr(lcase(tempsql),"order by ")
if frompos > 0 then
tempsql = mid(tempsql,1,frompos - 1)
end if
tempsql = replace(tempsql,";","")
mysql3 = "select count(*) as reccnt from ("& tempsql &") as t "
Set countrs = Server.CreateObject("ADODB.Recordset")
countrs.open mysql3, dbc, adOpenDynamic, adLockOptimistic
if not countrs.eof then
counttotal = countrs("reccnt")
end if

if clng(counttotal) mod clng(mypagesize) = 0 then
maxpage = int(clng(counttotal) / clng(mypagesize))
else
maxpage = int(clng(counttotal) / clng(mypagesize)) + 1
end if
if maxpage <= 0 then maxpage = 1
GetMaxPages = maxpage
end function

Save and test.

85b. admin/admin$db.asp

Locate around line 752: within function GetMaxPages

Replace Whole function GetMaxPages

to

function GetMaxPages (mysql,mypagesize)
if len(mysql) <= 0 then
GetMaxPages = 1
exit function
end if

dim mysql3,countrs,countpos,frompos,counttotal,maxpage,frompos2
dim tempsql
tempsql = mysql
frompos = instr(lcase(tempsql),"order by ")
if frompos > 0 then
tempsql = mid(tempsql,1,frompos - 1)
end if
tempsql = replace(tempsql,";","")
mysql3 = "select count(*) as reccnt from ("& tempsql &") as t "
Set countrs = Server.CreateObject("ADODB.Recordset")
countrs.open mysql3, dbc, adOpenDynamic, adLockOptimistic
if not countrs.eof then
counttotal = countrs("reccnt")
end if

if clng(counttotal) mod clng(mypagesize) = 0 then
maxpage = int(clng(counttotal) / clng(mypagesize))
else
maxpage = int(clng(counttotal) / clng(mypagesize)) + 1
end if
if maxpage <= 0 then maxpage = 1
GetMaxPages = maxpage
end function

Save and test.

86. admin/shopa_addproduct.asp

Locate around line 1776: within sub AddCategories

Below

Displayallcurrentcategories ' display all current categories

Add

else
HtmlWrite "<tr><td colspan=2>"
HtmlWrite "<span name=""procategoryresult"" id=""procategoryresult""><table>"
HtmlWrite "<table width='100%'>"
HtmlWrite "</table>"
HtmlWrite "</span>"
HtmlWrite "</td></tr>"

Save and test.

87. admin/shopa_procategory.asp

Locate around line 82: within sub Updatemaincategory

Modify

sql = "select * from prodcategories where intcategoryid=" & lngccategory & " and intCatalogId=" & CatalogId
'set rs = dbc.execute(sql)

to

if lngccategory <> 0 then
sql = "select * from prodcategories where intcategoryid=" & lngccategory & " and intCatalogId=" & CatalogId
else
sql = "select * from prodcategories where intCatalogId=" & CatalogId & " and intcategoryid > 0 order by id asc"
end if

Locate around line 89: within sub Updatemaincategory

Modify

if not rs.eof then
found = true
else
found = false
end if

to

if not rs.eof then
found = true
if lngccategory = 0 then
lngccategory = rs("intcategoryid")
end if
else
found = false
if lngccategory = 0 then
lngccategory = categoryid
end if
end if

Locate around line 217: within sub Performdeletecategory

Modify

sql = "SELECT TOP 1 intcategoryid from prodcategories WHERE (intCatalogId = " & which & ") AND (NOT intcategoryid = " & categoryid & ") ORDER BY id desc"

to

sql = "SELECT TOP 1 intcategoryid from prodcategories WHERE (intCatalogId = " & which & ") AND (NOT intcategoryid = " & categoryid & ") and intcategoryid > 0 ORDER BY id desc"

Save and test.

88. admin/shopa_editrecord.asp

Locate around line 1615: within sub DisplayForm

Modify

displaycustormergroup contactid
HtmlWrite "
"

to

if which<>"" then
displaycustormergroup contactid
HtmlWrite "
"
end if

Save and test.

89. shopcustgrpsubs.asp

Locate around line 348: within sub updatecustomergroup

Below

dim sqlrs,strsql

Add

if oldwhich <> "" then

Locate around line 357: within sub updatecustomergroup

Below

closerecordset sqlrs

Add

else
refreshindfromcontact which
end if

Save and test.

90. shop$db.asp

Locate around line 1505: within sub CheckValidLogin

Modify

if GetSess("Login")="" then

to

if GetSess("Login")="" and instr(lcase(request.ServerVariables("SCRIPT_NAME")),"shoplogin.asp") <= 0 then

Save and test.

91. admin/admin$db.asp

Locate around line 3206: within function addHTMLEditor

Modify

<pre id="idTemporary_<%=fieldname%>" name="idTemporary_<%=fieldname%>" style="display:none"><%if textdata > "" then response.write Server.HTMLEncode(textdata)%></pre>

to

<pre id="idTemporary_<%=fieldname%>" name="idTemporary_<%=fieldname%>" style="display:none"><%if textdata > "" then response.write textdata%></pre>

Save and test.

92. shopexd.asp

Locate around line 57

Below

ExdOpenRecordSet tmpRS

Add

'700 - Solve the SEO wrong breadcrumb
if getconfig("xSEODynamicProductsEnable") = "Yes" then
dim bccategoryname
getseocat_name bccategoryname,tmpRS("ccategory")
if trim(bccategoryname) <> "" then
dim breadcrumblink
breadcrumblink = "<a href=""" & GetConfig("xhome") & addwebsesslinkfirst & """>" & GetLang("langcommonhome") & "</a> " & SubCatSeparator & "<a href=""shopDisplayCategories.asp"">" & GetLang("LangCommonCategories") & "</a>"
breadcrumblink = breadcrumblink & subcatseparator & " " & bccategoryname
SetSess "breadcrumb", breadcrumblink
else
SetSess "breadcrumb", ""
end if
end if

Save and test.

93. admin/shopgooglesitemapscreate.asp

Locate around line 419: within sub WriteblogsLocation

Above

mylink = "<loc>" & mysite & "/"& mylink &"</loc>"

Add

mylink = fixspecialcharxml(mylink)

Locate around line 431: within sub WritenewsLocation

Above

mylink = "<loc>" & mysite & "/"& mylink &"</loc>"

Add

mylink = fixspecialcharxml(mylink)

Locate around line 450: within sub WriteCategoryLocation

Above

mylink = "<loc>" & mysite & "/"& mylink &"</loc>"

Add

mylink = fixspecialcharxml(mylink)

Locate around line 472: within sub WriteProductLocation

Above

mylink = "<loc>" & mysite & "/"& mylink &"</loc>"

Add

mylink = fixspecialcharxml(mylink)

Locate last line

Above

%>

Add

'fix xml special char
function fixspecialcharxml (passtr)
if trim(passtr) = "" then
fixspecialcharxml = ""
exit function
end if

dim tempstr
tempstr = passtr
tempstr = replace(tempstr,"&","&amp;")
tempstr = replace(tempstr,"<","&lt;")
tempstr = replace(tempstr,">","&gt;")
tempstr = replace(tempstr,"""","&quot;")
tempstr = replace(tempstr,"'","&apos;")
fixspecialcharxml = tempstr
end function

Save and test.

94a. admin/js/shophomepagemanagerfunctions.js

Locate around line 665: within function savesidebar

Modify

if (savetype.toLowerCase() == 'savesidefreetext'){
var pars = 'savetype='+ savetype +'&id='+ id +'&divname='+ divname +'&otheroptions1='+ escape(document.getElementById(prefix + 'otheroptions1').value) +'&labelfield='+ escape(document.getElementById(prefix + 'labelfield').value) +'&otheroptions2='+ escape(document.getElementById(prefix + 'otheroptions2').value) +'&otheroptions3='+ escape(document.getElementById(prefix + 'otheroptions3').value) +'&otheroptions4='+ encodeURI(escape(document.getElementById(prefix + 'otheroptions4').value)) +'&otheroptions5='+ escape(document.getElementById(prefix + 'otheroptions5').value) +'&otheroptions6='+ escape(document.getElementById(prefix + 'otheroptions6').value) +'&resizeimage='+ escape(document.getElementById(prefix + 'resizeimage').value) +'';
}
else {
var pars = 'savetype='+ savetype +'&id='+ id +'&divname='+ divname +'&otheroptions1='+ escape(document.getElementById(prefix + 'otheroptions1').value) +'&labelfield='+ escape(document.getElementById(prefix + 'labelfield').value) +'&otheroptions2='+ escape(document.getElementById(prefix + 'otheroptions2').value) +'&otheroptions3='+ escape(document.getElementById(prefix + 'otheroptions3').value) +'&otheroptions4='+ escape(document.getElementById(prefix + 'otheroptions4').value) +'&otheroptions5='+ escape(document.getElementById(prefix + 'otheroptions5').value) +'&otheroptions6='+ escape(document.getElementById(prefix + 'otheroptions6').value) +'&resizeimage='+ escape(document.getElementById(prefix + 'resizeimage').value) +'';
}

to

if (savetype.toLowerCase() == 'savesidefreetext'){
var pars = 'savetype='+ savetype +'&id='+ id +'&divname='+ divname +'&otheroptions1='+ escape(document.getElementById(prefix + 'otheroptions1').value) +'&labelfield='+ escape(document.getElementById(prefix + 'labelfield').value) +'&otheroptions2='+ escape(document.getElementById(prefix + 'otheroptions2').value) +'&otheroptions3='+ escape(document.getElementById(prefix + 'otheroptions3').value) +'&otheroptions4='+ encodeURI(escape(document.getElementById(prefix + 'otheroptions4').value)) +'&otheroptions5='+ escape(document.getElementById(prefix + 'otheroptions5').value) +'&otheroptions6='+ escape(document.getElementById(prefix + 'otheroptions6').value) +'&resizeimage='+ escape(document.getElementById(prefix + 'resizeimage').value) +'';
}
else {
if (savetype.toLowerCase() == 'savesidecentercontentpage'){
var pars = 'savetype='+ savetype +'&id='+ id +'&divname='+ divname +'&otheroptions1='+ escape(document.getElementById(prefix + 'otheroptions1').value) +'&labelfield='+ escape(document.getElementById(prefix + 'labelfield').value) +'&otheroptions2='+ escape(document.getElementById(prefix + 'otheroptions2').value) +'&otheroptions3='+ escape(document.getElementById(prefix + 'otheroptions3').value) +'&otheroptions4='+ escape(document.getElementById(prefix + 'otheroptions4').value) +'&otheroptions5='+ encodeURI(escape(document.getElementById(prefix + 'otheroptions5').value)) +'&otheroptions6='+ escape(document.getElementById(prefix + 'otheroptions6').value) +'&resizeimage='+ escape(document.getElementById(prefix + 'resizeimage').value) +'';
}
else {
var pars = 'savetype='+ savetype +'&id='+ id +'&divname='+ divname +'&otheroptions1='+ escape(document.getElementById(prefix + 'otheroptions1').value) +'&labelfield='+ escape(document.getElementById(prefix + 'labelfield').value) +'&otheroptions2='+ escape(document.getElementById(prefix + 'otheroptions2').value) +'&otheroptions3='+ escape(document.getElementById(prefix + 'otheroptions3').value) +'&otheroptions4='+ escape(document.getElementById(prefix + 'otheroptions4').value) +'&otheroptions5='+ escape(document.getElementById(prefix + 'otheroptions5').value) +'&otheroptions6='+ escape(document.getElementById(prefix + 'otheroptions6').value) +'&resizeimage='+ escape(document.getElementById(prefix + 'resizeimage').value) +'';
}
}

Save and test.

94b. admin/shopa_hpmanagersubdetails.asp

Locate around line 1937: within sub savecenterbox

Modify

otheroptions5 = cleanchars(request("otheroptions5"))

to

if lcase(containername) = "contentpage" then
otheroptions5 = replace(URLDecode(request("otheroptions5")),"&","&")
otheroptions5 = replace(otheroptions5,"%uFFFD","'")
else
otheroptions5 = cleanchars(request("otheroptions5"))
end if

Save and test.

95a. shopupdatecartprices.asp

Locate around line 87: within sub UpdateCartPrices

Above

for i = 1 to scartItem

Add

dim selectlistpos1,selectlistpos2,selectlistvalue

Locate around line 95: within sub UpdateCartPrices

Modify

ProductPrice = ProductPrice + getfprice(arrCart(cProductFeatures,i))

to

if trim(arrCart(cfeatureotherpricing,i)) <> "" then
if instr(arrCart(cfeatureotherpricing,i),"-selectlistprice=[") > 0 then
selectlistpos1 = instr(arrCart(cfeatureotherpricing,i),"-selectlistprice=[") + len("-selectlistprice=[") - 1
selectlistpos2 = instr(mid(arrCart(cfeatureotherpricing,i),selectlistpos1+1,len(arrCart(cfeatureotherpricing,i)) - selectlistpos1 + 1),"]")
selectlistvalue = mid(arrCart(cfeatureotherpricing,i),selectlistpos1+1,selectlistpos2-1)
else
selectlistvalue = 0
end if
end if
ProductPrice = ProductPrice + getfprice(arrCart(cProductFeatures,i)) + selectlistvalue

Locate around line 129: within function getfprice

Replace function getfprice

to

function getfprice (feaid)
if len(feaid) <= 0 then
getfprice = 0
exit function
end if

dim tempfeaidary(100),tempfeaidcnt
parserecord feaid,tempfeaidary,tempfeaidcnt,","

dim strsql,tempprice,orders,totalprice,icnt,otheramount
totalprice = 0
tempprice = 0
otheramount = 0
dim selectlistpos1,selectlistpos2,selectlistvalue
for icnt = 0 to (tempfeaidcnt - 1)
if isnumeric(tempfeaidary(icnt)) = false or instr(tempfeaidary(icnt),",") > 0 then
else
strsql = "select featuretype,featureprice from prodfeatures where id=" & tempfeaidary(icnt)
Set Orders = Server.CreateObject("ADODB.Recordset")
orders.open strsql, dbc, adopenkeyset, adlockoptimistic
if not orders.eof then
if lcase(orders("featuretype")) = "selectlist" then
tempprice = 0
elseif lcase(orders("featuretype")) = "quantity" then
if trim(arrCart(cfeatureotherpricing,i)) <> "" then
if instr(arrCart(cfeatureotherpricing,i),"-selectquantity=[") > 0 then
selectlistpos1 = instr(arrCart(cfeatureotherpricing,i),"-selectquantity=[") + len("-selectquantity=[") - 1
selectlistpos2 = instr(mid(arrCart(cfeatureotherpricing,i),selectlistpos1+1,len(arrCart(cfeatureotherpricing,i)) - selectlistpos1 + 1),"]")
selectlistvalue = mid(arrCart(cfeatureotherpricing,i),selectlistpos1+1,selectlistpos2-1)
end if
else
selectlistvalue = 0
end if
tempprice = orders("featureprice")
if isnull(tempprice) then tempprice = 0
if trim(tempprice) = "" then tempprice = 0
tempprice = tempprice * selectlistvalue
else
tempprice = orders("featureprice")
if isnull(tempprice) then tempprice = 0
if trim(tempprice) = "" then tempprice = 0
otheramount = otheramount + tempprice
end if
end if
Orders.close
set Orders=Nothing
totalprice = cdbl(totalprice) + cdbl(tempprice)
end if
next
getfprice = totalprice
end function

Locate around line 181: within function getfpricepercent

Replace function getfpricepercent

to

function getfpricepercent (feaid,curprice)
if len(feaid) <= 0 then
getfpricepercent = 0
exit function
end if

if len(curprice) <= 0 then
getfpricepercent = 0
exit function
end if

if isnumeric(curprice) = false then
getfpricepercent = 0
exit function
end if

dim tempfeaidary(100),tempfeaidcnt
parserecord feaid,tempfeaidary,tempfeaidcnt,","

dim strsql,tempprice,orders,temppercent,icnt
totalprice = 0
tempprice = 0
for icnt = 0 to (tempfeaidcnt - 1)
if isnumeric(tempfeaidary(icnt)) = false or instr(tempfeaidary(icnt),",") > 0 then
else
strsql = "select featurepercent from prodfeatures where id=" & tempfeaidary(icnt)
Set Orders = Server.CreateObject("ADODB.Recordset")
orders.open strsql, dbc, adopenkeyset, adlockoptimistic
if not orders.eof then
temppercent = orders("featurepercent")
end if
Orders.close
set Orders=Nothing
if isnull(temppercent) then temppercent = 0
if trim(temppercent) = "" then temppercent = 0
if cdbl(temppercent) > 0 then
tempprice = (temppercent / 100) * curprice
totalprice = cdbl(totalprice) + cdbl(tempprice)
end if
end if
next
getfpricepercent = totalprice
end function

Save and test.

95b. shopaddtocart.asp

Locate around line 117: within sub ProcessNewAdd

Above

GetInputValues(strinputarray(icnt))

Add

setsess "tempfeatureotherpricing",""

Locate around line 399: within sub ReCalculate

Below

dim i2,salescode

Add

dim selectlistpos1,selectlistpos2,selectlistvalue

Locate around line 467: within sub ReCalculate

Modify

ProductPrice = ProductPrice + getfprice(arrCart(cProductFeatures,i))

to

if trim(arrCart(cfeatureotherpricing,i)) <> "" then
if instr(arrCart(cfeatureotherpricing,i),"-selectlistprice=[") > 0 then
selectlistpos1 = instr(arrCart(cfeatureotherpricing,i),"-selectlistprice=[") + len("-selectlistprice=[") - 1
selectlistpos2 = instr(mid(arrCart(cfeatureotherpricing,i),selectlistpos1+1,len(arrCart(cfeatureotherpricing,i)) - selectlistpos1 + 1),"]")
selectlistvalue = mid(arrCart(cfeatureotherpricing,i),selectlistpos1+1,selectlistpos2-1)
else
selectlistvalue = 0
end if
else
selectlistvalue = 0
end if
ProductPrice = ProductPrice + getfprice(arrCart(cProductFeatures,i)) + selectlistvalue

Save and test.

95c. shopsessionsubs.asp

Locate around line 342: within sub RequestCookieCart

Modify

dim arrcount, dataarea, Temparray(26), tempcount

to

dim arrcount, dataarea, Temparray(29), tempcount

Locate around line 361: within sub RequestCookieCart

Modify

for j = 1 to CartAttributes -1

to

for j = 1 to CartAttributes

Save and test.

95d. shopsavecart.asp

Locate around line 233: within sub SessionRestoreCart

Modify

dim arrcount, dataarea, Temparray(28), tempcount

to

dim arrcount, dataarea, Temparray(29), tempcount

Save and test.

95e. shopproductfeaturesprocess.asp

Locate around line 193: within sub ProcessSelectList

Below

Featurearray(cfeatureprice, featurecount) = price

Add

dim tempstring
tempstring = getsess("tempfeatureotherpricing")
setsess "tempfeatureotherpricing",tempstring & "-selectlistprice=["& price &"]"

Locate around line 323: within sub ProcessFeatureQuantity

Below

totalnewquantity = 0

Add

dim tempstring

Locate around line 339: within sub ProcessFeatureQuantity

Below

totalnewprice = totalnewprice + newprice

Add

tempstring = getsess("tempfeatureotherpricing")
setsess "tempfeatureotherpricing",tempstring & "-selectquantity=["& quantity &"]"

Save and test.

95f. shopproductfeatures.asp

Locate around line 171: within sub CartAddItem

Below

ArrCart(cProductmininame, scartItem) = strcname

Add

ArrCart(cfeatureotherpricing, scartItem) = getsess("tempfeatureotherpricing")

Save and test.

95g. shop$db.asp

Locate around line 58

Modify

const cMaxCartAttributes=27

to

const cMaxCartAttributes=28

Locate around line 89

Below

const cproducttype=27

Add

const cfeatureotherpricing=28

Save and test.

95h. admin/admin$db.asp

Locate around line 58

Modify

const cMaxCartAttributes=27

to

const cMaxCartAttributes=28

Locate around line 89

Below

const cproducttype=27

Add

const cfeatureotherpricing=28

Save and test.

96. shop$db.asp

Locate around line 753:within function GenPageSQL

Modify

mysql2 = "select distinct top "& (clng(mypagesize) * clng(mypage)) &" "& tempfieldstring2 &" from (" & mysql2 & ") as queries "
mysql2 = mysql2 & " where (RowNumber <= "& clng(mypage) * clng(mypagesize) &" AND RowNumber >= "& ((clng(mypage)-1) * clng(mypagesize)) + 1 &")"

to

if right(tempfieldstring2,1) <> "*" then
mysql2 = "select distinct top "& (clng(mypagesize) * clng(mypage)) &" "& tempfieldstring2 &",RowNumber from (" & mysql2 & ") as queries "
else
mysql2 = "select distinct top "& (clng(mypagesize) * clng(mypage)) &" "& tempfieldstring2 &" from (" & mysql2 & ") as queries "
end if
mysql2 = mysql2 & " where (RowNumber <= "& clng(mypage) * clng(mypagesize) &" AND RowNumber >= "& ((clng(mypage)-1) * clng(mypagesize)) + 1 &") order by RowNumber"

Save and test.

97a. shophpmgr.asp

Locate around line 1196:within sub getminicartsectionhtml2

Modify

if getsess("OrderTotal") > 0 then

to

if getsess("CartCount") > 0 then

Locate around line 1351:within sub getminicartsectionhtml

Modify

if getsess("OrderTotal") > 0 then

to

if getsess("CartCount") > 0 then

Save and test.

97b. shopcartformatdesign.asp

Locate around line 86:within sub CartFormatProductTotal

Modify

if cartisubtotal > 0 then

to

if getsess("CartCount") > 0 then

Locate around line 121:within sub CartFormatTotal

Modify

if carttotal = 0 then

to

if getsess("CartCount") = 0 then

Save and test.

97c. shopfileio.asp

Locate around line 767:within sub DoSpecialFormating

Modify

if value > 0 then
value=ShopFormatCurrency(value,GetConfig("xdecimalpoint"))
else
value = ""
end if

to

value=ShopFormatCurrency(value,GetConfig("xdecimalpoint"))

Save and test.

98. shopproductcreatesql.asp

Locate around line 671:within sub SearchGenerateSQLv2

Modify

if xSearchSortField <> "" then

to

if xSearchSortField <> "" and InStr(strproductfields,xSearchSortField) = 0 then

Save and test.

99. admin/admin$db.asp

Locate around line 58

Modify

const cMaxCartAttributes=27

to

const cMaxCartAttributes=28

Locate around line 89

Below

const cproducttype=27

Add

const cfeatureotherpricing=28

Save and test.

100. shopproductsubs.asp

Locate around line 1077:within sub NavigateShowMiniCartCssStyled

Modify

pname

to

htmlwrite pname

Save and test.

101a. admin/shopa_addcategory.asp

Locate around line 928:within sub GenerateCategoryLinks

Modify

if j = -1 then exit for ' not found

to

if j <> -1 then

Locate around line 942:within sub GenerateCategoryLinks

Above

loop

Add

else
highercategoryid = 0
end if

Save and continue 101b.

101b. admin/shopa_addproduct.asp

Locate around line 1936:within sub GenerateCategoryLinks

Modify

if j = -1 then exit for ' not found

to

if j <> -1 then

Locate around line 1951:within sub GenerateCategoryLinks

Above

loop

Add

end if

Save and test.

102. admin/shopa_featureedit.asp

Locate around line 463:within sub insertnewfeature

Modify

sql = sql & ",'" & featurecaption & "'" sql = sql & ",'" & featurename & "'"

to

sql = sql & ",'" & tosql(featurecaption,"Text") & "'" sql = sql & ",'" & tosql(featurename,"Text") & "'"

Locate around line 507:within sub Updatefeatures

Modify

Modify

sql = "update " & dbtable & " set featurename='" & featurename & "'" sql = sql & ",featurecaption='" & featurecaption & "'"

to

sql = "update " & dbtable & " set featurename='" & tosql(featurename,"Text") & "'" sql = sql & ",featurecaption='" & tosql(featurecaption,"Text") & "'"

Save and test.

103. shopfileio.asp

Locate around line 360:within sub Substitute

Modify

workrecord = replace(Newrecord,vbcrlf,"<br />")

to

if istable(Newrecord) = false then workrecord = replace(Newrecord,vbcrlf,"<br />") else workrecord = Newrecord end if

Locate end of the file.

Above

%>

Add

'check is the string html coding
function istable (passstring)
dim tempstring, intStartPos, intEndPos

tempstring = passstring
if instr(lcase(tempstring),"<body") > 0 or instr(lcase(tempstring),"<html") > 0 or instr(lcase(tempstring),"<table") > 0 or instr(lcase(tempstring),"<td") > 0 or instr(lcase(tempstring),"<tr") > 0 or instr(lcase(tempstring),"<form") > 0 or instr(lcase(tempstring),"<img") or instr(lcase(tempstring),"<span") then
istable = true
else
istable = false
end if
end function

Save and test.

104a. shopxmysite.asp

Locate around line 19:within sub initxmysite

Remove

if len(xadminfolder) <= 0 then
else
if instr(xMySite,xadminfolder) > 0 then
if trim(xadminfolder) <> "" then
xmysite = replace(xMySite,xadminfolder & "/","")
xmysite = replace(xMySite,xadminfolder & "\","")
end if
end if
end if

Save and continue to 104b.

104b. shop$db.asp

Locate around line 3486:within function RealSubFolderName

Replace

if trim(xadminfolder) <> "" then
thename = replace(thename,xadminfolder & "/","")
thename = replace(thename,xadminfolder & "\","")
end if

to

if lcase(right(thename,len(xadminfolder))) = lcase(xadminfolder) then
thename = mid(thename,1,len(thename)-len(xadminfolder))
elseif lcase(right(thename,len(xadminfolder)+1)) = lcase(xadminfolder & "/") or lcase(right(thename,len(xadminfolder)+1)) = lcase(xadminfolder & "\") then
thename = mid(thename,1,len(thename)-len(xadminfolder)-1)
end if

Locate around line 3506:within function RealSubFolderNameOnly

Modify

if trim(xadminfolder) <> "" then
thename = replace(mid(pstr,2,scriptnamelength),xadminfolder & "/","")
thename = replace(mid(pstr,2,scriptnamelength),xadminfolder & "\","")
else
thename = mid(pstr,2,scriptnamelength)
end if

to

thename = mid(pstr,2,scriptnamelength)

Save and continue to 104c.

104c. admin/adminxmysite.asp

Locate around line 19:within sub initxmysite

Remove

if len(xadminfolder) <= 0 then
else
if instr(xMySite,xadminfolder) > 0 then
if trim(xadminfolder) <> "" then
xmysite = replace(xMySite,xadminfolder & "/","")
xmysite = replace(xMySite,xadminfolder & "\","")
end if
end if
end if

Save and continue to 104d.

104d. admin/admin$db.asp

Locate around line 3403:within function RealSubFolderName

Replace

if trim(xadminfolder) <> "" then
thename = replace(thename,xadminfolder & "/","")
thename = replace(thename,xadminfolder & "\","")
end if

to

if lcase(right(thename,len(xadminfolder))) = lcase(xadminfolder) then
thename = mid(thename,1,len(thename)-len(xadminfolder))
elseif lcase(right(thename,len(xadminfolder)+1)) = lcase(xadminfolder & "/") or lcase(right(thename,len(xadminfolder)+1)) = lcase(xadminfolder & "\") then
thename = mid(thename,1,len(thename)-len(xadminfolder)-1)
end if

Locate around line 3454:within function RealSubFolderNameOnlyWithoutAdmin

Modify

if trim(xadminfolder) <> "" then
thename = replace(mid(pstr,2,scriptnamelength),xadminfolder & "/","")
thename = replace(mid(pstr,2,scriptnamelength),xadminfolder & "\","")
else
thename = mid(pstr,2,scriptnamelength)
end if

to

thename = mid(pstr,2,scriptnamelength)

Save and continue to 104e.

104e. admin/editor/assetmanager/checkadmin.asp

Replace function RealSubFolderNameOnlyWithoutAdmin

to

function RealSubFolderNameOnlyWithoutAdmin(pstr)
dim thename
thename = session("xmysite")
RealSubFolderNameOnlyWithoutAdmin = thename
end function

Save and test.

105. templates\yourtemplate\tmp_generateheader.htm

Locate around line 25.

Modify

<td><img src="../images/header/logo.gif" width="150" height="33" id="logo" alt="Logo" title="Logo" /></td>

to

<td><img src="../images/default/vpasp.gif" width="150" height="33" id="logo" alt="Logo" title="Logo" /></td>

Save and test.

106. shoppinnumbers.asp

Locate around line 113:within sub Generatepinnumber

Modify

if lcase(pinproductmatch)<>"CatalogId" then

to

if lcase(pinproductmatch)<>"catalogid" then

Save and test.

107. shopfileio.asp

Locate around line 2262:within function GetEmaildownloadLink

Modify

if cint(arrayemaillinks(i,0))=cint(CatalogId) then

to

if cint(arrayemaillinks(i,0))=clng(CatalogId) then

Save and test.

108. shopnewproductsub.asp

Locate around line 76: within routine sub Generatesqlnewproducts.

Modify

sql = "select distinct p.catalogid from products p, prodcategories cc, categories c " & wherestr

to

sql = "select distinct p.catalogid,p.cdateadded from products p, prodcategories cc, categories c " & wherestr

Save and test.

109a. admin/shopa_featureedit.asp

Locate around line 1079: within routine sub FeaturesProducts.

Modify

if instr(lcase(xdatabasetype),"mysql") > 0 then
sql = "select catalogid,cname from products where CONCAT(',',features,',') like ',%"& strfeatures &"%,' limit 20"
else
sql = "select top 20 catalogid,cname from products where ',' + features + ',' like ',%"& strfeatures &"%,'"
end if

to

if instr(lcase(xdatabasetype),"mysql") > 0 then
sql = "select catalogid,cname from products where CONCAT(',',features,',') like '%,"& strfeatures &",%' limit 20"
else
sql = "select top 20 catalogid,cname from products where ',' + features + ',' like '%,"& strfeatures &",%'"
end if

Save and continue to 109b.

109b. admin/shopa_displayrelfeatureprod.asp

Locate around line 75: within routine sub GenerateSQLEditDisplayProdFeatures.

Modify

if instr(lcase(xdatabasetype),"mysql") > 0 then
MySql = "select catalogid,cname from products where concat(',',features,',') like ',%"& strfeatures &"%,'"
else
MySql = "select catalogid,cname from products where ',' + features + ',' like ',%"& strfeatures &"%,'"
end if

to

if instr(lcase(xdatabasetype),"mysql") > 0 then
MySql = "select catalogid,cname from products where concat(',',features,',') like '%,"& strfeatures &",%'"
else
MySql = "select catalogid,cname from products where ',' + features + ',' like '%,"& strfeatures &",%'"
end if

Save and test.

110. Please refer to #152.

111a. shopproductsubs2.asp

Locate around line 140: within routine sub Navigateshowcurrencies.

Modify

HtmlWrite "<option value=""shopcurrency.asp?CID=" &rs("cid") & "&goback=yes""" & checked & ">" & rs("fullunitname")& "</option>" & vbcrlf

to

HtmlWrite "<option value="""& xmysite2 &"/shopcurrency.asp?CID=" &rs("cid") & "&goback=yes""" & checked & ">" & rs("fullunitname")& "</option>" & vbcrlf

Save and continue to 111b.

111b. shoplanguagesubs.asp

Locate around line 26: within routine sub Navigateshowlanguages.

Modify

url = "shoplanguageset.asp?LG=" & server.urlencode(name)

to

if lcase(getsess("inadminflag")) = "yes" then
url = "shoplanguageset.asp?LG=" & server.urlencode(name)
else
url = xmysite2 & "/shoplanguageset.asp?LG=" & server.urlencode(name)
end if

Save and test.

112. admin/admin$db.asp

Locate around line 3206: within function addHTMLEditor

Modify

<pre id="idTemporary_<%=fieldname%>" name="idTemporary_<%=fieldname%>" style="display:none"><%if textdata > "" then response.write textdata%></pre>

to

<pre id="idTemporary_<%=fieldname%>" name="idTemporary_<%=fieldname%>" style="display:none"><%if textdata > "" then response.write Server.HTMLEncode(textdata)%></pre>

Save and test.

113. shoppinnumbers.asp

Locate around line 113:within sub Generatepinnumber

Modify

if lcase(pinproductmatch)<>"CatalogId" then

to

if lcase(pinproductmatch)<>"catalogid" then

Save and test.

114. admin/shopa_pinorder.asp

Locate around line 391:within sub mailgeneric

Modify

newsubject = subject & GetLang("langmailordernumber") & " " & orderid

to

newsubject = subject & " " & GetLang("langmailordernumber") & " " & orderid

Save and test.

115. admin/admin/shopa_featureedit.asp

Locate around line 380:within sub Deletefeature

Modify

sql = "delete * from " & dbtable & " where featurenum = " & featureid

to

sql = "delete from " & dbtable & " where featurenum = " & featureid

Save and test.

116. admin/admin/shopa_featureedit.asp

Locate around line 893:within sub WriteFeatureRow

Modify

<a href="javascript:popUp('<%=featureimage%>')"><%=GetLang("LangCommonView")%></a>

to

<%response.write getactualfileslocation(request.ServerVariables("SCRIPT_NAME"), featureimage, GetLang("langcommonview"), "_blank", "yes")%>

Save and test.

117 & 118a. shopfileio.asp

Locate around line 40:within sub OpenInputFile

Replace whole sub OpenInputFile

to

sub OpenInputFile (filename, fsObj, RecordObj, rc)
if lcase(left(filename,10)) = "templates/" then filename = xmysite2 & "/" & filename
on error resume next
dim whichfile, dbfile, xtemplate, cmpstr1, cmpstr2, cmpstr3
xtemplate = getconfig("xtemplate")
cmpstr1 = lcase(filename)
cmpstr2 = lcase(xmysite2 & "/templates/"& xtemplate &"/")
dbfile=left(replace(cmpstr1,cmpstr2,""),3)
if lcase(dbfile)="db=" then
OpenInputFiledb replace(cmpstr1,cmpstr2,""), fsObj, RecordObj, rc
exit sub
end if

dim dpos, dposstr
dpos = instr(cmpstr1,"/" & "templates/")
if dpos = 0 then dpos = instr(cmpstr1,"\" & "templates\")
dposstr = mid(filename, dpos, len(filename) - dpos + 1)

dim realfilename
realfilename = lcase(dposstr)
cmpstr2 = lcase("/" & "templates/" & xtemplate & "/")
cmpstr3 = lcase("\" & "templates/" & xtemplate & "\")
realfilename = replace(realfilename,cmpstr2,"")
realfilename = replace(realfilename,cmpstr3,"")

'700 - getting real subfolder name
dim infolder
infolder = server.mappath(filename)
infolder = replace(lcase(infolder),lcase(dposstr),"")
infolder = replace(lcase(infolder),replace(lcase(dposstr),"/","\"),"")

whichfile=infolder & "\" & "templates\" & xtemplate & "\" & realfilename
set fsObj = Server.CreateObject("Scripting.FileSystemObject")
set RecordObj= fsObj.OpenTextFile(whichfile, 1, False)
if err.number > 0 then
rc=4
fsObj.close
set fsObj=nothing
else
rc=0
end if
end sub

Save and continue to 117 & 118b.

117 & 118b. admin/adminfileio.asp

Locate around line 30:within sub OpenInputFile

Replace whole sub OpenInputFile

to

sub OpenInputFile (filename, fsObj, RecordObj, rc)
if lcase(left(filename,10)) = "templates/" then filename = xmysite2 & "/" & filename
on error resume next
dim whichfile, dbfile, xtemplate, cmpstr1, cmpstr2, cmpstr3
xtemplate = getconfig("xtemplate")
cmpstr1 = lcase(filename)
cmpstr2 = lcase(xmysite2 & "/templates/"& xtemplate &"/")
dbfile=left(replace(cmpstr1,cmpstr2,""),3)
if lcase(dbfile)="db=" then
OpenInputFiledb replace(cmpstr1,cmpstr2,""), fsObj, RecordObj, rc
exit sub
end if

dim dpos, dposstr
dpos = instr(cmpstr1,"/" & "templates/")
if dpos = 0 then dpos = instr(cmpstr1,"\" & "templates\")
dposstr = mid(filename, dpos, len(filename) - dpos + 1)

dim realfilename
realfilename = lcase(dposstr)
cmpstr2 = lcase("/" & "templates/" & xtemplate & "/")
cmpstr3 = lcase("\" & "templates/" & xtemplate & "\")
realfilename = replace(realfilename,cmpstr2,"")
realfilename = replace(realfilename,cmpstr3,"")

'700 - getting real subfolder name
dim infolder
infolder = server.mappath(filename)
infolder = replace(lcase(infolder),lcase(dposstr),"")
infolder = replace(lcase(infolder),replace(lcase(dposstr),"/","\"),"")

whichfile=infolder & "\" & "templates\" & xtemplate & "\" & realfilename
set fsObj = Server.CreateObject("Scripting.FileSystemObject")
set RecordObj= fsObj.OpenTextFile(whichfile, 1, False)
if err.number > 0 then
rc=4
fsObj.close
set fsObj=nothing
else
rc=0
end if
end sub

Save and test.

119. shopexd.asp

Locate around line 60.

Modify

if getconfig("xSEODynamicProductsEnable") = "Yes" then

to

if getconfig("xSEODynamicEnable") = "Yes" and getconfig("xSEODynamicProductsEnable") = "Yes" then

Locate around line 66.

Modify

breadcrumblink = breadcrumblink & subcatseparator & " " & bccategoryname

to

breadcrumblink = breadcrumblink & subcatseparator & " "
dim catmylink
genseocategoryproductlink catmylink,tmpRS("ccategory"),bccategoryname,bccategoryname,"","Yes"
breadcrumblink = breadcrumblink & catmylink

Save and test.

120. shopimageswatches.asp

Locate around line 25: within routine Sub handle_imageswatches.

Above

if trim(swatchrs("extendedimage")) <> "" then

Add

dim tempimagealt
tempimagealt = TranslateLanguage(dbc, "products", "cname","CatalogId", swatchrs("CatalogId"), swatchrs("cname"))

Locate around line 28: within routine Sub handle_imageswatches.

Modify

swatchimage = swatchimage & "<img class=""main_image"" src=""" & swatchrs("extendedimage") & """ alt=""" & swatchrs("cname") & """ name=""pimage"" />"

to

swatchimage = swatchimage & "<img class=""main_image"" src=""" & swatchrs("extendedimage") & """ alt=""" & tempimagealt & """ name=""pimage"" />"

Locate around line 31: within routine Sub handle_imageswatches.

Modify

swatchimage = swatchimage & "<img class=""main_image"" src=""" & GetConfig("xnoimage") & """ alt=""" & swatchrs("cname") & """ name=""pimage"" />"

to

swatchimage = swatchimage & "<img class=""main_image"" src=""" & GetConfig("xnoimage") & """ alt=""" & tempimagealt & """ name=""pimage"" />"

Locate around line 39: within routine Sub handle_imageswatches.

Modify

swatchimage = swatchimage & "<img src='" & swatchrs("extendedimage") & "' alt='" & swatchrs("cname") & "' /></a>"

to

swatchimage = swatchimage & "<img src='" & swatchrs("extendedimage") & "' alt=""" & tempimagealt & """ /></a>"

Locate around line 47: within routine Sub handle_imageswatches.

Modify

swatchimage = swatchimage & "<img src='" & swatchrs("extendedimage1") & "' alt='" & swatchrs("cname") & "' /></a>"

to

swatchimage = swatchimage & "<img src='" & swatchrs("extendedimage1") & "' alt=""" & tempimagealt & """ /></a>"

Locate around line 54: within routine Sub handle_imageswatches.

Modify

swatchimage = swatchimage & "<img src='" & swatchrs("extendedimage2") & "' alt='" & swatchrs("cname") & "' /></a>"

to

swatchimage = swatchimage & "<img src='" & swatchrs("extendedimage2") & "' alt=""" & tempimagealt & """ /></a>"

Locate around line 61: within routine Sub handle_imageswatches.

Modify

swatchimage = swatchimage & "<img src='" & swatchrs("extendedimage3") & "' alt='" & swatchrs("cname") & "' /></a>"

to

swatchimage = swatchimage & "<img src='" & swatchrs("extendedimage3") & "' alt=""" & tempimagealt & """ /></a>"

Locate around line 68: within routine Sub handle_imageswatches.

Modify

swatchimage = swatchimage & "<img src='" & swatchrs("extendedimage4") & "' alt='" & swatchrs("cname") & "' /></a>"

to

swatchimage = swatchimage & "<img src='" & swatchrs("extendedimage4") & "' alt=""" & tempimagealt & """ /></a>"

Locate around line 75: within routine Sub handle_imageswatches.

Modify

swatchimage = swatchimage & "<img src='" & swatchrs("extendedimage5") & "' alt='" & swatchrs("cname") & "' /></a>"

to

swatchimage = swatchimage & "<img src='" & swatchrs("extendedimage5") & "' alt=""" & tempimagealt & """ /></a>"

Save and test.

121. shopnewproductsub.asp

Locate around line 119: within routine sub Generatesqlnewproducts.

Below

sql = ""

Add

exit sub

Save and test.

122. shophpmgr.asp

Locate around line 1432: within routine function translatehpmgrcaptions.

Modify

translatehpmgrcaptions

to

translatehpmgrcaptions = ""

Save and test.

123. shopmysqlsubs.asp

Locate around line 92: within routine sub mysqltextfield.

Modify

isql = isql & fieldname & "='" & tfieldvalue & "'"

to

isql = isql & fieldname & "='" & tosql(tfieldvalue,"Text") & "'"

Save and test.

124. shopseosubs.asp

Locate around line 32: within routine sub getblogsmessagetype.

Remove

setsess "seoblogstype",""

Locate around line 47: within routine sub getnewsmessagetypee.

Remove

setsess "seonewstype",""

Locate around line 62: within routine sub getseocat_id.

Remove

setsess "seocategoryid",""

Locate around line 77: within routine sub getseohighercategoryid.

Remove

setsess "seohighercategoryid",""

Locate around line 87: within routine sub getseocat_name.

Remove

setsess "seocategoryname",""

Locate around line 102: within routine sub getseocatalogid.

Remove

setsess "seocatalogid",""

Save and test.

125. shopproductcreatesql.asp

Locate around line 696 within routine sub SearchGenerateSQLv2.

Modify

SQL = SQL & "p." & searchfields(j) & " Like '%" & tword & "%' "

to

SQL = SQL & "p." & searchfields(j) & " Like '%" & tosql(tword,"Text") & "%' "

Locate around line 719 within routine sub SearchGenerateSQLv2.

Modify

SQL = SQL & "p." & searchfields(j) & " Like '%" & tword & "%' "

to

SQL = SQL & "p." & searchfields(j) & " Like '%" & tosql(tword,"Text") & "%' "

Locate around line 739 within routine sub SearchGenerateSQLv2.

Modify

SQL = SQL & "p." & searchfields(j) & " LIKE '%" & exactString & "%' "

to

SQL = SQL & "p." & searchfields(j) & " LIKE '%" & tosql(exactString,"Text") & "%' "

Locate around line 763 within routine sub SearchGenerateSQLv2.

Modify

SQL = SQL & "p." & searchfields(j) & " LIKE '%" & tword & "%'"

to

SQL = SQL & "p." & searchfields(j) & " LIKE '%" & tosql(tword,"Text") & "%'"

Locate around line 777 within routine sub SearchGenerateSQLv2.

Below

if ucase(chosencategory) <> "ALL" then

Add

if isnumeric(chosencategory) = false then chosencategory = 0

Save and test.

126. shop$db.asp

Locate around line 2237 within routine sub LocateCustomer.

Modify

sql=sql & whereok & " lastname='" & templastname & "'"

to

sql=sql & whereok & " lastname='" & tosql(templastname,"Text") & "'"

Locate around line 2242 within routine sub LocateCustomer.

Modify

SQL = SQL & whereok & " email='" & temail & "'"

to

SQL = SQL & whereok & " email='" & tosql(temail,"Text") & "'"

Locate around line 2244 within routine sub LocateCustomer.

Modify

SQL = SQL & whereok & " userid='" & temail & "'"

to

SQL = SQL & whereok & " userid='" & tosql(temail,"Text") & "'"

Locate around line 2248 within routine sub LocateCustomer.

Modify

SQL = SQL & " AND " & " password='" & passwordvalue & "'"

to

SQL = SQL & " AND " & " password='" & tosql(passwordvalue,"Text") & "'"

Save and test.

127. shopcontent.asp

Locate around line 77 within routine sub FormatContent.

Modify

GetContentSQL = "select ContentId from content WHERE MessageType = '" & MessageType & "'"

to

GetContentSQL = "select ContentId from content WHERE MessageType = '" & tosql(MessageType,"Text") & "'"

Locate around line 138 within routine sub GenerateContentSQL.

Modify

sql="select * from content where MessageType='" & MessageType & "'"

to

sql="select * from content where MessageType='" & tosql(MessageType,"Text") & "'"

Locate around line 163 within routine sub WriteImpressions.

Modify

dbc.execute("UPDATE content SET impressions = impressions + 1 WHERE MessageType LIKE '" & MessageType &"'")

to

dbc.execute("UPDATE content SET impressions = impressions + 1 WHERE MessageType LIKE '" & tosql(MessageType,"Text") &"'")

Save and test.

128. shopblogs.asp

Locate around line 127 within routine sub GenerateContentSQL.

Modify

sql="select * from blogs where MessageType='" & MessageType & "'"

to

sql="select * from blogs where MessageType='" & tosql(MessageType,"Text") & "'"

Save and test.

129. shopnews.asp

Locate around line 127 within routine sub GenerateContentSQL.

Modify

sql="select * from news where MessageType='" & MessageType & "'"

to

sql="select * from news where MessageType='" & tosql(MessageType,"Text") & "'"

Save and test.

130. shopfileio.asp

Locate around line 2298 within routine function istable.

Modify

if instr(lcase(tempstring),"<body") > 0 or instr(lcase(tempstring),"<html") > 0 or instr(lcase(tempstring),"<table") > 0 or instr(lcase(tempstring),"<td") > 0 or instr(lcase(tempstring),"<tr") > 0 or instr(lcase(tempstring),"<form") > 0 or instr(lcase(tempstring),"<img") then

to

if instr(lcase(tempstring),"<body") > 0 or instr(lcase(tempstring),"<html") > 0 or instr(lcase(tempstring),"<table") > 0 or instr(lcase(tempstring),"<td") > 0 or instr(lcase(tempstring),"<tr") > 0 or instr(lcase(tempstring),"<form") > 0 or instr(lcase(tempstring),"<img") or instr(lcase(tempstring),"<span") then

Save and test.

131. admin/shopa_addproduct.asp

Locate around line 952 within routine sub PHeaderRow.

Modify

HtmlWritee "<tr bgcolor='#c7cc31'>" & ReportHeadColumn & "<b>" & caption & "</b>" & tablecolumnend

to

HtmlWrite "<tr bgcolor='#c7cc31'>" & ReportHeadColumn & "<b>" & caption & "</b>" & tablecolumnend

Save and test.

132a. admin/shopa_addcategory.asp

Locate around line 942:within sub GenerateCategoryLinks

Above

end if
loop

Add

else
highercategoryid = 0

Save and continue 132b.

132b. admin/shopa_addproduct.asp

Locate around line 1951:within routine sub GenerateCategoryLinks

Above

end if
loop

Add

else
highercategoryid = 0

Save and test.

133. shopfiltering.asp

Locate around line 36:within routine sub GetInput

Modify

if trim(itemsperpage) = "" then itemsperpage = 20

to

if trim(itemsperpage) = "" or isnumeric(itemsperpage) = false then itemsperpage = 20

Save and test.

134. shopcms.asp

Locate around line 222:within routine sub ShowNewsBox

Below

strsql=strsql & getnewscustomersql(customerid,"news")

Add

strsql=strsql & " order by news.cdateadded desc"

Locate around line 744:within routine sub ShowBlogsBox

Below

strsql=strsql & getnewscustomersql(customerid,"blogs")

Add

strsql=strsql & " order by blogs.cdateadded desc"

Save and test.

135. shop$db.asp

Locate around line 3595: within routine sub generatebaseurl

Replace sub generatebaseurl to

sub generatebaseurl
if lcase(request.ServerVariables("HTTPS")) = "on" then
if xssl <> "" then
htmlwrite "<base href="""& xssl &"/"" />"
else
if xmysite <> "" then
htmlwrite "<base href="""& xmysite &"/"" />"
else
htmlwrite "<base href=""https://"& request.ServerVariables("HTTP_HOST") & xmysite2 &"/"" />"
end if
end if
else
if xmysite <> "" then
htmlwrite "<base href="""& xmysite &"/"" />"
else
htmlwrite "<base href=""http://"& request.ServerVariables("HTTP_HOST") & xmysite2 &"/"" />"
end if
end if
end sub

Save and test.

136. admin/shopadmin.asp or renamed admin login page

Locate around line 18.

Modify

xadminpage = request.ServerVariables("SCRIPT_NAME")

to

xadminpage = replace(request.ServerVariables("SCRIPT_NAME"),xmysite2 & "/" & xadminfolder & "/","")

Save and test.

137. shoprotabs.asp

Locate around line 100: within routine Sub Handle_producttabs.

Modify

producttabs.setpersist(true)

to

producttabs.setpersist(false)

Save and test.

138. shopfileio.asp

Locate around line 795: within routine sub DoSpecialFormating.

Above

if GetConfig("xdisplayprices") <> "No" then

Add

if parseRS("taxfree") = true or lcase(parseRS("taxfree")) = "true" or parseRS("taxfree") = 1 or parseRS("taxfree") = "1" then
value = ""
exit sub
end if

Locate around line 895: within routine sub DoSpecialFormating.

Above

if GetConfig("xdisplayprices") <> "No" then

Add

if parseRS("taxfree") = true or lcase(parseRS("taxfree")) = "true" or parseRS("taxfree") = 1 or parseRS("taxfree") = "1" then
value = ""
exit sub
end if

Save and test.

139. shop$db.asp

Locate around line 760: within routine function GenPageSQL.

Modify

mysql2 = "select distinct top "& (clng(mypagesize) * clng(mypage)) &" "& tempfieldstring2 &",RowNumber from (" & mysql2 & ") as queries "

to

mysql2 = "select distinct top "& (clng(mypagesize) * clng(mypage)) &" "& tempfieldstring2 &" from (" & mysql2 & ") as queries "

Locate around line 764: within routine function GenPageSQL.

Modify

mysql2 = mysql2 & " where (RowNumber <= "& clng(mypage) * clng(mypagesize) &" AND RowNumber >= "& ((clng(mypage)-1) * clng(mypagesize)) + 1 &") order by RowNumber"

to

mysql2 = mysql2 & " where (RowNumber <= "& clng(mypage) * clng(mypagesize) &" AND RowNumber >= "& ((clng(mypage)-1) * clng(mypagesize)) + 1 &") "

Save and test.

140. shopcustgrpsubs.asp

Locate around line 383: within routine function GenerateCustomerMatchSQL.

Modify

tempstring = tempstring & " "& whereok &" (',' + "& matchfield &" + ',' like '%," & CustomerProductGroups(icnt) & ",%' "

to

if instr(lcase(xdatabasetype),"mysql") > 0 then
tempstring = tempstring & " "& whereok &" (concat(',',"& matchfield &",',') like '%," & CustomerProductGroups(icnt) & ",%' "
else
tempstring = tempstring & " "& whereok &" (',' + "& matchfield &" + ',' like '%," & CustomerProductGroups(icnt) & ",%' "
end if

Locate around line 389: within routine function GenerateCustomerMatchSQL.

Modify

tempstring = tempstring & " or ',' + "& matchfield &" + ',' like '%," & CustomerProductGroups(icnt) & ",%' "

to

if instr(lcase(xdatabasetype),"mysql") > 0 then
tempstring = tempstring & " or concat(',',"& matchfield &",',') like '%," & CustomerProductGroups(icnt) & ",%' "
else
tempstring = tempstring & " or ',' + "& matchfield &" + ',' like '%," & CustomerProductGroups(icnt) & ",%' "
end if

Locate around line 401: within routine function GenerateCustomerMatchSQL.

Modify

tempstring = tempstring & " and (',' + "& exmatchfield &" + ',' not like '%," & CustomerProductGroups(icnt) & ",%' "

to

if instr(lcase(xdatabasetype),"mysql") > 0 then
tempstring = tempstring & " and (concat(',',"& exmatchfield &",',') not like '%," & CustomerProductGroups(icnt) & ",%' "
else
tempstring = tempstring & " and (',' + "& exmatchfield &" + ',' not like '%," & CustomerProductGroups(icnt) & ",%' "
end if

Locate around line 407: within routine function GenerateCustomerMatchSQL.

Modify

tempstring = tempstring & " and ',' + "& exmatchfield &" + ',' not like '%," & CustomerProductGroups(icnt) & ",%' "

to

if instr(lcase(xdatabasetype),"mysql") > 0 then
tempstring = tempstring & " and concat(',',"& exmatchfield &",',') not like '%," & CustomerProductGroups(icnt) & ",%' "
else
tempstring = tempstring & " and ',' + "& exmatchfield &" + ',' not like '%," & CustomerProductGroups(icnt) & ",%' "
end if

Save and test.

141. shopexd.asp

Locate around line 79.

Modify

if (tmprs("productmatch")) <> lcase(xproductmatch) then

to

if (tmprs("p.productmatch")) <> lcase(xproductmatch) then

Save and test.

142. shopdisplayproducts.asp

Locate around line 116: within routine sub ProcessFirst.

Remove

CleanseMessage category, rc
if rc> 0 then
category = ""
end if

Locate around line 124: within routine sub ProcessFirst.

Remove

CleanseMessage productname, rc
if rc>0 then
productname = ""
end if

Save and test.

143. shoplanguagesubs.asp

Locate around line 26: within routine sub Navigateshowlanguages.

Modify

url = xmysite2 & "/shoplanguageset.asp?LG=" & server.urlencode(name)

to

ss

if lcase(getsess("inadminflag")) = "yes" then
url = "shoplanguageset.asp?LG=" & server.urlencode(name)
else
url = xmysite2 & "/shoplanguageset.asp?LG=" & server.urlencode(name)
end if

Save and test.

144. shopkitaddtocart.asp

Locate around line 59.

Modify

atemp = split(CleanChars(request.form("hidfeaturestring")), "<#>")

to

ss

atemp = split(request.form("hidfeaturestring"), "<#>")

Save and test.

145. admin/shopa_generateseodynamicsubs.asp

Locate around line 217: Within routine sub generateseodynamiccategories.

Modify

if trim(hassubflag) = "Yes" then

to

ss

if trim(hassubflag) = "Yes" or trim(hassubflag) = trim(getlang("LangCommonYes")) then

Locate around line 298: Within routine sub generateseodynamiccategoryhassub.

Modify

if trim(hassubflag) = "Yes" then

to

ss

if trim(hassubflag) = "Yes" or trim(hassubflag) = trim(getlang("LangCommonYes")) then

Locate around line 403: Within routine sub generateseodynamiccategoryproducts.

Modify

if trim(hassubflag) = "Yes" then

to

ss

if trim(hassubflag) = "Yes" or trim(hassubflag) = trim(getlang("LangCommonYes")) then

Save and test.

146. admin/shopa_edittranslateproducts.asp

Locate around line 164: Within routine sub DisplayForm.

Below

memexdesc = rstemp("extendeddesc")

Add

productmetatitle = rstemp("productmetatitle")
productmetakeyword = rstemp("productmetakeyword")
productmetadescription = rstemp("productmetadescription")

Save and test.

147. shopcustomer.asp

Locate around line 31.

Above

'700 - Quick Admin Order Form
if getsess("fromquickorderpage") = "Yes" then

Add

'check if https
directsecuredform "shopcustomer.asp", "Yes"

Save and test.

148. shop$db.asp

Locate around line 3774: within routine sub directsecuredform.

Replace sub directsecuredform

to

sub directsecuredform (passstring,passflag)
if lcase(passflag)="yes" then
if lcase(request.ServerVariables("HTTPS")) = "off" then
if xssl <> "" and instr(lcase(xssl),"https") > 0 then
if right(xssl,1) = "/" then
responseRedirect xssl &""& passstring &""
else
responseRedirect xssl &"/"& passstring &""
end if
end if
end if
else
if lcase(request.ServerVariables("HTTPS")) = "on" then
responseRedirect "http://"& request.ServerVariables("HTTP_HOST") & xmysite2 &"/"& passstring &""
end if
end if
end sub

Save and test.

149. shopfileio.asp

Locate around line 2271: within routine sub Handle_NumberSubCats.

Modify

Set scrs = Server.CreateObject("ADODB.Recordset")
scrs.open scsql, dbc, adOpenDynamic, adLockOptimistic
if not scrs.eof then
response.write "(" & scrs("thecount") & ")"
else
response.write "(0)"
end if

to

dim scrs2
Set scrs2 = Server.CreateObject("ADODB.Recordset")
scrs2.open scsql, dbc, adOpenDynamic, adLockOptimistic
if not scrs2.eof then
response.write "(" & scrs2("thecount") & ")"
else
response.write "(0)"
end if
CloseRecordSet scrs2

Save and test.

150. shopproductsubs.asp

Locate around line 1550: within routine sub NavigateTopTen.

Modify

ShopOpenRecordSet strsql, rs, 10, 1

to

rs.open strsql, dbc, adOpenDynamic, adLockOptimistic

Locate around line 1601: within routine sub NavigateTopSeller.

Modify

ShopOpenRecordSet strsql, rs, howmanyitems, 1

to

rs.open strsql, dbc, adOpenDynamic, adLockOptimistic

Locate around line 2383: within routine sub NavigateFeaturedProducts.

Modify

ShopOpenRecordSet strsql, rs, 9999, 1

to

rs.open strsql, dbc, adOpenDynamic, adLockOptimistic

Save and test.

151. shopproductsubs.asp

Locate around line 3202: within routine Sub AddEditor.

Remove

document.forms.<%=formname%>.submit();

Save and test.

152. shopshippingcalc.asp

Locate around line 296: within routine sub HandleByWeight.

Below

TotalPrice = ShippingPrice + TotalPrice

Add

'Fix bug: base price added to shipcost
ShipCost = TotalPrice

Save and test.

153. shopcustomer.asp

Locate around line 221.

Remove

if cstr(getsess("smprice")) = "0" then
tempflagfresshiping = true
end if

Locate around line 221.

Modify

if tempflagfresshiping = false then

to

if tempflagfresshiping = false and cstr(getsess("smprice")) = "0" then

Save and test.

154. shopcustomer.asp

Locate around line 195.

Below

dim tempflagfresshiping

Add

'Bug Fixed - Currency coversion
dim currencycalculateflag
currencycalculateflag = false

Locate around line 226.

Below

setsess "smprice",ShipCost

Add

'Bug Fixed - Currency coversion
currencycalculateflag = true

Locate around line 232.

Above

ResponseRedirect GetSess("FollowonURL")

Add

'take care the currency conversion
dim Conversionvalue
Conversionvalue = getsess("Conversionvalue")
if Conversionvalue <> "" then
if cdbl(Conversionvalue) <> 1 and cdbl(Conversionvalue) <> 0 then
'Bug Fixed - Currency coversion
if currencycalculateflag then
shipcost = shipcost / Conversionvalue
end if
setsess "smprice",ShipCost
end if
end if

Save and test.

155. shopproductcreatesql.asp

Locate around line 391: within routine sub NewProductSQL.

Modify

sql = "select * from products p, prodcategories cc, categories c where "

to

dim strProductFields
dim i
dim strdistinct
strdistinct = "DISTINCTROW"
if ucase(xDatabaseType) = "SQLSERVER" or ucase(GetConfig("xDatabaseType")) = "SQLSERVER" then
strdistinct = "DISTINCT"
end if
strProductFields = GetSess("strProductFields")
if strProductFields = "" then
GetProductfields dbc
strProductFields = GetSess("strProductFields")
end if
sql = "select " & strdistinct & " " & strproductfields
sql = sql & " from products p, prodcategories cc, categories c where "

Save and test.

156. shopshippingcalc.asp

Locate around line 132: within routine sub GetShippingDatabase.

Modify

if getsess("javascriptstatus") = "" then
SQL = "SELECT * from shipmethods order by shipmethod"
else
SQL = "SELECT * from shipmethods WHERE ((shiproutine IS NULL) OR (shiproutine ='') (shiproutine IS NOT NULL) and (shiproutine <> 'upsxmlrealtime.asp') and (shiproutine <> 'fedex.asp') and (shiproutine <> 'austpostrealtime.asp') and (shiproutine <> 'canadapostxml.asp') and (shiproutine <> 'uspostalrealtime.asp')) "
end if

to

if getsess("javascriptstatus") = "" then
SQL = "SELECT * from shipmethods "
else
SQL = "SELECT * from shipmethods WHERE ((shiproutine IS NULL) OR (shiproutine ='') and (shiproutine <> 'upsxmlrealtime.asp') and (shiproutine <> 'fedex.asp') and (shiproutine <> 'austpostrealtime.asp') and (shiproutine <> 'canadapostxml.asp') and (shiproutine <> 'uspostalrealtime.asp')) "
end if

Locate around line 138: within routine sub GetShippingDatabase.

Above

dim shipcountry

Add

if getsess("javascriptstatus") <> "" then

Locate around line 157: within routine sub GetShippingDatabase.

Below

SQL = SQL & " and shipstate='" & shipstate & "'"
end if
end if

Add

end if

Locate around line 165: within routine sub GetShippingDatabase.

Modify

SQL = "SELECT * from shipmethods WHERE ((shiproutine IS NULL) OR (shiproutine ='') OR (shiproutine IS NOT NULL) and (shiproutine <> 'upsxmlrealtime.asp') and (shiproutine <> 'fedex.asp') and (shiproutine <> 'austpostrealtime.asp') and (shiproutine <> 'canadapostxml.asp') and (shiproutine <> 'uspostalrealtime.asp')) "
if GetConfig("xshippingbycountry") = "Yes" then
SQL = SQL & " and (shipcountry='" & shipcountrydefault & "' or shipcountry is null or shipcountry = ''"
end if
if GetConfig("xshippingbystate") = "Yes" then
SQL = SQL & " or shipstate='" & shipstatedefault & "' or shipstate is null or shipstate = '') "
else
SQL = SQL & " ) "
end if
SQL = SQL & " order by shipmethod"

to

SQL = "SELECT * from shipmethods WHERE ((shiproutine IS NULL) OR (shiproutine ='') and (shiproutine <> 'upsxmlrealtime.asp') and (shiproutine <> 'fedex.asp') and (shiproutine <> 'austpostrealtime.asp') and (shiproutine <> 'canadapostxml.asp') and (shiproutine <> 'uspostalrealtime.asp')) "
if GetConfig("xshippingbycountry") = "Yes" then
SQL = SQL & " and (shipcountry='" & shipcountrydefault & "' or shipcountry is null or shipcountry = ''"
end if
if GetConfig("xshippingbystate") = "Yes" then
if GetConfig("xshippingbycountry") = "Yes" then
SQL = SQL & " or shipstate='" & shipstatedefault & "' or shipstate is null or shipstate = '') "
else
SQL = SQL & " and (shipstate='" & shipstatedefault & "' or shipstate is null or shipstate = '') "
end if
else
if GetConfig("xshippingbycountry") = "Yes" then
SQL = SQL & " ) "
end if
end if
SQL = SQL & " order by shipmethod"

Save and test.

157. shopreadfile.asp

Locate around line 13: within routine sub ShopReadFile.

Modify

whichfile = server.mappath(filename)

to

whichfile = server.mappath(xmysite2 & "/" & filename)

Save and test.

158. shophpmgr.asp

Locate around line 1930: within routine sub processcontainerdivname.

Modify

navigateshowsearch "custom", sqlrs("otheroptions3")

to

navigateshowsearch "custom", "", sqlrs("otheroptions3")

Locate around line 1949: within routine sub processcontainerdivname.

Modify

navigateshowsearch "custom", sqlrs("otheroptions3")

to

navigateshowsearch "custom", "", sqlrs("otheroptions3")

Save and test.

159. shopfileio.asp

Locate around line 462: within routine sub FindInDatabase.

Remove

'fix for memcdescription
if lcase(fieldname)="cdescription" then
if memcdescription<>"" then
fieldvalue=memcdescription
end if
end if

Save and test.

160a. shopblogsreviewlist.asp

Locate around line 76: within routine sub Displayblogs.

Modify

ShopOpenRecordSet SQL,objRS, mypagesize, mypage

to

if ucase(xDatabaseType) = "SQLSERVER" then
OpenRecordSet dbc,objRS,SQL
else
ShopOpenRecordSet SQL,objRS, mypagesize, mypage
end if

Continue to 160b.

160b. shopblogsreviewlist.asp

Locate around line 76: within routine sub DisplayNews.

Modify

ShopOpenRecordSet SQL,objRS, mypagesize, mypage

to

if ucase(xDatabaseType) = "SQLSERVER" then
OpenRecordSet dbc,objRS,SQL
else
ShopOpenRecordSet SQL,objRS, mypagesize, mypage
end if

Save and test.

161. paypalprodpshoppayment.asp

Locate around line 142: within routine Sub GetDatabaseRecord.

Modify

pcountry = orders("ocountry")

to

pcountry = orders("ocountry")
if ucase(pcountry) = "UK" then
pcountry = "GB"
end if

Locate around line 161: within routine Sub GetDatabaseRecord.

Modify

shipcountry = orders("oshipcountry")

to

shipcountry = orders("oshipcountry")
if ucase(shipcountry) = "UK" then
shipcountry = "GB"
end if

Save and test.

162a. shopcustregister.asp

Locate around line 221: within routine sub UpdateCustomer.

Modify

sql=sql & whereok & " lastname='" & templastname & "'"

to

sql=sql & whereok & " lastname='" & tosql(templastname,"Text") & "'"

Save and continue to 162b.

162b. shop$db.asp

Locate around line 2242: within routine sub LocateCustomer.

Modify

if lastname<>"" then
templastname=replace(lastname,"'","''")
end if

to

templastname = lastname

Save and test.

163a. shopcustomer.asp

Locate around line 173.

Above

SError=""
ValidateData()

Add

session("currentfreeshippingstatus") = ""

Locate around line 221.

Above

if tempflagfresshiping = false and cstr(getsess("smprice")) = "0" then

Add

if lcase(session("currentfreeshippingstatus")) = "yes" then tempflagfresshiping = true

Save and continue to 163b.

163b. shopshippingcalc.asp

Locate around line 716: within routine sub HandleFreeShipping.

Below

CalculateShippingdetails dbc, shiptotalWeight, shiptotalfeatureweight, shiptotalcost, shiptotalquantity
if shiptotalcost = 0 then

Add

session("currentfreeshippingstatus") = "Yes"

Save and test.

    

HTTP 500 Errors

HTTP 500 and Page Cannot be Displayed Errors

This is a general error message created by Windows itself.
It essentially means anything and nothing. 

To actually see the real error do the following.
To see the real error message do this for Internet Explorer, go to:

  1. Tools 
  2. Internet Options 
  3. Advanced 
  4. Uncheck "Show friendly HTTP error messages" 

If you need site specific help, please send us the URL (where VP-ASP is installed). 

Please do not send us a message that you got HTTP 500 because all we will do is ask you for the real error by doing the above.

    

VP-ASP 6.00 Multi-Currency & Gateways

With VP-ASP 6.00, there is a new, more advanced multi-currency function that makes it easier for you to provide your customers with currency conversion facilities.

However, depending on your settings, this can cause issues with your gateway.

The currency in the currencyvalues table with a conversion value of 1 is the one determines the value that is passed to your gateway at checkout time.

If you have a currency that is not supported by your gateway as this value, you may encounter errors (eg. PayPal only supports a limited number of currency values).

The best method to deal with this is to set the currency with the conversion value of 1 in your currencyvalues table to one that is definitely supported by your gateway. USD is the most commonly accepted currency and should, more often than not, be set to conversion 1 in your currency values table.    

Verisign / Paypal Payflow Link

If you are using the Payflow Link payment gateway, and your pages are hosted by Paypal, you may need to make changes to your verisigngateway.asp file.

Depending on the version of the gateway you are using on your site your gatewaylocation may refer to https://payments.verisign.com.au/payflowlink or https://payflowlink.verisign.com/payflowlink.cfm

As of August 2008 you need to ensure that the gatewaylocation refers to https://payflowlink.paypal.com

 

How to Check and Update your files:

Open your verisigngateway.asp file in a text editor and locate the line beginning with:

const gatewaylocation=

Make sure this reads:

const gatewaylocation="https://payflowlink.paypal.com"

 

    

Incorrect "Order has been processed" message

This "order processed" message occurs when session variables have been lost.

Usually session variables are lost when switching domains when going into ssl mode. In some cases it occurs because you are using domains such as xxx.com and www.xxx.com and your web host is treating them as different domains instead of the same domain.

You would need to check that the domains are the same for both your ssl and non ssl sites.

If you are using a shared ssl setup then you would need to use the sslshopcheckout.asp functionality as it does not rely on session variables: http://www.vpasp.com/virtprog/info/faq_sharedssl.htm

In later versions of 5.0 and in 5.50 we added extra logic in shopcheckout.asp to catch this domain switch and try to recover.

Other reasons include:
2. No activity was done for 10-20 minutes. Say you walked away to get a coffee during the ordering process.

3. On Windows 2003, there is a Windows option to rotate servers (without you knowing it). This can be resolved by your web hosting company only. In Microsoft Internet Information Services (IIS) 6.0, Active Server Pages (ASP) applications configured to run in a Web garden application pool cannot share their session state or their application state.

The Web gardens feature was introduced in IIS 6.0, and it is available only when IIS runs in worker process isolation mode.

See http://support.microsoft.com/default.aspx?scid=kb;en-us;822171

See http://support.microsoft.com/default.aspx?scid=kb;en-us;258699

Other Reasons Sessions may be lost
If the global.asa is 0 characters, sessions may be lost

http://support.microsoft.com/default.aspx?scid=kb;en-us;281298

Symptoms may include any of these:
1. Unknown Lang... at random times
2. Unauthorized administrator at random times

See also www.vpasp.com/virtprog/info/faq_sessions.htm

    

Cookies

A cookie is a small piece of information that is stored on your PC. The information can be stored for a few minutes or it can be stored for years and then expire.

VP-ASP does not use cookies but uses a concept called session variables. Session variables are stored for short periods of time on your web server. They help VP-ASP remember the state of what is being ordered and by whom. They vanish when session ends.

In Microsoft design, if session variables are being used, as they are in VP-ASP, then the clients browser needs to have cookies enabled. So although VP-ASP does not store any data as a cookie, Microsoft design of session variables requires that cookies be enabled on your browser.

VP-ASP saves cookies

There are times when VP-ASP will save a cookie that will reside on your PC. 
If you the "Saved Cart" facility when browsing VP-ASP shop, the saved cart is stored as a cookie. You can decide how long it stays and you can delete this cookie. This is like a wish-list or repeat shopping list of products.

If you want a quick login the next time you visit a store, your customer details can be stored as a cookie. This is an option you can select if it was activated for a particular shop. 

If you have a problem with your customers not being able to use the site, they may have Cookies turned off in their browser.

    

Nothing Works

If you click on Shop button, Merchant administration or any other link from the main VP-ASP page and you get

  • a blank screen
  • or a file attempts to download to your PC
  • or some strange program attempts to run

Then you have a problem running any ASP scripts.

The solution is different if you are running on your own PC using Personal Web Server or whether you are running on a web hosting company or ISP (Internet Service Provider).

Running on Local PC 
Please see PWS setup

Running on web hosting company or ISP #1 
VP-ASP only runs on Windows NT servers. Your web hosting company may be running Unix. To check go here and enter your URL. It will tell you whether you are on Windows NT or some version of Unix such as Linux.

The solution is to change to a  web hosting company that supports Active Server Pages. Many are listed at www.aspin.com

We use a company called www.Innerhost.com. If you sign-up please let us know.

Running on web hosting company or ISP #2 
Not every ISP or web hosting company that runs Windows NT also supports ASP (Active Server Pages) and databases. You will now have to ask your web hosting company. You may need to change the plan that you are on.

    

Session State

When trying to start VP-ASP diagnostic tool, you receive error message or when trying to add something to the cart and nothing appears. Type in the diagnostic tool shopa_sessionlist.asp at the browser.

There should be 20+ session variables displayed. If there are 0, then NT is not configured with Session State enabled for the application.

The Web server automatically creates a Session object when a Web page from the application is requested by a user who does not already have a session. The server destroys the Session object when the session expires or is abandoned. VP-ASP Requires that Session State be enabled.


Use the following steps to enable sessions for the ASP application:

  1. Using the Internet Information Services Manager, right-click your Web application and click Properties.
  2. On the Directory Properties tab, click the Configuration button.
  3. On the App Options tab, check the Enable Session State option

MORE INFORMATION

You will need to enable session State for the application. The following instructions come from Microsoft Knowledge Base article Q242425.

http://search.microsoft.com/results.aspx?mkt=en-US&setlang=en-US&q=session+state

    

XML Causes System to Hang

VP-ASP uses the Microsoft supplied XML HTTP facility in a number of ways to communicate from your server to another computer. It is used for:

  1. UPS real time shipping calculations
  2. Certain electronic gateways
  3. Canada post shipping Calculations

Over the last months, it has been discovered that certain combinations of patches and software installations supplied by Microsoft cause any use of XML to either "hang" or cause the system to go into 100% CPU usage.

Details about Microsoft XML HTTP and DLL can be found at
MSXML 4.0 RTM

Symptoms:

When leaving shopcustomer.asp when a realtime shipping method is selected the Browser Times Out.

The DLLHOST process on the web server runs at 100%, this is relevant to Server Administrators only.

Cause:

This is a Microsoft introduced bug that occurs when Internet Explorer 6.0 has been installed on the Web Server.

Internet Explorer 6.0 disables some of the methods available to the XML3.0 COM  or earlier that the real time shipping  or the other XML based  utilities relies on.

Resolution:

In your VP-ASP file, such as shopupsreal.asp, locate line:

set xmlhttp = Server.CreateObject ("Microsoft.XMLHTTP")

Change to:

set xmlhttp = Server.CreateObject ("MSXML2.ServerXMLHTTP.4.0")

Try the file on your server. 
If you get a "Server Create Object" Error, it means that the XML4.0 dll is not installed. You will have to get your ISP to install it from the MS site:
MSXML 4.0 RTM
 
Resolution 2:
We can provide a new shopupsreal.asp (for VP-ASP 4.0) that does not use XML HTTP.
It can use ASPTEAR DLL or DYNUHTTP DLL. Some web hosting companies may have these installed. If they do not, you will have to ask them if they will install a DLL for you. We can supply either on request.

    

File Upload

The VP-ASP Plus! Pac and higher has an image upload facility. This allows uploading of files via the browser. Most web hosting companies make their folders read-only to prevent hacking. This limits the usefulness of the upload facility in comparison to normal file transfer (FTP).

It is strongly recommended that NTFS permissions be adjusted on the directory you are uploading to. Also apply the same permissions to all subdirectories to avoid an "Access is denied" or other errors when trying to upload images.

In most cases this is something your web host will need to do for you.

If you have direct access to your server using Windows Explorer, right-click on the directory you are trying to upload to, select the Security tab and give the "Everyone" account full control over this folder.

Click "Advanced..." and make sure the checkbox "Reset permissions on all child objects..." is checked

Do this for the Database folder or the folder where you have your database stored, the StyleSheet folder and the Editor folder as well.

If you get the following error;

object required
or
Permission denied

This normally means  the folder you are trying to upload to is read-only.

Permissions on Windows can only be changed by a Windows Administrator.

If you are using Windows the chmod command does not work and is unused by Windows.

We suggest you talk to your web hosting company or system administrator. We cannot alter the permissions and in most cases you cannot either.

VP-ASP does not require that you use the upload facility. You can simply put the file name into the product or category record and upload the file using your normal File Transfer method

    

Page hanging (Norton)

PROBLEM: The page is hanging whenever i try to run VPASP. It is also creating an .ldb file which cannot be deleted.

SOLUTION:
There is a known problem with Norton Anti Virus installed and trying to read files. Norton AntIvirus will cause reading files to "hang" your system.

Please see this Microsoft Knowledgebase Article

http://support.microsoft.com/support/kb/articles/Q295/3/75.ASP?LN=EN-US&SD=gn&FR=0&qry=FileSystemObject%20hang&rnk=2&src=DHCS_MSPSS_gn_SRCH&SPR=MSALL

This is taken from the microsoft site:

SYMPTOMS

When you browse an Active Server Pages (ASP) page that contains FileSystemObject calls, the request for that page stops responding (hangs) and eventually times out in the browser.

CAUSE

This problem occurs because the Script Blocking feature in Norton AntiVirus software blocks scripting operations that access the file system, such as FileSystemObject . Although this problem is prevalent in Active Server Pages (ASP) Web applications, it can also occur in other technologies, such as Windows Scripting.

NOTE: This problem occurs even if Norton AntiVirus has been disabled.

RESOLUTION

To resolve this problem, contact Norton AntiVirus Software Support. The following Symantec Web site describes how to remove the Script Blocking feature:

http://service1.symantec.com/SUPPORT/sunset-c2002kb.nsf/0/2012fd75200d848285256edd00478dd6?OpenDocument&seg=hm

NOTE : You may have to reboot the server after you make the above-mentioned changes to the Norton AntiVirus software.

The third-party contact information included in this article is provided to help you find the technical support you need. This contact information is subject to change without notice. Microsoft in no way guarantees the accuracy of this third-party contact information.
From the Norton site: Situation:
You want to disable Norton AntiVirus Script Blocking.


Solution:
To disable Norton AntiVirus 2001 Script Blocking:

    1. Start Norton AntiVirus.
    2. Click Options. If a menu appears when you click Options, then click Norton AntiVirus. The Options for Norton AntiVirus dialog box appears.
    3. Click Script Blocking.
    4. Uncheck "Enable Script Blocking (recommended)."
    5. Click OK.

To disable Mc Afee Script Blocking:

  1. Start Mc Afee Anti Virus
  2. Goto Mc Afee ->Configure ->ActiveShield ->Advanced ->Exploits
  3. Uncheck 'Enable ScriptStopper'
    

European Dates and Numbers

VP-ASP, European Dates and Numbers

Symptoms:

Numbers being multiplied by 100, month/day being switched around in dates

Cause:

Some European countries format numbers using commas as decimal points (instead of full stops), for example

one dollar and five cents would be formatted as:

$1,05 instead of $1.05

It is possible to change the way that numbers are displayed throughout the shopping cart by changing your xlcid configuration variable. A list of lcid codes for each country/language can be found at: http://support.microsoft.com/default.aspx?id=221435

Problems can arise if your webserver does not format numbers in the same way that your xlcid does:

Access databases store numbers in the database based on the webservers regional settings and not based on what the LCID is set to for the website/session. This causes problems if your webserver is using one number formatting system and your website is using a different system. For example if the webserver is set to store numbers using an American format (using full stops as decimal points) and your website's lcid is set to format

The solution to this type of problem is to make sure that xconverteuropeannumbers is set to Yes in your shop's configuration and to apply the following modification:

This modification uses a second lcid value when logged in as an admin so that numbers are displayed in the servers lcid.

In your shop$config.asp file somewhere before the %> line at the bottom of the page

add:

const xadminlcid="1033" 'for american numbers/dates, change this to your admin lcid value

Then in your shop$db.asp file change line 226 and 867 and line 420 of shopa_reports.asp from:

if Getconfig("xLCID")<>"" then

Session.LCID=getconfig("xlcid")

end if

to:

if Getconfig("xLCID")<>"" then

if getsess("admintype")="" then

Session.LCID=getconfig("xlcid")

else

Session.LCID=xadminlcid

end if

end if

Glossary:

lcid - locale ID value that is set on a per session basis and defines how numbers are displayed on a website,

regional settings - set in the control panel of your webserver, defines how the system formats numbers and dates

    

Missing Orders

Order Records 
 

VP-ASP stores the order record when the customer goes past file shopcreateorder.asp.

If the customer leaves the site after shopcreateorder.asp but before shopthanks.asp the order will appear incomplete and will not contain the payment information.

This is by design, since many payment gateways do not return
automatically to the origin site without pressing a button.

It is important the merchant has a record of the order to match against the email receipt received from the payment gateway if the customer does not return to the site after executing payment with their credit card at the Gateway.

This is also valuable information for marketing as you can ask why they decided not to buy etc.


Missing order numbers 
 

If the customer cancels an order or changes it after the order record is created and then reorders a new order record is created. To keep all orders including those that are "canceled" using the shop configuration values. The canceled orders will be marked canceled in the payment field.

xkeepcanceledorders=Yes

xkeepkeepitems=Yes
 

    

Customers are losing the contents of their cart and are getting an error when checking out.

Some customers may be complaining that they are losing the contents of their shopping carts when trying to check out or are getting "Order has been processed" errors. This is generally caused by the url changing when checking out. This can be caused by something as simple as the "www" being left out of the url.

This can be altered at the server but most hosts will not do this so we have listed below a work around for this problem if you are experiencing this issue.

The below code changes add the xmysite domain to all add to cart links. This may solve the session loss problem some customers have been getting when using http://domain and http://www.domain to access their store.

Log into your admin and in the online Set-Up search for xmysite in the search box.

Set xmysite to http://www.yoursite.com in the online Set-Up.

Make the following line changes. If the code does not match the line then locate the nearest match as the code may be on different lines depending on your version.

Around line 38 of shopproductformat.asp:
response.write "form action=""shopaddtocart.asp"" method=""POST"">"

to:

response.write "form action=""" & getconfig("xmysite") & "/shopaddtocart.asp"" method=""POST"">"

Around line 28 of shopproductformat_template.asp from:
response.write "form action=""shopaddtocart.asp"" method=""POST"">"

to:

response.write "form action=""" & getconfig("xmysite") & "/shopaddtocart.asp"" method=""POST"">"

Around line 601 of shopproductsubs.asp:
OPTION VALUE="shopaddtocart.asp?productid=%= rs("catalogid") %>&quantity=1"> %= rs("cname") %> /option>

to:

OPTION VALUE="%=getconfig("xmysite")%>/shopaddtocart.asp?productid=%= rs("catalogid") %>&quantity=1"> %= rs("cname") %> /option>

Around line 135 of shopdisplayproducts.asp:
Response.Write("form name=form1 method=Post action=""shopproductselect.asp"">")

to:

Response.Write "form name=form1 method=Post action=""" & getconfig("xmysite") & "/shopproductselect.asp"">"

Around line 405 of shopfileio.asp:
Handle_FormStart "User",parsearray, "shopaddtocart.asp"

to:

Handle_FormStart "User",parsearray, getconfig("xmysite") & "/shopaddtocart.asp"

Around line 609 of shopfileio.asp:
Handle_FormStart ivalue,parsearray,"shopaddtocart.asp"

to:

Handle_FormStart ivalue,parsearray,getconfig("xmysite") & "/shopaddtocart.asp"

Around line 838 of shopfileio.asp:
newaction="shopaddtocart.asp"

to:

newaction=getconfig("xmysite") & "/shopaddtocart.asp"

Around line 649 of shopfileio.asp:
Handle_FormStart ivalue, "shopproductselect.asp"

to:

Handle_FormStart ivalue, getconfig("xmysite") & "/shopproductselect.asp"

MAKE SURE YOU BACK UP THE FILES BEFORE ALTERING THEM IN CASE YOU MAKE AN ERROR!

    

The sub menu drop downs are not closing. How do I fix this?

When changing the layout of your page there are a few constrints that need to be taken into consideration.

One of these is ensuring you have the menu layers references in the correct location i nthe code.

The horozontal menu allows you to have drop down sub menus and these are included in the page at the very bottom of the shoppage_trailer.htm file.

If you are experiencing an issue with the menu first check that the include is in the correct location.

Open your shoppage_trailer.htm in your html editor such as Dreamweaver or FrontPage and look for the following code at the very bottom of the page:

!--START DIVS MENU -->
!--#include file="editor/horonavbar_divs.html"-->
!--END DIVS MENU -->
/body>
/html>

If your code looks any different to this then the sub menus will not work.

    

Shipping multiplying by 100

Problem: When checking out, the shipping cost is multiplied by 100.

Solution: To solve this problem, please follow these steps.
  1. Login to your Administration
  2. Go to the Setup tab (or Configuration)
  3. Search for "xlcid" (no quotes)
  4. Enter the LCID code for your country (look up on http://www.microsoft.com/globaldev/reference/lcid-all.mspx
  5. Click Continue
  6. Search for "xconverteuropeannumbers" (no quotes)
  7. Set to Yes
  8. Click Continue
  9. Reload your Configuration

If you have your products stored in your database with commas instead of decimal points and the steps above don't solve your problem, try adding in the following code change:

  1. Open shopformatorder.asp
  2. Locate the following line:

    unitprice=items("unitprice")
  3. Add this below:

    unitprice = left(unitprice, len(unitprice) - 2) & "," & right(unitprice, 2)
    

Unauthorized Administrator when viewing Product & Sales Report

If you are receiving an Unauthorized Administrator error when trying to view the Product Report or Sales Report, please complete the following steps -

1. Login to your Administration

2. Click on the "Occasional Tasks" tab

3. Go to Admin > Admin Users section

4. Click the Edit button next to the user who is having trouble accessing the reports.

5. In the left column of Admin sections, Product Report and Sales Report are listed twice each (as they are available in two different menus). The user needs to be granted access to both instances of each menu item or they will receive the Unauthorized Administrator error.

Make sure there are ticks in the box next to both instances of Product Report and Sales Report.

6. Click the Continue button at the bottom of the page.

7. Logout of the admin and log back in.

8. You should be able to access the Reports now without any errors

    

Problems adding features to product

Problem: Features aren't adding to a product properly or lots of zeroes are being added as features instead of the proper products.

Solution: This is usually caused by having commas in your feature's name. There are two ways to get around this -

1. Change your feature names to not have commas in them.

2. Make a code change to shopa_addproduct.asp -
    a. Locate the following lines:

        Do While NOT rscat.EOF
            features(featurecount)= rscat("featurecaption")& " [" & rscat("featurenum") & "]"
            featurecount=featurecount+1
            rscat.movenext
        loop

    b. Change to:

        Do While NOT rscat.EOF
            features(featurecount)= replace(rscat("featurecaption"),",","|") & " [" & rscat("featurenum") & "]"
            featurecount=featurecount+1
            rscat.movenext
        loop

    c. Save the file and upload to your server.

In your Product Addition page, the features will show up as having a "|" symbol where the commas should be. This will only appear in the admin, and not affect your customer's view.

    

Unknown lang errors all over site

Problem: When viewing my site, there are "unknown lang" errors everywhere.

Solution: This problem can sometimes indicate that you haven't set up shop$config.asp to look at your database properly. See Checking Your Database for more information.

It can also mean that you haven't changed the xshopid in shop$config.asp from the default. Try changing xshopid to something unique and then reload your Configuration (see this page for more information).

If you have checked those two things and you are still having trouble, try making the following change to the file shopinitapplication.asp.

1. Locate the following line:
     Const Langnodbvalue="**nodb**"

Add this line below:
     dim restarttrap


2. Locate the following line:
     Function GetConfig (fieldname)

Add this line below:
     checksystemrestart


3. Locate the following line:
     dim tempname, tempvalue, tempnamesess

Add these lines below:
     dim rvalue, rc
     checksystemrestart


4. Add the following lines at the bottom of the file, just before the %> tag.
     sub CheckSystemRestart
          if restarttrap<>"" then exit sub
          restarttrap="Yes"
          dim fieldname, fieldvalue
          fieldname="Init" & "_" & xshopid
          if Application(fieldname)="Yes" then exit sub
          shopinitapplication
     end sub

This has been fixed in version 6.09.

    

PayPal IPN receiving double payments

PROBLEM: I have PayPal IPN installed on my site and I am occasionally getting double payments. It appears that the customer receives a successful transaction message in PayPal, but when they come back to my site, it says it failed.


SOLUTION:
The reason for this is that PayPal returns a Transaction ID when a payment is made and VP-ASP makes a call in the background to retrieve this ID and validate the authenticity of the transaction.

If this check is done too quickly, the ID may not have been registered in the PayPal system and it will tell VP-ASP that it has failed incorrectly.

To solve this, we recommend installing a component called DynuWait

You then need to add the following code into paypalIPNresult.asp, just after the include file -

<%
set mywait = server.createobject("Dynu.Wait")

' The below line will cause a wait of 5 seconds
mywait.Wait(5)

set mywait = nothing
%>

Thank you to jeremy_burgess in our forum for this solution.
    

The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.

If you receive the following error, or something similar, you need to change the xsortproducts configuration option.

Microsoft JET Database Engineerror '80040e14'

The SELECT statement includes a reserved word or an argument name that is misspelled or missing, or the punctuation is incorrect.

/shop$db.asp, line 533

1.Enter online Set-Up and insert in search box:

xsortproducts

2.Removecatalogidfrom the list of options.

3.Click continue at the bottom of the page.

4.In your browser type in the following at the end of your url:

shopend.asp?end=1

The link will look something like this only the domain will be the domain of your site:

http://www.yourdomain.com/shopend.asp?end=1

5.In your admin go back to the onlie Set-Up and reload the configuration by clicking the "Reload Shop Configuration" link. .

    

Cannot Locate Shipping Record Error

If you receive the following error, or something similar, you need to edit your shipping record and remove all ( and ) character from your shipping record

Cannot locate shipping record
Select * from shipmethods where shipmethod='' and shipcountry='other'

All shipping records must not contains character such as ( or ) character. The main reason is to prevent hackers from performing SQL Injection attack to modify your database.
    

Include Handling Fee on Emails

If handling fee does not show up on your customer and merchant emails, you will need to modify shopmailformat.asp, modify line 28 to the following
 
getlang("langmailtax")  & shopformatcurrency(rsorder("otax"),ydecimalpoint) & cr &_
 
below that line add the following

getlang("langproducthandling") & shopformatcurrency(rsorder("ohandling"),ydecimalpoint) & cr
 
 
 
Back Printable Version Search other topics Submit a Ticket