При обновлении Magento с версии 1.9.2.1 до версии 1.9.2.2 через Magento Connect выдавалась ошибка:
CONNECT ERROR: Failed to delete files: /var/www/vhosts/site.ru/./pkginfo/Mage_All_Latest.txt Check permissions Package community/Interface_Adminhtml_Default 1.9.2.2 conflicts with: community/Mage_All_Latest 1.9.2.1 Package community/Interface_Frontend_Default 1.9.2.2 conflicts with: community/Mage_All_Latest 1.9.2.1
ну и далее целая портянка.
При этом все права были 777
Оказалось, дело в чем - в папке pkginfo в корне сайта присутствовала папка Mage_All_Latest.txt. После её убития все нормально обновилось.
Залить в желатин немного воды, размешать и поставить на небольшой огонь пока не растворится. Остальные ингредиенты взбить, влить струйкой желатин и еще взбить минуты три. Разлить по формочкам и поставить в холодильник застывать. Через час — полтора желе готово. Чтобы вытащить, формочку подержать в горячей воде секунд 15.
Сметану можно исключить, заменив кефиром.
То, что желе сделано из кефира на вкус не угадывается.
Формат YML-файла для простого описания должен быть таким
(показаны только обязательные элементы!):
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE yml_catalog SYSTEM "shops.dtd"> <yml_catalog date="2015-10-21 07:03"> <shop> <name>BestShop</name> <url>http://best.seller.ru/</url> <currencies> <currency id="RUR" rate="1"/> </currencies> <categories> <category id="2" parentId="1">Часы</category> <category id="1">Root Catalog</category> </categories> <offers> <offer id="4878" available="false"> <url>http://best.seller.ru/product_page.asp?pid=12348</url> <price>11700.0000</price> <currencyId>RUR</currencyId> <categoryId>2</categoryId> <name>Наручные часы Casio A1234567B</name>
<sales_notes>Необходима 50% предоплата</sales_notes> </offer> </offers> </shop> </yml_catalog>
1). Кодировка может быть и Windows-1251
2). Имя магазина в YML должно строго совпадать с именем магазина в настройках Яндекс.Маркета. Имя прописывается в админке - Система > Управление магазинами
3). Все категории должны иметь имена, id=0 не допускается
4). local_delivery_cost (стоимость доставки в своем регионе) можно прописать в настройках Яндекс.Маркета
5) <sales_notes> - обязательный элемент, если необходима предоплата
Официальные требования к формату - https://partner.market.yandex.ru/legal/tt/
Валидатор XML-фидов - https://webmaster.yandex.ru/xsdtest.xml
Чек-лист для размещения магазина на Яндекс.Маркете https://yandex.st/market-export/87.0577fe48/partner/CL4.pdf
Пути создания YML-файла (кстати, Яндекс принимает и CSV и XLS, но с ограничениями)
1) Простой и бесплатный
Установить модуль Yandex Market Export. Модуль создает файл в корне сайта products.xml, который можно уже скормить Яндексу. Есть возможность выбрать товары, которые не будут попадать в файл (например с нулевой ценой). Единственный нюанс - после создания файл нужно открыть (например в Notepad) и заменить Соединенные Штаты на США и Республика Корея на Южная Корея. Если товары идут под заказ, надо заменить available="true" на available="false". Если необходима предоплата, добавить <sales_notes> перед <country_of_origin>.
2) Непростой и бесплатный
Создать YML из CSV на сайте tagiltsev.ru. Сложность способа в том, что сначала нужно свой csv перелопатить (убрать товары с нулевой ценой, заменить США и Корею, поменять названия столбцов, убрать лишние столбцы, создать недостающие, поменять кодировку и разделитель при сохранении) а потом еще и поправлять готовый yml
3) Платный
Поставить модуль от Rugento или от Mygento. Оба модуля имеют кучу настроек и выгрузку по Cron`у. Стоят примерно одинаково.
И вот еще лирическое отступление на тему YML - http://habrahabr.ru/post/216985/
- местоположение блоков прописано в файле site.com/app/design/frontend/f002/default/layout/local.xml (для темы f002) либо в catalog.xml (для остальных)
- надо перенести кусок кода
<block type="core/template" after="-" name="left.permanent.callout-1" template="callouts/left_col.phtml"> <action method="setImgSrc"><src>images/media/col_left_callout-1.jpg</src></action> <action method="setImgAlt" translate="alt" module="catalog"><alt>Our customer service is available 24/7. Call us at (555) 555-0123.</alt></action> <action method="setLinkUrl"><url>checkout/cart</url></action> </block>
из
<reference name="left">
в
<reference name="right">
- когда переставляешь блоки (callouts) надо отключать кэш иначе никаких изменений не увидишь или кэш потом обновлять
- не надо менять alt блоков - валится к чертям весь дизайн, лучше его просто стереть
При импорте товаров через csv выдавал ошибку —
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`dbname`.`catalog_product_option_type_value`, CONSTRAINT `FK_CAT_PRD_OPT_TYPE_VAL_OPT_ID_CAT_PRD_OPT_OPT_ID` FOREIGN KEY (`option_id`) REFERENCES `catalog_product_option` (`option_id`) ON ), query was: INSERT INTO `catalog_product_option_type_value` (`option_type_id`,`sort_order`,`sku`,`option_id`) VALUES (?, ?, ?, ?), и т. д.
В данном случае в csv было поставлено неправильное значение в столбце _media_attribute_id — 88 вместо 703
Обнаружить ошибку можно экспортнув товары из магазина и сравнив csv-файлы
В другой раз такая ошибка выдавалась, потому что в sku было значение длиннее разрешенных 64 знаков
- скачать бесплатную версию Magento - https://magento.com/tech-resources/download закладка Release Archive, листать вниз до ver 1.9.x
- как раззиповать на сервере (в WinSCP) - http://www.komtet.ru/lib/tech/unzip-v-winscp
"Commands" и нажимаем "Add..."
description: &unzip
custom commands: unzip "!"
Ставим галочку "Remote command"
Нажимаем "Ok"
- WinSCP - показывать скрытые файлы (иначе не виден .htaccess)
- перенести все файлы из папки Magento в корневую папку вашего сайта. Зайти в браузере на ваш сайт и начать установку.
- в процессе установки выбрать rewrite и "не проверять базовый урл", если он недоступен из интернета, а только через запись в файле hosts (C:\Windows\System32\drivers\etc)
- русификация осуществляется через System > Magento Connect в админке сайта. Предварительно нужно зарегистрироваться на https://marketplace.magento.com/, найти Russian Language Pack. Например, https://marketplace.magento.com/etws-et-russianlanguagepack.html, добавить его в корзину, "купить" (он бесплатный) и получить код установки, который ввести в Magento Connect в админке. Войти и выйти в админку и русификация сайта и админки закончена.
- обновить кэш
- установить тему можно тоже через Magento Connect. Лучше бесплатные официальные темы, они обновляются вместе с версиями. А свои изменения можно будет в носить через CSS заведя свои папки в папке темы в skin/frontend/ и app/design/frontend/
- права на папки - http://idaira.ru/blog-categories/magento/3-magento-prava-na-papki права на папки выставляются под root`ом, иначе на некоторые не дает)
- обновление до последней версии Magento происходит в том же Magento Connect. Заходим, жмем на кнопку Check for Upgrades и, когда страница обновится и желтым будут выделены возможные апгрейды, выбираем апгрейд для Mage_All_Latest и жменм на Commit Changes
- чтобы сайт на время установки модуля или апгрейда не исчезал, в Magento Connect убрать галочку "Put store on the maintenance mode while installing/upgrading/backup creation". Если не убрана, появляется в корне файл maintenanse.flag. Иногда, когда что-то пошло не так файл остается в корне и сайт перестает быть видимым. Чтобы сайт снова стал виден файл убить.
- если пишет, что не может установить, возможно проблема в этом - http://idaira.ru/blog-categories/magento/5-magento-oshibka-pri-obnovleni-s-1-9-2-1-do-1-9-2-2-mage-all-latest-txt