Pregunta

Estoy usando un atributo forced_shipping y el código a continuación en mage \ shipping \ model \ operador \ flatrate.php para restringir el método de envío para los elementos con el conjunto de atributos forced_shippinga sí.

$items = Mage::getModel('checkout/session')->getQuote()->getAllItems();
$forcedShipping = false;
foreach ( $items as $item ) {
    $_products = Mage::getModel('catalog/product')->getCollection()->addAttributeToFilter('sku', $item->getSku())->addAttributeToSelect('forced_shipping', 'inner');
    foreach ( $_products as $_product) {
        if ( $_product->getForced_shipping() == 1 ) {
            $forcedShipping = true;
        }
    }
}
if ( !$forcedShipping ) {
    return false;
}

Si bien esto funciona muy bien con productos planos desactivados, fallará una vez que los habilo.¿Cómo necesito modificar mi código para que funcione con productos planos, es posible en absoluto?

¿Fue útil?

Solución

Resulta que la configuración utilizada en la página del producto no incluye un atributo en la tabla plana.Tuve que configurar utilizado en el listado de productos a Sí para que funcione.

Aparentemente, cualquiera de estas configuraciones rellenará la tabla plana con un atributo:

uso en la navegación en capas , utilizado en el listado de productos , usado para clasificar en el listado de productos

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