Jump to content
Mypkalo

Сгенерировать артикул товара (model) через php запрос

Recommended Posts

Задача такая.

Сгенерировать код товара с префиксом названия категории в которой находится товар (первые 3 буквы).

 

Нашел подобный код, который генерирует код товара с префиксом названия производителя:

UPDATE `oc_product` p LEFT JOIN `oc_manufacturer` m ON(p.manufacturer_id = m.manufacturer_id) SET p.model = CONCAT(IF(LENGTH(m.name) > 0, UPPER(LEFT(m.name, 3)), 'STD'), '-', CONCAT(REPEAT('0', 6 - LENGTH(p.product_id)), p.product_id));

Пробую код:

UPDATE `oc_product` p LEFT JOIN `oc_category_description` cd ON(p.category_id = cd.category_id) SET p.model = CONCAT(IF(LENGTH(cd.name) > 0, UPPER(LEFT(cd.name, 3)), 'STD'), '-', CONCAT(REPEAT('0', 6 - LENGTH(p.product_id)), p.product_id))

 

Выдаёт ошибку

#1054 - Unknown column 'p.category_id' in 'on clause'

 

Подскажите, пожалуйста, что неверно?

 

Share this post


Link to post
Share on other sites

1. В таблице oc_product нет category_id, он есть в таблице oc_product_to_category. Нужно добавить еще один LEFT JOIN

UPDATE `oc_product` p LEFT JOIN `oc_product_to_category` pc ON (p.product_id = pc.product_id) LEFT JOIN `oc_category_description` cd ON (pc.category_id = cd.category_id) SET p.model = CONCAT(IF(LENGTH(cd.name) > 0, UPPER(LEFT(cd.name, 3)), 'STD'), '-', CONCAT(REPEAT('0', 6 - LENGTH(p.product_id)), p.product_id))

Но проблема в том, что категорий у товара, в отличии от производителя, может быть несколько, поэтому нужно ставить условие на проверку главной. В общем лучше обратитесь к профессионалам за деньги.
P.S. Не забывайте делать бекап)

Share this post


Link to post
Share on other sites
1 година назад, andrewborodiy сказав:

1. В таблице oc_product нет category_id, он есть в таблице oc_product_to_category. Нужно добавить еще один LEFT JOIN


UPDATE `oc_product` p LEFT JOIN `oc_product_to_category` pc ON (p.product_id = pc.product_id) LEFT JOIN `oc_category_description` cd ON (pc.category_id = cd.category_id) SET p.model = CONCAT(IF(LENGTH(cd.name) > 0, UPPER(LEFT(cd.name, 3)), 'STD'), '-', CONCAT(REPEAT('0', 6 - LENGTH(p.product_id)), p.product_id))

Но проблема в том, что категорий у товара, в отличии от производителя, может быть несколько, поэтому нужно ставить условие на проверку главной. В общем лучше обратитесь к профессионалам за деньги.
P.S. Не забывайте делать бекап)

Большое спасибо, работает!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.