Ответить Новая тема Новый опрос 
Всего: 8 < 1 2 3 4 5 6 > »
 Иморт товара через админку csv
anafor
Новичок
Сообщений: 7
Регистрация: 27-09-2009


02-12-2009 03:03
2 ors: похоже, надо
2 krot4u: если еще актуально, знаю как поправить чтобы можно было категории с одинаковыми именами добавлять, сам долго искал. Обращайтесь, выложу если надо.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
YellowDuck


Профессионал
Сообщений: 1054
Откуда: Ярославль
Регистрация: 29-09-2009


05-01-2010 00:29
Подскажите, плиз., как сделать экспорт в csv?
 



Интернет-магазин товаров для детей yellowduck.ru
Хороший хостинг для Prestashop и не только one-hosting.ru
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Serg77
Новичок
Сообщений: 8
Регистрация: 13-10-2009


08-01-2010 21:13
Цитата:( Алекс @ 03-11-2009 17:34 Смотреть сообщение )
Цитата:( Gorets @ 19-10-2009 21:41 Смотреть сообщение )
Подскажите понятный языком как решить
/classes/Tools.php
заменить функцию link_rewrite на
Код:
static public function link_rewrite($str, $utf8_decode = false)
    {
        $purified = '';
        $length = Tools::strlen($str);
        if ($utf8_decode)
            $str = utf8_decode($str);
        for ($i = 0; $i < $length; $i++)
        {
            $char = Tools::substr($str, $i, 1);
            if (Tools::strlen(htmlentities($char)) > 1)
            {
                $entity = htmlentities($char, ENT_COMPAT, 'UTF-8');
                $purified .= $entity;
            }
                            
            elseif (preg_match('|[[:alpha:]]{1}|u', $char))
                $purified .= $char;
            elseif (preg_match('<[[:digit:]]|-{1}>', $char))
                $purified .= $char;
            elseif ($char == ' ')
                $purified .= '-';
        }

        
        
        // fix //
        if (preg_match('/[А-Яа-я]+/', $purified))
                $cyr = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', ' ');
                $lat = array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', '', 'y', '', 'e', 'ju', 'ja', '_');
                $purified = mb_strtolower($purified, 'utf-8');
                $purified = str_replace($cyr, $lat, $purified);
        // fix //

        return trim(self::strtolower($purified));
    }


Сделал как написано. Импорт вообще перестал работать. Ругается на переменные $cyr и $lat, что они не определены.
А также при импорте категорий:
Кондиционеры для белья невозможно сохранить
Category->link_rewrite = кондjoцjoонеры-для-белья для языка 1

при импорте товаров:

Warning: explode() [function.explode]: Empty delimiter in /home/httpd/vhosts/5pigs.ru/httpdocs/admin2101/tabs/AdminImport.php on line 261

Warning: array_map() [function.array-map]: Argument #2 should be an array in /home/httpd/vhosts/5pigs.ru/httpdocs/admin2101/tabs/AdminImport.php on line 262

Warning: array_map() [function.array-map]: Argument #2 should be an array in /home/httpd/vhosts/5pigs.ru/httpdocs/admin2101/tabs/AdminImport.php on line 263
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
UMkA82
Новичок
Сообщений: 2
Регистрация: 10-01-2010


10-01-2010 18:24
Цитата:( Алекс @ 03-11-2009 16:34 Смотреть сообщение )
Цитата:( Gorets @ 19-10-2009 21:41 Смотреть сообщение )
Подскажите понятный языком как решить
/classes/Tools.php
заменить функцию link_rewrite на
Код:
static public function link_rewrite($str, $utf8_decode = false)
    {
        $purified = '';
        $length = Tools::strlen($str);
        if ($utf8_decode)
            $str = utf8_decode($str);
        for ($i = 0; $i < $length; $i++)
        {
            $char = Tools::substr($str, $i, 1);
            if (Tools::strlen(htmlentities($char)) > 1)
            {
                $entity = htmlentities($char, ENT_COMPAT, 'UTF-8');
                $purified .= $entity;
            }
                            
            elseif (preg_match('|[[:alpha:]]{1}|u', $char))
                $purified .= $char;
            elseif (preg_match('<[[:digit:]]|-{1}>', $char))
                $purified .= $char;
            elseif ($char == ' ')
                $purified .= '-';
        }

        
        
        // fix //
        if (preg_match('/[А-Яа-я]+/', $purified))
                $cyr = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', ' ');
                $lat = array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', '', 'y', '', 'e', 'ju', 'ja', '_');
                $purified = mb_strtolower($purified, 'utf-8');
                $purified = str_replace($cyr, $lat, $purified);
        // fix //

        return trim(self::strtolower($purified));
    }

Сделал все именно так, как на скриншоте, но проблема не ушла.
Добавил в файл AdminImport.php строку 'link_rewrite' => $this->l('URL rewrited'), но никаких результатов. Prestashop у меня русский ,версия 05.
3-й день по форумам, проблемы идентичные у людей решаются, а у меня что-то никак.
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


10-01-2010 19:35
У меня так работает (добавил скобки и символ номера). Обязательно надо сохранить файл в UTF-8.
Цитата:
static public function link_rewrite($str, $utf8_decode = false)
    {
        $purified = '';
        $length = Tools::strlen($str);
        if ($utf8_decode)
            $str = utf8_decode($str);
        for ($i = 0; $i < $length; $i++)
        {
            $char = Tools::substr($str, $i, 1);
            if (Tools::strlen(htmlentities($char)) > 1)
            {
                $entity = htmlentities($char, ENT_COMPAT, 'UTF-8');
                $purified .= $entity;
            }
                           
            elseif (preg_match('|[[:alpha:]]{1}|u', $char))
                $purified .= $char;
            elseif (preg_match('<[[:digit:]]|-{1}>', $char))
                $purified .= $char;
            elseif ($char == ' ')
                $purified .= '-';
        }

       
       
        // fix //
        if (preg_match('/[А-Яа-я]+/', $purified)){
                $cyr = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', ' ','№');
                $lat = array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', '', 'y', '', 'e', 'ju', 'ja', '_','n');
                $purified = mb_strtolower($purified, 'utf-8');
                $purified = str_replace($cyr, $lat, $purified);
}
        // fix //

        return trim(self::strtolower($purified));
    }
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


10-01-2010 19:39
Также у импорта категорий есть особенность: когда в списке существует несколько категории с одинаковыми именами, но в разных разделах, то добавляется только первая из них. Чтобы добавились все, нужно в файле AdminImport.php удалить фрагмент:
Цитата:
$categoryAlreadyCreated = Category::searchByName($defaultLanguageId, $category->name[$defaultLanguageId], true);

// If category already in base, get id category back
if ($categoryAlreadyCreated['id_category'])
{
$catMoved[$category->id] = intval($categoryAlreadyCreated['id_category']);
$category->id = intval($categoryAlreadyCreated['id_category']);
}
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
hardigan
Новичок
Сообщений: 1
Регистрация: 28-01-2010


28-01-2010 00:59
Помогите плиз! Всё сделал как написано:

Цитата:
/classes/Tools.php 
заменить функцию link_rewrite на 
Код:
static public function link_rewrite($str, $utf8_decode = false)
{
  $purified = '';
  $length = Tools::strlen($str);
  if ($utf8_decode)
  $str = utf8_decode($str);
  for ($i = 0; $i < $length; $i++)
  {
  $char = Tools::substr($str, $i, 1);
  if (Tools::strlen(htmlentities($char)) > 1)
  {
    $entity = htmlentities($char, ENT_COMPAT, 'UTF-8');
    $purified .= $entity;
  }
       
  elseif (preg_match('|[[:alpha:]]{1}|u', $char))
    $purified .= $char;
  elseif (preg_match('<[[:digit:]]|-{1}>', $char))
    $purified .= $char;
  elseif ($char == ' ')
    $purified .= '-';
  }

 
 
  // fix //
  if (preg_match('/[А-Яа-я]+/', $purified))
    $cyr = array('а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь', 'э', 'ю', 'я', ' ');
    $lat = array('a', 'b', 'v', 'g', 'd', 'e', 'jo', 'zh', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'sch', '', 'y', '', 'e', 'ju', 'ja', '_');
    $purified = mb_strtolower($purified, 'utf-8');
    $purified = str_replace($cyr, $lat, $purified);
  // fix //

  return trim(self::strtolower($purified));
}

При импорте выдаётся ошибка

Fatal error: Call to undefined function mb_strtolower() in url\classes\Tools.php on line 671

Я так понял у меня отсутсвует функция mb_strtolower() которая вызывается в фиксе. Может кто-нибуть выложить файл classes\Tools.php?? Помогите народ, очень надо!


Сообщение отредактировано hardigan 28-01-2010 02:00 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
ors
Профессионал
Сообщений: 1885
Регистрация: 09-11-2009


01-02-2010 19:09
Tools.php


Вложения:

Вложения Tools.php( Размер файла: 26.15KB Скачиваний: 910 )
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
hichkok


Новичок
Сообщений: 4
Регистрация: 19-12-2009


04-02-2010 21:16
А как быть если в файле для импорта есть такие символы как:
'' (дюймы) &reg; (зарегистрированная торговая марка)

Второе даже на форуме не вставляется :blus:
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
shaman81
Новичок
Сообщений: 24
Регистрация: 06-02-2010


06-02-2010 02:25
Алекс

установлена русская версия 0.6 локально на денвере

не получается импортировать категории и товары на кириллице,
csv готовлю в экселе, затем перевожу нотпадом++ в utf-8 без BOM

до исправления tools.php:

блеск молодости невозможно сохранить
Category->link_rewrite = prmo-ffrfafc для языка 1
Восстанавливающая линия невозможно сохранить
Category->link_rewrite = fdfdsrcsdd-rcfc для языка 1
Корректирующая линия невозможно сохранить
Category->link_rewrite = fmocd-rcfc для языка 1
Линия для глаз невозможно сохранить

как итог категории не оздаются,

после исправления tools.php :
Fatal error: Call to undefined function mb_strtolower() in X:\home\prestad.ru\www\classes\Tools.php on line 675

категории тоже не создаются,

объясните кто-нибудь подробно, что нужно сделать, чтобы заработал импорт на кириллице?

какую версию presta ставить и что в каких файла править?


Сообщение отредактировано shaman81 05-02-2010 22:26 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос 
Всего: 8 < 1 2 3 4 5 6 > »