2013-09-03 6 views
0

내가 대신 '모든'젠토 카탈로그 가격 규칙을 결합

다음 코드의 '어떤'이 conditons으로 규칙을 만들어 사용하여 결합 상태와 젠토 카탈로그 가격 규칙을 만들려고하고 있어요 -하지만 그들은 모두 사용하여 결합 . 아무도 이것을 달성하는 방법을 알고 있습니까? 나는 나의 접근 방식을 변경하고 나는 아래와 같은 일을 달성하기 위해 관리되는 다른 조건 하나의 규칙을 사용하여 젠토 1.7.0.2 (커뮤니티 에디션)

$skuCondition = Mage::getModel('catalogrule/rule_condition_product') 
        ->setType('catalogrule/rule_condition_product') 
       ->setAggregator('any') 
       ->setAttribute('category_ids') 
        ->setOperator('==') 
       ->setValue('18'); 


$skuCondition2 = Mage::getModel('catalogrule/rule_condition_product') 
        ->setType('catalogrule/rule_condition_product') 
       ->setAttribute('category_ids') 
        ->setOperator('==') 
       ->setValue('40'); 

$catalogPriceRule->getConditions()->addCondition($skuCondition); 
$catalogPriceRule->getConditions()->addCondition($skuCondition2); 

$catalogPriceRule->save(); 

답변

0

을 사용하고 있습니다. 'is any of'를 나타 내기 위해 '=='대신 '()'을 사용합니다. 나는 규칙을 생성하고 열을 따로 선택하는 경우 데이터베이스 테이블 'catalogrule'의 데이터를보고하여이 해결책을 찾았 내가

8:"operator";s:2:"()";s 

발견 'condition_serialized'는 "()"운영자

입니다

그래서 내 마지막 코드는

$catalogPriceRule->setName($name) 
       ->setDescription('') 
       ->setIsActive(1) 
       ->setWebsiteIds(array($websiteId)) 
       ->setCustomerGroupIds(array($customerGroupId)) 
       ->setFromDate('') 
       ->setToDate('') 
       ->setSortOrder('') 
       ->setSimpleAction($actionType) 
       ->setDiscountAmount($discount) 
       ->setStopRulesProcessing(0); 

$skuCondition = Mage::getModel('catalogrule/rule_condition_product') 
       ->setType('catalogrule/rule_condition_product') 
       ->setAggregator('any') 
       ->setAttribute('category_ids') 
       ->setOperator('()') 
       ->setValue('18,40'); 

$catalogPriceRule->getConditions()->addCondition($skuCondition); 
$catalogPriceRule->save(); 

희망입니다.

+0

'catalogrule/rule_condition_product'는 'salesrule/rule_condition_product'이어야합니다. 관리에서 숨겨진 입력을 검사하여이를 확인할 수 있습니다. 그 외의 경우 코드가 작동합니다. – karantan

관련 문제