Блог

  • Конференция Meet Magento Russia 2013

    24 Августа в Москве прошла конференция Meet Magento Russia 2013 - официальная международная конференция, посвященная платформе Magento, разработке интернет-магазинов и электронной коммерции в целом.


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

    Самыми интересными докладами оказались доклады от AheadWorks, Amasty, Turnkeye.


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

  • Получение курсов валюты и данных о товарах в корзине

    Получение курсов валюты

    Сначала требуется получить текущую валюту

    $baseCurrencyCode = Mage::app()->getBaseCurrencyCode();

    Затем массив кодов разрешенных валют

    $allowedCurrencies = Mage::getModel('directory/currency')->getConfigAllowCurrencies();

    Наконец, получаем массив курсов валюты,...
    Читать далее...

  • Magento. Прямые SQL запросы.

    Magento использует модели для работы с данными, это обеспечивает удобный доступ к ним и обработку. Используя грамотно именованные методы и "умную" абстракцию, Varien скрывает от нас сложную SQL реализацию необходимую для операций с данными.

    Это делает изучение моделей проще, увеличивает скорость операций и повышает скорость отклика сайта. Это особенно справедливо когда речь идет о моделях использующих EAV архитектуру. Однако, есть ситуации когда прямые SQL запросы могут быть быстрее и проще. Как пример можно привести массовое...
    Читать далее...

  • Как отфильтровать категории в коллекции по их уровню

    Для кастомного меню навигации иногда нужно получить список всех категорий. Причем конкретного уровня. Сделать это можно так:

       $model=Mage::getModel('catalog/category'); $categories=$model->getCollection()->addLevelFilter(2) ->addAttributeToSelect('*')->addIsActiveFilter();   

    Однако, это не всегда правильно. Обьясню почему.

    Если я выведу запрос к базе, то получу следующее:

    SELECT `main_table`.* FROM `catalog_category_flat_store_1` AS `main_table` WHERE (main_table.level <= 2) AND (is_active = '1')

    Можно легко заметить, что используется условие <=, что не подходит. (т.к. при фильтрации категорий 3го уровня еще получим...
    Читать далее...

  • Отправка произвольного e-mail с использованием html-шаблона и решение бага

    Для рассылки произвольных e-mail клиентам по крону нужно написать код. Однако бывают нестандартные глюки при отправке.

    Используем следующий код:

       public function sendfollowup($order) { $emailTemplate=Mage::getModel('core/email_template') ->loadDefault('followup'); $emailTemplateVariables=array(); $emailTemplateVariables['FrontendName']=Mage::getStoreConfig('general/store_information/name'); $emailTemplateVariables['increment_id']=$order->getIncrementId(); $emailTemplateVariables['CustomerName']=$order->getShippingAddress()->getName(); $emailTemplateVariables['getCreatedAt']=$order->getCreatedAt(); $emailTemplateVariables['order']=$order; $processedTemplate=$emailTemplate->getProcessedTemplate($emailTemplateVariables); try { $emailTemplate->send('xxxx@xxxx.ru','Danila Tarasov',$emailTemplateVariables); } catch (Exception $e) { print_r($e); } }   

    При разработке не забываем прописать xml в секцию global:

    > <template> <email> <followup translate="label" module="email"> <label>Follow...
    Читать далее...

  • Получение super атрибутов у конфигурируемого товара

    Нужно сделать проверку у конфигурируемого товара, имеет ли он определенный атрибут на выбор.

    Причем не простой атрибут, а используемый для создания конфигурируемых товаров из простых.

    Делается это так:

    
    
    $_product = $this->getProduct();
        $_attributes = $_product->getTypeInstance(true)->getConfigurableAttributes($_product);
        foreach($_attributes as $_attribute){
            var_dump($_attribute);
        }
    
    
    

    Готово! Далее делаем всё, что хотим.


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