2011-07-13 154 views
0

快速。str_replace magento產品名稱

我已經在分組產品頁面上選擇了magento簡單產品的輸入。

我想刪除分組的產品名稱並保留SKU的其餘部分。

例如簡單的產品名稱:trfu00XS分組產品名稱:trfu00結果:XS

看看下面。

<form> 
<select id="tflitem" onchange="showSelected()" /> 

<option value="" selected>Size</option> 

<?php if (count($_associatedProducts)): ?> 
<?php foreach ($_associatedProducts as $_item): ?> 

<?php if ($_product->isSaleable()): ?> 
<?php if ($_item->isSaleable()) : ?> 
<option value="super_group[<?php echo $_item->getId() ?>]"><?php echo $this->htmlEscape($_item->getName()) ?> <?php echo $_product->getName() ?>/ <?php echo $this->getPriceHtml($_item, true) ?> 
<?php else: ?> 

<?php endif; ?> 
<?php endif; ?> 
</option> 
<?php endforeach; ?> 
</select> 

<input type="text" id="tflIndex" size="5" /> 
QTY 

</form> 
+0

注意..如果你想讓你的代碼加快一點,寫更大的PHP塊。在PHP中打開/關閉塊我相信它會減慢引擎,除非您使用某種優化器和預編譯器 – Fabrizio

回答

2

有些事情:

SKU碼不必是最小長度可能,你可以把他們,如破折號TRFU-00-XS,您可以使用一致的模式,例如BASE_SKU-SIZE-COLOR。

這使人們更容易與客戶,訂單團隊,程序員合作。在這種情況下,您可以使用PHP strtok()和其他功能來獲取SKU的組成部分。

我不確定你的例子是什麼名字和什麼是SKU。

但是,讓你的基本產品SKU,前foreach循環嘗試$basesku=$this->getSku();$basename=$this->getName();

然後你可以str_replace($basename,'',$_item->getName())(或者SKU),以獲得最終的位。

+0

mmm ...無效的方法Mage_Catalog_Block_Product_View_Type_Grouped :: str_replace(Array ( [0] => [1 ] => [2] => SR01002CS ) ) – Schonkton

+0

str_replace爲常規PHP - 否則,如果該語法不起作用,請將$ _item-> getName()另存爲其他內容。說實話,你可以更清楚地知道你使用的名字和sku的名稱,因爲這些名字和sku沒有給我清楚。 –

+0

在這種情況下,SKU也是產品的名稱。 – Schonkton