logo
Welcome to our new AbleCommerce forums. As a guest, you may view the information here. To post to this forum, you must have a registered account with us, either as a new user evaluating AbleCommerce or an existing user of the application. For all questions related to the older version of Gold and earlier, please go to forums.ablecommerce.com. Please use your AbleCommerce username and password to Login. Forums Registration.

Notification

Icon
Error

Options
Go to last post Go to first unread
Macoy  
#1 Posted : Wednesday, July 17, 2019 2:42:06 PM(UTC)
Macoy

Rank: Member

Groups: Authorized User, Developers, Registered
Joined: 12/19/2018(UTC)
Posts: 10

A customer said he could not change quantities or get the check out button to work in his cart as it appeared on the right side bar. It worked if he had one product in his basket but not two or more. He also could not get the checkout-> button to work. He could change the quantities when he went to his "cart". He cleared his cache and tried it again but had same issues. He sent me a four page document with screen shots but I couldn't load it here. If you would like, I can email it to you.
thanks

Wanna join the discussion?! Login to your AbleCommerce Forums forum account. Forums Registration.

MikeR  
#2 Posted : Wednesday, July 17, 2019 9:24:44 PM(UTC)
MikeR

Rank: Advanced Member

Groups: Administrators, Developers, Registered, HelpDesk, System, Admin
Joined: 10/18/2018(UTC)
Posts: 97

Was thanked: 5 time(s) in 5 post(s)
Hello,

I'm able to replicate this. We redesigned the website aware from left/right columns as that seems to be going away in modern designs. I've not had that widget in any of my test stores. I checked and it was tested to be working but something obviously changed between the last test and now. That will have to be fixed in a patch as our final builds are completed.
Thank you for your support!
Mike Randolph
AbleCommerce.com
Macoy  
#3 Posted : Monday, July 22, 2019 10:03:20 AM(UTC)
Macoy

Rank: Member

Groups: Authorized User, Developers, Registered
Joined: 12/19/2018(UTC)
Posts: 10

Mike
Can we get rid of that right side cart widget on that checkout page in the meantime or will it cause an error?
MikeR  
#4 Posted : Monday, July 22, 2019 10:05:39 AM(UTC)
MikeR

Rank: Advanced Member

Groups: Administrators, Developers, Registered, HelpDesk, System, Admin
Joined: 10/18/2018(UTC)
Posts: 97

Was thanked: 5 time(s) in 5 post(s)
It must have been added as it's not included in the demo store by default. So it won't cause any issues to remove it.
Thank you for your support!
Mike Randolph
AbleCommerce.com
Macoy  
#5 Posted : Wednesday, July 24, 2019 11:11:58 AM(UTC)
Macoy

Rank: Member

Groups: Authorized User, Developers, Registered
Joined: 12/19/2018(UTC)
Posts: 10

Mike
I have a better understanding which page on the check out process is causing the most problems. It is the Upsell page. The page is defined as the Product Accessories page.
This is where there is a mini check out in the side bar. I can't remove it because the customer needs a button to continue to check out. I have replaced the mini basket widget with continue to checkout widget (in both the middle and side bar) - the check out button did not work on that widget. Any suggestions? The checkout button works for me but I have had a dozen or so customers tell me they have had issues. One sent me a 4 page word doc with pics and description but I can't attach it here.
Thanks
Macoy  
#6 Posted : Wednesday, July 24, 2019 11:23:06 AM(UTC)
Macoy

Rank: Member

Groups: Authorized User, Developers, Registered
Joined: 12/19/2018(UTC)
Posts: 10

I just got rid of the mini basket in the side bar and put the basket widget in the main part. It seems to be updating quantities and allowing me to checkout. It makes me nervous because it is all on the page title Product Accessories. The Product Accessories widget is below the basket widget.
https://www.macoy.com/Pr...ZC1nYXZlbHMtMzEwMy5hc3B4
Macoy  
#7 Posted : Wednesday, July 24, 2019 11:32:40 AM(UTC)
Macoy

Rank: Member

Groups: Authorized User, Developers, Registered
Joined: 12/19/2018(UTC)
Posts: 10

