versiones guia español descargar actualizar php sql magento zend-framework2 magento-1.9

php - guia - qgis manual



SQL personalizado en cuadrícula de producto (3)

¿Cómo puedo agregar una llamada SQL personalizada en la grilla del producto?

Esto es lo que tengo hasta ahora:

$collection = Mage::getModel(''catalog/product'')->getCollection() ->addAttributeToSelect(''sku'') ->addAttributeToSelect(''name'') ->addAttributeToSelect(''attribute_set_id'') ->addAttributeToSelect(''type_id''); $collection->joinField( ''quantity_in_stock'', ''advancedinventory'', ''quantity_in_stock'', ''product_id=entity_id'', ''advancedinventory.place_id=1'', ''inner'' ); $this->addColumn(''quantity_in_stock'', array( ''header''=> Mage::helper(''catalog'')->__(''Custom Column''), ''width'' => ''80px'', ''type'' => ''number'', ''index'' => ''quantity_in_stock'' ));

pero esto no parece funcionar, necesito obtener el valor de la tabla advancedinventory donde product_id es el id de esa entidad y place_id siempre es igual a 1.

¿Alguien podría proporcionar alguna ayuda?


El nombre de la tabla debe ser como se define para el magento getResourceModel. por ejemplo: catalog / category, directory / country_name ...

Si no funciona, puede intentar editar la selección con $ collection-> getSelect () -> joinLeft (...).


puedes usar como abajo

aquí hay un ejemplo simple que puedes aplicar a tu colección

$collection = Mage::getResourceModel(''catalog/product_collection'') ->addAttributeToSelect(''name'') ->addAttributeToSelect(''sku'') ->addAttributeToSelect(''price'') ->addAttributeToSelect(''status'') ->addAttributeToSelect(''visibility'') ->addAttributeToFilter(''type_id'', array(''eq'' => ''simple'')) ->addFieldToFilter(''status'', Mage_Catalog_Model_Product_Status::STATUS_ENABLED) ->addAttributeToFilter(''visibility'', array(''neq'' => 1)); $collection->getSelect()->join(array(''abvinv'' => "advancedinventory"), "e.entity_id = abvinv.product_id", array(''abvinv.*''))

aquí estoy asumiendo que la columna product_id que está disponible en advancedinventory tabla de product_id advancedinventory

Espero que esto funcione para ti.


Resuelto,

Para solucionarlo tuve que hacer la colección de esta:

$collection = Mage::getModel(''catalog/product'')->getCollection() ->addAttributeToSelect(''sku'') ->addAttributeToSelect(''name'') ->addAttributeToSelect(''attribute_set_id'') ->addAttributeToSelect(''type_id'') ->joinField(''quantity_in_stock'', ''mage_advancedinventory'', ''quantity_in_stock'', ''product_id=entity_id'', ''place_id=1'', ''left'');` $this->addColumn(''quantity_in_stock'', array( ''header''=> Mage::helper(''catalog'')->__(''Custom Column''), ''width'' => ''80px'', ''type'' => ''number'', ''index'' => ''quantity_in_stock'' ) );