AbleCommerce IE10 and Windows 8 problems

by Joe Payne 27. November 2012 11:35

IMPORTANT UPDATE from AbleCommerce

Microsoft has confirmed that there are known issues when using the latest IE10 browser and certain code that might be in Asp.Net 2.0 or Asp.Net 4.0 sites. All AbleCommerce 7.0.x stores are affected by these issues, so you should carefully read the available options and take corrective action.

!. Javascript disabled in IE10 due to outdated browser definitions file

2. ImageButtons do not work in IE10 when using .net 4.0 and older

Microsoft has made an official patch available for one of the issues. It is unknown, at this time, if Microsoft plans to release another patch for the second issue. As such, AbleCommerce is providing a work-around that can be applied to your AbleCommerce store.

You should fix both issues by following the instructions found on the AbleCommerce help site.

http://help.ablecommerce.com/index.htm#upgrades/ac7_aspnet/tech_bulletins/asp.net_2.0_and_4.0_with_ie_10.htm

Tags: , , ,

General News | Tech Support | AC7 Articles

Changing kit product to regular product breaks checkout

by Joe Payne 20. July 2012 21:41

Found an obscure bug this week in AC7.  If you have an existing product configured as a kit, changing it to a regular product (removing all kit components) could break your checkout.  Here’s why:

When Able writes a kit product to the basket, it also writes a value to the KitList field on the basket line item record.  This value tells Able to expect the basket line item to be a Kit product.  Same thing when an item is written to a wishlist.

However, when removing components from a kit product in the catalog, Able doesn’t update any existing basket items for the same ProductId.  So any abandoned baskets still have the a value in the KitList field.

If a shopper adds the product (when it was a kit) to their basket and then returns to purchase it AFTER the ProductId is changed to a regular product, Checkout doesn’t know how to handle this.  the KitList field still has a value, but the original product no longer has any components.  Checkout blows up.

A second way to make this happen is the Reorder button.  Often a shopper will log into their My Account page, view their previous order and click the Reorder button.  However, Able code doesn’t validate the previous order products against the current catalog.  It just assumes if the ProductId still exists, it must be configured the same as it was on the previous order.

So the shopper again winds up with a basket item having a KitList value for a product that no longer has components.  Checkout crashes and shoppers cannot complete the purchase.

The solution for the client was two-fold.  First, we had to clear all records from the ac_BasketItems table.  Second, we had to modify the Reorder button to simply redirect to the store catalog instead of repopulating the basket with items.

Tags: , ,

AC7 Articles | Personal

AbleCommerce 7.0.5 Bug using Edit Addresses from Order Details page

by Joe Payne 18. May 2011 09:25

When using the Edit Addresses button from the Order Details page in AbleCommerce 7.0.5, there is bug when multiple shipments are involved. If you click Save to store any changes made, all the shipment addresses will get set to the address that is shown on the first shipment. This blows away the address details of shipments beyond Shipment #1.

The fix is simple. Edit the /Admin/Orders/EditAddresses.aspx.cs file. Locate the following code:

 

protected void SaveButton_Click(object sender, EventArgs e)
{
    _Order.BillToFirstName = BillToFirstName.Text;
    _Order.BillToLastName = BillToLastName.Text ;
    _Order.BillToCompany = BillToCompany.Text ;
    _Order.BillToAddress1 = BillToAddress1.Text;
    _Order.BillToAddress2  =BillToAddress2.Text;
    _Order.BillToCity = BillToCity.Text;
    _Order.BillToProvince = BillToProvince.Text;
    _Order.BillToPostalCode = BillToPostalCode.Text;
    _Order.BillToCountryCode = BillToCountryCode.Items[BillToCountryCode.SelectedIndex].Value;
    _Order.BillToPhone = BillToPhone.Text;
    int index = 0;
    foreach (OrderShipment shipment in _Order.Shipments)
    {
        RepeaterItem item = ShipmentRepeater.Items[index];
        shipment.ShipToFirstName = GetControlValue(item, "ShipToFirstName");
        shipment.ShipToLastName = GetControlValue(item, "ShipToLastName");
        shipment.ShipToCompany = GetControlValue(item, "ShipToCompany");
        shipment.ShipToAddress1 = GetControlValue(item, "ShipToAddress1");
        shipment.ShipToAddress2 = GetControlValue(item, "ShipToAddress2");
        shipment.ShipToCity = GetControlValue(item, "ShipToCity");
        shipment.ShipToProvince = GetControlValue(item, "ShipToProvince");
        shipment.ShipToPostalCode = GetControlValue(item, "ShipToPostalCode");
        shipment.ShipToCountryCode = GetControlValue(item, "ShipToCountryCode");
        shipment.ShipToPhone = GetControlValue(item, "ShipToPhone");
    }
    _Order.Save();
    SavedMessage.Text = string.Format(SavedMessage.Text, DateTime.UtcNow.ToLocalTime());
    SavedMessage.Visible = true;
    EditAddressAjax.Update();
}



And replace it with this code:

protected void SaveButton_Click(object sender, EventArgs e)
{
    _Order.BillToFirstName = BillToFirstName.Text;
    _Order.BillToLastName = BillToLastName.Text ;
    _Order.BillToCompany = BillToCompany.Text ;
    _Order.BillToAddress1 = BillToAddress1.Text;
    _Order.BillToAddress2  =BillToAddress2.Text;
    _Order.BillToCity = BillToCity.Text;
    _Order.BillToProvince = BillToProvince.Text;
    _Order.BillToPostalCode = BillToPostalCode.Text;
    _Order.BillToCountryCode = BillToCountryCode.Items[BillToCountryCode.SelectedIndex].Value;
    _Order.BillToPhone = BillToPhone.Text;
    int index = 0;
    foreach (OrderShipment shipment in _Order.Shipments)
    {
        RepeaterItem item = ShipmentRepeater.Items[index];
        shipment.ShipToFirstName = GetControlValue(item, "ShipToFirstName");
        shipment.ShipToLastName = GetControlValue(item, "ShipToLastName");
        shipment.ShipToCompany = GetControlValue(item, "ShipToCompany");
        shipment.ShipToAddress1 = GetControlValue(item, "ShipToAddress1");
        shipment.ShipToAddress2 = GetControlValue(item, "ShipToAddress2");
        shipment.ShipToCity = GetControlValue(item, "ShipToCity");
        shipment.ShipToProvince = GetControlValue(item, "ShipToProvince");
        shipment.ShipToPostalCode = GetControlValue(item, "ShipToPostalCode");
        shipment.ShipToCountryCode = GetControlValue(item, "ShipToCountryCode");
        shipment.ShipToPhone = GetControlValue(item, "ShipToPhone");
        // BEGIN MOD: AbleMods.com
        // 5/18/2011
        // bug-fix in AC705
        index++;
        // END MOD: AbleMods.com
    }
    _Order.Save();
    SavedMessage.Text = string.Format(SavedMessage.Text, DateTime.UtcNow.ToLocalTime());
    SavedMessage.Visible = true;
    EditAddressAjax.Update();
}


I checked AbleCommerce 7.0.7 and the code appears correct, not sure if 7.0.6 has it though.

Tags: , , ,

AC7 Articles | Tech Support

Month List