Создание цены на корзину управляет в Magento автоматически

Я хотел бы создать правило цены на корзину, которое дает пользователю 10% от их порядка, когда и если они завершают процесс на моем сайте Magento.

Существует метод здесь, который вставляет правило непосредственно в базу данных. Это немного агрессивно для моих вкусов.

Как я пошел бы об этом использовании методы Magento?

11
задан Jon Winstanley 1 December 2010 в 09:34
поделиться

1 ответ

Как правило, вы должны иметь возможность делать все, что делает сама система Magento, без написания ни единой строчки SQL. Почти все структуры данных Magento используют классы модели Magento.

Запустите следующий код где-нибудь, чтобы увидеть, как выглядит модель правил / правил продаж. Предполагается, что вы создали одно правило цены корзины покупок в админке с идентификатором 1

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

. Используя выгруженные данные в качестве руководства, мы можем программно создать модель, используя следующее

    $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();

. Для всех, кому интересно, приведенное выше генерируется код с использованием описанной здесь техники

19
ответ дан 3 December 2019 в 04:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: