Русская поддержка интернет-магазина PrestaShop
русская поддержка PrestaShop.
Регистрация
Забыли пароль?
Главная
Возможности
Демо
Скачать
Каталог магазинов
Форум
Модули и шаблоны
Администрирование
Реклама и маркетинг
Аналитика и статистика
Оплата и платежные системы
Управление контентом
Экспорт
Фронт-офис
Локализация
Торговые площадки
Управление товарами
Средства миграции
Оформление заказа
Поиск и фильтры
Доставка и логистика
Слайд-шоу
Социальные сети
Модификаторы
Шаблоны PrestaShop
Работа
Главная
Форум
Общие форумы (prestashop v1.3.x)
Песочница
Артикул поставщика вместо ID
Всего: 4
1
2
3
4
>
Артикул поставщика вместо ID
slavich
Новичок
Сообщений: 62
Регистрация: 09-03-2010
# 1
20-03-2010 19:12
При импорте товаров с целью обновления данных проверка, есть ли товар в базе происходит по его ID (id_product), но это нафиг некому не нужно (мое мнение и думаю многие согласятс) гораздо полезний проверять по актиклу поставщика
Вопрос: что изменить в коде (как я понимаю в /tabs/AdminImport.php) чтобы товар проверялся по артиклу поставщика (supplier_reference), а не по ID????
felixxx
Cпециалист
Сообщений: 138
Регистрация: 07-02-2010
# 2
20-03-2010 23:22
сам не копался, но насколько понимаю, в
public function productImport()
заменить ID в
if (array_key_exists('id', $info) AND intval($info['id']) AND Product::existsInDatabase(intval($info['id'])))
на reference (или как оно там)
slavich
Новичок
Сообщений: 62
Регистрация: 09-03-2010
# 3
21-03-2010 19:55
я в php полный ноль но на эту строчку наткнулся сразу мне кажеться это слишком просто, хотябы потому что ID числовое поле а артидул текстовое в МС акцесе это играло роль
Может кто подскажет наверника, а то портить базу из 1900 наименований не хотца
Сообщение отредактировано slavich 21-03-2010 20:57 ...
slavich
Новичок
Сообщений: 62
Регистрация: 09-03-2010
# 4
21-03-2010 20:19
Функция array_key_exists() возвращает TRUE, если в массиве присутствует указанное значение ключ. Параметр ключ может быть любым значением, которое подходит для описания индекса массива.
Вопрос: у меня актикул выгледит так "G223453" подходит ли он под описания индекса массива.
felixxx
Cпециалист
Сообщений: 138
Регистрация: 07-02-2010
# 5
22-03-2010 00:45
Массив получится ассоциативный, поэтому - да.
Вы не записываете значение артикула в поле ID, а проверяете, существует ли данный артикул в БД, если существует, тогда обновление значений.
К сожалению, у меня сейчас нет возможности проверить ни на локальном компе, работает это или нет, или попросите знакомых\форумчан, либо забэкапьте исходный файл и БД и попробуйте тестово обновить товар. Если не получается,то файл заменяем на исходный, убираем запись в Бд или вообще делаем откат и усе=)
slavich
Новичок
Сообщений: 62
Регистрация: 09-03-2010
# 6
22-03-2010 14:53
не хочет все равно добавляет новым товаром
felixxx
Cпециалист
Сообщений: 138
Регистрация: 07-02-2010
# 7
22-03-2010 21:14
В общем, наваял я скриптик, который обновляет цену, количество, активность из файла csv
Абсолютно самопальный, поэтому сначала надо проставить переменные, там все в комментариях расписано
Файл создается вида - артикул - цена - количество - активность
И не забывайте конвертить в UTF - 8, я проверку не делал, создаю через Опеноффис, там по умолчанию можно кодировку выбирать =)
Я бы порекомендовал создать папку update в корне, кидать туда файло csv и закинуть сам скрипт.
Вложения:
update.php
( Размер файла: 2KB Скачиваний: 355 )
slavich
Новичок
Сообщений: 62
Регистрация: 09-03-2010
# 8
23-03-2010 12:25
спасибо за скрипт, но енто немного не то, суть в том, что у паставщиков постоянно меняется прайс
нужно чтоб скрипт проверял есть ли артикул в базе исли есть то обновить данные если нет, то создать новый товар в категории по умолчанию
это все реализовано в стандартном скрипте только проверку проводит не по артиклу, а по ID
как заменить ID на артикул ????
я пробовал как написано во втором сообщении не робит, но может я не правельно пробывал, как правильно???
felixxx
Cпециалист
Сообщений: 138
Регистрация: 07-02-2010
# 9
23-03-2010 22:20
я такого не делал, нет необходимости пока. Есть желание - либо заказывайте разработку\доработку, фрилансеров куча, либо учите php и лепите сами;)
slavich
Новичок
Сообщений: 62
Регистрация: 09-03-2010
# 10
28-03-2010 23:53
проблема решена просто добавил в public function productImport() проверку по артиклу поставщика и если такой товар есть, то подсовывает его id, как бутто бы он был указан в импортировановм файле, а остальной код не пронут
при желании проверку можно провести по любому полю например по артиклу
добавляю измененые файлы
\tabs\AdminImport.php
\classes\Product.php"
Вложения:
AdminImport.php
( Размер файла: 54.89KB Скачиваний: 1128 )
Product.php
( Размер файла: 86.52KB Скачиваний: 3736 )
Всего: 4
1
2
3
4
>
На Главную форума
Найти
FaQ
Панель управления
Кто он-лайн
Общие форумы (prestashop v1.7.x)
-- Общий форум
-- Установка, Настройка, Обновление
-- Модули, плагины
-- Дизайн, шаблоны
-- Песочница
Общие форумы (prestashop v1.6.x)
-- Общий форум
-- Установка, Настройка, Обновление
-- Модули, плагины
-- Дизайн, шаблоны
-- Песочница
Общие форумы (prestashop v1.5.x)
-- Общий форум
Общие форумы (prestashop v1.4.x)
-- Новости и объявления
-- Общий форум
-- Установка, Настройка, Обновление
-- Дизайн, шаблоны
-- Модули, плагины
-- Песочница
-- Прочее
Общие форумы (prestashop v1.3.x)
-- Общий форум
-- Установка, Настройка, Обновление
-- Дизайн, шаблоны
-- Модули, плагины
---- Платные модули и хаки
-- Песочница
Другое
-- Корзина
---- Хостинг
---- Каталог магазинов
---- Общий форум
---- Прием багов