The purpose of this modification is to give you, the esteemed site admin, the ability to edit the shopping basket of a registered user. Why? Well, I don't really know. But I found a page written to do it and it looks really cool. You want to be a cool site admin, don't you?
Actually it makes a really nice impression with the customer when they are on the phone trying to order something. By handling their basket for them, you encourage them to continue their online experience. This motivates an online checkout instead of the dreaded "Can't I just pay you over the phone" response. It also quite possibly saves the sale.
But I can already do this
Yes, you can create a new order for a customer from the Admin screen. But you cannot edit their existing basket. This can potentially lead to confusion because the customer now has basket items for items they also just ordered. Customers are easily confused, so keeping things simple and painless encourages a return visit.
The changes are actually very easy. First make a backup copy of the ~/Admin/People/Users/CurrentBasketDialog.ascx user control.
Now edit the file. Look for this line of code in the Page_Load section near the beginning:
|EditBasketLink.NavigateUrl += _UserId;|
Add another line directly below it that looks like this:
|EditBasketLink0.NavigateUrl += _UserId;|
So now you should have this:
EditBasketLink.NavigateUrl += _UserId;
EditBasketLink0.NavigateUrl += _UserId;
Now we need to edit the HTML part of the page, so scroll all the way to the bottom of the file. Find this line:
| <asp:HyperLink ID="EditBasketLink" runat="server" NavigateUrl="~/Admin/Orders/PlaceOrder1.aspx?UserId=" SkinID="Button" Text="Create Order"></asp:HyperLink>|
Replace that line with this exact code:
| <asp:HyperLink ID="EditBasketLink" runat="server" NavigateUrl="~/Admin/Orders/PlaceOrder1.aspx?UserId=" SkinID="Button" Text="Create Order"></asp:HyperLink>
<asp:HyperLink ID="EditBasketLink0" runat="server" NavigateUrl="~/Admin/People/Users/EditBasket.aspx?UserId=" SkinID="Button" Text="Edit Basket"></asp:HyperLink>
Now save the file. Done!
Testing the changes
Ok, now the fun part. Let's make sure we haven't blown something (else) up. Log into your site and go to the store side. Add some items to your cart. Don't check out.
Click back to the Admin side and log in to the Admin side with the same account you just used to add basket items. Click on the People menu and choose Users.
Find the user account you used and click Edit. Scroll down on the Edit User page and you'll see the current basket contents, a Create Order button and….holy new buttons Batman! There is your new spiffy Edit Basket button. Click it.
Editing a basket
take a look at the edit basket screen. First, you'll notice there's no "Delete item" button. You don't need it. Just set a particular basket item to "0" quantity and hit the Recalculate button at the bottom. The item is then removed.
You can add new items to the basket with the Add Product button, and (insert that 2001 space movie theme) it even allows searching by SKU – how cool is that?!
Anything that improves the customer service experience is a good thing. Customers like instant gratification when it comes to their shopping experience. This modification puts one more tool in your belt when it comes to helping convert site visitors into store customers.