I have signed in as various users and the check out buttons work but still can't update quantities on all items. If you have left items in the cart, you can update quantities. If you have added a product and then try to update quantities in the /Checkout/Basket page or /Product Accessories page it won't update when you hit the update button.
Does the ONE page checkout work better?
MikeR  
#8 Posted : Wednesday, July 24, 2019 11:40:34 AM(UTC)
MikeR

Rank: Advanced Member

Groups: Administrators, Developers, Registered, HelpDesk, System, Admin
Joined: 10/18/2018(UTC)
Posts: 97

Was thanked: 5 time(s) in 5 post(s)
Hello,

You appear to be running an old version (RC1?) and we need to get you upgraded to final. Please post the help > about page to the forums, so we can figure out the appropriate upgrade path for you.
Thank you for your support!
Mike Randolph
AbleCommerce.com
Macoy  
#9 Posted : Wednesday, July 24, 2019 11:51:54 AM(UTC)
Macoy

Rank: Member

Groups: Authorized User, Developers, Registered
Joined: 12/19/2018(UTC)
Posts: 10

roger
MikeR  
#10 Posted : Wednesday, July 24, 2019 11:57:05 AM(UTC)
MikeR

Rank: Advanced Member

Groups: Administrators, Developers, Registered, HelpDesk, System, Admin
Joined: 10/18/2018(UTC)
Posts: 97

Was thanked: 5 time(s) in 5 post(s)
The build you are on was a beta build before our first release candidate (4510) according to your earlier post. The site needs to be set up on a development box, then put the RC1 files on it and see if it is working, then apply the RC1 to RC2 upgrade and then, RC2 to RC3 update and finally RC3 to Final.
Thank you for your support!
Mike Randolph
AbleCommerce.com
mark15356460  
#11 Posted : Wednesday, August 14, 2019 8:16:48 AM(UTC)
mark15356460

Rank: Newbie

Groups: Authorized User, Developers, HelpDesk, Registered
Joined: 7/16/2019(UTC)
Posts: 6

We are using 7/18/2019 AbleCommerce-9.0.0-b5588-WAP.zip for the beta site and it still doesn't work.

We are seeing a problem with the ability to update quantity in the minibasket control when more than one item exists in the customer’s cart. Under the condition we see, the quantity on the first item in the minibasket can be update, but none of the additional products can be.

I’ve captured a Fiddler trace of the request, which shows data for both basket items being passed to the CheckoutController:

