megauser Опубликовано 26 января, 2021 Жалоба Поделиться Опубликовано 26 января, 2021 Подскажите как можно импортировать товары с одинаковыми названиями? чтоб он не обновлял товар, а создавал его, а в ссылку добавлял к примеру tovar_1 , tovar_2 и т.д. К примеру есть 3 товаров не имеющих артикула но название у всех Товар Товар Товар На выходе нужно чтоб в админке было 3 товара но ссылки были у них уникальные с приставкой числовой. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 26 января, 2021 Жалоба Поделиться Опубликовано 26 января, 2021 1. Переделкой скрипта импорта. Но вопрос в чистом виде весьма тонкий. Если сделать импорт еще раз, поменяв, например, цены, то товары размножатся... 2. Поменяв данные под текущий импорт. Например, придумав артикул... 3. Вообще задуматься над такой организацией. А как Вы будете продавать товары? Звонит покупатель, говорит, я заказывал товар ТАКОЙ-ТО. А у Вас товаров с таким название десяток. Или даже сотня... Цитата Ссылка на сообщение Поделиться на другие сайты
megauser Опубликовано 26 января, 2021 Автор Жалоба Поделиться Опубликовано 26 января, 2021 5 часов назад, phukortsin сказал: 1. Переделкой скрипта импорта. Но вопрос в чистом виде весьма тонкий. Если сделать импорт еще раз, поменяв, например, цены, то товары размножатся... 2. Поменяв данные под текущий импорт. Например, придумав артикул... 3. Вообще задуматься над такой организацией. А как Вы будете продавать товары? Звонит покупатель, говорит, я заказывал товар ТАКОЙ-ТО. А у Вас товаров с таким название десяток. Или даже сотня... Там будет разовый импорт, просто вопрос в названиях одинаковых. Советуете сделать артикулы? но разве они тогда не будут по вариантам парситься? Товар - арт1 Товар - арт2 Это будет один товар с 2 вариантами же Цитата Ссылка на сообщение Поделиться на другие сайты
a13x Опубликовано 26 января, 2021 Жалоба Поделиться Опубликовано 26 января, 2021 3 часа назад, megauser сказал: Там будет разовый импорт, просто вопрос в названиях одинаковых. Советуете сделать артикулы? но разве они тогда не будут по вариантам парситься? Зависит от того кто вам будет парсить товары. Если бы например это делал я, то я бы сразу парсил в симплу, без промежуточного файла, тогда можно будет сразу все варианты добавить от конкретного товара, но в любом случае можно даже и с промежуточным файлом делать, по примеру импорта симплы, просто трудозатратнее. Цитата Ссылка на сообщение Поделиться на другие сайты
megauser Опубликовано 26 января, 2021 Автор Жалоба Поделиться Опубликовано 26 января, 2021 1 час назад, a13x сказал: Зависит от того кто вам будет парсить товары. Если бы например это делал я, то я бы сразу парсил в симплу, без промежуточного файла, тогда можно будет сразу все варианты добавить от конкретного товара, но в любом случае можно даже и с промежуточным файлом делать, по примеру импорта симплы, просто трудозатратнее. по сути вариантов не должно быть, должны быть товары с одинаковым названием ( артикула по умолчанию нет) Как сделать чтоб писал уникальное название и к url добавлял приставку? Цитата Ссылка на сообщение Поделиться на другие сайты
megauser Опубликовано 26 января, 2021 Автор Жалоба Поделиться Опубликовано 26 января, 2021 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 будет одинаковый, а нужно чтоб был уникальный, а название пусть будет одно. Так и задумано. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 27 января, 2021 Жалоба Поделиться Опубликовано 27 января, 2021 (изменено) 10 часов назад, a13x сказал: Зависит от того кто вам будет парсить товары. Вопрос был про импорт. 1. Разговор про "парсить" - в данном случае несколько некорректно и бессмысленно. 2. Неизвестно вообще, будет для ТС кто-то парсить или нет. 3. Даже если для ТС кто-то будет парсить, то зависит не от того, КТО будет этим заниматься, а КАК будет это делать. Думаю, (почти) любой разработчик может это сделать как напрямую, так и через промежуточный файл. Изменено 27 января, 2021 пользователем phukortsin Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 27 января, 2021 Жалоба Поделиться Опубликовано 27 января, 2021 (изменено) 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)); Изменено 27 января, 2021 пользователем phukortsin Цитата Ссылка на сообщение Поделиться на другие сайты
a13x Опубликовано 27 января, 2021 Жалоба Поделиться Опубликовано 27 января, 2021 (изменено) 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; } Изменено 27 января, 2021 пользователем a13x Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.