سؤال

في قاعدة سعر عربة التسوق يمكنني تعيين الشرط باسم" بلد الشحن "" هو "أو"ليس".أحتاج إلى توسيع هذا الشرط ليشمل جميع دول الاتحاد الأوروبي.منذ الماجنتو لديه هذا التكوين في

system > configuration > general > countries options

هناك طريقة لاستخدامها في عربة التسوق سعر حالة السعر?

هل كانت مفيدة؟

المحلول

لا توجد ميزة قياسية.لمثل هذه القاعدة يجب عليك استخدام أي نوع في الظروف:

enter image description here

في حال كنت ترغب في تمديد نموذج الشرط القياسي ، ثم يجب عليك القيام إعادة كتابة وإضافة الشرط المناسب مثل هذا:

في الفصل حيث إعادة الكتابة Mage_SalesRule_Model_Rule_Condition_Address:

public function loadAttributeOptions()
{
    $attributes = parent::loadAttributeOptions()->getAttributeOption();
    $additionalAttributes = array(
        'eu' => Mage::helper('salesrule')->__('Europe Union Country'),
    );
    $attributes = array_merge($attributes, $additionalAttributes);
    $this->setAttributeOption($attributes);

    return $this;
}

و

/**
 * Validate Address Rule Condition
 *
 * @param Varien_Object $object
 * @return bool
 */
public function validate(Varien_Object $object)
{
    $address = $object;
    if (!$address instanceof Mage_Sales_Model_Quote_Address) {
        if ($object->getQuote()->isVirtual()) {
            $address = $object->getQuote()->getBillingAddress();
        }
        else {
            $address = $object->getQuote()->getShippingAddress();
        }
    }
    // Eu check start
    if ('eu' == $this->getAttribute() && !$address->getEu()) {
        $this->setValue(boolval($this->getValue()));
        $euCountries = explode(',', Mage::getStoreConfig('general/country/eu_countries'));
        if (empty($euCountries)) {
            $euCountries = array();
        }
        $isEu = in_array($address->getCountry(), $euCountries);
        $address->setEu($isEu);
    }
    // Eu check end

    return parent::validate($address);
}

سيظهر الحقل في الشروط:enter image description here

يجب أن يعمل كل شيء بشكل صحيح في القواعد:enter image description here enter image description here

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى magento.stackexchange
scroll top