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''
)
);