Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDNN Open Source...DNN Open Source...Module ForumsModule ForumsStoreStoreBest Way to Contribute?Best Way to Contribute?
Previous
 
Next
New Post
4/8/2008 6:34 PM
 

 

Hi Gilles and Will and the rest of the DNN Store Community

I have been using DNN for a short while and am developing three sites for my clients, two of which are using the Store module.

http://www.lammashow.co.uk
http://www.worldcarparts.co.uk
http://vale.srcsolutions.co.uk (temp URL)

The car parts client has requested some mods, specifically to the Store and I beleive that some of them may be of interest to the rest of the store community.  I will be doing them any way and it would be great if they could be integrated back into the store.  Not least to minimise work for myself when the next upgrade is released !!

I have set up my own SVN for DNN, so I can track my changes pretty well.

The areas I will be looking at include:

  • Exporting Sales data to csv (for use with another of my applications that imports data into Sage Account package)
  • Considering adding a second Model number field, for use as a SKU.  For use where one stock item can be sold as two different products, possibly at two different prices.
  • Displaying prices in multiple currencies
  • PayFlow payment provider
  • "Purchase Ledger Day Book"
  • Selecting multiple open orders (from a single list) and marking them all (via a single button) as dispatched and printing address labels
  • Ensuring Store pages are as "Google Friendly" as is reasonable.  (I have already submitted a forum post about this but it went to DNN:Chat rather than the store forum!?)
  • Ability for customer to choose the shipping method if multiple methods are available for the current basket weight.

I also see that on the Gemini issue tracking there is an issue that has been checked-in about improving the handling of the delivery and billing addresses.  Is this already complete as it is something that I might need to look at?

What is the best way to submit mods for your consideration, to minimize the effort by you for including it in the project?  I understand that my mods are not guaranteed to be included.

Thanks

Stuart

 

 
New Post
4/14/2008 5:15 PM
 

 

The first change I have made is to make Store more "Google Friendly".  Basically the page title and description are set dynamically for any page that contains a Store Catalogue Module.

Unified Diff below...

--- C:/DotNetNuke_2/Website/DesktopModules/Store/Catalog.ascx.cs Mon Apr 14 21:52:23 2008
+++ C:/DotNetNuke_2/Website/DesktopModules/Store/Catalog.ascx.cs Mon Apr 14 21:52:29 2008
@@ -510,6 +510,31 @@
    productDetail.ThumbnailWidth = int.Parse(moduleSettings.ProductDetail.ThumbnailWidth);
    productDetail.ShowReviews = bool.Parse(moduleSettings.ProductDetail.ShowReviews);
    productDetail.DataSource = productInfo;
+      //Added by Stu - Add Model Name and Number to page title, if available
+      DotNetNuke.Framework.CDefault p = (DotNetNuke.Framework.CDefault)Page;
+      //Set dynamic page title
+      if (!string.IsNullOrEmpty(productInfo.ModelName))
+      {
+        p.Title = productInfo.ModelName;
+        if (!string.IsNullOrEmpty(productInfo.ModelNumber))
+        {
+          p.Title += ", " + productInfo.ModelNumber;
+        }
+      }
+      else
+      {
+        if (!string.IsNullOrEmpty(productInfo.ModelNumber))
+        {
+          p.Title = cpTitle + " > " + productInfo.ModelNumber;
+        }
+      }
+      //Set dynamic Meta Keywords and Description
+      if (!string.IsNullOrEmpty(productInfo.Summary))
+      {
+        p.KeyWords = productInfo.Summary;
+        p.Description = productInfo.Summary;
+      }
+      //End added by Stu
 
    return productDetail;
   }

 
New Post
4/14/2008 5:29 PM
 

 

Second thing I would like to contribute is a little bug-fix.

As the currency I use is £ I noticed that the default check-out page is not localised, so I used techniques found elsewhere in the store to localise the currency symbols on the check-out page.

Unified Diff below...

--- C:/DotNetNuke_2/Website/DesktopModules/Store/Checkout.ascx.cs Tue Apr 08 22:44:11 2008
+++ C:/DotNetNuke_2/Website/DesktopModules/Store/Checkout.ascx.cs Sun Jan 27 09:56:14 2008
@@ -89,7 +89,7 @@
   /// </summary>
   private void InitializeComponent()
   {
-
+      this.lstOrder.ItemDataBound += new DataListItemEventHandler(this.lstOrder_ItemDataBound);
   }
   #endregion
 
@@ -230,6 +230,24 @@
 
    updateCheckoutOrder(_orderInfo);
   }
