Мапване на Product name (brand name + product name) по EAN, GTIN, UPC или ISBN

Здравейте, колеги,
Моля за помощ.
Имам много продукти в таблица, които нямат EAN, GTIN, UPC или ISBN.
Много чоплих в chatgpt, но така и не намерих решение.
Някой има ли някаква идея как мога да действам?

Благодаря за вниманието.
 
Имаш няколко варианта да напишеш един код/скрипт който да ти мапва продуктите по-определени критерии като идентичност в името на продукта или по-модела? Ако продуктите които искаш да мапнеш нямат нищо сходно по-описание или заглавие тогава решението е да ги направиш ръчно.

Създай си едно поле за уникалност което искаш в таблицата и вариантите са ако имаш и може да се разбере от самото заглавие или модел че продуктите са от един тип да ги добавиш с цикъл в базата данни в полето което си създал или ако няма нищо сходно да ги направиш ръчно.

По така написания въпрос по-скоро заглавие аз това разбирам че искаш да направиш.
Ако бъркам дай повече инфо за да знаем какво точно имаш и какво искаш.

Поздрави
 
Ето пример на имената на продуктите:
EVERBUILD Liquid L-Carnitine + Chromium / 1500 mg
BIOTECH USA Liquid L-Carnitine + Chrome 500 ml.
BIOTECH USA One A Day 100 Tabs.

Името съдържа и производителя. Chatgpt що-годе ги докарва, но много фира дава. :-(
 
Здравей, нищо не ти се разбира, правил съм над 10к импорта на фийдове и чета, какво си написал, но пак не разбирам.
Имаш само имена в таблица без уникален идентификатор за импорт, ползваш chatgpt, но не знаеш дори какво да го питаш....

Ето какво да направиш:
- добавиш нова колона за уникален идентификатор
- създай в тази колона, условен уникален идентификатор спрямо формула
- Пример:
  • За първия продукт "EVERBUILD Liquid L-Carnitine + Chromium / 1500 mg", кодът ще бъде: EVE-LIQ-1500.
  • За втория продукт "BIOTECH USA Liquid L-Carnitine + Chrome 500 ml.", кодът ще бъде: BIO-LIQ-500.
  • За третия продукт "BIOTECH USA One A Day 100 Tabs.", кодът ще бъде: BIO-ONE-100.
Сега беги да питаш chatgpt как се прави такава формула за уникален индификатор, да не забравиш следното: Тази таблица е за теб, после по-стандартната таблица давана от доставчик, да се сравнява с тази твоята и така при нов артикул, да създаваш нов запис.

И като искаш помощ, давай информация, няма как да се сетим сами какво ти трябва.

Поздрави.
 
Извинявам се в такъв случай.
Имам списък с продукти (колона А) във формата по-горе.
Искам да намеря EAN или UPC на всеки един продукт (B), но да не е ръчно един по един.

Пример:
JARROW FORMULAS Vitamin C 750mg (Buffered Vitamin C) 100 Vegetarian Tablets
В случайя EAN-a му е 790011120155

Списъкът е доста голям.
 
Извинявам се в такъв случай.
Имам списък с продукти (колона А) във формата по-горе.
Искам да намеря EAN или UPC на всеки един продукт (B), но да не е ръчно един по един.

Пример:
JARROW FORMULAS Vitamin C 750mg (Buffered Vitamin C) 100 Vegetarian Tablets
В случайя EAN-a му е 790011120155

Списъкът е доста голям.
Има доста api с име и връщат инфо, ето виж: https://www.ean-search.org/ean-database-api.html

Останалото е детска игра.

Поздрави
 
16% успеваемост, подавам файла с продуктовите наименования (25к) и ми връща попълнени 4000. Останалите 21 000 :-(
 
Аз все още не разбирам какво искаш да направиш?
Имаш поле със заглавие в което поле са написани както модела, марката и името на продукта.
Нямаш поле марка?
Какво искаш да направиш всъщност:
- Да вземеш марката от заглавието и да я вкараш в допълнително поле като такава?
-- Да я вкараш просто като текст или имаш в друга таблица само марките и искаш да сравниш дали името на марката от заглавието отговаря с тази от другата таблица и да вземеш ид то на маракта?

Или искаш да създадеш уникално поле за всеки продукт SKU, model?

Опиши подробно какво имаш ти като таблици, и какво и от къде искаш да вземеш като информация и после къде да я вкараш...
Аз чета и се обърквам няма как да ти помогна и да искам.
 
Имам таблица с една колона, в която има продуктови наименования от типа по долу; редовете са 25хил.
EVERBUILD Liquid L-Carnitine + Chromium / 1500 mg
JARROW FORMULAS Vitamin C 750mg (Buffered Vitamin C) 100 Vegetarian Tablets
BIOTECH USA One A Day 100 Tabs.
...
Искам да създам колона B, която да съдържа EAN на продукта. Обаче е голяма хамалогия да търся EAN-a на всеки един продукт един по един.
Пробвах да пейстна 20-30 продукта от списъка в Chatgpt и да го попитам за EAN-ите, той почва да си ги измисля, понякога ги уцелва, но мен не ме устройва.

Колегата правилно подсказа с https://www.ean-search.org/ean-database-api.html.
В сайта им има функция да импортирам таблицата и системата им да потърси EAN-ите, всъщност успя, но с едва 16%.
 
Използвай PHP, създай API keys в ChatGPT (https://platform.openai.com/api-keys)
Инсталирай с composer:

composer require phpoffice/phpspreadsheet
composer require guzzlehttp/guzzle

След това в главанта директория примерен файл:
index.php:
PHP:
<?php
require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\IOFactory;
use GuzzleHttp\Client;

class EANGenerator {
    private $client;

    public function __construct() {
        $this->client = new Client();
    }

    public function generateEansInExcel($filePath) {
        $spreadsheet = IOFactory::load($filePath);
        $sheet = $spreadsheet->getActiveSheet();

        $row = 2;

        while (true) {
            $title = $sheet->getCell('A' . $row)->getValue();
            
            if (!$title) {
                break;
            }

            $ean = $this->generateEanFromApi($title);

            if ($ean) {
                $sheet->setCellValue('B' . $row, $ean);
                echo "EAN за ред $row: $ean\n";
            } else {
                echo "Грешка при генериране на EAN за ред $row\n";
            }

            $row++;
        }

        $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');
        $writer->save($filePath);

        echo "Обработката на файла приключи. Всички EAN кодове са добавени.\n";
    }

    private function generateEanFromApi($title) {
        $response = $this->client->post('https://api.openai.com/v1/engines/gpt-3.5-turbo/completions', [
            'headers' => [
                'Authorization' => 'Bearer YOUR_API_KEY',
                'Content-Type' => 'application/json',
            ],
            'json' => [
                'prompt' => "Generate a unique 13-digit EAN code for product: \"$title\".",
                'max_tokens' => 10,
            ],
        ]);

        $data = json_decode($response->getBody(), true);

        if (isset($data['choices'][0]['text'])) {
            return trim($data['choices'][0]['text']);
        }

        return null;
    }
}

$eanGenerator = new EANGenerator();
$eanGenerator->generateEansInExcel('data.xlsx');
После добави файла xlsx в същата директория именувай го data.xlsx и стартирай кода.
Ще ти направи това което искаш, имай предвид че във файла index.php трябва да заместиш YOUR_API_KEY с генерирания код от chatgpt. Това Bearer трябва да остане отпред пред YOUR_API_KEY.

Тествано работи, но ще имаш някакви лимити и квота може би ще трябва да похарчиш няколко долара за да ти направи тези 25 хиляди колони.
 

Горе