Блог

  • Получение всех значений атрибута товара из Magento EAV

    Если вы когда-нибудь сталкивались с проблемой вывода всех значений товарного атрибута из EAV модели, то следующее решение поможет вам.

    Модель сущность-атрибут-значение (entity attribute value) представляет собой модель хранения данных, в которой имеется некая сущность и связанный с ней набор атрибутов (свойств, параметров). В математике эта модель известна как модель разреженных матриц. Если хранить экземпляр сущности в обычной реляционной базе данных, то у нас появится большое количество пустых столбцов и строк, что нам совсем не нужно....
    Читать далее...

  • Ресайз картинок категории в Magento

    Все хотят иметь красивый и функциональный интернет-магазин. Картинки являются их неотъемлемой частью.

    Но в Magento нет встроенного функционала для ресайза изображений категорий. Не проблема, напишем сами!

    Пишем функции для ресайза:

    > public function getResizedUrl($imgUrl, $x, $y = NULL) { if ($imgUrl == '') { return ''; } $imgPath = $this->splitImageValue($imgUrl, "path"); $imgName = $this->splitImageValue($imgUrl, "name"); $imgPath = str_replace("/", DS, $imgPath); $imgPathFull = Mage::getBaseDir("media").DS.$imgPath.DS.$imgName; $widht = $x; $y ? $height = $y :...
    Читать далее...

  • Руководство по Mage::register

    Реестр переменных magento представляет собой отличный способ обмена и получения информации в любом месте вашего магазина. Другими словами реестр позволяет создавать новые глобальные переменные, которые могут быть доступны в любом месте вашего магазина.

    В отличие от динамических функций, будучи статической функцией, реестр magento может быть вызван напрямую без создания экземпляра объекта. Шаблон вызова :

       ClassName::StaticFunctionName()   

    Имеются 2 основные функции для добавления и удаления переменных из реестра.

    register()...
    Читать далее...

  • Объединение коллекций в Magento

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

    Для обьединения получаем объект SELECT от обоих коллекций и делаем UNION для их объединения.

    
    
    $selectFoo = Mage::getResourceModel('model/foo')->getSelect();
    $selectBar= Mage::getResourceModel('model/bar')->getSelect();
    
    $mergedFooBar = $selectFoo->union(array($selectBar));
    
    
    

    Быстро и просто. Есть у кого-то еще идеи?


    Читать далее...

  • Редирект в Magento с сохранением url

    Для SEO иногда необходимо вносить небольшие коррективы в работу интернет-магазина на Magento. Например, когда вы заходите по странице, находящейся не на base-url домене. Тогда вас перекидывает на главную. Это и надо исправить.

    Исправляется это довольно просто. В .htaccess сразу после строчки "RewriteEngine on" вписываем:

       RewriteCond %{HTTP_HOST} ^yoursite.ru$ [NC] RewriteRule ^(.*)$ http://www.yoursite.ru/$1 [R=301,L]   

    Данные действия будут иметь силу, когда:

    1)base url домен с www (можно сделать наоборот)

    2)когда ваш...
    Читать далее...

  • Изменение, добавление артикула в массовых списках продуктов Magento

    Magento использует артикул как уникальный идентификатор для конкретного продукта, для всех stores. Некоторые пытаются использовать для этих целей название продукта, но это может сработать только для небольших магазинов с малым количеством товаров. Но для крупных мультиязычных площадок это чревато проблемами. Таким образом, роль артикула в процессе систематизации возрастает по мере увеличения количества товаров.

    Итак, представим что наш магазин разросся и теперь в нашей базе данных тысячи товаров без артикула (или с ненужным). Конечно, по мере...
    Читать далее...