Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


newjey

Recommended Posts

Добрый день.

Подскажите как сделать что бы Артикул товара формировался автоматически и в таком виде как 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 ?

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

Надіслати
Поділитися на інших сайтах


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

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

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

Надіслати
Поділитися на інших сайтах


у меня он возникает как 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 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.