Magento - ошибка при обновлени с 1.9.2.1 до 1.9.2.2 - Mage_All_Latest.txt

При обновлении 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. После её убития все нормально обновилось.

 

Magento — экспорт товаров в YML (Яндекс Маркет)

Формат 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/

Magento — перенос блоков с левой колонки в правую

- местоположение блоков прописано в файле 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 блоков - валится к чертям весь дизайн, лучше его просто стереть

Magento - ошибка при заливке - SQLSTATE[23000]: Integrity constraint violation:

При импорте товаров через 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 знаков

Back to top