当前位置:  开发笔记 > 编程语言 > 正文

当加载AJAX的块时,Magento 2中的产品价格上涨

如何解决《当加载AJAX的块时,Magento2中的产品价格上涨》经验,为你挑选了0个好方法。

我正在研究一个使用AJAX加载追加销售产品的Magento 2模块.每个客户的追加销售产品可能不同,因此AJAX用于加载块以允许缓存清除.

为此,我有一个自定义模块,我的块扩展了\Magento\Catalog\Block\Product\ProductList\Upsell.在catalog_product_view.xml我的模块布局中有以下内容 -



    
        
        
            
        
    

在我的upsell.phtml中 -

getUpsellAjaxUrl()生成http://magento2.dev/personalised/products/upsellAjax/id/6

我的upsell.js -

define([
    'jquery',
    'upsellProducts'
], function($) {

    function getUpsellContent(url) {
        $.ajax({
            url: url,
            dataType: 'html'
        }).done(function (data) {
            $('#personalised-upsells-container').html(data).promise().done(function(){
                $('.upsell').upsellProducts();
            });
        });
    }

    return function (config, element) {
        getUpsellContent(config.upsellAjaxUrl);
    };
});

我的控制器(upsellAjax) -

class UpsellAjax extends ProductController
{
    public function execute()
    {
        $productId = (int) $this->getRequest()->getParam('id');
        $product = $this->loadProduct($productId);
        if (!$product) {
            return false;
        }
        /** @var \Magento\Framework\View\Result\Layout $resultLayout */
        $resultLayout = $this->resultFactory->create(ResultFactory::TYPE_LAYOUT);
        return $resultLayout;
    }
}

我的personalised_products_upsellajax.xml-



    
        
            
                upsell
            
        
    

正如您所期望的那样,通过ajax正确加载产品追加销售块,将HTML推送到我的容器中,然后upsellProducts在页面上初始化小部件.我的追加销售产品按预期显示,但没有价格.

我已经尝试了一些事情来调试这种情况,但据我所知它无法加载方法内部的priceRender第428行.当通过AJAX加载块时,该行总是返回.\Magento\Catalog\Block\Product\AbstractProductgetProductPriceHtml()$priceRender = $this->getLayout()->getBlock('product.price.render.default');false

当我使用我的块替换布局中的默认块(personalised_products_upsellajax.xml)时,这也是这种情况,例如



    
        
            
                upsell
            
        
    

我认为它可能与我的布局中首先删除加售块有关,即我决定注释掉这一行,导致出现两个加售块,一个是默认加载块,另一个是我的AJAX块.相同的结果,默认块显示正确的信息,但我的AJAX块仍然缺少价格.

任何帮助将不胜感激.

推荐阅读
路人甲
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有