+
+    private void lstOrder_ItemDataBound(object sender, DataListItemEventArgs e)
+    {
+      if (e.Item.ItemType == ListItemType.Item)
+      {
+        OrderDetailsInfo orderDetailsInfo = (OrderDetailsInfo)e.Item.DataItem;
+
+        //Unit Cost
+        Label lblOPriceText = (Label)e.Item.FindControl("lblOPriceText");
+        lblOPriceText.Text = orderDetailsInfo.UnitCost.ToString("C", LocalFormat);
+
+        //Extended Amount
+        Label lblOSubtotalText = (Label)e.Item.FindControl("lblOSubtotalText");
+        lblOSubtotalText.Text = orderDetailsInfo.ExtendedAmount.ToString("C", LocalFormat);
+
+      }
+
+    }
 
   /// <summary>
   /// This event should occur each time a change is made to the cart. 
--- C:/DotNetNuke_2/Website/DesktopModules/Store/Checkout.ascx Tue Apr 08 14:32:10 2008
+++ C:/DotNetNuke_2/Website/DesktopModules/Store/Checkout.ascx Mon Apr 14 22:24:27 2008
@@ -93,10 +93,10 @@
         <%# DataBinder.Eval(Container.DataItem, "ModelName") %>
         </td>
         <tr>
-          <td class="Normal"  align="left" runat="server" visible="false"><%# DataBinder.Eval(Container.DataItem, "ModelNumber") %> </td>
-          <td class="Normal" align="right"><%# DataBinder.Eval(Container.DataItem, "UnitCost", "{0:c}") %> </td>
+          <td id="Td1" class="Normal"  align="left" runat="server" visible="false"><%# DataBinder.Eval(Container.DataItem, "ModelNumber").ToString() + ' '.ToString() %> </td>
+          <td class="Normal" align="right"><asp:label id="lblOPriceText" runat="server" cssclass="Normal"></asp:label></td>
           <td class="Normal" align="right"><%# DataBinder.Eval(Container.DataItem, "Quantity") %> </td>
-          <td class="Normal" align="right"><%# DataBinder.Eval(Container.DataItem, "ExtendedAmount", "{0:c}") %> </td>
+          <td class="Normal" align="right"><asp:label id="lblOSubtotalText" runat="server" cssclass="Normal"></asp:label></td>
         </tr>
       </itemtemplate>
       <footertemplate>

 
New Post
4/14/2008 5:44 PM
 

 

The first SEO patch only changed the descriptions and titles for the Product Details page.  The patch below adds similar functions to the category pages.

Unified Diff below...

Index: Catalog.ascx.cs
===================================================================
--- Catalog.ascx.cs (revision 34)
+++ Catalog.ascx.cs (working copy)
@@ -400,6 +400,45 @@
 
             CategoryInfo category = categoryController.GetCategory(categoryID);
 
+            //Added by Stu - This is called recursively, so only fire for the current category
+            if (categoryID == catalogNav.CategoryID)
+            {
+
+              //Add Category Name + Parent Categories to page title, if available
+              DotNetNuke.Framework.CDefault p = (DotNetNuke.Framework.CDefault)Page;
+
+              //Set dynamic page title and keywords
+              if (!string.IsNullOrEmpty(category.CategoryName))
+              {
+                p.Title = category.CategoryName;
+                p.KeyWords = category.CategoryName;
+              }
+              //fetch parent categories
+              CategoryInfo ParentCategory = category;
+              while (ParentCategory.ParentCategoryID > 0)
+              {
+                ParentCategory = categoryController.GetCategory(category.ParentCategoryID);
+                if (!string.IsNullOrEmpty(ParentCategory.CategoryName))
+                {
+                  p.Title = ParentCategory.CategoryName + " > " + p.Title;
+                  p.KeyWords = ParentCategory.CategoryName + " > " + p.KeyWords;
+                }
+              }
+
+              //Add to dynamic Meta Keywords
+              if (!string.IsNullOrEmpty(category.CategoryDescription))
+              {
+                if (p.KeyWords.Length > 0) p.KeyWords += " ";
+                p.KeyWords += category.CategoryDescription;
+              }
+              //Set dynamic Meta Description
+              if (!string.IsNullOrEmpty(category.CategoryDescription))
+              {
+                p.Description = category.CategoryDescription;
+              }
+            }
+            //End added by Stu
+
             foreach (ProductInfo product in productController.GetCategoryProducts(categoryID, false))
             {
                 products.Add(product);

 
New Post
4/28/2008 6:45 PM
 

 

Deleted as I posted twice in error.

 
Previous
 
Next
HomeHomeDNN Open Source...DNN Open Source...Module ForumsModule ForumsStoreStoreBest Way to Contribute?Best Way to Contribute?


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out