September is over

Wow what a weird month September has been.  Solunar.com sales fell through the floor, barely half of what the previous month did.  My distributor says that's normal for this time of year but I think the outdoors industry is scared to death of high fuel prices and a freaked out worldwide financial crisis.

In the mean time, I did make some good progress on AbleMods.  Most everything I want up on the site is available now.  Considering the site has only been live for 30 days, I'd say it was a great success.

October is going to be a good education month for me.  I've noticed quite a bit of interest in B2B portals for AC7 sites, so I'm going to give that some more thought.  Maybe I can whip up a module that's generic enough to cover most bases.  I'd also like to get the FTP features installed into Feed Builder – that's kind of handy to have but it's a real pain how Able implemented the feed FTP class.  Not sure it's worth the hassle.

I'm super-interested in making some sort of product stock notification plug in.  Something that lets people "subscribe" to individual products, so when the item comes back in stock the visitor is automatically sent a notification email.  It'd be easy to do with full source code, but I want to try doing it with the base AC7 install.  There's gotta be a way. 

Weather has cooled down and we're finally getting some rain here in Indiana.  At least the yard isn't looking like the Arizona foothills any more Smile

Home page changes

Made a few tweaks to the home page today on AbleMods.com.  I wanted to see how it would look with the featured products across the bottom instead of clumped together in the body of the page.  So far I think I like it, but I'll give it some more time to see how it sets with me.

Plus I got started on adding some much-needed links to the site news and other RSS-enabled blog sections.  This will be finished up later this week so there should be plenty of easy-to-find news and information links on the home page.

Dashboard modules

Added a few new dashboard modules to the arsenal today.  These nifty little addons are cheap and easy as heck to install – I really have grown to like the Latest Notes one especially.  Check them out on my store side http://www.AbleMods.com/ in the Dashboard Plugins category.

Adding a total order count column to order summary

Introduction
This modification will add a new column to your AC7 Order Summary page. The contents of the column will be a clickable number showing the total order history count for the customer that placed the order. This gives you the ability to quickly and easily see which customers are repeat customers without having to switch to the reports page.
The total count is all-inclusive and does not restrict by a particular date range. It is also a link. When clicked, it will take you to the Edit User page so the detailed history for that customer can be viewed.

Modifications
The page file we'll be changing is located in ~/Admin/Orders/. You'll need to change both the default.aspx and default.aspx.cs files, so back them both up before going any further.

Edit the ~/Admin/Orders/default.aspx file first. Look for this section of code:

Code:
                            <asp:TemplateField HeaderText="Customer" SortExpression="BillToLastName">
                                <ItemStyle HorizontalAlign="Center" />
                                <ItemTemplate>
                                    <asp:Label ID="CustomerName" runat="server" Text='<%# string.Format("{1}, {0}", Eval("BillToFirstName"), Eval("BillToLastName")) %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>

and replace it with this code:

Code:
                            <asp:TemplateField HeaderText="Customer" SortExpression="BillToLastName">
                                <ItemStyle HorizontalAlign="Center" />
                                <ItemTemplate>
                                    <asp:Label ID="CustomerName" runat="server" Text='<%# string.Format("{1}, {0}", Eval("BillToFirstName"), Eval("BillToLastName")) %>'></asp:Label>
                                </ItemTemplate>
                            </asp:TemplateField>

                            <asp:TemplateField HeaderText="History" SortExpression="">
                                <ItemStyle HorizontalAlign="Center" />
                                <ItemTemplate>
                                    <asp:HyperLink ID="OrderCount" runat="server" Text='<%# string.Format("{0}",OrderCount(Container.DataItem)) %>' SkinID="Link" NavigateUrl='<%# Eval("UserId", "~/Admin/People/Users/Edituser.aspx?UserId={0}") %>'></asp:HyperLink>
                                </ItemTemplate>
                            </asp:TemplateField>

Done? Good, save it. Now let's edit the ~/Admin/Orders/default.aspx.cs file. Look for this section of code:

Code:
    protected string GetPaymentStatus(object dataItem)
    {
        Order order = (Order)dataItem;
        if (order.PaymentStatus == OrderPaymentStatus.Paid) return "Paid";
        if (order.Payments.Count > 0)
        {
            order.Payments.Sort("PaymentDate");
            Payment lastPayment = order.Payments[order.Payments.Count – 1];
            return StringHelper.SpaceName(lastPayment.PaymentStatus.ToString());
        }
        return order.PaymentStatus.ToString();
    }

and replace it with this code:

Code:
    protected string GetPaymentStatus(object dataItem)
    {
        Order order = (Order)dataItem;
        if (order.PaymentStatus == OrderPaymentStatus.Paid) return "Paid";
        if (order.Payments.Count > 0)
        {
            order.Payments.Sort("PaymentDate");
            Payment lastPayment = order.Payments[order.Payments.Count – 1];
            return StringHelper.SpaceName(lastPayment.PaymentStatus.ToString());
        }
        return order.PaymentStatus.ToString();
    }

    protected string OrderCount(object dataItem)
    {
        Order order = (Order)dataItem;
        return order.User.Orders.Count.ToString();
    }

Save it when you're done. Upload the changes if you have to, then give it a try!

Conclusion
Knowing more about your customers is what makes a good business owner great. Give yourself another edge over your competition by quickly and easily knowing your repeat customers before their order has even been filled.


Delays…ugh

Having no luck at all getting hard-code into the RMA returns module development.  Way too many things hitting me at once.   I planned on starting last Sunday and here I sit Thursday having yet to take a serious start on it.  Hopefully tomorrow I can push out a bunch of the smaller items on my plate to make room for a good beginning.

Figured out webparts today

Well I needed a break from all the projects this weekend, so I took the challenge of learning how webparts work in .Net.  Kind of weird with how they're initially configured, so I skipped all that (isn't life fun when you can do that?) and went straight for making a new webpart.

 It's pretty slick – basically you can make any user control into a webpart by using an XML reference file to describe the webpart.  The tricky part was finding a useful example of one as it's not included with AC7.  Finally some digging through Google turned up some reasonable samples and I was able to get it working.

Now I can create useful admin Dashboard features that are both easy to resell and easy to install.  Can't get much better than that.  I made a nice article in the AC7 forums here and included a free pie chart web control in case you're interested.

Contact Us email control finished

Ok, another new user control added to the weapons arsenal this evening.  This time it's a user control that makes it super-easy to add email-based Contact Us functionality to your AbleCommerce 7 storefront.  Simple installation and full source included, check it out in the User Controls category.

AbleMods coming along nicely

I'm really starting to like the way AbleMods is turning out!  I decided to try something different and put the home page copy text in a side bar on the right side.  At first I had it below the home page graphic but I just didn't like the visual separation between the graphic and featured products section.

So I took a chance, copied some CSS styling from a user control and voila – I really like how it turned out.

Also got one manual re-branded to AbleMods along with a whole new user control documented, packaged and loaded into the site.  Overall, quite a productive day.