【问题标题】:Magento Display Dynamic SKU for configurable Product... Don't Display until all options are selectedMagento 显示可配置产品的动态 SKU... 在选择所有选项之前不显示
【发布时间】:2015-06-23 20:59:26
【问题描述】:

所以我刚刚发现 this code 几乎可以满足我的需求。 I need for the code to dynamically display the sku of a configurable product (simple product's sku) when the options are selected.唯一的问题是,在选择选项之前,它会显示第一个简单的产品 sku。在选择所有选项之前,我希望它什么都不显示。

代码如下: app/design/frontend/rwd/default/template/catalog/product/view/type/options/configurable.phtml

<?php
$conf = Mage::getModel('catalog/product_type_configurable')->setProduct($_product);
$col = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions();
?>
<script type="text/javascript">

var Skus =new Array();

<?php
$count = 1;
$itemId = array();
foreach($col as $simple_product){
$itemId[] = array($simple_product->getSelectLabel() => $simple_product->getSku());
}

foreach($itemId as $val){
foreach($val as $k => $v){
echo 'Skus['.$count.'] = "'.$v.'";'. "\n";
$count++;
}
};

?>

$j(document).ready(function(){

$j("#productcode").html("Product Code: " +Skus[1]);

$j("select#attribute<?php echo $_attribute->getAttributeId() ?>").change(function(){
var position = $j("#attribute<?php echo $_attribute->getAttributeId() ?> option").index($j("#attribute<?php echo $_attribute->getAttributeId() ?> option:selected"));

$j("#productcode").html(Skus[position] ? "Product Code: " +Skus[position] : "Product Code: " +Skus[1]);
});

});

</script>

并且: app/design/frontend/rwd/default/template/catalog/product/view/view.phtml

<div id="productcode"></div>

目前,动态 sku 会显示第一个 sku 记录,直到所有选项都被选中,然后显示正确的选项。如何在选择所有选项之前隐藏 sku,或者在有人返回编辑他们的选择时隐藏它?

提前致谢!

【问题讨论】:

    标签: javascript php magento dynamic


    【解决方案1】:

    如果您评论(或删除)以下行,它不会在 div onload 中添加任何内容:

    $j("#productcode").html("Product Code: " +Skus[1]);
    

    更改选择时,以下代码仍将在那里写下SKU:

    $j("select#attribute<?php echo $_attribute->getAttributeId() ?>").change(function(){
    var position = $j("#attribute<?php echo $_attribute->getAttributeId() ?> option").index($j("#attribute<?php echo $_attribute->getAttributeId() ?> option:selected"));
    
    $j("#productcode").html(Skus[position] ? "Product Code: " +Skus[position] : "Product Code: " +Skus[1]);
    });
    

    希望对您有所帮助。

    【讨论】:

    • 当我删除建议的行时,什么都没有显示。我需要添加第二段代码吗?如果是,在哪里?
    • 其实,第二段代码已经是原始代码的一部分了……这个代码需要做任何更改吗?如果是,在哪里,什么?
    猜你喜欢
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-15
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    相关资源
    最近更新 更多