Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


newjey
 Поделиться

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

Добрый день.

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

Спасибо.

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


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

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

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

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

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

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

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

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

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


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

 

UPDATE product SET sku=md5(product_id)

:)

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

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

 

UPDATE product SET sku=md5(product_id)

:)

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

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


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

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 . "');

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

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


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

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

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

а у вас?

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

у меня он возникает как 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();

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


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

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


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

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

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

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

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

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


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

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 . "'");
Теперь всё работает)
Ссылка на комментарий
Поделиться на других сайтах


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

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

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


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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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

 

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

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


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

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


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.