Как установить выбранные параметры по умолчанию на странице сведений о продукте magento - PullRequest
8 голосов
/ 01 июля 2011

У меня есть требование, в котором я получаю идентификатор продукта из внешнего приложения с параметрами продукта super_attribute, такими как цвет, размер. Я получаю все это, и я могу сделать опцию добавить в корзину.

Но здесь мое действительное требование состоит в том, чтобы выбрать запрашиваемые параметры заказчиком и перенаправить их на страницу сведений о продукте в magento, чтобы здесь они все еще могли вводить дополнительный текст для печати. Поэтому мне нужно установить запрошенные параметры на странице сведений и перенаправить их на страницу сведений о продукте, а не добавлять их в корзину. Они будут вводить более подробную информацию, а затем они будут делать addtocart вручную.

Как установить выбранные параметры во время загрузки.

Пожалуйста, помогите мне.

Ответы [ 2 ]

13 голосов
/ 01 июля 2011

К счастью, это уже встроено в большинство тем.Вам необходимо знать идентификатор атрибутов и значений из простого продукта, который включен в конфигурируемый продукт.Я только видел, как он работает с настраиваемыми типами, так что это может быть ограничением.

  • Для каждого атрибута создайте пару ключ = значение
  • Объедините атрибуты в виде строки запроса, например,"123 = 345 & 678 = 890"
  • Добавить строку как фрагмент хеша (не как запрос).
    Это пример из официальной демонстрации, обратите внимание, что первый вариантнужно выбрать, чтобы секунда работала, чтобы у нее было две пары ключ / значение.

    http://demo.magentocommerce.com/zolof-the-rock-and-roll-destroyer-lol-cat-t-shirt-126.html#525=99&272=22

1 голос
/ 26 сентября 2017

Пример Rough Magento2 добавьте ниже для предварительного выбора пользовательских опций по имени = значение в:

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

Приведенный ниже код просматривает метку опции и текстовое значение выбора. И зависит от вашей тематической структуры. Пример ниже для Luma.

Ожидается следующий формат в URL

product.html?SelectLabel=OptionValue&SelectLabel=OptionValue

Это не относится к мультиязычности и т. Д. Вы можете легко адаптировать его, чтобы вместо этого искать идентификатор выбора и идентификатор опции, которые были бы более точными заменой

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

с (не проверено)

$("#"+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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...