newjey

Автоматически Артикул из id товара

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

newjey    1

Добрый день.

Подскажите как сделать что бы Артикул товара формировался автоматически и в таком виде как 7894-2345, где 7894 это случайные цифры (от 1 до 1000), а 2345 это id товара?

Спасибо.

Поделиться сообщением


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

маленьким скриптом на странице редактирования товара

Поделиться сообщением


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

Я понимаю что не по щелчку пальцев) хотелось бы спросить у знающих как именно?

Поделиться сообщением


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

в самом начале видим:

public function addProduct($data) {
$this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', ean = '" . $this->db->escape($data['ean']) . "', jan = '" . $this->db->escape($data['jan']) . "', isbn = '" . $this->db->escape($data['isbn']) . "', mpn = '" . $this->db->escape($data['mpn']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . $this->db->escape($data['tax_class_id']) . "', sort_order = '" . (int)$data['sort_order'] . "', date_added = NOW()");

$product_id = $this->db->getLastId();

// - добавляем 2 строки
$model = rand ( 1000 , 9999 ) . "-" . $product_id;
$this->db->query("UPDATE " . DB_PREFIX . "product SET model = '" . $model . "' WHERE product_id = '" . (int)$product_id . "');

вставка для admin/model/catalog/product.php

Поделиться сообщением


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

Сделал sql запрос UPDATE product SET sku=product_id, прописались всем товарам Артикулы в виде id товара, но есть маленький неудобный момент, планируется поиск по сайту по Артикулу,а у первых товаров артикулы одно и двух значные и при поиске выдаёт кучу товаров в который встречаются эти цифры, отсюда и было придумано использовать помимо id товара ещё и дополнительный цифровой код.

Как правильно сделать запрос UPDATE product SET sku=рандомное значение от 1 до 1000 - product_id ?

И как прописать данный запрос для автоматического  формирования при добавлении нового товара?

Поделиться сообщением


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

Хотите уникальный sku на основе product_id?

 

UPDATE product SET sku=md5(product_id)

:)

Поделиться сообщением


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

Хотите уникальный sku на основе product_id?

 

UPDATE product SET sku=md5(product_id)

:)

Как потом этот вариант использовать для автогенерации для новых товаров?

Поделиться сообщением


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

в самом начале видим:

