Всего: 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 : 343 )
 
  
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 : 1117 )

 Product.php( : 86.52KB : 3724 )
 
  
   
Всего: 4 1 2 3 4 >