◄Советы► 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;

после чего проблема исчезнет.
 
Последнее редактирование модератором:
Magento EE + тема Ultimo.
Проблема:
При включенном FPC не выводятся системные сообщения ("Товар добавлен в корзину", "Таблица сравнения очищена" и т.п.). Появляются они только после перехода на любую другую страницу.
При выключении FPC все работает правильно.

Решение:
1. Копируем файлы app\design\frontend\base\default\template\catalog\category\view.phtml
и app\design\frontend\ultimo\default\template\catalog\product\view.phtml

в app\design\frontend\ВАШ_ПАКЕТ\ВАША_ТЕМА\template\catalog\category\
и app\design\frontend\ВАШ_ПАКЕТ\ВАША_ТЕМА\template\catalog\product\ соответственно.
2. Находим в них строчку:
Код:
<?php echo $this->getMessagesBlock()->getGroupedHtml() ?>

3. Меняем эту строчку на:
Код:
<?php echo $this->getMessagesBlock()->toHtml() ?>

4. Чистим кэш.
 
Последнее редактирование:
Чтобы скрыть все товары без изображений (деактивировать их), можно выполнить такой запрос. Пользуюсь на нескольких своих проектах.

Код:
UPDATE catalog_product_entity_int SET value = 2
WHERE entity_id IN(
SELECT catalog_product_entity.entity_id
FROM catalog_product_entity_media_gallery
RIGHT OUTER JOIN catalog_product_entity ON catalog_product_entity.entity_id = catalog_product_entity_media_gallery.entity_id
WHERE catalog_product_entity_media_gallery.value is NULL
) AND catalog_product_entity_int.attribute_id = (select attribute_id from eav_attribute
where attribute_code = 'status' and entity_type_id = 4);
 
Периодически возникает потребность сбросить права на файлы, но просто chmod -R 0755 не крависо ибо это для директорий, а для файлов команда проставит флаг запуска (x), правильно сбросить права доступа поможет данный sh скрипт
Код:
#!/bin/sh
echo "Changing of directories permissions"
find . -type d -exec chmod 0775 {} \;
echo "Changing of files permissions"
find . -type f -exec chmod 0664 {} \;
echo "Set other files owner and permissions"
chown -R apache:apache ./
chmod o+w var var/.htaccess app/etc
chmod -R o+w media
chmod 0664 var/resource_config.json
chmod +x ./mage
rm -rf var/cache
chmod +x ./mage-reset

Кинуть в виде файла mage-reset
И присвоить флаг запуска, см. последнюю команду

Необходимо только проставить правильного пользователя/владельца файлов в команде chown -R apache:apache ./
зависит того что используется ... иногда php-fpm использует пользователя nginx, а может и apache (нужно уточнять в конфигурации)
 
Производительность Magento - индексация
Создавая проекты на Magento я не устаю радоваться гибкой и "правильной" архитектуре данной CMS, которая позволяет легко и безопасно для остального кода, встроить собственный функционал абсолютно любого толка.

Но даже в таких "монстрах" e-commerce индустрии как ebay, который купил Magento с потрохами какое-то время назад, видимо работают не идеальные системные архитекторы.

Итак, главное "бутылочное горло" вашего проекта - индексация. Конкретнее Catalog URL Rewrites. Данный процесс представляет собой сборщик url правил для каталога. То есть он обходит таблицы категорий и товаров, создает в таблице core_url_rewrite, в базе данных, записи с правилами для того, чтобы система всегда верно находила товары и категории, даже при изменениях в их адресах, расположении и т. п. и перенаправляла в случае чего куда положено на текущий момент. Более того, разработчики позаботились и о том, чтобы можно было из админки поправить нужное правило. Отличнейший функционал, по идее, представляет собой в реальности неслабую головную боль.
Итак, что мы тут имеем в разрезе.
У меня установлена на локали Magento 1.7, в ней создано 30 категорий, и всего 15 товаров, каждый из которых я расположила в 2-3 категориях. Я тестирую и пакую модули на данной локальной установке Magento, в целом крупных изменений в структуре каталога не произвожу. Что же происходит за время работы приблизительно в 4 месяца с момента установки? А вот что - 1 723 строки в таблице core_url_rewrite. На 30 категорий и 15 товаров. Теперь представьте себе проект с 10 000 товаров и 200 категорий. Считать количество записей в core_url_rewrite можно будет до утра, если раньше не заснете.

Безусловно, что при обращении к страницам сайта информация из таблицы с правилами будет запрошена, а иначе как именно они будут работать. Поиск же по большому объему данных может реально замедлить время ответа сервера.
Кроме прочего, если у вас не настроена база данных в части кэша, объемов памяти для innodb и т. п., то при переиндексации Catalog URL Rewrites вы можете получить блокировку этого процесса индексации из-за deadlock какой-то из транзакций и подобных прелестей.
"Вредные советы".
Таблица core_url_rewrite.

Тотальный del. То есть:

1. Дамп таблицы для восстановления в случае проблем.
2. Выполнить на базе данных проекта SQL

SET FOREIGN_KEY_CHECKS=0;
TRUNCATE TABLE `core_url_rewrite`;
SET FOREIGN_KEY_CHECKS=1;

3. Сразу же запустить процесс переиндексации Catalog URL Rewrites, причем желательно из консоли сервера (да, да по SSH в терминале). Переходите в каталог /путь к установке magento/shell и выполняете:

$ php indexer.php --reindex catalog_url

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

Зависший процесс индексации.


В админке при попытке переиндексации - система сообщает о невозможности переиндексации.

Решение - радикальный del =).

Идем в каталог /ваш путь к установке magento/var/locks на сервере и удаляем файлик index_process_3.lock (в моем случае). Проверить какой lock надо удалить можно наведя мышку на ссылку "Обновить данные" в строке с описанием состояния индекса. Данное действие "освобождает" процесс индексации от блокировки, а удаленный файлик автоматически будет создан системой при следующей переиндексации. Однако это не спасет от того, что привело процесс в такое состояние. Причины же проблем в каждом конкретном случае неодинаковы.

Приведенные рецепты не рекомендуется использовать без полного понимания всех возможных последствий, они также не являются панацеей, а лишь отчасти помогают решить проблемы производительности проекта. Следует помнить, что каждая ситуация индивидуальна, обусловлена данными, их объемом, ПО сервера, состоянием БД, и т. п.

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

И последнее замечание - ставьте процессы индексации на cron, не пытайтесь использовать административный интерфейс для переиндексации на проектах с большим объемом данных.

Источник Для просмотра ссылки Войди или Зарегистрируйся
 
После взлома нескольких моих сайтов, я наконец понял, что патчи безопасности не стоит игнорировать. Взлом происходит методом создания пользователя с правами администратора. Также, на сервере обнаружил парочку левых файлов. Если Вы не устанавливали патчи SUPEE-1533 и SUPEE-5344 - рекомендую проверить своих пользователей (возможно есть лишние).
Не всегда есть доступ к shh и намного проще через ftp. Уже пролеченные файлы по патчам указанных выше - Для просмотра ссылки Войди или Зарегистрируйся
 
Ищу модуль

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

delete.png
Поменять цвет заказа согласно статуса можно след. образом:
скопировать js/mage/adminhtml/grid.js to js/colors/adminhtml/grid.js
дать права файлу 666, папке (js/colors & js/colors/adminhtml) 777.
в строке 208 (перед }.bind(this)) добавить:

colorize();

в конце файла:

function colorize () {
$$('td').each(function(macguffin) {
if(macguffin.innerHTML.strip()=="Processing") macguffin.parentNode.setStyle({backgroundColor: 'Orange' });
if(macguffin.innerHTML.strip()=="Pending") macguffin.parentNode.setStyle({backgroundColor: 'Gold', color:'Black' });
if(macguffin.innerHTML.strip()=="Payment Review") macguffin.parentNode.setStyle({backgroundColor: 'LightPink' });
if((macguffin.innerHTML.strip()=="On Hold")||(macguffin.innerHTML.strip()=="Payment Review")) macguffin.parentNode.setStyle({backgroundColor: 'HotPink' });
if(macguffin.innerHTML.strip()=="Suspected Fraud") macguffin.parentNode.setStyle({backgroundColor: 'Red' });
if((macguffin.innerHTML.strip()=="Closed")||(macguffin.innerHTML.strip()=="Canceled")||(macguffin.innerHTML.strip()=="Cancelled")) macguffin.parentNode.setStyle({backgroundColor: 'LightBlue', fontStyle: 'italic' });
if(macguffin.innerHTML.strip()=="Complete") macguffin.parentNode.setStyle({backgroundColor: 'Green' });
});
}
document.observe("dom:loaded", colorize);

