December 11, 2013

[Mac OS X 10.9] Run mate in terminal

Create TextMate link in /usr/local/bin as below:

sudo ln -s /Applications/TextMate.app/Contents/Resources/mate /usr/local/bin

November 17, 2013

5 reasons to upgrade to Magento 1.8


1. Improved performance
2. Explicit Taxation calculation
3. Enhanced checkout process
4. Security reinforcement
5. Better Administrative Ordering

5 reasons to upgrade to Magento 1.8
5 reasons to upgrade to Magento 1.8

November 8, 2013

Magento Product stock back alerts (Out of Stock Notification) Not Working

Magento having a good process that if a product is out of stock then there should be a link for product notification. when the product back in stock it will send a mail to user.

To set up Magento Product Alerts please go to System > Configuration > Catalog > Product Alerts then select Yes to "Allow Alert When Product Comes Back in Stock" field.

Set out of status for any product and back to front end you see link to subscribe stock notify

Magento product stock back alert
Magento product stock back alert link

When user logged in and click to "Sign up to get notified when this product is back in stock" link, the user email will store in product alert table in Magento. Set in stock for this product in admin, an email will be send to user subscribed. Actually, email not send. Why????

After research I see config.xml file in Product Alert Module (app\code\core\Mage\ProductAlert\etc\config.xml) not set schedule for cronjob:

<crontab>
        <jobs>
            <catalog_product_alert>
                <run>
                    <model>productalert/observer::process</model>
                </run>
            </catalog_product_alert>
        </jobs>
  </crontab>
Just fix as well:

<crontab>
        <jobs>
            <catalog_product_alert>
                <schedule>
                    <cron_expr>*/5 * * * *</cron_expr>
                </schedule>
                <run>
                    <model>productalert/observer::process</model>
                </run>
            </catalog_product_alert>
        </jobs>
</crontab>

Form validation in Magento

As you know, Magento uses Prototype as javascript library. It provides a simple way to validate html form values.

In the form above you can see each input field has its own class name and these classes will be used to validate field’s value. There are many predefined classes like that in prototype lib. I’ll show you all of them at the end of this topic.

Most important thing besides assigning class names is that little piece of JavaScript below the form. Remember to pass form id into the new VarienForm object.

Basically, that’s it. Constructing the form this way, automatically makes your form reuse already existing validation code which is being used by the rest of the shop.

Below is a full list of validate class and its error message that I found in prototype lib.


Validate Class Meaning
validate-select Please select an option.
required-entry This is a required field.
validate-number Please enter a valid number in this field.
validate-digits Please use numbers only in this field. please avoid spaces or other characters such as dots or commas.
validate-alpha Please use letters only (a-z or A-Z) in this field.
validate-code Please use only letters (a-z), numbers (0-9) or underscore(_) in this field, first character should be a letter.
validate-alphanum Please use only letters (a-z or A-Z) or numbers (0-9) only in this field. No spaces or other characters are allowed.
validate-street Please use only letters (a-z or A-Z) or numbers (0-9) or spaces and # only in this field.
validate-phoneStrict Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.
validate-phoneLax Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.
validate-fax Please enter a valid fax number. For example (123) 456-7890 or 123-456-7890.
validate-date Please enter a valid date.
validate-email Please enter a valid email address. For example johndoe@domain.com.
validate-emailSender Please use only letters (a-z or A-Z), numbers (0-9) , underscore(_) or spaces in this field.
validate-password Please enter 6 or more characters. Leading or trailing spaces will be ignored.
validate-admin-password Please enter 7 or more characters. Password should contain both numeric and alphabetic characters.
validate-cpassword Please make sure your passwords match.
validate-url Please enter a valid URL. http:// is required
validate-clean-url Please enter a valid URL. For example http://www.example.com or www.example.com
validate-identifier Please enter a valid Identifier. For example example-page, example-page.html or anotherlevel/example-page
validate-xml-identifier Please enter a valid XML-identifier. For example something_1, block5, id-4
validate-ssn Please enter a valid social security number. For example 123-45-6789.
validate-zip Please enter a valid zip code. For example 90602 or 90602-1234.
validate-date-au Please use this date format: dd/mm/yyyy. For example 17/03/2006 for the 17th of March, 2006.
validate-currency-dollar Please enter a valid $ amount. For example $100.00.
validate-one-required Please select one of the above options.
validate-one-required-by-name Please select one of the options.
validate-not-negative-number Please enter a valid number in this field.
validate-state Please select State/Province.
validate-new-password Please enter 6 or more characters. Leading or trailing spaces will be ignored.
validate-greater-than-zero Please enter a number greater than 0 in this field.
validate-zero-or-greater Please enter a number 0 or greater in this field.
validate-cc-number Please enter a valid credit card number.
validate-cc-type Credit card number doesn\’t match credit card type
validate-cc-type-select Card type doesn\’t match credit card number
validate-cc-exp Incorrect credit card expiration date
validate-cc-cvn Please enter a valid credit card verification number.
validate-data Please use only letters (a-z or A-Z), numbers (0-9) or underscore(_) in this field, first character should be a letter.
validate-css-length Please input a valid CSS-length. For example 100px or 77pt or 20em or .5ex or 50%
validate-length Maximum length exceeded.

Hope this Magento tutorial helps!

January 11, 2013

Country Code in Magento

I am working on Magento with SSO login task. Customer auto logged via XML return from webservices. In XML we have only Bussiness Unit to redirect customer to store country right. I need matching Bussiness Unit to customer in database. So I need hard code to get store code to right Bussiness Unit. Example: Customer in United Kingdom will be redirect to store have code is uk in Magento ---> domain.com/?___store=uk. I've hard code:
$countryCodeArray = array( '001' => 'FR', '002' => 'BE', '003' => 'NL', '004' => 'DE', '006' => 'GB', '036' => 'CH', '038' => 'AU', '105' => 'IT', '111' => 'ES', '120' => 'PT', '916' => 'FI', '205' => 'EE', '206' => 'LV', '207' => 'LT', '230' => 'PL', '260' => 'HU', '285' => 'CZ', '287' => 'SK', '900' => 'CY', '908' => 'GR', '913' => 'NO', '920' => 'IE', '922' => 'DK', '923' => 'SE' );
So I have wrong with United Kingdom Country Code. In Magento United Kingdom have Country Code is GB not UK. After google search, I've found table of country code in Magento:

AFAfghanistanAF - AFGAFG
ALAlbaniaAL - ALBALB
DZAlgeriaDZ - DZADZA
ASAmerican SamoaAS - ASMASM
ADAndorraAD - ANDAND
AOAngolaAO - AGOAGO
AIAnguillaAI - AIAAIA
AQAntarcticaAQ - ATAATA
AGAntigua and BarbudaAG - ATGATG
ARArgentinaAR - ARGARG
AMArmeniaAM - ARMARM
AWArubaAW - ABWABW
AUAustraliaAU - AUSAUS
ATAustriaAT - AUTAUT
AZAzerbaijanAZ - AZEAZE
BSBahamasBS - BHSBHS
BHBahrainBH - BHRBHR
BDBangladeshBD - BGDBGD
BBBarbadosBB - BRBBRB
BYBelarusBY - BLRBLR
BEBelgiumBE - BELBEL
BZBelizeBZ - BLZBLZ
BJBeninBJ - BENBEN
BMBermudaBM - BMUBMU
BTBhutanBT - BTNBTN
BOBoliviaBO - BOLBOL
BABosnia and HerzegoviBA - BIHBIH
BWBotswanaBW - BWABWA
BVBouvet IslandBV - BVTBVT
BRBrazilBR - BRABRA
IOBritish Indian OceanIO - IOTIOT
VGBritish Virgin IslanVG - VGBVGB
BNBruneiBN - BRNBRN
BGBulgariaBG - BGRBGR
BFBurkina FasoBF - BFABFA
BIBurundiBI - BDIBDI
KHCambodiaKH - KHMKHM
CMCameroonCM - CMRCMR
CACanadaCA - CANCAN
CVCape VerdeCV - CPVCPV
KYCayman IslandsKY - CYMCYM
CFCentral African RepuCF - CAFCAF
TDChadTD - TCDTCD
CLChileCL - CHLCHL
CNChinaCN - CHNCHN
CXChristmas IslandCX - CXRCXR
CCCocos [Keeling] IslaCC - CCKCCK
COColombiaCO - COLCOL
KMComorosKM - COMCOM
CGCongo - BrazzavilleCG - COGCOG
CDCongo - KinshasaCD - CODCOD
CKCook IslandsCK - COKCOK
CRCosta RicaCR - CRICRI
HRCroatiaHR - HRVHRV
CUCubaCU - CUBCUB
CYCyprusCY - CYPCYP
CZCzech RepublicCZ - CZECZE
CICôte d’IvoireCI - CIVCIV
DKDenmarkDK - DNKDNK
DJDjiboutiDJ - DJIDJI
DMDominicaDM - DMADMA
DODominican RepublicDO - DOMDOM
ECEcuadorEC - ECUECU
EGEgyptEG - EGYEGY
SVEl SalvadorSV - SLVSLV
GQEquatorial GuineaGQ - GNQGNQ
EREritreaER - ERIERI
EEEstoniaEE - ESTEST
ETEthiopiaET - ETHETH
FKFalkland IslandsFK - FLKFLK
FOFaroe IslandsFO - FROFRO
FJFijiFJ - FJIFJI
FIFinlandFI - FINFIN
FRFranceFR - FRAFRA
GFFrench GuianaGF - GUFGUF
PFFrench PolynesiaPF - PYFPYF
TFFrench Southern TerrTF - ATFATF
GAGabonGA - GABGAB
GMGambiaGM - GMBGMB
GEGeorgiaGE - GEOGEO
DEGermanyDE - DEUDEU
GHGhanaGH - GHAGHA
GIGibraltarGI - GIBGIB
GRGreeceGR - GRCGRC
GLGreenlandGL - GRLGRL
GDGrenadaGD - GRDGRD
GPGuadeloupeGP - GLPGLP
GUGuamGU - GUMGUM
GTGuatemalaGT - GTMGTM
GGGuernseyGG - GGYGGY
GNGuineaGN - GINGIN
GWGuinea-BissauGW - GNBGNB
GYGuyanaGY - GUYGUY
HTHaitiHT - HTIHTI
HMHeard Island and McDHM - HMDHMD
HNHondurasHN - HNDHND
HKHong Kong SAR ChinaHK - HKGHKG
HUHungaryHU - HUNHUN
ISIcelandIS - ISLISL
INIndiaIN - INDIND
IDIndonesiaID - IDNIDN
IRIranIR - IRNIRN
IQIraqIQ - IRQIRQ
IEIrelandIE - IRLIRL
IMIsle of ManIM - IMNIMN
ILIsraelIL - ISRISR
ITItalyIT - ITAITA
JMJamaicaJM - JAMJAM
JPJapanJP - JPNJPN
JEJerseyJE - JEYJEY
JOJordanJO - JORJOR
KZKazakhstanKZ - KAZKAZ
KEKenyaKE - KENKEN
KIKiribatiKI - KIRKIR
KWKuwaitKW - KWTKWT
KGKyrgyzstanKG - KGZKGZ
LALaosLA - LAOLAO
LVLatviaLV - LVALVA
LBLebanonLB - LBNLBN
LSLesothoLS - LSOLSO
LRLiberiaLR - LBRLBR
LYLibyaLY - LBYLBY
LILiechtensteinLI - LIELIE
LTLithuaniaLT - LTULTU
LULuxembourgLU - LUXLUX
MOMacau SAR ChinaMO - MACMAC
MKMacedoniaMK - MKDMKD
MGMadagascarMG - MDGMDG
MWMalawiMW - MWIMWI
MYMalaysiaMY - MYSMYS
MVMaldivesMV - MDVMDV
MLMaliML - MLIMLI
MTMaltaMT - MLTMLT
MHMarshall IslandsMH - MHLMHL
MQMartiniqueMQ - MTQMTQ
MRMauritaniaMR - MRTMRT
MUMauritiusMU - MUSMUS
YTMayotteYT - MYTMYT
MXMexicoMX - MEXMEX
FMMicronesiaFM - FSMFSM
MDMoldovaMD - MDAMDA
MCMonacoMC - MCOMCO
MNMongoliaMN - MNGMNG
MEMontenegroME - MNEMNE
MSMontserratMS - MSRMSR
MAMoroccoMA - MARMAR
MZMozambiqueMZ - MOZMOZ
MMMyanmar [Burma]MM - MMRMMR
NANamibiaNA - NAMNAM
NRNauruNR - NRUNRU
NPNepalNP - NPLNPL
NLNetherlandsNL - NLDNLD
ANNetherlands AntillesAN - ANTANT
NCNew CaledoniaNC - NCLNCL
NZNew ZealandNZ - NZLNZL
NINicaraguaNI - NICNIC
NENigerNE - NERNER
NGNigeriaNG - NGANGA
NUNiueNU - NIUNIU
NFNorfolk IslandNF - NFKNFK
KPNorth KoreaKP - PRKPRK
MPNorthern Mariana IslMP - MNPMNP
NONorwayNO - NORNOR
OMOmanOM - OMNOMN
PKPakistanPK - PAKPAK
PWPalauPW - PLWPLW
PSPalestinian TerritorPS - PSEPSE
PAPanamaPA - PANPAN
PGPapua New GuineaPG - PNGPNG
PYParaguayPY - PRYPRY
PEPeruPE - PERPER
PHPhilippinesPH - PHLPHL
PNPitcairn IslandsPN - PCNPCN
PLPolandPL - POLPOL
PTPortugalPT - PRTPRT
PRPuerto RicoPR - PRIPRI
QAQatarQA - QATQAT
RORomaniaRO - ROUROU
RURussiaRU - RUSRUS
RWRwandaRW - RWARWA
RERéunionRE - REUREU
BLSaint BarthélemyBL - BLMBLM
SHSaint HelenaSH - SHNSHN
KNSaint Kitts and NeviKN - KNAKNA
LCSaint LuciaLC - LCALCA
MFSaint MartinMF - MAFMAF
PMSaint Pierre and MiqPM - SPMSPM
VCSaint Vincent and thVC - VCTVCT
WSSamoaWS - WSMWSM
SMSan MarinoSM - SMRSMR
SASaudi ArabiaSA - SAUSAU
SNSenegalSN - SENSEN
RSSerbiaRS - SRBSRB
SCSeychellesSC - SYCSYC
SLSierra LeoneSL - SLESLE
SGSingaporeSG - SGPSGP
SKSlovakiaSK - SVKSVK
SISloveniaSI - SVNSVN
SBSolomon IslandsSB - SLBSLB
SOSomaliaSO - SOMSOM
ZASouth AfricaZA - ZAFZAF
GSSouth Georgia and thGS - SGSSGS
KRSouth KoreaKR - KORKOR
ESSpainES - ESPESP
LKSri LankaLK - LKALKA
SDSudanSD - SDNSDN
SRSurinameSR - SURSUR
SJSvalbard and Jan MaySJ - SJMSJM
SZSwazilandSZ - SWZSWZ
SESwedenSE - SWESWE
CHSwitzerlandCH - CHECHE
SYSyriaSY - SYRSYR
STSão Tomé and PríncipST - STPSTP
TWTaiwanTW - TWNTWN
TJTajikistanTJ - TJKTJK
TZTanzaniaTZ - TZATZA
THThailandTH - THATHA
TLTimor-LesteTL - TLSTLS
TGTogoTG - TGOTGO
TKTokelauTK - TKLTKL
TOTongaTO - TONTON
TTTrinidad and TobagoTT - TTOTTO
TNTunisiaTN - TUNTUN
TRTurkeyTR - TURTUR
TMTurkmenistanTM - TKMTKM
TCTurks and Caicos IslTC - TCATCA
TVTuvaluTV - TUVTUV
UMU.S. Minor Outlying UM - UMIUMI
VIU.S. Virgin IslandsVI - VIRVIR
UGUgandaUG - UGAUGA
UAUkraineUA - UKRUKR
AEUnited Arab EmiratesAE - AREARE
GBUnited KingdomGB - GBRGBR
USUnited StatesUS - USAUSA
UYUruguayUY - URYURY
UZUzbekistanUZ - UZBUZB
VUVanuatuVU - VUTVUT
VAVatican CityVA - VATVAT
VEVenezuelaVE - VENVEN
VNVietnamVN - VNMVNM
WFWallis and FutunaWF - WLFWLF
EHWestern SaharaEH - ESHESH
YEYemenYE - YEMYEM
ZMZambiaZM - ZMBZMB
ZWZimbabweZW - ZWEZWE
AXÅland IslandsAX - ALAALA
There was an error in this gadget