Categories
Magento Работа

Vagrant + Magento + Xdebug + PhpStorm

Комбинацията от Magento и PHPStorm може би е доста популярна сред колегите, които се занимават с Magento, но ако сложим и Vagrant в микса, таргет зоната на този пост може би е много малка. Все пак ще изложа няколко стъпки как да вържем xdebug, за да ни помага при разследването на проблем.

Моят обичаен начин на работа е:

  • Ubuntu като host операционна система
  • Серия от vagrant управлявани виртуални машини (пак с ubuntu)
  • PHP Storm за IDE

Първо трябва да се инсталира xdebug на виртуалната машина

sudo apt-get install php-pear
sudo apt-get install php-dev
sudo pecl install xdebug

След това отваряме php.ini за редация с вашия любим vim редактор.

Добавяме най-долу следния ред (може и да е различен при вас, затова вижте добре какво е “изплюл” инсталацията на xdebug)

zend_extension=/usr/lib/php/20131226/xdebug.so

Запишете файл и рестартирайте apache. Ако имате phpinfo файл, проверете дали xdebug разширението е видимо. Ако всичко е ОК, продължете напред. Ако не е, тук се разделяме с вас.

Пак отваряме php.ini и добавяме следните редове под този със zend_extension

xdebug.remote_enable=1
xdebug.remote_host=10.0.2.2
xdebug.remote_port=9000

Това ще зададе най-важните настройки на xdebug, а именно че е разрешен за ползване (remote_enable), ip адреса на който да търсим връзка с него, а също и port-а. Някъде тук започвайте да стискате палци да нямате firewall, който да забранява такива връзки.

Записваме и рестатираме apache. Уверете се, че съществуващите сайтове на виртуалната машина все още работят.

Следващите стъпки са вече в PHP Storm като целта е да го настроим така че да прави връзка към xdebug на vagrant машината.

Отворете проекта, който искате да debug-вате.

Изберете Run -> Edit configurations, a след това добавете нова “PHP Remote Debug” конфигурация. Кръстете я както желаете, аз обикновено избирам същото име като проекта, защото в повечето случаи на една виртуална машина имам само един проект и няма да шервам debug връзката с други проекти. Ако вие мислите да споделята връзката, то тогава е хубаво да изберете по-общо име.

След това трябва да избере сървър, което ще отвори поредния popup прозорец. Не се плашете.  Въведете име на сървъра и същите IP и PORT, който по-рано записахме в xdebug конфигурацията в php.ini. На мен ми отне повече време, отколкото съм готов да споделя, докато разбера че IP-то е на xdebug сесията, а не на виртуалната машина.

Изберете mapping-а между файловете на хост машината и тези на сървъра. Реално, ако използвате vagrant и shared volumes, файловете са едни и същи, но в контекста PHP Storm, за него са различни.

File/Directory би трябвало да е попълнено по подразбиране, като само в “Absolute path on the server” има нужда от попълване. Попълнете пълния път до проекта на виртуалната машина. Би трябвало да е нещо като “/var/www/html” или “/var/www/vhosts/some-site.com”. Натиснете ENTER, за да се запише. Звучи малоумно, но не е толкова интуитивно и няколко пъти php storm ми изтрива стойността. 

Това е конфигурацията на сървъра на debug конфигурацията. Натискате OK, за да запишете. Би трябвало да се окажете на предния popup. Въведете session_name за име на Ide key (session id). Това е необходимо,за да може да пускате и спирате debug сесията през browser-а. OK, OK, save.

(Пред)Последно!

Ако за първи път правите връзка между PHP Storm и PHP Remote Debug, трябва да кажете на PHP Storm да “слуша” за debug връзка като цяло. Това става от File -> Settings -> Language & Frameworks > PHP -> Debug. В десния панел трябва да има секция “Pre-configuration”, в която точка 3 трябва цъкнете на “Start listening”. ОК.

 

Ииии последно!

Трябва да си добавите разширение за Chrome, с което да пускате и спирате xdebug сесията от страна на browser-а. Това става посредством Xdebug helper. Ако не ми вярвате, че не е refaral, просто го потърсете в магазина на chrome. Инсталирате го и ще се появи една хлебарка в горния десен ъгъл. Не я пръскайте с Raid, че може да си повредите екрана. Отворете сайта, който искате да debug-вате и след това изберете сивата хлебарка и от нея цъкенете debug.

Ако все още не сте се отказали, вече е време за debug-ване.

За да валидирате, че всичко ви е ОК, намерете функция, която знаете че на 100% ще се извика при refresh на страницата. В index.php или в някой controller. В случая на Magento, може да отворите app/code/Mage/Catalog/controllers/ProductController.php и viewAction метода.

Цъкате с левия бутон на toolbar, където са номерата на редовете и срещу дефиницията на $categoryId. Ще се появи една червена точка. Казва се breakpoint.

Отворете която и да било продуктова страница в Magento.

Magic!

Това е 🙂 Няма да продължавам с обяснение как се debug-ва, защото и аз толкова знам. Ако искате да спрете debug сесията, натиснете зеления триъгълник и премахнете breakpoint-а като го натиснете, все едно е хлебарката.

Categories
Статии

15-те най-добри безплатни решения за електронни магазини

Когато става въпрос за електронни магазини с отворен код има много решения, на които можете да се спрете. Тук имате възможност да прегледате 15-те най-добри възможности, които биха ви дали насока да изберете правилната за вас. Няма да ви лъжа – намирането на перфектната платформа на е никак лесно.

Всяка една от изброените си има своите предимства и недостатъци и е изградена, за да служи на определен тип потребители. Качването на продуктите и правенето на магазина по-точно ваш вкус е времеотнемаща задача, така че постарайте се да прегледате няколко платформи преди да направите финалният си избор.

1. Magento

Само погледнете списъка с клиенти на Magento и ще разберете какъв прекрасен софтуер с отворен код е! Samsung, The North Face, Stussy и Nespresso. Всички те използват Magento, за да захранват техните електронни магазини. Използва се от повече от 30 000 търговци и е най-бързо развиващата се платформа за електронни магазини. Трябва да заплатите, за да получите Enterprise версията, която е пълна с всевъзможни полезни допълнения, но Community версията, която е предназначена само за разработчици е безплатна за сваляне и използване.

2. osCommerce

osCommerce е напълно безплатна под GNU General Public License и съвпада много добре на нуждите на повечето потребители. Без никаква изненада, имайки предвид колко лесно е да се инсталира и настрои, тя е много популярна и има повече от 228 700 магазина, които се задвижват от нея. Толкова голяма популярност си има и своите недостатъци – прави по-трудно за вас да отличите вашият магазин от хилядите други. Ако искате да изпъквате над останалите, може да използвате някои от 5800-те допълнения, въпреки че някои са платени.

3. OpenCart

Не само че OpenCart изглежда чудесно, но е и много лесна за работа. Може да създадете неограничен брой категории, да продавате неограничен брой продукти, да приемате множество валути, да използвате много езици и да избирате от над 20 системи за плащане и 8 метода за доставка. Потребителски настроена е ( б.р. системата ), а също така и се грижи за добрият ви рейтинг в търсещите машини. Потребителите могат да оценяват и оставят ревюта за продуктите, които продавате. Не е толкова популярна като osCommerce, затова помощ и насоки за работа се намират по-трудно.

4. Spree Commerce

Spree е платформа за електронни магазини, с отворен код и е писана на Ruby on Rails. Използвайки системата на Spree за работа с разширения (extensions), вие ще имате възможност да промените вида на магазина си, по начин, по-който ще ви отличава от конкуренцията. Сред добрите възможности са над 50 системи за разплащане, една страница за checkout и специфична логика за таксуване, която би спестила много време и нерви на клиентите. Също така системата идва с вграден Google Analytics.

5. PrestaShop

PrestaShop е още един як и професионално изграден избор, който вие може да свалите, инсталирате и използвате напълно безплатно. Административната част ви дава пълна възможност да управлявате вашият бизнес (включително инвентар, поръчки, доставка и клиенти) в реално време. Плащанията се изпращат директно на вашата банкова сметка като се използват последните технологии за сигурност.

6. VirtueMart

VirtueMart, който е разработен да работи заедно с Joomla!, е една симпатична количка, с която потребителите веднагически започват да се чувстват конфортно. Тя не само че позволява на потребителите да купуват неща, тя им дава възможност да се създадат акаунт, да си добавят адреси и да имат достъп до тяхната собствена история. Множественни езици и валути, както и неограничени продукти и категории, също така се поддържат. 2.5 милиона хора са свалили VirtueMart и повечето от тях са доволни от резултатите.

7. Ubercart

Ubercart е създадена специално за хора, които продават предимно "виртуални" стоки като сваляване на файлове, регистрации за събития, достъп до сайтове и билети. Също както и VirtueMart, която е създадена, за да се интегрира в Joomla, така и Ubercart  трябва да бъде интегирана в Drupal. Drupal потребителите ще се чувстват много конфортно избирайки идеалните модули и теми, за да задвижат тяхният магазин, но ако не сте Drupal потребител, бих ви посъветвал да използвате друга система.

8. Zeuscart

Най-добрата страна на Zeuscart е потребителския интерфейс, който е богат, атрактивен, потребителски насочен и като цяло по-малко неприятен от останалите потребителски интерфейски (ПИ), които трябва да гледаме всеки ден. Направен е за малкия и средния бизнес и потребителите му биха могли да се възползват от SEO ориентираните връзки, картите за подаръци, отстъпките, шаблоните за email и финно определяне на цените (tier-pricing), което позволява да се намалят цените за големи поръчки.

9. Afcommerce

Ако искате да имате много, много, ама много опростен магазин, то Afcommerce е може би решението на за вас. Не изглежда много добре нито от страна на клиентите, нито от страна на потребителите (б.р. потребител е създаделя на магазина, а клиент е този, който използва магазина), но работи по предназначението си и е идеален за начинаещи. Има бърз и само на една страница checkout. Помощ за клиентите има почти нявсякъде във формата на popup-и, а акаунти за тях се създават автоматично спрямо поръчката.

10. Zen Cart

Лесна за инсталация, лесна за специфична настройка и лесна за управление, Zen Cart е перфектната платформа за тези, които искат резулатите без много щуране. Тя пристига с newsletter управление, купони за намаление, сертификати за подаръци и всички останали основни функционалности, които очаквате. Потребителите, могат да използват голямо количество допълнения, за да направят администрацията по-лесна. Прекалено многото допълнения, обаче, правят системата много накълцана и тове не е в нейн плюс.

11. SimpleCart js

SimpleCart (js) 2.0 не е вече само за Paypal. Сега тя работи и с Google Checkout. Може да добавяте, увеличавате, намалявате и премахвате бутони от вашата количка. Можете също така да пренареждате артикулите, променяте HTML таговете и да правите, каквото сметнете за добре, за да покажете магазина си в по-добра светлина. Не ви трябват бази данни, нито знания по програмиране. Забравете за тези главоболия.  Тази проста javascript базирана количка е по-малка от 20kb.  и може да я настройте за минути. Тя е лека, бърза, лесна за използване и ви дава възможност да я промените според вашият вкус. Всичко, което ви трябва да знаете е малко HTML.

12. Tomato Cart

Tomato Cart е новото поколение на електронни магазини с отворен код. Разклонение на osCommerce 3 като отделен проект.  Докато уеб проложенията стават все по-сложни, модерните технологии като AJAX и RIA предлагат значително подобрение в ползваемостта и правят взаимодействието между интернет интерфейсите по-бързо и по-ефективно.

13. CubeCart

CubeCart е страхотна! Интегрира се наистина много добре във всякакъв вид сайтове и изглежда професионално от клиентска гледна точка. CubeCart 3 е безплатна, а CubeCart 4 е премиум версия и струва 110 паунда. Има няколко значителни разлики между двете: CubeCart 3 има 3 скина, а CubeCart 4 – 5; CubeCart 3 има 4 стъпки, за да се направи поръчка, а CubeCart 4 – само 2. Потребителската регистрация е задължителна в CubeCart 3, но само препоръчителна в CubeCart 4 и още и още.  Препоръчвам да закупите CubeCart 4, ако възнамерявате да се занимавате сериозно. Хвърлете едно око и на CubeCart 3 преди да започнете, за да имате представа с какво се сблъсквате.

14. RokQuickCart

RokQuickCart е много, много проста количка за Joomla! Нейната простота, обаче, е както предимство така и пречка. Може да я инсталирате и настроите за минути, но липстват основни функционалности, които останалите системи в тази статията имат – за пример: приемат се плащания само през Google Checkout и PayPal. Въпреки това като цяло изглежда добре.

15. Store Sprite

Въпреки че е безплатна, Store Sprite предлага възможности, които обикновенно бихте ги намерили в платените версии на други популярни системи. Това включва точки за лоялност, коментари и рейтинг, съобщения при смяна на статус, следене на поръчката (order tracking), специални оферти, най-добри продавачи, акаунти на клиентите. Единственият недостатък е, че магазинът ви ще работи с много ясно отчетливо показване, че правата се държат от Store Sprite. Това ествествено ще се премахне, ако заплатите определена сума.

Източник (Source): Web Appers
Снимки: Web Appers

Categories
Статии

Magento – Новото бъдеще на eCommerce-а

Който се занимава с интернет програмиране малко или много се е налагало да работи със софтуер за електронни магазини. Дали това ще е готово приложение като osCommerce или ZenCart или сам си е написал такова – значение голямо няма. Всъщност има – ако някой е достатъчно добър да си напише сам подобно решение надали ще трябва да чете нататък написаното.

Какво е Magento?
Magento е следващото ниво на PHP създадените магазини за електронна търговия. Изключително добре работещо парче от код, което е написано на много, много високо ниво. Като казвам високо ниво ще спомена, че са включени 245 таблици, приблизително 17 000 ( седемнадесет хиляди ) файла и най-вече че е изцяло обектно ориентиран – от първият до последният ред! Какво има във всичките тях още не съм разбрал, а и надали ще, а и надали ще се заинтересувам да разбера напълно.

Важното е да се знае, че софтуера е напълно безплатен и работи безупречно. Изграден е по такъв начин, че възможностите за разширение на данните към дадена поръчка да са брезкрайни. Но честно казано не съм се занимавал толкова с работа с крайният продукт, колкото с изработването на няколко разширения за него. Ето няколко от нещата, които са включени в пакета.

  • Site Management
  • Mobile Commerce
  • Marketing Promotions and Tools
  • International Support
  • Search Engine Optimization
  • Checkout
  • Shipping
  • Payment
  • Order Management
  • Customer Service
  • Customer Accounts
  • Catalog Management
  • Catalog Browsing
  • Product Browsing
  • Analytics and Reporting
  • Customer Reviews
  • Cross-Selling
  • Customer Tags
  • Compare Products
  • Wishlists
  • Google Base Integration
  • Google Website Optimizer Integration

И така – каква е идеята в крайна сметка на тази статия? Magento е прекалено нов софтуер и много малко хора са запознати с него и начинът му на работа. Проблемът е липсата на документация. Напоследък ми се наложи да работя с него и прекарах една седмица в истински ад докато разбера кое, как и защо. Ще се опитам да спестя подобен род мъки на колегите, които започват тепърва работа с него.

http://en.wikipedia.org/wiki/Magento