создать local.xml в app/design/adminhtml/default/default/layout/local.xml

в нем:

<?xml version="1.0"?>
<layout version="0.1.0">
<default>
<reference name="head">
<action method="removeItem"><type>js</type><name>mage/adminhtml/grid.js</name></action>
<action method="addItem"><type>js</type><name>colors/adminhtml/grid.js</name></action>
</reference>
</default>
</layout>

Усе

colorize() function статусы и цветовую схему можно изменять как хочется.

цвет например здесь Для просмотра ссылки Войди или Зарегистрируйся
 
Все сталкивались со стандартным экпортом продуктов. Когда товаров много, профили не очень подходят. Но также не подходят и разделитили в csv, в стандартном экпорте. Изменить их можно в файле - /app/code/core/Mage/ImportExport/Model/Export/Adapter/Csv.php - строки:
protected $_delimiter = '~';
protected $_enclosure = '`';
Для импорта - /app/code/core/Mage/ImportExport/Model/Import/Adapter/Csv.php
 
Привет форум! Не могу не поделиться. До какого-то момента пользовал в части кеша lestiFPC и по сути все устраивало. Прирост производительности ощущался но идея ускорить загрузку страниц все не покидала меня. По началу сайт висел на VPS от Инферно. Все работало но не сказать что быстро. Далее была возможность разместиться на руцентре шаредном хостинге с тарифом для битрикса. По ощущениям стало работать побыстрее. Но речь не об этом. На картинке можно наблюдать загруженность сервера. Она практически всегда переваливала зарезервированный объем. После же установки FPC от BubbleShop картина изменилась колоссально. На скриншоте все видно. PS: пробовал FPC от амасти и нитрогенто прироста в сравнении с lesti практически не было. Здесь же результат на лицо. Есть, конечно, свои ньюансы работы кешера но работой пока очень доволен.
 

Вложения

  • nic.jpg
    nic.jpg
    28,7 KB · Просмотры: 95
Частое явление когда переносите шаблон без демо данных и оказывается что в категории нету мини изображение
чтобы добавить мини изображение выполните запрос в БД
Код:
INSERT INTO `eav_attribute` (`attribute_id`, `entity_type_id`, `attribute_code`,
`attribute_model`, `backend_model`, `backend_type`, `backend_table`, `frontend_model`,
`frontend_input`, `frontend_label`, `frontend_class`, `source_model`, `is_required`,
`is_user_defined`, `default_value`, `is_unique`, `note`) VALUES(555, 3, 'thumbnail', NULL,
'catalog/category_attribute_backend_image', 'varchar', NULL, NULL, 'image', 'Thumbnail
Image', NULL, NULL, 0, 0, NULL, 0, NULL);
Код:
INSERT INTO `catalog_eav_attribute` (`attribute_id`, `frontend_input_renderer`,
`is_global`, `is_visible`, `is_searchable`, `is_filterable`, `is_comparable`,
`is_visible_on_front`, `is_html_allowed_on_front`, `is_used_for_price_rules`,
`is_filterable_in_search`, `used_in_product_listing`, `used_for_sort_by`,
`is_configurable`, `apply_to`, `is_visible_in_advanced_search`, `position`,
`is_wysiwyg_enabled`, `is_used_for_promo_rules`) VALUES
(555, NULL, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, NULL, 0, 0, 0, 0);
Код:
INSERT INTO `eav_entity_attribute` (`entity_attribute_id`, `entity_type_id`, 
`attribute_set_id`, `attribute_group_id`, `attribute_id`, `sort_order`)
VALUES (337, 3, 3, 4, 555, 3);
555 - attribute_id, замените на свой
Это решит проблему с выводом миниатюры категории в шаблоне
 
Темы такой нет - более подходящая эта - выкладываю поваренную книгу - Магенто 1.8 - она хоть и на английском - но все доступно и в примерах - книга показывает основы программирования в Магенто
Сюда файл не входит (5 Мб) - выкладываю ссылку на яндекс.диск.
Мне как начинающему в Магенто очень понравилась данная книга по своей простоте изложения материала.
Для просмотра ссылки Войди или Зарегистрируйся
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху