Per ordinare un elendo di ordini in Magento, si può usare il metodo:
addAttributeToSort($attributo, dir="asc");
Un esempio, che carica gli ordini ordinati per data di creazione:
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$orders = Mage::getModel('sales/order')->getCollection()
->addAttributeToSelect("*");
$orders->addAttributeToSort('created_at', $dir="desc");
testato con la versione 1.5.0.1.
La versione di Magento è la 1.5.0.1.
Questa funzione elimina un ordine con relative fatture, note di credito e spedizioni. Da usare sotto la supervisione di un adulto.
function deleteOrder($orderId) {
$order = Mage::getModel('sales/order')->load($orderId);
$invoices = $order->getInvoiceCollection();
foreach ($invoices as $invoice){
$invoice->delete();
}
$creditnotes = $order->getCreditmemosCollection();
foreach ($creditnotes as $creditnote){
$creditnote->delete();
}
$shipments = $order->getShipmentsCollection();
foreach ($shipments as $shipment){
$shipment->delete();
}
$order->delete();
return 0;
}
Capita, o almeno a me è successo, che dopo aver inserito nuovi prodotti in magento, ci sia la necessità di applicare tutte le regole sui prezzi (sconti, ecc..) esistenti ai nuovi prodotti inseriti. Questa funzione lo fa:
function applicaRegolePrezzi() {
try {
Mage::getModel('catalogrule/rule')->applyAll();
Mage::app()->removeCache('catalog_rules_dirty');
echo "Regole applicate con successo";
} catch (Exception $e) {
echo "Impossibile applicare le regole" . $e;
}
}
Wodrpress salva nella tabella option e in altre tabelle molti riferimenti al’url del sito. Per esempio, nella tabella wp_options esistono due valori di option_name:
che nel caso di questo blog hanno valore http://www.nicolacolonna.it.
Il problema sorge quando replico in locale l’intero blog, creando sotto apache un virtualhost di nome per esempio http://nicolabackup.it
Navigando sul sito in locale tutti i riferimenti presi dal db sono comunque riferiti a http://www.nicolacolonna.it e non a http://nicolabackup.it.
Questo problema si risolve aggiungendo queste due righe al wp-config.php:
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
Questi define sovrascrivono a runtime (senza toccare il database) i due valori relativi al siteurl e alla home ed il sito diventa navigabile correttamente da qualsiasi url sia impostato nella definizione del virtualhost.
Qui c’è la guida ufficiale su tutti i paramentri impostabili nel file wp-config.php:
http://codex.wordpress.org/Editing_wp-config.php
Come descritto dalla guida, il valore dei due parametri deve essere:
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST'] . '/path/to/wordpress');
ovvero il percorso fino a wordpress.
Nel mio caso, questo errore riguardava una configurazione sbagliata nel file .htaccess, nella configurazione RewriteRule, in cui il percorso nel file era sbagliato:
RewriteRule ^(.*)$ index.php/$1 [L]
L’errore veniva generato dal fatto che il percorso al file index.php non era corretto.