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

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

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

Исправить это легко.
в файле
app\design\adminhtml\default\default\template\page\header.phtml
в 30й строке
заменить
$this->getHomeLink()
на
$this->getBaseUrl()

также по желанию можно сменить логотип, его путь
skin/adminhtml/default/enterprise/images/logo.gif
 
Последнее редактирование модератором:
Удаление ненужных заказов (обнуление id)
Иногда бывает, что после пробной настройки или в период работы нужно удалить ненужные (или пробные) заказы, в этом случае приходит на помощь запрос в базу данных mysql :

1. Сделайте резервную копию текущей базы данных
2. Выполните SQL-запрос(ы) в базе данных представленных ниже

Таковы запросы для удаления заказа и сброса ID на Magento:

Код:
SET FOREIGN_KEY_CHECKS=0;


TRUNCATE `sales_flat_order`;
TRUNCATE `sales_flat_order_address`;
TRUNCATE `sales_flat_order_grid`;
TRUNCATE `sales_flat_order_item`;
TRUNCATE `sales_flat_order_payment`;
TRUNCATE `sales_flat_order_status_history`;

TRUNCATE `sales_flat_creditmemo`;
TRUNCATE `sales_flat_creditmemo_comment`;
TRUNCATE `sales_flat_creditmemo_grid`;
TRUNCATE `sales_flat_creditmemo_item`;

TRUNCATE `sales_flat_invoice`;
TRUNCATE `sales_flat_invoice`;
TRUNCATE `sales_flat_invoice_grid`;
TRUNCATE `sales_flat_invoice_item`;

TRUNCATE `sales_flat_quote`;
TRUNCATE `sales_flat_quote_address`;
TRUNCATE `sales_flat_quote_address_item`;
TRUNCATE `sales_flat_quote_item`;
TRUNCATE `sales_flat_quote_item_option`;
TRUNCATE `sales_flat_order_item`;

TRUNCATE `sales_flat_shipment`;
TRUNCATE `sales_flat_shipment_comment`;
TRUNCATE `sales_flat_shipment_grid`;
TRUNCATE `sales_flat_shipment_item`;
TRUNCATE `sales_flat_shipment_item`;
TRUNCATE `sales_flat_shipment_track`;

TRUNCATE `sendfriend_log`;
TRUNCATE `tag`;
TRUNCATE `tag_relation`;
TRUNCATE `tag_summary`;
TRUNCATE `wishlist`;
TRUNCATE `log_quote`;
TRUNCATE `report_event`;

ALTER TABLE `sales_flat_order` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_order_address` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_order_grid` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_order_payment` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_order_status_history` AUTO_INCREMENT=0;

ALTER TABLE `sales_flat_creditmemo` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_creditmemo_comment` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_creditmemo_grid` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_creditmemo_item` AUTO_INCREMENT=0;

ALTER TABLE `sales_flat_invoice` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_invoice` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_invoice_grid` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_invoice_item` AUTO_INCREMENT=0;

