Page 1 of 1
Admin Side - Placing an Order
Posted: Mon Jun 01, 2009 4:57 am
by niall08
When placing an order for a customer (e.g. taking an order over the telephone), I can't get the page to show shipping options for the Shipping address, only the Billing address (i.e. a customer in New Zealand wants to purchase goods but have them shipped to the UK, where our store is - but the customer only sees global delivery services, not the UK-based postal services that are applicable).
Has anyone run across this problem before?
Re: Admin Side - Placing an Order
Posted: Mon Jun 01, 2009 7:39 am
by niall08
I've just noticed another thread..
Is the fact that billing and shipping addresses don't work in the "Create an Order" screen on the admin side a persisting bug in the AC product??
Re: Admin Side - Placing an Order
Posted: Mon Jun 01, 2009 10:43 am
by mazhar
Please post that thread link and also provide some more details about application's buggy behavior when placing order via admin.
Re: Admin Side - Placing an Order
Posted: Tue Jun 02, 2009 1:01 am
by niall08
Mazhar,
The other thread is:
viewtopic.php?f=42&t=10023&p=43570&hili ... der#p43570
In terms of being more specific:
I'm simulating taking an order by telephone;
I create a new user, with a valid address, through PEOPLE > Users;
Once created, I "Edit" their profile, creating a new order;
I add items to the order and "place the order";
In the checkout screen, I uncheck the "same as billing address" checkbox, at which point the validation highlights the required fields;
I complete the shipping address and refresh the shipping, but I only get shipping options based on the billing address.
The problem arises on PlaceOrder2.aspx - the ShipAddress object appears to be correct (i.e. use the Shipping, rather than the Billing address) - but the correct it doesn't seem to be used to extract the address for the calculation of the shipping rules.
In PlaceOrder2.aspx.cs the UpdateShipMethod has a method call to _Basket.Recalculate() - the shipment.AddressId is different before and after this call - before it points to the Shipping address, afterwards it points to the billing address.
In the BasketShipments table in the DB, the AddressId for the shipment remains as the ShippingAddressId - but the ShipMethodId points to a Shipping Method that is invalid for the Shipping Address, but valid for the Billing Address.
After I commented out the call to ShipmentList.DataBind() after the _Basket.Recalculate() call, everything seems to work! Although it does require the user to press the "refresh" button for shipping twice.
The previously mentioned thread talks about "impersonating" the user rather than using the "Edit" option to create an order - but the "edit" functionality is far more preferable for the administrator.
Is this a bug?
Re: Admin Side - Placing an Order
Posted: Tue Jun 02, 2009 9:12 am
by Logan Rhodehamel
In our 7.0.3 release, the merchant place order UI was overhauled.
Re: Admin Side - Placing an Order
Posted: Wed Jun 03, 2009 4:07 am
by niall08
Hi Logan,
7.03?
So, similar to the problems with the "exclude" clause for shipping rules etc., the fix for this problem is only available for customers that paid extra to get enhancements?
Re: Admin Side - Placing an Order
Posted: Wed Jun 03, 2009 10:34 am
by Logan Rhodehamel
niall08 wrote:So, similar to the problems with the "exclude" clause for shipping rules etc., the fix for this problem is only available for customers that paid extra to get enhancements?
As part of our ongoing development effort, yes we do produce new versions on a regular basis. Improvements and enhancements are part of the value we provide to subscription holders. In AC7.0.2, the merchant place order interface was not user friendly for merchants. In AC7.0.3, we chose to improve the interface substantially. I mentioned this for anyone who may be interested.
Bug fixes are a different story. We maintain prior versions through service releases to correct major bugs that do not have workarounds. These service releases are made available to non subscription holders at no extra charge.
Can you elaborate on the exclude shipping zones bug? If it's the problem I am thinking of, then I believed we already patched this bug for 7.0.2.
Re: Admin Side - Placing an Order
Posted: Thu Jun 04, 2009 1:14 am
by niall08
Logan,
The extra $400 or whatever it was was pitched as a subscription for new feature development, NOT a subscription to bug/error fixes - I'm going to have to go and speak to your sales rep - these fixes are critical for our effective use of the product - they certainly aren't new features.
And yes, the "exclude" clause that doesn't work for zone-creation (used in shipping and tax rules) seems to have been corrected in 7.0.2 - another bug that was fixed and packaged as a new version, for which we don't have access to.
Re: Admin Side - Placing an Order
Posted: Thu Jun 04, 2009 8:07 am
by Logan Rhodehamel
Which version of AbleCommerce do you have?
Re: Admin Side - Placing an Order
Posted: Thu Jun 04, 2009 8:57 am
by niall08
Version 7.0.1
Re: Admin Side - Placing an Order
Posted: Thu Jun 04, 2009 10:07 am
by Logan Rhodehamel
The bug for excluding shipping provinces has been patched. The most recent version of CommerceBuilder.DLL for the 7.0.1 version can always be found at this location:
http://bugs.ablecommerce.com/show_bug.cgi?id=8131
To install the patch...
1) Make a backup copy of the file bin\CommerceBuilder.DLL to a safe location.
2) Download and unzip the most recent CommerceBuilder.DLL file.
3) Put the updated CommerceBuilder.DLL file into your bin folder
If you have any troubles with the updated DLL, restore your backup copy.
Re: Admin Side - Placing an Order
Posted: Thu Jun 04, 2009 10:10 am
by Logan Rhodehamel
niall08 wrote:The extra $400 or whatever it was was pitched as a subscription for new feature development, NOT a subscription to bug/error fixes
This is true. And when I originally mentioned the overhauled interface, I was not specifically addressing your bug. I wanted to highlight an area of the interface that has been a source of complaint. We did introduce enhancements to this area. Since you do not have a subscription the updates do not apply, but others reading the thread may be interested.
The bug regarding the shipping addresses in the place order UI has not been previously reported. I will see whether I can confirm it.
Re: Admin Side - Placing an Order
Posted: Thu Jun 04, 2009 11:22 am
by Logan Rhodehamel
niall08 wrote:After I commented out the call to ShipmentList.DataBind() after the _Basket.Recalculate() call, everything seems to work! Although it does require the user to press the "refresh" button for shipping twice.
In the original file PlaceOrder2.aspx, around line 205, the code is this:
Code: Select all
_Basket.Package();
_Basket.Recalculate();
ShipmentList.DataBind();
if (_Basket.Shipments != null && _Basket.Shipments.Count > 0)
{
// THERE WILL BE ONLY ONE SHIPMENT
Address ShipAddress = AddressDataSource.Load(AlwaysConvert.ToInt(Session["CC0_SHIPTOADDRESSID"]));
// UPDATE SHIPMENTS, ONLY ONE SHIPMENT WILL BE HANDLED
foreach (BasketShipment shipment in _Basket.Shipments)
{
int sessionShipId = AlwaysConvert.ToInt(Session["CC0_SHIPTOADDRESSID"]);
shipment.AddressId = sessionShipId;
}
ShipmentList.DataBind();
// UPDATE SHIPMENTS
for (int i = 0; i < ShipmentList.Items.Count; i++)
{
RepeaterItem item = ShipmentList.Items[i];
if (item != null)
{
BasketShipment shipment = _Basket.Shipments[i];
DropDownList ShipMethodList = (DropDownList)item.FindControl("ShipMethodList");
if (shipment != null && ShipMethodList != null)
{
shipment.ShipMethodId = AlwaysConvert.ToInt(ShipMethodList.Items[ShipMethodList.SelectedIndex].Value);
}
}
}
_Basket.Shipments.Save();
_Basket.Save();
}
CouponsPanel.Enabled = true;
The code can be updated to this:
Code: Select all
_Basket.Package();
if (_Basket.Shipments != null && _Basket.Shipments.Count > 0)
{
// THERE WILL BE ONLY ONE SHIPMENT
Address ShipAddress = AddressDataSource.Load(AlwaysConvert.ToInt(Session["CC0_SHIPTOADDRESSID"]));
// UPDATE SHIPMENTS, ONLY ONE SHIPMENT WILL BE HANDLED
foreach (BasketShipment shipment in _Basket.Shipments)
{
int sessionShipId = AlwaysConvert.ToInt(Session["CC0_SHIPTOADDRESSID"]);
shipment.AddressId = sessionShipId;
}
ShipmentList.DataBind();
// UPDATE SHIPMENTS
for (int i = 0; i < ShipmentList.Items.Count; i++)
{
RepeaterItem item = ShipmentList.Items[i];
if (item != null)
{
BasketShipment shipment = _Basket.Shipments[i];
DropDownList ShipMethodList = (DropDownList)item.FindControl("ShipMethodList");
if (shipment != null && ShipMethodList != null)
{
shipment.ShipMethodId = AlwaysConvert.ToInt(ShipMethodList.Items[ShipMethodList.SelectedIndex].Value);
}
}
}
_Basket.Save();
}
else
{
ShipmentList.DataBind();
}
CouponsPanel.Enabled = true;
That will resolve the issue with using a different shipping address in the place order page. This applies to version 7.0.1 only.
Re: Admin Side - Placing an Order
Posted: Fri Jun 05, 2009 2:04 am
by niall08
Thanks Logan - that does the trick!
Re: Admin Side - Placing an Order
Posted: Thu Jan 13, 2011 1:59 pm
by jim@givemore.com
Logan, do you know if the solution you posted here on Thu Jun 04, 2009 12:22 pm will also work if you are running Able 7.0 Build 8839?
We are having challenges entering a different ship to address, and getting the correct shipping rate to apply to the order. This is for orders placed via the Admin side with a defer payment option.
Thanks
Jim