Загрузка языков категории в ошибке prestashop

0

Я пытаюсь перенести категории из osCommerce 2.2 в новейший Prestashop, используя собственный CSV-импорт Prestashop. Мне удалось загрузить английский, финский, голландский, итальянский и французский языки языков. Теперь я столкнулся с проблемой с русским. Файл CSV импортируется только штрафом до строки 85-86, которые:

85;"Соусы для чипсов";"Чипсы, орехи, и снаксы";;http://localhost/images/pepper.jpg;соусы-для-чипсов

86;"Чипсы, орехи, и снаксы";"Финские продукты питания";"<strong>Внимание! ПРОЧИТАЙТЕ ПРЕЖДЕ, ЧЕМ СДЕЛАТЬ ЗАКАЗ</strong>Поскольку пакеты со снаксами занимают очень много места, нам приходится закладывать в стоимость их доставки двойной вес, т.е., например, для пакета весом 250 г. стоимость доставки будет такой же, как для 500 г. более плотного товара.""<em>Стоимость доставки определяется по объемному весу или по фактическому весу, в зависимости от того, что больше.</em>""<a target=""_blank"" href=""http://www.posti.fi/hinnat/paketitulkomaille/"">http://www.posti.fi</a>";http://localhost/images/sips.jpg;чипсы-орехи-и-снаксы

Обратите внимание, что линия 84 проходит:

84;"Переведенные на финский книги";Книги;;http://localhost/images/potter.jpg;переведенные-на-финский-книги

Чтобы уточнить CSV для вас:

ID;Name;Parent;Description;Img_uri;Url_rewrite

Он выдает длинную ошибку, но основные моменты в начале:

Чипсы, орехи, и снаксы (ID: null) cannot be saved
Property Category->link_rewrite is not valid
Соусы для чипсов (ID: 85) cannot be saved
Чипсы, орехи, и снаксы (ID: 86) cannot be saved

По какой-то причине идентификатор является нулевым, это может быть причиной или симптомом?

Переименование ссылок SEO преобразуется из названия категории в SQL следующим образом:

LOWER(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(cd.categories_name, ' ', '-'), "\'", ''), ',', ''), '.', '-'), '&', ''), '(', '-'), ')', '-'), '!', ''), '/', '-'), '+', '-'), ';', '')) AS URL_rewrite

Я знаю, что это очень уродливый способ сделать это, но, насколько я знаю, единственный и единственный лучший вариант, который у меня есть.

Отмечая, что первые 80 строк проходят правильно, это не тот язык, который терпит неудачу в этом импорте, на французском языке он выбросил ту же ошибку, потому что был ";" характер в описании, я не вижу ничего плохого здесь, я надеюсь, что один из вас мог бы помочь мне с этим

Заранее спасибо!

Теги:
csv
import
prestashop

2 ответа

0
Лучший ответ

Я не нашел для этого рационального объяснения, поэтому я просто обошел и изменил валидацию link_rewrite, чтобы вернуть истину, несмотря ни на что. Проверено, и ссылка работает. Надеюсь, это когда-нибудь поможет кому-то.

В ROOT/Classes/Validate.php

В строке 325:

public static function isLinkRewrite($link)
{
    if (Configuration::get('PS_ALLOW_ACCENTED_CHARS_URL'))
        return preg_match('/^[_a-zA-Z0-9\-\pL]+$/u', $link);
    return preg_match('/^[_a-zA-Z0-9\-]+$/', $link);
}

Измените его на:

public static function isLinkRewrite($link)
{
    if (Configuration::get('PS_ALLOW_ACCENTED_CHARS_URL'))
    //  return preg_match('/^[_a-zA-Z0-9\-\pL]+$/u', $link);
    //return preg_match('/^[_a-zA-Z0-9\-]+$/', $link);
    return true;
}

Просто не забудьте вернуть изменения после загрузки

0

На вкладке URL/SEO есть параметр, который разрешает или запрещает нелатинские (например, кириллические) символы. Этот код в основном проверяет это.

  • 0
    Ваш ответ слишком короткий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню