◄Советы► Magento

Статус
В этой теме нельзя размещать новые ответы.

donvictorio

Хранитель порядка
Регистрация
28 Янв 2010
Сообщения
872
Реакции
849
Тема предназначена для советов, полезных рекомендаций по настройке CMS Magento.

Прежде чем написать в этой или любой-другой теме, ОБЯЗАТЕЛЬНО прочите правила раздела: Для просмотра ссылки Войди или Зарегистрируйся (незнание правил, не освобождает от ответственности и наказания!)

Если вы не нашли ответ на свой вопрос, то тогда вам нужно заглянуть в одну из этих тем:

Для просмотра ссылки Войди или Зарегистрируйся

Для просмотра ссылки Войди или Зарегистрируйся

Для просмотра ссылки Войди или Зарегистрируйся

Для просмотра ссылки Войди или Зарегистрируйся

Для просмотра ссылки Войди или Зарегистрируйся

Для просмотра ссылки Войди или Зарегистрируйся

Для просмотра ссылки Войди или Зарегистрируйся

В этой теме разрешено давать только полезные советы или выкладывать полезные материалы, любые вопросы (если таковые есть пишите в "Для просмотра ссылки Войди или Зарегистрируйся" или в ЛС) или ответы не по теме будут пресекаться и жестоко наказываться, потому лучше не провоцируйте.

Каждое сообщение должно формироваться лаконично и понятно. Если много текста прячьте его под "Спойлер", если используете код берите его в "Код". Подобно тому как показано в примере внизу:
Для просмотра ссылки Войди или Зарегистрируйся
__________________________________________________________________________________________________________________________________________________
404 при входе в админку magento после переноса магазина на другой сервер
Иногда, после переноса магазина Magento на другой хостинг или миграции с сервера на сервер (или в целом при миграции с одного инстанса БД на другой) при входе в админку выдаёт 404 ошибку. Вывод делает сам скрипт, не вебсервер. Причина в том, что при импорте базы для админа меняются значения store_id и website_id. Они должны иметь значение 0.
Для того, чтобы исправить ситуацию, нужно в консоли БД (в phpmyadmin или ином mysql клиенте) выполнить запрос:

Код:
SET FOREIGN_KEY_CHECKS=0;
UPDATE `core_store` SET store_id = 0 WHERE code='admin';
UPDATE `core_store_group` SET group_id = 0 WHERE name='Default';
UPDATE `core_website` SET website_id = 0 WHERE code='admin';
UPDATE `customer_group` SET customer_group_id = 0 WHERE customer_group_code='NOT LOGGED IN';
SET FOREIGN_KEY_CHECKS=1;

после чего проблема исчезнет.
 
Последнее редактирование модератором:
Вынести банер категории в любое место страницы

PHP:
<?php if($currentCategory = Mage::registry('current_category')):?>
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId($currentCategory->getLandingPage())->toHtml(); ?><?php endif;?>

это решение я нашел на stackexchange
 
получить содержимое корзины
Код:
$cart = Mage::getSingleton('checkout/session')->getQuote();
//$cart->getAllItems() все продукты
foreach ($cart->getAllVisibleItems() as $item) {
        $product = $item->getProduct();
    $name = $product->getName();
    $sku = $product->getSku();
}
//получить коллекцию
//$itemsCollection = Mage::getSingleton('checkout/cart')->getQuote()->getItemsCollection();
 
Сортировка товаров в категории "по-умолчанию" по наличию. Которых нет идут вниз)))
Код:
1) Копируем /app/code/core/Mage/Catalog/Block/Product/List.php в app/code/local/Mage/Catalog/Block/Product/List.php

или просто редактируем /app/code/core/Mage/Catalog/Block/Product/List.php


2) ищем: $this->_productCollection = $layer->getProductCollection();

и меняем на $this->_productCollection = $layer->getProductCollection()->joinField('inventory_in_stock', 'cataloginventory_stock_item', 'is_in_stock', 'product_id=entity_id','is_in_stock>=0', 'left')->setOrder('inventory_in_stock','desc');

на 1.7.0.2 все отлично работает

просто редактировать очень не рекомендую, потом тяжело отслеживать апгрейды, есть ещё третий вариант - создание модуля, где вы переназначите только одну функцию и перекроете класс (в даном случае класс блока), что даже более правильно
все правильно... ЛУЧШЕ КОПИРОВАТЬ. Понимаю что не по феншую, но иногда практикую и правку т.к. вся кухня полностью только для себя.(свой магаз)
 
Последнее редактирование модератором:
Сортировка товаров в категории "по-умолчанию" по наличию. Которых нет идут вниз)))
Код:
1) Копируем /app/code/core/Mage/Catalog/Block/Product/List.php в app/code/local/Mage/Catalog/Block/Product/List.php

или просто редактируем /app/code/core/Mage/Catalog/Block/Product/List.php

на 1.7.0.2 все отлично работает

просто редактировать очень не рекомендую, потом тяжело отслеживать апгрейды, есть ещё третий вариант - создание модуля, где вы переназначите только одну функцию и перекроете класс (в даном случае класс блока), что даже более правильно
 
вчера столкнулся - получить полный ЮРЛ на продукт:
Код:
$store = Mage::app()->getStore();
$product_id = "989";
$path = Mage::getResourceModel('core/url_rewrite')
    ->getRequestPathByIdPath('product/' . $product_id, $store);

$url = $store->getBaseUrl($store::URL_TYPE_WEB) . $path;
 
Последнее редактирование:
Может кому то пригодится очистка корзины
Mage::getSingleton('checkout/session')->clear();


Проверка на cms page
<?php
if(Mage::getSingleton('cms/page')->getIdentifier() == 'Ваша страница' &&
Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms'
) : ?>
// ваш код
<?php endif; ?>

пример для домашней страницы вместо
'Ваша страница' меняем на 'home'
 
Последнее редактирование модератором:
Баннер на нужных страницах товара - указываем нужно легко и просто
Как вы знаете, в Magento есть так назваемые Виджеты. Функция Виджета, как блока с кодом в том, что мы указываем на какой странице и в каком заранее указанном месте нужно выводить этот самый блок.Внимание на скриншот с типичным Виджетом:
sozdanie-widget-magento.JPG

По умолчанию, чтобы указать нужнуые страницы, вы безальтернативно будете выбирать их через чек чек-боксов. Живо представляем, какое это скушное задание на внимательноесть: создать два новых баннера и в каждом прописать, чтобы оба выводились на определенные 100500 страниц из 500100 других; вам придется их искачать ручками, дважды, т.к. баннеров два.
Процесс был прозачным, но без вкуса, без цвета и запаха..
sozdanie-widget-magento2.JPG

На сцену выходит Firefox, с дополнением Firebug! Открываем Страницу с редактированием виджета (см. скриншот 1), запускаем Firebug (см. скриншот 2), в левой части Меню находим иконку "синий курсор на прямоугольной рамке",
далее перемещаем курсор обратно на Страницу и щелкаем над текстовым полем куда прописываются id страниц (на скриншота поле со значениями id 126, 127, 158, 190). Далее видим, что в Firebug будет виден простенький html-код элемента типа <input> с атрибуттом <value>=, имеющее при создании нового виджета вид value=" ". Теперь два раза кликаем на эти кавычки и видим, что между ними появился курсор ввода текста. Вставляете в него заранее скопированный список, состоящий из id страниц через запятую без пробелов, и нажимаете Сохранить изменения в Виджете. Готово!

Таким образом, вы сэкономите уйму времени, вместо монотонного кликинга по спискам товаров, вы почти в два клика импортируете списки товаров на которых требуется вывести ваш виджет.

Почему это работает? Редактирая страницу, мы создаем запрос типа POST, т.е. на сервер из нашей формы редактирования отправляются значения все ее полей.
 
Програмно создать категорию
PHP:
$parentId = 'fooId'; // ID категории в которую хотим добавит новую
$cat = Mage::getModel('catalog/category');
$cat->setStoreId(Mage::app()->getStore()->getId());
$cat->setName("Имя НОВОЙ категории");
$cat->setIsActive(1);
$cat->setDisplayMode('PRODUCTS');
$cat->setIsAnchor(1);
$parentCat = Mage::getModel('catalog/category')->load($parentId);
$cat->setPath($parentCat->getPath());
$cat->save();
 
Сбрасиваем пароль
UPDATE admin_user SET password=CONCAT(MD5('nulled'), ':sG') WHERE username='Admin';
nulled - ваш пароль
Admin - соответственно логин админа
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху