api - Atributos de actualización masiva de Magento
attributes skus (2)
Si bien esto puede funcionar técnicamente, el código que ha escrito es casi la última forma en que debe hacer esto.
En Magento, realmente debería utilizar los modelos proporcionados por el código y no escribir las consultas de la base de datos por su cuenta.
En su caso, si necesita actualizar atributos para 1 o muchos productos, hay una manera de hacerlo rápidamente (y con bastante seguridad).
Si mira en: /app/code/core/Mage/Adminhtml/controllers/Catalog/Product/Action/AttributeController.php, encontrará que este controlador está dedicado a actualizar varios productos rápidamente.
Si busca en la función saveAction (), encontrará la siguiente línea de código:
Mage::getSingleton(''catalog/product_action'')
->updateAttributes($this->_getHelper()->getProductIds(), $attributesData, $storeId);
Este código es responsable de actualizar todos los ID de productos que desee, solo los atributos modificados para cualquier tienda individual a la vez.
El primer parámetro es básicamente una matriz de ID de productos. Si solo desea actualizar un solo producto, simplemente colóquelo en una matriz.
El segundo parámetro es una matriz que contiene los atributos que desea actualizar para los productos dados. Por ejemplo, si desea actualizar el precio a $ 10 y el peso a 5, pasará la siguiente matriz:
array(''price'' => 10.00, ''weight'' => 5)
Entonces, finalmente, el tercer y último atributo es la ID de la tienda en la que desea que ocurran estas actualizaciones. Lo más probable es que este número sea 1 o 0.
Me gustaría jugar con esta llamada de función y utilizar esto en lugar de escribir y mantener sus propias consultas de base de datos.
Hola chicos, me falta el SQL de esto para los atributos de actualización masiva por SKU / UPC
Ejecutando EE1.10 FYI
Tengo todo el resto del código en funcionamiento, pero no estoy seguro de quién / qué / por qué estamos actualizando nuestros atributos, y no hemos podido encontrarlos, mi lógica es
- Abra un CSV y tome todos los skus y attrib asociados en una matriz 2d
- Analizar el SKU en un entity_id
- Tome el entity_id y el atributo y ejecute actualizaciones hasta que finalice
- Tómese el resto del día desde su viernes
Aquí está mi código (casi terminado), agradecería muchísimo la ayuda.
/**
* FUNCTION: updateAttrib
*
* REQS: $db_magento
* Session resource
*
* REQS: entity_id
* Product entity value
*
* REQS: $attrib
* Attribute to alter
*
*/
Vea mi respuesta para el código de producción de trabajo. Espero que esto ayude a alguien en la comunidad de Magento.
La consulta de actualización general será como:
UPDATE
catalog_product_entity_[backend_type] cpex
SET
cpex.value = ?
WHERE cpex.attribute_id = ?
AND cpex.entity_id = ?
Para encontrar el [backend_type] asociado con el atributo:
SELECT
backend_type
FROM
eav_attribute
WHERE entity_type_id =
(SELECT
entity_type_id
FROM
eav_entity_type
WHERE entity_type_code = ''catalog_product'')
AND attribute_id = ?
Puede obtener más información del siguiente artículo de blog:
http://www.blog.magepsycho.com/magento-eav-structure-role-of-eav_attributes-backend_type-field/
Espero que esto te ayude.