Magento 如果产品名称包含声明

Magento if product name contains statement

我设置了一个复杂的磁电机订单电子邮件,在客户结账时将预计交货日期发送给他们。但是对于特定的产品类别,我不想重复预计交货日期。

我想知道最好的方法...

我的第一个想法是从产品 ID 中获取类别 ID,然后做一个 if 语句来说明如果类别 = A 不显示代码,否则显示代码。

我试过用这个

$ordered_items = $_order->getAllItems(); 
Foreach($ordered_items as $item){     
$itemId = $item->getItemId(); 
$itemsku = $item->getSku(); 
$catId = $item->getProduct()->getCategoryIds();         
} ?> 

但是当我尝试回显 $catId 时,这只是返回 "Array"。

我的另一个想法是获取产品名称,然后说如果名称包含('sometext'),执行。

1) 如何正确获取属于单个类别的产品的类别 ID。

2) 如何做一个 if 语句来表示 "if product name contains ('sometext')"

此致,弗兰克

产品可以属于多个类别,这就是您获取数组而不是单个 ID 的原因。您可以在代码后添加以下内容以检查您感兴趣的类别。请注意,如果您有相同类型的类别名称,那么检查 id 更明智。

$categoryCollection = Mage::getResourceModel('catalog/category_collection')
                 ->addAttributeToSelect('name')
                 ->addAttributeToSelect('url')
                 ->addAttributeToFilter('entity_id', $catId)
                 ->addIsActiveFilter();

foreach($categoryCollection as $cat){
    if(strpos($cat->getName(), "your_sometext") !== false){                 
        echo 'your category was in the product';
    }
    // or
    if($cat->getId() == 100){                 
        echo 'your category was in the product';
    }
}