Pregunta

En la regla del precio del carrito de compras puedo establecer la condición como "país de envío" "es" o "no es".Necesito extender esta condición a todos los países de la Unión Europea.Dado que Magento tiene esta configuración en

system > configuration > general > countries options

Hay una manera de usarlo en la condición de precio del precio del carro de la compra?

¿Fue útil?

Solución

No hay característica estándar. Para tal regla, debe usar el tipo de tipo en condiciones:

 ingrese la descripción de la imagen aquí

En caso de que desee extender el modelo de condición estándar, debe hacer la reescritura y agregar la condición apropiada como esta:

en clase donde reescribe 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;
}

y

/**
 * 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);
}

El campo aparecerá en las condiciones: ingrese la descripción de la imagen aquí

Todo debe funcionar correctamente en las reglas: Introduzca la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top