Domanda

Ho scritto uno script che cerca prodotti senza categorie attive e disabilita i prodotti. Si trattava per quanto riguarda il nostro cliente spegnendo alcune vecchie categorie, ma i prodotti sono ancora ricercabili. Abbiamo pensato che fosse meglio impostare il loro stato in disabili in bulk.

Quindi per fare ciò chiamiamo questa linea:

.

Mage :: GetModel ('Catalogo / Prodotto_status') -> UpdateProductStatus ($ PROD-> GETID (), $ STORE_ID_ID, MAGE_CATALOG_MODEL_PRODUCT_STATUS :: STATUS_DIS_DISABLED);

Quindi una settimana dopo, dobbiamo riattivare un prodotto. Accedo il pannello di amministrazione e lo stato è ancora visualizzato come "Abilitato". Mi ci è voluto correre di nuovo il mio script di codifica del mio ID per farla apparire nel negozio di nuovo:

.

Mago :: GetModel ('Catalogo / Prodotto_Status') -> UpdateProductStatus (370, $ STORE_ID, MAGE_CATALOG_MODEL_PRODUCT_STATUS :: STATUS_Enabled);

Obtoulsy La mia intenzione è stata che lo stato nel pannello di amministrazione sarebbe disabilitato, e quindi qualsiasi utente con accesso ad amministratore sarebbe in grado di riattivare questi prodotti. Quindi sto chiedendo alla comunità, cosa fanno effettivamente le linee di cui sopra? E come posso fare ciò che intendevo.

È stato utile?

Soluzione

Questo è un tipo di una domanda a due parti.

Prima stai dicendo:

.

Si trattava per quanto riguarda il nostro cliente spegnendo alcune vecchie categorie, ma i prodotti sono ancora ricercabili.

Invece di "disabilitare", creerei uno script che cambia la visibilità da "Catalogo, ricerca" a "Catalogo"

Questo codice sembrerebbe qualcosa del genere:

$productId = ???;
$product = Mage::getModel('catalog/product');
$product->load($productId);
$product->setVisibility(2);
$product->save();
.

Hai anche bisogno di un codice per cercare e passare la visibilità nel caso in cui ritorni in una categoria.

Nota: dal momento che si dispone di più siti Web, potrebbe essere necessario aggiungere il codice specificamente a un ID del sito Web. Inoltre, poiché si dispone di più amministratori che cambiano i dati del prodotto, un logger di amministratore sarebbe una grande idea da quando ho ascoltato storie horror su Amministratore casuale che cambiano i dati del prodotto.

La seconda parte della domanda è

.

Cosa fanno effettivamente le linee sopra?

Il codice disabilitato e consente i prodotti, tuttavia sembra che tu abbia funzionato in un problema. Ci sono anche altri modi nel fare anche questo, tuttavia ciò che hai pubblicato sopra è il modo più comune (specialmente su SE). Le cose che dovrei guardare è se il tuo attributo "stato" è una variabile globale o di siti Web. Per impostazione predefinita è "sito web". Darei un'occhiata a ciò che quando sei nel pannello di amministrazione è se si è sulla vista predefinita o se si è nella visualizzazione specifica del sito Web. Il codice sopra sembrerà sempre "abilitato" nella vista predefinita, ma verrà disabilitato nella visualizzazione del sito Web.

Creerei un registro personalizzato nel tuo script per vedere scrivere quale prodotto è stato cambiato e quando è stato cambiato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top