如何在magento产品详细信息页面中设置默认选定选项

时间:2011-07-01 07:14:13

标签: magento

我要求我从外部应用程序获取产品ID,其中包含颜色,大小等产品super_attribute选项。我得到了所有这些,我可以做添加到购物车选项。

但在这里,我的实际要求是按客户选择所请求的选项,并将它们重定向到magento的产品详细信息页面,这样他们仍然可以输入要打印的可选文本。因此,我需要在详细信息页面中设置所请求的选项,并将其重定向到产品详细信息页面,而不是将其添加到购物车。他们将输入更多细节,然后他们将手动添加addtocart。

如何在加载时设置所选选项。

请帮帮我。

2 个答案:

答案 0 :(得分:13)

值得庆幸的是,这已经内置于大多数主题中。您需要知道可配置产品中包含的Simple产品的属性和值的ID。我只看到它适用于可配置类型,因此可能是一个限制。

答案 1 :(得分:1)

Rough Magento2示例添加以下内容,通过name = value预先选择自定义选项:

/www/mysite/app/design/frontend/mycompany/mytheme/Magento_Catalog/templates/product/view/options.phtml

以下代码查看选项的标签和select的文本值。并取决于您的主题结构。以下示例为Luma。

它希望网址中包含以下格式

product.html?SelectLabel=OptionValue&SelectLabel=OptionValue

这不考虑多语言等。你可以很容易地调整它来代替选择id和选项id,这将更准确的替换

$(label).parents().eq(1).find('select option:contains('+arr[k]+')').attr('selected', true);

with(未经测试)

$("#"+k+" option[id='"+arr[k]+"']").attr("selected", "selected");

<script>
        require(['jquery'],function($){

            $(document).ready(function(){

                function getJsonFromUrl() {
                    var query = location.search.substr(1);
                    var result = {};
                    query.split("&").forEach(function(part) {
                        var item = part.split("=");
                        result[item[0]] = decodeURIComponent(item[1]);
                    });
                    return result;
                }
                var arr = getJsonFromUrl();
                for (var k in arr){
                    if (arr.hasOwnProperty(k)) {
                        //alert("Key is " + k + ", value is" + arr[k]);
                        var label = $('.product-options-wrapper').find("span:contains('"+k+"')");
                        $(label).parents().eq(1).find('select option:contains('+arr[k]+')').attr('selected', true);

                    }
                }

            });

        });

    </script>