Перейти к содержанию
Официальный форум поддержки Simpla

Как импортировать товары с одинаковым названием?


Рекомендуемые сообщения

Подскажите как можно импортировать товары с одинаковыми названиями? чтоб он не обновлял товар, а создавал его, а в ссылку добавлял к примеру tovar_1 , tovar_2 и т.д.

К примеру есть 3 товаров не имеющих артикула но название у всех

Товар

Товар 

Товар

На выходе нужно чтоб в админке было 3 товара но ссылки были у них уникальные с приставкой числовой.

Ссылка на сообщение
Поделиться на другие сайты

1. Переделкой скрипта импорта. Но вопрос в чистом виде весьма тонкий. Если сделать импорт еще раз, поменяв, например, цены, то товары размножатся...

2. Поменяв данные под текущий импорт. Например, придумав артикул...

3. Вообще задуматься над такой организацией. А как Вы будете продавать товары? Звонит покупатель, говорит, я заказывал товар ТАКОЙ-ТО.  А у Вас товаров с таким название десяток. Или даже сотня...

 

Ссылка на сообщение
Поделиться на другие сайты
5 часов назад, phukortsin сказал:

1. Переделкой скрипта импорта. Но вопрос в чистом виде весьма тонкий. Если сделать импорт еще раз, поменяв, например, цены, то товары размножатся...

2. Поменяв данные под текущий импорт. Например, придумав артикул...

3. Вообще задуматься над такой организацией. А как Вы будете продавать товары? Звонит покупатель, говорит, я заказывал товар ТАКОЙ-ТО.  А у Вас товаров с таким название десяток. Или даже сотня...

 

Там будет разовый импорт, просто вопрос в названиях одинаковых. Советуете сделать артикулы? но разве они тогда не будут по вариантам парситься?

Товар  - арт1

Товар - арт2

Это будет один товар с 2 вариантами же

Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, megauser сказал:

Там будет разовый импорт, просто вопрос в названиях одинаковых. Советуете сделать артикулы? но разве они тогда не будут по вариантам парситься?

Зависит от того кто вам будет парсить товары. Если бы например это делал я, то я бы сразу парсил в симплу, без промежуточного файла, тогда можно будет сразу все варианты добавить от конкретного товара, но в любом случае можно даже и с промежуточным файлом делать, по примеру импорта симплы, просто трудозатратнее.

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, a13x сказал:

Зависит от того кто вам будет парсить товары. Если бы например это делал я, то я бы сразу парсил в симплу, без промежуточного файла, тогда можно будет сразу все варианты добавить от конкретного товара, но в любом случае можно даже и с промежуточным файлом делать, по примеру импорта симплы, просто трудозатратнее.

по сути вариантов не должно быть, должны быть товары с одинаковым названием ( артикула по умолчанию нет) 

Как сделать чтоб писал уникальное название и к url добавлял приставку?

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, a13x сказал:

Зависит от того кто вам будет парсить товары. Если бы например это делал я, то я бы сразу парсил в симплу, без промежуточного файла, тогда можно будет сразу все варианты добавить от конкретного товара, но в любом случае можно даже и с промежуточным файлом делать, по примеру импорта симплы, просто трудозатратнее.

Импорт до безобразия прост.

Категория, название, описание и фото

https://yadi.sk/i/psInWB1XTKpnAg

Вот к примеру, должно получиться 5 товаров , в принципе обновление можно выпилить. Но url же формируется

		if(isset($item['url']))
			$product['url'] = trim($item['url']);
		elseif(isset($item['name']))
			$product['url'] = $this->translit($item['name']);

Соответственно и url будет одинаковый, а нужно чтоб был уникальный, а название пусть будет одно. Так и задумано.

Ссылка на сообщение
Поделиться на другие сайты
10 часов назад, a13x сказал:

Зависит от того кто вам будет парсить товары.

Вопрос был про импорт.
1. Разговор про "парсить" - в данном случае несколько некорректно и бессмысленно.
2. Неизвестно вообще, будет для ТС кто-то парсить или нет.
3. Даже если для ТС кто-то будет парсить, то зависит не от того, КТО будет этим заниматься, а КАК будет это делать. Думаю, (почти) любой разработчик может это сделать как напрямую, так и через промежуточный файл.

Изменено пользователем phukortsin
Ссылка на сообщение
Поделиться на другие сайты
9 часов назад, megauser сказал:

Вот к примеру, должно получиться 5 товаров , в принципе обновление можно выпилить. Но url же формируется



		if(isset($item['url']))
			$product['url'] = trim($item['url']);
		elseif(isset($item['name']))
			$product['url'] = $this->translit($item['name']);

Соответственно и url будет одинаковый, а нужно чтоб был уникальный, а название пусть будет одно. Так и задумано.

Пробуйте, например, так:
1. Удалить все выполнения обновления, отставив только создание нового товара.
2. Изменить сопоставление под Ваши нужды (или вообще его убрать, считая каждую строку в файле за новый товар).
3. После создания нового товара
                if(empty($product_id))
                    $product_id = $this->products->add_product($product);
выполнить что-то типа
$this->products->update_product($product_id, array('url'=>$product->url."_".$product_id));               

 

Изменено пользователем phukortsin
Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, phukortsin сказал:

Пробуйте, например, так:
1. Удалить все выполнения обновления, отставив только создание нового товара.
2. Изменить сопоставление под Ваши нужды (или вообще его убрать, считая каждую строку в файле за новый товар).
3. После создания нового товара
                if(empty($product_id))
                    $product_id = $this->products->add_product($product);
выполнить что-то типа
$this->products->update_product($product_id, array('url'=>$product->url."_".$product_id));               

 

В классе PRODUCTS при добавлении нового товара идёт проверка по урлу и если он есть то создаётся постфикс.
 

    public function add_product($product)
    {    
        $product = (array) $product;
        
        if(empty($product['url']))
        {
            $product['url'] = preg_replace("/[\s]+/ui", '-', $product['name']);
            $product['url'] = strtolower(preg_replace("/[^0-9a-zа-я\-]+/ui", '', $product['url']));
        }

        // Если есть товар с таким URL, добавляем к нему число
        while($this->get_product((string)$product['url']))
        {
            if(preg_match('/(.+)_([0-9]+)$/', $product['url'], $parts))
                $product['url'] = $parts[1].'_'.($parts[2]+1);
            else
                $product['url'] = $product['url'].'_2';
        }

        if($this->db->query("INSERT INTO __products SET ?%", $product))
        {
            $id = $this->db->insert_id();
            $this->db->query("UPDATE __products SET position=id WHERE id=?", $id);        
            return $id;
        }
        else
            return false;
    }

 

Изменено пользователем a13x
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...