Como obter o ID do produto configurável na página de detalhes do produto

7

Na página de detalhes do produto, quando o usuário escolhe a cor e o tamanho, ele retorna um ID simples do produtoinsira a descrição da imagem aqui

Jitendra Mohanta
fonte
Você pode usar este link magento1. magento.stackexchange.com/questions/28881/...
Payal Patel
@payal Quando o usuário selecionar o tamanho e cor, ele retorna de identificação do produto que
Jitendra Mohanta
a partir do qual, usando js ou php deseja obter id?
Rakesh Jesadiya 9/09/16
eu quero mensagem de alerta para mostrar a sua ID de produto simples
Jitendra Mohanta
Você resolveu isso? Também estou procurando algo semelhante.
Seefan

Respostas:

5

Eu tenho a caixa de seleção no atributo do produto configurável. Isto é o que eu fiz para obter uma identificação simples do produto. Coloque o código a seguir no seu arquivo phtml configurável do produto.

 require(["jquery"], function(jQuery) {
      jQuery(".product-options-wrapper select[id^='attribute']").last().on('change', function() {
          setTimeout(function (){
            simpleId=jQuery("input[name=selected_configurable_option]").val();
            alert(simpleId);
          }, 500); 
      });
}); // Required

Se você tiver uma amostra configurável, será necessária uma pequena alteração no código acima. Espero que ajude alguém.

Obrigado

Bhupendra Jadeja
fonte
1

Experimente o código abaixo.

foreach($collection as $_product) {
    $_children = $_product->getTypeInstance()->getUsedProductIds($_product);
    $getChildId = array();
    foreach ($_children as $child){
        $getChildId[] = $child->getID();
    }
    print_r($getChildId);
}
Janak Bhimani
fonte
obrigado pela repetição, mas quero algo mais, quando clico em tamanho de qualquer valor com a respectiva cor, ele retorna apenas o ID do produto.
Jitendra Mohanta 9/09/16
1

Se você precisar obter a identificação do produto simples selecionado em um produto configurável no lado do cliente, faça isso abaixo.

Aqui está uma função simples de como conseguir isso sem modificação de código, novos modelos ou mesmo módulos. Apenas um arquivo Javascript e atualização de layout.

Product.Config.prototype.getIdOfSelectedProduct = function()
{
     var existingProducts = new Object();

     for(var i=this.settings.length-1;i>=0;i--)
     {
         var selected = this.settings[i].options[this.settings[i].selectedIndex];
         if(selected.config)
         {
            for(var iproducts=0;iproducts<selected.config.products.length;iproducts++)
            {
                var usedAsKey = selected.config.products[iproducts]+"";
                if(existingProducts[usedAsKey]==undefined)
                {
                    existingProducts[usedAsKey]=1;
                }
                else
                {
                    existingProducts[usedAsKey]=existingProducts[usedAsKey]+1;
                }
             }
         }
     }

     for (var keyValue in existingProducts)
     {
        for ( var keyValueInner in existingProducts)
         {
            if(Number(existingProducts[keyValueInner])<Number(existingProducts[keyValue]))
            {
                delete existingProducts[keyValueInner];
            }
         }
     }

     var sizeOfExistingProducts=0;
     var currentSimpleProductId = "";
     for ( var keyValue in existingProducts)
     {
        currentSimpleProductId = keyValue;
        sizeOfExistingProducts=sizeOfExistingProducts+1
     }

     if(sizeOfExistingProducts==1)
     {
         alert("Selected product is: "+currentSimpleProductId)
     }
}
Janak Bhimani
fonte
Você deve atualizar sua resposta atual.
precisa saber é o seguinte