首页 文章

Magento:SKU No.选择产品属性后更改

提问于
浏览
-1

一旦选择了项目的产品属性,如何更改SKU否 .

enter image description here

2 回答

  • 0

    要在可配置产品页面上获取所选关联产品的sku,请将以下代码粘贴到脚本中app / design / frontend /// template / catalog / product / view / type / options / configurable.phtml中:

    spConfig.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)
        }
    
      }
    

    现在将onchange事件添加到同一页面的下拉列表中:

    平变化= “spConfig.getIdOfSelectedProduct()”

    第一个代码将提醒简单的相关产品ID . 您现在可以在下面的代码中使用它 .

    jQuery.ajax({
        type: "POST",
        url: "<?php echo $this->getBaseUrl()?><module_front_name>/<controller_name>/<action_name>/",
        data:"id="+currentSimpleProductId,
        success: function(msg)
        {
            alert(msg);
            //var data = JSON.parse(msg);
            //alert(data.id);
        }
    });
    

    现在,转到上面使用的控制器文件,并创建一个名为Action的新操作,并将代码放在其中:

    public function <action_name>Action()
        {
            $productId = $_REQUEST['id'];
            /*$productId is your selected product id. do what ever you want to do here.*/
            $product = Mage::getModel('catalog/product')->load($productId);
            $productsku = $product->getSku();
    
            $arraygroup = array("sku"=>$productsku);
            echo json_encode($arraygroup);
        }
    

    现在,您可以在phtml文件中使用此信息来显示sku .

    如果有任何不清楚的地方,请告诉我 .

  • 0
    • 转到Magento管理员

    • 在目录>管理属性查找sku并查找类似于"Visible on Product View Page on Front-end"

    • 这应该从产品页面中删除sku

    • 找到可配置的产品模板并插入您希望获得SKU的位置

    echo $product->getSku()

相关问题