Otomatik Magento bir alışveriş sepeti fiyat kural oluşturma

2 Cevap php

Onlar benim Magento sitede bir işlemi tamamlamak ne zaman ve eğer ben onların sıra dışı bir kullanıcıya% 10 veren bir alışveriş sepeti fiyat kural oluşturmak istiyorum.

Veritabanına doğrudan kural ekler here bir yöntemi var. Bu benim tadı için biraz invaziv.

Nasıl Magento yöntemleri kullanarak bu konuda gitmek istiyorsunuz?

2 Cevap

Genel bir ilke olarak, SQL, tek bir satır yazmadan Magento sistemin kendisi yapar bir şey yapmak gerekir. Hemen hemen tüm Magento veri yapıları Magento Model sınıflarını kullanın.

Bir salesrule / kural modeli neye benzediğini görmek için bir yere aşağıdaki kodu çalıştırın. Bu bir 1 kimliği ile admin tek Alışveriş Sepeti Fiyat Kural yarattık varsayar

    $coupon = Mage::getModel('salesrule/rule')->load(1);
    var_dump($coupon->getData());

Bir kılavuz olarak dampingli verileri kullanarak, programlama aşağıdaki kullanarak bir model oluşturabilirsiniz

    $coupon = Mage::getModel('salesrule/rule');
    $coupon->setName('test coupon')
    ->setDescription('this is a description')
    ->setFromDate('2010-05-09')
    ->setCouponCode('CODENAME')
    ->setUsesPerCoupon(1)
    ->setUsesPerCustomer(1)
    ->setCustomerGroupIds(array(1)) //an array of customer grou pids
    ->setIsActive(1)
    //serialized conditions.  the following examples are empty
    ->setConditionsSerialized('a:6:{s:4:"type";s:32:"salesrule/rule_condition_combine";s:9:"attribute";N;s:8:"operator";N;s:5:"value";s:1:"1";s:18:"is_value_processed";N;s:10:"aggregator";s:3:"all";}')
    ->setActionsSerialized('a:6:{s:4:"type";s:40:"salesrule/rule_condition_product_combine";s:9:"attribute";N;s:8:"operator";N;s:5:"value";s:1:"1";s:18:"is_value_processed";N;s:10:"aggregator";s:3:"all";}')
    ->setStopRulesProcessing(0)
    ->setIsAdvanced(1)
    ->setProductIds('')
    ->setSortOrder(0)
    ->setSimpleAction('by_percent')
    ->setDiscountAmount(10)
    ->setDiscountQty(null)
    ->setDiscountStep('0')
    ->setSimpleFreeShipping('0')
    ->setApplyToShipping('0')
    ->setIsRss(0)
    ->setWebsiteIds(array(1));      
    $coupon->save();

Ilginç olan herkes, yukarıda açıklanan teknikler kullanılarak, kod oluşturulur here

Benim code.It bakabilirsiniz Eylem koşulu eklemek olacaktır.

$coupon_rule = Mage::getModel('salesrule/rule');
$coupon_rule->setName($c_data[1])
->setDescription($c_data[2])
->setFromDate($fromDate)
->setToDate($toDate)
->setUsesPerCustomer(0)
->setCustomerGroupIds(array(0,1,2,3)) //an array of customer grou pids
->setIsActive(1)
->setCouponType(2)
->setCouponCode($c_data[0])
->setUsesPerCoupon(1)

//serialized conditions.  the following examples are empty<br/>
->setConditionsSerialized('')<br/><br/>

->setActionsSerialized('') <br/>
->setStopRulesProcessing(0)<br/>
->setIsAdvanced(1) <br/>

->setProductIds('')
->setSortOrder(0)
->setSimpleAction('by_percent')
->setDiscountAmount($c_data[5])
->setDiscountQty(1)
->setDiscountStep('0')
->setSimpleFreeShipping('0')
->setApplyToShipping('1')
->setIsRss(1)
->setWebsiteIds(explode(',',$c_data[6]));

$sku =$c_data[7]; // Put your product SKU here
$skuCond = Mage::getModel('salesrule/rule_condition_product')
->setType('salesrule/rule_condition_product')
->setAttribute('sku')
->setOperator('==')
->setValue($sku);
$coupon_rule->getActions()->addCondition($skuCond);

$coupon_rule->save();<br/><br/>

.. "Yeni Kupon eklendi ve kimliği olan" echo $ coupon_rule-> getId () '
';


Eğer alışveriş sepeti fiyat kural Durum eklemek istiyorsanız bu örnek izleyin.

$sku =$c_data[7]; // Put your product SKU here
$found = Mage::getModel('salesrule/rule_condition_product_found')
->setType('salesrule/rule_condition_product_found')
->setValue(1) // 1 == FOUND
->setAggregator('all'); // match ALL conditions
$coupon_rule->getConditions()->addCondition($found);
$skuCond = Mage::getModel('salesrule/rule_condition_product')
->setType('salesrule/rule_condition_product')
->setAttribute('sku')
->setOperator('==')
->setValue($sku);

$found->addCondition($skuCond);
$coupon_rule->save();