ALTER TABLE `sales_flat_quote` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_quote_address` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_quote_address_item` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_quote_item` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_quote_item_option` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_order_item` AUTO_INCREMENT=0;

ALTER TABLE `sales_flat_shipment` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_shipment_comment` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_shipment_grid` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_shipment_item` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_shipment_item` AUTO_INCREMENT=0;
ALTER TABLE `sales_flat_shipment_track` AUTO_INCREMENT=0;

ALTER TABLE `sendfriend_log` AUTO_INCREMENT=0;
ALTER TABLE `tag` AUTO_INCREMENT=0;
ALTER TABLE `tag_relation` AUTO_INCREMENT=0;
ALTER TABLE `tag_summary` AUTO_INCREMENT=0;
ALTER TABLE `wishlist` AUTO_INCREMENT=0;
ALTER TABLE `log_quote` AUTO_INCREMENT=0;
ALTER TABLE `report_event` AUTO_INCREMENT=0;

TRUNCATE `eav_entity_store`;
ALTER TABLE  `eav_entity_store` AUTO_INCREMENT=0;

SET FOREIGN_KEY_CHECKS=1;
P.S. Если у вас
присутствует префикс в базе-данных, то вам нужно его проставить перед каждым именем таблицы. Пример: sales_flat_orde > префиксsales_flat_orde

Также вы можете воспользоваться одним из бесплатных модулей:

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

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

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

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

Все они работают по тому же принципу, с едим отличием, что всё делается в пару кликов и через админку. НО(!), не все модули обнуляют ID! Потому, будьте бдительны при выборе.
 
Последнее редактирование:
Очистка базы данных
Очень дельный совет касательно очистки таблиц магазина от "ненужных" даных
Код:
SET foreign_key_checks = 0;
TRUNCATE dataflow_batch_export;
TRUNCATE dataflow_batch_import;
TRUNCATE log_customer;
TRUNCATE log_quote;
TRUNCATE log_summary;
TRUNCATE log_summary_type;
TRUNCATE log_url;
TRUNCATE log_url_info;
TRUNCATE log_visitor;
TRUNCATE log_visitor_info;
TRUNCATE log_visitor_online;
TRUNCATE report_viewed_product_index;
TRUNCATE report_compared_product_index;
TRUNCATE report_event;
TRUNCATE index_event;
TRUNCATE catalog_compare_item;
SET foreign_key_checks = 1;
P.S.: как всегда не забываем делать бекапы перед манипуляциями
+
есть целый скрипт, который не только очищает базу, но и и логи с временными файлами, а также загрузками
Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование модератором:
Удаление неиспользуемых изображений в товарах.
По умолчанию магенто не удаляет картинки товара, когда вы удаляете товар из админки. При интенсивной ротации товаров через некоторое время в каталоге с изображениями может накопиться очень большой объём, что усложняет работу с бэкапами.
Есть несколько способов этот вопрос решить.
1. поставить расширение Для просмотра ссылки Войди или Зарегистрируйся (бесплатно)
удаляет картинки, привязанные к товару при его удалении из админки. Не рекомендуется использовать в случаях, когда одно изображение привязано к нескольким товарам (к примеру при импорте)
1.1 поставить расширение Для просмотра ссылки Войди или Зарегистрируйся. Расширение ищет мёртвые картинки и удаляет их.
2. использовать Для просмотра ссылки Войди или Зарегистрируйся. (триал 14 дней)
помимо удаления неиспользуемых изображений находит товары без изображений.
3. использовать bash скрипт из консоли сервера (бесплатно, требует наличия доступа по ssh)
скрипт можно запускать из любого места на сервере, нужно лишь указать полный путь к корневой директории магазина.

Код:
#!/bin/bash
MAGENTO_PATH="/var/www/path/to/vhost/httpdocs/path/to/magento"
LOG=${MAGENTO_PATH}/var/log/imagecleanup.log
DB_USER=$(sed -n 's|<username><\!\[CDATA\[\(.*\)\]\]></username>|\1|p' ${MAGENTO_PATH}/app/etc/local.xml | tr -d ' ')
DB_PASS=$(sed -n 's|<password><\!\[CDATA\[\(.*\)\]\]></password>|\1|p' ${MAGENTO_PATH}/app/etc/local.xml | tr -d ' ')
DB_NAME=$(sed -n 's|<dbname><\!\[CDATA\[\(.*\)\]\]></dbname>|\1|p' ${MAGENTO_PATH}/app/etc/local.xml | tr -d ' ')
DB_PREFIX=$(sed -n 's|<table_prefix><\!\[CDATA\[\(.*\)\]\]></table_prefix>|\1|p' ${MAGENTO_PATH}/app/etc/local.xml | tr -d ' ')

function search_db() {
    COUNT=$(mysql -u ${DB_USER} -p${DB_PASS} ${DB_NAME} --execute="SELECT count(*) FROM ${DB_PREFIX}catalog_product_entity_media_gallery WHERE value = \"$1\"")
    echo $(echo ${COUNT} | cut -d" " -f2)
}

echo "Starting image cleanup " $(date) | tee -a ${LOG}
IMG_PATH=${MAGENTO_PATH}/media/catalog/product/
for IMG in $(find ${IMG_PATH} -name '*.jpg' ! -path '*cache*' ! -name 'google*'); do
    REL_IMG=/${IMG:${#IMG_PATH}}
    if [ $(search_db ${REL_IMG/'${MAGENTO_PATH}/media/catalog/product'/}) != 1 ]; then
        IMG=${IMG##*/}
        for CACHE_IMG in $(find ${MAGENTO_PATH}/media/catalog/product/ -name "${IMG}"); do
            echo "Found unused image ${CACHE_IMG}"
            if [ "$1" ] && [ $1 == 'cleanup' ]; then
                echo "Removing unused image ${CACHE_IMG}" | tee -a ${LOG}
                rm "${CACHE_IMG}"
            fi
        done
    else
        echo "Not touching " ${IMG}
    fi
done
echo "Finished image cleanup " $(date) | tee -a ${LOG}
 
Последнее редактирование модератором:
Последнее редактирование:
интересный скрипт
Для просмотра ссылки Войди или Зарегистрируйся

Edit 1/7/14:

@ryaan_anthony on Twitter released a MySQL stored procedure that will generate hundreds of thousands of products Для просмотра ссылки Войди или Зарегистрируйся

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

ну и ещё полезняшка
Для просмотра ссылки Войди или Зарегистрируйся
 
How to pass Magento Certification exam in 30 days

Хороший гайд, но для тех, кто владеет хотя бы техническим английским.

Скрытое содержимое доступно для зарегистрированных пользователей!
 
Из грязи в князи :crazy:
иноггда так бывает, что модули с коммюнити версии могут спокойно пойти на ee, достаточно поменять или добавить такую штуку в дескриптор модуля
например
Код:
aw_popup1.2.3.zip\app\code\local\AW\All\etc\config.xml
Код:
<AW_All>
            <version>2.3.0</version><platform>ce</platform>
</AW_All>

платформу поменять на ee
 
Для отладки темы рекомендую использовать данный модуль.
Позволяет менять тему в зависимости от ип.
На работающем магазине никому не мешая заниматься отладкой темы.
Для просмотра ссылки Войди или Зарегистрируйся
 

Вложения

  • magento.zip
    2,5 KB · Просмотры: 53
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху