magento

Security Update for Magento Base URL Configuration Value

Magento ออกมาประกาศถึงผู้ใช้ Magento version 1.0 - 1.0.19870 ให้รีบแก้ใข config เพื่อแก้ปัญหาเกี่ยวกับ security ซึ่งอาจทำให้มีปัญหากับ block cache

ปัญหานี้ไม่เกิดกับคนที่ติดตั้งแบบ SSL วิธี fix ก็แค่เข้าไปที่ System-> Configurations เลือกแท็บ ‘Web’ แล้วไปเปลี่ยน value จาก {{base_url}} เป็น URL ของร้าน เช่น http://www.pangpondblog.com/magento/

ที่มา Magento Blog

Magento Installation

จะลองใช้ Magento ต้องเตรียมตัวอะไรบ้าง

System Requirements

  • Linux, Windows, or another UNIX-compatible operating system
  • Apache Web Server (1.x or 2.x)
  • PHP 5.2.0 or newer, with the following extensions/addons:
    • PDO/MySQL
    • MySQLi
    • mcrypt
    • mhash
    • simplexml
    • DOM
    • curl
  • MySQL 4.1.20 or newer
  • A Sendmail-compatible Mail Transfer Agent (MTA)

ที่น่าเป็นห่วงคือ PHP5 กับ Extension ที่ดูแล้ว hosting ในไทยไม่แน่ใจว่าจะ support หรือเปล่า
hosting ที่แรกที่นึกถึงคือ appservhosting.com เพราะดูจาก phpinfo แล้วมีทุก extension ส่วนของต่างประเทศไปลองกับ Hosting ต่างประเทศยอดนิยมอย่าง Hosmonster ปรากฎว่าผ่ายฉลุย ไม่ติดขัด

Magento's Architecture

เบื้องหลังของ Magento คือ zend framework เข้าใจว่าความสัมพันธ์ระหว่าง ทีมผู้สร้าง magento (Varien) กับ Zend Framework (Zend) ค่อนข้างจะใกล้ชิดพอสมควร เพราะ site ใหม่ของ zend framework 1.5 ก็ได้ Varien นี่แหล่ะทำให้

 

 

Zend Framework คืออะไร
เป็น PHP framework ตัวนึงในท้องตลาด นอกนั้นก็มี Symfony, CodeIgniter, CakePHP แว่วๆมาว่า Develop ชาวไทยชอบใช้ CakePHP ... แต่ผมกลับอยากเล่น Symfony มากกว่าแฮะ

PHP framework คืออะไีร
เหมือนกับ framwork ทั่วไปที่เป็นโครงสร้างสิ่งแวดล้อมที่กำหนดไว้แล้วก็จะรวมเอา library ที่จำเป็นและใช้บ่อยมาไว้ด้วยกันเพื่ออำนวยความสะดวกในการสร้าง web application ซึ่ง Framework ส่วนใหญ่ก็จะเป็น Model View Controller (MVC) ด้วย โดยจะแยก ข้อมูล, ตัวโปรแกรม,หน้าตา ออกจากกัน (data model, business rules, user interface.)

กลับมาที่ Zend Framework

โครงสร้างของ zend framework ก็อารมณ์ประมาณนี้ (รูปจาก Andi on Web & IT)
จริงแล้วถ้าแค่ใช้งาน Magento ก็ไม่จำเป็นต้องล้วงลึกไปถึง Zend Framework ก็ได้ แต่ถ้าจะพัฒนาโมดูล หรือสร้าง Template เอง รู้โครงสร้างของ Zend Framework ไว้บ้างก็ดี

โครงสร้างของ Magento
หลักๆก็ประกอบด้วย Core กับ Extensions
Core ประกอบด้วย

  • Local - พัฒนาโดย Magento team เอง
  • Community - พัฒนา core จากชุมชน


Extensions ประกอบด้วย

Magento Terminologies

Defaut - One Website with one store and one store view
Magento One Stores

Two Stores with two store views each

One Website with one store and one store view

ลองนึกถึงตึกพาณิชย์ตึกนึง ที่มีหลายชั้น แล้วแต่ละชั้นก็จะมีร้านอยู่ชั้นละ 1 ร้าน โดยที่แต่ละร้านไม่เกี่ยวข้องกันทางด้านการซื้อขาย แต่จะมีทรัพยากรบางอย่างที่จะเป็นต้องใช้ร่วมกัน เช่น น้ำ ไฟ โครงสร้างตึก และแต่ละร้านก็จะมีสไตล์การตบแต่งร้านต่างกัน

คล้ายๆกับโครงสร้างของ Magento ที่มีระดับการเข้าถึงอยู่ 3 ระดับ

  • Website (ตึกแถว)
  • Store (ชั้นของตึก)
  • Store View (ตัวร้าน)


ทำไมถึงต้องแบ่งระดับเลเยอร์แบบนี้ด้วย

การแบ่งเลเยอร์แบบนี้ทำให้ระบบค่อนข้างยืดหยุ่นในการปรับแต่งพอสมควร ข้อดีอีกอย่างนึงก็คือ สามารถสร้างและจัดการร้านหลายๆร้าน ผ่าน backoffice เดียว โดยที่ module บางอย่างที่ใช่ร่วมกันได้ก็จะใช้ร่วมกัน เช่น ข้อมูลลูกค้า, order, shoppingcart, payment method, etc

ทำไมต้องมีหลายร้่าน
จริงๆแล้วเริ่มต้นใช้ก็ไม่จำเป็นต้อง create มาหลายร้านก็ได้ feature นี้ทำมาเพื่อสร้างความยืดหยุ่นและรองรับการเติบโตในอนาคตมากกว่า ส่วนตัวยังไม่ค่อยเห็นความสำคัญของการแยก store เท่าไหร่นัก แต่อย่างว่า มีไว้ก็ดีกว่าไม่มี :P

ทำไมต้องรู้เรื่องโครงสร้างนี้ด้วย
จำเป็นต้องรู้ เพราะไม่งั้นเวลาใช้่งาน backoffice จะมึนมาก ไม่รู้จะเริ่มจากอะไรดี แล้วเดี๋ยวก็จะงงว่า เอ๊ะ set ร้านไว้แบบนี้แล้วทำไม หน้าร้านไม่ออกมาอย่างที่ปรับไว้ (เคยมึนมาแล้ว)

 

 

 

 

Magento 1.0.19700

Magento เป็น opensource e-commearce ตัวหนึ่งที่น่าสนใจมากสำหรับผม อาจเพราะเพิ่งจะเคยเห็นโปรแกรม opensource ที่มาเป็น framework อย่างนี้

ตั้งใจว่าจะลองเอามาใช้อย่างจริงๆจังๆ แต่จากปัญหางานรุมเร้าจนไม่มีเวลาปลีกตัวมาทำอะไรอย่างอื่นนอกเหนือจากงานประจำ

พอดีสุดสัปดาห์นี้มีวันหยุด แถมตอนนี้ก็มานั่งหง่าวอยู่ที่ IDC บางรัก ก็เลยมาสานต่อซักหน่อย จำได้ว่าเมื่อไม่นานนี้ Magento จะปล่อยตัว Upgrade Package ออกมา ก็เลยลอง Upgrate ดูซักหน่อย

ก่อนอื่นมาดูก่อนว่ามีอะไร update บ้าง (release notes)

Magento Improvements part:

  • Added availability to set global/cache/prefix for APC cache
  • Added new locales: Welsh, Bengali
  • Added setting 0666 permissions on app/etc/use_cache.ser
  • Removed unused homepage template

 

Magento Bugfixes Part:

  • Fixed clearing compare list (products deleting bug)
  • Fixed #2229: currency for turkey
  • Fixed #4673: Rev 19700 Fatal errors
  • Fixed #4675: There has been an error processing your request
  • Fixed #4686: Variable has no correct declaration before use it as array
  • Fixed APC cache backend
  • Fixed clearing application cache for non-file cache backends
  • Fixed sort by store bug in cms pages, blocks and polls
  • Fixed using iconv_substr for search query
  • Fixed wrong using pickup_or_use_for_shipping in onepage checkout
  • Restored old way of locale dropdown displaying because of wrong sorting and rtl locales displaying problems