Ответить Новая тема Новый опрос 
Всего: 4 1 2 3 4 >
 Артикул поставщика вместо ID
slavich
Новичок
Сообщений: 62
Регистрация: 09-03-2010


20-03-2010 19:12
При импорте товаров с целью обновления данных проверка, есть ли товар в базе происходит по его ID (id_product), но это нафиг некому не нужно (мое мнение и думаю многие согласятс) гораздо полезний проверять по актиклу поставщика

Вопрос: что изменить в коде (как я понимаю в /tabs/AdminImport.php) чтобы товар проверялся по артиклу поставщика (supplier_reference), а не по ID????

 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
felixxx
Cпециалист
Сообщений: 138
Регистрация: 07-02-2010


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


21-03-2010 19:55
я в php полный ноль но на эту строчку наткнулся сразу мне кажеться это слишком просто, хотябы потому что ID числовое поле а артидул текстовое в МС акцесе это играло роль

Может кто подскажет наверника, а то портить базу из 1900 наименований не хотца


Сообщение отредактировано slavich 21-03-2010 20:57 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
slavich
Новичок
Сообщений: 62
Регистрация: 09-03-2010


21-03-2010 20:19
Функция array_key_exists() возвращает TRUE, если в массиве присутствует указанное значение ключ. Параметр ключ может быть любым значением, которое подходит для описания индекса массива.

Вопрос: у меня актикул выгледит так "G223453" подходит ли он под описания индекса массива.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
felixxx
Cпециалист
Сообщений: 138
Регистрация: 07-02-2010


22-03-2010 00:45
Массив получится ассоциативный, поэтому - да.
Вы не записываете значение артикула в поле ID, а проверяете, существует ли данный артикул в БД, если существует, тогда обновление значений.
К сожалению, у меня сейчас нет возможности проверить ни на локальном компе, работает это или нет, или попросите знакомых\форумчан, либо забэкапьте исходный файл и БД и попробуйте тестово обновить товар. Если не получается,то файл заменяем на исходный, убираем запись в Бд или вообще делаем откат и усе=)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
slavich
Новичок
Сообщений: 62
Регистрация: 09-03-2010


22-03-2010 14:53
не хочет все равно добавляет новым товаром
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
felixxx
Cпециалист
Сообщений: 138
Регистрация: 07-02-2010


22-03-2010 21:14
В общем, наваял я скриптик, который обновляет цену, количество, активность из файла csv
Абсолютно самопальный, поэтому сначала надо проставить переменные, там все в комментариях расписано
Файл создается вида - артикул - цена - количество - активность

И не забывайте конвертить в UTF - 8, я проверку не делал, создаю через Опеноффис, там по умолчанию можно кодировку выбирать =)
Я бы порекомендовал создать папку update в корне, кидать туда файло csv и закинуть сам скрипт.


Вложения:

Вложения update.php( Размер файла: 2KB Скачиваний: 341 )
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
slavich
Новичок
Сообщений: 62
Регистрация: 09-03-2010


23-03-2010 12:25
спасибо за скрипт, но енто немного не то, суть в том, что у паставщиков постоянно меняется прайс
нужно чтоб скрипт проверял есть ли артикул в базе исли есть то обновить данные если нет, то создать новый товар в категории по умолчанию
это все реализовано в стандартном скрипте только проверку проводит не по артиклу, а по ID
как заменить ID на артикул ????
я пробовал как написано во втором сообщении не робит, но может я не правельно пробывал, как правильно???
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
felixxx
Cпециалист
Сообщений: 138
Регистрация: 07-02-2010


23-03-2010 22:20
я такого не делал, нет необходимости пока. Есть желание - либо заказывайте разработку\доработку, фрилансеров куча, либо учите php и лепите сами;)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
slavich
Новичок
Сообщений: 62
Регистрация: 09-03-2010


28-03-2010 23:53
проблема решена просто добавил в public function productImport() проверку по артиклу поставщика и если такой товар есть, то подсовывает его id, как бутто бы он был указан в импортировановм файле, а остальной код не пронут
при желании проверку можно провести по любому полю например по артиклу
добавляю измененые файлы
\tabs\AdminImport.php
\classes\Product.php"


Вложения:

Вложения AdminImport.php( Размер файла: 54.89KB Скачиваний: 1115 )

Вложения Product.php( Размер файла: 86.52KB Скачиваний: 3721 )
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос 
Всего: 4 1 2 3 4 >