feat: Add IntegrationRepository and ShopProClient for managing integrations and fetching products from shopPRO API
This commit is contained in:
@@ -19,6 +19,7 @@ return [
|
||||
'navigation' => [
|
||||
'main_menu' => 'Menu glowne',
|
||||
'users' => 'Uzytkownicy',
|
||||
'products' => 'Produkty',
|
||||
'dashboard' => 'Dashboard',
|
||||
'settings' => 'Ustawienia',
|
||||
],
|
||||
@@ -68,6 +69,203 @@ return [
|
||||
'email_taken' => 'Ten adres email jest juz zajety.',
|
||||
'password_min' => 'Haslo musi miec co najmniej 8 znakow.',
|
||||
],
|
||||
'filters' => [
|
||||
'search' => 'Szukaj (imie, email)',
|
||||
'sort' => 'Sortowanie',
|
||||
'direction' => 'Kierunek',
|
||||
'per_page' => 'Na strone',
|
||||
],
|
||||
],
|
||||
'products' => [
|
||||
'title' => 'Produkty',
|
||||
'description' => 'Lokalna baza produktow orderPRO przygotowana pod przyszly sync kanalowy.',
|
||||
'empty' => 'Brak produktow. Dodaj pierwszy produkt.',
|
||||
'flash' => [
|
||||
'created' => 'Produkt zostal dodany.',
|
||||
'updated' => 'Produkt zostal zaktualizowany.',
|
||||
'deleted' => 'Produkt zostal usuniety.',
|
||||
'delete_failed' => 'Nie udalo sie usunac produktu.',
|
||||
'not_found' => 'Nie znaleziono wskazanego produktu.',
|
||||
],
|
||||
'actions' => [
|
||||
'add' => 'Dodaj produkt',
|
||||
'import_shoppro' => 'Import z shopPRO',
|
||||
'preview' => 'Podglad',
|
||||
'links' => 'Powiazania',
|
||||
'edit' => 'Edytuj',
|
||||
'delete' => 'Usun',
|
||||
'save' => 'Zapisz',
|
||||
'back' => 'Wroc do listy',
|
||||
'filter' => 'Filtruj',
|
||||
'reset' => 'Resetuj',
|
||||
],
|
||||
'tabs' => [
|
||||
'details' => 'Szczegoly',
|
||||
'links' => 'Powiazania',
|
||||
],
|
||||
'confirm' => [
|
||||
'delete' => 'Czy na pewno usunac produkt #:id?',
|
||||
],
|
||||
'fields' => [
|
||||
'name' => 'Nazwa',
|
||||
'type' => 'Typ',
|
||||
'status' => 'Status',
|
||||
'promoted' => 'Promowany',
|
||||
'vat' => 'VAT (%)',
|
||||
'weight' => 'Waga',
|
||||
'quantity' => 'Stan',
|
||||
'price_input_mode' => 'Tryb ceny',
|
||||
'price_brutto' => 'Cena brutto',
|
||||
'price_netto' => 'Cena netto',
|
||||
'price_brutto_promo' => 'Cena brutto promo',
|
||||
'price_netto_promo' => 'Cena netto promo',
|
||||
'short_description' => 'Krotki opis',
|
||||
'description' => 'Opis',
|
||||
'meta_title' => 'Meta title',
|
||||
'meta_description' => 'Meta description',
|
||||
'meta_keywords' => 'Meta keywords',
|
||||
'seo_link' => 'SEO link',
|
||||
'updated_at' => 'Data modyfikacji',
|
||||
'actions' => 'Akcje',
|
||||
],
|
||||
'status' => [
|
||||
'active' => 'Aktywny',
|
||||
'inactive' => 'Nieaktywny',
|
||||
],
|
||||
'promoted' => [
|
||||
'yes' => 'Tak',
|
||||
'no' => 'Nie',
|
||||
],
|
||||
'type' => [
|
||||
'simple' => 'Prosty',
|
||||
'variant_parent' => 'Wariantowy',
|
||||
],
|
||||
'price_mode' => [
|
||||
'brutto' => 'Wpisuje brutto',
|
||||
'netto' => 'Wpisuje netto',
|
||||
],
|
||||
'filters' => [
|
||||
'title' => 'Filtry i sortowanie',
|
||||
'search' => 'Szukaj (nazwa, SKU, EAN)',
|
||||
'status' => 'Status',
|
||||
'type' => 'Typ',
|
||||
'sort' => 'Sortowanie',
|
||||
'direction' => 'Kierunek',
|
||||
'per_page' => 'Na strone',
|
||||
'any' => 'Wszystkie',
|
||||
],
|
||||
'pagination' => [
|
||||
'summary' => 'Lacznie rekordow: :total',
|
||||
],
|
||||
'create' => [
|
||||
'title' => 'Dodaj produkt',
|
||||
'description' => 'Utworz lokalny produkt w orderPRO (bez eksportu).',
|
||||
],
|
||||
'edit' => [
|
||||
'title' => 'Edycja produktu #:id',
|
||||
'description' => 'Aktualizuj dane produktu i zapisuj zmiany w logu.',
|
||||
],
|
||||
'show' => [
|
||||
'title' => 'Podglad produktu #:id',
|
||||
'description' => 'Widok tylko do odczytu wszystkich danych produktu.',
|
||||
'details' => 'Szczegoly produktu',
|
||||
],
|
||||
'links' => [
|
||||
'title' => 'Powiazania',
|
||||
'page_title' => 'Powiazania produktu #:id',
|
||||
'description' => 'Mapowanie produktu orderPRO do ofert zewnetrznych (shopPRO / marketplace).',
|
||||
'current_links' => 'Aktualne powiazania',
|
||||
'search_title' => 'Wyszukiwarka ofert',
|
||||
'empty_links' => 'Brak powiazan dla tego produktu.',
|
||||
'empty_offers' => 'Brak ofert do wyswietlenia. Wybierz integracje, wpisz filtr lub wykonaj import ofert.',
|
||||
'integration_placeholder' => '-- wybierz integracje --',
|
||||
'search_placeholder' => 'Szukaj po nazwie, SKU, EAN lub external_product_id',
|
||||
'fields' => [
|
||||
'integration' => 'Instancja',
|
||||
'channel' => 'Kanal',
|
||||
'search' => 'Fraza',
|
||||
'offer_name' => 'Oferta',
|
||||
'external_product_id' => 'External product ID',
|
||||
'external_variant_id' => 'External variant ID',
|
||||
'external_variant_id_optional' => 'Opcjonalny variant ID',
|
||||
'link_type' => 'Typ',
|
||||
'confidence' => 'Confidence',
|
||||
'link_status' => 'Status',
|
||||
'updated_at' => 'Ostatnia zmiana',
|
||||
'history' => 'Historia',
|
||||
'match_hint' => 'Dopasowanie',
|
||||
'actions' => 'Akcje',
|
||||
],
|
||||
'actions' => [
|
||||
'search' => 'Szukaj ofert',
|
||||
'link' => 'Powiaz',
|
||||
'relink' => 'Przepnij',
|
||||
'unlink' => 'Odlacz',
|
||||
],
|
||||
'confirm' => [
|
||||
'title' => 'Potwierdzenie',
|
||||
'unlink_message' => 'Czy na pewno odlaczyc to powiazanie?',
|
||||
'relink_message' => 'Czy na pewno przepiac powiazanie na nowe ID zewnetrzne?',
|
||||
'yes' => 'Potwierdz',
|
||||
'no' => 'Anuluj',
|
||||
],
|
||||
'flash' => [
|
||||
'linked' => 'Powiazanie zostalo zapisane.',
|
||||
'relinked' => 'Powiazanie zostalo przepiete.',
|
||||
'unlinked' => 'Powiazanie zostalo odlaczone.',
|
||||
'link_failed' => 'Nie udalo sie zapisac powiazania.',
|
||||
'relink_failed' => 'Nie udalo sie przepiac powiazania.',
|
||||
'unlink_failed' => 'Nie udalo sie odlaczyc powiazania.',
|
||||
],
|
||||
],
|
||||
'images' => [
|
||||
'title' => 'Zdjecia',
|
||||
'description' => 'Aktualne zdjecia produktu. Mozesz usunac wybrane, dodac nowe i wskazac glowne.',
|
||||
'empty' => 'Brak zapisanych zdjec.',
|
||||
'remove' => 'Usun to zdjecie',
|
||||
'add_new' => 'Dodaj nowe zdjecia',
|
||||
'set_main' => 'Ustaw jako glowne',
|
||||
'main' => 'Glowne',
|
||||
'main_hint' => 'Jesli nie wybierzesz recznie zdjecia glownego, system ustawi pierwsze dostepne.',
|
||||
'uploading' => 'Wysylanie zdjec...',
|
||||
'uploaded_ok' => 'Zdjecia zostaly dodane.',
|
||||
'confirm_title' => 'Potwierdzenie',
|
||||
'confirm_delete' => 'Czy na pewno usunac to zdjecie?',
|
||||
'confirm_yes' => 'Usun',
|
||||
'confirm_no' => 'Anuluj',
|
||||
],
|
||||
'variants' => [
|
||||
'title' => 'Warianty produktu',
|
||||
'empty' => 'Brak wariantow dla tego produktu.',
|
||||
'attributes' => 'Atrybuty',
|
||||
'import_warning_title' => 'Ostrzezenie po imporcie wariantow',
|
||||
'import_warning_date' => 'Data ostrzezenia',
|
||||
],
|
||||
'import' => [
|
||||
'title' => 'Import produktow z shopPRO',
|
||||
'close' => 'Zamknij',
|
||||
'integration' => 'Integracja',
|
||||
'integration_placeholder' => '-- wybierz integracje --',
|
||||
'mode' => 'Zakres importu',
|
||||
'mode_all' => 'Wszystkie produkty',
|
||||
'mode_single' => 'Pojedynczy produkt',
|
||||
'external_id' => 'ID produktu w shopPRO',
|
||||
'with_variants' => 'Importuj warianty produktu',
|
||||
'with_variants_hint' => 'Opcja nadpisze lokalna liste wariantow dla importowanego produktu danymi z shopPRO.',
|
||||
'no_integrations' => 'Brak aktywnych integracji shopPRO z kluczem API. Skonfiguruj je w Ustawienia -> Integracje shopPRO.',
|
||||
'submit' => 'Uruchom import',
|
||||
'flash' => [
|
||||
'failed' => 'Import produktow zakonczyl sie bledem.',
|
||||
'integration_required' => 'Wybierz integracje do importu.',
|
||||
'integration_not_found' => 'Nie znaleziono wskazanej integracji.',
|
||||
'api_key_missing' => 'Wybrana integracja nie ma zapisanego klucza API.',
|
||||
'single_id_required' => 'Dla importu pojedynczego podaj ID produktu.',
|
||||
'mode_invalid' => 'Niepoprawny tryb importu.',
|
||||
'no_products' => 'Brak produktow do importu po stronie shopPRO.',
|
||||
'single_ok' => 'Import zakonczony. shopPRO #:external_id -> lokalny produkt #:local_id.',
|
||||
'all_done' => 'Import zakonczony. Zaimportowano: :imported, bledy: :failed.',
|
||||
],
|
||||
],
|
||||
],
|
||||
'settings' => [
|
||||
'title' => 'Ustawienia',
|
||||
@@ -98,5 +296,77 @@ return [
|
||||
'failed' => 'Nie udalo sie wykonac migracji. Sprawdz log i polaczenie bazy.',
|
||||
],
|
||||
],
|
||||
'integrations' => [
|
||||
'title' => 'Integracje shopPRO',
|
||||
'list_title' => 'Integracje shopPRO',
|
||||
'create_title' => 'Dodaj integracje',
|
||||
'edit_title' => 'Edytuj integracje',
|
||||
'empty' => 'Brak skonfigurowanych integracji.',
|
||||
'fields' => [
|
||||
'name' => 'Nazwa',
|
||||
'base_url' => 'Base URL',
|
||||
'api_key' => 'API Key',
|
||||
'timeout_seconds' => 'Timeout (sekundy)',
|
||||
'active' => 'Aktywna',
|
||||
'active_checkbox' => 'Integracja aktywna',
|
||||
'last_test' => 'Ostatni test',
|
||||
'actions' => 'Akcje',
|
||||
],
|
||||
'actions' => [
|
||||
'save' => 'Zapisz integracje',
|
||||
'edit' => 'Edytuj',
|
||||
'test' => 'Test polaczenia',
|
||||
'test_now' => 'Sprawdz teraz',
|
||||
'import_offers_cache' => 'Importuj oferty',
|
||||
'new' => 'Nowa integracja',
|
||||
],
|
||||
'active' => [
|
||||
'yes' => 'Tak',
|
||||
'no' => 'Nie',
|
||||
],
|
||||
'test_status' => [
|
||||
'never' => 'Nie testowano',
|
||||
'ok' => 'OK',
|
||||
'error' => 'Blad',
|
||||
],
|
||||
'logs_title' => 'Ostatnie testy polaczenia',
|
||||
'logs' => [
|
||||
'fields' => [
|
||||
'tested_at' => 'Data testu',
|
||||
'status' => 'Status',
|
||||
'http_code' => 'HTTP',
|
||||
'message' => 'Komunikat',
|
||||
],
|
||||
],
|
||||
'api_key_placeholder_edit' => 'Zostaw puste, aby zachowac obecny klucz',
|
||||
'api_key_saved' => 'Klucz API jest zapisany.',
|
||||
'api_key_missing' => 'Brak zapisanego klucza API.',
|
||||
'validation' => [
|
||||
'name_min' => 'Nazwa integracji musi miec co najmniej 2 znaki.',
|
||||
'base_url_invalid' => 'Podaj poprawny adres URL (http lub https).',
|
||||
'api_key_required' => 'Podaj klucz API dla integracji.',
|
||||
'name_taken' => 'Integracja o tej nazwie juz istnieje.',
|
||||
],
|
||||
'flash' => [
|
||||
'created' => 'Integracja zostala dodana.',
|
||||
'updated' => 'Integracja zostala zapisana.',
|
||||
'not_found' => 'Nie znaleziono wskazanej integracji.',
|
||||
'failed' => 'Nie udalo sie zapisac integracji.',
|
||||
'test_ok' => 'Test polaczenia zakonczony powodzeniem.',
|
||||
'test_failed' => 'Test polaczenia zakonczyl sie bledem.',
|
||||
'import_offers_ok' => 'Import cache ofert zakonczony. Przetworzone rekordy: :imported, bledy: :failed, strony API: :pages.',
|
||||
'import_offers_failed' => 'Import cache ofert zakonczyl sie bledem.',
|
||||
'import_ok' => 'Import produktu zakonczony. shopPRO #:external_id -> lokalny produkt #:local_id. Kanaly: shopPRO=wystawiony, Allegro=nieustalone, Erli=niedostepny.',
|
||||
'import_failed' => 'Import produktu zakonczyl sie bledem.',
|
||||
'import_no_products' => 'Brak aktywnych produktow do importu po stronie shopPRO.',
|
||||
],
|
||||
'import' => [
|
||||
'title' => 'Import testowy produktu',
|
||||
'description' => 'Importuje jeden produkt z shopPRO. Mozesz podac ID produktu albo zostawic puste, aby pobrac pierwszy aktywny.',
|
||||
'external_product_id' => 'ID produktu shopPRO (opcjonalnie)',
|
||||
'external_product_id_placeholder' => 'np. 123',
|
||||
'action' => 'Importuj 1 produkt',
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user