2012-09-20 19 views
7

Estoy tratando de actualizar el "Precio_específico" y el "precio" a granel con mySQL y un script php, conozco la tabla y la fila que contiene el "precio" pero no la que contiene el "precio especial".¿Dónde está la tabla que contiene el "Precio especial" en Magento?

He mirado la base de datos y todavía no tuve suerte. ¿Algunas ideas? Necesito el nombre de la tabla y el nombre del campo.

+0

busque el código_atributo en la tabla eav_attribute. Apuesto a que hay un complemento para hacer esto, nadie debería estar jugando directamente con el archivo db en magento –

+0

:/bueno, idealmente sí ... pero estoy recibiendo errores con la API. Sin embargo, ¿cómo me ayuda el ID de atributo? – Nicekiwi

Respuesta

12

Mi membresía en el Magento Question Answers Guild me obliga a sugerirle que trabaje en la reparación de errores de su API en lugar de usar un simple SQL antiguo para actualizar la base de datos. Como se mencionó en otra parte, actualizar la base de datos directamente podría poner a Magento en un estado no reconocido por el sistema, lo que puede generar errores extraños y exasperantes.

Dicho esto, el valor especial de precios se almacena con el otro producto de los valores de atributo en la tabla

catalog_product_entity_decimal 

. Esta tabla tiene una columna attribute_id, que tiene una relación de clave externa con la tabla eav_attribute. Busque en la tabla eav_attribute el atributo con el código special_price. Eso attribute_id y el producto entity_id debería ser suficiente para encontrar la fila correcta en catalog_product_entity_decimal.

Tenga en cuenta que no existirá fila si un producto no tiene un conjunto special_price. También tenga en cuenta si un producto tiene un special_price configurado en diferentes niveles de alcance que puede haber más de una fila.

+0

Muchas gracias. Aprecia tu respuesta Mor me funciona bien en magento 1.9.1.0 – abkrim

1

Precio especial es un atributo de tipo decimal. primer lugar usted necesita para obtener el atributo id, mediante la aplicación de esta consulta SQL: SELECT attribute_id FROM eav_attribute WHERE attribute_code='special_price';

A continuación, se puede añadir un precio especial para cualquier producto mediante la inserción de un registro en la tabla catalog_product_entity_decimal.

-1

A continuación, se explica cómo eliminar el precio especial de una lista de SKU importados a través de un archivo csv en temp_import_sp_price_delete.

delete deci from catalog_product_entity_decimal deci, 
       `catalog_product_entity` pr, 
       temp_import_sp_price_delete temp 
where temp.SKU= pr.SKU and pr.entity_id=deci.entity_id and deci.attribute_id=76 
+0

Esto no parece responder a la pregunta que se hizo, que trata de * cambiar * precios especiales, no * borrarlos *. Además, debe explicar por qué funciona esto y qué significa el número mágico 76 (basado en las otras respuestas, sospecho que solo 76 en * su * base de datos). – zwol

Cuestiones relacionadas