public function addProduct($data) {

$this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', ean = '" . $this->db->escape($data['ean']) . "', jan = '" . $this->db->escape($data['jan']) . "', isbn = '" . $this->db->escape($data['isbn']) . "', mpn = '" . $this->db->escape($data['mpn']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . $this->db->escape($data['tax_class_id']) . "', sort_order = '" . (int)$data['sort_order'] . "', date_added = NOW()");

$product_id = $this->db->getLastId();

// - добавляем 2 строки

$model = rand ( 1000 , 9999 ) . "-" . $product_id;

$this->db->query("UPDATE " . DB_PREFIX . "product SET model = '" . $model . "' WHERE product_id = '" . (int)$product_id . "');

вставка для admin/model/catalog/product.php

Делаю по примеру для sku таким образом

$sku = rand ( 1000 , 9999 ) . "-" . $product_id;

$this->db->query("UPDATE " . DB_PREFIX . "product SET sku = '" . $sku . "' WHERE product_id = '" . (int)$product_id . "');

Выдаёт белую страницу в админке.

Поделиться сообщением


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

а $product_id определен?

Поделиться сообщением


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

а $product_id определен?

В смысле?

Поделиться сообщением


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

у меня он возникает как id последней добавленной записи в таблицу: $product_id = $this->db->getLastId();

а у вас?

Поделиться сообщением


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

у меня он возникает как id последней добавленной записи в таблицу: $product_id = $this->db->getLastId();

а у вас?

У меня так же как у Вас

public function addProduct($data) {

$this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . $this->db->escape($data['tax_class_id']) . "', sort_order = '" . (int)$data['sort_order'] . "', date_added = NOW()");

$product_id = $this->db->getLastId();

Поделиться сообщением


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

Я может че не понимаю. Артикул уникальный. По артикулу можно товар в гугле искать и тп. Это не просто набор цифер которые можно сгенерировать модулем.

Поделиться сообщением


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

Как потом этот вариант использовать для автогенерации для новых товаров?

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

Поделиться сообщением


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

Я может че не понимаю. Артикул уникальный. По артикулу можно товар в гугле искать и тп. Это не просто набор цифер которые можно сгенерировать.

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

Поделиться сообщением


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

У меня так же как у Вас

public function addProduct($data) {

$this->db->query("INSERT INTO " . DB_PREFIX . "product SET model = '" . $this->db->escape($data['model']) . "', sku = '" . $this->db->escape($data['sku']) . "', upc = '" . $this->db->escape($data['upc']) . "', location = '" . $this->db->escape($data['location']) . "', quantity = '" . (int)$data['quantity'] . "', minimum = '" . (int)$data['minimum'] . "', subtract = '" . (int)$data['subtract'] . "', stock_status_id = '" . (int)$data['stock_status_id'] . "', date_available = '" . $this->db->escape($data['date_available']) . "', manufacturer_id = '" . (int)$data['manufacturer_id'] . "', shipping = '" . (int)$data['shipping'] . "', price = '" . (float)$data['price'] . "', points = '" . (int)$data['points'] . "', weight = '" . (float)$data['weight'] . "', weight_class_id = '" . (int)$data['weight_class_id'] . "', length = '" . (float)$data['length'] . "', width = '" . (float)$data['width'] . "', height = '" . (float)$data['height'] . "', length_class_id = '" . (int)$data['length_class_id'] . "', status = '" . (int)$data['status'] . "', tax_class_id = '" . $this->db->escape($data['tax_class_id']) . "', sort_order = '" . (int)$data['sort_order'] . "', date_added = NOW()");

$product_id = $this->db->getLastId();

Была допущена ошибка в коде:

$sku = rand ( 1000 , 9999 ) . "-" . $product_id;
$this->db->query("UPDATE " . DB_PREFIX . "product SET sku = '" . $sku . "' WHERE product_id = '" . (int)$product_id . "'");
Теперь всё работает)

Поделиться сообщением


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

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

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

Поделиться сообщением


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

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

Поделиться сообщением


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

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

Вы всё верно говорите, только у меня этот код производителя выведен через поле в товаре Модель, этот же код и соответствует коду модели, например телефон Samsung модель: GT36. Но мне в добавок нужен и циферный простой уникальный код, который с лёгкостью сможет продиктовать клиент по телефону, потому как номер модели иногда может быть типа HZ65rB_67Ty-5 и это доставит трудностей как для клиента так и для менеджера.

Поделиться сообщением


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

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

Артикул не генится, артикул выдается заводом изготовителем. Если только это не китайская дешевка сделанная в сараях.

Поделиться сообщением


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

Артикул не генится, артикул выдается заводом изготовителем. Если только это не китайская дешевка сделанная в сараях.

Вы что не читаете что я пишу? Я же говорю что то что выдаётся заводом производителем у меня и так выводится (Модель товара), мне нужен уникальный циферный код товара внутри магазина (Артикул).

Поделиться сообщением


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

Пусть будет не Артикул что бы было понятнее. Мне надо сгенерировать код товара.

Поделиться сообщением


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

Артикул не генится, артикул выдается заводом изготовителем. Если только это не китайская дешевка сделанная в сараях.

в целом вы правы) Но ТС sku нужен для внутрискладового учета и удобства быстрого заказа через форму или по телефону. посиотрите например на крупные инет-гипермаркеты техники - тот же связной или м-видео... в товаре там есть и внутренний артикул на странице и просто название модели и правильный артикул и т.д....

Поделиться сообщением


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

Вы всё верно говорите, только у меня этот код производителя выведен через поле в товаре Модель, этот же код и соответствует коду модели, например телефон Samsung модель: GT36. Но мне в добавок нужен и циферный простой уникальный код, который с лёгкостью сможет продиктовать клиент по телефону, потому как номер модели иногда может быть типа HZ65rB_67Ty-5 и это доставит трудностей как для клиента так и для менеджера.

Вы знаете что даже Самсунги телефоны идут поддельные из Китая если цена дешевая. Я купил один раз по ибею, деньги вернули.

В новом телефоне под стеклом камеры было пол кило пыли. Грязные твари. Я несколько раз нарывался на покупку китайской подделки, всегда привлекала цена. Покупал планшет, кроссовки телефон. Раза 3-4 не более.

 

Смотрите, они вам могут такого дерьма прислать,,,

Поделиться сообщением


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

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

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу