Articoli correlati ‘come’

How-to – Magento – ripristinare o spostare l’installazione da un server all’altro

18 maggio 2009

Per spostare l’installazione di magento da un server ad un’altro sono necessari i seguenti steps:

1) cancellare il contenuto della cartella /var

2) cambiare i valori del file /app/etc/local.xml
Qui puoi trovi i dati della la tua connessione (utente database, host and nome database).

3) Una volta caricato il database sono necessarie alcune modifiche:

- Esegui questa query:

SELECT * FROM core_config_data WHERE path = ‘web/unsecure/base_url’ OR path = ‘web/secure/base_url’;

Dovresti avere qualcosa di simile a:

+———–+———+———-+———————–+————————————–+
| config_id | scope   | scope_id | path                  | value                                |
+———–+———+———-+———————–+————————————–+
|         2 | default |        0 | web/unsecure/base_url | http://www.tuodominio.com.ar/magento/ |
|         3 | default |        0 | web/secure/base_url   | http://www.tuodominio.com.ar/magento/ |
+———–+———+———-+———————–+————————————–+

- Ora cambia i valori del tuo nuovo url.

UPDATE core_config_data SET value = ‘http://www.tudominio.com.ar/’ WHERE path LIKE ‘web/%/base_url’;

Se esegui questa queri dovresti ora avere un risultato simile a:

+———–+———+———-+———————–+——————————+
| config_id | scope   | scope_id | path                  | value                        |
+———–+———+———-+———————–+——————————+
|         2 | default |        0 | web/unsecure/base_url | http://www.tudominio.com.ar/ |
|         3 | default |        0 | web/secure/base_url   | http://www.tudominio.com.ar/ |
+———–+———+———-+———————–+——————————+

how-to – Ricerca avanzata – range di valori numerici – Come impostare un attibuto con valori numerici (decimali o interi) per un prodotto in magento

5 maggio 2009

In Magento, se vogliamo ricercare dei prodotti nella ricerca avanzata per un range di valori numerici dovremo innanzi tutto creare un attributo da associare al prodotto ad es. Altezza, Larghezza, Lunghezza quindi (Catalogo->Attributi->Gestione Attributi->Aggiungi nuovo) e impostarlo come tipo testo e successivamente per aggirare il problema che il tipo di dati (int o decimal) non esiste lato amministratore sarà necessario impostarlo come attributo di sistema impostando l’opzione di attributo richiesto e successivamente andremo sulla tabella (eav_attribute) del database e ricerchiamo l’attributo appena inserito tramite il suo codice attributo (attribute_code) aggiornando quindi il record che descrive la configurazione del nostro attributo a mano in questo modo:

is_user_defined = 0
is_visible = 1
fronted_input = text
backend_type = decimal oppure int
is_visible_in_advanced_search = 1

database_eav_attribute

e il gioco e fatto, ci apparirà nella schermata di ricerca avvanzata il range di valori da cercare appena impostato

immagine-2

How-to – Problema con Adobe Flex Upload +[PHP] Sessione + Firefox !

9 aprile 2009

In un’applicazione di upload di files multipli in flex3 ho un problema: non mi passa allo script php la sessione corrente, la cosa strana di questo problema è che ciò non succede con internet explorer ma con firefox e safari (su altri non ho testato).

La soluzione a questo bug è facile:

1) Nello script flex aggiungiamo la classe che ho trovato nel seguente blog:

http://myflex.wordpress.com/2008/11/12/actionscript-cookie-util/

//code from myflex.wordpress.com
package de.aggro.utils
{
	import flash.external.ExternalInterface;
	public class CookieUtil
	{
		public function CookieUtil()
		{
		}
 
		private static const FUNCTION_SETCOOKIE:String =
            "document.insertScript = function ()" +
            "{ " +
                "if (document.snw_setCookie==null)" +
                "{" +
                    "snw_setCookie = function (name, value, days)" +
                    "{" +
                        "if (days) {"+
							"var date = new Date();"+
							"date.setTime(date.getTime()+(days*24*60*60*1000));"+
							"var expires = '; expires='+date.toGMTString();"+
						"}" +
						"else var expires = '';"+
						"document.cookie = name+'='+value+expires+'; path=/';" +
		            "}" +
                "}" +
            "}";
 
		private static const FUNCTION_GETCOOKIE:String =
            "document.insertScript = function ()" +
            "{ " +
                "if (document.snw_getCookie==null)" +
                "{" +
                    "snw_getCookie = function (name)" +
                    "{" +
                        "var nameEQ = name + '=';"+
						"var ca = document.cookie.split(';');"+
						"for(var i=0;i < ca.length;i++) {"+
							"var c = ca[i];"+
							"while (c.charAt(0)==' ') c = c.substring(1,c.length);"+
							"if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);"+
						"}"+
						"return null;" +
		            "}" +
                "}" +
            "}";
 
        private static var INITIALIZED:Boolean = false;
 
		private static function init():void{
			ExternalInterface.call(FUNCTION_GETCOOKIE);
			ExternalInterface.call(FUNCTION_SETCOOKIE);
			INITIALIZED = true;
		}
 
		public static function setCookie(name:String, value:Object, days:int):void{
			if(!INITIALIZED)
				init();
 
			ExternalInterface.call("snw_setCookie", name, value, days);
		}
 
		public static function getCookie(name:String):Object{
			if(!INITIALIZED)
				init();
 
			return ExternalInterface.call("snw_getCookie", name);
		}
 
		public static function deleteCookie(name:String):void{
			if(!INITIALIZED)
				init();
 
			ExternalInterface.call("snw_setCookie", name, "", -1);
		}
 
	}
}

2) In seguito richiamiamo lo script php dalla nostra applicazione flex passandogli la sessione:

Nel mio caso il file Mxml dell’applicazione è:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:com="com.flashdev.file.*" layout="absolute"
	creationComplete="initApp()" backgroundColor="#FFFFFF">
 
	<mx:Script>
		<![CDATA[
			import mx.controls.Alert;
			import com.utils.CookieUtil;
			private const _strDomain:String = "http://www.dominio.ext/";
			[Bindable]
			private var _strUploadScript:String = new String("http://www.dominio.ext/flex_uploader.php");
 
			// Initalize
			private function initApp():void {
				Security.allowDomain(_strDomain);
				//qui aggiungo la correzione al bug di firefox e Safari
				_strUploadScript += "?PHPSESSID=" + CookieUtil.getCookie("PHPSESSID");
				// define the type list for the upload
				uploader.typeList = [new FileFilter("Image files (*.jpg, *.gif, *.png, *.pdf, *.zip, *.xls)", "*.jpg;*.gif;*.png;*.pdf;*.zip;*.xls", "JPEG;jp2_;GIFf;PNGf;PDF;ZIP;XLS")];
				uploader.maxSize = 1048576;
			}
 
		]]>
	</mx:Script>
 
	<mx:Canvas width="400" height="300" horizontalCenter="1" verticalCenter="1">
		<com:FileList id="uploader"
			width="100%" height="100%"
			uploadUrl="{_strUploadScript}"
			uploadComplete="Alert.show('File(s) have been uploaded.', 'Upload successful')"
			uploadIOError="Alert.show('IO Error in uploading file.', 'Error')"
			uploadSecurityError="Alert.show('Security Error in uploading file.', 'Error')"/>
	</mx:Canvas>
 
</mx:Application>

Di seguito allego anche il file di progetto: flexfinder

How-to Impostazione delle spese di spedizione in Magento – corriere – poste italiane

26 marzo 2009

1. Entrare in Sistema -> Configurazione;
2. Ambito della Configurazione Corrente: Main Website;
3. Sul menù sinistro cliccare su Modalità di Spedizione;
4. Creare un file csv come questo

“Paese”,"Regione/Stato","CAP/Codice Postale","Peso (e superiore)","Prezzo Spedizione”
ITA,*,*,15.0000,40.0000
ITA,*,*,6.0000,22.0000
ITA,*,*,3.0000,18.0000
ITA,*,*,0.0000,12.0000

Attenzione di creare il file con Excel per via delle intestazioni che vengono generate.

5. Salvare il file come csv, cliccare su sfoglia dove c’è scritto “importa”
6. Fine.

Come personalizzare la sezione di amministrazione di Magento

18 febbraio 2009

Per personalizzare la sezione di amministrazione di Magento al momento dobbiamo arraggianci editando un file manualmente.
Primo passo:
Nella cartella /app/code ci sono 3 cartelle (community,core,local) la cartella local serve per sovrascrivere delle classi presenti in core.

Percui se dovremmo impostare un nostro template per il pannello di amministrazione stando sicuri che al prossimo aggiornamento non venga sovrascritto dovremmo creare logicamente un pacchetto di templates separato in /app/design/adminhtml/nostropacchetto e in skin/adminhtml/nostropacchetto inserire le varie immagini e css necessari.

Secondo passo:

Sovrascrivere quindi la classe che richiama i templates.

Per sovrascrivere la classe quindi copieremo il file nel quale avremo la classe stessa nella nostra nuova configurazione ovvero in /app/code/local/(percorso del file già presente in /app/code/core/etc..etc..).

Nella versione 2.1.2 il file da copiare si trova in /app/code/core/Mage/Adminhtml/Block/Page.php e lo copieremo in /app/code/local/Mage/Adminhtml/Block/Page.php

Terzo passo:

In questo file modificheremo le seguenti righe come segue:

    public function __construct()
    {
        /*parent::__construct();
 
		$this->setTemplate('page.phtml');
        $action = Mage::app()->getFrontController()->getAction();
        if ($action) {
            $this->addBodyClass($action->getFullActionName('-'));
        }*/
		Mage::getDesign()->setArea('adminhtml');
        Mage::getDesign()->setPackageName('nostrotemplate');
        Mage::getDesign()->setTheme('default');
    }

Quarto passo:

Finito.