0

When trying to click to view a particular order in the Magento 2.3.2 back-end I get a blank page with the following message:

Order View

Information Changes have been made to this section that have not been saved. This tab contains invalid data. Please resolve this before saving.

Screenshot here:

enter image description here

The source code for this page is as follows:

<html><head></head><body><div class="admin__page-nav" data-role="container" id="sales_order_view_tabs">
            <div class="admin__page-nav-title" data-role="title" data-ui-id="sales-order-tabs-title">
            <strong>Order View</strong>
            <span data-role="title-messages" class="admin__page-nav-title-messages"></span>
        </div>
        <ul data-ui-id="sales-order-tabs-tab-sales-order-view-tabs" class="tabs admin__page-nav-items">


            <li class="admin__page-nav-item" data-ui-id="sales-order-tabs-tab-item-order-info">
                <a href="#sales_order_view_tabs_order_info_content" id="sales_order_view_tabs_order_info" name="order_info" title="Order Information" class="admin__page-nav-link tab-item-link  " data-tab-type="" data-ui-id="sales-order-tabs-tab-link-order-info">

                   <span>Information</span>

                   <span class="admin__page-nav-item-messages" data-role="item-messages">
                       <span class="admin__page-nav-item-message _changed">
                           <span class="admin__page-nav-item-message-icon"></span>
                           <span class="admin__page-nav-item-message-tooltip">
                               Changes have been made to this section that have not been saved.                           </span>
                       </span>
                       <span class="admin__page-nav-item-message _error">
                           <span class="admin__page-nav-item-message-icon"></span>
                           <span class="admin__page-nav-item-message-tooltip">
                               This tab contains invalid data. Please resolve this before saving.                           </span>
                       </span>
                        <span class="admin__page-nav-item-message-loader">
                           <span class="spinner">
                               <span></span><span></span><span></span><span></span>
                               <span></span><span></span><span></span><span></span>
                           </span>
                       </span>
                   </span>
                </a>
                <div id="sales_order_view_tabs_order_info_content" style="display:none;" data-ui-id="sales-order-tabs-tab-content-order-info">
<div id="order-messages">
    </div>

Having researched this issue I have disabled the Temando_Shipping module as detailed in this question: Cannot View Orders.

Unfortunately this has not resolved the issue.

Investigating further has revealed that this issue may be caused by string truncation as detailed here: https://github.com/magento/magento2/issues/16958

But it is stated that this issue should have been fixed in a previous release.

So far this has only happened on a single order but I am concerned that there may be others if I do not fix the issue.

I should probably point out that this order contains bundle product items, I don't know if that is a cause but as it's something we're starting to use and has been mentioned in connection to a similar issue I thought I should mention it.

In addition the payment method used was a Visa Card passed through SagePay PI integration.

The following error also seems to be appearing in the Apache logs:

AH01071: Got error 'PHP message: PHP Fatal error: Uncaught Error: Call to undefined method Magento\Bundle\Model\Product\Type::getConfigurableAttributeCollection() in /var/www/vhosts/examplewebsite.com/httpdocs/vendor/magento/module-configurable-product/Helper/Product/Options/Loader.php:52\nStack trace:\n#0 /var/www/vhosts/examplewebsite.com/httpdocs/vendor/magento/module-configurable-product/Model/Product/ReadHandler.php(48): Magento\ConfigurableProduct\Helper\Product\Options\Loader->load(Object(Magento\Catalog\Model\Product\Interceptor))\n#1 /var/www/vhosts/examplewebsite.com/httpdocs/vendor/magento/framework/EntityManager/Operation/Read/ReadExtensions.php(48): Magento\ConfigurableProduct\Model\Product\ReadHandler->execute(Object(Magento\Catalog\Model\Product\Interceptor), Array)\n#2 /var/www/vhosts/examplewebsite.com/httpdocs/vendor/magento/framework/EntityManager/Operation/Read.php(112): Magento\Framework\EntityManager\Operation\Read\ReadExtensions->execute(Object(Magento\Catalog\Model\Product\Interceptor), Array)\n#3 /var/www/vhosts/exa...\n', referer:

https://www.examplewebsite.com/admin_example/sales/order/index/key/f75ed80b5a5debd27a6c9ee80d52895f1f3f2ff147d6356a12402b56cca00af0/

Can anyone suggest a way to fix this please?

  • Can you please share the payment method of the order you've facing issue with? Also, your magento version. – Sumit Sep 26 at 12:41
  • Thanks for responding. The Magento version is given at the start of the question (2.3.2). I have added the payment method (Visa card through Sagepay PI integration) to the question now. – CJNotts Sep 26 at 12:48
  • Thanks for the info. This issue is occurring for all the orders or any specific order on your website? Have you got any error logs for the same? – Sumit Sep 26 at 12:52
  • Hi. Just for a single order at the moment and there is an apache error which seems to happen when I try to access the order. I have added the error into the original question. – CJNotts Sep 26 at 12:59
  • OK, please check my answer regarding the same. – Sumit Sep 26 at 13:09
1

You can fix this issue by adding temporary solution adding simple condition in Magento\ConfigurableProduct\Helper\Product\Options\Loader::load(ProductInterface $product) after line no : 51

if (get_class($typeInstance) == 'Magento\Catalog\Model\Product\Type\Simple' || get_class($typeInstance) == 'Magento\Bundle\Model\Product\Type') 
{
   return null;
}

Reference: https://github.com/magento/magento2/issues/21663

Hope it helps!!!

  • 1
    THANK YOU!!! In my case the file in question was located at: vendor > magento > module-configurable-product > Helper > Product > Options > Loader.php But the solution has worked all the same. I'm going to try to work up a custom module so that it doesn't overwrite next time I update but this has definitely got me a lot closer. – CJNotts Sep 26 at 13:48
  • Perfect... Yes overriding the function in your custom module is a best approach. – Sumit Sep 26 at 15:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.