Pregunta

$discounted_price = Mage::getResourceModel('catalogrule/rule')->getRulePrice(
    Mage::app()->getLocale()->storeTimeStamp($store_id),
    Mage::app()->getStore($store_id)->getWebsiteId(),
    Mage::getSingleton('customer/session')->getCustomerGroupId(),
    $_product->getId()
);

Usé esto para obtener el precio de la regla del catálogo para un producto.Ahora quiero obtener la fecha toDate de la regla del catálogo aplicada a un producto, ¿cómo puedo lograrlo?Y también como desarrollador, ¿hay alguna documentación que pueda consultar para encontrar funciones como estas?

¿Fue útil?

Solución

No parece que el método que está utilizando le permita hacer eso, ya que devuelve un precio de una regla que coincide con la entrada que proporciona.

Solo eché un vistazo rápido a estas clases, pero parece que puede cargar reglas para el producto y luego usarlas para obtener los campos toDate de ellas:

// Add catalog rules to the product
Mage::getModel('catalogrule/rule')->loadProductRules($product);

// Get matched rule IDs
foreach ($product->getMatchedRules() as $ruleId=>$ruleval) {
    /** @var Mage_CatalogRule_Model_Rule $rule */
    $rule = Mage::getModel('catalogrule/rule')->load($ruleId);
    echo $ruleId . ' has a toDate of: ' . $rule->getToDate() . ' and matches my product.', PHP_EOL;
}

Esto le daría cualquier regla que coincida con el producto (creo).Puede ser lo que necesita, pero también puede ser inútil si tiene varias reglas que terminan con el mismo precio (si está comparando su valor con el valor en este bucle).

Sería mucho más útil si el método que está utilizando devolviera el modelo de regla o ID que coincidiera en lugar de solo el precio, pero bueno, tendrá que hacer lo que pueda.

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