POST http://66.192.86.141/Che...ketItemQuantity?Length=8 HTTP/1.1
Host: 66.192.86.141
Connection: keep-alive
Content-Length: 150
Accept: */*
DNT: 1
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3861.0 Safari/537.36 Edg/77.0.230.2
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Origin: http://66.192.86.141
Referer: http://66.192.86.141/Pro...FtbWVyLS00MzU4LmFzcHg%3D
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9
Cookie: _ga=GA1.1.477916954.1560969359; AC9.SESSIONID=01di5zognoeuqltv5slrd2xv; __RequestVerificationToken=qZ8SNZoflbN_5ATgU6JOY0xYnRRXgC4EepXYBYIcDuUHWqB2yuR_QyK5NJNE3Y_7b31FNU8f9JsxND7jMQr_0zBevKE_-6nP8EvuvWrxyhs1; UserName=; AC9.ASPXAUTH=E1EEC14F996C521949BFB09DDCCBECFD7F48C49575F9A61D1509BDF409ECD0B31358ADCB6D7AAF071C17201AAC5F89F90BD32DBDBF1E8B2CD6DEDF645A7E2A55947B52D48A4D8E95F477C6AEDE63B4CDED1BC05F0F80E492D5333AC81D422A2E68335C70CC1618E9D94437394A26F5A3; AC9.ASPXANONYMOUS=iCc3ZCYhoe5CUn24Ynyqy13JgAQjhTAj3Z7dmWOJA1Xis7fFr3NOLCjMmWhw6VYS6YQv_5uA4zquaIb4ruchss-424jN8Iuu9C6J8fn4042m3q0911iH_pWqiZxP82JDwO-ihI-we9isF5ks6FLQBQ2; _gid=GA1.1.154318835.1565612349

basketItemId=4273360&Quantity=4&item.Id=4273360&basketItemId=4273368&Quantity=4&item.Id=4273368&IsMiniCheckoutButton=0&X-Requested-With=XMLHttpRequest

Also, we’ve examined the controller code for the method being called. The source is pulled from the AbleCommerce AbleCommerce-9.0.0-b5588-WAP codebase, which our test site is running on:

#region UPDATE BASKET ITEM QUANTITY
// GET: Checkout/_UpdateBasketItemQuantity
public ActionResult _UpdateBasketItemQuantity(int basketItemId, short quantity)
{
var basket = AbleContext.Current.User.Basket;
int itemIndex = basket.Items.IndexOf(basketItemId);
if ((itemIndex > -1))
{
BasketItem item = basket.Items[itemIndex];
if (quantity > System.Int16.MaxValue)
{
item.Quantity = System.Int16.MaxValue;
}
else
{
item.Quantity = quantity;
}

// Update for Minimum Maximum quantity of product
if (item.Quantity < item.Product.MinQuantity)
{
item.Quantity = item.Product.MinQuantity;
}
else if ((item.Product.MaxQuantity > 0) && (item.Quantity > item.Product.MaxQuantity))
{
item.Quantity = item.Product.MaxQuantity;
}

AbleContext.Resolve<IBasketItemRepository>().Save(item);
}

// check if checkout is requested
var isMiniCheckout = Request.Form["IsMiniCheckoutButton"];
var isMiniDropdownCheckout = Request.Form["IsMiniDropdownCheckoutButton"];
if ((!string.IsNullOrEmpty(isMiniCheckout) && isMiniCheckout == "1") || (!string.IsNullOrEmpty(isMiniDropdownCheckout) && isMiniDropdownCheckout == "1"))
{
IBasketService service = AbleContext.Resolve<IBasketService>();
ValidationResponse response = service.Validate(basket);
if (!response.Success)
{
Session["BasketMessage"] = response.WarningMessages;
return JavaScript("window.location = '" + Url.Content(NavigationHelper.GetBasketUrl()) + "'");
}
// TODO: Update the method name GetCheckoutUrl to GetCheckoutActionName
return JavaScript("window.location = '" + Url.Action(AbleCommerce.Code.NavigationHelper.GetCheckoutUrl(), "Checkout") + "'");
}

return RedirectToAction("_MiniBasket");
}
#endregion


As I’ve highlighted in the method signature, the “_UpdateBasketItemQuantity” Is only looking for a single integer and a short for quantity. The subsequent code seems to confirm this, and I believe the second or greater basketitem id and quantity will be ignored.

Is this issue being addressed?



katie_able_support  
#12 Posted : Thursday, August 15, 2019 11:06:31 AM(UTC)
katie_able_support

Rank: Advanced Member

Groups: Developers, Registered, HelpDesk, System
Joined: 10/29/2018(UTC)
Posts: 47

Was thanked: 2 time(s) in 2 post(s)
This issue should have been fixed in Build 5588. I need to be able to see what is happening, so can you tell me which page you are using the mini-basket on? Are you adding and trying to update normal shippable products? Do you also have the alternate mini-basket drop-down enabled in the header?

Thanks for your help,

Katie
mark15356460  
#13 Posted : Thursday, August 15, 2019 2:55:46 PM(UTC)
mark15356460

Rank: Newbie

Groups: Authorized User, Developers, HelpDesk, Registered
Joined: 7/16/2019(UTC)
Posts: 6


Sure. 66.192.86.141 Mini cart only updates quantities for the 1st item.

Thanks
katie_able_support  
#14 Posted : Thursday, August 15, 2019 4:06:10 PM(UTC)
katie_able_support

Rank: Advanced Member

Groups: Developers, Registered, HelpDesk, System
Joined: 10/29/2018(UTC)
Posts: 47

Was thanked: 2 time(s) in 2 post(s)
Sorry for the confusion. It looks like this issue was fixed but just after the final build was released. It is part of a service pack that we are working on now. If you need the changes right away, I can have a developer post the code changes here. It only affected 2 files, but a recompile would be necessary for this fix.

Ref. AC9-1209
mark15356460  
#15 Posted : Thursday, August 15, 2019 4:25:17 PM(UTC)
mark15356460

Rank: Newbie

Groups: Authorized User, Developers, HelpDesk, Registered
Joined: 7/16/2019(UTC)
Posts: 6

If we could get those changes, that would be great

Thanks
shari  
#16 Posted : Friday, August 16, 2019 7:10:12 AM(UTC)
shari

Rank: Newbie

Groups: Admin, Authorized User, Registered, Developers
Joined: 10/5/2018(UTC)
Posts: 5

Was thanked: 1 time(s) in 1 post(s)
Hi Mark,

Please follow the instructions to resolve the issue in your install

1- Find the controller file on this path: /Website/Controllers/CheckoutController.cs
2- Search the file for this function

Code:
public ActionResult _UpdateBasketItemQuantity(..)
{
...
}


select the complete function body and replace with

Code:
public ActionResult _UpdateBasketItemQuantity(List<MiniBasketItemModel> model)
        {
            var basket = AbleContext.Current.User.Basket;
            // check if checkout is requested
            var isMiniCheckout = Request.Form["IsMiniCheckoutButton"];
            var isMiniDropdownCheckout = Request.Form["IsMiniDropdownCheckoutButton"];
            if ((!string.IsNullOrEmpty(isMiniCheckout) && isMiniCheckout == "1") || (!string.IsNullOrEmpty(isMiniDropdownCheckout) && isMiniDropdownCheckout == "1"))
            {
                IBasketService service = AbleContext.Resolve<IBasketService>();
                ValidationResponse response = service.Validate(basket);
                if (!response.Success)
                {
                    Session["BasketMessage"] = response.WarningMessages;
                    return JavaScript("window.location = '" + Url.Content(NavigationHelper.GetBasketUrl()) + "'");
                }

                // TODO: Update the method name GetCheckoutUrl to GetCheckoutActionName
                return JavaScript("window.location = '" + Url.Action(AbleCommerce.Code.NavigationHelper.GetCheckoutUrl(), "Checkout") + "'");
            }
            else
            {
                //UPDATE QUANTITES
                foreach (var item in model)
                {
                    int itemIndex = basket.Items.IndexOf(item.Id);
                    if ((itemIndex > -1))
                    {
                        BasketItem basketItem = basket.Items[itemIndex];
                        if (item.Quantity > System.Int16.MaxValue)
                        {
                            basketItem.Quantity = System.Int16.MaxValue;
                        }
                        else
                        {
                            basketItem.Quantity = item.Quantity;
                        }

                        // Update for Minimum Maximum quantity of product
                        if (basketItem.Quantity < basketItem.Product.MinQuantity)
                        {
                            basketItem.Quantity = basketItem.Product.MinQuantity;
                        }
                        else if ((basketItem.Product.MaxQuantity > 0) && (basketItem.Quantity > basketItem.Product.MaxQuantity))
                        {
                            basketItem.Quantity = basketItem.Product.MaxQuantity;
                        }

                        AbleContext.Resolve<IBasketItemRepository>().Save(basketItem);
                    }
                }

                return RedirectToAction("_MiniBasket");
            }
        }


3- Now find the file on the path: /Website/Views/Checkout/_MiniBasket.cshtml
4- Search the below code

Code:
var item = Model[i];


and replace with

Code:
@Html.HiddenFor(m => Model[i].Id)
var item = Model[i];


5- Now search and remove this code line
Code:
@Html.Hidden("basketItemId", item.Id)


6- Now search for this code line

Code:
@Html.TextBox("Quantity", item.Quantity, new { onfocus = "this.select()", @class = "quantity form-control modal-qty" })


and replace with

Code:
@Html.TextBoxFor(m => Model[i].Quantity, new { onfocus = "this.select()", @class = "quantity form-control modal-qty" })


7- After these changes, you need to compile the project.

Let me know if you have any trouble.

Thanks.









Users browsing this topic
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.