2012-09-20 13 views
7

Sto cercando di aggiornare "Special_price" e "price" alla rinfusa con mySQL uno script php, conosco la tabella e la riga che contiene il "price" ma non quello che contiene il "special_price".Dov'è la tabella che contiene il "Prezzo speciale" in Magento?

Mi sembra che il database stesso e ancora senza fortuna. Qualche idea? Ho bisogno del nome della tabella e del nome del campo.

+0

cercare il codice_attributo nella tabella eav_attribute. Scommetto che c'è un plug-in per farlo, nessuno dovrebbe giocare direttamente con il db in magento –

+0

:/beh idealmente sì .. ma sto ottenendo errori usando l'API. Tuttavia come mi aiuta l'attributo id? – Nicekiwi

risposta

12

La mia appartenenza al Magento Question Answers Guild mi richiede di suggerire di lavorare su come correggere gli errori API invece di usare semplicemente SQL vecchio per aggiornare il database. Come accennato altrove, l'aggiornamento diretto del database potrebbe mettere Magento in uno stato non riconosciuto dal sistema, che può portare a errori strani e irritanti.

Ciò detto, il valore del prezzo speciale sarà memorizzato con l'altro prodotto valori di attributo nella tabella

catalog_product_entity_decimal 

. Questa tabella ha una colonna attribute_id, che ha una relazione di chiave esterna con la tabella eav_attribute. Cerca nella tabella eav_attribute per l'attributo con il codice special_price. Il numero attribute_id e il numero entity_id del prodotto dovrebbero essere sufficienti per trovare la riga corretta in catalog_product_entity_decimal.

Tenere presente che non esiste alcuna riga se un prodotto non ha un set special_price. Inoltre, tieni presente che se un prodotto ha un valore special_price impostato su livelli di ambito diversi, potrebbe esserci più di una riga.

+0

Un sacco di ringraziamenti. Apprezza la tua risposta. Mor me funziona bene su Magento 1.9.1.0 – abkrim

1

Prezzo speciale è un attributo di tipo decimale. In primo luogo è necessario per ottenere l'attributo id, mediante l'applicazione di questa query SQL: SELECT attribute_id FROM eav_attribute WHERE attribute_code='special_price';

Quindi, è possibile aggiungere un prezzo speciale per qualsiasi prodotto con l'inserimento di un record nella catalog_product_entity_decimal tavolo.

-1

Ecco come eliminare il prezzo speciale da un elenco di SKU importati tramite un file CSV in 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

Questo non sembra rispondere alla domanda che è stata posta, che riguarda * cambiando * i prezzi speciali, non * cancellandoli *. Inoltre, dovresti spiegare perché questo funziona e cosa significa il numero magico 76 (basato sulle altre risposte, sospetto che sia solo 76 nel * tuo * database). – zwol

Problemi correlati